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
I'm using v1.03 alpha code but i can't find the GPS_UBLOX.pde in the folder. Do i need this GPS_UBLOX.pde so my GPS will work? I'm guessing is it the USB port do not provide enough current?
To clarify, I held a large PCB (computer motherboard) in between the ESC and the aircraft. The motherboard appeared to shield the APM from the ESC and eliminated most of the drift in the servos. Also, the drift is always in the same direction. The servos are not "twitching."
Do you have any shielding ideas that I could apply either to the ESC or the APM that might help?
I couldn't quite visualise your test setup (e.g. what you meant by "thick piece of material"); a picture might help, but in general you'll want to keep the autopilot as far away from all of your high-power circuitry as possible.
On one of the testbeds I am using to test the APM, I am using a pretty heavy duty, high voltage speed controller. It appears that the speed controller is causing the the APM to sense motion (even though the aircraft is stationary and on the bench) and counteract with significant movement on the servos. This is happening whenever I throttle up the motor.
I was able to isolate the speed controller by holding the speed controller in my hand away from the aircraft and placing a thick piece of material between it and the APM. This causes the drift in the servos to almost completely go away.
Also, I am not running the throttle through the APM. I am going directly from the radio receiver to the speed controller.
Why would my speed controller be causing interference with the APM?
"3.If you have the older ATmega168 board did you select "Arduino Diecimila" as the board in the Arduino Tools menu? If you have the newer ATmega328 board, did you select "Arduino Duemilanova w/ATmega328"?"
I dont think it is me this time ;-) Library 533 Ardupilot 908
ArduPilotMega.cpp:6147:1: error: unterminated #if
ArduPilotMega:93: error: invalid conversion from 'const char*' to 'char'
ArduPilotMega.cpp: In function 'void update_GPS()':
ArduPilotMega:699: error: 'ALTITUDE_MIX' was not declared in this scope
ArduPilotMega.cpp: In function 'void read_user_configs()':
EEPROM:232: error: 'flight_mode_channel' was not declared in this scope
EEPROM:233: error: 'auto_trim' was not declared in this scope
EEPROM:234: error: invalid conversion from 'int16_t*' to 'const uint16_t*'
EEPROM:234: error: initializing argument 1 of 'uint16_t eeprom_read_word(const uint16_t*)'
ArduPilotMega.cpp: In function 'void save_user_configs()':
EEPROM:254: error: 'flight_mode_channel' was not declared in this scope
GCS_Ardupilot:0: error: 'auto_trim' was not declared in this scope
ArduPilotMega.cpp: In function 'byte readSwitch()':
control_modes:45: error: 'flight_mode_channel' was not declared in this scope
ArduPilotMega.cpp: In function 'void init_ardupilot()':
system:145: error: 'flight_mode_channel' was not declared in this scope
ArduPilotMega.cpp: In function 'void set_mode(byte)':
system:236: error: 'auto_trim' was not declared in this scope