机器人算法工程师、智能硬件开发人员、自动化/计算机专业学生、需要掌握ROS/ROS2开发方法的研发人员。
理解ROS/ROS2的核心概念(节点、话题、服务、动作、参数)与通信机制。
掌握ROS2的编程方法(C++/Python)与常用工具(rqt、RViz、TF2、Launch)。
能够独立完成基于ROS2的机器人应用开发与仿真调试。
机器人操作系统概述:ROS/ROS2的发展历程与设计目标;ROS1与ROS2的对比(架构、实时性、跨平台、安全性);ROS2在机器人领域的应用现状;ROS2的发行版本与选型建议(Jazzy、Humble)。
ROS2核心概念:计算图(Computation Graph)的概念;节点(Node)的作用与实现;话题(Topic)的发布/订阅通信模式;服务(Service)的请求/响应通信模式;动作(Action)的带反馈任务通信模式;参数(Parameter)的运行时配置。
开发环境搭建:Ubuntu操作系统安装与配置;ROS2的安装(二进制包安装、源码编译);工作空间(Workspace)的创建与管理;功能包(Package)的创建与依赖管理;集成开发环境(VS Code、CLion)的配置。
ROS2命令行工具:节点管理命令(ros2 node list/info);话题操作命令(ros2 topic list/echo/pub/info);服务操作命令(ros2 service list/call);参数操作命令(ros2 param list/get/set);动作操作命令;记录与重播操作(ros2 bag)。
ROS2编程基础:C++与Python客户端库(rclcpp、rclpy)的使用;发布者(Publisher)与订阅者(Subscriber)的实现;服务端(Service Server)与客户端(Client)的实现;动作服务器(Action Server)与客户端(Client)的实现;自定义消息/服务/动作接口的创建。
rqt工具与RViz可视化:rqt工具集的使用(rqt_graph、rqt_console、rqt_plot、rqt_reconfigure);RViz的基本功能与配置;机器人模型(URDF)的可视化;传感器数据(激光雷达、点云、图像)的显示。
TF2坐标系管理:TF2的作用(管理机器人各部件间的坐标变换);TF树的概念;静态坐标变换的发布与监听;动态坐标变换的发布与监听;TF2在机器人定位与导航中的应用。
Launch文件:ROS2 Launch系统的特点;Launch文件的编写(Python格式);节点的启动与参数配置;条件判断与包含;命名空间与重映射。
ROS2仿真集成:Gazebo仿真环境的安装与配置;机器人模型(URDF/SDF)的创建;传感器(激光雷达、摄像头、IMU)的仿真插件;ROS2与Gazebo的联合仿真方法。
ROS2工具链扩展:ROS2的日志系统;编译工具(colcon)的高级用法;包管理(rosdep)的使用;Docker容器中的ROS2开发;实时内核与ROS2的实时性配置。
机器人视觉与感知:ROS2中的图像传输(image_transport);OpenCV与ROS2的集成;视觉里程计(Visual Odometry)的ROS2实现;AprilTag/ArUco标记的识别与定位。
综合实战项目:基于ROS2的移动机器人应用开发,包含机器人模型构建、传感器数据采集、SLAM建图、自主导航(Nav2)与可视化监控的全流程实现。