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_TAG
ofARDroneSDK3
inbebop_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. - 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 oflibARCommands
from therevision
property of this XML tag:<project name="libARCommands" ... revision="" />
. - Open
bebop_driver/scripts/meta/generate.py
and updateLIBARCOMMANDS_GIT_HASH
variable to the hash obtained in step (2). - Change the working diretory to
bebop_driver/scripts/meta
, then executegenerate.py
from 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.h
changeARCONTROLLER_DICTIONARY_KEY_ARDRONE3_PILOTINGSETTINGSSTATE_MAXDISTANCECHANGED_VALUE
toARCONTROLLER_DICTIONARY_KEY_ARDRONE3_PILOTINGSETTINGSSTATE_MAXDISTANCECHANGED_CURRENT
. This is due to a bug in upstream XML definitions. - Remove
build
anddevel
space of yourcatkin
workspace, then re-build it.