Week 3:ROS2 Python 节点与机器人控制
实验内容
本周学习 ROS2 Python 节点,并使用 Python 程序控制 turtlesim 小乌龟运动。
理论题
1. create_publisher 的作用
create_publisher 用来创建发布者,可以向指定 Topic 发送消息。
例如向 /turtle1/cmd_vel 发布速度消息,就可以控制小乌龟移动。
2. create_timer 的作用
create_timer 用来创建定时器,让程序按照固定时间间隔自动执行函数。
3. 为什么要持续发布命令?
因为速度命令只发布一次时,运动效果不明显。持续发布可以让机器人保持稳定运动。
计算题
题目:正方形边长 3m,速度 1m/s,走完需要多少秒?
每条边直行时间:
3 ÷ 1 = 3 秒
90 度转弯时间:
1.5708 ÷ 1 = 1.5708 秒
总时间:
4 × (3 + 1.5708) = 18.2832 秒
所以走完整个正方形大约需要 18.28 秒。
实验过程
启动 turtlesim:
ros2 run turtlesim turtlesim_node
运行 Python 控制程序:
python3 rectangle_mover.py
实验截图
Python 程序运行

长方形运动结果

总结
通过本周实验,我学习了 ROS2 Python 节点的基本结构,并使用 Publisher 发布 Twist 消息控制小乌龟运动。