Upload
hans-guentert
View
64
Download
2
Tags:
Embed Size (px)
Citation preview
MIME 4200 Senior Design Project
Spring 2015
May 1, 2015
2015-01-06
Design of an Autonomous Quadrotor for an Indoor
Navigation Challenge Competition
Team Members:
Andrew Davis - Group Leader
James Anderson - Technical Liaison
Evan Gin - Purchasing Agent
Andrew Hofert - Web Page Specialist
Paul Guentert - Technical Specialist
Faculty Advisor & Client Coordinator:
Dr. Manish Kumar
1
Table of Contents
Section Page
Table of Contents 1
List of Figures 2
List of Tables 3
Nomenclature 4
Executive Summary 5
Introduction 6
Project Objectives 10
Project Team 10
Design and Analysis 11
Project Deliverables 17
Competition Results 18
Budget 19
Timeline 20
References 21
Appendices 22
2
List of Figures Page
Figure 1: X4 Quadcopter 6
Figure 2: Diagram of X4 Quadcopter Physics 7
Figure 3: Course Map 9
Figure 4: Target 10
Figure 5: Sensor Data Transition 14
Figure 6: Coding Options 15
Figure 7: Final Quadcopter Assembly 18
Figure 8: Timeline 20
3
List of Tables Page
Table 1: Computer House of Quality 12
Table 2: Coding Platform House of Quality 16
Table 3: Budget 19
4
Nomenclature
Unmanned Aerial Vehicle (UAV) - An aircraft that can be remote controlled or flown
autonomously.
Autonomous Aerial Vehicle Competition (AAVC) - Annual competition held in
Dayton, OH.
House of Quality - An analysis device that uses numerical values to define the
relationship between customer desires and product capabilities in terms of importance and
requirements.
Finite Element Analysis (FEA) - The modeling of products and systems in a virtual
environment, for the purpose of finding and solving potential or existing structural or
performance issues.
Simultaneous Localization and Mapping (SLAM) - Software used to create
navigational input to the flight management unit.
Field Programmable Gate Array (FPGA) - A programmable semiconductor device
based around a matrix of configurable logic blocks.
5
Executive Summary
The objective of this project was to build a fully autonomous quadrotor Unmanned Aerial
Vehicle (UAV) to participate in the second annual Autonomous Aerial Vehicle Competition
(AAVC) held on April 28-29, 2015 in Dayton, Ohio [1]. An X4 Quadcopter was used to
compete in the challenge which requires autonomous navigation through a course with randomly
placed obstacles, location of a desired object respective to the starting location, and visual
detection of the object and image capture sent to the ground station. The Quadrotor will be
comprised of three separate systems. The first system includes the Quadrotor frame, motors, and
electrical hardware that will host the sensors systems. The second system will be the
Simultaneous Localization and Mapping (SLAM) software which will create a map of the
surrounding area in two dimensions using data received from range and altitude sensors. The
third system will be object recognition which will search for the desired object and give
navigational input. The SLAM and Object recognition will use control algorithms in order to
develop effective navigational routes to the target. The three systems used in tandem comprise
the workings of an autonomous UAV.
The quadcopter was fully built and integrated with an on-board computer. The
quadcopter is currently using a Nvidia Jetson TK1 on-board computer, a Hokuyo Laser Range
Finder, and a Field Programmable Gate Array (FPGA) to fly autonomously. The group
successfully competed in the competition, winning first place overall.
6
Introduction
Unmanned Aerial Vehicle (UAV) is an aircraft that can be remote controlled or flown
autonomously. UAVs are used in many different applications where it may be dangerous for a
human to go, such as the military, combating forest fires, conducting search and rescue missions,
and surveillance etc. As technology continues to improve, applications for UAVs are expanding.
An X4 quadcopter shown in Figure 1, maneuvers using 4 blades located at diagonal ends
of the frame [2]. The physics principles of an X4 quadcopter are shown in Figure 2 [3]. A single
blade is located on the top of each arm. Depending on the direction the UAV needs to move,
these blades will speed up/slow down causing one side to lift resulting in the UAV moving.
Figure 1: X4 Quadcopter
7
Figure 2: Diagram of X4 quadcopter physics
The objective for this project was to build and program a fully autonomous UAV
to be entered in the Autonomous Aerial Vehicle Competition (AA2VC) on April 28, 2015. For
the competition:
The premise of this collegiate level challenge is autonomous navigation and target geo-
location in a GPS denied environment using a small Unmanned Aerial System (UAS).
With a primary focus on algorithm development, all teams will be using the same low
cost open source hobby level quadrotor aircraft. This year's competition challenges an
autonomous quadrotor aircraft to search for an object in a hazard cluttered indoor
environment,image the object, and report the object's coordinates. Points will be
rewarded for a written report, a design review presentation, successfully imaging the
object, and the accuracy of the reported target geolocation. Prize money will be awarded
to the winner [1.]
8
Challenges for this project are:
1) Flying unmanned in a GPS-denied area.
2) Flying into a room, with unknown locations of obstacles or target.
3) Determining the correct sensors needed to map the room and identify the target.
4) Provide feedback to the ground station of location of the target.
5) Successfully writing navigational algorithms.
The competition can be broken down into two distinct objectives. The drone must first
navigate through a field of both known and unknown obstacles. The second objective, once the
obstacle field is successfully navigated, is locating a known target, capturing an image of the
target fully in frame, and reporting back to the ground station with the image and spatial location
of the target. The following figure, Figure 3, depicts the course to be navigated.
9
Figure 3: Course Map
As shown in Figure 3, there are three known obstacles within the room. These are
depicted by the brown boxes in the figure. The “a” obstacles will be located anywhere within the
dashed boxes and their location is not made known to the team before the competition. The
target that will be used for the competition is a 6” neon green Champion Sports Rhino Skin
Dodgeball as seen in Figure 4. The target will be placed at a height of one to five feet within the
red zone.
10
Figure 4: Target
Project Objectives
The objective of this project was to build a fully autonomous UAV to participate in the
AAVC. For the competition, the key objectives are to fly unmanned in a GPS-denied area
obstacles to navigate around and find a target. The correct sensors were needed to map the room,
identify the target and relay feedback to the ground station using an on-board computer which
will be processing the navigational algorithms.
Project Team
Each member of the team was assigned a role to assist in accomplishing the team goals.
The group leader for the project was Andrew Davis. His responsibilities consisted of
coordinating meetings between the team and the client advisor, Dr. Kumar. He also oversaw the
progress on the project to ensure the team was hitting deadlines. James Anderson was the
technical liaison. He was responsible for contacting John Jaegly for any machining, which was
minimal, along with developing the hardware and safety systems mounted to the quadcopter. He
was also responsible for submitting the weekly report. Evan Gin was the purchasing agent. He
11
was responsible for researching and ordering the various components needed to structure and
develop the quadcopter, along with managing the budget and communicating with Ms. Emily
Lewandowski. Andrew Hofert was the web page designer. His responsibilities consisted of
maintaining the team’s web page. Paul Guentert was the technical specialist. Since he had the
most experience with computers and coding, he had taken the responsibility of choosing the on-
board computer and sensors the group used with help from the graduate students. These graduate
students, Alireza Nemati, Mohammad Sarim, and Mohammadreza Radmanesh, gave enormous
contribution to successfully developing this quadcopter.
Design and Analysis
Originally, the Intel Edison was chosen as the on-board computer. While waiting to
receive the Edison in the mail, the team acquired a NVIDIA Jetson TK1 computer from a donor.
Progress was being made with the Jetson and when the Edison arrived it was difficult to use so
the team decided to move forward with the Jetson. A house of quality was made for the on-board
computer choice as seen in Table 1.
12
Table 1: Computer House of Quality
House of Quality
(Computer)
Intel Edison Nvidia
Jetson
Odroid Odroid XU3 Raspberry Pi Intel NUC
Price (1) 4 2 5 3 6 1
Processor Power (5) 4 5 2 3 1 6
Ports (3) 4 5 1 3 2 6
WiFi/Bluetooth (4) 4 5 2 3 1 6
Size (2) 6 1 5 3 4 2
Ease of Programming
(6)
5 6 1 2 4 3
Total 94 100 42 57 53 93
Theory of Design
The main focus for this year’s design was on-board processing which meant evaluating
all possible platforms capable of complete this task. Achieving the goals of this project meant
incorporating an on-board computer which would handle the localization, mapping, and
navigation. The on-board computer receives data from a LIDAR device and process the SLAM
algorithm. A navigation script runs based off the SLAM output and would then produce
waypoints for the flight controller to achieve. The localization and waypoints are then
communicated to pixhawk.
Preliminary research showed that there were many possible options for communication
platforms between the Pixhawk flight controller and the on-board computer. Early on, group
13
efforts were focused on exploring the array of firmwares and therefore divided the group’s
progress. The group was split, developing on two different types of firmware. It was discovered
that the 3DR 8X+ was not supported by the PX4 Flight Stack Firmware. At the same time, the
optical flow sensor was found to be unsupported by the current version of APM Arducopter
firmware. Design decisions were based on these findings to streamline the groups development
process. The decisions focused on using the LIDAR sensor which was supported by MAVROS
and by PX4 firmware. By dropping APM firmware the group was forced to use the previous
year’s quadcopter for development.
The on-board computer chosen for this project, the Jetson Tk1 board, allowed for
multiple ports of communication to the pixhawk and LIDAR sensor via serial, usb, UART and
I2C. The LIDAR laser sensor chosen was a Hokuyo URG-04LX-UG01 with a 270 degree line
of sight. The laser outputs data via USB to the on-board computer. The on-board computer is
connected to the PIXHAWK flight controller via a UART connection. The flight controller
currently being developed is the 3DR PIXHAWK; this controller allows for an open source
firmware such as PX4 Flight Stack to be used. The Pixhawk controls all of the flight information
and also collects data from an array of sensors under its own control. Figure 8 shows which
sensors will be handled by the on-board computer and the Pixhawk.
14
Figure 5: Sensor Data Transition
The theory of this design is that the on-board computer will provide outside localization
to the Pixhawk. The on-board computer will also process the navigational commands and pass
them off to the Pixhawk in form of setpoint commands. The Pixhawk will handle the position
control, attitude, and thrust variables of the quadcopter flight. This is the simplest method for
autonomous flight as the Pixhawk handles all the aspects of flight and requires no additional
outside coding.
The main requirement is coding the integration of LIDAR localization data with the
Pixhawk. There were several avenues for coding development available. The avenue which
offers the greatest development support and hardware support is the PX4 Flight Stack Firmware
15
with MAVROS on-board complimentary software. These two software platforms offer greater
access to the coding development environment needed to achieve our objectives. Figure 9 shows
the list of alternative coding options that could be developed. Each environment operates
differently from one another i.e. PX4 Flight Stack Firmware cannot work with Drone API.
Figure 6: Coding Options
The current evaluation of this chosen development environment is that PX4 is still in the
infancy of development and even though it offers the greatest amount of developer support it is
still too advanced for our group’s skill level. For the objective to be met, the group would need to
incorporate a full time programmer to code a PX4 Flight Stack Firmware plugin to receive
offboard localization from the computer. MAVROS already has the ability to output localization
but needs to have a plugin written to communicate that localization with the PX4 Firmware.
After this conclusion, much of the development effort was refocused to refining and perfecting
16
the previous year’s design of using a FPGA controller to send RC commands to the quadcopter
from a base station.
Similarly to last year’s method, an on-board computer will collect sensor data, process it,
and send it to the FPGA. From there the FPGA sends direct RC inputs to the Pixhawk to control
the motors. The computer also processes data on-board the quadcopter and sends data remotely
to a screen for viewing. From there the instantaneous data can be viewed and the object
recognition initialized. A PID algorithm will control the quadcopter attitude and thrust; this will
control velocity and acceleration.
Table 2: Coding Platform House of Quality
House of Quality(Coding Platform)
PixhawkAPMDrone API
PixhawkPX4MavProxy
PixhawkPX4MAVROSLocal Pose
PixhawkPX4MAVROSAttitude (Roll, Pitch, Yaw)
PixhawkAPMMavrosRC Commands
Hardware Compatibility (4) 3 2 5 5 5
Software Compatibility (3) 2 2 5 5 5
Ease of Programming (2) 3 2 3 3 3
Developer Support (1) 3 3 5 4 4
Total 27 21 46 45 45
17
Project Deliverables
The project was undertaken with three separate developments. The first was to build the
quadcopter and integrate the necessary hardware and components. The second was to develop
the navigational, localization, and mapping algorithms used by the on board computer to give
input to the motors. The third was to modify the software to allow for the conjugation of the
sensor data and navigation commands to the flight controller.
For the first development we expect the quadcopter to be fully integrated using the
Hokuyo laser sensor, object recognition camera, motors, and on-board computer. In addition to
the electronic components a propeller guard safety system was made to protect the quadcopter
from impact. This was the physical integration which meant learning to use serial, usb, I2C, and
UART connections to allow for proper integration of all our sensors.
For the second development path we expect the algorithms and the navigation protocols
to be used seamlessly with the hardware and provide autonomous navigation to the quadcopter.
The MAVROS Hokuyo Node allows for easy integration of data from the Hokuyo LIDAR. The
MAVROS Hector-SLAM node allowed for easy mapping and localization using data obtained
from the Hokuyo Node. A simple navigation script was written in tandem with an object
avoidance script to output wavepoint commands to the Pixhawk. The navigation script collects
data from the object avoidance scripts and produces simple commands; forward, left or right
The third development is to modify the existing PX4 Flight Stack firmware to allow for
external localization data to be used in its internal loop process such as position estimation,
quadcopter position control, quadcopter attitude control, and multi-rotor mixer outputs. A
MAVROS plugin also needs to be written for the purpose of advertising the localization data to
18
the Pixhawk. MAVROS communicates with the Pixhawk using a program called Mavlink which
is a data interpreter for the Pixhawk.
Competition Results
The competition was held on April 28-29th, 2015 in Dayton, Ohio. Three teams
competed this year including the University of Toledo, East Carolina University and University
of Michigan Dearborn. The competition was done using two separate course runs in which each
team attempted to navigate the obstacle course, image the target object, and triangulate its
position. The challenge proved difficult and none of the teams were able to successfully image
the target. However, the University of Toledo won first place based on the report and
presentation. The first place prize of $10800 was awarded to the University of Toledo
engineering department. Continued development will be made on tuning the control algorithms,
object recognition tracking, and integrating the MAVROS protocol. The competition quadcopter
assembly is shown in Figure 10.
Figure 7: Final Quadcopter Assembly
19
Budget
The budget given to the group by the client was $3050. Our original projection of costs
being $2300.00 was close to the final $2521.69 that was spent. The breakdown for the costs are
shown in Table 3. The largest portion of the budget was from the X8 kit which was $1540.00,
which in the end was not even used in the competition.
Table 3: Budget
20
Timeline
The timeline of the project is shown in Figure 11. A majority of the time was spent
researching and comparing the options for the sensors and on-board computers. Additionally, the
past month consisted of testing and tweaking the algorithms for autonomous flight.
Figure 8: Timeline
21
References
[1] Rules - Autonomous Aerial Vehicle Competition. (2015, January 29). Retrieved
February 14, 2015, from http://www.flyaavc.org/rules
[2] 3DR RTF X8. (n.d.). Retrieved February 14, 2015, from
https://store.3drobotics.com/products/3dr-rtf-x8-2014
[3] (n.d.). Retrieved February 14, 2015, from http://www.andreasbaier.de/gallery/d/1512-
2/Motor_Mapping_Herkules-DJI-X8-Customized_jpg.png
[4] 3DR Pixhawk. (n.d.). Retrieved February 14, 2015, from
http://store.3drobotics.com/products/3dr-pixhawk
[5] MAVLink Micro Air Vehicle Communication Protocol. (n.d.). Retrieved February
14, 2015, from http://www.qgroundcontrol.org/mavlink/start
22
Appendices