操作系统: windows10
(一)按照 ms-iot 上的指导安装系统安装路径:C:\opt\ros\galactic
系统安装参考:ROS2在windows上的安装。
ROS 2 Binary Installation - ROS on Windows
原来官网
https://github.com/ros2/ros2
这个ROS2的windows版本已经安装过不止一回了,貌似总会有些问题,通常比较难顺利安装。所以我这里采用的ms-iot上的做法。
(1)找到VS2019命令窗口"x64 Native Tools Command Prompt for VS 2019"
(2)选择以管理员身份运行
(3)输入指令
@"%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"
不知道是不是为安装管理工具chocolatey做准备,总之我是直接到chocolatey官网上下载安装的,目录在
C:\ProgramData\chocolatey\bin\choco.exe
(4)安装git
choco upgrade git -y
(5)安装 ROS2
mkdir c:\opt\chocolatey
set ChocolateyInstall=c:\opt\chocolatey
choco source add -n=ros-win -s="https://aka.ms/ros/public" --priority=1
choco upgrade ros-galactic-desktop -y --execution-timeout=0 --pre
我没弄懂这里的chocolatey安装配置方法,由于我已经安装了chcolatey,所以这里的4条指令我实际只用到了后面两条。
然后我的ROS2就顺利地安装完了。
另外,官网没有说要安装python3,,不确定这会不会对安装过程产生影响。我实际已经安装了python3.8.3,所以如果你发现需要python的话,补上就可以了。
下面我们来测试一下,
(1)测试一
打一个cmd窗口,输入
> call C:\opt\ros\galactic\x64\setup.bat
> ros2 run turtlesim turtlesim_node
然后打开另一个cmd窗口,输入,
>call C:\opt\ros\galactic\x64\setup.bat
>ros2 run turtlesim turtle_teleop_key
然后就可以通过键盘控制小乌龟了。
(2)测试二
分别打开两个cmd,输入
>call C:\opt\ros\galactic\x64\setup.bat
>ros2 run demo_nodes_cpp talker
和
>call C:\opt\ros\galactic\x64\setup.bat
>ros2 run demo_nodes_py listener
就可以看到两个线程能正常通信了。
(3) 测试三
ms-iot提代了nav2的代码,反正这个我没编译成功,也没测试成功。
后话
整体上,比ubuntu上的体验差多了。powershell对ROS2的支持很不友好,没法完整运行。mingw bash也不太好运行。在VS2019 prompt中效果好一点。
(二)按官网的指导安装或编译安装的指导在这里,
Installing ROS 2 on Windows — ROS 2 Documentation: Galactic documentation
Building ROS 2 on Windows — ROS 2 Documentation: Galactic documentation
不管是building 还是installing,都可以到github上去拉取源码下来,
Releases · ros2/ros2 · GitHub
按照官方办法走一次就OK了。只要你存放的地方不一样,不同的安装方法的同一版本,或不同的版本都是可以共存的。
附:Choco常用指令choco search 搜索软件
choco list 列出包
choco install 安装软件
choco install -version *** 安装指定版本
choco uninstall name 卸载软件
choco version 查看安装包的版本情况
choco upgrade 更新某个软件
choco list -localonly 查看一下所有安装在本地的包的列表
choco list -lo 功能同上
本文结束