1. 为什么我们需要坐标系转换?
想象一下你正在玩一款无人机模拟游戏。当你推动摇杆向前,无人机就会向前飞行——这是机体坐标系下的操作。但如果你想让无人机往"正北方向"飞行,就需要知道当前机头方向与地理北极的夹角。这个从"机身前后左右"到"东南西北上下"的转换过程,就是坐标系转换的核心价值。
在实际的惯性导航系统(INS)中,加速度计和陀螺仪测量的数据都是基于机体坐标系的。比如加速度计检测到X轴0.5g的加速度,这个X轴是跟着无人机机身一起旋转的。而导航系统需要的是"朝北偏东30度方向速度增加5m/s"这样的地理信息。这就好比把"我向前走了三步"翻译成"向东北方向移动了2.1米"。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 坐标系的基础定义
2.1 机体坐标系:移动的参照系
机体坐标系(Body Frame)是牢牢固定在运动物体上的三维坐标系。以消费级无人机为例:
- X轴:永远指向机头方向(通常是有螺旋桨或摄像头的一端)
- Y轴:指向机身右侧(从机尾看去的右手边)
- Z轴:垂直向下指向地面(符合右手定则)
这个坐标系会随着机体的每一个俯仰、横滚动作而旋转。我拆解过的大疆Mavic系列无人机,其IMU(惯性测量单元)的传感器数据就是以这个坐标系为基准输出的。实测发现当无人机做"点头"动作时,X轴加速度计读数会有明显波动,这就是典型的机体坐标系特征。
2.2 导航坐标系:不变的锚点
导航坐标系(Navigation Frame)则是固定在地球表面的全局参照系。最常用的是NED(北-东-地)坐标系:
- X轴:指向地理正北(不是磁北)
- Y轴:指向地理正东
- Z轴:垂直指向地心
在自动驾驶领域,高精地图就是建立在这样的坐标系中。去年测试某L4级自动驾驶系统时,其定位模块输出的车辆位置就是NED坐标,比如(39.9042°N, 116.4074°E, 50.3m),这直接对应着导航坐标系的三个维度。
3. 传感器数据的坐标系特征
3.1 加速度计数据的秘密
机体坐标系下的加速度计读数包含两个关键信息:
- 运动加速度:由机体运动产生
- 重力分量:始终指向地心
举个例子,当四旋翼无人机悬停时:
python复制accel_body = [0.0, 0.0,
