3D Robotics

ArduPilot 2.0 Beta Code Released!

I'm delighted to announce the release of the ArduPilot 2.0 software, now in public beta. This software uses the current ArduPilot hardware but handles the FMA Co-Pilot stabilization function itself, without the need for a separate stabilization unit. It is, in short, a complete integrated autopilot. That little ArduPilot board can do a lot! 2.0 Features:
  • All the ArduPilot 1.0 functions: programmable 3D waypoints; return-to-launch mode, in-flight reset ability, fully programmable actions at waypoint and totally expandable board.
  • Now integrates the stabilization and navigation functions, eliminating the need for a FMA Co-Pilot and vastly improving waypoint tracking
  • Controls elevator and ailerons/rudder. Throttle control coming in 2.1
  • "Fly-by-wire" mode stabilizes the aircraft in RC mode, duplicating the function of the FMA Co-Pilot
  • Stores home waypoints and sensor calibration in EEPROM, so they are retained even in the case of a system restart
  • Controls altitude with the elevator, vastly improving performance in wind
  • Currently optimized for the three-channel EasyStar. Versions have also been tested on Funjet and four-channel Superstar (code coming soon)
  • Simple in-field calibration process
  • Can use any thermopile XY sensors (default settings are for the FMA sensor, but Paparazzi, AttoPilot and custom sensors can also be used)
  • Currently supports the EM406 GPS. Support for Locosys and Ublox GPS modules coming soon
  • Uses "chained PID loops" to combine the stabilization and navigation functions seamlessly
What you need (if you already have an ArduPilot and FMA Co-Pilot you don't need anything else): Instructions for modifying the FMA sensor cable to use it with ArduPilot are here. Instructions for in-field calibration and setup of ArduPilot 2.0 are here. (Note: ArduPilot 2.0 put the EM406 GPS module into binary mode, which disables its onboard LED. That means that if you try to use the same GPS module with ArduPilot 1.0, it won't work (unless you program back into NMEA mode with a utility such as this one). However, if you let it sit for a few days without power, the onboard capacitor will run out and it will return to its default NMEA mode and will work with ArduPilot 1.0 again) The next version, 2.1, is now in private alpha. It will include the following:
  • Uses Z sensor for self-calibration in the field
  • Uses small desktop app to load ArduPilot settings and waypoints, without having to work with code
  • Adds throttle to altitude control, improving accuracy and wind performance
E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones

Comments

  • Developer
    Fred,

    You can emulate NMEA in the ardupilot output... So you can attach your OSD and google maps..
  • Developer
    Graham Dyer:

    I'm using only a trick, if you look carefully you will see that i'm reusing the home position and adding some degrees... Well you can completely change that and put fixed coordinate instead.
  • Thanks for answer Chris,
    But this is sad ;-) , and i think it will be better for me to use a complete FMA copilot and only one GPS (i.e.previous version) than the other way around. Most of us needing an autopilot is using OSD...
  • Developer
    William,
    I will develop a visual C# app that will read an special ardupilot telemetry (compressed) and transfer the data to Google Earth...
    NMEA was designed for marine ships, not for airplanes. They are some pros about using Binary Protocol, specially with atmega168 that has not much power.. .
  • 3D Robotics
    Fred: ArduPilot switches the EM406 into binary mode, so it won't work with an OSD. If you want to share the GPS with other hardware, you'll want to sub in a NMEA parser instead.
  • Absolutely, and the speed configuration is important too, as some OSD won´t accept other than (say) 9600bds.
    Hope it is possible to change speed in v2?
  • @William: your thought is interesting. You're certainly not the only one which has some sort of NMEA parsing between ArduPilot, OSD and Xbee. I suggest you post a new discussion around those specific themes. I am sure we'll be a bunch of people who wants to try using our new (or old) NMEA GPS together with the new ArduPilot code.
  • 3D Robotics
    Mark,

    We've never seen that error. Might be a Mac thing. I notice that you're two revs behind on Arduino. Can you upgrade to Arduino 14 and try again? The latest rev did fix some Mac bugs.
  • Developer
    Mega kudos, Chris & Jordi I am thrilled that ArduPilot has evolved to this stage of development, you have demonstrated how a small group can deliver a great solution to a very complicated problem. I will be integrating ArduPilot with F-16 style OSD. I plan to install my first unit on an airplane with ailerons and a second ArduPilot 3.x (with 6DF stabilization) into a helicopter for wildlife survey and EPA compliance. I use a Mac OS and this is my first attempt at programming imbedded processors. All steps have work without any problems so far, but had a problem with update to 2.0 there were compile errors related to Print commands and the upload failed. I also noticed that the lights didn't blink on the USB interface.


    from ADR window

    error: call of overloaded 'print(float&)' is ambiguous

    In function 'void print_data()':
    error: call of overloaded 'print(float&)' is ambiguous/Volumes/OS9/Documents/Files/UAV/arduino-0012/hardware/cores/arduino/Print.h:37: note: candidates are: void Print::print(char)

    /Volumes/OS9/Documents/Files/UAV/arduino-0012/hardware/cores/arduino/Print.h:39: note: void Print::print(uint8_t)

    /Volumes/OS9/Documents/Files/UAV/arduino-0012/hardware/cores/arduino/Print.h:40: note: void Print::print(int)

    /Volumes/OS9/Documents/Files/UAV/arduino-0012/hardware/cores/arduino/Print.h:41: note: void Print::print(unsigned int)

    /Volumes/OS9/Documents/Files/UAV/arduino-0012/hardware/cores/arduino/Print.h:42: note: void Print::print(long int)

    /Volumes/OS9/Documents/Files/UAV/arduino-0012/hardware/cores/arduino/Print.h:43: note: void Print::print(long unsigned int)


    any help would be appreciated, Do I have a setup problem related to Mac OS?
    Thanks !!
  • 3D Robotics
    William: you can choose which data you want sent in telemetry. You don't have full NMEA sentences, but you do have all the essentials: lat, lon, alt, heading, etc
This reply was deleted.