基于windows的ROS2。
参考:Introducing turtlesim and rqt — ROS 2 Documentation: Galactic documentation
turtlesim是最经典的起始教程,我们从这里开始,运行下面的指令,
ros2 pkg executables turtlesim
会输出下面的信息,
turtlesim draw_square
turtlesim mimic
turtlesim turtle_teleop_key
turtlesim turtlesim_node
如果你打开安装目录的话,能在文件夹(C:\dev\ros2_galactic\Lib\turtlesim)下面找到这4个可执行文件。这样我们也不难理解,ros2 run这个指令后面,其实就是一个可执行的项目,后面跟着的就是这个项目下面的可执行文件,整体结构是这个样子的,
ros2 run
(1)turtlesim
接下来我们启动一下这个小乌龟,记住每个窗口都要运行call C:\dev\ros2_galactic\local_setup.bat,以启动ROS2环境,我这里假设所有窗口都已经运行了这个启动指令。
打开一个控制台窗口,输入
ros2 run turtlesim turtlesim_node
这里小乌龟窗口会弹出来,
打开另一个窗口,输入,
ros2 run turtlesim turtle_teleop_key
这时,在该窗口保持激活的情况下按方向键,你会看到动起的小乌龟。
然后,你可以用一些ROS2的指令来查看状态或进行某项操作,这些指令包括
ros2 node list
ros2 topic list
ros2 service list
ros2 action list
例如,我再打开一个cmd窗口,输入ros2 topic list,就能看到下面的信息,
> ros2 topic list
/parameter_events
/rosout
/turtle1/cmd_vel
/turtle1/color_sensor
/turtle1/pose
整体如下图所示,
通常情况下,我们按官网的安装方法安装的ROS2是已经有rqt的,我们可以直接运行。在保持上面前两个窗口不关闭的情况下,我们再打开一个窗口,输入指令“rqt”(带强制查找service的指令是:rqt --force-discover),即可启动图形界面,然后再选择菜单Plugins > Services > Service Caller
就能出现下面的界面(记住,前面启动的turtlesim窗口不能关闭)
这里spawn是培育的意思,所以如果我们再call一下这个service,就会创建另一个小乌龟。
注意这里名字不能写成turtle1,因为这个名字已经被前面创建的那只小乌龟占有了。
此时,turtlesim_node的窗口输出如下,
生成的小乌龟在左下角
再选择菜单Plugins > Topics > Topic Monitor,就可以同时看到turtle1和turtle2这两个node了。
和官网不同,我这里很多node没有在rqt-> service node中出现,目前还不知道是什么BUG。