一、提要:
之前已经在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完成,可以愉快的玩耍了
版权归原作者 编程专用小马甲 所有, 如有侵权,请联系我们删除。