我的机器人课程作业

AI Robotics 课程作业整理

View project on GitHub

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.xangular.z 同时存在:圆形或弧线运动

示例控制思路:

msg.linear.x = 1.0
msg.angular.z = 1.0
publisher.publish(msg)

运行本周脚本:

cd week3
python3 turtle_circle_publisher.py

3.3 实验结果

小乌龟在仿真窗口中留下圆形轨迹,说明速度控制命令成功发布。

TurtleSim 圆形运动

4. 核心理解

  • 机器人运动可以拆成线速度和角速度两个部分。
  • ROS2 中常用 Twist 消息表达速度控制命令。
  • 圆形轨迹不是直接“画圆”,而是通过连续发布速度指令让机器人自然运动出来。
  • linear.x / angular.z 的比例决定圆的半径,这也是机器人运动学中速度分解的直观例子。

5. 问题与解决

  • 如果圆太大或太小,可以调整 linear.x / angular.z 的比例。
  • 如果轨迹不连续,需要持续发布速度消息,而不是只发布一次。

6. 本周总结

本周把 Python 基础和机器人运动联系起来,理解了速度控制与轨迹生成之间的关系,并完成了 TurtleSim 画圆实验。