Week 3 作业记录:GitHub SSH、VS Code 与 ROS2 命令行交互
1. 学习目标
- 复习 Python 程序的变量、函数、循环和模块导入。
- 理解机器人运动控制中线速度、角速度和轨迹的关系。
- 通过 ROS2 控制 TurtleSim 画圆,验证速度控制思想。
2. 课程重点
- 编程基础:变量、条件判断、循环、函数。
- 机器人基础:机器人位置、姿态、速度、坐标系。
- ROS2 控制:发布速度消息控制机器人运动。
- 实验脚本:
turtle_circle_publisher.py
3. 实验过程
3.1 启动 TurtleSim
ros2 run turtlesim turtlesim_node
3.2 控制小乌龟画圆
画圆的关键是同时给小乌龟设置前进速度和旋转速度:
- 只有
linear.x:直线运动 - 只有
angular.z:原地旋转 linear.x与angular.z同时存在:圆形或弧线运动
示例控制思路:
msg.linear.x = 1.0
msg.angular.z = 1.0
publisher.publish(msg)
运行本周脚本:
cd week3
python3 turtle_circle_publisher.py
3.3 实验结果
小乌龟在仿真窗口中留下圆形轨迹,说明速度控制命令成功发布。

4. 核心理解
- 机器人运动可以拆成线速度和角速度两个部分。
- ROS2 中常用
Twist消息表达速度控制命令。 - 圆形轨迹不是直接“画圆”,而是通过连续发布速度指令让机器人自然运动出来。
linear.x / angular.z的比例决定圆的半径,这也是机器人运动学中速度分解的直观例子。
5. 问题与解决
- 如果圆太大或太小,可以调整
linear.x / angular.z的比例。 - 如果轨迹不连续,需要持续发布速度消息,而不是只发布一次。
6. 本周总结
本周把 Python 基础和机器人运动联系起来,理解了速度控制与轨迹生成之间的关系,并完成了 TurtleSim 画圆实验。