There will be two Raspberry Pi 2 units used in the project, which is

UNIVERSITY OF LOUISVILLE
Collaborative UAV Navigation System
System Design Specification
Eric Hollander, Johnathon Martin
11/4/15
Revision 0
1
Table of Contents
1
System Description ............................................................................................................................... 3
1.1
1.1.1
Raspberry Pi .......................................................................................................................... 3
1.1.2
Ardupilot ............................................................................................................................... 3
1.2
2
3
4
5
Major Components ....................................................................................................................... 3
System Interfaces .......................................................................................................................... 3
1.2.1
Raspberry Pi .......................................................................................................................... 3
1.2.2
Ardupilot ............................................................................................................................... 4
Detailed Design ..................................................................................................................................... 4
2.1
Raspberry Pi .................................................................................................................................. 4
2.2
Ardupilot ....................................................................................................................................... 5
Theory of Operation.............................................................................................................................. 5
3.1
Raspberry Pi .................................................................................................................................. 5
3.2
Ardupilot ....................................................................................................................................... 5
Test Procedures .................................................................................................................................... 6
4.1
Raspberry Pi Testing...................................................................................................................... 6
4.2
Ardupilot Testing........................................................................................................................... 6
Requirements Traceability .................................................................................................................... 6
2
1 System Description
Figure 1
The system will be an autonomous system that is controlled by Raspberry Pi’s but can be manually
overridden if needed. The design will be made so that minimal interaction will be needed. In the
system, the sensors onboard the Ardupilot will be used to determine location. The Raspberry Pi will
receive the signal from the Ardupilot and correspond with the other raspberry Pi’s in the other
drones to determine and update new coordinates. All the parts used are COTS and provided by the
sponsor.
1.1 Major Components
1.1.1 Raspberry Pi
There will be two Raspberry Pi 2 units used in the project, which is enough to make the drone
swarm testable. These are COTS products made by Raspberry Pi. They are made for a wide
variety of applications. Each board outputs desired coordinates to the Ardupilot boards for an
updated location. They will also communicate with each other to decide on updated flight paths
and formations along with collision avoidance.
1.1.2 Ardupilot
There will also be an Ardupilot on each drone. These are COTS made by Arduino. These are
made specifically for enabling drones to be UAVs utilizing software to preprogram a flight plan.
It will interface with the Raspberry Pi’s to receive updates on flight paths as well as updating the
Raspberry Pi’s of their coordinates.
1.2 System Interfaces
1.2.1 Raspberry Pi
The Raspberry Pi 2 will be placed in each drone to be able to read from the Ardupilot and
communicate to the other drones. The Pi will use 3.3 V logic level. It will also communicate to
the other Raspberry Pi’s using Optimized Link State Routing Protocol (OLSR).
3
1.2.2 Ardupilot
The Ardupilot will also be placed in each drone and connected to the Pi onboard. It
communicates with a 5V logic level.
2 Detailed Design
2.1 Raspberry Pi
The Raspberry Pi’s chosen are the Raspberry Pi 2 made by Raspberry Pi. Figure 2 below shows the
board below with many of its features and its pin layout. Of the many features of the Pi, we will
be using the following: 1 USB port for the Wi-Fi dongle, 5V Micro USB power input, Micro SD card
slot to hold the Operating System (OS) and data. We will also be using the GPIO headers to hook
up the Arduino.
Figure 2: Raspberry Pi 2
The control board gives us a central interface for the system. It is being utilized in this project to
run the code containing collision detection and avoidance, flight plan, flight formation, and interdrone communications. It will pull the data from the Ardupilot and execute the various
commands mentioned above with the received data then send its result back to the Ardupilot as
4
an updated flight coordinate. It will also be communicating with the other drones using OLSR to
share its data and make any necessary calculations.
2.2 Ardupilot
The Ardupilot is an ArduPilotMega APM 2. Figure 3 below shows a picture of the board. We will
be utilizing most of the capabilities of the board. This includes: GPS, barometer, and
accelerometer to get an accurate location reading. We will also be using its natural UAV
capabilities as a way to give the drone updated waypoints to fly to without having to program
UAV flight from scratch.
The board it designed as a UAV platform for many remote controlled platforms, from cars to
planes and copters. With the firmware already updated to the most recent plane update to go
with our drones, we will use this to get an accurate location reading and coordinates to be able to
be read by the Pi. After the Pi does its calculations, it will send back a new updated waypoint to fly
towards. The Ardupilot will pull this back into its system and adjust accordingly. The Pi will also
perform collision detection, so if any drone is getting too close its new coordinate will lead it away
from collision.
3 Theory of Operation
3.1 Raspberry Pi
The main purpose of the Pi is to act as the central hub for each drone. It interfaces with the
Ardupilots and the other drones in the swarm.
3.2 Ardupilot
The Ardupilot gathers location data and compiles it in its system as part of its flight plan and UAV
programming. It will be read by the Pi and updated by the Pi to the Ardupilot with updated flight
plans to adhere to.
5
4 Test Procedures
4.1 Raspberry Pi Testing
The Pi utilizes 3.3VDC inputs and outputs. In order to test these, we will make sure the Pi can
receive the data from the Ardupilot and that it can send updates to the Ardupilot, this will confirm
that the board is working besides the OS running properly. We will also make sure the Pi’s can talk
to each other using OLSR.
4.2 Ardupilot Testing
The Ardupilot can be hooked up to the PC and a program can be run to make sure the location
polling is working correctly. During the Pi testing, it will also confirm that the rest of the Ardupilot
is working properly.
5 Requirements Traceability
Requirement
Number
R1
R2
R3
R4
Test Number
T1
T2
T3
Requirements
Receive data from Ardupilot
send updates to Ardupilot
Can communicate through OLSR
Ardupilot can determine location accurately
Tests
Hook up Pi's to Ardupilot boards and test
connections
Hook up Pi's to network and test communication
Hook up Ardupilot to PC and test location data
Test
T1
T1
T2
T3
Requirement
Fulfilled
R1, R2
R3
R4
6 References
[1] Raspberry Pi. Hardware Documents. [Online]. Available:
https://www.raspberrypi.org/documentation/hardware/raspberrypi/README.md
[2] Ardupilot. Common APM 2.5 and 2.6 Overview. [Online]. Available:
http://copter.ardupilot.com/wiki/common-apm25-and-26-overview/
6