一、层级拓扑总图(从上到下从属关系)

【全局静止层】
├─ world  世界绝对坐标系
└─ map    地图SLAM全局坐标系
       ↓
【局部过渡层】
odom  里程计坐标系(有漂移)
       ↓
【机器人本体层】
base_link  机器人底盘基坐标系(本体中心)
       ├─ 传感器分支
       │  ├─ laser_link   激光雷达坐标系
       │  ├─ camera_link  相机坐标系
       │  └─ imu_link    IMU惯性坐标系
       │
       └─ 机械臂分支
          ├─ arm_base     机械臂基座坐标系
          └─ end_effector 末端执行器/夹爪坐标系

二、物理安装平面示意图(俯视)

                     前方 X+
          ┌──────────────────────┐
          │      base_link       │
          │    机器人本体中心    │
          │                      │
左 Y+     │  imu_link    laser_link  │ 右 Y-
          │                      │
          │    camera_link       │
          └──────────────────────┘
                      ↓
          arm_base → 机械臂 → end_effector

三、标准轴向右手定则示意图

                  Z+ (朝上)
                  │
                  │
                  └─── X+ (朝前)
                 /
                /
               Y+ (朝左)

旋转定义:
- 绕Z轴 Yaw 偏航(原地左右转向)
- 绕Y轴 Pitch 俯仰(抬头、低头)
- 绕X轴 Roll 横滚(左右侧倾)

四、九大坐标系极简定位说明

  1. world真实物理世界(地球)绝对原点,全局固定
  2. map:SLAM 建图(地图)原点,导航全局定位基准
  3. odom:里程计累积原点,局部连续、长期漂移
  4. base_link:机器人本体中心,所有设备安装基准
  5. laser_link:激光雷达光心 / 几何中心
  6. camera_link:相机镜头光心
  7. imu_link:惯性测量器件中心
  8. arm_base:机械臂固定底座原点
  9. end_effector:夹爪 / 工具 TCP 作业中心点

五、标准 TF 变换链路(工程固定写法)

map → odom → base_link → laser_link
map → odom → base_link → camera_link
map → odom → base_link → imu_link
map → base_link → arm_base → end_effector

为什么机器人要分九大基础坐标系?为什么不能只用一个坐标系?

用最通俗、工程化、能直接写进方案的逻辑给你讲透。

一、先一句话核心结论

机器人有传感器、底盘、地图、里程、机械臂、末端工具,每一个硬件、每一个参考基准位置不一样、运动状态不一样、用途不一样一个坐标系描述不了所有东西,必须按「参考基准 + 物理位置 + 运动特性 + 业务用途」拆成多个独立坐标系,靠 TF2 做互相变换。


二、为什么需要这么多坐标系?5 个核心理由

1. 每个硬件物理安装位置不同

激光、相机、IMU、机械臂,不都在机器人中心

  • 雷达装顶部
  • 相机装前方
  • IMU 装底盘内部
  • 机械臂装侧面

如果只有一个 base_link 原点,没法精准表达传感器真实安装偏移;单独给每个设备建一个坐标系,安装偏移、姿态角度直接固化在 TF 里

2. 运动状态完全不同(固定 / 移动 / 漂移 / 绝对静止)

九大坐标系分 4 种运动属性,不能混为一谈

  1. world / map:全局完全静止
  2. odom:局部连续、长期会漂移
  3. base_link:随机器人整体平移旋转
  4. laser/camera/imu/ 机械臂:相对本体固定关节动态运动

不同运动属性必须分开坐标系,否则定位、融合、控制全乱。

3. 用途职责完全不一样,要各自独立基准

  • map:给全局导航、定点巡逻用
  • odom:给局部运动、平滑轨迹用
  • base_link:所有设备安装基准
  • laser_link:激光原始数据原点
  • camera_link:视觉检测原点
  • imu_link:惯性传感原始基准
  • arm_base / end_effector:机械臂抓取、作业基准

每个业务都要有自己专属原点,混在一起无法解算位姿。

世界上,每个物理设备,都是在自己所在的位置,以及所在的原点,做相对运动!!!

4. 多传感器融合必须各自独立坐标系

激光、视觉、IMU 原始数据都在自己局部坐标系下

  • 雷达点云在 laser_link
  • 图像目标在 camera_link
  • 加速度姿态在 imu_link

再通过 TF2 统一变换到 base_link /map 下做融合没有独立坐标系,多传感器无法对齐、无法融合

5. 解耦设计:换硬件、改安装位置不用改算法

  • 只需要修改静态 TF(偏移量)
  • 感知、导航、规划算法一行代码不用改

这就是 ROS 核心思想:硬件安装与算法逻辑解耦,靠坐标系隔离变化


三、如果强行只用一个坐标系,会发生什么?

  1. 传感器安装位置稍微改动,算法全部要改;
  2. 无法区分全局静止、局部漂移、本体运动
  3. 激光 / 相机 / IMU 数据无法精准坐标变换;
  4. 无法做多传感器融合;
  5. 机械臂正逆运动学无法解算;
  6. RViz 无法正确显示机器人模型和传感器位置;
  7. 导航、避障、定位全部错乱。

四、九大坐标系各自存在的必要性极简总结

  1. world / map:提供全局绝对参考,负责定位与全局导航。
  2. odom:提供无突变局部连续运动基准,弥补 map 定位跳变。
  3. base_link:机器人本体统一基准,所有传感器和机构的父坐标系。
  4. laser/camera/imu_link:各传感器原始数据独立原点,便于标定、变换、融合。
  5. arm_base / end_effector:机械臂运动学与作业专属基准,实现抓取、焊接、作业位姿解算。

每一个坐标系都有不可替代的职责,缺一不可。


五、总结

机器人划分九大基础坐标系,核心原因是:机器人由多传感器、移动底盘、机械臂等多个物理部件组成,各部件安装位置、运动特性、业务用途互不相同;单一坐标系无法同时满足全局定位、局部里程、本体基准、传感器原始测量、机械臂末端作业的解算需求。通过拆分独立坐标系并借助 TF2 完成坐标变换,实现硬件安装与算法逻辑解耦、多传感器数据精准对齐、定位规划与运动学解算标准化,是机器人感知、定位、规划、控制的底层基础。

Logo

电影级数字人,免显卡端渲染SDK,十行代码即可调用,工业级demo免费开源下载!

更多推荐