win10安装ROS2(foxy+humble/在线安装+离线安装)超详细保姆级教程

一、提要:

        之前已经在ubuntu22.04上安装上了ROS2-Humble,后期开发想要跨平台,ubuntu上发布话题,在windows上订阅话题,所以实验在windows上安装ROS2。

        因为ubuntu上安装的是Humble版本,所以在win10上首选安装也是Humble版,实验过程中是先通过在线方式安装了foxy版本,后面通过离线方式又安装了Humble。

二、必要的工具和准备

2.1 系统要求

Windows系统准备:ROS-for-Windows需要64位Windows 10桌面或Windows 10物联网企业版。
检查系统是否自带工具Powershell。
从病毒扫描程序中排除ROS安装路径c:\opt(以及稍后的工作区文件夹),因为它们可能会干扰安装和开发。

2.1 powershell介绍

工具准备:powershell是一个交互终端,其命令和linux下差不多,ls,ssh,ping,scp等等都是支持的。可以使用win+R,输入powershell打开,也可以通过左下方搜索powershell打开。

三、安装Visual Studio 2022

Vcpkg is used for managing dependent libraries. It requires that the English language pack be installed.
Include "Desktop development with C++" workload.
In the Individual Components, select "Windows 10 SDK (10.0.19041.0)".
注意:安装完VC2019后,有一个VC版本的命令行工具很重要,如图:

在安装ROS2之前我已经安装了64位2022 Community版本的Visual Studio。

此次安装ROS2,会用到VS的命令行工具(下图)进行64位的软件操作,都需要打开此命令行进行。

四、 “巧克力”-Chocolatey安装


4.1  Chocolatey是啥?

在Ubuntu下有下载更新工具apt-get,Chocolatey就可以理解成win10版的apt-get。

4.2 安装一个chocolatey

在开始菜单中,找到“x64 Native Tools Command Prompt for VS 2022”项,然后右键选择“以管理员身份运行”

复制以下命令行运行:

@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"


安装完成后在powershell中输入choco显示如下

五、安装ROS2

安装过程参考ROS2官方安装说明:

ROS2-Humble官方安装文档

5.1 安装各种依赖

需要使用chocolatey,但是chocolatey国内网速非常慢,经常连接不到服务器,需要自己想办法,或者离线安装。


5.1.1在线or离线安装python-3.8.3

 A.在线安装:

choco install -y python --version 3.8.3

B.离线安装:

python-3.8.3官网下载地址

注意:建议安装debug,需要科学上网,安装时下载可能会遇到,“0x80072efd未指定的错误”,可以先不勾选,安装完再Modify.

点击安装后等待即可,强烈建议去除window最大路径长度限制

5.1.2在线安装Visual C++ Redistributables

choco install -y vcredist2013 vcredist140

5.1.3离线安装OpenSSL

OpenSSL官网下载地址

ROS2官方安装文档要求下载Win64 OpenSSL v1.1.1n,不要下载v1.1.1n Light、Win32或者v3.X.Y版本的。

发个安装完成的界面让大家开心一下

 安装完成后,设置环境变量(管理员权限打开powershell)

setx /m OPENSSL_CONF "C:\Program Files\OpenSSL-Win64\bin\openssl.cfg"

5.1.4在线+离线安装其他依赖

choco install -y cmake

GIt下载页面

  • asio.1.12.1.nupkg

  • bullet.3.17.nupkg

  • cunit.2.1.3.nupkg

  • eigen-3.3.4.nupkg

  • tinyxml-usestl.2.6.2.nupkg

  • tinyxml2.6.0.0.nupkg

下载后放到【下载文件夹】,powershell安装

choco install -y -s 【下载文件夹】 asio cunit eigen tinyxml-usestl tinyxml2 bullet

升级pip和setuptools:

python -m pip install -U pip setuptools==59.6.0

安装python其他依赖

python -m pip install -U catkin_pkg cryptography empy importlib-metadata lark==1.1.1 lxml matplotlib netifaces numpy opencv-python PyQt5 pillow psutil pycairo pydot pyparsing==2.4.7 pyyaml rosdistro

 5.1.4离线安装Qt5

ROS2官方文档推荐安装5.12.X

Qt官网下载链接

确保在安装过程中,勾选 Qt -> Qt 5.12.12 下的MSVC 2017 64-bit组件

安装完成后,在管理员模式下的powerShell中设置环境变量

setx /m Qt5_DIR C:\Qt\Qt5.12.12\5.12.12\msvc2017_64
setx /m QT_QPA_PLATFORM_PLUGIN_PATH C:\Qt\Qt5.12.12\5.12.12\msvc2017_64\plugins\platforms

至此,准备工作基本完成,现在入正题,开始安装ROS2。

5.2安装ROS2        

实验过程中,在线存在服务器无响应的情况,可以多试几次,能不能安装上靠命,推荐自己下载后离线安装。

5.2.1在线安装ROS2-Foxy

mkdir c:\opt\chocolatey
set PYTHONNOUSERSITE=1
set ChocolateyInstall=c:\opt\chocolatey
choco source add -n=ros-win -s="https://aka.ms/ros/public" --priority=1

安装最新版本的Foxy

choco upgrade ros-foxy-desktop -y --execution-timeout=0

5.2.2在线安装ROS2-Humble

mkdir c:\opt\chocolatey
set PYTHONNOUSERSITE=1
set ChocolateyInstall=c:\opt\chocolatey
choco source add -n=ros-win -s="https://aka.ms/ros/public" --priority=1

安装最新版本的Humble(Humble目前是pre版,需要加参数--pre)

choco upgrade ros-humble-desktop --pre -y --execution-timeout=0

5.2.1在线安装ROS2

1.下载自己需要的版本的离线包

离线包下载地址

2.开始菜单中,右键 “x64 Native Tools Command Prompt for VS 2019” ,以管理员身份运行。

3.修改安装包搜索优先级,如图所示,是下载的nupkg文件所在的文件夹地址。

choco source add -n=ros-win -s=“E:\roswininstall”  #离线包本地存放地址
choco source remove -n=chocolatey
choco source add -n=chocolatey -s"https://chocolatey.org/api/v2/"  --priority=1

4.在Command输入

choco upgrade chocolatey-windowsupdate.extension

5.更新成功后,继续输入

choco upgrade ros-foxy-desktop -y --execution-timeout=0

或者

choco upgrade ros-humble-desktop --pre -y --execution-timeout=0

六、测试ROS2 

1.HelloWorld-Foxy

打开cmd命令行,设置环境变量

call C:\opt\ros\foxy\x64\local_setup.bat

HelloWorld

ros2 run demo_nodes_cpp talker

Ctrl+C退出

 2.小海龟-Humble

打开cmd命令行,设置环境变量

call C:\opt\ros\humble\x64\local_setup.bat

 运行小海龟

ros2 run turtlesim turtlesim_node

 再启动一个窗口,设置环境变量

call C:\opt\ros\humble\x64\local_setup.bat

启动键盘控制节点

ros2 run turtlesim turtle_teleop_key

 七、设置ROS2 环境变量

因为每次打开新的PowerShell运行ROS2都需要运行call C:\opt\ros\humble\x64\local_setup.ps1来设置ROS2环境,所以官方也给出了自动初始化ROS2环境的方法:

1.在文件夹C:\用户\【你的用户名】\文档\WindowsPowerShell\里面新建一个.txt文件

2.然后在txt里粘贴两行代码 C:\dev\ros2_foxy\local_setup.ps1 和 Unblock-File C:\dev\ros2_foxy\local_setup.ps1 ,保存,重命名文件为 Microsoft.PowerShell_profile.ps1,以后就不用每次打开PowerShell都要运行call C:\dev\ros\foxy\x64\local_setup.ps1来Source ROS2了

3.可能打开PowerShell后提示禁止运行脚本,这个时候输入命令:set-executionpolicy remotesigned,然后选择y就可以了,重启一下PowerShell搞定

至此,win10上安装ROS2完成,可以愉快的玩耍了

猜你喜欢

转载自blog.csdn.net/cxcrycr/article/details/127582956