Stanford APM:Plane Overview Trent Lukaczyk April 7, 2014 AA241X – UAV Design and Build 1 The Problem Fly Autonomously Airframe Construction State Estimation Algorithm Processing Control Actuation Ground Monitoring 2 The Components • • • • • • • • 3 Autopilot Unit Wireless Telemetry Remote Control Radio GPS Radio Compass Magnetometer Airspeed Sensor Battery Monitor Servos, ESC, Motor Autopilot Unit • • • • • Auto Pilot Module (APM) ArduPilot Mega (APM) 2.6 Based on Arduino 16MHz Atmega2560 processor 16 MB dataflash memory ~ 2hours of logging (download often) • Needs: to point forward to be securely attached accelerometer calibration if relocated 4 Wireless Telemetry • • • • 5 Wireless Telemetry 915 MHz, 100mW Shares a “NetID” “MAVLink Protocol” Wireless Telemetry USB Micro B DF13 6-Pin DF13 5-Pin USB A 6 DF13 Connectors Lift this lip gently with a screwdriver Can shave these hooks off with a knife 7 Can add hot glue at the wire-connector joint. Do not use super glue here. • • • • Pain and a Half to use Easy to break But small, reconfigurable Be careful when disconnecting! Radio Control Setup • RC Transmitter, 2.4 GHz • “Binds” with Receiver – Always carry the bind plug • Four axes + mode switch • Turn on first, before plane 8 Autopilot Mode Switch Radio Control 3pin Servo Wires x5 9 Radio Control Setup Autopilot Mode Switch The order of these vary with receiver 10 Servo Wires Mixing up signal and ground can fry electronics Look for markings like this - 11 GPS + Compass • 1.57 GHz GPS radio – 5Hz position update – Needs clear sight of sky • Magnetometer – Provides heading estimate – Needs to be clear of high-current electronics – Needs: to point forward calibration if relocated 12 DF13 6pin GPS 13 DF13 4pin MAG Remember to point GPS and APM forward DF13 4pin DF13 5pin Airspeed Sensor • Pitot tube measures difference in “Static” and “Total” pressure, which is related to airspeed. • Airspeed is relative to wind – will be higher or lower if you travel against or with the wind 14 Airspeed Sensor Silcone Tubing 3pin Servo Wire A1 15 Power Module • Records current and voltage from battery • Integrate for energy usage, and battery level • Powers APM, Receiver, Radios, and Servos 16 Lithium Polymer Batteries • 3.7 Volts per Cell • Metrics: – N-Cells (2S = 2 Cells = 7.4V) – Capacity (C = 1100 mAh) – Discharge Rate (25C = 27.5A) – Charge Rate (2C = 2.2A) • Can catch fire or leak during charging – Always be present during charging • Capacity loss or Bricking if over-discharged – i.e. leaving plugged in over night 17 LiPo Discharge • LiPo’s die suddenly around 3.4Volts/Cell • Be ready to land around 3.5Volt/Cell Higher Current 18 traxxas.com Speed Controller • Rated by Max Current and Max Voltage • Direct Current Power in, Three-phase Alternating Current out • “Opto” vs “BEC” – BEC can power RC gear, Opto can’t 19 Brushless Outrunner Motor • “Outrunner” - magnets rotate around stator • Rated by kV = no load rpm/V – High kV = fast rpm, low torque – Low kV = low rpm, high torque • Too much power melts windings, burns out motor 20 Power Electronics Setup DF13 6-Pin DC Power DC Power 3 Phase AC 21 Carbon Folding Props • More rigid, more efficient, more expensive (vs plastic props) • More dangerous – they are spinning knives • Spinner cap lets them fold on landing, or if motor braking is on (more efficient glide) 22 Servos • Drive Motor + Rotation Sensor + PID Control board … in 8-grams • Forcing the control arms by hand wrecks gears www.twf8.ws 23 Servo Setup Elevator Rudder 3pin Servo Wires Ailerons Servo Wire “Y” Throttle 24 The Components • • • • • • • • 25 Autopilot Unit Wireless Telemetry Remote Control Radio GPS Radio Compass Magnetometer Airspeed Sensor Battery Monitor Servos, ESC, Motor The Problem Fly Autonomously Airframe Construction State Estimation Algorithm Processing Control Actuation Ground Monitoring 26 Stanford_ArduPlane • An easy embedded flight control software for Aerospace Engineers, based on ArduPlane • ArduPlane code without the control law https://github.com/rbunge/Stanford_ArduPlane 27 Development Tools • Download and install the ArduPilot Arduino IDE • Download Libraries and place in the Arduino sketch folder • Download Stanford ArduPlane 28 Building • Open \Stanford_ArduPlane\ \Stanford_ArduPlane.ino with Arduino • Check the board type (Mega 2560) and COM port • “Verify” = compile • “Upload” = compile and upload to APM 29 The Code • Editable: – AA241X_ControlLaw.ino – AA241X_ControlLaw.h • Not Editable: – AA241X_Competition.h – AA241X_aux.ino – AA241X_aux.h – Everything Else… 30 The Code • State and Control Variables (AA241X_aux.h) – Roll, pitch, yaw angles and rates – Inertial velocity and accelerations – Heading – Airspeed – GPS X-Y positions – GPS and Barometric Altitudes – Battery Consumption – RC Inputs, Servo + Throttle Outputs 31 The Control Loops • AA241X_ControlLaw.ino – AA241X_AUTO_FastLoop(void){} Executes @ ~50Hz – AA241X_AUTO_MediumLoop(void){} Executes @ ~10 Hz – AA241X_AUTO_SlowLoop(void){} Executes @ ~3.3 Hz • Distribute algorithm to use CPU cycles wisely • Beware of APM Memory limits – 256k Flash Program Memory, 8K SRAM, 4K EEPROM 32 The Camera Function • AA241X_aux.h 33 Telemetry Plotting • Two types of logs – Telemetry log – Dataflash log • store at higher log-rates • Download from APM over USB Cable • Mission Planner can dump matlab data files 34 The Problem Fly Autonomously Airframe Construction State Estimation Algorithm Processing Control Actuation Ground Monitoring 35 Resources • • • • • • 36 FliteTest: youtube channel DIY Drones: forum RC groups: forum GrabCAD: community CAD models 3DRobotics: Store and Manuals GitHub: Stanford_ArduPlane Code