Sensor Cluster
Table of Contents
- 1.1 Table of Contents
- 1.2 Goal
- 1.3 Requirements and Considerations
- 1.4 Sensor Options
- 1.4.1 GPS
- 1.4.2 IMU
- 1.4.3 GYRO
- 1.4.4 BAROMETER
- 1.4.5 OPTICAL FLOW SENSOR
- 1.4.6 RANGEFINDER/LIDAR
- 1.4.7 COMPASS/MAGNOMETER
- 2 Implementation Strategy
- 2.1 Optical Flow Sensor
- 2.2 Rangefinder
- 2.3 Barometer
- 2.4 IMU and Compass
- 2.5 MCU
- 3 Protocols/Interface
- 3.1 EPC611-CSP24-001
- 3.2 A121-001-T&R
- 3.3 ICP-20100
- 3.4 ICM-42688-P
- 3.5 MLX90393SLW-ABA-011-RE
- 3.6 PAA3905E1-Q
Goal
Develop an integrated sensor cluster fuses multiple sensors on the same board that can connect to the Flight Controller through one CAN network
Viable for multiple vehicle platforms and could be placed in a variety of places around the drone.
Requirements and Considerations
Sensors must be able to coexist in the same location on the board
Ex: rangefinder, optical flow sensor point in the same direction (downwards) but might be difficult to place GPS on this board as GPS should be in open space on top of the drone.
Integrating all sensors on to one CAN line will significantly reduce wiring from several sensors and will provide noise immunity to signal
Flexibility to place sensor cluster farther away from the flight controller wherever its needed
Ideally sensors are not super time sensitive
Ex, IMU samples very quickly and should be consumed by flight controller ASAP and so it should be on flight controller directly as opposed to sensor cluster
Sensor Options
GPS
Lower data sampling frequency which is ideal for this case
Needs to be on top of the drone to acquire good signal from satellites and away from any parts of the drone that generates EMC (power boards, ESCs, motors), puts strain on sensor cluster location
Will require discussion with mechanical on where to place sensor cluster
IMU
High data sampling rate, critical data. Not ideal for this case
Much better placement on flight controller directly
Avoid overhead of communicating to sensor cluster MCU and flight controller MCU
GYRO
High data sampling rate, critical data. Not ideal for this case
Much better placement on flight controller directly
Avoid overhead of communicating to sensor cluster MCU and flight controller MCU
BAROMETER
Slower data sampling rate, good for general altitude, not precision vertical position
Requires pressure isolation from propellors, will place limitations to location of sensor cluster
could also require sponge/covering over sensor
Could be sensitive to direct sunlight
cannot be placed on top of drone
Could be considered seriously for sensor cluster
OPTICAL FLOW SENSOR
Does not require super high update rate to flight controller
Camera will be outputting high freq data to onboard MCU, but MCU will only need to supply lower freq delta X and delta Y data to flight controller over CAN
Should be facing downwards on the drone, not super sensitive to other parts of the drone, ideal for sensor cluster
Difficult to implement from EFS standpoint, will require a lot of work compared to just buying a module
RANGEFINDER/LIDAR
Good for tracking distance to ground at closer range or for object detection
Since sensor cluster is likely to be used in downward configuration, this rangefinder will be for ground detection and for reference for OFS
Once certain altitude is achieved, barometer will be used
Laser rangefinders not good over water
May require special lens and custom mechanical design for optimization
Different rangefinder distances range from a few meters to a couple hundred meters and refresh rates of ~10Hz to hundreds of Hz
COMPASS/MAGNOMETER
Used to give heading/direction
Note that using two accurate GPS placed apart can also be used to give a heading measurement
Sensor fusion can be used to combine compass/magnometer with GPS for more stable and accurate reading
Magnometer location is critical and needs to be calibrated for, it should be placed in the same movement reference plane as the whole drone for easier setup
Note that Pixhawk 6 and 5 both have an onboard magnometer
Magnometer uses earths magnetic field lines to determine direction and would also be sensitive to any ferrous materials near it (especially motors) and needs to be calibrated for such.
Implementation Strategy
Based on the points raised above, for a first revision of sensor cluster, it would make sense to only integrate Lidar/Rangefinder + Barometer + Optical flow sensor and also redundant IMU+Compass. All other sensors would be much easier integrated directly on flight controller or have strict placement requirements.
Optical Flow Sensor
Will be quite difficult to implement ourselves.
Most designs seem to have some camera directly attached to some processor chip that calculates all the flow direction from the pixels. They also all include a rangefinder for the STM to do computation and to judge distances. People often complain about the poor performance of rangefinder in most products.
Found also some cameras that have integrated chips that will simply output delta position information but these are hard to find and have very limited datasheets.
These types of sensors will be ideal if we can find some that will work at decently far distances (>1m)
Site where many camera sensors are sold.
https://www.epsglobal.com/products/semiconductors/sensing-and-haptics/optical-tracking
https://www.pixart.com/products-detail/93/PAW3902JF-TXQT
Will need to check with EFS whether implementing OFS into sensor cluster and trying to develop software is worth it.
Highly recommend using the following sensor with PixArt’s L242-ZSZ1 lens
https://www.pixart.com/products-detail/108/PAA3905E1-Q_
Need to request quote to purchase this part. Sent an inquiry on 2024-05-16.
https://www.digikey.ca/en/products/detail/himax/HM01B0-AWA/14109824
Rangefinder
Part | Advertised Range | Accuracy | Cost | Communication | Challenges | Type | Measurement Rate |
|
---|---|---|---|---|---|---|---|---|
A121-001-T&R https://www.digikey.com/en/products/detail/acconeer-ab/A121-001-T-R/17883300 |
| 20m | Standard deviation of up to 5mm | 25.92$ | SPI |
| Radar | 100Hz |
ICU-20201 https://www.digikey.ca/en/products/detail/tdk-invensense/ICU-20201/19200625 | 20cm - 5m | “mm level accuracy” | 23.40$ | SPI | Easy | Ultrasonic | 32Hz |
|
VL53L1CBV0FY/1 https://www.digikey.com/en/products/detail/stmicroelectronics/VL53L1CBV0FY-1/8258054 | 4cm - 8m | +/- 25mm | 9.91$ | I2C |
| Lidar | 60Hz |
|
AFBR-S50LV85D https://www.digikey.ca/en/products/detail/broadcom-limited/AFBR-S50LV85D/13401336 |
| 10mm standard deviation | 101.11$ | SPI |
| Lidar | up to 3kHz |
|
EPC611-CSP24-001 https://www.digikey.ca/en/products/detail/espros-photonics-ag/EPC611-CSP24-001/10516869 | 240m | “mm range” | 20.27$ | SPI |
| Lidar | 8000 fps |
|
Another option is to buy a dedicated radar TX and RX and use that with a special IC to get farther range, this is much bulkier and also on the costly side and would be quite advanced to implement. Scratch this idea for a later revision down the road.
Based on the comparison of the sensors above, the first revision of the sensor cluster will use both the EPC611-CSP24-001 and the A121-001-T&R.
These sensors offer moderate ranging in an integrated package that we can communicate with. Using both of these sensors will allow us to validate radar and TOF sensing as we can move further into one of these schemes in a 2nd revision.
Barometer
Following table shows Altitude vs Atmospheric Pressure
Most altitude/pressure sensor ranges are measured in mBar or hPa. 1kPa = 10mBar = 10 hPa
Based on this table, to measure from the range of lowest land point on earth to the top of mount Everest, the sensor should have a rated pressure range from 1070-301mBar/hPa.
Part | Advertised Range | Resolution | Cost | Communication | Measurement Rate | Absolute Accuracy | Relative Accuracy |
---|---|---|---|---|---|---|---|
MS561101BA03-50 | 10mBar-1200mBar | 0.012mBar | 18.07$ | SPI/I2C | ~120Hz (for max resolution) | +/- 1.5mBar |
|
LPS22HBTR https://www.digikey.ca/en/products/detail/stmicroelectronics/LPS22HBTR/5799910 | 260hPa-1260hPa | 0.1hPa | 6.07$ | SPI/I2C | 1Hz-75Hz | +/- 1hPa | +/- 0.1hPa |
ICP-20100 https://www.digikey.com/en/products/detail/tdk-invensense/ICP-20100/16379591 | 300mBar-1100mBar | 0.003hPa (theoretically calculated) | 3.79$ | SPI/I2C/I3C | 2Hz-120Hz | +/- 0.2hPa | +/- 0.01hPa |
BMP390 https://www.digikey.com/en/products/detail/bosch-sensortec/BMP390/16164577 | 300hPa-1250hPa | 0.016hPa | 4.12$ | SPI/I2C | Up to 200Hz | +/- 0.33hPa | +/- 0.03hPa |
Preference between ICP-20100 and BMP390 since they are both supported by ardupilot. I have decided to choose the ICP-20100 due to its good resolution and accuracy. It is also the cheapest and supported by Ardupilot.
IMU and Compass
Add IMU and Compass/Magnometer from ZP3 interface board to sensor cluster and BOM populating options.
IMU
https://www.digikey.ca/en/products/detail/tdk-invensense/ICM-42688-P/10824934
Magnometer
https://www.digikey.ca/en/products/detail/melexis-technologies-nv/MLX90393SLW-ABA-011-RE/5031683
MCU
Use standard CAN MCU decided by EE and EFS
https://www.digikey.ca/en/products/detail/stmicroelectronics/STM32L431KCU6/6621817
Protocols/Interface
EPC611-CSP24-001
SPI
16MHz
Signal between MCU and Device | Direction (from device perspective) |
---|---|
DATA_RDY | Output |
nSS | Input |
SCLK | Input |
MOSI | Input |
MISO | Output |
A121-001-T&R
SPI
50MHz
Signal between MCU and Device | Direction (from device perspective) |
---|---|
Enable | Input |
INTERRUPT | Output |
SPI_SS | Input |
SPI_CLK | Input |
SPI_MOSI | Input |
SPI_MISO | Output |
ICP-20100
SPI
12MHz
I2C
1MHz
I3C
12.5MHz
Signal between MCU and Device | Direction (from device perspective) |
---|---|
Enable | Input |
INTERRUPT | Output |
SPI_SS | Input |
SPI_CLK | Input |
SPI_MOSI | Input |
SPI_MISO | Output |
ICM-42688-P
SPI
24MHz
I2C
1MHz
I3C
12.5MHz
Signal between MCU and Device | Direction (from device perspective) |
---|---|
AP_SDO / AP_AD0 | Output |
INT1 / INT | Output |
INT2 / FSYNC / CLKIN | Input/Output |
AP_CS | Input |
AP_SCL / AP_SCLK | Input |
AP_SDA / AP_SDIO / AP_SDI | Input |
MLX90393SLW-ABA-011-RE
I2C
400kHz
SPI
10MHz
Signal between MCU and Device | Direction (from device perspective) |
---|---|
INT | Output |
MS/CS | Input |
SCL/SCLK | Input |
SDA/MOSI | Output |
MISO | Input |
INT/TRIG | Input/Output |
PAA3905E1-Q
SPI
See datasheet
See datasheet for OFS pinout