前言:官网上的教程步骤太繁琐复杂了,又是安装这个,又是安装那个。好在能通过choco安装ros2,方便很多。
管理员PowerShell运行如下命令(一行命令):
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
管理员PowerShell运行如下命令:
choco source add -n=ros-win -s="https://aka.ms/ros/public" --priority=1
choco install ros-foxy-desktop -y --execution-timeout=0
等待安装完成即可
随后可以在C盘发现该目录:C:\opt\ros\foxy\x64
测试使用:
call C:\opt\ros\foxy\x64\local_setup.bat #需要先引入环境变量
C:\Users\xxxxx>ros2
usage: ros2 [-h] Call `ros2 -h` for more detailed usage. ...
ros2 is an extensible command-line tool for ROS 2.
......
此电脑-属性-高级系统设置-环境变量-点击Path-添加
C:\opt\ros\foxy\x64\bin
ros2 bag录制与回放,必须引入此路径,否则会报错。
打开两个cmd窗口
cmd窗口1:
call C:\opt\ros\foxy\x64\local_setup.bat
ros2 run turtlesim turtlesim_node
cmd窗口2:
call C:\opt\ros\foxy\x64\local_setup.bat
ros2 run turtlesim turtle_teleop_key
小海龟窗口不要关闭
桌面创建保存bag包目录 bagfile
该目录下,执行命令:
call C:\opt\ros\foxy\x64\local_setup.bat
set path=%path%;C:\opt\ros\foxy\x64\bin #不执行此命令,录制会报错!
ros2 bag record -a
效果如图所示:
随意控制小海龟移动,随后关掉所有窗口
再打开小海龟,播放下面的bag包,查看小海龟是否接收到信息移动起来
打开小海龟:
call C:\opt\ros\foxy\x64\local_setup.bat
ros2 run turtlesim turtlesim_node
播放bag包:(当前命令执行目录为bag包目录)
call C:\opt\ros\foxy\x64\local_setup.bat
set path=%path%;C:\opt\ros\foxy\x64\bin
ros2 bag play rosbag2_2023_06_30-15_50_38 #注意自己的bag包名称
如图所示:
1.管理员身份运行 Developer Command Prompt for VS 2019
2.引入ros2 环境变量: call C:\opt\ros\foxy\x64\local_setup.bat
3.进入自定义消息包目录
4.执行编译命令:colcon build --symlink-install
如图所示:
编译成功会有图标提示
如果编译失败,报错 … is different than the directory …
这是因为两台电脑路径不一致,将build install log 删除,重新编译即可
进阶:
步骤可以简化,第一步和第二步:
C:\Windows\System32\cmd.exe /k “C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\VsDevCmd.bat” -arch=amd64 -host_arch=amd64&& set ChocolateyInstall=c:\opt\chocolatey&& C:\opt\ros\foxy\x64\setup.bat
用户可以自行写脚本,或是创建快捷方式,即可实现一键编译自定义消息包
先说下我是怎么实现的。本来我是想直接通过qt新建ros2工程来实现这个程序,但是一直没搞出来。
最后是直接使用ros2自带的qt,colcon build编译开发。
后面有机会再写。