Skip to content

坐标、安装与零点 ​

设置顺序 ​

安装方向、输出数据轴向、工作模式和姿态零点互相关联。零点按当前生效的安装方向和输出数据轴向记录,因此先设前三项,重启生效后再设零点:

  1. 设置安装方向 URFR、输出数据轴向 COORD 和工作模式,SAVECONFIG 后 REBOOT。
  2. 重启后用 LOG USRCONFIG 读回,再抬车头、右侧下沉,确认姿态符号,方法见安装方向。
  3. 执行 CONFIG ATT RST 5 清除旧零点,再按需设置新零点,SAVECONFIG 保存。

重启前设置的零点按旧设置记录,重启后不再适用。改过安装方向后,旧零点不再可靠,姿态会出现固定偏差,所以第 3 步先清除旧零点。固件升级和恢复出厂之后,也要按这个顺序重新设置安装方向、输出数据轴向和零点,并验证。

坐标系与方向约定 ​

模块涉及三个右手坐标系:

坐标系定义
传感器坐标系固联于模块,X / Y / Z 轴方向印在外壳或 PCB 丝印上,是安装方向编码的参照。
载体系(b 系)输出数据所在的坐标系。安装方向声明传感器坐标系的三个轴在载体上的指向;输出数据轴向决定数据按“右、前、上”(RFU,默认)还是 ROS 的“前、左、上”(FLU)表达。默认 URFR 024、COORD 0 且水平正放时,载体系与传感器坐标系重合。
世界系(n 系)姿态的参考系。COORD 0 下为 东北天 ENU(X 指东、Y 指北、Z 指天);COORD 4(ROS,6 轴)下 X 指上电时的车头方向、Y 向左、Z 向上。6 轴(相对航向)下水平轴不指向真实的东、北,见航向约定。

旋转正方向遵循右手定则:右手拇指指向轴正向,四指弯曲方向即为该轴正旋转方向。载体系两种轴向约定的并排图见姿态表示。

姿态表示 ​

模块同时输出 欧拉角 与 四元数,两者描述同一个载体系到世界系的旋转 Qb2n。

  • 欧拉角:横滚 roll、俯仰 pitch、航向 yaw,单位度。量程 roll ∈ [−180°, 180°],pitch ∈ [−90°, 90°],yaw ∈ [−180°, 180°]。
  • 四元数:顺序 WXYZ(q0 为标量部分)。

欧拉角的旋转顺序、各角所绕的轴和正方向随输出数据轴向而变,这是最容易套错公式的地方:

输出数据轴向载体系旋转顺序roll 绕pitch 绕yaw 绕抬车头时 pitch右侧下沉时 roll
右-前-上(COORD 0,默认)RFU312(先 Z,再 X,最后 Y)Y 轴X 轴Z 轴正正
ROS(COORD 4,REP-103)FLU321(先 Z,再 Y,最后 X)X 轴Y 轴Z 轴负正

两种配置的互转公式见附录:姿态互转。两者的载体轴不同、俯仰符号相反,切换后应从四元数按对应公式重新提取欧拉角,不能只给某个角加减固定角度。

注意

俯仰接近 ±90°:欧拉角不再唯一,roll 和 yaw 相互耦合,读数可能跳变或锁定。高仰角应用请使用四元数。

航向约定 ​

各协议的 yaw 表示不同,解析时按下表逐项对应:

输出位置航向表示正方向
HI91 / HI83原始 yaw,±180°逆时针为正(从上方俯视)
Modbus YAW 寄存器原始 yaw,±180°逆时针为正
J1939 0xFF41 前 4 字节罗盘航向,0–360°顺时针为正
J1939 0xFF41 后 4 字节原始 yaw,±180°逆时针为正
  • 6 轴等相对航向模式:yaw 为相对航向,COORD 0 和 COORD 4 下都以上电时的方向为 0,随时间缓慢漂移。
  • 9 轴模式:yaw 参考磁北,车头朝北时为 0(需要 COORD 0,见输出数据轴向)。模块不输出真北修正航向,需要真北时由主机按使用地点、日期和磁偏角模型修正。9 轴航向依赖地磁校准,见地磁校准。
  • 罗盘航向(J1939 0xFF41 前 4 字节)等于 COORD 0 下 yaw 取反后折算到 0–360°:9 轴下车头朝北为 0,朝东为 90°。9 轴下执行 RST 0 后,罗盘航向以置零方向为 0°,不再指向磁北。需要保持磁北参考时,只用 RST 2 / RST 3 校平。

输出数据轴向 ​

COORD 选择输出数据的 X / Y / Z 按哪种约定对应载体。它与安装方向分工不同:安装方向声明模块怎样装在载体上,输出数据轴向只决定数据怎样表达。

text
CONFIG IMU COORD <VAL>
VAL输出数据轴向数据 X / Y / Z使用场合
0右-前-上(默认)车右 / 车头方向 / 向上所有工作模式
4ROS(REP-103)车头方向 / 车左 / 向上6 轴(相对航向)接入 ROS

使用 MRU 输出以及 9 轴模式时,保持 COORD 0。倾角和罗盘航向始终按右-前-上计算,不受 COORD 影响。只写入 0 或 4。欧拉角的旋转顺序和各角的正方向见姿态表示。

例如 6 轴接入 ROS:

text
CONFIG IMU COORD 4

保存并重启后生效,流程见配置流程与保存。重启后读回 COORD,用安装方向一节的方法检查姿态符号,再按设置顺序重设零点。

  • COORD 影响加速度、角速度、磁场、四元数和欧拉角。
  • 接入 ROS 时选 4:数据按 REP-103 的 base_link 轴向(前、左、上)输出,模块的实际安装朝向用安装方向声明。
  • Modbus 写寄存器 0x0007(COORD),J1939 写参数地址 0x0007。CHCenter 在配置对话框“工作模式”页的“输出数据轴向”一节设置。

安装方向 ​

模块非默认方向安装时,用 URFR 声明外壳或 PCB 丝印上的 X / Y / Z 箭头分别指向载体的哪个方向,模块据此把输出对齐到载体。安装方向只描述安装,与输出数据轴向无关。

text
CONFIG IMU URFR <CODE>

<CODE> 为三位十进制数字 ABC(默认 024)。LOG USRCONFIG 读回时省略前导 0,显示为 URFR=24。

编码无需自行推算,按模块在载体上的朝向查表选取。三个方向必须构成右手系,共 24 种合法编码,只写入下方编码表内的编码。编码表中的“箭头指向”是印字 X / Y / Z 箭头在载体上的实际指向:前 = 车头方向,右 = 驾驶员的右手边。

常见安装:

安装方式命令
水平正装(默认)CONFIG IMU URFR 024
水平,绕 Z 转 +90°CONFIG IMU URFR 304
水平,绕 Z 转 180°CONFIG IMU URFR 134
水平,绕 Z 转 −90°CONFIG IMU URFR 214
倒装(绕 X 轴翻转)CONFIG IMU URFR 035

其他安装方式查下面的 24 种编码表。DATA 列是编码的十六进制值,用于写入 Modbus 寄存器 0x00A6(URFR)或 J1939 参数地址 0x00A6。在 CHCenter 配置对话框的“安装”页,用“X 箭头指向”“Y 箭头指向”两个下拉框选择,Z 自动确定,取值对应下表第一列。CHCenter 的 Modbus 和 J1939 配置窗口同样有“安装”页;倾角仪型号的配置窗口没有该页。

箭头指向(X,Y,Z)命令DATA(hex)
右,前,上CONFIG IMU URFR 0240018
右,后,下CONFIG IMU URFR 0350023
右,下,前CONFIG IMU URFR 043002B
右,上,后CONFIG IMU URFR 0520034
左,前,下CONFIG IMU URFR 125007D
左,后,上CONFIG IMU URFR 1340086
左,上,前CONFIG IMU URFR 142008E
左,下,后CONFIG IMU URFR 1530099
前,右,下CONFIG IMU URFR 20500CD
后,右,上CONFIG IMU URFR 21400D6
上,右,前CONFIG IMU URFR 24000F0
下,右,后CONFIG IMU URFR 25100FB
前,左,上CONFIG IMU URFR 3040130
后,左,下CONFIG IMU URFR 315013B
下,左,前CONFIG IMU URFR 3410155
上,左,后CONFIG IMU URFR 350015E
前,上,右CONFIG IMU URFR 4020192
后,下,右CONFIG IMU URFR 413019D
下,前,右CONFIG IMU URFR 42101A5
上,后,右CONFIG IMU URFR 43001AE
前,下,左CONFIG IMU URFR 50301F7
后,上,左CONFIG IMU URFR 5120200
上,前,左CONFIG IMU URFR 5200208
下,后,左CONFIG IMU URFR 5310213

例如模块绕 Y 轴翻转倒装:

text
CONFIG IMU URFR 125

保存并重启后生效,流程见配置流程与保存。重启后按下面的方法验证,再按设置顺序重设零点。

验证安装方向:重启后用 LOG USRCONFIG 确认读回的 URFR 与所设一致,再看姿态符号。读回的 URFR 与所设不一致,或姿态符号与下面的预期不符,说明编码选错、没有生效,或模块的实际安装与编码不一致;COORD 与所设不符时同样先核对读回值。

  • 水平静止,抬车头:COORD 0 下 pitch 为正,COORD 4(ROS)下 pitch 为负。
  • 右侧下沉:两种输出数据轴向下 roll 均为正。
  • 车头向左转(从上方俯视逆时针):yaw 增大。

姿态零点与校平 ​

RST 在当前姿态上设置用户零点,用于消除安装倾斜,或把当前航向作为参考。执行前让载体静止,并确认 MAIN_STATUS 的 ATT_CONV 已清零(见 MAIN_STATUS 状态字),否则运动会被记入零点。

text
CONFIG ATT RST <VAL>
VAL动作掉电保持
0全部归零:当前 roll / pitch 置零;9 轴下航向也置零,作为航向零点是
1航向复位:把模块内部航向清零,不改已保存的零点否,重启后清除
2相对零点:当前 pitch / roll 置零,航向不变是
3自动校平:仅当 pitch 和 roll 都在 ±5° 以内时,把两者校平到 0°是
5取消校平:清除已保存的零点,恢复模块原始姿态输出是

其他数值为保留用途。Modbus 写寄存器 0x00A5(ATT_RST),J1939 写参数地址 0x00A5,写入上表的取值。

按目标选命令:

目标做法
6 轴下消除固定安装倾斜;倾角仪设零点RST 2
模块已接近水平,只消除小的残余偏差RST 3,再读回姿态确认
9 轴下设置航向零点(同时校平)RST 0
未设航向零点时,临时让航向从 0 计起RST 1,重启后恢复
回到模块原始姿态输出RST 5

生效与保存:RST 0、RST 2、成功的 RST 3 和 RST 5 执行后,用 SAVECONFIG 保存。是否生效,以读回的姿态为准。

示例(6 轴,模块接近水平):

text
→ CONFIG ATT RST 3
← OK
→ SAVECONFIG
← OK

随后读几帧姿态:roll 和 pitch 应接近 0。roll 和 pitch 仍明显偏离 0,说明 RST 3 没有生效(原因见下面的说明),改用 RST 2。

说明:

  • RST 3 在倾斜超过 ±5° 时保持原零点,应答可能是 OK,也可能是 ERR。始终以读回的姿态判断。
  • 6 轴下使用 RST 2 / RST 3;RST 0 只用于 9 轴航向零点。在 9 轴下做过 RST 0 后再切到 6 轴,上电航向会含有已保存的航向偏置,不再从 0 开始。此时先 RST 5 清除,再按需 RST 2 / RST 3。
  • 9 轴下设过 RST 0 后,不要再用 RST 2 / RST 3:它们按当前姿态重新记录零点,可能覆盖已设的航向零点。需要重新校平时,重做一次 RST 0。
  • RST 1 在 9 轴下只是临时置零,磁航向会逐渐把读数拉回。需要稳定的航向零点,用 RST 0。

用户级陀螺校准 ​

CONFIG USRCAL 标定陀螺 Z 轴比例因子,降低水平旋转载体的长期航向累计误差。它适用于能准确控制旋转角度的场景,如 AGV、大型水平移动机器人和转台;手持随意旋转或无法计量角度的场景不适用。每台模块只做一次,重复校准会覆盖上一次的结果。

text
CONFIG USRCAL START <ANGLE>
CONFIG USRCAL STOP
命令说明
START <ANGLE>开始校准,<ANGLE> 为计划旋转的总角度,单位度,范围 360~3600
STOP结束校准

必须先 START 再 STOP,不能单独发 STOP。STOP 成功后立即生效并掉电保持,无需 SAVECONFIG。

操作步骤:

  1. 测校准前误差。用 6 轴(相对航向)工作模式,因为 9 轴的磁航向会掩盖陀螺误差,使对比失真。把模块连同载体放在水平平整的地面,温度稳定,无强振动。RST 1 让 yaw 从 0 开始,以 20~100 deg/s 匀速水平转过整数圈(例如 5 圈,1800°,用转台或其他可靠的角度基准),回到起点后读回 yaw,折算到 ±180°,作为校准前误差。
  2. 发送 CONFIG USRCAL START 720(以旋转 2 圈为例)。
  3. 以 20~100 deg/s 匀速水平旋转 720°,方向任意,中途不停顿、不反向,实际旋转角度与设定值一致。
  4. 发送 CONFIG USRCAL STOP。
  5. 按步骤 1 的方法重复试验,圈数、转速和方向都相同,比较校准前后的误差。

示例(旋转 2 圈):

text
→ CONFIG USRCAL START 720
← OK
(水平匀速旋转 720°)
→ CONFIG USRCAL STOP
← OK

判断:校准后误差明显变小,才算有效。OK 只说明命令被接受,不能证明校准有效。

误差没有变小,或 STOP 无应答时,先依次检查,再决定是否重做:是否先执行了 START;模块是否保持水平并绕竖直轴旋转;实际旋转角度是否与设定值一致。仍然异常,联系技术支持。

最后更新:

IMU · AHRS · INS · RTK 技术支持中心