PinePhone Sensors and Navigation
DRAFT
Overview
The Pinephone contains various components that enable or aid orientation and navigation tasks.
- Multi-GNSS Receiver as part of the cellular modem (GPS/Galileo/Glonass/BeiDou)
- IMU (Inertial Measurment Unit), combined Accelerometer and Gyroscope sensor (MPU6050)
- Magnetometer (LIS3MDL or AF8133J)
...
[TODO: add block diagram]
Hardware
Quectel EG25G Modem / GNSS Receiver
[TODO: add interfaces, constraints, antenna location]
Invensense/TDK MPU6050 IMU
Key features:
- Digital-output X-, Y-, and Z-Axis angular rate sensors (gyroscopes) with selectable range of ±250, ±500, ±1000, and ±2000°/sec
- Digital-output triple-axis accelerometer with a programmable full scale range of ±2g, ±4g, ±8g and ±16g
- 400kHz Fast Mode I2C for communicating with all registers
ST LIS3MDL
Key features:
- ±4/±8/±12/±16 gauss selectable magnetic full scales
- 16-bit data output
- ...
Sensor reference frames
The sensors are mounted on the Pinephone's main board in different positions and orientations, for the purpose of orientation and navigation it is important to know the relationship between the sensor coordinate frames and the body frame of the phone...
[TODO: add sensor mounting positions/orientation in respect to body frame, introduce coordinate systems]
As a basis for software development, a common body coordinate system has to be established along with it's relation to a world coordinate system...
[TODO: explain body reference choices, north-east-down world coordinates]
Software
Drivers
[TODO: i2cdev, linux-iio, support matrix]
OS level services
[TOOD: modem manager, ofono, gpsd, iio-sensor-proxy, geoclue]
Tools/Utilities
Applications
Development
[TODO: Open issues, tasks, projects]
- AGPS integration
- Raw magnetometer data + calibration in iio-sensor-proxy