Programming Drones Yu David Liu.

Slides:



Advertisements
Similar presentations
Company Presentation.
Advertisements

The OZ Display is used in conjunction with the nose camera view provided on the STE simulation. OZ integrates flight information provided by the Predator.
The Helicopter.
ODS3F –Observation and Detection Systems For Forest Fire Monitoring
Navigational Systems.
Know the principles of flight and control for rotary wing aircraft
Vertical Launch UAV Project Plan. ∞ Construct an unmanned aerial vehicle (UAV) with a camera payload ∞ UAV must autonomously navigate with real-time video.
Parth Kumar ME5643: Mechatronics UAV ATTITUDE AND HEADING HOLD SYSTEM.
Matt McKeever Jonathan Baker UAV Design Team 11/16/2006
Reegan Worobec & David Sloan In collaboration with UAARG.
Project Status Update II R09230: Open Architecture, Open Source Unmanned Aerial Vehicle for Imaging Systems A. Benjamin Wager (ME) B. Michael Skube (ME)
Image Processing of Video on Unmanned Aircraft Video processing on-board Unmanned Aircraft Aims to develop image acquisition, processing and transmission.
Lesson 16: Aircraft Instrument Systems
CL A Coordinated Flight of Uninhabited Air Vehicles Olivier Laplace Princeton University FAA/NASA Joint University Program Quarterly Review - April, 2001.
Position and Motion Section 1.1.
Sérgio Ronaldo Barros dos Santos, Cairo Lúcio Nascimento Júnior,
AVAT11001: Course Outline Aircraft and Terminology
AEM 5333 UAV Search and Surveillance. Mission Description Overhead surveillance and tracking – Humans on foot – Moving vehicles Onboard GPS transceiver.
Hardware Overview Autopilot Control Board- Serves as common platform for other components and has autopilot code and flight plans Battery- Powers the.
The model of the procedural simulator for the UAV’s operators training (Модель процедурного тренажеру для підготовки операторів безпілотних літальних апаратів)
Advantage Through Technology Michael D. Moskal II & William C. Hughes.
COBXXXX EXPERIMENTAL FRAMEWORK FOR EVALUATION OF GUIDANCE AND CONTROL ALGORITHMS FOR UAVS Sérgio Ronaldo Barros dos Santos,
Hardware Overview Autopilot Control Board- Serves as common platform for other components and has autopilot code and flight plans Battery- Powers the board.
UK Aerial Robotics Team UK IDEA Laboratory Workforce Development: The UK Aerial Robotics Team and the PAX River Student UAV Competition Dale McClure (Matt.
Circling Pattern (Left Side Camera) Worksheet Target Coordinates______________ Altitude__________ Airspeed________ Time of Day___________________ Weather______________________.
Lecture 4: Global Positioning System (GPS)
Navigation Ground School CI Pesto. Topics of discussion today Map Construction Map Projections Aeronautical Charts Basic Chart Information Track.
, , ,
1 SOARS Matt Edwards Arseny Dolgov John Shelton Johnny Jannetto Galina Dvorkina Nick Driver Eric Kohut Kevin Eberhart Self Organizing Aerial Reconnaissance.
AVAT11001: Course Outline Aircraft and Terminology
In chapter 1, we talked about parametric equations. Parametric equations can be used to describe motion that is not a function. If f and g have derivatives.
Take-off and the circuit. Take-off  Take-off is the phase of flight in which an aircraft goes through a transition from moving along the ground (taxiing)
Uncontrolled copy not subject to amendment Principles of Flight Learning Outcome 4 Know the principles of flight and control for rotary wing aircraft Identify.
Optic Flow QuadCopter Control
Mid Semester 2 Presentation: February 27, Joshua Lasseigne: Team Lead and Autopilot Programming Christopher Edwards: AGL Subsystem and Website Maintenance.
Mini Autonomous Flying Vehicle CASDE is part of the National effort to develop a Micro Air Vehicle. CASDE has chosen a Mini Vehicle, in the short term,
End of Semester 1 Presentation: November 28, 2007.
Air Navigation and Performance Instruments Know the types and functions of air navigation instruments.
Messanger IMDL 2014 with A. Antonio Arroyo, PhD Eric M. Schwartz, PhD By: Revant shah 03/20/2014.
Navigational Elements. Discussion What other steps do you think the American pilots could have taken to navigate to friendly territory? Read page 262.
X-Pilot: Autopilot Solutions C. Edwards, J. Lasseigne, W. Overstreet, B. Penland X-pilot flight testing X-pilot groundstation demonstrating waypoint navigation.
Flight Instrumentation
KNU RTLAB A Real-Time Linux System For Autonomous Navigation And Flight Attitude Control Of An Uninhabited Aerial Vehicle Charles E. Hall, Jr. Mechanical.
Final approach Instrument landing system
FlySpy Patent Liabilities Analysis
Cloud Cap Technologies
Garmin GX55 Visual Search Patterns National Emergency Services Academy Mission Aircrew School (June 2012 Rev D)
PlaneWrong AGM Thursday 13th October
AirTheo “Autonomous solution to your surveying needs”
Computer Simulation with Flight Simulator X
Stepper Motors – An Overview
Module 5. Functions and protocols of surveillance systems Topic 5. 4
Continuous Climb Operations (CCO) Saulo Da Silva
4 . 1 Definitions.
How Air Traffic Is Coordinated
PAX River Competition UK Aerial Robotics Team University of Kentucky.
RealFlight Shaw STEM Lab 2016.
Crossing and Passing MA-AFAS
Rolling Spider Shaw STEM Lab 2017.
ROBOTICS.
Continuous Climb Operations (CCO) Saulo Da Silva
How Air Traffic Is Coordinated
How Air Traffic Is Coordinated
Secondary Controller MOOS Interface
EET2530 Unmanned Aerial Vehicles (UAVs)
Design and Implementation
Flight Controller and Ground Station Software
Agenda • Classroom • Lab –System Configuration – Flight scenario 1
Unit 2 Unmanned Aircraft
President of Eco-Trust Society
Presentation transcript:

Programming Drones Yu David Liu

Drones in the News

Drones in the News

Drones in the News

Unmanned Aerial Vehicle (UAV) Drones are more technically called UAVs A flying computer! For historical reasons, the boundary between hardware and software in existing UAV systems is often blurred, and the boundary between system software and application software is blurred as well For this talk, we will focus on an open hardware-software UAV system, Paparazzi http://wiki.paparazziuav.org/wiki/Main_Page

Fixed Wing vs. Multi-Rotor Drones Source: https://www.auav.com.au/articles/drone-types/

Overview two-way data one-way control

Paparazzi UAV Main Autopilot Board Sensors Datalink Radio Modem Attitude sensor (infrared) Inertial measurement (acceleration, rotation) Airspeed sensor Pressure sensor Datalink Radio Modem RC Receiver Actuators (movement and control) Propulsion system GPS Receiver Batteries Payload (Camera, Video recorder, etc)

MicroJet Example Autopilot Control Board Motor & Controller Battery Datalink Radio-Modem & Antenna GPS Receiver IR Sensor Motor & Controller RC Receiver & Antenna Servos (actuators) Payload

Terms: Roll, Pitch, Yaw

Paparazzi Programming Paparazzi programming comes in several layers: On the highest level, there is a GUI, a user-friendly way to set configurations of your aircraft and your flight information Under the GUI, most configuration information is textually represented as XML files Under the GUI/XML, the real flight control programs are written in C, with glue code written in ML and Python

Configurations Airframe XML File: autopilot parameters (e.g. hardware component settings) Flight Plan XML File: flight behavior definitions Radio XML File: RC transmitter behaviors (manual control) Telemetry XML File: data messages and transmission rate definitions Settings XML Files

A Typical UAV Program: Flight Plan A typical UAV program describes the duration of flying a UAV through a sequence of points in physical space and completing a series of flying tasks Key questions: How to define points in physical space? (“waypoints”) How to describe flying tasks? (“blocks”)

Flight Plan Part I: Waypoint A waypoint is a reference point in physical space used for purposes of navigation Conceptually, it’s like a coordinate in the 3D space In modern aviation industry: There are multiple established ways to represent such points For real airlines, waypoints are typically abstract and nicknamed (just as you often say “our university is located at exit 7 of I-81 north” instead of “longitude 101E, latitude 33N.”)

A Real-World Flight Plan Example http://www.fscommander.com/flightplan.htm

2D Waypoint through Latitude/Longitude Latitude 0: Equator Longitude 0: Prime Meridian Example: 42.1022° N, 75.9117° W (where is this?)

The Third Dimension of Waypoint Absolute: “altitude,” usually represented as Meters above Sea Level (MSL) Relative: “height,” usually represented as the difference in altitude from ground altitude

Paparazzi Waypoint Examples

Flight Plan Part II: Stages/Blocks A flight plan is composed of a sequence of stages Logically, each stage defines a unit of the flying mission, such as take-off, landing, circling, etc The stages are enclosed in a pair of blocks tags. Each stage is defined through a block tag.

Blocks Example <blocks> <block name="Wait GPS"> <set value="1" var="kill_throttle"/> <while cond="!GpsFixValid()"/> </block> <block name="Geo init"> <while cond="LessThan(NavBlockTime(), 10)"/> <call fun="NavSetGroundReferenceHere()"/> <block name="Holding point"> <attitude roll="0" throttle="0" vmode="throttle"/> </blocks>

The Semantics of Blocks As it turns out, the blocks construct is as expressive as a procedural language Order matters: the blocks are executed in sequence following the order of block definition Program behavior is undefined after the last block is completed You will see familiar features from procedural languages, such as “while” and “for” and “call” and “set” (guess what they mean!)

The Semantics of Blocks (Cnt’d) Control flow can be altered when “exception” is thrown: <block name=”X” > <exception cond="GetPosAlt() > ground_alt+25" deroute= “Y"/> … </block> <block name=”Y” > “deroute” is similar to “goto” when the “cond” of the “exception” is true

Terms: Flying Cycle Take-off Climb Cruise Descent Approach Landing Go-Around (aborted landing)

Basic Waypoint Navigation: Go <go wp="HOME"/> Navigate to the waypoint “Home” May lead to altitude change if the waypoint to go to may have a different altitude Control flow goes to the next stage once “Home” is reached

Basic Waypoint Navigation: Go <go from="wp1" wp="wp2" hmode="route"/> Navigate from waypoint “wp1” to “wp2” with a linear route in between

Basic Waypoint Navigation: Go <go from="wp1" wp="wp2" hmode="route" pitch="auto" throttle="0.75" alt="ground_alt+100"/> Navigate from waypoint “wp1” to “wp2” with a linear route in between, with a fixed level of throttle, and overrides the target waypoint’s altitude with “ground_alt+100”

Terms: Throttle An aircraft needs power in the engine to perform flying tasks, such as take-off and maintaining speed. The level of power is called throttle The throttle value is between 0 and 1 Obviously, for different flying tasks, the level of throttle is different

Basic Waypoint Navigation: Go <go from="wp1" wp="wp2" hmode="route" vmode="climb" climb="1.5"/> Navigate from waypoint “wp1” to “wp2” with a linear route in between, with a fixed level of climb speed (1.5 meters per second)

Basic Waypoint Navigation: Go <go from="wp1" wp="wp2" hmode="route" approaching_time="1"/> Navigate from waypoint “wp1” to “wp2” with a linear route in between, with a duration of 1 unit of time

Basic Waypoint Navigation: Circle <circle wp="HOME" radius="75"/> Circle clock-wise around waypoint “HOME”, with a radius of 75 meters

Basic Waypoint Navigation: Circle <circle wp="HOME" radius=”-75"/> Circle counter-clock-wise around waypoint “HOME”, with a radius of 75 meters

Basic Waypoint Navigation: Circle <circle wp="HOME" radius=” 50+(GetPosAlt()-ground_alt)/2” vmode="throttle" throttle="0.75" pitch="15”/> Circle and climb clock-wise around waypoint “HOME”, with an expanding radius

Example: Take-Off <block name="Takeoff” > <exception cond="GetPosAlt() > ground_alt+25" deroute="Standby"/> <set value="0" var="kill_throttle"/> <set value="0" var="autopilot_flight_time"/> <go from="HOME" throttle="1.0" vmode="throttle" wp="CLIMB" pitch="15"/> </block>

Example: Land <block name="land"> <call fun="nav_compute_baseleg(WP_AF, WP_TD, WP_BASELEG, nav_radius)"/> <circle radius="nav_radius" until="NavCircleCount() > 0.5" wp=”WP_BASELEG"/> </block> <block name="final"> <exception cond="ground_alt + 10 > GetPosAlt()" deroute="flare"/> <go from="AF" hmode="route" vmode="glide" wp="TD"/> <block name="flare"> <go approaching_time="0” hmode="route" throttle="0.0" vmode="throttle" wp="TD"/> <attitude roll="0.0" throttle="0.0" until="FALSE" vmode="throttle"/>

Acknowledgments Paparazzi website Bhavin Desai, exploratory studies Wikipedia Images of news articles are from Google News

Terms: Course, Track, Heading Course is the angle that the intended path of the UAV makes with a fixed reference object (typically north). Course is measured in degrees from 0° clockwise to 360° in compass convention (0° being north, 90° being east). Track is the actual path over the ground (ideally the course) Heading is the direction the UAV has to point in order to achieve its course (course and heading may differ because of e.g., wind)

Terms: Vertical Control Modes Specified by the vmode attribute in Paparazzi Can be one of the four: Throttle mode (vmode = “throttle”): specifying the desired throttle, with speed implicitly determined Speed mode (vmode = “climb”): specifying the desired (climb) speed (meter/second), with throttle level implicitly determined Maintain altitude mode (vmode = “alt”): maintain the altitude specified by the waypoint (default) Glide mode (vmode = “glide”): maintain the slope between two waypoints

Terms: Horizontal Control Modes Specified by the hmode attribute in Paparazzi The most widely used one is “route”, which connects two way points