Ardupilot (APM)

Ardupilot (APM) (commonly known as ardupilot) is an open source autopilot software that helps you build several autonomous vehicles (Copters, Planes, Rovers, HexaCopters, ...) while delivering the following features:

  • Point-and-click programming/configuration gets you up and operating without hassle.
  • Multiple command modes: Acro, Stabilize, Loiter, Alt-hold, Return To Launchpoint, Land, Simple, Guided, Position, Circle, Follow Me, GeoFence, and Auto (which runs fully scripted missions using GPS waypoints)
  • Failsafe programming options bring peace of mind in the event of lost control signal or low battery conditions
  • Three Axis camera control and stabilization, shutter control, live video link with programmable on-screen-display
  • Data transceivers allow real-time telemetry and control between your ground station computer and APM, including joystick control options
  • Full data logging provides comprehensive post mission analysis, with graphing and Google Earth mapping tools
  • No dead ends — Advanced users will find endless options for customization and expanded mission capabilities
  • Open source

Erle Robotics and its team are among the main contributors of the Ardupilot (APM) source code.

The recommended way to install any vehicle is the following (after frambuesa release):

Connect your Erle-Brain 3 to internet, open one terminal and execute the following commands:

NOTE: You need update the key of your image (after 20-09-2017).

curl | sudo bash
sudo apt-get install apm-copter-erlebrain

Open a terminal and type the following:

sudo apt-get purge -y apm-copter-erlebrain

Note: Before install a new package, uninstall the previous package.

NOTE: If you have installed the binary using the debian packages, is not necessary to compile anything.

Find below a list of the different Ardupilot (APM) binary packages we produced for you. Type the following sudo apt-get install <package-name> to get any of these binaries installed and launched automatically:

  • apm-copter-erlebrain
  • apm-hexa-erlebrain
  • apm-heli-erlebrain
  • apm-tri-erlebrain
  • apm-octa-erlebrain
  • apm-rover-erlebrain
  • apm-plane-erlebrain

sudo apt-get install -y python-pip
sudo pip install future
sudo apt-get install -y gcc-arm-linux-gnueabihf
sudo apt-get install -y g++-arm-linux-gnueabihf
sudo apt-get install -y pkg-config-arm-linux-gnueabihf
git clone
cd ardupilot/
git submodule update --init
./waf configure --board=erlebrain2
./waf # to compile the code for all the vehicles

If only one type of vehicles is needed:

./waf configure --board=erlebrain2
./waf --targets bin/arducopter

binaries will be located under build/erlebrain2/bin.

./waf configure --board=erlebrain2
./waf build --target examples/INS_generic # BARO_generic...

sudo pip install future
git clone
cd ardupilot/
git submodule update --init

Change this line.

class erlebrain2(linux):
    toolchain = 'native' # Necessary change

    def configure_env(self, cfg, env):
        super(erlebrain2, self).configure_env(cfg, env)

./waf configure --board=erlebrain2
./waf # to compile the code for all the vehicles

If only one type of vehicles is needed:

./waf configure --board=erlebrain2
./waf --targets bin/arducopter

./waf configure --board=erlebrain2
./waf build --target examples/INS_generic # BARO_generic...

# install git
sudo apt-get install git
# clone ardupilot repository
git clone
# run prerequisites
ardupilot/Tools/scripts/ -y
# Change directory to ardupilot
cd ardupilot
# Pick your vehicle, we'll choose ArduCopter
cd ArduCopter
# clean previous builds (if existing)
make clean
# -j4 sets the number of cores will be used during the build process.
make erlebrain2 -j4
# Form build a Erle-HexaCopter:
# make erlebrain2-hexa -j4

Once the binary is generated will be saved into /tmp/

You can find the source of the code in the following link.