跳到主要内容

坐标系规范

本规范定义算法组与电控组之间传递姿态、角速度、加速度、速度、位置和目标位姿时使用的坐标系约定。所有跨模块、跨板、跨仓库的数据接口均以本规范为准。

1. 本体系 B

本体系 B 采用自然系:

轴向正方向
+X车体正方向,即车辆前进方向
+Y车体左侧
+Z车体上方

角速度正方向遵循右手定则,分别记为 omega_xomega_yomega_z

除非 topic 名或字段名明确标注为 rawsensor 或其他局部坐标系,跨算法组和电控组传递的三维向量字段默认表示为本体系 B 中的坐标分量。

BMI088 原始芯片坐标系基准

2. BMI088 传感器系 S

传感器系 S 由 BMI088 芯片和 C 板实际安装方向决定。标准安装状态下:

以 C 板 USB 口方向作为板级 +Y 安装基准。标准安装状态下:

标准安装状态下,传感器系 S 与本体系 B 一致。

3. BMI088 安装变换

对任意物理三维向量 v

  • v_S 表示该向量在传感器系 S 中的坐标分量。
  • v_B 表示同一向量在本体系 B 中的坐标分量。

R_BS 表示从 SB 的坐标变换矩阵:

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 的偏航角。绕 +Xrol 不是该机构的可控自由度,应保持为 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 对齐。

5. 下位机四元数计算方法

点击查看