套件包装说明
一、整体架构
Amfitrack实际上分成四部分:
Source(磁场发射器) ┌────────────┐ │ X Coil │ │ Y Coil │ │ Z Coil │ └─────┬──────┘ │ 三轴磁场 │ Sensor(接收器) ┌────────────────────┐ │ X Coil │ │ Y Coil │ │ Z Coil │ │ IMU │ │ Magnetometer │ └────────────────────┘ ↓ Position Solver ↓ Position + Quaternion
因此所有参数实际上都是围绕:
Source(三轴发射线圈)
Sensor(三轴接收线圈)
IMU
RF
Calibration
Tracking
二、EMF Calibration
这是最重要的一部分。
例如:
Calib split X Calib split Y Calib split Z
意思:
每个Sensor都有三个接收线圈
X Coil Y Coil Z Coil
每个线圈:
都有不同灵敏度
所以厂家在生产时都会测:
真实灵敏度 ADC增益 模拟放大器增益
最后得到:
Calibration Value
因此:
Calib split X
其实就是:
Sensor X线圈增益修正
官方特别注明:
Do not change
因为:
一旦改了:
整个位置都会错。
三、PLL
你看到很多:
PLL sensor phase bias PLL preamp phase bias
这里PLL不是CPU里的PLL。
而是:
Phase Locked Loop
相位锁定。
因为Amfitrack不是测磁场大小。
它真正测的是:
磁场相位
例如:
Source发:
X Coil 32kHz
Sensor收到:
31.9998kHz 相位: +18°
软件就是靠:
Phase Amplitude
解算距离。
所以:
PLL bias
就是:
补偿硬件产生的固定相位误差。
正常:
0°
说明:
校准正确。
四、PLL Active Coils
0=XY 1=XZ 2=YZ 3=XYZ 4=Smart
意思:
PLL使用哪些线圈。
官方建议:
Smart
即可。
五、IMU Calibration
这一部分就是:
普通IMU校准。
例如:
Gyro Offset
表示:
角速度零偏
例如:
实际静止:
X: 0.12 deg/s
应该:
0
所以:
写进去:
Offset
以后自动减掉。
Accelerometer:
Offset Compensation
就是:
Bias Scale Rotation Matrix
例如:
Accel Compensation XX XY XZ
其实就是:
3×3矩阵。
|XX XY XZ| |YX YY YZ| |ZX ZY ZZ|
用于:
修正:
比例误差
安装误差
轴不垂直。
六、Mag Calibration
包括:
Hard Iron Soft Iron
Hard Iron:
Offset
例如:
旁边螺丝:
一直:
+20uT
减掉即可。
Soft Iron:
就是:
XX XY XZ ...
也是:
3×3矩阵。
修正:
铁件造成:
磁场畸变。
七、Hardware Config
例如:
Device ID
就是:
设备编号。
LED intensity
灯亮度。
Use Synchronization
多个设备:
Frame同步。
External Sync
外部同步。
例如:
TTL同步。
八、RF Config
就是:
无线通信。
例如:
RF frequency RF address TX power
就是:
无线频道。
例如:
2.402GHz 2.415GHz 2.432GHz
Auto Channel Finder
启动时:
自动寻找:
最干净频道。
Auto Channel Switching
运行过程中:
动态切换频道。
避免:
WiFi干扰。
九、Source Config
例如:
Source #1 Source #2 Source #3 Source #4
表示:
一个Sensor:
可以追踪:
最多:
4个Source。
每个Source:
都有:
Position Orientation Quaternion Offset
例如:
Source1 (0,0,0)
Source2 (1.5m,0,0)
即可:
建立:
统一世界坐标。
十、Startup Pose
例如:
Startup pose X Y Z QX QY QZ QW
就是:
告诉算法:
启动时:
Sensor大概在哪里。
例如:
0.6 0 0.3
表示:
距离Source: 60cm 高30cm
这样:
PLL收敛:
更快。
十一、EMF Parameter Set
这是:
真正控制:
Source发射磁场。
里面包括:
Frequency Current Voltage PWM Boost Calibration
例如:
Frequency X 32000Hz
就是:
X线圈:
共振频率。
Target Current
目标:
线圈电流。
例如:
0.7A
PWM
驱动PWM。
Boost Voltage
Boost电源。
例如:
18V 24V 36V
Coil Calibration
Source:
每个线圈:
发射强度修正。
Calibration Multiplier
静态金属补偿。
例如:
桌子:
钢架。
可以:
稍微修正:
发射场强。
十二、Measurement Package(数据包)
这是SDK真正输出的数据。
Sensor包:
Pose Quaternion IMU Mag Temperature FrameID RSSI Metal Distortion GPIO
其中:
pose
就是:
真正的位置。
position_x position_y position_z
单位:
LSB=0.01mm
因此:
Raw ÷100000 = meter
例如:
123456 = 1.23456m
Quaternion:
orientation_x orientation_y orientation_z orientation_w
转换:
÷1000000
即可。
IMU:
加速度:
4g 16bit
转换:
g = raw × 4 / 32767
Gyro:
0.07 deg/s LSB
转换:
rad/s = raw × 0.07 × π / 180
十三、状态信息(Status)
sensorStatus 用于快速判断传感器工作状态:
| 字段 | 含义 |
|---|---|
| Battery Level | 电池电量(0=满电,3=严重不足) |
| Battery Charging | 是否正在充电 |
| Source Connected | 是否已连接到 Source |
| BFieldStatus | 磁场跟踪状态 |
| Sync | 是否收到同步信号 |
其中 BFieldStatus 是最关键的诊断字段:
| 值 | 含义 |
|---|---|
| 0 | Tracking(正常跟踪) |
| 1 | Uncertain tracking(跟踪不稳定) |
| 2 | No tracking(丢失跟踪) |
| 3 | Magnetic field too low(磁场过弱) |
| 4 | Magnetic field too high/异常(不同固件可能定义略有不同) |
| 5 | Source coil defect(发射线圈故障) |
| 6 | Sensor coil defect(接收线圈故障) |