Skip to content

Commit

Permalink
sensors: orientation: add stuff
Browse files Browse the repository at this point in the history
  • Loading branch information
ES-Alexander committed Nov 28, 2022
1 parent bc1e868 commit 2f53076
Showing 1 changed file with 34 additions and 13 deletions.
47 changes: 34 additions & 13 deletions sensors/orientation.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,22 +15,54 @@ top = false

## Sensors

### Sensor Types

Type | Subtype(s) | Primary Function(s) | Interface Library
---|---|---|---
Accelerometer | motion<br>/ orientation | translation<br>/ uprightness | ...
Magnetometer<br>/ Compass | motion<br>/ orientation | yaw rate<br>/ angle | ...
Gyroscope | motion<br>/ orientation | rotation rate<br>/ roll/pitch/yaw changes | ...
Barometer (external) | positioning<br>/ motion | depth<br>/ vertical | ...
Barometer (internal) | safety | ... | ...
Temperature | environment | accuracy correction | ...
Power Usage | safety | battery level<br>/ usage within capacity | ...
Rangefinder<br>/ Altimeter | positioning<br>/ safety | terrain-follow<br>/ target tracking<br>/ obstacle avoidance | ...
Leak Detector | safety | enclosure failure | ...
GPS (surface) | positioning | absolute localisation<br>/ drift correction | ...
USBL / SBL | positioning | ... | ...
DVL | positioning | positioning | ...

### Tested with ArduSub

Sensor | Type | [Used On](@/hardware/required/autopilot/index.md) | Integration Source
---|---|---|---
[MMC5983](.) | Magnetometer | Navigator | ...
[AK09915](.) | Compass | Navigator | ...
[LSM303D](.) | Accel / Mag | Pixhawk | ...
[IST8310](.) | Magnetometer | Pixhawk 4 | ...
[ICM-20602](.) | IMU | Navigator / Pixhawk 4 | [AP_IntertialSensor_Invensense.cpp](https://github.com/ArduPilot/ardupilot/blob/Sub-4.1/libraries/AP_InertialSensor/AP_InertialSensor_Invensense.cpp)
[L3GD20H](.) | Gyroscope | Pixhawk | ...
[MPU6000](.) | accel/gyro | Pixhawk | ...
[BMI055](.) | accel/gyro | Pixhawk 4 | ...
[ICM-20689](.) | accel/gyro | Pixhawk 4 | ...


### Magnetometers / Compasses

- Measure magnetic field strength in all directions
- Can estimate North orientation by strongest magnet direction
- Calibration allows correcting for _constant_ magnetic effects from vehicle components
- Subject to error due to magnetic field fluctuations (from nearby changing electrical currents, and going near large magnetic structures)
- DIFFERENCE??
- [`AP_...` library]()
- [`AP_...` library](.)

### Gyroscopes

- Measure rotation rate about all axes
- Can be integrated over time to estimate relative rotation angles
- Integrated readings continually build error, and need to be corrected for by an absolute reference
- Faster response than compass
- [`AP_...` library]()
- [`AP_...` library](.)
- [`AP_Compass` library](https://github.com/ArduPilot/ardupilot/tree/master/libraries/AP_Compass)

### Accelerometers
Expand All @@ -44,17 +76,6 @@ top = false
- [`AP_InertialSensor` library](https://github.com/ArduPilot/ardupilot/tree/master/libraries/AP_InertialSensor)

### Tested with ArduSub
- [MMC5983 magnetometer]() (Navigator)
- [AK09915 compass]() (Navigator)
- [LSM303D accel/mag]() (Pixhawk)
- [IST8310 magnetometer]() (Pixhawk 4)
- [ICM-20602 IMU]() (Navigator / Pixhawk 4)
- [L3GD20H gyro]() (Pixhawk)
- [MPU6000 accel/gyro]() (Pixhawk)
- [BMI055 accel/gyro]() (Pixhawk 4)
- [ICM-20689 accel/gyro]() (Pixhawk 4)
- [ICM 20602](https://github.com/ArduPilot/ardupilot/blob/master/libraries/AP_InertialSensor/AP_InertialSensor_Invensense.cpp)


## Code Usage
InertialSensor -> InertialNav / NavEKF/2/3 -> AHRS -> AttitudeControl
Expand Down

0 comments on commit 2f53076

Please sign in to comment.