Skip to the content.

Week 2:ROS2 与 Turtlesim 实验

实验内容

本周学习了 ROS2 的基本命令,并使用 turtlesim 小乌龟完成简单运动控制实验。


理论题

1. 发布者和订阅者的区别

发布者负责发送消息,订阅者负责接收消息。
它们通过 Topic 进行通信。

2. 同时控制两个机器人需要什么?

需要使用不同的话题或命名空间。
例如:/turtle1/cmd_vel/turtle2/cmd_vel


计算题

已知:

圆半径:

r = v / ω = 1.5 / 0.75 = 2 m

转一圈时间:

T = 2π / ω = 6.28 / 0.75 ≈ 8.37 s


实验命令

启动环境:

source /opt/ros/rolling/setup.bash

启动小乌龟:

ros2 run turtlesim turtlesim_node

查看节点:

ros2 node list

查看话题:

ros2 topic list

监听位置:

ros2 topic echo /turtle1/pose

画圆:

ros2 topic pub --rate 10 /turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0}, angular: {z: 1.0}}"


正方形运动

前进命令:

ros2 topic pub --rate 10 /turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0}, angular: {z: 0.0}}"

左转命令:

ros2 topic pub --rate 10 /turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 0.0}, angular: {z: 1.0}}"

停止命令:

ros2 topic pub --once /turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 0.0}, angular: {z: 0.0}}"


运行截图

运行截图保存在 week2/img/ 文件夹中。


总结

通过本周实验,我学会了 ROS2 的基本命令,并能够用命令行控制 turtlesim 小乌龟运动。

实验截图

查看节点

查看节点

查看话题

查看话题

启动 turtlesim

启动 turtlesim

画圆实验

画圆实验