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¶
- Update the
GIT_TAGofARDroneSDK3inbebop_driver/CMakeLists.txt::add_custom_target::./repo init ... -b GIT_TAGto your desired commit hash, branch or tag (release). The official upstream repository is hosted here. - Checkout (or browse) the upstream repository at the same hash used in step (1) and open
release.xmlfile. From this file, extract the commit hash oflibARCommandsfrom therevisionproperty of this XML tag:<project name="libARCommands" ... revision="" />. - Open
bebop_driver/scripts/meta/generate.pyand updateLIBARCOMMANDS_GIT_HASHvariable to the hash obtained in step (2). - Change the working diretory to
bebop_driver/scripts/meta, then executegenerate.pyfrom the command line. This will regenerate all automatically generated message definitions, header files and documentations. - Copy the generated files to their target locations by calling
install.sh. - In
bebop_driver/include/bebop_driver/autogenerated/ardrone3_setting_callbacks.hchangeARCONTROLLER_DICTIONARY_KEY_ARDRONE3_PILOTINGSETTINGSSTATE_MAXDISTANCECHANGED_VALUEtoARCONTROLLER_DICTIONARY_KEY_ARDRONE3_PILOTINGSETTINGSSTATE_MAXDISTANCECHANGED_CURRENT. This is due to a bug in upstream XML definitions. - Remove
buildanddevelspace of yourcatkinworkspace, then re-build it.