RPi Drone

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