ROS2的安装有两种方式
Chocolatey是Windows的软件包管理器,我们按照官网的说明进行安装。
要求
- Windows 7+ / Windows Server 2003+
- PowerShell v2 +(虽然还不是PowerShell Core)(由于TLS 1.2要求,从此网站安装的最低版本是v3 )
- .NET Framework 4+(如果未安装.NET 4.0,安装程序将尝试安装。)(由于TLS 1.2要求,从此网站安装的最低版本为4.5 )
对于win10用户,你可暂时忽略上述要求,直接安装即可,出现安装错误再进行检查
使用管理员打开cmd,输入以下内容并回车:
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "[System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
安装Python3.8,注意不指定版本可能会下载python3.9,到后面执行ros2时会报错"failed to create process",大家可以可以用choco安装
choco install -y python --version 3.8.3
或者直接去官网下载安装包使用,注意安装目录要选至C盘
同样我们可以使用choco快速安装
choco install -y vcredist2013 vcredist140
我们从官网下载安装包,选择64位完整版。
默认安装目录为C:\OpenSSL-Win64
,我们选择安装至E盘。
接下来在命令行输入以下指令(根据安装目录自行修改):
setx -m OPENSSL_CONF "E:\ROS2\OpenSSL-Win64\bin\openssl.cfg"
最后,还需要将OpenSSL的bin目录添加到Path
环境变量当中
同样去官网下载安装包,我们选择社区版即可。
选中c++组件,这里编者已经安装了2019的版本了,因此用2017的进行演示。选好后点击安装即可
您可以从ROS2预编译的OpenCV版本下载OpenCV 3.4.6的预编译版本,下载后解压到你想放置的目录,这里我们同样解压到E盘ROS2目录下,并将文件夹改名为opencv。
setx -m OpenCV_DIR E:\ROS2\opencv
由于我们使用的是预编译的ROS版本,因此我们必须告诉它在哪里可以找到OpenCV库。因此我们必须将E:\ROS2\opencv\x64\vc16\bin
添加到PATH环境变量当中
首先安装cmake,大家可以通过常规方式安装(自行百度),亦可以通过choco安装,最后记得将bin目录添加进环境变量中即可:
choco install -y cmake
接下来我们还需要从github中下载以下离线安装文件。
这里我将上述文件下载到同一个文件夹中方便安装,如下图:
choco install -y -s E:\ROS2\dependencies asio cunit eigen tinyxml-usestl tinyxml2 log4cxx bullet
如果安装失败(以下报错),检查一下注册表是否存在对应的注册文件,删掉重新安装即可,参考这篇文章
ERROR: The running command stopped because the preference variable "ErrorActionPreference" or common parameter is set to Stop: A key in this path already exists.
The install of asio was NOT successful.
Error while running 'C:\ProgramData\chocolatey\lib\asio\tools\chocolateyinstall.ps1'.
See log for details.
接下来安装所需要的python包
python -m pip install -U catkin_pkg cryptography empy ifcfg lark-parser lxml netifaces numpy opencv-python pyparsing pyyaml setuptools
可能会因为网速问题出现错误,多尝试几次过着逐个下载。
此外还需要QT的相关依赖
python -m pip install -U pydot PyQt5
要运行rqt_graph,我们同样需要安装Graphviz
choco install graphviz
将C:\Program Files\Graphviz\bin
添加到PATH环境变量当中
从源码进行构建除了第一节当中提到的
安装vcstool
pip install -U vcstool
安装colcon
pip install -U colcon-common-extensions
安装curl
choco install -y curl
安装git,并将C:\Program Files\Git\cmd
至path环境变量当中
choco install -y git
安装测试工具
pip install -U pytest pytest-mock coverage mock
代码检查工具
pip install -U flake8 flake8-blind-except flake8-builtins flake8-class-newline flake8-comprehensions flake8-deprecated flake8-docstrings flake8-import-order flake8-quotes mypy pep8 pydocstyle
安装cppcheck
choco install -y cppcheck
安装xmllint
从这里下载以下三个文件
参考我的上一篇文章Window10下安装Qt5
在安装完后,需要设置环境变量Qt5_DIR
,以便CMake可以找到它
setx -m Qt5_DIR E:\ROS2\Qt\5.15.0\msvc2019_64
随后在命令行中输入
set "NDDSHOME=C:\Program Files\rti_connext_dds-5.3.1"
到官网 注册信息, 随后到邮箱所收到的邮件中打开下载链接,选择对应版本安装即可
由于国内网络问题,所以可能一部分包会下载出错,因此我打包好所有源码上传,大家可自行下载。
获取源码后解压放置在src目录中即可,可跳过以下两步,直接进行源码的编译(第三步)
现在我们有了开发工具,可以获得ROS 2源代码。
首先创建一个ros2_foxy\src
文件夹用于存放ROS2源码,用管理员打开命令行
在ros2_foxy目录下,输入以下指令获取定义要克隆的存储库的ros2.repos文件:
curl -sk https://raw.githubusercontent.com/ros2/ros2/foxy/ros2.repos -o ros2.repos
成功下载的话会出现这个文件,但是本人亲测,raw.githubusercontent.com
很多时候都是连不上的,此时需要修改host文件。
首先通过网站https://www.ipaddress.com/查找raw.githubusercontent.com的ip地址
随便选一个,在host文件中添加:185.199.111.133 raw.githubusercontent.com
,保存,再次运行curl的那条指令,就能下载repos文件了
接下来,可以vcs导入ros2.repos文件中列出的存储库
vcs import src < ros2.repos
耐心等待一下,留意有没有报错信息,确保各个库都下载完成。
随后,用管理员打开vs 2019的控制台
colcon build --merge-install
程序开始运行后,会多出几个文件夹,我们只要耐心等候编译完成即可。
如果不想从源码进行构建,ros官方还提供了预编译的版本,到https://github.com/ros2/ros2/releases下载最新的软件包,例如ros2-foxy-*-windows-AMD64.zip
将文件解压到某个位置,这里假设解压至E:\ROS2\ros-windows
.
打开命令行,输入:
call E:\ROS2\ros-windows\local_setup.bat
随后可以测试我们的程序了
ros2 run demo_nodes_cpp talker
注意,每次重新打开命令行运行ros之前都需要call一下