Skip to content

Coordinate Systems

Matt edited this page Mar 15, 2024 · 4 revisions

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.

World and Rocket Coordinate Frames

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).

Rocket_Reference_Frame

FCB V0

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.

V0_Reference

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 V1

V1_Reference

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

FCB V2.2

image

Clone this wiki locally