ROS2简介与使用
来源
原始文档: ROS2简介.md
核心内容
ROS 2(Robot Operating System 2)是用于构建机器人应用程序的软件开发工具包(SDK),提供构建块和工具链。
ROS2特点
- 管道(中间件): 匿名发布/订阅模式的消息传递系统,支持分布式节点通信
- 工具: 启动、内省、调试、可视化、绘图、日志记录和回放
- 能力: 驱动程序、算法、用户界面的丰富生态系统
- 社区: Open Robotics 维护,全球活跃社区
核心消息类型
地图消息 (nav_msgs/OccupancyGrid)
- 二维占用栅格地图
- 字段: header, info, data
- 用途: 地图显示、路径规划、导航、建图
里程计消息 (nav_msgs/Odometry)
- 机器人运动状态信息
- 用途: 定位、运动控制、状态监控
全局代价地图
- 用于全局路径规划(A*、Dijkstra)
- 任务规划与调度
- 环境建模与分析
- 多机器人协同
局部代价地图
- 实时避障
- 局部路径规划
- 运动决策
- 与传感器数据融合
激光扫描消息 (sensor_msgs/LaserScan)
Header header
float32 angle_min/max
float32 angle_increment
float32[] ranges
float32[] intensities
用途: 障碍物检测、地图构建、定位、目标追踪
路径消息 (nav_msgs/Path)
- Header + PoseStamped[] poses
- 用途: 路径规划结果传递、运动控制参考、可视化
电池状态消息 (sensor_msgs/BatteryState)
float32 voltage, temperature, current
float32 charge, capacity, percentage
uint8 power_supply_status/health/technology
用途: 电量管理、电池健康监测、性能优化
工具
- Turtlesim: 轻量级学习模拟器
- ros2 CLI: 命令行工具,管理、检视 ROS 系统
- rqt: 图形用户界面工具
关键要点
- ROS2 使用 DDS 作为中间件,支持实时性和可靠性
- 消息类型标准化,便于组件复用
- 代价地图分全局和局部两层,分别用于规划和避障
- 丰富的传感器消息类型支持多模态感知
相关实体
- ROS2 - 机器人操作系统第二代
- ROS - 机器人操作系统
- 导航 - 机器人导航
- SLAM - 同步定位与地图构建
- 传感器 - 机器人传感器
- DDS - 数据分发服务