Under The Hood

This page contains information about the architecture of the driver and different techniques used for its development.

Automatic Code Generation

TBA

Threading Model

TBA

Publishing the States

TBA

Configuring the Drone

TBA

Tests

Enabling Bebop In The Loop Tests

$ cd /path/to/bebop_ws
$ catkin clean --cmake-cache
$ catkin build bebop_driver --cmake-args -DRUN_HARDWARE_TESTS=ON

Running Bebop In The Loop Tests

Warning

Bebop in the loop tests perform live unit tests with a real robot. Please proceed with caution and execute the tests in an area with at least 5 meters of clearance radius (empty space) around the Bebop.

$ cd /path/to/bebop_ws/build/bebop_driver
$ make tests
$ rostest --text bebop_driver bebop_itl_test.test

Upgrading the Bebop SDK

  1. Update the GIT_TAG of ARDroneSDK3 in bebop_driver/CMakeLists.txt::add_custom_target::./repo init ... -b GIT_TAG to your desired commit hash, branch or tag (release). The official upstream repository is hosted here.
  2. Checkout (or browse) the upstream repository at the same hash used in step (1) and open release.xml file. From this file, extract the commit hash of libARCommands from the revision property of this XML tag: <project name="libARCommands" ... revision="" />.
  3. Open bebop_driver/scripts/meta/generate.py and update LIBARCOMMANDS_GIT_HASH variable to the hash obtained in step (2).
  4. Change the working diretory to bebop_driver/scripts/meta, then execute generate.py from the command line. This will regenerate all automatically generated message definitions, header files and documentations.
  5. Copy the generated files to their target locations by calling install.sh.
  6. In bebop_driver/include/bebop_driver/autogenerated/ardrone3_setting_callbacks.h change ARCONTROLLER_DICTIONARY_KEY_ARDRONE3_PILOTINGSETTINGSSTATE_MAXDISTANCECHANGED_VALUE to ARCONTROLLER_DICTIONARY_KEY_ARDRONE3_PILOTINGSETTINGSSTATE_MAXDISTANCECHANGED_CURRENT. This is due to a bug in upstream XML definitions.
  7. Remove build and devel space of your catkin workspace, then re-build it.