Context
Fan of helicopters and RC models since my childhood, I have several flying machines (an E-Sky Helicopter and a Quadricopter).
These machines, closer to toys than drones, have the following disadvantages:
- no advanced control functions (GPS navigation, hovering, ...)
- no real-time video streaming
- hardware and software customization solutions are very limited or non-existent.
Following the progress made on consumer market machines and my wish to have a platform on which I can develop, I decided to acquire a new machine.
Requirements
- Operate the device using a "traditional RC" remote control or similar
- Extended navigation capabilities (GPS, ...)
- Possibility to develop additional functions for the embedded system
- Telemetry
- Possibility to add sensors (anti-collision, ...) or actuators (camera gimbal, recording trigger, ...)
- Real-time video streaming
- Possibility to develop systems able to remotely communicate with the drone.
Solutions
Out-of-the-box
DJI, Parrot, ...
Pros
- autopilot and piloting assistance (stabilization, GPS navigation, ...)
- Real-time video streaming / First Person View
- Telemetry
Cons
- Using Wifi to transmit communicate with vehicle is, in my opinion, not suitable
Range and reliability are substantially reduced in Wifi mode. - I think a smartphone / tablet less reliable for operate (Pb of battery, pb with application)
- Often proprietary systems difficult to hack or expand
Custom-made
There are a number of initiatives around hardware or software platforms more or less open (Mikrokopter, Navio 2, Pixhawk, Ardupilot, ...) that allow us to build our own solution or add advanced functions to "traditional RC" models.
Some of these solutions are based on Arduino microcontrollers or nano-computers such as raspberry pi.
The advantage of this type of solution is the ability to customize.
Because of the power of the raspberry pi, I focused on solutions which allow to use it as a flight controller. One of them, Navio, is particularly interesting.
Raspberry Pi3 + Emlid NAVIO2
Navio 2 is an autopilot HAT for Raspberry Pi which allows us to add to the original RPi all the hardware needed to use it as a flight controller.
It is powered by ArduPilot and ROS.
Major Features
RC I/O co-processor
Accepts PPM/SBUS input and provides 14 PWM output channels for motors and servos
GNSS receiver
Tracks GPS, GLONASS, Beidou, Galileo and SBAS satellites. External antenna with MCX connector
Dual IMU
Accelerometers, gyroscopes and magnetometers for orientation and motion sensing
High resolution barometer
Senses altitude with 10 cm resolution
Extension ports
Exposed ADC, I2C and UART interfaces for sensors and radios
Triple redundant power supply
With overvoltage protection and power module port for voltage and current sensing