Gazebo 机器人实操:驱动一辆差速小车 第 7 章 Gazebo 机器人实操驱动一辆差速小车学习目标启动官方差分驱动机器人演示世界发布/cmd_vel速度指令驱动机器人观察里程计、TF、激光话题在 RViz 中可视化机器人模型和激光数据理解 URDF/SDF 中连杆与关节的基本概念1. 启动演示世界上一章安装的ros-gz-sim-demos自带一个差速驱动机器人演示一辆蓝色小车带激光雷达ros2 launch ros_gz_sim_demos diff_drive.launch.py弹出两个窗口Gazebo 窗口蓝色小车停在地面上如果不动先点播放按钮RViz 窗口可视化机器人模型如果仿真暂停点 Gazebo 窗口底部的播放按钮。2. 用话题驱动机器人新开终端查看话题ros2 topic list重点看这几个话题/model/vehicle_blue/cmd_vel # 小车速度指令输入 /model/vehicle_blue/odom # 里程计输出 /model/vehicle_blue/scan # 激光雷达数据输出若有让小车一边前进一边转弯ros2 topic pub-r10/model/vehicle_blue/cmd_vel geometry_msgs/msg/Twist\{linear: {x: 2.0}, angular: {z: 0.5}}参数含义-r 10以 10 Hz 持续发布linear.x前进速度 2 m/sangular.z旋转角速度 0.5 rad/s在 Gazebo 窗口里可以看到小车开始移动并在地面上转弯。观察里程计数据另一个终端ros2 topicecho/model/vehicle_blue/odom输出里的pose.pose.position是小车在仿真世界里的坐标twist是当前速度——这就是“传感器”给 ROS 的反馈。停止小车ros2 topic pub-r10/model/vehicle_blue/cmd_vel geometry_msgs/msg/Twist{linear: {x: 0.0}}注意不同版本/世界的话题名可能略有差异。动手前先ros2 topic list确认实际名称这是所有 ROS 2 调试的第一步。3. 查看 TF 坐标变换TFTransform描述机器人各部件之间的坐标关系例如“激光雷达装在底盘上方 0.3 米”。查看当前存在的坐标变换ros2 run tf2_tools view_frames会在当前目录生成frames.pdf也可以实时打印两个坐标系之间的变换ros2 run tf2_ros tf2_echo父坐标系子坐标系先在 RViz 左侧Fixed Frame里填odom或world添加 TF 显示就能看到坐标系之间的连线。TF 是机器人开发的重要基础本章先会观察即可。4. 在 RViz 里看激光雷达演示启动时已经打开了 RViz。如果激光话题存在可以手动添加显示确认话题ros2 topic list | grep scan容器内 bash在 RViz 左侧点击Add→By topic→ 选中激光话题如/model/vehicle_blue/scan类型sensor_msgs/msg/LaserScan→ OK确保Fixed Frame是odom或worldRViz 中会出现一圈点云就是激光雷达“看到”的周围障碍物把小车开到墙边可以实时看到激光点云贴近墙面。5. URDF/SDF 基础连杆与关节机器人在仿真和 ROS 里长什么样由模型文件描述。URDFROS 原生和 SDFGazebo 原生都是 XML 格式核心概念一致连杆Link刚体部件如底盘、轮子、激光雷达有质量和惯性关节Joint连接连杆并定义相对运动如轮子的转动关节一个最简单的“方块机器人” URDF 示意robotnamebox_robot!-- 底盘一个 0.5m 的立方体 --linknamebase_linkvisualgeometryboxsize0.5 0.5 0.1//geometry/visualcollisiongeometryboxsize0.5 0.5 0.1//geometry/collision/link/robot这个模型没有关节只是一个静止的方块。真实的差速小车还需要轮子、转向/转动关节和驱动插件——官方演示世界里的vehicle_blue模型就是完整例子其 SDF 文件里包含差速驱动系统插件负责把/cmd_vel变成轮子转动。本教程不要求手写完整 URDF那是进阶章节的内容但理解“连杆 关节 插件”这个骨架后续看任何机器人模型都能看懂。6. 把话题数据和仿真时间记下来预告仿真期间/clock、/model/vehicle_blue/odom、/scan都是真实可用的 ROS 话题可以随时ros2 topic echo。下一章的 MoveIt 会用到同样的“话题通信”思想第 9 章会教你用 rosbag 把仿真数据录下来回放。常见问题现象原因与解决办法小车不动仿真暂停点播放按钮或 cmd_vel 话题名不对用ros2 topic list确认RViz 里看不到模型检查 Fixed Frame 是否设置为odom/world并确认 RViz 与 Gazebo 同时运行找不到tf2_tools命令执行sudo apt install -y ros-jazzy-tf2-tools激光点云是空的激光话题名可能不同ros2 topic listRViz 报No transform等待几秒让 TF 数据到达或重启 RViz练习题让小车先直行 3 秒再原地旋转 90 度再直行 3 秒观察它的轨迹用/odom验证最终位置。用ros2 topic hz /model/vehicle_blue/odom测量数据频率想想激光雷达数据该用什么频率。在 RViz 中同时显示 TF 和 LaserScan移动小车观察坐标系随小车运动的变化。把/cmd_vel改成一个持续发布正弦速度的ros2 topic pub命令提示--rate与固定值配合即可观察小车蛇形前进。

相关新闻

最新新闻

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现 【免费下载链接】serenity The Serenity Operating System 🐞 项目地址: https://gitcode.com/GitHub_Trending/se/serenity 导读 本文以 getopt(3) 手册 为核心&a…

2026/10/1 19:32:24
轻量服务器还是ECS?大促云服务器选购与避坑实战指南

轻量服务器还是ECS?大促云服务器选购与避坑实战指南

每年大促节点,群里永远有人在问同一个问题:“38元的轻量服务器到底怎么抢?为什么我每次点进去都是已售罄?68元直购和99元的ECS我到底选哪个?”作为一个常年帮团队和自己采购云服务器的老用户,我太清楚这种纠…

2026/9/30 21:32:07
为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南

为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南

为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南 【免费下载链接】agents Multi-harness agentic plugin marketplace for Claude Code, Codex, Cursor, OpenCode, GitHub Copilot, and Google Antigravity 项目地址:…

2026/10/2 15:29:32
PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署

PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署

PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署 【免费下载链接】PaddleOCR Turn any PDF or image document into structured data for your AI. A powerful, lightweight OCR toolkit that bridges the gap between i…

2026/10/1 19:32:23
Spring源码解析:构造器注入的类型转换与候选匹配机制

Spring源码解析:构造器注入的类型转换与候选匹配机制

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 19:32:35
openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由

openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由

openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由 【免费下载链接】openai-agents-python A lightweight, powerful framework for multi-agent workflows 项目地址: https://gitcode.com/GitHub_Trending/op/openai-agents-pyth…

2026/9/30 21:32:11

日新闻

周新闻

月新闻