final report-indoorquadcopter

34
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:

Upload: hans-guentert

Post on 08-Aug-2015

63 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: FINAL REPORT-IndoorQuadcopter

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

Page 2: FINAL REPORT-IndoorQuadcopter

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

Page 3: FINAL REPORT-IndoorQuadcopter

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

Page 4: FINAL REPORT-IndoorQuadcopter

3

List of Tables Page

Table 1: Computer House of Quality 12

Table 2: Coding Platform House of Quality 16

Table 3: Budget 19

Page 5: FINAL REPORT-IndoorQuadcopter

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.

Page 6: FINAL REPORT-IndoorQuadcopter

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.

Page 7: FINAL REPORT-IndoorQuadcopter

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

Page 8: FINAL REPORT-IndoorQuadcopter

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.]

Page 9: FINAL REPORT-IndoorQuadcopter

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.

Page 10: FINAL REPORT-IndoorQuadcopter

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.

Page 11: FINAL REPORT-IndoorQuadcopter

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

Page 12: FINAL REPORT-IndoorQuadcopter

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.

Page 13: FINAL REPORT-IndoorQuadcopter

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

Page 14: FINAL REPORT-IndoorQuadcopter

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.

Page 15: FINAL REPORT-IndoorQuadcopter

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

Page 16: FINAL REPORT-IndoorQuadcopter

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

Page 17: FINAL REPORT-IndoorQuadcopter

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

Page 18: FINAL REPORT-IndoorQuadcopter

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

Page 19: FINAL REPORT-IndoorQuadcopter

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

Page 20: FINAL REPORT-IndoorQuadcopter

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

Page 21: FINAL REPORT-IndoorQuadcopter

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

Page 22: FINAL REPORT-IndoorQuadcopter

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

Page 23: FINAL REPORT-IndoorQuadcopter

22

Appendices