Features include:
- Return to Launch with a flick of your RC toggle switch or a mouse click in the graphical Ground Station
- Unlimited 3D GPS waypoints
- Built-in camera control
- Fully-scriptable missions
- One-click software load, and easy point-and-click configuration in the powerful Mission Planner. NO programming required!
- Replay recorded missions and analyze all the data with a graphing interface
- Supports two-way telemetry with Xbee wireless modules.
- Point-and-click waypoint entry or real-time mission commands while the UAV is in the air
- Fly with a joystick or gamepad via your PC--no need for RC control!
- Built-in failsafe will bring your aircraft home in the case of radio loss
All instructions and software are here.
APM 2 is an open source, Arduino-compatible, pro-quality autopilot. It is the most advanced IMU-based open source autopilot available today, and provides an entire UAV control system with scriptable missions with 3D waypoints, in-flight uploading of commands and powerful ground station software.
APM 2 supports any kind of of vehicle with a one-click change of code. Available code include ArduPlane (fixed wing), ArduCopter (rotary wing), ArduRover (ground vehicles) and more.
Everything you need to create an ArduPlane UAV:
* APM 2.5 autopilot with GPS ($179)
* [Optional] Telemetry kit ($75).
You'll also need a at least a five-channel RC radio setup, a soldering iron, a mini USB cable and of course something that flies! (We're partial to the SkyFun delta wing (right) and
Bixlee 2 powered glider (left) or its equivalents ourselves).
Resources:
Manual
Source code/firmware
Note: ArduPilot Mega requires no programming, but it's open source and you're welcome to modify it if you'd like. If you are going to play with the code, you can use the free Arduino IDE to edit and upload the code to the ArduPilot board.
Comments
Is there another place that I can get that file from?
Does anyone have any suggestions such as additional filters (software or hardware) or something else that will help the APM not to be affected by the engine vibration?
I thought that port 2 was being used by the oilpan in SPI mode. Is this incorrect (I'm pretty new to embedded harware/software so I could definitely be wrong)? It looks like it is just being used to send the IMU data as well as the differential pressure, so if this is the case I guess I could still use port 2 since I don't need the IMU data and just read the differential pressure on an analog input on the mega?
I have a Microstrain 3DM-GX-25 OEM IMU that I am hoping to integrate with the Ardupilot Mega. The IMU gives LVTTL (5V compliant) serial output and I have written a C++ library similar to the GPS libraries that uses a state machine to update the orientation, angular rates, and accelerations (I can make this available if anyone is interested). The issue that I am having now is that it looks like all the serial ports are spoken for. Does anyone know a good workaround for this? If I forgo wireless telemetry could I use Serial3()?
Thanks,
Josiah
Command: Update
External: D:\ardupilotmega\sketchbook\libraries\APM_ADC
Completed: D:\ardupilotmega\sketchbook\libraries\APM_ADC - at revision: 483
External: D:\ardupilotmega\sketchbook\libraries\APM_BinComm
Completed: D:\ardupilotmega\sketchbook\libraries\APM_BinComm - at revision: 483
External: D:\ardupilotmega\sketchbook\libraries\APM_BMP085
Completed: D:\ardupilotmega\sketchbook\libraries\APM_BMP085 - at revision: 483
External: D:\ardupilotmega\sketchbook\libraries\APM_Compass
Completed: D:\ardupilotmega\sketchbook\libraries\APM_Compass - at revision: 483
External: D:\ardupilotmega\sketchbook\libraries\APM_FastSerial
Completed: D:\ardupilotmega\sketchbook\libraries\APM_FastSerial - at revision: 483
External: D:\ardupilotmega\sketchbook\libraries\APM_RC
Completed: D:\ardupilotmega\sketchbook\libraries\APM_RC - at revision: 483
External: D:\ardupilotmega\sketchbook\libraries\AP_Common
Completed: D:\ardupilotmega\sketchbook\libraries\AP_Common - at revision: 483
External: D:\ardupilotmega\sketchbook\libraries\AP_Compass
Completed: D:\ardupilotmega\sketchbook\libraries\AP_Compass - at revision: 483
External: D:\ardupilotmega\sketchbook\libraries\AP_GPS
Completed: D:\ardupilotmega\sketchbook\libraries\AP_GPS - at revision: 483
External: D:\ardupilotmega\sketchbook\libraries\AP_Math
Completed: D:\ardupilotmega\sketchbook\libraries\AP_Math - at revision: 483
External: D:\ardupilotmega\sketchbook\libraries\AP_Navigation
Completed: D:\ardupilotmega\sketchbook\libraries\AP_Navigation - at revision: 483
External: D:\ardupilotmega\sketchbook\libraries\DataFlash
Completed: D:\ardupilotmega\sketchbook\libraries\DataFlash - at revision: 483
External: D:\ardupilotmega\sketchbook\libraries\FastSerial
Completed: D:\ardupilotmega\sketchbook\libraries\FastSerial - at revision: 483
External: D:\ardupilotmega\sketchbook\libraries\GPS_IMU
Completed: D:\ardupilotmega\sketchbook\libraries\GPS_IMU - at revision: 483
External: D:\ardupilotmega\sketchbook\libraries\GPS_MTK
Completed: D:\ardupilotmega\sketchbook\libraries\GPS_MTK - at revision: 483
External: D:\ardupilotmega\sketchbook\libraries\GPS_NMEA
Completed: D:\ardupilotmega\sketchbook\libraries\GPS_NMEA - at revision: 483
External: D:\ardupilotmega\sketchbook\libraries\GPS_UBLOX
Completed: D:\ardupilotmega\sketchbook\libraries\GPS_UBLOX - at revision: 484
External: D:\ardupilotmega\sketchbook\libraries\RC
Completed: D:\ardupilotmega\sketchbook\libraries\RC - at revision: 484
External: D:\ardupilotmega\sketchbook\libraries\Waypoints
Completed: D:\ardupilotmega\sketchbook\libraries\Waypoints - at revision: 484
External: D:\ardupilotmega\sketchbook\ArduPilotMega
Completed: D:\ardupilotmega\sketchbook\ArduPilotMega - at revision: 847
External: D:\ardupilotmega\sketchbook\Tests\ArduPilotMega_demo
Completed: D:\ardupilotmega\sketchbook\Tests\ArduPilotMega_demo - at revision: 847
Completed: At revision: 847
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp: In function 'void TIMER4_CAPT_vect()':
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:40: error: 'ICR4' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp: In member function 'void APM_RC_Class::Init()':
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:73: error: 'COM1C1' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:77: error: 'OCR1C' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:84: error: 'TCCR3A' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:84: error: 'WGM31' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:84: error: 'COM3A1' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:84: error: 'COM3B1' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:84: error: 'COM3C1' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:85: error: 'TCCR3B' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:85: error: 'WGM33' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:85: error: 'WGM32' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:85: error: 'CS31' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:86: error: 'OCR3A' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:87: error: 'OCR3B' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:88: error: 'OCR3C' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:89: error: 'ICR3' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:96: error: 'TCCR5A' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:96: error: 'WGM51' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:96: error: 'COM5A1' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:96: error: 'COM5B1' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:96: error: 'COM5C1' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:97: error: 'TCCR5B' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:97: error: 'WGM53' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:97: error: 'WGM52' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:97: error: 'CS51' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:98: error: 'OCR5A' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:99: error: 'OCR5B' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:100: error: 'OCR5C' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:101: error: 'ICR5' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:108: error: 'TCCR4A' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:108: error: 'WGM40' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:108: error: 'WGM41' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:108: error: 'COM4C1' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:108: error: 'COM4B1' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:108: error: 'COM4A1' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:111: error: 'TCCR4B' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:111: error: 'WGM43' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:111: error: 'WGM42' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:111: error: 'CS41' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:111: error: 'ICES4' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:113: error: 'OCR4A' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:114: error: 'OCR4B' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:115: error: 'OCR4C' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:119: error: 'TIMSK4' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:119: error: 'ICIE4' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp: In member function 'void APM_RC_Class::OutputCh(unsigned char, int)':
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:129: error: 'OCR5B' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:130: error: 'OCR5C' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:132: error: 'OCR1C' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:133: error: 'OCR4C' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:134: error: 'OCR4B' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:135: error: 'OCR3C' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:136: error: 'OCR3B' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:137: error: 'OCR5A' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:139: error: 'OCR3A' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp: In member function 'void APM_RC_Class::Force_Out0_Out1()':
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:170: error: 'TCNT5' was not declared in this scope
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp: In member function 'void APM_RC_Class::Force_Out6_Out7()':
D:\ardupilotmega\sketchbook\libraries\APM_RC\APM_RC.cpp:182: error: 'TCNT3' was not declared in this scope
Is it my config?