rosboard 坐标系说明

167 阅读2分钟

rosboard 是一个可视化 ROS(Robot Operating System)消息的 Web 工具,它本身不生成坐标系,而是展示 ROS 中已有的消息数据(如 /tf/odom/pose 等),这些消息的数据结构中所使用的坐标系,取决于生成这些消息的模块(如导航、定位、SLAM等)。


✅ 回答你的问题:

rosboard 返回的坐标系是什么坐标系?

取决于你查看的数据主题(topic)所代表的内容。


🚗 ROS 中常见的坐标系及其含义:

1. ENU 坐标系(East-North-Up)

  • 常用于无人车 / 飞行器中 GPS / IMU / SLAM 模块
  • X 向东、Y 向北、Z 向上
  • 地图坐标系通常是 ENU,尤其当你从 GPS 或 SLAM 构建地图时

2. Body / Base_Link 坐标系

  • ROS 中机器人自身的坐标系
  • X 向前,Y 向左,Z 向上(符合 REP-103)

3. Map 坐标系

  • 静态地图的全局坐标系(如 SLAM 构建的地图)
  • 通常为 ENU 风格,Z轴朝上

4. Odom 坐标系

  • 机器人根据轮速计、IMU 推算的位姿(里程计坐标系)
  • 初始与 base_link 对齐,随着时间漂移

🧭 如何确认 rosboard 中你看到的是哪种坐标系?

你可以通过以下方式判断:

✅ 查看消息内容

rosboard 中点击 /tf/odom/pose 等 topic,看看:

  • frame_id 是不是 mapodombase_link
  • frame_id: map 通常是 ENU(X 东,Y 北,Z 上)
  • frame_id: odom 是局部动态坐标系,初始位置为机器人起点

✅ 看你用的传感器/定位系统

  • 如果使用 GPS + IMU,通常是 ENU
  • 如果使用 SLAM,则 map 通常也会是 ENU 风格
  • /base_link 始终是机器人自身坐标系

🔍 示例:

假设你在 rosboard 中查看 /tf

json
复制编辑
{
  "header": {
    "frame_id": "map"
  },
  "child_frame_id": "base_link",
  "transform": {
    "translation": {
      "x": 10.0,
      "y": 5.0,
      "z": 0.0
    }
  }
}

这个通常意味着你使用的是 ENU 坐标系:

  • x = 东向 10 米
  • y = 北向 5 米
  • z = 高度

🧠 总结:

坐标系是否 ENUROS 中常见命名
地图坐标系✅ 是map
里程计坐标系✅ 是odom
车辆坐标系❌ 不是base_link
地理坐标❌ WGS84GPS 原始输出

所以:rosboard 本身不定义坐标系,显示的坐标系取决于 ROS topic(如 /tf, /odom)所采用的标准。而在绝大多数现代无人车系统中,mapodom 均使用 ENU 坐标系


如果你愿意提供具体的 topic 示例,我可以帮你分析它的坐标系是哪一种。