ROS2 Lyrical实验7外设与回顾
ros1indigo→ros2lyrical所有版本通用的7个ROS1、ROS2实验。
外设非常多,但大部分可用的,也就是游戏手柄🎮和摄像头📷这类,专业设备通常也不会购买。
第三方丰富的外部设备接入ROS1/ROS2系统使用技能。
手柄遥控

所有数据都被加上时间标签。
ROS2 给每条消息附加时间标签,用于记录数据产生时刻。实现多传感器数据时间对齐,消除消息传输延迟影响;支持 TF 动态坐标查询,区分消息时序、剔除过期数据;同时支持 rosbag 时序录制与回放,保证机器人感知、控制逻辑的时间一致性。

添加鼠标遥控的相关软件库:
teleop_tools(mouse_teleop):ROS2 官方遥控工具集,其中mouse_teleop节点读取鼠标位置,直接输出`Twist`速度指令,可控制小乌龟 / 机器人
思考题
使用游戏手柄控制Turtlesim小乌龟:
使用joy软件包读取游戏手柄输入,joy_node节点采集摇杆与按键信息并发布/joy话题;自定义 ROS2 节点订阅手柄话题,将摇杆信号转换为速度指令cmd_vel,发送给 turtlesim,从而实现游戏手柄遥控小乌龟运动。
用到软件库
joy:ROS2 官方手柄驱动包,读取游戏手柄按键、摇杆数据,发布/joy话题(就是截图里运行的joy_node)turtlesim:小乌龟仿真包rclpy:ROS2 Python 客户端库,用来编写手柄消息订阅 + 速度指令发布的转换节点
原理
joy_node读取手柄硬件,持续发布/joy话题(摇杆 axes、按键 buttons); 自定义节点订阅/joy,把摇杆的偏移量转换成小乌龟的线速度、角速度,发布/turtle1/cmd_vel,驱动小乌龟移动。
| 1 | ROS2 Lyrical实验1系统入门-CSDN博客 |
| 2 | ROS2 Lyrical实验2架构与核心-CSDN博客 |
| 3 | ROS2 Lyrical实验3工具进阶-CSDN博客 |
| 4 | ROS2 Lyrical实验4机器人模型-CSDN博客 |
| 5 | ROS2 Lyrical实验5导航Nav2-CSDN博客 |
| 6 | ROS2 Lyrical实验6机械臂MoveIt2-CSDN博客 |
回顾(75分模板):
项目名称 | 实验一 ROS1/ROS2[Lyrical]入门 | 成绩 | |
| 设计要求: 机器人操作系统安装、虚拟机、Docker、嵌入式系统 | |||
实验记录(70分)学习掌握如何查询系统软件包具体的各项信息,例如发布时间。 例1:确认系统软件包为最新版本: sudo apt install ros-lyrical-desktop-full
系统软件为2026年8月17日发布。
把环境变量自动加入终端(每次打开终端自动加载 ROS) echo "source /opt/ros/lyrical/setup.bash" >> ~/.bashrc source ~/.bashrc 思考题(30分):
如上是什么原因导致的? 网络连接问题。不是 ROS1/ROS2 安装坏了,只是软件源访问不了。 ROS1/ROS2 本体已经安装好了,域名解析警告不影响 ros2 run、ros2 launch 等基础开发,只是无法升级这 4 个包。可以先正常使用 ROS2。 | |||
项目名称 | 实验二 ROS2[Lyrical]架构及概念 | 成绩 | |
| 内容:机器人操作系统文件系统级、计算图级、社区级、创建功能包并实现功能等 | |||
实验记录(70分)掌握ROS2基础软件包基本使用技能。
运行turtlesim功能包,并实现特定的轨迹运动。 ros2 run turtlesim turtlesim_node ros2 topic pub -r 10 /turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 1.0}, angular: {z: 0.5}}" 补充知识点控制话题:
常用修改
思考题(30分):键盘遥控小乌龟实验
ros2 run turtlesim turtle_teleop_key ✅ 激活这个终端窗口,必须点击选中这个终端,然后就可以用方向键控制小乌龟:
⚠️ 重要坑:光标必须聚焦在 原理简单说明
排查常见问题
| |||
项目名称 | 实验三 可视化和调试工具(Lyrical) | 成绩 | |
| 内容:调试ROS2[Lyrical]节点、日志消息、检测系统状态、设置动态参数、roswtf、可视化节点诊断、绘制标量数据图、图像可视化、3D可视化、保存与回放数据、插件 | |||
实验记录(70分)熟练应用ROS2功能包各项调试定制参数修改等工具。 打开图形化调试界面rqt:
具体的各种类型调试工具在Plugins标签下。 如果控制turtlesim机器人发生碰撞,会在对应窗口弹出提示。
图3.1:机器人完成指定动作回馈信息
图3.2:机器人右侧发生碰撞,控制台报错 时间差异,终端和图形化调试出现的时间格式不一致。
如上消息时间是1970年1月1日以来秒和纳秒的累计计数,北京时间 UTC+8:2026-07-28。 图形化rqt动态参数重配reconfigure,更改背景色:
这是 ROS2 turtlesim + rqt 参数动态重配置(rqt_reconfigure) 的实验界面:
实验原理
思考题(30分):如何修改机器人轨迹色彩,例如,轨迹曲线为黄色?
这张图同时用到 turtlesim 仿真、键盘遥控、rqt 服务调用(Service Caller),实现修改海龟画笔颜色、粗细:
核心原理ROS2 服务(Service)通信模型: 绿色如下,可以通过rqt中特定配置实现。
| |||
项目名称 | 实验四 3D建模与仿真(Lyrical) | 成绩 | |
| 内容:自定义机器人3D模型,创建一个URDF文件、xacro文件、ROS1/ROS2[Kinetic/Lyrical]仿真 | |||
实验记录(70分)自主开发设计或定制机器人各项软件包。 从头开始构建使用URDF的可视化机器人模型
可以调整Alpha的值改变透明度。 这是 ROS2 RViz2 可视化 URDF 机器人模型实验:
ros2 launch urdf_tutorial display.launch.py model:=<你的urdf文件> | |||
思考题(30分):
URDF是一种XML格式的文件,用于描述机器人的链接,关节,传感器等部件。由于代码量较为庞大,拓展外部结构时,维护将变得极为不方便;Xacro具有更强的灵活性,可以使用宏定义和条件语句等功能来更加方便地定义和调整模型的颜色,特别是当需要进行更复杂的逻辑操作时,Xacro灵活的语法和丰富的功能将得到更直观的体现。 2.ROS机器人进行三维仿真,可视化和仿真的工具是哪些? 三维机器人模型:URDF(Unified Robot Description Format)是一种用于描述机器人模型的XML文件格式。URDF文件包括机器人的关节、传感器、链接和碰撞体等元素的详细信息,可以用于进行机器人的仿真、运动规划和控制等任务。 可视化工具:RViz是ROS内置的3D可视化工具,用于显示和调试机器人模型和传感器数据。它可以显示机器人的CAD模型、传感器数据以及路径规划信息。 仿真工具: 1.Gazebo是一个用于机器人仿真的强大工具。它允许用户模拟机器人在不同环境下的行为,并提供了ROS接口,使得ROS机器人可以方便地与Gazebo进行集成。 2.Webots是一个强大的机器人仿真软件,可用于ROS机器人的仿真。它支持多种编程语言,包括ROS接口,可以方便地与ROS机器人进行集成。 3.CoppeliaSim是另一个流行的机器人仿真工具,可以与ROS机器人进行集成,并提供了强大的运动规划和控制功能。(CoppeliaSim是V-REP的升级版) | |||
项目名称 | 实验五 导航功能 | 成绩 | |
| 内容:创建变换、发布传感器消息、里程数据信息、创建基础控制器、创建地图,机器人配置、全局和局部代价地图、rviz详细配置、自适应蒙特卡洛定位,避障,目标发送 | |||
实验记录(70分)掌握导航功能基础使用。 完成实验1-4的基础上,运行官方案例,完成如下功能: 1. 启动命令 作用:一键启动整套导航仿真环境
2. 三张图对应模块 | |||
思考题(30分):1.如何优化导航效果,例如提升导航中机器人的行驶速度。 环境:ROS2 + Nav2 + TurtleBot3 Gazebo 仿真 ⚠️ 提速不能只改一个参数,速度上限、加速度、代价地图、规划器参数需要配套修改,否则机器人容易撞障碍物、抖动、导航失败。 提升机器人行驶速度,修改nav2_params.yaml:
调试要点:参数逐步上调,速度越高碰撞风险越大;若出现振荡、丢定位,降低速度或增大安全膨胀半径。 其他导航效果优化:开启路径平滑,合理设置目标到达容差,选用高质量地图。 | |||
项目名称 | 实验六 使用MoveIt! | 成绩 | |
| 内容:机械臂、体系结构、简单运动规划、抓取放置任务 | |||
实验记录(70分)完成moveit2相关功能包安装和配置。
该实验基于 MoveIt2 在 RViz 中对 Panda 机械臂进行运动规划:设置目标位姿,规划器求解无碰撞轨迹,可预览并执行机械臂运动,支持调整运动速度、规划时间等参数。 1. 界面整体说明窗口标题: 2. Displays 面板(可视化插件)
3. MotionPlanning 运动规划面板(核心)基础设置
操作按钮(Commands)
选项
4. 实验原理
5. 实验操作步骤
6. 参数优化(报告可用)
| |||
思考题(30分):如何结合实验5导航nav2和实验6移动抓取moveit,设计如下任务?
任务目标复合机器人(移动底盘 + 机械臂)自主完成:导航到抓取台 → 抓取方块 → 导航到放置台 → 释放方块。 系统组成
任务流程(简化)
关键优化要点
实验预期结果机器人能够自主避开障碍物,导航到达目标工作台;机械臂规划无碰撞轨迹,稳定抓取方块;携带物体导航至放置点,完成物体放置,全程无碰撞。 | |||
项目名称 | 实验七 ROS2[Lyrical]外设 | 成绩 | |
| 内容:使用游戏手柄、使用RGBD传感器,ROS1/ROS2[Kinetic/Lyrical]摄像头驱动、ROS1/ROS2[Kinetic/Lyrical]与OpenCV库、标定摄像头、视觉里程计,点云库、可视化点云、滤波和缩减采样、配准与匹配、点云分区 | |||
实验记录(70分)第三方丰富的外部设备接入ROS1/ROS2系统使用技能。 手柄遥控 所有数据都被加上时间标签。 ROS2 给每条消息附加时间标签,用于记录数据产生时刻。实现多传感器数据时间对齐,消除消息传输延迟影响;支持 TF 动态坐标查询,区分消息时序、剔除过期数据;同时支持 rosbag 时序录制与回放,保证机器人感知、控制逻辑的时间一致性。 添加鼠标遥控的相关软件库: teleop_tools(mouse_teleop):ROS2 官方遥控工具集,其中mouse_teleop节点读取鼠标位置,直接输出`Twist`速度指令,可控制小乌龟 / 机器人 思考题(30分):使用游戏手柄控制Turtlesim小乌龟: 使用 用到软件库
原理
| |||
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐




















所有评论(0)