AI机器人课程 - 第2周作业
👤 基本信息
- 姓名:张皓然
- 学号:20231877
- 日期:2026-03-19
📌 本周目标
- 理解 ROS2 通信机制(Topic)
- 学习 Publisher / Subscriber 模型
- 掌握 ROS2 基本命令
- 实现机器人速度控制
⚙️ 实验内容
1️⃣ ROS2 基本命令实验
查看节点
ros2 node list
查看话题
ros2 topic list
监听位姿信息
ros2 topic echo /turtle1/pose
发布速度控制命令
ros2 topic pub /turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 1.0}, angular: {z: 0.0}}"
2️⃣ Topic 通信实验
本实验使用 ROS2 Topic 通信机制:
- Publisher 发布速度数据
- Subscriber 接收位姿数据
- 使用 turtlesim 实现机器人控制
3️⃣ 机器人直线运动实验
通过 /turtle1/cmd_vel 控制机器人运动:
- linear.x 控制前进速度
- angular.z 控制转向速度
📐 运动学公式
机器人圆周运动公式:
:contentReference[oaicite:0]{index=0}
其中:
- v = 线速度
- r = 半径
- ω = 角速度
🚀 运行结果
Topic 监听结果

小乌龟直线运动

💡 核心知识点
Topic(话题)
ROS2 中节点之间异步通信方式。
Publisher(发布者)
负责发送消息。
Subscriber(订阅者)
负责接收消息。
Twist 消息
用于机器人速度控制:
- linear.x → 前进速度
- angular.z → 旋转速度
⚠️ 遇到的问题与解决
问题1:节点无法通信
原因
Topic 名称不一致。
解决
统一发布与订阅的 Topic 名称。
问题2:机器人不运动
原因
速度参数设置错误。
解决
检查 /turtle1/cmd_vel 参数格式。
🧠 本周总结
本周学习了 ROS2 核心通信机制 Topic。
通过实验:
- 掌握了 Publisher / Subscriber 模型
- 学习了 ROS2 基本命令
- 完成了 turtlesim 机器人控制
- 实现了机器人直线运动
为后续 ROS2 节点开发与机器人控制实验打下基础。