ROS2 基础概念 ROS1 vs ROS2 区别 多平台、实时、DDS Python launch、生命周期节点 DDS 中间件:FastDDS、CycloneDDS 等 RMW 抽象层选择 发现、QoS 兼容 节点 话题 服务 动作 参数 话题异步、服务同步、动作长时任务 参数动态配置 工作空间(colcon)与包(package) 环境搭建 发行版:Foxy, Iron 等 Ubuntu 版本匹配与 apt 源配置 rosdep 初始化与依赖安装 colcon build source 节点编程 rclcpp rclpy 基础 API Publisher Subscriber 模式 消息类型与接口定义 Service Client 模式 request-response 同步调用 Action Server Client 可取消、可查询进度 参数服务器:declare_parameter 类型:string、int、double、bool、数组 动态重配置 通信与 QoS 可靠性:Best Effort Reliable 历史:Keep Last Keep 设置 Transient Local 不同 QoS 组合在传感器 控制 地图中的选择 TF2 与坐标系 常见坐标系:map odom map 全局、odom 里程计、base_link 机体 传感器 静态 TF 与动态 TF 发布 里程计、定位驱动 TF Buffer Listener 时间戳与 TF 树完整性 RViz 中调试 TF 树 TF 显示、坐标系轴 时间同步与延迟 传感器与驱动 激光雷达:驱动包、scan 点云转换 相机:image_transport、CameraInfo、cv_bridge IMU 里程计:sensor_msgs 多传感器时间同步:message_filters 导航与运动 Nav2 框架:BT Recovery 全局规划:A*、Dijkstra、Smac Planner 局部规划:DWB、RPP、TEB、MPPI 等 地图服务器、代价地图、多层 costmap 插件 仿真与调试 Gazebo Ignition:世界、模型、传感器仿真 RQt RViz2 可视化 ros2 topic service action bag CLI 调试 ros2 doctor diag bag record play 工程实践 多机通信与主机名配置 launch 文件(Python)组织复杂系统 条件、事件、包含其他 launch 参数 YAML 管理与多机器人命名空间 命名空间 参数文件与 remapping Docker 镜像与部署流程 ROS2 基础镜像 多阶段构建、网络与 GPU