在小海龟示例上运行命令行
Linux命令行
linux命令默认大家都会
ROS2的命令行工具都以 ros2 开头,后跟命令、动词和参数
运行小海龟节点(node)仿真器
格式:ros2 run <package_name> <executable_name>
bash
ros2 run turtlesim turtlesim_node回车,则打开了一个有小海龟的图形化界面
新建另一个终端,运行:
bash
ros2 run turtlesim turtle_teleop_key这样就能通过键盘控制小海龟运动,但注意鼠标光标一定要在该终端里闪烁
bash
ros2 node list #查看正在运行哪些节点
ros2 node info /turtlesim #查看某个特定节点信息话题(topic)
再新建一个终端运行:
bash
ros2 topic list #查看当前有哪些话题可以看到输出:
bash
/parameter_events
/rosout
/turtle1/cmd_vel
/turtle1/color_sensor
/turtle1/pose查看某个话题:
bash
ros2 topic echo /turtle1/pose可以看到终端不断输出海龟的pose信息
也可以通过pub命令发布话题去控制海龟行为
bash
ros2 topic pub --rate 1 /turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0, y: 0.0, z: 0.0}, angular:{x: 0.0, y: 0.0, z: 1.8}}"注意:冒号后面一定要跟空格,少了一个空格都不行
--rate 1 表示一秒发布一次指令
可以看到海龟做圆周运动
服务(Service)
同样有list
我们调用这样一个服务:
bash
ros2 seice call /spawn turtlesim/srv/Spawn "{x: 2,y: 2, theta: 0.2, name: 'abc'}"可以看到产生了一个新海龟,我们规定了位置和角度,以及名字(abc)
再次运行
bash
ros2 topic list可以看到输出变为:
bash
/abc/cmd_vel
/abc/color_sensor
/abc/pose
/parameter_events
/rosout
/turtle1/cmd_vel
/turtle1/color_sensor
/turtle1/pose也就是说我们成功添加了新的接口
我们把之前圆周运动的话题命令复制过来,把turtle1 改成 abc
bash
ros2 topic pub --rate 1 /abc/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0, y: 0.0, z: 0.0}, angular:{x: 0.0, y: 0.0, z: 1.8}}"可以看到现在是新的海龟做圆周运动了
bag
使用这个功能能记录运行的数据:
第三个终端运行:
bash
ros2 bag record /turtle1/cmd_vel然后在第二个终端键盘用键盘控制海龟走一段路程
当你想要停止的时候,就按下Ctri+C停止第三个终端
可以发现目录下多了一个文件夹
运行:
bash
ros2 bag play rosbag2_2026_06_08-14_38_08/ #play 后面直接按下tab自动补全,这里是我电脑上的文件夹名称!可以看到海龟在重复我们之前录制的运动
