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

Warning

Since version 0.6, Parrot ARSDK, the main underlying dependency of bebop_autonomy is not build inline anymore. Instead, the slightly patched and catkinized version of it, called parrot_arsdk, is fetched as a dependency. The following documentation needs to be updated.

  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 arsdk-xml from the revision property of this XML tag: <project name="arsdk-xml" ... 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 the following varialbles:
  • ARCONTROLLER_DICTIONARY_KEY_ARDRONE3_PILOTINGSETTINGSSTATE_MAXDISTANCECHANGED_VALUE to ARCONTROLLER_DICTIONARY_KEY_ARDRONE3_PILOTINGSETTINGSSTATE_MAXDISTANCECHANGED_CURRENT.
  • ARCONTROLLER_DICTIONARY_KEY_ARDRONE3_PILOTINGSETTINGSSTATE_BANKEDTURNCHANGED_VALUE to ARCONTROLLER_DICTIONARY_KEY_ARDRONE3_PILOTINGSETTINGSSTATE_BANKEDTURNCHANGED_STATE
  • ARCONTROLLER_DICTIONARY_KEY_ARDRONE3_PILOTINGSETTINGSSTATE_CIRCLINGRADIUSCHANGED_VALUE to ARCONTROLLER_DICTIONARY_KEY_ARDRONE3_PILOTINGSETTINGSSTATE_CIRCLINGRADIUSCHANGED_CURRENT
  • ARCONTROLLER_DICTIONARY_KEY_ARDRONE3_PILOTINGSETTINGSSTATE_CIRCLINGALTITUDECHANGED_VALUE to ARCONTROLLER_DICTIONARY_KEY_ARDRONE3_PILOTINGSETTINGSSTATE_CIRCLINGALTITUDECHANGED_CURRENT

These changes are required becasue the upstream XML file is inconsistent for a couple of variable names.

  1. Remove build and devel space of your catkin workspace, then re-build it.