坐标系规范
本规范定义算法组与电控组之间传递姿态、角速度、加速度、速度、位置和目标位姿时使用的坐标系约定。所有跨模块、跨板、跨仓库的数据接口均以本规范为准。
1. 本体系 B
本体系 B 采用自然系:
| 轴向 | 正方向 |
|---|---|
+X | 车体正方向,即车辆前进方向 |
+Y | 车体左侧 |
+Z | 车体上方 |
角速度正方向遵循右手定则,分别记为 omega_x、omega_y、omega_z。
除非 topic 名或字段名明确标注为 raw、sensor 或其他局部坐标系,跨算法组和电控组传递的三维向量字段默认表示为本体系 B 中的坐标分量。

2. BMI088 传感器系 S
传感器系 S 由 BMI088 芯片和 C 板实际安装方向决定。标准安装状态下:
以 C 板 USB 口方向作为板级 +Y 安装基准。标准安装状态下:
标准安装状态下,传感器系 S 与本体系 B 一致。
3. BMI088 安装变换
对任意物理三维向量 v:
v_S表示该向量在传感器系S中的坐标分量。v_B表示同一向量在本体系B中的坐标分量。
R_BS 表示从 S 到 B 的坐标变换矩阵:
v_B = R_BS * v_S
BMI088 驱动发布角速度和加速度前,必须先完成安装变换:
gyro_B = R_BS * gyro_S
acc_B = R_BS * acc_S
AHRS 输入的角速度和加速度应已经表示为本体系 B 中的坐标分量。由 AHRS 发布的姿态数据,其机体系定义为 B;四元数方向、欧拉角顺序和字段含义必须由对应模块文档或类型名明确说明。
不得在算法侧、控制侧或下游消费者中,通过临时交换轴、取反轴、叠加经验符号的方式补偿 BMI088 安装误差。安装误差只能通过 R_BS 在 BMI088 数据发布前修正。
安装时:
| C 板 USB 口实际朝向 | R_BS |
|---|---|
车体左侧 +Y | [ [1, 0, 0], [0, 1, 0], [0, 0, 1] ] |
车体前侧 +X | [ [0, 1, 0], [-1, 0, 0], [0, 0, 1] ] |
如果安装包含翻面、俯仰或横滚旋转,应按实际三维安装姿态给出完整旋转矩阵,并在对应仓库配置或代码注释中说明。
4. host/target_euler 云台目标字段约定
host/target_euler 沿用历史命名和 ABI 字段名。本文按本体系 B 的轴定义解释字段,避免不同模块按不同欧拉角轴序解释同一字段:
rol表示绕+X轴的目标角。pit表示绕+Y轴的目标角。yaw表示绕+Z轴的目标角。
对当前两轴云台机构,实际可控自由度为绕 +Y 的抬仰角和绕 +Z 的偏航角。绕 +X 的 rol 不是该机构的可控自由度,应保持为 0。
对本体系目标点 p_B = [x_B, y_B, z_B]:
yaw = atan2(y_B, x_B)
pit = atan2(z_B, sqrt(x_B^2 + y_B^2))
rol = 0
其中:
yaw = 0表示目标位于车体正前方+X。yaw > 0表示目标位于左侧。pit表示相对本体系水平面的抬仰角。pit < 0表示目标位于水平面上方。rol当前自瞄链路保留为0,仅用于 ABI 对齐。