-
Notifications
You must be signed in to change notification settings - Fork 1
Coordinate Systems
Coordinate systems are dumb and confusing. Sometimes sensors aren't even consistent about them! This page describes the coordinate system for the FCBs, how this relates to the world coordinate system, and how to transform readings from each sensor into the board coordinate system.
The world reference frame uses Z up and X and Y parallel to the ground. However, the rocket reference frame uses X as the direction of travel and X and Y perpendicular to the direction of travel. Note that, because the rocket isn't always pointed vertically, these axes are not trivially transformed to each other by just switching names (although this is what our orientation estimator does currently).
We mount the FCB in the rocket with the long axis on the rocket X axis. Note that the FCB might be rotated around, which we detect on the pad and subsequently rotate the sensor values in software to keep it consistent with the rocket.
The lsm9ds1s are located at AC2 and AC4. Note that the accel/gyro are left-handed, while the magnetometer is right-handed. The high-g accelerometer is AC1 (middle). The overall coordinate system is marked on the STM32 in the middle.
FCB coordinates | IMU axis | High-G |
---|---|---|
Aboard, x | AIMU,y | -AHighG,x |
Aboard, y | -AIMU,x | AHighG,y |
Aboard, z | -AIMU,z | -AHighG,z |
ωboard, x | ωIMU,y | |
ωboard, y | -ωIMU,x | |
ωboard, z | -ωIMU,z | |
Bboard, x | BIMU,y | |
Bboard, y | BIMU,x | |
Bboard, z | -BIMU,z |
FCB coordinates | IMU 1 | IMU 2 | High-G |
---|---|---|---|
Aboard, x | AIMU1, x | AIMU2, y | -AHighG, y |
Aboard, y | AIMU1, y | AIMU2, x | -AHighG, x |
Aboard, z | -AIMU1, z | -AIMU2, z | -AHighG, z |
ωboard, x | ωIMU1, x | ωIMU2, y | |
ωboard, y | ωIMU1, y | ωIMU2, x | |
ωboard, z | -ωIMU1, z | -ωIMU2, z | |
Bboard, x | -BIMU1,x | -BIMU2,y | |
Bboard, y | BIMU1,y | BIMU2,x | |
Bboard, z | -BIMU1,z | BIMU2,x |