Introduction: Pi0Rover: a Smart Rover With the Pi Zero

About: At Erle Robotics we aim to simplify robot and artificial intelligence creation and to do so, we build the next generation of artificial robotic brains.

Build your own autonomous rover with a PXFMini and a Raspberry Pi Zero.


Hardware components:

Erle Robotics PXFmini ×1 (69.00$)

Raspberry Pi Zero ×1 (5.00$)

Raspberry Pi 2 Model B ×1

Raspberry Pi 3 Model B ×1

Software apps and online services:

APM flight stack

Debian-based Linux file system for drones

Step 1: STORY

This tutorial demonstrates how to build a Linux drone with the Raspberry Pi Zero.

The drone uses a real-time capable Linux kernel, a Debian-based file system and Dronecode’s APM flight stack compiled for the PXFmini autopilot board. All these components have been put together by Erle Robotics in their OS image for the PXFmini.

Erle-Rover built with the elements described above. You'll have to connect these components to compatible autopilots to put into operation.

Step 2: Get Ready the Autopilot

Required time 30 min

Connect the PXFmini shield on top of the Raspberry Pi Zero as described in the pictures.

You're almost done but you still need to get the right software on the Raspberry Pi Zero+PXFmini set. This should include the flight stack, an appropriate kernel, enabled daemons that auto-launch on boot, and additional goodies.

Fortunately, if you purchased the PXFmini from Erle Robotics you'll get access to their Debian images which include all this so just fetch a PXFmini compatible Debian image and flash it into a microSD card.

Step 3: Mount the Autopilot

Required 30 min

Mounting the autopilot (Raspberry Pi Zero + PXFmini) in the drone can be done using several methods. Pick yours and connect the JST GH cable from the power module to the PXFmini. This will to power the autopilot when the battery gets connected.

Next is mounting the PWM channels in the autopilot. Get your ESC cables and connect the servomotor 1 (corresponding with the steering) to PWM channel 1, ESC 2 to PWM 2 corresponding with the throttle.

Finally, you'll need a way to control your drone. I propose three methods:

  • WiFi + gamepad: Have the autopilot create its own WiFi network with a USB dongle (Erle Robotics images support this by default) and use a common gamepath to control the drone through a Ground Control Station.
  • WiFi + ROS: Do you happen to know about the Robot Operating System (ROS)? You can use a ROS node to visualize the flight mode, state and control the drone.
  • Traditional RC: Alternatively you could buy an RC controller with PPMSUM-enabled receiver and attach it to the autopilot (to the PPM-SUM input channel).

If you want to create a flying vehicle check out this tutorial.