Skip to the content.

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 程序运行

Python运行

长方形运动结果

长方形运动


总结

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