Week 2:ROS2 与 Turtlesim 实验
实验内容
本周学习了 ROS2 的基本命令,并使用 turtlesim 小乌龟完成简单运动控制实验。
理论题
1. 发布者和订阅者的区别
发布者负责发送消息,订阅者负责接收消息。
它们通过 Topic 进行通信。
2. 同时控制两个机器人需要什么?
需要使用不同的话题或命名空间。
例如:/turtle1/cmd_vel 和 /turtle2/cmd_vel。
计算题
已知:
- 线速度 v = 1.5 m/s
- 角速度 ω = 0.75 rad/s
圆半径:
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

画圆实验
