├── bebop_driver
├── scripts
│ └── meta
│ │ ├── README.md
│ │ ├── templates
│ │ ├── dictionary_key.mustache
│ │ ├── url.mustache
│ │ ├── last_build_info.mustache
│ │ ├── msg.mustache
│ │ ├── states_param_topic.rst.mustache
│ │ ├── settings_param.rst.mustache
│ │ ├── cfg.mustache
│ │ ├── setting_callback_includes.h.mustache
│ │ ├── state_callback_includes.h.mustache
│ │ ├── callbacks_common.h.mustache
│ │ ├── state_callbacks.h.mustache
│ │ └── setting_callbacks.h.mustache
│ │ ├── last_build_info
│ │ ├── install.sh
│ │ └── sdk_37.log
├── README.md
├── nodelet_plugins.xml
├── test
│ ├── README.md
│ └── bebop_itl_test.test
├── data
│ ├── bebop1_camera_calib.yaml
│ └── bebop2_camera_calib.yaml
├── launch
│ ├── bebop_node.launch
│ └── bebop_nodelet.launch
├── config
│ └── defaults.yaml
├── package.xml
├── src
│ └── bebop_driver_node.cpp
├── include
│ └── bebop_driver
│ │ ├── autogenerated
│ │ └── callbacks_common.h
│ │ ├── bebop_video_decoder.h
│ │ ├── bebop.h
│ │ └── bebop_driver_nodelet.h
├── CMakeLists.txt
└── CHANGELOG.rst
├── docs
├── img
│ └── tf.png
├── changelog.rst
├── README.md
├── coordinates.rst
├── FAQ.rst
├── installation.rst
├── contribute.rst
├── running.rst
├── configuration.rst
├── index.rst
├── license.rst
├── reading.rst
├── dev.rst
└── Makefile
├── bebop_msgs
├── README.md
├── msg
│ └── autogenerated
│ │ ├── last_build_info
│ │ ├── CommonOverHeatStateOverHeatChanged.msg
│ │ ├── Ardrone3PROStateFeatures.msg
│ │ ├── Ardrone3PilotingStateFlatTrimChanged.msg
│ │ ├── CommonCommonStateBatteryStateChanged.msg
│ │ ├── Ardrone3GPSStateNumberOfSatelliteChanged.msg
│ │ ├── Ardrone3NetworkStateAllWifiScanChanged.msg
│ │ ├── CommonARLibsVersionsStateDeviceLibARCommandsVersion.msg
│ │ ├── Ardrone3PilotingStateAutoTakeOffModeChanged.msg
│ │ ├── CommonARLibsVersionsStateControllerLibARCommandsVersion.msg
│ │ ├── CommonARLibsVersionsStateSkyControllerLibARCommandsVersion.msg
│ │ ├── CommonCalibrationStateMagnetoCalibrationStartedChanged.msg
│ │ ├── Ardrone3CameraStateOrientation.msg
│ │ ├── Ardrone3NetworkStateAllWifiAuthChannelChanged.msg
│ │ ├── CommonCommonStateMassStorageStateListChanged.msg
│ │ ├── CommonCommonStateWifiSignalChanged.msg
│ │ ├── CommonOverHeatStateOverHeatRegulationChanged.msg
│ │ ├── CommonAudioStateAudioStreamingRunning.msg
│ │ ├── CommonCalibrationStateMagnetoCalibrationRequiredState.msg
│ │ ├── Ardrone3CameraStateVelocityRange.msg
│ │ ├── Ardrone3CameraStateOrientationV2.msg
│ │ ├── Ardrone3PilotingStateAirSpeedChanged.msg
│ │ ├── Ardrone3PilotingStateAttitudeChanged.msg
│ │ ├── Ardrone3MediaRecordStatePictureStateChanged.msg
│ │ ├── CommonAccessoryStateAccessoryConfigModificationEnabled.msg
│ │ ├── CommonMavlinkStateMissionItemExecuted.msg
│ │ ├── CommonHeadlightsStateintensityChanged.msg
│ │ ├── CommonCommonStateAllStatesChanged.msg
│ │ ├── Ardrone3CameraStatedefaultCameraOrientation.msg
│ │ ├── Ardrone3CameraStatedefaultCameraOrientationV2.msg
│ │ ├── Ardrone3PilotingStateAltitudeChanged.msg
│ │ ├── Ardrone3PilotingStateLandingStateChanged.msg
│ │ ├── CommonFlightPlanStateAvailabilityStateChanged.msg
│ │ ├── CommonFlightPlanStateLockStateChanged.msg
│ │ ├── CommonRunStateRunIdChanged.msg
│ │ ├── Ardrone3PilotingStatePositionChanged.msg
│ │ ├── CommonCommonStateMassStorageInfoRemainingListChanged.msg
│ │ ├── CommonCommonStateCurrentDateChanged.msg
│ │ ├── CommonCommonStateCurrentTimeChanged.msg
│ │ ├── Ardrone3MediaStreamingStateVideoEnableChanged.msg
│ │ ├── CommonChargerStateLastChargeRateChanged.msg
│ │ ├── CommonCommonStateDeprecatedMassStorageContentChanged.msg
│ │ ├── CommonMavlinkStateMavlinkPlayErrorStateChanged.msg
│ │ ├── CommonCommonStateMassStorageContent.msg
│ │ ├── Ardrone3MediaRecordStateVideoStateChanged.msg
│ │ ├── Ardrone3AntiflickeringStatemodeChanged.msg
│ │ ├── CommonCommonStateMassStorageContentForCurrentRun.msg
│ │ ├── Ardrone3PilotingStateAlertStateChanged.msg
│ │ ├── CommonAccessoryStateSupportedAccessoriesListChanged.msg
│ │ ├── Ardrone3AntiflickeringStateelectricFrequencyChanged.msg
│ │ ├── CommonCalibrationStatePitotCalibrationStateChanged.msg
│ │ ├── Ardrone3PilotingStateSpeedChanged.msg
│ │ ├── Ardrone3NetworkStateWifiScanListChanged.msg
│ │ ├── CommonCommonStateVideoRecordingTimestamp.msg
│ │ ├── CommonChargerStateMaxChargeRateChanged.msg
│ │ ├── CommonCalibrationStateMagnetoCalibrationAxisToCalibrateChanged.msg
│ │ ├── Ardrone3MediaStreamingStateVideoStreamModeChanged.msg
│ │ ├── Ardrone3NetworkStateWifiAuthChannelListChanged.msg
│ │ ├── CommonCommonStateSensorsStatesListChanged.msg
│ │ ├── CommonCommonStateCountryListKnown.msg
│ │ ├── CommonCommonStateMassStorageInfoStateListChanged.msg
│ │ ├── CommonCalibrationStateMagnetoCalibrationStateChanged.msg
│ │ ├── Ardrone3GPSStateHomeTypeAvailabilityChanged.msg
│ │ ├── Ardrone3MediaRecordStateVideoStateChangedV2.msg
│ │ ├── Ardrone3AccessoryStateConnectedAccessories.msg
│ │ ├── Ardrone3MediaRecordStatePictureStateChangedV2.msg
│ │ ├── CommonMavlinkStateMavlinkFilePlayingStateChanged.msg
│ │ ├── Ardrone3PilotingStateGpsLocationChanged.msg
│ │ ├── Ardrone3PilotingStateFlyingStateChanged.msg
│ │ ├── Ardrone3MediaRecordStateVideoResolutionState.msg
│ │ ├── CommonAccessoryStateAccessoryConfigChanged.msg
│ │ ├── CommonFlightPlanStateComponentStateListChanged.msg
│ │ ├── Ardrone3GPSStateHomeTypeChosenChanged.msg
│ │ ├── CommonCommonStateProductModel.msg
│ │ ├── CommonChargerStateCurrentChargeStateChanged.msg
│ │ ├── Ardrone3PilotingStateNavigateHomeStateChanged.msg
│ │ ├── CommonChargerStateChargingInfo.msg
│ │ ├── Ardrone3PilotingStatemoveToChanged.msg
│ │ └── CommonAnimationsStateList.msg
├── CMakeLists.txt
├── package.xml
└── CHANGELOG.rst
├── bebop_tools
├── README.md
├── CMakeLists.txt
├── launch
│ ├── bebop_nodelet_iv.launch
│ └── joy_teleop.launch
├── package.xml
├── CHANGELOG.rst
└── config
│ ├── xbox360.yaml
│ └── log710.yaml
├── bebop_description
├── meshes
│ └── bebop_model.stl
├── CMakeLists.txt
├── launch
│ └── description.launch
├── CHANGELOG.rst
├── package.xml
└── urdf
│ └── bebop_base.urdf.xacro
├── bebop_autonomy
├── CMakeLists.txt
├── CHANGELOG.rst
└── package.xml
├── .gitignore
├── LICENSE
├── README.md
└── .travis.yml
/bebop_driver/scripts/meta/README.md:
--------------------------------------------------------------------------------
1 | ## Automatic Code Generation
2 |
3 | TBA
4 |
--------------------------------------------------------------------------------
/bebop_driver/README.md:
--------------------------------------------------------------------------------
1 | ## bebop_driver
2 |
3 | ROS Driver for Parrot Bebop drone.
4 |
--------------------------------------------------------------------------------
/docs/img/tf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AutonomyLab/bebop_autonomy/HEAD/docs/img/tf.png
--------------------------------------------------------------------------------
/bebop_msgs/README.md:
--------------------------------------------------------------------------------
1 | ## bebop_msgs
2 |
3 | Common message definitions for `bebop_autonomy`.
4 |
--------------------------------------------------------------------------------
/bebop_tools/README.md:
--------------------------------------------------------------------------------
1 | ## bebop_tools
2 |
3 | Miscellaneous tools for `bebop_autonomy` package
4 |
--------------------------------------------------------------------------------
/bebop_driver/scripts/meta/templates/dictionary_key.mustache:
--------------------------------------------------------------------------------
1 | ARCONTROLLER_DICTIONARY_KEY_{{project}}_{{class}}_{{cmd}}
--------------------------------------------------------------------------------
/bebop_driver/scripts/meta/templates/url.mustache:
--------------------------------------------------------------------------------
1 | https://raw.githubusercontent.com/{{repo_owner}}/arsdk-xml/{{hash}}/xml/{{filename}}
--------------------------------------------------------------------------------
/bebop_description/meshes/bebop_model.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AutonomyLab/bebop_autonomy/HEAD/bebop_description/meshes/bebop_model.stl
--------------------------------------------------------------------------------
/bebop_autonomy/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 2.8.3)
2 | project(bebop_autonomy)
3 | find_package(catkin REQUIRED)
4 | catkin_metapackage()
5 |
--------------------------------------------------------------------------------
/bebop_driver/scripts/meta/templates/last_build_info.mustache:
--------------------------------------------------------------------------------
1 | Last auto-generation build info:
2 |
3 | - Source hash {{source_hash}}
4 | - Date {{date}}
5 | - Generator {{generator}} @ {{generator_git_hash}}
6 |
--------------------------------------------------------------------------------
/bebop_driver/scripts/meta/last_build_info:
--------------------------------------------------------------------------------
1 | Last auto-generation build info:
2 |
3 | - Source hash ab28dab91845cd36c4d7002b55f70805deaff3c8
4 | - Date 2017-06-27 13:53:57.790920
5 | - Generator generate.py @ 8801830
6 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/last_build_info:
--------------------------------------------------------------------------------
1 | Last auto-generation build info:
2 |
3 | - Source hash ab28dab91845cd36c4d7002b55f70805deaff3c8
4 | - Date 2017-06-27 13:53:57.790920
5 | - Generator generate.py @ 8801830
6 |
--------------------------------------------------------------------------------
/bebop_description/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 2.8.3)
2 | project(bebop_description)
3 |
4 | find_package(catkin REQUIRED COMPONENTS
5 | roslaunch
6 | )
7 |
8 | catkin_package()
9 |
10 | # TODO: Tests
11 | # TODO: Install Rules
12 |
--------------------------------------------------------------------------------
/docs/changelog.rst:
--------------------------------------------------------------------------------
1 | *****************************
2 | Changelog and Release History
3 | *****************************
4 |
5 | .. include:: ../bebop_driver/CHANGELOG.rst
6 | .. include:: ../bebop_tools/CHANGELOG.rst
7 | .. include:: ../bebop_msgs/CHANGELOG.rst
8 | .. include:: ../bebop_description/CHANGELOG.rst
9 |
--------------------------------------------------------------------------------
/bebop_driver/nodelet_plugins.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Nodelet implementation of bebop_autonomy/bebop_driver.
4 |
5 |
6 |
--------------------------------------------------------------------------------
/bebop_tools/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 2.8.3)
2 | project(bebop_tools)
3 |
4 | find_package(catkin REQUIRED COMPONENTS
5 | bebop_msgs
6 | )
7 |
8 | # catkin_python_setup()
9 |
10 | catkin_package(
11 | # INCLUDE_DIRS include
12 | CATKIN_DEPENDS bebop_msgs
13 | )
14 |
15 | # TODO: Install Rules
16 |
--------------------------------------------------------------------------------
/docs/README.md:
--------------------------------------------------------------------------------
1 | ## Documentation for bebop_autonomy
2 |
3 | ### View the documentation online
4 |
5 | http://bebop-autonomy.readthedocs.org/
6 |
7 | ### Build documentation locally
8 |
9 | Install [sphinx](http://sphinx-doc.org/latest/install.html) and [ReadTheDocs Theme](https://github.com/snide/sphinx_rtd_theme), then run `make`.
10 |
--------------------------------------------------------------------------------
/bebop_driver/test/README.md:
--------------------------------------------------------------------------------
1 | ## Running BIL test with the new catkin
2 |
3 | TBA
4 |
5 | ## Running BIL test manually
6 |
7 | ```bash
8 | $ cd bebop_ws/build/bebop_driver
9 | $ make run_tests
10 | ```
11 |
12 | ## Debugging BIL test
13 |
14 | ```bash
15 | $ cd bebop_ws/build/bebop_driver
16 | $ make tests
17 | $ rostest --text bebop_driver bebop_itl_test.test
18 | ```
19 |
--------------------------------------------------------------------------------
/bebop_description/launch/description.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonOverHeatStateOverHeatChanged.msg:
--------------------------------------------------------------------------------
1 | # CommonOverHeatStateOverHeatChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Overheat temperature reached.
8 |
9 | Header header
10 |
11 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/Ardrone3PROStateFeatures.msg:
--------------------------------------------------------------------------------
1 | # Ardrone3PROStateFeatures
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Pro features.
8 |
9 | Header header
10 |
11 | # Bitfield representing enabled features.
12 | uint64 features
13 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/Ardrone3PilotingStateFlatTrimChanged.msg:
--------------------------------------------------------------------------------
1 | # Ardrone3PilotingStateFlatTrimChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Drone acknowledges that flat trim was correctly processed.
8 |
9 | Header header
10 |
11 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonCommonStateBatteryStateChanged.msg:
--------------------------------------------------------------------------------
1 | # CommonCommonStateBatteryStateChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Battery state.
8 |
9 | Header header
10 |
11 | # Battery percentage
12 | uint8 percent
13 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/Ardrone3GPSStateNumberOfSatelliteChanged.msg:
--------------------------------------------------------------------------------
1 | # Ardrone3GPSStateNumberOfSatelliteChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Number of GPS satellites.
8 |
9 | Header header
10 |
11 | # The number of satellite
12 | uint8 numberOfSatellite
13 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/Ardrone3NetworkStateAllWifiScanChanged.msg:
--------------------------------------------------------------------------------
1 | # Ardrone3NetworkStateAllWifiScanChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Wifi scan ended.\n When receiving this event, the list of [WifiScanResults](#1-14-0) is complete.
8 |
9 | Header header
10 |
11 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonARLibsVersionsStateDeviceLibARCommandsVersion.msg:
--------------------------------------------------------------------------------
1 | # CommonARLibsVersionsStateDeviceLibARCommandsVersion
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment:
8 |
9 | Header header
10 |
11 | # version of libARCommands (1.2.3.4 format)
12 | string version
13 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/Ardrone3PilotingStateAutoTakeOffModeChanged.msg:
--------------------------------------------------------------------------------
1 | # Ardrone3PilotingStateAutoTakeOffModeChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Auto takeoff mode
8 |
9 | Header header
10 |
11 | # State of automatic take off mode (1 if enabled)
12 | uint8 state
13 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonARLibsVersionsStateControllerLibARCommandsVersion.msg:
--------------------------------------------------------------------------------
1 | # CommonARLibsVersionsStateControllerLibARCommandsVersion
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment:
8 |
9 | Header header
10 |
11 | # version of libARCommands (1.2.3.4 format)
12 | string version
13 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonARLibsVersionsStateSkyControllerLibARCommandsVersion.msg:
--------------------------------------------------------------------------------
1 | # CommonARLibsVersionsStateSkyControllerLibARCommandsVersion
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment:
8 |
9 | Header header
10 |
11 | # version of libARCommands (1.2.3.4 format)
12 | string version
13 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonCalibrationStateMagnetoCalibrationStartedChanged.msg:
--------------------------------------------------------------------------------
1 | # CommonCalibrationStateMagnetoCalibrationStartedChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Calibration process state.
8 |
9 | Header header
10 |
11 | # 1 if calibration has started, 0 otherwise
12 | uint8 started
13 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/Ardrone3CameraStateOrientation.msg:
--------------------------------------------------------------------------------
1 | # Ardrone3CameraStateOrientation
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Camera orientation.
8 |
9 | Header header
10 |
11 | # Tilt camera consign for the drone [-100;100]
12 | int8 tilt
13 | # Pan camera consign for the drone [-100;100]
14 | int8 pan
15 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/Ardrone3NetworkStateAllWifiAuthChannelChanged.msg:
--------------------------------------------------------------------------------
1 | # Ardrone3NetworkStateAllWifiAuthChannelChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Available wifi channels completed.\n When receiving this event, the list of [AvailableWifiChannels](#1-14-2) is complete.
8 |
9 | Header header
10 |
11 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonCommonStateMassStorageStateListChanged.msg:
--------------------------------------------------------------------------------
1 | # CommonCommonStateMassStorageStateListChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Mass storage state list.
8 |
9 | Header header
10 |
11 | # Mass storage id (unique)
12 | uint8 mass_storage_id
13 | # Mass storage name
14 | string name
15 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonCommonStateWifiSignalChanged.msg:
--------------------------------------------------------------------------------
1 | # CommonCommonStateWifiSignalChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Rssi (Wifi Signal between controller and product) changed.
8 |
9 | Header header
10 |
11 | # RSSI of the signal between controller and the product (in dbm)
12 | int16 rssi
13 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonOverHeatStateOverHeatRegulationChanged.msg:
--------------------------------------------------------------------------------
1 | # CommonOverHeatStateOverHeatRegulationChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Overheat regulation type.
8 |
9 | Header header
10 |
11 | # Type of overheat regulation : 0 for ventilation, 1 for switch off
12 | uint8 regulationType
13 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonAudioStateAudioStreamingRunning.msg:
--------------------------------------------------------------------------------
1 | # CommonAudioStateAudioStreamingRunning
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Audio stream direction.
8 |
9 | Header header
10 |
11 | # Bit field for TX and RX running bit 0 is 1 if Drone TX is running bit 1 is 1 if Drone RX is running
12 | uint8 running
13 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonCalibrationStateMagnetoCalibrationRequiredState.msg:
--------------------------------------------------------------------------------
1 | # CommonCalibrationStateMagnetoCalibrationRequiredState
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Calibration required.
8 |
9 | Header header
10 |
11 | # 1 if calibration is required, 0 if current calibration is still valid
12 | uint8 required
13 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/Ardrone3CameraStateVelocityRange.msg:
--------------------------------------------------------------------------------
1 | # Ardrone3CameraStateVelocityRange
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Camera Orientation velocity limits.
8 |
9 | Header header
10 |
11 | # Absolute max tilt velocity [deg/s]
12 | float32 max_tilt
13 | # Absolute max pan velocity [deg/s]
14 | float32 max_pan
15 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/Ardrone3CameraStateOrientationV2.msg:
--------------------------------------------------------------------------------
1 | # Ardrone3CameraStateOrientationV2
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Camera orientation with float arguments.
8 |
9 | Header header
10 |
11 | # Tilt camera consign for the drone [deg]
12 | float32 tilt
13 | # Pan camera consign for the drone [deg]
14 | float32 pan
15 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/Ardrone3PilotingStateAirSpeedChanged.msg:
--------------------------------------------------------------------------------
1 | # Ardrone3PilotingStateAirSpeedChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Drones air speed changed\n Expressed in the drones referential.
8 |
9 | Header header
10 |
11 | # Speed relative to air on x axis (speed is always > 0) (in m/s)
12 | float32 airSpeed
13 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/Ardrone3PilotingStateAttitudeChanged.msg:
--------------------------------------------------------------------------------
1 | # Ardrone3PilotingStateAttitudeChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Drones attitude changed.
8 |
9 | Header header
10 |
11 | # roll value (in radian)
12 | float32 roll
13 | # Pitch value (in radian)
14 | float32 pitch
15 | # Yaw value (in radian)
16 | float32 yaw
17 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/Ardrone3MediaRecordStatePictureStateChanged.msg:
--------------------------------------------------------------------------------
1 | # Ardrone3MediaRecordStatePictureStateChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Picture state.
8 |
9 | Header header
10 |
11 | # 1 if picture has been taken, 0 otherwise
12 | uint8 state
13 | # Mass storage id where the picture was recorded
14 | uint8 mass_storage_id
15 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonAccessoryStateAccessoryConfigModificationEnabled.msg:
--------------------------------------------------------------------------------
1 | # CommonAccessoryStateAccessoryConfigModificationEnabled
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Availability to declare or not an accessory.
8 |
9 | Header header
10 |
11 | # 1 if the modification of the accessory Config is enabled, 0 otherwise
12 | uint8 enabled
13 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonMavlinkStateMissionItemExecuted.msg:
--------------------------------------------------------------------------------
1 | # CommonMavlinkStateMissionItemExecuted
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Mission item has been executed.
8 |
9 | Header header
10 |
11 | # Index of the mission item. This is the place of the mission item in the list of the items of the mission. Begins at 0.
12 | uint32 idx
13 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonHeadlightsStateintensityChanged.msg:
--------------------------------------------------------------------------------
1 | # CommonHeadlightsStateintensityChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Lighting LEDs intensity.
8 |
9 | Header header
10 |
11 | # The intensity value for the left LED (0 through 255).
12 | uint8 left
13 | # The intensity value for the right LED (0 through 255).
14 | uint8 right
15 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonCommonStateAllStatesChanged.msg:
--------------------------------------------------------------------------------
1 | # CommonCommonStateAllStatesChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: All states have been sent.\n\n **Please note that you should not care about this event if you are using the libARController API as this library is handling the connection process for you.**
8 |
9 | Header header
10 |
11 |
--------------------------------------------------------------------------------
/bebop_driver/data/bebop1_camera_calib.yaml:
--------------------------------------------------------------------------------
1 | image_width: 640
2 | image_height: 368
3 | camera_name: bebop_front
4 | camera_matrix:
5 | rows: 3
6 | cols: 3
7 | data: [396.17782, 0, 322.453185, 0, 399.798333, 174.243174, 0, 0, 1]
8 | distortion_model: plumb_bob
9 | distortion_coefficients:
10 | rows: 1
11 | cols: 5
12 | data: [-0.001983, 0.015844, -0.003171, 0.001506, 0]
13 | rectification_matrix:
14 | rows: 3
15 | cols: 3
16 | data: [1, 0, 0, 0, 1, 0, 0, 0, 1]
17 | projection_matrix:
18 | rows: 3
19 | cols: 4
20 | data: [400.182373, 0, 323.081936, 0, 0, 403.197845, 172.320207, 0, 0, 0, 1, 0]
21 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Compiled Object files
2 | *.slo
3 | *.lo
4 | *.o
5 | *.obj
6 |
7 | # Precompiled Headers
8 | *.gch
9 | *.pch
10 |
11 | # Compiled Dynamic libraries
12 | *.so
13 | *.dylib
14 | *.dll
15 |
16 | # Fortran module files
17 | *.mod
18 |
19 | # Compiled Static libraries
20 | *.lai
21 | *.la
22 | *.a
23 | *.lib
24 |
25 | # Executables
26 | *.exe
27 | *.out
28 | *.app
29 |
30 | # doc
31 | docs/_build
32 |
33 | # Misc
34 | CMakeLists.txt.user
35 | bebop_driver/scripts/meta/*.msg
36 | bebop_driver/scripts/meta/*.h
37 | bebop_driver/scripts/meta/*.cfg
38 | bebop_driver/scripts/meta/*.rst
39 |
40 | # Temporary files
41 | *~
42 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/Ardrone3CameraStatedefaultCameraOrientation.msg:
--------------------------------------------------------------------------------
1 | # Ardrone3CameraStatedefaultCameraOrientation
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Orientation of the center of the camera.\n This is the value to send when you want to center the camera.
8 |
9 | Header header
10 |
11 | # Tilt value (in degree)
12 | int8 tilt
13 | # Pan value (in degree)
14 | int8 pan
15 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/Ardrone3CameraStatedefaultCameraOrientationV2.msg:
--------------------------------------------------------------------------------
1 | # Ardrone3CameraStatedefaultCameraOrientationV2
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Orientation of the center of the camera.\n This is the value to send when you want to center the camera.
8 |
9 | Header header
10 |
11 | # Tilt value [deg]
12 | float32 tilt
13 | # Pan value [deg]
14 | float32 pan
15 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/Ardrone3PilotingStateAltitudeChanged.msg:
--------------------------------------------------------------------------------
1 | # Ardrone3PilotingStateAltitudeChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Drones altitude changed.\n The altitude reported is the altitude above the take off point.\n To get the altitude above sea level, see [PositionChanged](#1-4-4).
8 |
9 | Header header
10 |
11 | # Altitude in meters
12 | float64 altitude
13 |
--------------------------------------------------------------------------------
/bebop_driver/scripts/meta/templates/msg.mustache:
--------------------------------------------------------------------------------
1 | # {{msg_filename}}
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: {{msg_file_comment}}
8 |
9 | Header header
10 |
11 | {{#msg_field}}
12 | # {{msg_field_comment}}
13 | {{#msg_field_enum}}
14 | uint8 {{constant_name}}={{constant_value}} # {{constant_comment}}
15 | {{/msg_field_enum}}
16 | {{msg_field_type}} {{msg_field_name}}
17 | {{/msg_field}}
18 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/Ardrone3PilotingStateLandingStateChanged.msg:
--------------------------------------------------------------------------------
1 | # Ardrone3PilotingStateLandingStateChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Landing state.\n Only available for fixed wings (which have two landing modes).
8 |
9 | Header header
10 |
11 | # Drone landing state
12 | uint8 state_linear=0 # Linear landing
13 | uint8 state_spiral=1 # Spiral landing
14 | uint8 state
15 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonFlightPlanStateAvailabilityStateChanged.msg:
--------------------------------------------------------------------------------
1 | # CommonFlightPlanStateAvailabilityStateChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: FlightPlan availability.\n Availability is linked to GPS fix, magnetometer calibration, sensor states...
8 |
9 | Header header
10 |
11 | # Running a flightPlan file is available (1 running a flightPlan file is available, otherwise 0)
12 | uint8 AvailabilityState
13 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonFlightPlanStateLockStateChanged.msg:
--------------------------------------------------------------------------------
1 | # CommonFlightPlanStateLockStateChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: FlightPlan lock state.\n Represents the fact that the controller is able or not to stop or pause a playing FlightPlan
8 |
9 | Header header
10 |
11 | # 1 if FlightPlan is locked: cant pause or stop FlightPlan. 0 if FlightPlan is unlocked: pause or stop available.
12 | uint8 LockState
13 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonRunStateRunIdChanged.msg:
--------------------------------------------------------------------------------
1 | # CommonRunStateRunIdChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Current run id.\n A run id is uniquely identifying a run or a flight.\n For each run is generated on the drone a file which can be used by Academy to sum up the run.\n Also, each medias taken during a run has a filename containing the run id.
8 |
9 | Header header
10 |
11 | # Id of the run
12 | string runId
13 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/Ardrone3PilotingStatePositionChanged.msg:
--------------------------------------------------------------------------------
1 | # Ardrone3PilotingStatePositionChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Drones position changed.
8 |
9 | Header header
10 |
11 | # Latitude position in decimal degrees (500.0 if not available)
12 | float64 latitude
13 | # Longitude position in decimal degrees (500.0 if not available)
14 | float64 longitude
15 | # Altitude in meters (from GPS)
16 | float64 altitude
17 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonCommonStateMassStorageInfoRemainingListChanged.msg:
--------------------------------------------------------------------------------
1 | # CommonCommonStateMassStorageInfoRemainingListChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Mass storage remaining data list.
8 |
9 | Header header
10 |
11 | # Mass storage free space in MBytes
12 | uint32 free_space
13 | # Mass storage record time reamining in minute
14 | uint16 rec_time
15 | # Mass storage photo remaining
16 | uint32 photo_remaining
17 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonCommonStateCurrentDateChanged.msg:
--------------------------------------------------------------------------------
1 | # CommonCommonStateCurrentDateChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Date changed.\n Corresponds to the latest date set on the drone.\n\n **Please note that you should not care about this event if you are using the libARController API as this library is handling the connection process for you.**
8 |
9 | Header header
10 |
11 | # Date with ISO-8601 format
12 | string date
13 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonCommonStateCurrentTimeChanged.msg:
--------------------------------------------------------------------------------
1 | # CommonCommonStateCurrentTimeChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Time changed.\n Corresponds to the latest time set on the drone.\n\n **Please note that you should not care about this event if you are using the libARController API as this library is handling the connection process for you.**
8 |
9 | Header header
10 |
11 | # Time with ISO-8601 format
12 | string time
13 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/Ardrone3MediaStreamingStateVideoEnableChanged.msg:
--------------------------------------------------------------------------------
1 | # Ardrone3MediaStreamingStateVideoEnableChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Video stream state.
8 |
9 | Header header
10 |
11 | # Current video streaming status.
12 | uint8 enabled_enabled=0 # Video streaming is enabled.
13 | uint8 enabled_disabled=1 # Video streaming is disabled.
14 | uint8 enabled_error=2 # Video streaming failed to start.
15 | uint8 enabled
16 |
--------------------------------------------------------------------------------
/bebop_msgs/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 2.8.3)
2 | project(bebop_msgs)
3 |
4 | find_package(catkin REQUIRED COMPONENTS
5 | message_generation
6 | std_msgs
7 | )
8 |
9 | file(GLOB MSGS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/msg msg/autogenerated/*.msg)
10 | message(STATUS "All msg files: ${MSGS}")
11 |
12 | # Generate messages in the 'msg' folder
13 | add_message_files(
14 | DIRECTORY msg
15 | FILES
16 | ${MSGS}
17 | )
18 |
19 | generate_messages(
20 | DEPENDENCIES
21 | std_msgs
22 | )
23 |
24 | catkin_package(
25 | CATKIN_DEPENDS message_runtime std_msgs
26 | )
27 |
28 | #install(DIRECTORY include/bebop_msgs
29 | # DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
30 | # PATTERN "*.h"
31 | #)
32 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonChargerStateLastChargeRateChanged.msg:
--------------------------------------------------------------------------------
1 | # CommonChargerStateLastChargeRateChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Last charge rate.
8 |
9 | Header header
10 |
11 | # The charge rate recorded by the firmware for the last charge.
12 | uint8 rate_UNKNOWN=0 # The last charge rate is not known.
13 | uint8 rate_SLOW=1 # Slow charge rate.
14 | uint8 rate_MODERATE=2 # Moderate charge rate.
15 | uint8 rate_FAST=3 # Fast charge rate.
16 | uint8 rate
17 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonCommonStateDeprecatedMassStorageContentChanged.msg:
--------------------------------------------------------------------------------
1 | # CommonCommonStateDeprecatedMassStorageContentChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Mass storage content changed.
8 |
9 | Header header
10 |
11 | # Mass storage id (unique)
12 | uint8 mass_storage_id
13 | # Number of photos (does not include raw photos)
14 | uint16 nbPhotos
15 | # Number of videos
16 | uint16 nbVideos
17 | # Number of puds
18 | uint16 nbPuds
19 | # Number of crash logs
20 | uint16 nbCrashLogs
21 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonMavlinkStateMavlinkPlayErrorStateChanged.msg:
--------------------------------------------------------------------------------
1 | # CommonMavlinkStateMavlinkPlayErrorStateChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: FlightPlan error.
8 |
9 | Header header
10 |
11 | # State of play error
12 | uint8 error_none=0 # There is no error
13 | uint8 error_notInOutDoorMode=1 # The drone is not in outdoor mode
14 | uint8 error_gpsNotFixed=2 # The gps is not fixed
15 | uint8 error_notCalibrated=3 # The magnetometer of the drone is not calibrated
16 | uint8 error
17 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonCommonStateMassStorageContent.msg:
--------------------------------------------------------------------------------
1 | # CommonCommonStateMassStorageContent
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Mass storage content.
8 |
9 | Header header
10 |
11 | # Mass storage id (unique)
12 | uint8 mass_storage_id
13 | # Number of photos (does not include raw photos)
14 | uint16 nbPhotos
15 | # Number of videos
16 | uint16 nbVideos
17 | # Number of puds
18 | uint16 nbPuds
19 | # Number of crash logs
20 | uint16 nbCrashLogs
21 | # Number of raw photos
22 | uint16 nbRawPhotos
23 |
--------------------------------------------------------------------------------
/docs/coordinates.rst:
--------------------------------------------------------------------------------
1 | *****************************
2 | Coordinate System Conventions
3 | *****************************
4 |
5 | .. _sec-coords:
6 |
7 | ROS Standard Message Types (i.e Twist, Odometery) - REP 103
8 | ===========================================================
9 |
10 | +x forward
11 | +y left
12 | +z up
13 | +yaw CCW
14 |
15 | - More information: http://www.ros.org/reps/rep-0103.html
16 |
17 | Bebop Velocities
18 | ================
19 |
20 | +x East
21 | +y South
22 | +z Down
23 |
24 | Bebop Attitude
25 | ==============
26 |
27 | +x forward
28 | +y right
29 | +z down
30 | +yaw CW
31 |
32 | SDK's setPilotingPCMD
33 | =====================
34 |
35 | +roll right
36 | +pitch forward
37 | +gaz up
38 | +yaw CW
39 |
--------------------------------------------------------------------------------
/bebop_driver/data/bebop2_camera_calib.yaml:
--------------------------------------------------------------------------------
1 | image_width: 856
2 | image_height: 480
3 | camera_name: bebop_front
4 | camera_matrix:
5 | rows: 3
6 | cols: 3
7 | data: [537.292878, 0.000000, 427.331854, 0.000000, 527.000348, 240.226888, 0.000000, 0.000000, 1.000000]
8 | distortion_model: plumb_bob
9 | distortion_coefficients:
10 | rows: 1
11 | cols: 5
12 | data: [0.004974, -0.000130, -0.001212, 0.002192, 0.000000]
13 | rectification_matrix:
14 | rows: 3
15 | cols: 3
16 | data: [1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000]
17 | projection_matrix:
18 | rows: 3
19 | cols: 4
20 | data: [539.403503, 0.000000, 429.275072, 0.000000, 0.000000, 529.838562, 238.941372, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000]
21 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/Ardrone3MediaRecordStateVideoStateChanged.msg:
--------------------------------------------------------------------------------
1 | # Ardrone3MediaRecordStateVideoStateChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Picture record state.
8 |
9 | Header header
10 |
11 | # State of video
12 | uint8 state_stopped=0 # Video was stopped
13 | uint8 state_started=1 # Video was started
14 | uint8 state_failed=2 # Video was failed
15 | uint8 state_autostopped=3 # Video was auto stopped
16 | uint8 state
17 | # Mass storage id where the video was recorded
18 | uint8 mass_storage_id
19 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/Ardrone3AntiflickeringStatemodeChanged.msg:
--------------------------------------------------------------------------------
1 | # Ardrone3AntiflickeringStatemodeChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Antiflickering mode.
8 |
9 | Header header
10 |
11 | # Mode of the anti flickering functionnality
12 | uint8 mode_auto=0 # Anti flickering based on the electric frequency previously sent
13 | uint8 mode_FixedFiftyHertz=1 # Anti flickering based on a fixed frequency of 50Hz
14 | uint8 mode_FixedSixtyHertz=2 # Anti flickering based on a fixed frequency of 60Hz
15 | uint8 mode
16 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonCommonStateMassStorageContentForCurrentRun.msg:
--------------------------------------------------------------------------------
1 | # CommonCommonStateMassStorageContentForCurrentRun
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Mass storage content for current run.\n Only counts the files related to the current run (see [RunId](#0-30-0))
8 |
9 | Header header
10 |
11 | # Mass storage id (unique)
12 | uint8 mass_storage_id
13 | # Number of photos (does not include raw photos)
14 | uint16 nbPhotos
15 | # Number of videos
16 | uint16 nbVideos
17 | # Number of raw photos
18 | uint16 nbRawPhotos
19 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/Ardrone3PilotingStateAlertStateChanged.msg:
--------------------------------------------------------------------------------
1 | # Ardrone3PilotingStateAlertStateChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Alert state.
8 |
9 | Header header
10 |
11 | # Drone alert state
12 | uint8 state_none=0 # No alert
13 | uint8 state_user=1 # User emergency alert
14 | uint8 state_cut_out=2 # Cut out alert
15 | uint8 state_critical_battery=3 # Critical battery alert
16 | uint8 state_low_battery=4 # Low battery alert
17 | uint8 state_too_much_angle=5 # The angle of the drone is too high
18 | uint8 state
19 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonAccessoryStateSupportedAccessoriesListChanged.msg:
--------------------------------------------------------------------------------
1 | # CommonAccessoryStateSupportedAccessoriesListChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Supported accessories list.
8 |
9 | Header header
10 |
11 | # Accessory configurations supported by the product.
12 | uint8 accessory_NO_ACCESSORY=0 # No accessory.
13 | uint8 accessory_STD_WHEELS=1 # Standard wheels
14 | uint8 accessory_TRUCK_WHEELS=2 # Truck wheels
15 | uint8 accessory_HULL=3 # Hull
16 | uint8 accessory_HYDROFOIL=4 # Hydrofoil
17 | uint8 accessory
18 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/Ardrone3AntiflickeringStateelectricFrequencyChanged.msg:
--------------------------------------------------------------------------------
1 | # Ardrone3AntiflickeringStateelectricFrequencyChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Electric frequency.\n This piece of information is used for the antiflickering when the [AntiflickeringMode](#1-30-1) is set to *auto*.
8 |
9 | Header header
10 |
11 | # Type of the electric frequency
12 | uint8 frequency_fiftyHertz=0 # Electric frequency of the country is 50hz
13 | uint8 frequency_sixtyHertz=1 # Electric frequency of the country is 60hz
14 | uint8 frequency
15 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonCalibrationStatePitotCalibrationStateChanged.msg:
--------------------------------------------------------------------------------
1 | # CommonCalibrationStatePitotCalibrationStateChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment:
8 |
9 | Header header
10 |
11 | # State of pitot calibration
12 | uint8 state_done=0 # Calibration is ok
13 | uint8 state_ready=1 # Calibration is started, waiting user action
14 | uint8 state_in_progress=2 # Calibration is in progress
15 | uint8 state_required=3 # Calibration is required
16 | uint8 state
17 | # lastError : 1 if an error occured and 0 if not
18 | uint8 lastError
19 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/Ardrone3PilotingStateSpeedChanged.msg:
--------------------------------------------------------------------------------
1 | # Ardrone3PilotingStateSpeedChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Drones speed changed.\n Expressed in the NED referential (North-East-Down).
8 |
9 | Header header
10 |
11 | # Speed relative to the North (when drone moves to the north, speed is > 0) (in m/s)
12 | float32 speedX
13 | # Speed relative to the East (when drone moves to the east, speed is > 0) (in m/s)
14 | float32 speedY
15 | # Speed on the z axis (when drone moves down, speed is > 0) (in m/s)
16 | float32 speedZ
17 |
--------------------------------------------------------------------------------
/bebop_tools/launch/bebop_nodelet_iv.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/Ardrone3NetworkStateWifiScanListChanged.msg:
--------------------------------------------------------------------------------
1 | # Ardrone3NetworkStateWifiScanListChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Wifi scan results.\n Please note that the list is not complete until you receive the event [WifiScanEnded](#1-14-1).
8 |
9 | Header header
10 |
11 | # SSID of the AP
12 | string ssid
13 | # RSSI of the AP in dbm (negative value)
14 | int16 rssi
15 | # The band : 2.4 GHz or 5 GHz
16 | uint8 band_2_4ghz=0 # 2.4 GHz band
17 | uint8 band_5ghz=1 # 5 GHz band
18 | uint8 band
19 | # Channel of the AP
20 | uint8 channel
21 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonCommonStateVideoRecordingTimestamp.msg:
--------------------------------------------------------------------------------
1 | # CommonCommonStateVideoRecordingTimestamp
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Current or last video recording timestamp.\n Timestamp in milliseconds since 00:00:00 UTC on 1 January 1970.\n **Please note that values dont persist after drone reboot**
8 |
9 | Header header
10 |
11 | # Timestamp in milliseconds since 00:00:00 UTC on 1 January 1970.
12 | uint64 startTimestamp
13 | # Timestamp in milliseconds since 00:00:00 UTC on 1 January 1970. 0 mean that video is still recording.
14 | uint64 stopTimestamp
15 |
--------------------------------------------------------------------------------
/bebop_autonomy/CHANGELOG.rst:
--------------------------------------------------------------------------------
1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2 | Changelog for package bebop_autonomy
3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4 |
5 | 0.7.0 (2017-07-29)
6 | ------------------
7 |
8 | 0.6.0 (2016-11-02)
9 | ------------------
10 |
11 | 0.5.1 (2016-05-04)
12 | ------------------
13 |
14 | 0.5.0 (2016-04-01)
15 | ------------------
16 | * Add bebop_description package
17 | * Contributors: Mani Monajjemi
18 |
19 | 0.4.1 (2016-02-17)
20 | ------------------
21 |
22 | 0.4.0 (2016-01-17)
23 | ------------------
24 |
25 | 0.3.0 (2015-09-17)
26 | ------------------
27 | * New in 0.3.0
28 | * Create ROS metapackage for bebop_autonomy
29 | - bebop_autonomy is the ROS metapackage name
30 | - Rename bebop_autonomy package to bebop_driver
31 | - Rename bebop_autonomy_msgs to bebop_msgs
32 | * Contributors: Mani Monajjemi
33 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonChargerStateMaxChargeRateChanged.msg:
--------------------------------------------------------------------------------
1 | # CommonChargerStateMaxChargeRateChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Max charge rate.
8 |
9 | Header header
10 |
11 | # The current maximum charge rate.
12 | uint8 rate_SLOW=0 # Fully charge the battery at a slow rate. Typically limit max charge current to 512 mA.
13 | uint8 rate_MODERATE=1 # Almost fully-charge the battery at moderate rate (> 512 mA) but slower than the fastest rate.
14 | uint8 rate_FAST=2 # Almost fully-charge the battery at the highest possible rate supported by the charger.
15 | uint8 rate
16 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonCalibrationStateMagnetoCalibrationAxisToCalibrateChanged.msg:
--------------------------------------------------------------------------------
1 | # CommonCalibrationStateMagnetoCalibrationAxisToCalibrateChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Axis to calibrate during calibration process.
8 |
9 | Header header
10 |
11 | # The axis to calibrate
12 | uint8 axis_xAxis=0 # If the current calibration axis should be the x axis
13 | uint8 axis_yAxis=1 # If the current calibration axis should be the y axis
14 | uint8 axis_zAxis=2 # If the current calibration axis should be the z axis
15 | uint8 axis_none=3 # If none of the axis should be calibrated
16 | uint8 axis
17 |
--------------------------------------------------------------------------------
/bebop_tools/launch/joy_teleop.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/bebop_description/CHANGELOG.rst:
--------------------------------------------------------------------------------
1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2 | Changelog for package bebop_description
3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4 |
5 | 0.7.0 (2017-07-29)
6 | ------------------
7 |
8 | 0.6.0 (2016-11-02)
9 | ------------------
10 |
11 | 0.5.1 (2016-05-04)
12 | ------------------
13 |
14 | 0.5.0 (2016-04-01)
15 | ------------------
16 | * The initial version of bebop_description pacakge
17 | - Add a simple kinematic model of Bebop as URDF/Xacro (base_link,
18 | camera joints and the optical frame)
19 | * Contributors: Mani Monajjemi
20 |
21 | 0.4.1 (2016-02-17)
22 | ------------------
23 |
24 | 0.4.0 (2016-01-17)
25 | ------------------
26 |
27 | 0.3.0 (2015-09-17)
28 | ------------------
29 |
30 | 0.2.0 (2015-09-10)
31 | ------------------
32 |
33 | 0.1.2 (2015-09-05)
34 | ------------------
35 |
36 | 0.1.1 (2015-09-04)
37 | ------------------
38 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/Ardrone3MediaStreamingStateVideoStreamModeChanged.msg:
--------------------------------------------------------------------------------
1 | # Ardrone3MediaStreamingStateVideoStreamModeChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment:
8 |
9 | Header header
10 |
11 | # stream mode
12 | uint8 mode_low_latency=0 # Minimize latency with average reliability (best for piloting).
13 | uint8 mode_high_reliability=1 # Maximize the reliability with an average latency (best when streaming quality is important but not the latency).
14 | uint8 mode_high_reliability_low_framerate=2 # Maximize the reliability using a framerate decimation with an average latency (best when streaming quality is important but not the latency).
15 | uint8 mode
16 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/Ardrone3NetworkStateWifiAuthChannelListChanged.msg:
--------------------------------------------------------------------------------
1 | # Ardrone3NetworkStateWifiAuthChannelListChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Available wifi channels.\n Please note that the list is not complete until you receive the event [AvailableWifiChannelsCompleted](#1-14-3).
8 |
9 | Header header
10 |
11 | # The band of this channel : 2.4 GHz or 5 GHz
12 | uint8 band_2_4ghz=0 # 2.4 GHz band
13 | uint8 band_5ghz=1 # 5 GHz band
14 | uint8 band
15 | # The authorized channel.
16 | uint8 channel
17 | # Bit 0 is 1 if channel is authorized outside (0 otherwise) ; Bit 1 is 1 if channel is authorized inside (0 otherwise)
18 | uint8 in_or_out
19 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonCommonStateSensorsStatesListChanged.msg:
--------------------------------------------------------------------------------
1 | # CommonCommonStateSensorsStatesListChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Sensors state list.
8 |
9 | Header header
10 |
11 | # Sensor name
12 | uint8 sensorName_IMU=0 # Inertial Measurement Unit sensor
13 | uint8 sensorName_barometer=1 # Barometer sensor
14 | uint8 sensorName_ultrasound=2 # Ultrasonic sensor
15 | uint8 sensorName_GPS=3 # GPS sensor
16 | uint8 sensorName_magnetometer=4 # Magnetometer sensor
17 | uint8 sensorName_vertical_camera=5 # Vertical Camera sensor
18 | uint8 sensorName
19 | # Sensor state (1 if the sensor is OK, 0 if the sensor is NOT OK)
20 | uint8 sensorState
21 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonCommonStateCountryListKnown.msg:
--------------------------------------------------------------------------------
1 | # CommonCommonStateCountryListKnown
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: List of countries known by the drone.
8 |
9 | Header header
10 |
11 | # List entry attribute Bitfield. 0x01: First: indicate its the first element of the list. 0x02: Last: indicate its the last element of the list. 0x04: Empty: indicate the list is empty (implies First/Last). All other arguments should be ignored.
12 | uint8 listFlags
13 | # Following of country code with ISO 3166 format, separated by ;. Be careful of the command size allowed by the network used. If necessary, split the list in several commands.
14 | string countryCodes
15 |
--------------------------------------------------------------------------------
/bebop_driver/launch/bebop_node.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/bebop_driver/scripts/meta/install.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | echo "Removing old .msg files ..."
4 | rm -f ../../../bebop_msgs/msg/autogenerated/*.msg
5 | echo "Installing .msg files ..."
6 | cp *.msg ../../../bebop_msgs/msg/autogenerated
7 | echo "Removing old .h files ..."
8 | rm -f ../../../bebop_driver/include/bebop_driver/autogenerated/*.h
9 | echo "Installing .h files .."
10 | cp *.h ../../../bebop_driver/include/bebop_driver/autogenerated
11 | echo "Removing old .cfg files ..."
12 | rm -f ../../../bebop_driver/cfg/autogenerated/*.cfg
13 | echo "Installing cfg files ..."
14 | cp *.cfg ../../../bebop_driver/cfg/autogenerated
15 | chmod +x ../../../bebop_driver/cfg/autogenerated/*.cfg
16 | echo "Removing old .rst files ..."
17 | rm -f y../../../docs/autogenerated/*.rst
18 | echo "Installing rst files ..."
19 | cp *.rst ../../../docs/autogenerated/
20 | echo "Populate last_build_info"
21 | cp last_build_info ../../../bebop_msgs/msg/autogenerated
22 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonCommonStateMassStorageInfoStateListChanged.msg:
--------------------------------------------------------------------------------
1 | # CommonCommonStateMassStorageInfoStateListChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Mass storage info state list.
8 |
9 | Header header
10 |
11 | # Mass storage state id (unique)
12 | uint8 mass_storage_id
13 | # Mass storage size in MBytes
14 | uint32 size
15 | # Mass storage used size in MBytes
16 | uint32 used_size
17 | # Mass storage plugged (1 if mass storage is plugged, otherwise 0)
18 | uint8 plugged
19 | # Mass storage full information state (1 if mass storage full, 0 otherwise).
20 | uint8 full
21 | # Mass storage internal type state (1 if mass storage is internal, 0 otherwise)
22 | uint8 internal
23 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonCalibrationStateMagnetoCalibrationStateChanged.msg:
--------------------------------------------------------------------------------
1 | # CommonCalibrationStateMagnetoCalibrationStateChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Magneto calib process axis state.
8 |
9 | Header header
10 |
11 | # State of the x axis (roll) calibration : 1 if calibration is done, 0 otherwise
12 | uint8 xAxisCalibration
13 | # State of the y axis (pitch) calibration : 1 if calibration is done, 0 otherwise
14 | uint8 yAxisCalibration
15 | # State of the z axis (yaw) calibration : 1 if calibration is done, 0 otherwise
16 | uint8 zAxisCalibration
17 | # 1 if calibration has failed, 0 otherwise. If this arg is 1, consider all previous arg as 0
18 | uint8 calibrationFailed
19 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/Ardrone3GPSStateHomeTypeAvailabilityChanged.msg:
--------------------------------------------------------------------------------
1 | # Ardrone3GPSStateHomeTypeAvailabilityChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Home type availability.
8 |
9 | Header header
10 |
11 | # The type of the return home
12 | uint8 type_TAKEOFF=0 # The drone has enough information to return to the take off position
13 | uint8 type_PILOT=1 # The drone has enough information to return to the pilot position
14 | uint8 type_FIRST_FIX=2 # The drone has not enough information, it will return to the first GPS fix
15 | uint8 type_FOLLOWEE=3 # The drone has enough information to return to the target of the current (or last) follow me
16 | uint8 type
17 | # 1 if this type is available, 0 otherwise
18 | uint8 available
19 |
--------------------------------------------------------------------------------
/bebop_description/package.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | bebop_description
4 | 0.7.0
5 | URDF robot description for Parrot Bebop Drones
6 |
7 | Mani Monajjemi
8 | Sepehr MohaimenianPour
9 | Thomas Bamford
10 | Tobias Naegeli
11 |
12 | BSD
13 |
14 | http://wiki.ros.org/bebop_description
15 | http://github.com/AutonomyLab/bebop_autonomy
16 | Mani Monajjemi
17 |
18 | catkin
19 | roslaunch
20 | urdf
21 | xacro
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/Ardrone3MediaRecordStateVideoStateChangedV2.msg:
--------------------------------------------------------------------------------
1 | # Ardrone3MediaRecordStateVideoStateChangedV2
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Video record state.
8 |
9 | Header header
10 |
11 | # State of device video recording
12 | uint8 state_stopped=0 # Video is stopped
13 | uint8 state_started=1 # Video is started
14 | uint8 state_notAvailable=2 # The video recording is not available
15 | uint8 state
16 | # Error to explain the state
17 | uint8 error_ok=0 # No Error
18 | uint8 error_unknown=1 # Unknown generic error
19 | uint8 error_camera_ko=2 # Video camera is out of order
20 | uint8 error_memoryFull=3 # Memory full ; cannot save one additional video
21 | uint8 error_lowBattery=4 # Battery is too low to start/keep recording.
22 | uint8 error
23 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/Ardrone3AccessoryStateConnectedAccessories.msg:
--------------------------------------------------------------------------------
1 | # Ardrone3AccessoryStateConnectedAccessories
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: List of all connected accessories. This event presents the list of all connected accessories. To actually use the component, use the component dedicated feature.
8 |
9 | Header header
10 |
11 | # Id of the accessory for the session.
12 | uint8 id
13 | # Accessory type
14 | uint8 accessory_type_sequoia=0 # Parrot Sequoia (multispectral camera for agriculture)
15 | uint8 accessory_type_unknownaccessory_1=1 # UNKNOWNACCESSORY_1 camera (thermal+rgb camera)
16 | uint8 accessory_type
17 | # Unique Id of the accessory. This id is unique by accessory_type.
18 | string uid
19 | # Software Version of the accessory.
20 | string swVersion
21 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/Ardrone3MediaRecordStatePictureStateChangedV2.msg:
--------------------------------------------------------------------------------
1 | # Ardrone3MediaRecordStatePictureStateChangedV2
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Picture state.
8 |
9 | Header header
10 |
11 | # State of device picture recording
12 | uint8 state_ready=0 # The picture recording is ready
13 | uint8 state_busy=1 # The picture recording is busy
14 | uint8 state_notAvailable=2 # The picture recording is not available
15 | uint8 state
16 | # Error to explain the state
17 | uint8 error_ok=0 # No Error
18 | uint8 error_unknown=1 # Unknown generic error
19 | uint8 error_camera_ko=2 # Picture camera is out of order
20 | uint8 error_memoryFull=3 # Memory full ; cannot save one additional picture
21 | uint8 error_lowBattery=4 # Battery is too low to start/keep recording.
22 | uint8 error
23 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonMavlinkStateMavlinkFilePlayingStateChanged.msg:
--------------------------------------------------------------------------------
1 | # CommonMavlinkStateMavlinkFilePlayingStateChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Playing state of a FlightPlan.
8 |
9 | Header header
10 |
11 | # State of the mavlink
12 | uint8 state_playing=0 # Mavlink file is playing
13 | uint8 state_stopped=1 # Mavlink file is stopped (arg filepath and type are useless in this state)
14 | uint8 state_paused=2 # Mavlink file is paused
15 | uint8 state_loaded=3 # Mavlink file is loaded (it will be played at take-off)
16 | uint8 state
17 | # flight plan file path from the mavlink ftp root
18 | string filepath
19 | # type of the played mavlink file
20 | uint8 type_flightPlan=0 # Mavlink file for FlightPlan
21 | uint8 type_mapMyHouse=1 # Mavlink file for MapMyHouse
22 | uint8 type
23 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/Ardrone3PilotingStateGpsLocationChanged.msg:
--------------------------------------------------------------------------------
1 | # Ardrone3PilotingStateGpsLocationChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Drones location changed.\n This event is meant to replace [PositionChanged](#1-4-4).
8 |
9 | Header header
10 |
11 | # Latitude location in decimal degrees (500.0 if not available)
12 | float64 latitude
13 | # Longitude location in decimal degrees (500.0 if not available)
14 | float64 longitude
15 | # Altitude location in meters.
16 | float64 altitude
17 | # Latitude location error in meters (1 sigma/standard deviation) -1 if not available.
18 | int8 latitude_accuracy
19 | # Longitude location error in meters (1 sigma/standard deviation) -1 if not available.
20 | int8 longitude_accuracy
21 | # Altitude location error in meters (1 sigma/standard deviation) -1 if not available.
22 | int8 altitude_accuracy
23 |
--------------------------------------------------------------------------------
/bebop_msgs/package.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | bebop_msgs
4 | 0.7.0
5 | Common message definitions for bebop_autonomy
6 |
7 | Mani Monajjemi
8 | Sepehr MohaimenianPour
9 | Thomas Bamford
10 | Tobias Naegeli
11 |
12 | BSD
13 | http://wiki.ros.org/bebop_msgs
14 | http://github.com/AutonomyLab/bebop_autonomy
15 | Mani Monajjemi
16 |
17 | catkin
18 | message_generation
19 | std_msgs
20 | std_msgs
21 | message_runtime
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/bebop_autonomy/package.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | bebop_autonomy
4 | 0.7.0
5 | bebop_autonomy is a ROS driver for Parrot Bebop drone, based on Parrot’s official ARDroneSDK3
6 |
7 | Mani Monajjemi
8 | Sepehr MohaimenianPour
9 | Thomas Bamford
10 | Tobias Naegeli
11 |
12 | BSD
13 |
14 | http://wiki.ros.org/bebop_autonomy
15 | http://github.com/AutonomyLab/bebop_autonomy
16 |
17 | Mani Monajjemi
18 |
19 | catkin
20 |
21 | bebop_driver
22 | bebop_msgs
23 | bebop_tools
24 | bebop_description
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/bebop_driver/scripts/meta/templates/states_param_topic.rst.mustache:
--------------------------------------------------------------------------------
1 | .. {{project}}_states_param_topic.rst
2 | .. auto-generated from {{url}}
3 | .. Do not modify this file by hand. Check scripts/meta folder for generator files.
4 |
5 | *****************************************************************************************
6 | List of {{project}} States and Corresponding ROS Parameters and Topics
7 | *****************************************************************************************
8 |
9 | {{#cpp_class}}
10 | `{{cpp_class_name}}`_
11 | {{cpp_class_comment}}
12 | {{/cpp_class}}
13 |
14 | {{#cpp_class}}
15 | {{cpp_class_name}}
16 | ####################################################################################
17 | {{cpp_class_comment}}
18 |
19 | - Parameter: ``~{{cpp_class_param_name}}``
20 | - Topic: ``{{topic_name}}``
21 | - Message type: ``bebop_msgs::{{cpp_class_msg_type}}``
22 |
23 | .. literalinclude::
24 | ../../bebop_msgs/msg/autogenerated/{{cpp_class_msg_type}}.msg
25 | :lines: 8-
26 | :language: python
27 | :caption: {{cpp_class_msg_type}}.msg
28 | :name: {{cpp_class_msg_type}}_msg
29 |
30 | {{/cpp_class}}
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/Ardrone3PilotingStateFlyingStateChanged.msg:
--------------------------------------------------------------------------------
1 | # Ardrone3PilotingStateFlyingStateChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Flying state.
8 |
9 | Header header
10 |
11 | # Drone flying state
12 | uint8 state_landed=0 # Landed state
13 | uint8 state_takingoff=1 # Taking off state
14 | uint8 state_hovering=2 # Hovering / Circling (for fixed wings) state
15 | uint8 state_flying=3 # Flying state
16 | uint8 state_landing=4 # Landing state
17 | uint8 state_emergency=5 # Emergency state
18 | uint8 state_usertakeoff=6 # User take off state. Waiting for user action to take off.
19 | uint8 state_motor_ramping=7 # Motor ramping state (for fixed wings).
20 | uint8 state_emergency_landing=8 # Emergency landing state. Drone autopilot has detected defective sensor(s). Only Yaw argument in PCMD is taken into account. All others flying commands are ignored.
21 | uint8 state
22 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/Ardrone3MediaRecordStateVideoResolutionState.msg:
--------------------------------------------------------------------------------
1 | # Ardrone3MediaRecordStateVideoResolutionState
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Video resolution.\n Informs about streaming and recording video resolutions.\n Note that this is only an indication about what the resolution should be. To know the real resolution, you should get it from the frame.
8 |
9 | Header header
10 |
11 | # Streaming resolution
12 | uint8 streaming_res360p=0 # 360p resolution.
13 | uint8 streaming_res480p=1 # 480p resolution.
14 | uint8 streaming_res720p=2 # 720p resolution.
15 | uint8 streaming_res1080p=3 # 1080p resolution.
16 | uint8 streaming
17 | # Recording resolution
18 | uint8 recording_res360p=0 # 360p resolution.
19 | uint8 recording_res480p=1 # 480p resolution.
20 | uint8 recording_res720p=2 # 720p resolution.
21 | uint8 recording_res1080p=3 # 1080p resolution.
22 | uint8 recording
23 |
--------------------------------------------------------------------------------
/bebop_driver/launch/bebop_nodelet.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/bebop_tools/package.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | bebop_tools
4 | 0.7.0
5 | Miscellaneous tools for bebop_autonomy metapackage
6 |
7 | Mani Monajjemi
8 | Sepehr MohaimenianPour
9 | Thomas Bamford
10 | Tobias Naegeli
11 |
12 | BSD
13 |
14 | http://wiki.ros.org/bebop_tools
15 | http://github.com/AutonomyLab/bebop_autonomy
16 | Mani Monajjemi
17 |
18 | catkin
19 | bebop_msgs
20 | bebop_driver
21 | bebop_msgs
22 | joy
23 | joy_teleop
24 | image_view
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonAccessoryStateAccessoryConfigChanged.msg:
--------------------------------------------------------------------------------
1 | # CommonAccessoryStateAccessoryConfigChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Accessory config.
8 |
9 | Header header
10 |
11 | # Accessory configuration reported by firmware.
12 | uint8 newAccessory_UNCONFIGURED=0 # No accessory configuration set. Controller needs to set one.
13 | uint8 newAccessory_NO_ACCESSORY=1 # No accessory.
14 | uint8 newAccessory_STD_WHEELS=2 # Standard wheels
15 | uint8 newAccessory_TRUCK_WHEELS=3 # Truck wheels
16 | uint8 newAccessory_HULL=4 # Hull
17 | uint8 newAccessory_HYDROFOIL=5 # Hydrofoil
18 | uint8 newAccessory_IN_PROGRESS=6 # Configuration in progress.
19 | uint8 newAccessory
20 | # Error code.
21 | uint8 error_OK=0 # No error. Accessory config change successful.
22 | uint8 error_UNKNOWN=1 # Cannot change accessory configuration for some reason.
23 | uint8 error_FLYING=2 # Cannot change accessory configuration while flying.
24 | uint8 error
25 |
--------------------------------------------------------------------------------
/bebop_driver/scripts/meta/templates/settings_param.rst.mustache:
--------------------------------------------------------------------------------
1 | .. {{project}}_settings_param.rst
2 | .. auto-generated from {{url}}
3 | .. Do not modify this file by hand. Check scripts/meta folder for generator files.
4 |
5 | *****************************************************************************************
6 | List of {{project}} Settings and Corresponding ROS Parameter
7 | *****************************************************************************************
8 |
9 | {{#cfg_class}}
10 | `{{cfg_class_name}}`_
11 | {{cfg_class_comment}}
12 |
13 | {{#cfg_cmd}}
14 | {{#cfg_arg}}
15 | `{{cfg_arg_name}}`_
16 | {{cfg_arg_comment}}
17 | {{/cfg_arg}}
18 | {{/cfg_cmd}}
19 |
20 | {{/cfg_class}}
21 |
22 | {{#cfg_class}}
23 | {{cfg_class_name}}
24 | ===========================================================
25 | {{#cfg_cmd}}
26 | {{#cfg_arg}}
27 | {{cfg_arg_name}}
28 | -----------------------------------------------------------
29 | * Parameter: ``~{{cfg_arg_name}}``
30 | * Details: {{cfg_arg_comment}}
31 | * Type: ``{{cfg_arg_type}}``
32 | {{#cfg_arg_enum}}
33 |
34 | {{#items}}
35 | * {{constant_value}}: {{constant_comment}}
36 | {{/items}}
37 |
38 | {{/cfg_arg_enum}}
39 | {{/cfg_arg}}
40 | {{/cfg_cmd}}
41 | {{/cfg_class}}
42 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonFlightPlanStateComponentStateListChanged.msg:
--------------------------------------------------------------------------------
1 | # CommonFlightPlanStateComponentStateListChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: FlightPlan components state list.
8 |
9 | Header header
10 |
11 | # Drone FlightPlan component id (unique)
12 | uint8 component_GPS=0 # Drone GPS component. State is 0 when the drone needs a GPS fix.
13 | uint8 component_Calibration=1 # Drone Calibration component. State is 0 when the sensors of the drone needs to be calibrated.
14 | uint8 component_Mavlink_File=2 # Mavlink file component. State is 0 when the mavlink file is missing or contains error.
15 | uint8 component_TakeOff=3 # Drone Take off component. State is 0 when the drone cannot take-off.
16 | uint8 component_WaypointsBeyondGeofence=4 # Component for waypoints beyond the geofence. State is 0 when one or more waypoints are beyond the geofence.
17 | uint8 component
18 | # State of the FlightPlan component (1 FlightPlan component OK, otherwise 0)
19 | uint8 State
20 |
--------------------------------------------------------------------------------
/bebop_driver/scripts/meta/templates/cfg.mustache:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 |
3 | # {{cfg_filename}}
4 | # auto-generated from {{url}}
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 |
7 | PACKAGE = "bebop_driver"
8 |
9 | from dynamic_reconfigure.parameter_generator_catkin import *
10 |
11 | gen = ParameterGenerator()
12 |
13 | {{#cfg_class}}
14 | # {{cfg_class_comment}}
15 | {{cfg_class_name}}_group_gen = gen.add_group("{{cfg_class_name}}")
16 | {{#cfg_cmd}}
17 | # {{cfg_cmd_comment}}
18 | {{#cfg_arg}}
19 | {{#cfg_arg_enum}}
20 | {{cfg_arg_name}}_enum = gen.enum([
21 | {{#items}}
22 | gen.const("{{constant_name}}", int_t, {{constant_value}}, "{{constant_comment}}"),
23 | {{/items}}
24 | ], "{{cfg_arg_comment}}")
25 | {{cfg_class_name}}_group_gen.add("{{cfg_arg_name}}", int_t, 0, "{{cfg_arg_comment}}", 0, 0, {{enum_max}}, edit_method={{cfg_arg_name}}_enum)
26 | {{/cfg_arg_enum}}
27 | {{^cfg_arg_enum}}
28 | {{cfg_class_name}}_group_gen.add("{{cfg_arg_name}}", {{cfg_arg_type}}, 0, "{{cfg_arg_comment}}", {{cfg_arg_default}} , {{cfg_arg_min}}, {{cfg_arg_max}})
29 | {{/cfg_arg_enum}}
30 | {{/cfg_arg}}
31 | {{/cfg_cmd}}
32 |
33 | {{/cfg_class}}
34 |
35 | exit(gen.generate(PACKAGE, "bebop_driver_nodelet", "Bebop{{project}}"))
--------------------------------------------------------------------------------
/docs/FAQ.rst:
--------------------------------------------------------------------------------
1 | **************************
2 | Frequently Asked Questions
3 | **************************
4 |
5 | Is *bebop_autonomy* based on *ardrone_autonomy*?
6 | ================================================
7 |
8 | No. `ardrone_autonomy `_ is based on Parrot's `legacy SDK `_ for AR-Drone 1.0 and 2.0, while *bebop_autonomy* uses Parrot's new SDK for its third generation drones. Since these two SDKs and their underlying protocols are totally different and incompatible, we had to develop *bebop_autonomy* from scrath.
9 |
10 | Is *bebop_autonomy* compatible with *ardrone_autonomy*?
11 | =======================================================
12 |
13 | Not completely.
14 |
15 | - Topic names, types and coordinate frame conventions for core piloting tasks are identical, however there is no explicit namespacing (i.e. ``takeoff`` instead of ``ardrone/takeoff``)
16 | - *bebop_autonomy* does not expose services for *Flight Animations* or *Flat Trim*; topics are used instead.
17 | - Front camera video stream is published on ``image_raw`` topic only.
18 | - Parameter names, types and effects are different.
19 | - AR-Drone *Navdata* is replaced by Bebop *States* (see :ref:`sec-states`)
20 |
21 |
--------------------------------------------------------------------------------
/bebop_driver/config/defaults.yaml:
--------------------------------------------------------------------------------
1 | states:
2 | enable_commonstate_batterystatechanged: true
3 | enable_commonstate_wifisignalchanged: true
4 | enable_overheatstate_overheatchanged: true
5 | enable_controllerstate_ispilotingchanged: true
6 | enable_mavlinkstate_mavlinkfileplayingstatechanged: true
7 | enable_mavlinkstate_mavlinkplayerrorstatechanged: true
8 | enable_flightplanstate_availabilitystatechanged: true
9 | enable_flightplanstate_componentstatelistchanged: true
10 | enable_pilotingstate_altitudechanged: true
11 | enable_pilotingstate_flattrimchanged: true
12 | enable_pilotingstate_flyingstatechanged: true
13 | enable_pilotingstate_navigatehomestatechanged: true
14 | enable_pilotingstate_positionchanged: true
15 | enable_pilotingstate_speedchanged: true
16 | enable_pilotingstate_attitudechanged: true
17 | enable_pilotingstate_positionchanged: true
18 | enable_altitudechanged: true
19 | enable_autotakeoffmodechanged: true
20 | enable_mediastreamingstate_videoenablechanged: true
21 | enable_camerastate_orientation: true
22 | enable_gpsstate_numberofsatellitechanged: true
23 | enable_numberofsatellitechanged: true
24 |
25 | reset_settings: true
26 | publish_odom_tf: true
27 | odom_frame_id: "odom"
28 | cmd_vel_timeout: 0.2
29 |
--------------------------------------------------------------------------------
/bebop_driver/test/bebop_itl_test.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/Ardrone3GPSStateHomeTypeChosenChanged.msg:
--------------------------------------------------------------------------------
1 | # Ardrone3GPSStateHomeTypeChosenChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Home type.\n This choice is made by the drone, according to the [PreferredHomeType](#1-24-4) and the [HomeTypeAvailability](#1-31-1). The drone will choose the type matching with the user preference only if this type is available. If not, it will chose a type in this order:\n FOLLOWEE ; TAKEOFF ; PILOT ; FIRST_FIX
8 |
9 | Header header
10 |
11 | # The type of the return home chosen
12 | uint8 type_TAKEOFF=0 # The drone will return to the take off position
13 | uint8 type_PILOT=1 # The drone will return to the pilot position In this case, the drone will use the position given by ARDrone3-SendControllerGPS
14 | uint8 type_FIRST_FIX=2 # The drone has not enough information, it will return to the first GPS fix
15 | uint8 type_FOLLOWEE=3 # The drone will return to the target of the current (or last) follow me In this case, the drone will use the position of the target of the followMe (given by ControllerInfo-GPS)
16 | uint8 type
17 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonCommonStateProductModel.msg:
--------------------------------------------------------------------------------
1 | # CommonCommonStateProductModel
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Product sub-model.\n This can be used to customize the UI depending on the product.
8 |
9 | Header header
10 |
11 | # The Model of the product.
12 | uint8 model_RS_TRAVIS=0 # Travis (RS taxi) model.
13 | uint8 model_RS_MARS=1 # Mars (RS space) model
14 | uint8 model_RS_SWAT=2 # SWAT (RS SWAT) model
15 | uint8 model_RS_MCLANE=3 # Mc Lane (RS police) model
16 | uint8 model_RS_BLAZE=4 # Blaze (RS fire) model
17 | uint8 model_RS_ORAK=5 # Orak (RS carbon hydrofoil) model
18 | uint8 model_RS_NEWZ=6 # New Z (RS wooden hydrofoil) model
19 | uint8 model_JS_MARSHALL=7 # Marshall (JS fire) model
20 | uint8 model_JS_DIESEL=8 # Diesel (JS SWAT) model
21 | uint8 model_JS_BUZZ=9 # Buzz (JS space) model
22 | uint8 model_JS_MAX=10 # Max (JS F1) model
23 | uint8 model_JS_JETT=11 # Jett (JS flames) model
24 | uint8 model_JS_TUKTUK=12 # Tuk-Tuk (JS taxi) model
25 | uint8 model_SW_BLACK=13 # Swing black model
26 | uint8 model_SW_WHITE=14 # Swing white model
27 | uint8 model
28 |
--------------------------------------------------------------------------------
/bebop_tools/CHANGELOG.rst:
--------------------------------------------------------------------------------
1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2 | Changelog for package bebop_tools
3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4 |
5 | 0.7.0 (2017-07-29)
6 | ------------------
7 |
8 | 0.6.0 (2016-11-02)
9 | ------------------
10 | * Added Xbox 360 config file
11 | * Make flattrim joystick command match comment
12 | * Contributors: Jacob Perron, Thomas Bamford
13 |
14 | 0.5.1 (2016-05-04)
15 | ------------------
16 |
17 | 0.5.0 (2016-04-01)
18 | ------------------
19 | * Improve the organization of launch and param files
20 | * Contributors: Mani Monajjemi
21 |
22 | 0.4.1 (2016-02-17)
23 | ------------------
24 | * Update the joystick configuration file for taking snapshots
25 | * Make bebop's namespace in joy_teleop launch file a parameter
26 | * Contributors: Mani Monajjemi
27 |
28 | 0.4.0 (2016-01-17)
29 | ------------------
30 | * Fix cmd_vel.linear.y sign issue in joystick config file
31 | * Contributors: Mani Monajjemi
32 |
33 | 0.3.0 (2015-09-17)
34 | ------------------
35 | * Renamed package to bebop_tools
36 | * Contributors: Mani Monajjemi
37 |
38 | 0.2.0 (2015-09-10)
39 | ------------------
40 | * Move image_view nodelet demo to bebop_tools package
41 | * Contributors: Mani Monajjemi
42 |
43 | 0.1.2 (2015-09-05)
44 | ------------------
45 | * Initial release of joystick teleop for bebop_autonomy
46 | * Contributors: Mani Monajjemi
47 |
48 | 0.1.1 (2015-09-04)
49 | ------------------
50 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonChargerStateCurrentChargeStateChanged.msg:
--------------------------------------------------------------------------------
1 | # CommonChargerStateCurrentChargeStateChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Current charge state.
8 |
9 | Header header
10 |
11 | # Charger status.
12 | uint8 status_DISCHARGING=0 # The battery is discharging.
13 | uint8 status_CHARGING_SLOW=1 # The battery is charging at a slow rate about 512 mA.
14 | uint8 status_CHARGING_MODERATE=2 # The battery is charging at a moderate rate (> 512 mA) but slower than the fastest rate.
15 | uint8 status_CHARGING_FAST=3 # The battery is charging at a the fastest rate.
16 | uint8 status_BATTERY_FULL=4 # The charger is plugged and the battery is fully charged.
17 | uint8 status
18 | # The current charging phase.
19 | uint8 phase_UNKNOWN=0 # The charge phase is unknown or irrelevant.
20 | uint8 phase_CONSTANT_CURRENT_1=1 # First phase of the charging process. The battery is charging with constant current.
21 | uint8 phase_CONSTANT_CURRENT_2=2 # Second phase of the charging process. The battery is charging with constant current, with a higher voltage than the first phase.
22 | uint8 phase_CONSTANT_VOLTAGE=3 # Last part of the charging process. The battery is charging with a constant voltage.
23 | uint8 phase_CHARGED=4 # The battery is fully charged.
24 | uint8 phase
25 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/Ardrone3PilotingStateNavigateHomeStateChanged.msg:
--------------------------------------------------------------------------------
1 | # Ardrone3PilotingStateNavigateHomeStateChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Return home state.\n Availability is related to gps fix, magnetometer calibration.
8 |
9 | Header header
10 |
11 | # State of navigate home
12 | uint8 state_available=0 # Navigate home is available
13 | uint8 state_inProgress=1 # Navigate home is in progress
14 | uint8 state_unavailable=2 # Navigate home is not available
15 | uint8 state_pending=3 # Navigate home has been received, but its process is pending
16 | uint8 state
17 | # Reason of the state
18 | uint8 reason_userRequest=0 # User requested a navigate home (available->inProgress)
19 | uint8 reason_connectionLost=1 # Connection between controller and product lost (available->inProgress)
20 | uint8 reason_lowBattery=2 # Low battery occurred (available->inProgress)
21 | uint8 reason_finished=3 # Navigate home is finished (inProgress->available)
22 | uint8 reason_stopped=4 # Navigate home has been stopped (inProgress->available)
23 | uint8 reason_disabled=5 # Navigate home disabled by product (inProgress->unavailable or available->unavailable)
24 | uint8 reason_enabled=6 # Navigate home enabled by product (unavailable->available)
25 | uint8 reason
26 |
--------------------------------------------------------------------------------
/bebop_msgs/CHANGELOG.rst:
--------------------------------------------------------------------------------
1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2 | Changelog for package bebop_msgs
3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4 |
5 | 0.7.0 (2017-07-29)
6 | ------------------
7 | * Update to Parrot SDK 3.12.6 (from 3.10.1)
8 | * Contributors: Thomas Bamford
9 |
10 | 0.6.0 (2016-11-02)
11 | ------------------
12 | * Update autogenerated msgs/headers/docs to SDK 3.10.1
13 | * Contributors: Mani Monajjemi
14 |
15 | 0.5.1 (2016-05-04)
16 | ------------------
17 |
18 | 0.5.0 (2016-04-01)
19 | ------------------
20 | * Update to SDK 3.8.3
21 | - SDK 3.8.3 from
22 | https://github.com/Parrot-Developers/arsdk_manifests.git
23 | - SDK 3.8.3 git hash: 2930cc7f7a79173d51c1fc167475fa9fa6650def
24 | * Contributors: Mani Monajjemi
25 |
26 | 0.4.1 (2016-02-17)
27 | ------------------
28 | * Fix dynamic_reconfigure's inconsistency
29 | - The inconsisteny was between the filename and the target name
30 | * Contributors: Mani Monajjemi
31 |
32 | 0.4.0 (2016-01-17)
33 | ------------------
34 | * Update Parrot SDK to 3.7.5 (from 3.6)
35 | * New Topic and Message type for `DefaultCameraOrientation`
36 | * Contributors: Mani Monajjemi
37 |
38 | 0.3.0 (2015-09-17)
39 | ------------------
40 | * Renamed to bebop_msgs
41 | * Contributors: Mani Monajjemi
42 |
43 | 0.2.0 (2015-09-10)
44 | ------------------
45 | * Contributors: Mani Monajjemi
46 |
47 | 0.1.2 (2015-09-05)
48 | ------------------
49 | * Contributors: Mani Monajjemi
50 |
51 | 0.1.1 (2015-09-04)
52 | ------------------
53 | * Auto-generated .msg and .h files based on libARCommands XML files
54 | * Contributors: Mani Monajjemi
55 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2015, Mani Monajjemi (AutonomyLab, Simon Fraser University)
2 | All rights reserved.
3 |
4 | Redistribution and use in source and binary forms, with or without
5 | modification, are permitted provided that the following conditions are met:
6 |
7 | * Redistributions of source code must retain the above copyright notice, this
8 | list of conditions and the following disclaimer.
9 |
10 | * Redistributions in binary form must reproduce the above copyright notice,
11 | this list of conditions and the following disclaimer in the documentation
12 | and/or other materials provided with the distribution.
13 |
14 | * Neither the name of [project] nor the names of its
15 | contributors may be used to endorse or promote products derived from
16 | this software without specific prior written permission.
17 |
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
22 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
25 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
26 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 |
29 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # bebop_autonomy
2 |
3 | [ROS](http://ros.org) driver for [Parrot Bebop](http://www.parrot.com/ca/products/bebop-drone/) drone (quadrocopter).
4 |
5 | * Documentation: http://bebop-autonomy.readthedocs.io/
6 | * ROS wiki page: http://wiki.ros.org/bebop_autonomy
7 | * Support: [ROS Q&A (tag: bebop_autonomy)](http://answers.ros.org/questions/scope:all/sort:activity-desc/tags:bebop_autonomy/page:1/)
8 | * Code API: http://docs.ros.org/indigo/api/bebop_autonomy/html
9 |
10 | ## Development Team
11 |
12 | * Author: [Mani Monajjemi](http://mani.im) ([Autonomy Lab](http://autonomylab.org), [Simon Fraser University](http://www.sfu.ca)) + [other contributers](http://bebop-autonomy.readthedocs.io/en/latest/contribute.html#list-of-contributers)
13 | * Maintainers:
14 | * [Sepehr MohaimenianPour](http://sepehr.im/) ([Autonomy Lab](http://autonomylab.org), [Simon Fraser University](http://www.sfu.ca))
15 | * Thomas Bamford ([Dynamic Systems Lab](http://www.dynsyslab.org), [University of Toronto](https://www.utoronto.ca/))
16 | * [Tobias Naegeli](https://ait.ethz.ch/people/naegelit/) ([Advanced Interactive Technologies Lab](http://www.ait.ethz.ch/), [ETH Zürich](http://www.ethz.ch/))
17 |
18 | ## Build Status
19 |
20 | [](https://travis-ci.org/AutonomyLab/bebop_autonomy) [](https://semaphoreci.com/mani_monaj/bebop_autonomy)
21 |
22 | Built against [parrot_arsdk](https://github.com/AutonomyLab/parrot_arsdk) 3.12.6p1
23 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonChargerStateChargingInfo.msg:
--------------------------------------------------------------------------------
1 | # CommonChargerStateChargingInfo
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Charging information.
8 |
9 | Header header
10 |
11 | # The current charging phase.
12 | uint8 phase_UNKNOWN=0 # The charge phase is unknown or irrelevant.
13 | uint8 phase_CONSTANT_CURRENT_1=1 # First phase of the charging process. The battery is charging with constant current.
14 | uint8 phase_CONSTANT_CURRENT_2=2 # Second phase of the charging process. The battery is charging with constant current, with a higher voltage than the first phase.
15 | uint8 phase_CONSTANT_VOLTAGE=3 # Last part of the charging process. The battery is charging with a constant voltage.
16 | uint8 phase_CHARGED=4 # The battery is fully charged.
17 | uint8 phase_DISCHARGING=5 # The battery is discharging; Other arguments refers to the last charge.
18 | uint8 phase
19 | # The charge rate. If phase is DISCHARGING, refers to the last charge.
20 | uint8 rate_UNKNOWN=0 # The charge rate is not known.
21 | uint8 rate_SLOW=1 # Slow charge rate.
22 | uint8 rate_MODERATE=2 # Moderate charge rate.
23 | uint8 rate_FAST=3 # Fast charge rate.
24 | uint8 rate
25 | # The charging intensity, in dA. (12dA = 1,2A) ; If phase is DISCHARGING, refers to the last charge. Equals to 0 if not known.
26 | uint8 intensity
27 | # The full charging time estimated, in minute. If phase is DISCHARGING, refers to the last charge. Equals to 0 if not known.
28 | uint8 fullChargingTime
29 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/Ardrone3PilotingStatemoveToChanged.msg:
--------------------------------------------------------------------------------
1 | # Ardrone3PilotingStatemoveToChanged
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: The drone moves or moved to a given location.
8 |
9 | Header header
10 |
11 | # Latitude of the location (in degrees) to reach
12 | float64 latitude
13 | # Longitude of the location (in degrees) to reach
14 | float64 longitude
15 | # Altitude above sea level (in m) to reach
16 | float64 altitude
17 | # Orientation mode of the move to
18 | uint8 orientation_mode_NONE=0 # The drone wont change its orientation
19 | uint8 orientation_mode_TO_TARGET=1 # The drone will make a rotation to look in direction of the given location
20 | uint8 orientation_mode_HEADING_START=2 # The drone will orientate itself to the given heading before moving to the location
21 | uint8 orientation_mode_HEADING_DURING=3 # The drone will orientate itself to the given heading while moving to the location
22 | uint8 orientation_mode
23 | # Heading (relative to the North in degrees). This value is only used if the orientation mode is HEADING_START or HEADING_DURING
24 | float32 heading
25 | # Status of the move to
26 | uint8 status_RUNNING=0 # The drone is actually flying to the given position
27 | uint8 status_DONE=1 # The drone has reached the target
28 | uint8 status_CANCELED=2 # The move to has been canceled, either by a new moveTo command or by a CancelMoveTo command.
29 | uint8 status_ERROR=3 # The move to has not been finished or started because of an error.
30 | uint8 status
31 |
--------------------------------------------------------------------------------
/docs/installation.rst:
--------------------------------------------------------------------------------
1 | ************
2 | Installation
3 | ************
4 |
5 | Compiling From Source
6 | =====================
7 |
8 | Pre-requirements:
9 |
10 | - ROS *Indigo*, *Jade* or *Kinetic* (Only tested on *Ubuntu*)
11 | - Ubuntu packages: ``build-esstential``, ``python-rosdep``, ``python-catkin-tools``
12 | - Basic familiarity with building ROS packages
13 |
14 | .. code-block:: bash
15 |
16 | $ sudo apt-get install build-essential python-rosdep python-catkin-tools
17 |
18 | To compile from source, you need to clone the source code in a new or existing ``catkin`` workspace, use ``rosdep`` to install dependencies and finally compile the workspace using `catkin`. The following commands demonstrate this procedure in a newly created ``catkin`` workspace.
19 |
20 | .. note:: 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 during the ``rosdep install`` step below. This dramatically decreases the compile time of the package compared to previous versions (e.g. from ~15 minutes to less than a minute on a modern computer). If you are re-compiling from source, you need to clean your workspace first: ``$ catkin clean [-y]``.
21 |
22 | .. code-block:: bash
23 |
24 | # Create and initialize the workspace
25 | $ mkdir -p ~/bebop_ws/src && cd ~/bebop_ws
26 | $ catkin init
27 | $ git clone https://github.com/AutonomyLab/bebop_autonomy.git src/bebop_autonomy
28 | # Update rosdep database and install dependencies (including parrot_arsdk)
29 | $ rosdep update
30 | $ rosdep install --from-paths src -i
31 | # Build the workspace
32 | $ catkin build
33 |
34 |
--------------------------------------------------------------------------------
/bebop_msgs/msg/autogenerated/CommonAnimationsStateList.msg:
--------------------------------------------------------------------------------
1 | # CommonAnimationsStateList
2 | # auto-generated from up stream XML files at
3 | # github.com/Parrot-Developers/libARCommands/tree/master/Xml
4 | # To check upstream commit hash, refer to last_build_info file
5 | # Do not modify this file by hand. Check scripts/meta folder for generator files.
6 | #
7 | # SDK Comment: Paramaterless animations state list.
8 |
9 | Header header
10 |
11 | # Animation type.
12 | uint8 anim_HEADLIGHTS_FLASH=0 # Flash headlights.
13 | uint8 anim_HEADLIGHTS_BLINK=1 # Blink headlights.
14 | uint8 anim_HEADLIGHTS_OSCILLATION=2 # Oscillating headlights.
15 | uint8 anim_SPIN=3 # Spin animation.
16 | uint8 anim_TAP=4 # Tap animation.
17 | uint8 anim_SLOW_SHAKE=5 # Slow shake animation.
18 | uint8 anim_METRONOME=6 # Metronome animation.
19 | uint8 anim_ONDULATION=7 # Standing dance animation.
20 | uint8 anim_SPIN_JUMP=8 # Spin jump animation.
21 | uint8 anim_SPIN_TO_POSTURE=9 # Spin that end in standing posture, or in jumper if it was standing animation.
22 | uint8 anim_SPIRAL=10 # Spiral animation.
23 | uint8 anim_SLALOM=11 # Slalom animation.
24 | uint8 anim_BOOST=12 # Boost animation.
25 | uint8 anim_LOOPING=13 # Make a looping. (Only for WingX)
26 | uint8 anim_BARREL_ROLL_180_RIGHT=14 # Make a barrel roll of 180 degree turning on right. (Only for WingX)
27 | uint8 anim_BARREL_ROLL_180_LEFT=15 # Make a barrel roll of 180 degree turning on left. (Only for WingX)
28 | uint8 anim_BACKSWAP=16 # Put the drone upside down. (Only for WingX)
29 | uint8 anim
30 | # State of the animation
31 | uint8 state_stopped=0 # animation is stopped
32 | uint8 state_started=1 # animation is started
33 | uint8 state_notAvailable=2 # The animation is not available
34 | uint8 state
35 | # Error to explain the state
36 | uint8 error_ok=0 # No Error
37 | uint8 error_unknown=1 # Unknown generic error
38 | uint8 error
39 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | # Use ros-build farm local devel job generation script on TravisCI
2 | # https://github.com/ros-infrastructure/ros_buildfarm/blob/master/doc/jobs/devel_jobs.rst#run-the-devel-job-on-travis
3 | # while this doesn't require sudo we don't want to run within a Docker container
4 | sudo: true
5 | dist: trusty
6 | language: python
7 | python:
8 | - "3.4"
9 | env:
10 | global:
11 | - JOB_PATH=/tmp/devel_job
12 | matrix:
13 | - ROS_DISTRO_NAME=indigo OS_NAME=ubuntu OS_CODE_NAME=trusty ARCH=amd64
14 | # - ROS_DISTRO_NAME=jade OS_NAME=ubuntu OS_CODE_NAME=trusty ARCH=amd64
15 | - ROS_DISTRO_NAME=kinetic OS_NAME=ubuntu OS_CODE_NAME=xenial ARCH=amd64
16 | install:
17 | # either install the latest released version of ros_buildfarm
18 | - pip install ros_buildfarm
19 | # or checkout a specific branch
20 | # - git clone -b master https://github.com/ros-infrastructure/ros_buildfarm /tmp/ros_buildfarm
21 | # - pip install /tmp/ros_buildfarm
22 | # checkout catkin for catkin_test_results script
23 | - git clone https://github.com/ros/catkin /tmp/catkin
24 | # run devel job for a ROS repository with the same name as this repo
25 | - export REPOSITORY_NAME=`basename $TRAVIS_BUILD_DIR`
26 | # use the code already checked out by Travis
27 | - mkdir -p $JOB_PATH/catkin_workspace/src
28 | - cp -R $TRAVIS_BUILD_DIR $JOB_PATH/catkin_workspace/src/
29 | # generate the script to run a devel job for that target and repo
30 | - generate_devel_script.py https://raw.githubusercontent.com/ros-infrastructure/ros_buildfarm_config/production/index.yaml $ROS_DISTRO_NAME default $REPOSITORY_NAME $OS_NAME $OS_CODE_NAME $ARCH > $JOB_PATH/devel_job.sh
31 | - cd $JOB_PATH
32 | - cat devel_job.sh
33 | # run the actual job which involves Docker
34 | - sh devel_job.sh -y
35 | script:
36 | # get summary of test results
37 | - /tmp/catkin/bin/catkin_test_results $JOB_PATH/catkin_workspace/test_results --all
38 | notifications:
39 | # email: change
40 |
--------------------------------------------------------------------------------
/docs/contribute.rst:
--------------------------------------------------------------------------------
1 | **********
2 | Contribute
3 | **********
4 |
5 | Contribute to bebop_autonomy
6 | ============================
7 |
8 | You can contribute to *bebop_autonomy* by:
9 |
10 | * Reporting bugs using driver's `Issue Tracker `_ on Github.
11 | * Submitting patches, new features, sample codes, documentation and supplementary materials (i.e. launch and configuration files) as Github `Pull Requests `_.
12 |
13 | * Please check current `open issues `_ and :ref:`sec-roadmap` section for a list of known bugs and feature request.
14 |
15 | * Joining driver's `developers forum `_ and participate in technical discussions on new features, bugs and roadmap.
16 |
17 | List of Developers
18 | ==================
19 |
20 | - `Mani Monajjemi `_
21 |
22 | .. _sec-contribs:
23 |
24 | List of Contributers
25 | ====================
26 |
27 | - `Anup Parikh `_
28 |
29 | - `#19 Add bebop ip address as ROS parameter `_
30 |
31 | - `Jacob Perron `_
32 |
33 | - `#26 Bebop now follows right-hand rule `_
34 | - `#57 Add autonomous flight plan capabilities to driver `_
35 |
36 | - `Jake Bruce `_
37 |
38 | - `Charuvahan Adhivarahan `_
39 |
40 | - `#30 Fixed breaking build due to legac macro usage `_
41 |
42 | - `Thomas Bamford `_
43 |
44 | - `Added Xbox 360 config file `_
45 |
46 | - `Sepehr Mohaimenianpour `_
47 |
48 | Acknowledgments
49 | ================
50 |
51 | - `Mike Purvis `_ for his help with designing the initial architecture of the driver.
52 |
53 |
--------------------------------------------------------------------------------
/bebop_tools/config/xbox360.yaml:
--------------------------------------------------------------------------------
1 | # Xbox 360 wireless controller
2 | # Deadman (enable) button: Right Bumper
3 | teleop:
4 | piloting:
5 | type: topic
6 | message_type: "geometry_msgs/Twist"
7 | topic_name: cmd_vel
8 | deadman_buttons: [5]
9 | axis_mappings:
10 | -
11 | axis: 4 # Right thumb stick (up/down)
12 | target: linear.x
13 | scale: 1.0
14 | offset: 0.0
15 | -
16 | axis: 3 # Right thumb stick (left/right)
17 | target: linear.y
18 | scale: 1.0
19 | offset: 0.0
20 | -
21 | axis: 1 # Left thumb stick (up/down)
22 | target: linear.z
23 | scale: 1.0
24 | offset: 0.0
25 | -
26 | axis: 0 # Left thumb stick (left/right)
27 | target: angular.z
28 | scale: 1.0
29 | offset: 0.0
30 | camera:
31 | type: topic
32 | message_type: "geometry_msgs/Twist"
33 | topic_name: camera_control
34 | deadman_buttons: [7] # Start
35 | axis_mappings:
36 | -
37 | axis: 1 # Left D-Pad (up/down)
38 | target: angular.y
39 | scale: 83.0
40 | offset: 0.0
41 | -
42 | axis: 0 # Left D-Pad (left/right)
43 | target: angular.z
44 | scale: -35.0
45 | offset: 0.0
46 | takeoff:
47 | type: topic
48 | message_type: "std_msgs/Empty"
49 | topic_name: takeoff
50 | deadman_buttons: [5, 3] # RB + Y
51 | axis_mappings: []
52 | land:
53 | type: topic
54 | message_type: "std_msgs/Empty"
55 | topic_name: land
56 | deadman_buttons: [5, 0] # RB + A
57 | axis_mappings: []
58 | emergency:
59 | type: topic
60 | message_type: "std_msgs/Empty"
61 | topic_name: reset
62 | deadman_buttons: [5, 1] # RB + B
63 | axis_mappings: []
64 | flattrim:
65 | type: topic
66 | message_type: "std_msgs/Empty"
67 | topic_name: flattrim
68 | deadman_buttons: [5, 2] # RB + X
69 | axis_mappings: []
70 | flip:
71 | type: topic
72 | message_type: "std_msgs/UInt8"
73 | topic_name: flip
74 | deadman_buttons: [5, 4, 2] # RB + LB + X
75 | axis_mappings: []
76 | snapshot:
77 | type: topic
78 | message_type: "std_msgs/Empty"
79 | topic_name: snapshot
80 | deadman_buttons: [5, 8] # RB + XBox
81 | axis_mappings: []
82 |
--------------------------------------------------------------------------------
/docs/running.rst:
--------------------------------------------------------------------------------
1 | ******************
2 | Running the Driver
3 | ******************
4 |
5 | You can run Bebop's ROS drivereither as a ROS `Nodelet `_ or as a standalone ROS Node. The former is recommended if you intend to perform any kind of processing on Bebop's video stream.
6 |
7 | .. note:: If you compile the driver form source, do not forget to source your catkin workspace prior to running the driver. (i.e. ``source ~/bebop_ws/devel/setup.[bash|zsh]``)
8 |
9 | .. note:: Ensure that your Bebop's firmware is at least **2.0.29** and your computer is connected to Bebop's wireless network.
10 |
11 | Running the driver as a Node
12 | ================================
13 |
14 | The executable node is called ``bebop_driver_node`` and exists in ``bebop_driver`` package. It's recommended to run the Node in its own namespace and with default configuration. The driver package comes with a sample launch file ``bebop_driver/launch/bebop_node.launch`` which demonstrates the procedure.
15 |
16 | .. code-block:: bash
17 |
18 | $ roslaunch bebop_driver bebop_node.launch
19 |
20 |
21 | .. literalinclude::
22 | ../bebop_driver/launch/bebop_node.launch
23 | :language: XML
24 | :caption: bebop_node.launch
25 |
26 | Running the driver as a Nodelet
27 | ===================================
28 |
29 | To run the driver as a ROS Nodelet, you need to first run a Nodelet manager, then load the driver's Nodelet (``bebop_driver/BebopDriverNodelet``) in it, along with other Nodelets that need to communicate with the driver. `bebop_tools/launch/bebop_nodelet_iv.launch` is a sample launch file that demonstrates these steps by visualizing Bebop's video stream using an instance of `image_view/image `_ Nodelet. Similar to `bebop_node.launch`, it also runs everything in its own namespace and loads the default configuration.
30 |
31 | .. code-block:: bash
32 |
33 | $ roslaunch bebop_tools bebop_nodelet_iv.launch
34 |
35 |
36 | .. literalinclude::
37 | ../bebop_tools/launch/bebop_nodelet_iv.launch
38 | :language: XML
39 | :caption: bebop_tools/launch/bebop_nodelet_iv.launch
40 |
41 | .. literalinclude::
42 | ../bebop_driver/launch/bebop_nodelet.launch
43 | :language: XML
44 | :caption: bebop_driver/launch/bebop_nodelet.launch
45 |
--------------------------------------------------------------------------------
/bebop_tools/config/log710.yaml:
--------------------------------------------------------------------------------
1 | # Logitech F710 wireless controller
2 | # Deadman (enable) button: Right Trigger
3 | # D<>X button (located on the back panel) must be set to D
4 | teleop:
5 | piloting:
6 | type: topic
7 | message_type: "geometry_msgs/Twist"
8 | topic_name: cmd_vel
9 | deadman_buttons: [7]
10 | axis_mappings:
11 | -
12 | axis: 3 # Right thumb stick (up/down)
13 | target: linear.x
14 | scale: 1.0
15 | offset: 0.0
16 | -
17 | axis: 2 # Right thumb stick (left/right)
18 | target: linear.y
19 | scale: 1.0
20 | offset: 0.0
21 | -
22 | axis: 1 # Left thumb stick (up/down)
23 | target: linear.z
24 | scale: 1.0
25 | offset: 0.0
26 | -
27 | axis: 0 # Left thumb stick (left/right)
28 | target: angular.z
29 | scale: 1.0
30 | offset: 0.0
31 | camera:
32 | type: topic
33 | message_type: "geometry_msgs/Twist"
34 | topic_name: camera_control
35 | deadman_buttons: [7]
36 | axis_mappings:
37 | -
38 | axis: 5 # Left D-Pad (up/down)
39 | target: angular.y
40 | scale: 83.0
41 | offset: 0.0
42 | -
43 | axis: 4 # Left D-Pad (left/right)
44 | target: angular.z
45 | scale: -35.0
46 | offset: 0.0
47 | takeoff:
48 | type: topic
49 | message_type: "std_msgs/Empty"
50 | topic_name: takeoff
51 | deadman_buttons: [3, 7] # RT + Y
52 | axis_mappings: []
53 | land:
54 | type: topic
55 | message_type: "std_msgs/Empty"
56 | topic_name: land
57 | deadman_buttons: [1, 7] # RT + A
58 | axis_mappings: []
59 | emergency:
60 | type: topic
61 | message_type: "std_msgs/Empty"
62 | topic_name: reset
63 | deadman_buttons: [2, 7] # RT + B
64 | axis_mappings: []
65 | flattrim:
66 | type: topic
67 | message_type: "std_msgs/Empty"
68 | topic_name: flattrim
69 | deadman_buttons: [0, 7] # RT + X
70 | axis_mappings: []
71 | flip:
72 | type: topic
73 | message_type: "std_msgs/UInt8"
74 | topic_name: flip
75 | deadman_buttons: [6, 7, 0] # RT + LT + X
76 | axis_mappings: []
77 | snapshot:
78 | type: topic
79 | message_type: "std_msgs/Empty"
80 | topic_name: snapshot
81 | deadman_buttons: [7, 4] # RT + LB
82 | axis_mappings: []
83 |
--------------------------------------------------------------------------------
/bebop_description/urdf/bebop_base.urdf.xacro:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/bebop_driver/package.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | bebop_driver
4 | 0.7.1
5 | ROS driver for Parrot Bebop drone, based on Parrot’s official ARDroneSDK3
6 |
7 | Mani Monajjemi
8 | Sepehr MohaimenianPour
9 | Thomas Bamford
10 | Tobias Naegeli
11 |
12 | BSD
13 |
14 | http://wiki.ros.org/bebop_driver
15 | http://github.com/AutonomyLab/bebop_autonomy
16 |
17 | Mani Monajjemi
18 |
19 | catkin
20 |
21 | parrot_arsdk
22 | bebop_msgs
23 | bebop_description
24 | pkg-config
25 | nodelet
26 | camera_info_manager
27 | ffmpeg
28 | image_transport
29 | nav_msgs
30 | roscpp
31 | std_msgs
32 | tf2
33 | tf2_ros
34 | tf2_geometry_msgs
35 | dynamic_reconfigure
36 | roslint
37 | rostest
38 |
39 | parrot_arsdk
40 | bebop_msgs
41 | bebop_description
42 | nodelet
43 | camera_info_manager
44 | ffmpeg
45 | image_transport
46 | nav_msgs
47 | roscpp
48 | std_msgs
49 | tf2
50 | tf2_ros
51 | tf2_geometry_msgs
52 | ffmpeg
53 | dynamic_reconfigure
54 |
55 | angles
56 |
57 |
58 |
59 |
60 |
61 |
--------------------------------------------------------------------------------
/docs/configuration.rst:
--------------------------------------------------------------------------------
1 | ********************************
2 | Configuring Bebop and the Driver
3 | ********************************
4 |
5 | .. _sec-params:
6 |
7 | Driver Parameters
8 | =================
9 |
10 | Following parameters are set during driver's startup:
11 |
12 | ~bebop_ip
13 | ---------
14 |
15 | Sets the IP addres of the Bebop. The default value is ``192.168.42.1``.
16 |
17 | ~reset_settings
18 | ---------------
19 |
20 | Setting this parameter to ``true`` will reset all Bebop configurations to factory defaults. Default value is ``false``.
21 |
22 | ~sync_time
23 | ----------
24 |
25 | Setting this parameter to ``true`` will synchronize drone time with your ROS system time. Default value is ``false``.
26 |
27 | ~camera_info_url
28 | ----------------
29 |
30 | Sets the location of the camera calibration data. Default is empty string. For more information check `this documentation `_.
31 |
32 | .. note::
33 |
34 | Since v0.4, the package comes with a default camera calibration file located at ``bebop_driver/data/bebop_front_calib.yaml``.
35 |
36 | ~cmd_vel_timeout
37 | ----------------
38 |
39 | .. versionadded:: 0.4
40 |
41 | Sets the safety timeout for piloting ``cmd_vel`` commands in seconds. Deafult is set to **0.1** seconds (100 miliseconds). If no piloting command is received by the driver within this timeout period, the driver issues a stop command which causes the drone to hover.
42 |
43 | ~odom_frame_id
44 | --------------
45 |
46 | .. versionadded:: 0.5
47 |
48 | Sets the ``frame_id`` of the odometery message (see :ref:`sec-ros-topic`) and the odometery frame used in the TF tree (see :ref:`sec-tf`). The default value is ``odom``.
49 |
50 | ~publish_odom_tf
51 | ----------------
52 |
53 | .. versionadded:: 0.5
54 |
55 | Enables the publishing of ``odom`` to ``base_link`` TF transform (see :ref:`sec-tf`). The default value is ``true``.
56 |
57 | ~camera_frame_id
58 | ----------------
59 |
60 | .. deprecated:: 0.5
61 |
62 | Sets the ``frame_id`` of camera and image messages. The default value is ``camera_optical``.
63 |
64 | .. _sec-dyn-params:
65 |
66 | Dynamically Reconfigurable Parameters for Bebop
67 | ===============================================
68 |
69 | Following ROS parameters change Bebop's settings. They can be tweaked during runtime using `dynamic reconfigure GUI `_. Setting `~reset_settings`_ parameter to ``true`` will reset all these settings to factory defaults.
70 |
71 | :doc:`autogenerated/ardrone3_settings_param`
72 |
73 |
--------------------------------------------------------------------------------
/bebop_driver/src/bebop_driver_node.cpp:
--------------------------------------------------------------------------------
1 | /**
2 | Software License Agreement (BSD)
3 |
4 | \file bebop_driver_node.cpp
5 | \authors Mani Monajjemi
6 | \copyright Copyright (c) 2015, Autonomy Lab (Simon Fraser University), All rights reserved.
7 |
8 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that
9 | the following conditions are met:
10 | * Redistributions of source code must retain the above copyright notice, this list of conditions and the
11 | following disclaimer.
12 | * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the
13 | following disclaimer in the documentation and/or other materials provided with the distribution.
14 | * Neither the name of Autonomy Lab nor the names of its contributors may be used to endorse or promote
15 | products derived from this software without specific prior written permission.
16 |
17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WAR-
18 | RANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19 | PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, IN-
20 | DIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
21 | OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 | */
25 | #include
26 | #include
27 | #include
28 |
29 | #include
30 | #include
31 |
32 | int main(int argc, char* argv[])
33 | {
34 | ros::init(argc, argv, "bebop_driver_node", ros::init_options::NoSigintHandler);
35 | nodelet::Loader nll;
36 |
37 | nodelet::M_string remap(ros::names::getRemappings());
38 | nodelet::V_string nargv;
39 | const std::string nl_name = ros::this_node::getName();
40 | nll.load(nl_name, "bebop_driver/BebopDriverNodelet", remap, nargv);
41 |
42 | const std::vector& loaded_nodelets = nll.listLoadedNodelets();
43 | if (std::find(loaded_nodelets.begin(),
44 | loaded_nodelets.end(),
45 | nl_name) == loaded_nodelets.end())
46 | {
47 | // Nodelet OnInit() failed
48 | ROS_FATAL("bebop_driver nodelet failed to load.");
49 | return 1;
50 | }
51 |
52 | // It reaches here when OnInit() succeeds
53 | ROS_INFO("bebop_driver nodelet loaded.");
54 | ros::spin();
55 | return 0;
56 | }
57 |
--------------------------------------------------------------------------------
/bebop_driver/scripts/meta/templates/setting_callback_includes.h.mustache:
--------------------------------------------------------------------------------
1 | /**
2 | Software License Agreement (BSD)
3 |
4 | \file {{project}}_setting_callback_includes.h
5 | \authors Mani Monajjemi
6 | \copyright Copyright (c) 2015, Autonomy Lab (Simon Fraser University), All rights reserved.
7 |
8 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that
9 | the following conditions are met:
10 | * Redistributions of source code must retain the above copyright notice, this list of conditions and the
11 | following disclaimer.
12 | * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the
13 | following disclaimer in the documentation and/or other materials provided with the distribution.
14 | * Neither the name of Autonomy Lab nor the names of its contributors may be used to endorse or promote
15 | products derived from this software without specific prior written permission.
16 |
17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WAR-
18 | RANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19 | PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, IN-
20 | DIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
21 | OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 |
25 | * {{project}}_setting_callback_includes.h
26 | * auto-generated from {{url}}
27 | * Do not modify this file by hand. Check scripts/meta folder for generator files.
28 | */
29 |
30 | #ifdef FORWARD_DECLARATIONS
31 | namespace cb
32 | {
33 | {{#cpp_class}}
34 | class {{cpp_class_name}};
35 | {{/cpp_class}}
36 | } // namespace cb
37 | #endif // FORWARD_DECLARATIONS
38 |
39 | #ifdef DEFINE_SHARED_PTRS
40 | // Define all callback wrappers
41 | {{#cpp_class}}
42 | boost::shared_ptr {{cpp_class_instance_name}};
43 | {{/cpp_class}}
44 | #endif // DEFINE_SHARED_PTRS
45 |
46 | #ifdef UPDTAE_CALLBACK_MAP
47 | // Instantiate state callback wrappers
48 | {{#cpp_class}}
49 | {{cpp_class_instance_name}}.reset(new cb::{{cpp_class_name}}(priv_nh));
50 | {{/cpp_class}}
51 |
52 | // Add all wrappers to the callback map (AbstractCommand* part of each object)
53 | {{#cpp_class}}
54 | callback_map_.insert(std::pair >(
55 | {{cpp_class_instance_name}}->GetCommandKey(),
56 | {{cpp_class_instance_name}}));
57 | {{/cpp_class}}
58 | #endif // UPDTAE_CALLBACK_MAP
59 |
--------------------------------------------------------------------------------
/bebop_driver/scripts/meta/templates/state_callback_includes.h.mustache:
--------------------------------------------------------------------------------
1 | /**
2 | Software License Agreement (BSD)
3 |
4 | \file {{project}}_state_callback_includes.h
5 | \authors Mani Monajjemi
6 | \copyright Copyright (c) 2015, Autonomy Lab (Simon Fraser University), All rights reserved.
7 |
8 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that
9 | the following conditions are met:
10 | * Redistributions of source code must retain the above copyright notice, this list of conditions and the
11 | following disclaimer.
12 | * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the
13 | following disclaimer in the documentation and/or other materials provided with the distribution.
14 | * Neither the name of Autonomy Lab nor the names of its contributors may be used to endorse or promote
15 | products derived from this software without specific prior written permission.
16 |
17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WAR-
18 | RANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19 | PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, IN-
20 | DIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
21 | OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 |
25 | * {{project}}_state_callback_includes.h
26 | * auto-generated from {{url}}
27 | * Do not modify this file by hand. Check scripts/meta folder for generator files.
28 | */
29 |
30 | #ifdef FORWARD_DECLARATIONS
31 | namespace cb
32 | {
33 | {{#cpp_class}}
34 | class {{cpp_class_name}};
35 | {{/cpp_class}}
36 | } // namespace cb
37 | #endif // FORWARD_DECLARATIONS
38 |
39 | #ifdef DEFINE_SHARED_PTRS
40 | // Define all callback wrappers
41 | {{#cpp_class}}
42 | boost::shared_ptr
43 | {{cpp_class_instance_name}};
44 | {{/cpp_class}}
45 | #endif // DEFINE_SHARED_PTRS
46 |
47 | #ifdef UPDTAE_CALLBACK_MAP
48 | // Instantiate state callback wrappers
49 | {{#cpp_class}}
50 | {{cpp_class_instance_name}}.reset(
51 | new cb::{{cpp_class_name}}(
52 | nh, priv_nh, "{{topic_name}}"));
53 | {{/cpp_class}}
54 |
55 | {{#cpp_class}}
56 | // Add all wrappers to the callback map
57 | callback_map_.insert(std::pair >(
58 | {{cpp_class_instance_name}}->GetCommandKey(),
59 | {{cpp_class_instance_name}}));
60 | {{/cpp_class}}
61 | #endif // UPDTAE_CALLBACK_MAP
62 |
--------------------------------------------------------------------------------
/docs/index.rst:
--------------------------------------------------------------------------------
1 | ****************************************************************************
2 | bebop_autonomy - ROS Driver for Parrot Bebop Drone (quadrocopter) 1.0 & 2.0
3 | ****************************************************************************
4 |
5 | *bebop_autonomy* is a :abbr:`ROS (Robot Operating System)` driver for `Parrot Bebop 1.0 `_ and `2.0 `_ drones (quadrocopters), based on Parrot's official `ARDroneSDK3 `_. This driver has been developed in `Autonomy Lab `_ of `Simon Fraser University `_ by `Mani Monajjemi `_ and other contributers (:ref:`sec-contribs`). This software is maintained by `Sepehr MohaimenianPour `_ (AutonomyLab, Simon Fraser University), `Thomas Bamford <#>`_ (Dynamic Systems Lab, University of Toronto) and `Tobias Naegeli `_ (Advanced Interactive Technologies Lab, ETH Zürich).
6 |
7 | [`Source Code `_]
8 | [`ROS wiki page `_]
9 | [`Support `_]
10 | [`Bug Tracker `_]
11 |
12 | .. _sec-roadmap:
13 |
14 | Features and Roadmap
15 | ====================
16 |
17 | .. csv-table::
18 | :header: "Feature", "Status", "Notes"
19 |
20 | SDK Version,"3.12.6", "Since v0.7"
21 | Support for Parrot Bebop 1, Yes, "Tested up to Firmware 3.3"
22 | Support for Parrot Bebop 2, Yes, "Tested up to Firmware 4.0.6"
23 | Support for Parrot Disco FPV, No, "Not tested (help wanted)"
24 | Core piloting, Yes, ""
25 | H264 video decoding, Yes, "Enhancement: `#1 `_"
26 | ROS Camera Interface, Yes, ""
27 | Nodelet implementation, Yes, ""
28 | Publish Bebop states as ROS topics, Yes, ""
29 | Dynamically reconfigurable Bebop settings, Yes, ":ref:`sec-dev-dyn`"
30 | Use `parrot_arsdk `_ instead of building ARSDK3 inline, Yes, "Since v0.6: `#75 `_"
31 | Bebop In The Loop tests, Yes, ":ref:`sec-dev-test`"
32 | Joystick teleop demo, Yes, ":ref:`sec-pilot-teleop`"
33 | TF Publisher, Yes, "Since v0.5 (:ref:`sec-tf`)"
34 | Odometry Publisher, Yes, "Since v0.5 (:ref:`sec-odom`)"
35 | Provide ROS API for on-board picture/video recording, Yes, "Since v0.4.1 (:ref:`sec-snapshot`)"
36 | GPS Support, Yes, "Since v0.6 (:ref:`sec-gps`)"
37 | Support for 720p streaming, Yes, "Since v0.6"
38 | Mavlink Support, No, ""
39 | Binary Release, No, ""
40 | Support for Parrot Sky Controller, No, ""
41 |
42 | Table of Contents
43 | =================
44 |
45 | .. toctree::
46 | :maxdepth: 2
47 |
48 | changelog
49 | installation
50 | running
51 | piloting
52 | reading
53 | configuration
54 | coordinates
55 | contribute
56 | FAQ
57 | dev
58 | license
59 |
60 | Indices and tables
61 | ==================
62 |
63 | * :ref:`genindex`
64 | * :ref:`modindex`
65 | * :ref:`search`
66 |
67 |
--------------------------------------------------------------------------------
/docs/license.rst:
--------------------------------------------------------------------------------
1 | *******
2 | License
3 | *******
4 |
5 | Parrot ARDrone3 SDK
6 | ===================
7 |
8 | Copyright (C) 2014 Parrot SA
9 |
10 | Redistribution and use in source and binary forms, with or without
11 | modification, are permitted provided that the following conditions
12 | are met:
13 |
14 | * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
15 | * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
16 | * Neither the name of Parrot nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior writtenpermission.
17 |
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
21 | FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
22 | COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
23 | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
24 | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
25 | OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
26 | AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
27 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
28 | OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29 | SUCH DAMAGE.
30 |
31 | bebop_autonomy (driver and tools)
32 | =================================
33 |
34 | Copyright (c) 2015, Mani Monajjemi (AutonomyLab, Simon Fraser University)
35 | All rights reserved.
36 |
37 | Redistribution and use in source and binary forms, with or without
38 | modification, are permitted provided that the following conditions are met:
39 |
40 | * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
41 |
42 | * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
43 |
44 | * Neither the name of [project] nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
45 |
46 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
47 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
48 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
49 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
50 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
51 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
52 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
53 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
54 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
55 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
56 |
57 |
--------------------------------------------------------------------------------
/docs/reading.rst:
--------------------------------------------------------------------------------
1 | ******************
2 | Reading from Bebop
3 | ******************
4 |
5 | Camera
6 | ======
7 |
8 | The video stream from Bebop's front camera is published on ``image_raw`` topic as ``sensor_msgs/Image`` messages. *bebop_driver* complies with ROS camera interface specifications and publishes camera information and calibration data to ``camera_info`` topic. Due to limitations in Parrot's ARDroneSDK3, the quality of video stream is limited to **640 x 368 @ 30 Hz**. The field of view of this virtual camera (based on our measurements) is ~80 (horizontal) and ~50 (vertical) degrees.
9 |
10 | To set the location of camera calibration data, please check this page: :doc:`configuration`. Since v0.4, the package ships with a default camera caliberation file located at ``bebop_driver/data/bebop_front_calib.yaml``. Both default node/nodelet launch files, load this file when executing the driver.
11 |
12 | .. _sec-ros-topic:
13 |
14 | Standard ROS messages
15 | =====================
16 |
17 | .. _sec-odom:
18 |
19 | Odometery
20 | ---------
21 |
22 | .. versionadded:: 0.5
23 |
24 | * ROS Topic: ``odom``
25 | * ROS Message Type: ``nav_msgs/Odometry``
26 |
27 | The driver integerates visual-inertial velocity estimates reported by Bebop's firmware to calculate the odometery. This message contains both the position and velocity of the Bebop in an ENU aligned odometery frame also named as ``odom``. This frame name is configurable (see :ref:`sec-params`) The cooridnate frame convention complies with ROS REP 103 (:ref:`sec-coords`). Please not that since odometery is calculated from Bebop States (see :ref:`sec-states`), the update rate is limited to **5 Hz**.
28 |
29 | .. _sec-gps:
30 |
31 | GPS
32 | ---
33 |
34 | .. versionadded:: 0.5
35 |
36 | * ROS Topic: ``fix``
37 | * ROS Message Type: ``sensor_msgs/NavSatFix``
38 |
39 | Joint States (Pan/Tilt of The Virtual Camera)
40 | ---------------------------------------------
41 |
42 | .. versionadded:: 0.5
43 |
44 | * ROS Topic: ``joint_states``
45 | * ROS Message Type: ``sensor_msgs/JointState``
46 |
47 | .. _sec-tf:
48 |
49 | TF
50 | ==
51 |
52 | .. versionadded:: 0.5
53 |
54 | The driver updates the following `TF `_ tree based on a simple kinematic model of the Bebop (provided by ``bebop_description``) pacakge, the current state of the virtual camera joints and the calculated odometery (if ``publish_odom_tf`` is set, see :ref:`sec-params`).
55 |
56 | .. image:: img/tf.png
57 |
58 | .. _sec-states:
59 |
60 | States (aka Navdata)
61 | ====================
62 |
63 | Unlike Parrot ARDrone, Bebop does not constantly transmit all on-board data back to the host device with high frequency. Each state variable is sent only when its value is changed. In addition, the publication rate is currently limited to **5 Hz**. The driver publishes these states **selectively** and when **explicitly** enabled through a ROS parameter. For example setting ``~states/enable_pilotingstate_flyingstatechanged`` parameter to ``true`` will enable the publication of flying state changes to topic ``states/ARDrone3/PilotingState/FlyingStateChanged``. List of all such parameters and their corresponding topics and message types are indexed in the following pages:
64 |
65 | Common States
66 | :doc:`autogenerated/common_states_param_topic`
67 | Bebop-specific States
68 | :doc:`autogenerated/ardrone3_states_param_topic`
69 |
70 |
--------------------------------------------------------------------------------
/bebop_driver/scripts/meta/templates/callbacks_common.h.mustache:
--------------------------------------------------------------------------------
1 | /**
2 | Software License Agreement (BSD)
3 |
4 | \file bebop_common_commands.h
5 | \authors Mani Monajjemi
6 | \copyright Copyright (c) 2015, Autonomy Lab (Simon Fraser University), All rights reserved.
7 |
8 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that
9 | the following conditions are met:
10 | * Redistributions of source code must retain the above copyright notice, this list of conditions and the
11 | following disclaimer.
12 | * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the
13 | following disclaimer in the documentation and/or other materials provided with the distribution.
14 | * Neither the name of Autonomy Lab nor the names of its contributors may be used to endorse or promote
15 | products derived from this software without specific prior written permission.
16 |
17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WAR-
18 | RANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19 | PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, IN-
20 | DIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
21 | OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 |
25 | * bebop_common_commands.h
26 | * auto-generated from {{url}}
27 | * Do not modify this file by hand. Check scripts/meta folder for generator files.
28 | */
29 | #ifndef BEBOP_COMMON_COMMANDS_H
30 | #define BEBOP_COMMON_COMMANDS_H
31 |
32 | #include
33 | #include
34 | #include
35 | #include
36 |
37 | namespace bebop_driver
38 | {
39 |
40 | // Forward decl
41 | class BebopArdrone3Config;
42 |
43 | namespace cb
44 | {
45 |
46 | /* Base class for All SDK Commands */
47 | class AbstractCommand
48 | {
49 | protected:
50 | eARCONTROLLER_DICTIONARY_KEY cmd_key_;
51 | ARCONTROLLER_DICTIONARY_ARG_t* arg;
52 | mutable ::boost::mutex mutex_;
53 |
54 | public:
55 | AbstractCommand(eARCONTROLLER_DICTIONARY_KEY cmd_key)
56 | : cmd_key_(cmd_key), arg(NULL)
57 | {}
58 |
59 | virtual ~AbstractCommand()
60 | {}
61 |
62 | inline eARCONTROLLER_DICTIONARY_KEY GetCommandKey() const {return cmd_key_;}
63 |
64 | virtual void Update(const ARCONTROLLER_DICTIONARY_ARG_t* arg, const ::ros::Time& t) = 0;
65 | };
66 |
67 | // This is not yet abstract
68 | class AbstractState : public AbstractCommand
69 | {
70 | protected:
71 | bool pub_enabled_;
72 | ::ros::Publisher ros_pub_;
73 |
74 | public:
75 | AbstractState(eARCONTROLLER_DICTIONARY_KEY cmd_key, const bool pub_enabled = false)
76 | : AbstractCommand(cmd_key), pub_enabled_(pub_enabled)
77 | {}
78 |
79 | virtual ~AbstractState()
80 | {}
81 | };
82 |
83 | class AbstractSetting: public AbstractCommand
84 | {
85 | protected:
86 | ros::NodeHandle priv_nh_;
87 |
88 | public:
89 | AbstractSetting(eARCONTROLLER_DICTIONARY_KEY cmd_key, ros::NodeHandle& priv_nh)
90 | : AbstractCommand(cmd_key), priv_nh_(priv_nh)
91 | {}
92 |
93 | virtual ~AbstractSetting()
94 | {}
95 |
96 | virtual void UpdateBebopFromROS(const BebopArdrone3Config &config, const ARCONTROLLER_Device_t* bebop_ctrl_ptr_) = 0;
97 |
98 | };
99 |
100 | } // namespace cb
101 | } // namespace bebop_driver
102 |
103 | #endif // BEBOP_COMMON_COMMANDS_H
--------------------------------------------------------------------------------
/bebop_driver/include/bebop_driver/autogenerated/callbacks_common.h:
--------------------------------------------------------------------------------
1 | /**
2 | Software License Agreement (BSD)
3 |
4 | \file bebop_common_commands.h
5 | \authors Mani Monajjemi
6 | \copyright Copyright (c) 2015, Autonomy Lab (Simon Fraser University), All rights reserved.
7 |
8 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that
9 | the following conditions are met:
10 | * Redistributions of source code must retain the above copyright notice, this list of conditions and the
11 | following disclaimer.
12 | * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the
13 | following disclaimer in the documentation and/or other materials provided with the distribution.
14 | * Neither the name of Autonomy Lab nor the names of its contributors may be used to endorse or promote
15 | products derived from this software without specific prior written permission.
16 |
17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WAR-
18 | RANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19 | PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, IN-
20 | DIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
21 | OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 |
25 | * bebop_common_commands.h
26 | * auto-generated from https://raw.githubusercontent.com/Parrot-Developers/arsdk-xml/ab28dab91845cd36c4d7002b55f70805deaff3c8/xml/ardrone3.xml
27 | * Do not modify this file by hand. Check scripts/meta folder for generator files.
28 | */
29 | #ifndef BEBOP_COMMON_COMMANDS_H
30 | #define BEBOP_COMMON_COMMANDS_H
31 |
32 | #include
33 | #include
34 | #include
35 | #include
36 |
37 | namespace bebop_driver
38 | {
39 |
40 | // Forward decl
41 | class BebopArdrone3Config;
42 |
43 | namespace cb
44 | {
45 |
46 | /* Base class for All SDK Commands */
47 | class AbstractCommand
48 | {
49 | protected:
50 | eARCONTROLLER_DICTIONARY_KEY cmd_key_;
51 | ARCONTROLLER_DICTIONARY_ARG_t* arg;
52 | mutable ::boost::mutex mutex_;
53 |
54 | public:
55 | AbstractCommand(eARCONTROLLER_DICTIONARY_KEY cmd_key)
56 | : cmd_key_(cmd_key), arg(NULL)
57 | {}
58 |
59 | virtual ~AbstractCommand()
60 | {}
61 |
62 | inline eARCONTROLLER_DICTIONARY_KEY GetCommandKey() const {return cmd_key_;}
63 |
64 | virtual void Update(const ARCONTROLLER_DICTIONARY_ARG_t* arg, const ::ros::Time& t) = 0;
65 | };
66 |
67 | // This is not yet abstract
68 | class AbstractState : public AbstractCommand
69 | {
70 | protected:
71 | bool pub_enabled_;
72 | ::ros::Publisher ros_pub_;
73 |
74 | public:
75 | AbstractState(eARCONTROLLER_DICTIONARY_KEY cmd_key, const bool pub_enabled = false)
76 | : AbstractCommand(cmd_key), pub_enabled_(pub_enabled)
77 | {}
78 |
79 | virtual ~AbstractState()
80 | {}
81 | };
82 |
83 | class AbstractSetting: public AbstractCommand
84 | {
85 | protected:
86 | ros::NodeHandle priv_nh_;
87 |
88 | public:
89 | AbstractSetting(eARCONTROLLER_DICTIONARY_KEY cmd_key, ros::NodeHandle& priv_nh)
90 | : AbstractCommand(cmd_key), priv_nh_(priv_nh)
91 | {}
92 |
93 | virtual ~AbstractSetting()
94 | {}
95 |
96 | virtual void UpdateBebopFromROS(const BebopArdrone3Config &config, const ARCONTROLLER_Device_t* bebop_ctrl_ptr_) = 0;
97 |
98 | };
99 |
100 | } // namespace cb
101 | } // namespace bebop_driver
102 |
103 | #endif // BEBOP_COMMON_COMMANDS_H
--------------------------------------------------------------------------------
/bebop_driver/scripts/meta/templates/state_callbacks.h.mustache:
--------------------------------------------------------------------------------
1 | /**
2 | Software License Agreement (BSD)
3 |
4 | \file {{project}}_state_callbacks.h
5 | \authors Mani Monajjemi
6 | \copyright Copyright (c) 2015, Autonomy Lab (Simon Fraser University), All rights reserved.
7 |
8 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that
9 | the following conditions are met:
10 | * Redistributions of source code must retain the above copyright notice, this list of conditions and the
11 | following disclaimer.
12 | * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the
13 | following disclaimer in the documentation and/or other materials provided with the distribution.
14 | * Neither the name of Autonomy Lab nor the names of its contributors may be used to endorse or promote
15 | products derived from this software without specific prior written permission.
16 |
17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WAR-
18 | RANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19 | PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, IN-
20 | DIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
21 | OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 |
25 | * {{project}}_state_callbacks.h
26 | * auto-generated from {{url}}
27 | * Do not modify this file by hand. Check scripts/meta folder for generator files.
28 | */
29 |
30 | #ifndef BEBOP_AUTONOMY_AUTOGENERATED_{{project}}_STATE_CALLBACKS_H
31 | #define BEBOP_AUTONOMY_AUTOGENERATED_{{project}}_STATE_CALLBACKS_H
32 |
33 | extern "C"
34 | {
35 | #include "libARSAL/ARSAL.h"
36 | #include "libARController/ARController.h"
37 | }
38 |
39 | #include "bebop_driver/autogenerated/callbacks_common.h"
40 | #include "bebop_driver/BebopArdrone3Config.h"
41 |
42 | {{#cpp_class}}
43 | #include "bebop_msgs/{{cpp_class_msg_type}}.h"
44 | {{/cpp_class}}
45 |
46 | namespace bebop_driver
47 | {
48 | namespace cb
49 | {
50 |
51 | {{#cpp_class}}
52 |
53 | // {{cpp_class_comment}}
54 | class {{cpp_class_name}} : public AbstractState
55 | {
56 | private:
57 | ::bebop_msgs::{{cpp_class_msg_type}}::Ptr msg_ptr;
58 |
59 | public:
60 |
61 | {{cpp_class_name}}(::ros::NodeHandle& nh, ::ros::NodeHandle& priv_nh, const ::std::string& topic)
62 | : AbstractState({{key}})
63 | {
64 | if (priv_nh.getParam("{{cpp_class_param_name}}", pub_enabled_) && pub_enabled_)
65 | {
66 | ARSAL_PRINT(ARSAL_PRINT_INFO, "CB" , "[STATES] Enabling %s", topic.c_str());
67 | ros_pub_ = nh.advertise(topic, {{queue_size}}, {{latched}});
68 | } // pub_enabled_ is false
69 | }
70 |
71 | ::bebop_msgs::{{cpp_class_msg_type}}::ConstPtr GetDataCstPtr() const
72 | {
73 | ::boost::lock_guard lock(mutex_);
74 | return msg_ptr;
75 | }
76 |
77 | void Update(const ARCONTROLLER_DICTIONARY_ARG_t *arguments, const ::ros::Time& t)
78 | {
79 | if (arguments == NULL)
80 | {
81 | ARSAL_PRINT(ARSAL_PRINT_WARNING, "CB", "{{cpp_class_name}}::Update() arguments is NULL");
82 | return;
83 | }
84 |
85 | ::boost::lock_guard lock(mutex_);
86 | msg_ptr.reset(new ::bebop_msgs::{{cpp_class_msg_type}}());
87 | msg_ptr->header.stamp = t;
88 | msg_ptr->header.frame_id = "{{frame_id}}";
89 |
90 | {{#cpp_class_arg}}
91 |
92 | arg = NULL;
93 | HASH_FIND_STR (arguments, {{cpp_class_arg_key}}, arg);
94 | if (arg)
95 | {
96 | msg_ptr->{{cpp_class_arg_name}} = arg->value.{{cpp_class_arg_sdk_type}};
97 | }
98 | {{/cpp_class_arg}}
99 |
100 | if (pub_enabled_) ros_pub_.publish(msg_ptr);
101 | }
102 |
103 | }; // {{cpp_class_name}}
104 |
105 | {{/cpp_class}}
106 |
107 | } // namespace cb
108 | } // namespace bebop_driver
109 | #endif // BEBOP_AUTONOMY_AUTOGENERATED_{{project}}_STATE_CALLBACKS_H
--------------------------------------------------------------------------------
/bebop_driver/include/bebop_driver/bebop_video_decoder.h:
--------------------------------------------------------------------------------
1 | /**
2 | Software License Agreement (BSD)
3 |
4 | \file bebop_video_decoder.h
5 | \authors Mani Monajjemi
6 | \copyright Copyright (c) 2015, Autonomy Lab (Simon Fraser University), All rights reserved.
7 |
8 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that
9 | the following conditions are met:
10 | * Redistributions of source code must retain the above copyright notice, this list of conditions and the
11 | following disclaimer.
12 | * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the
13 | following disclaimer in the documentation and/or other materials provided with the distribution.
14 | * Neither the name of Autonomy Lab nor the names of its contributors may be used to endorse or promote
15 | products derived from this software without specific prior written permission.
16 |
17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WAR-
18 | RANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19 | PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, IN-
20 | DIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
21 | OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 | */
25 | #ifndef BEBOP_AUTONOMY_BEBOP_VIDEO_DECODER_H
26 | #define BEBOP_AUTONOMY_BEBOP_VIDEO_DECODER_H
27 |
28 | extern "C"
29 | {
30 | #include "libARController/ARCONTROLLER_Error.h"
31 | #include "libARController/ARCONTROLLER_Frame.h"
32 | #include
33 | #include
34 | #include
35 | #include
36 | }
37 |
38 | #include
39 | #include
40 |
41 | // https://github.com/libav/libav/commit/104e10fb426f903ba9157fdbfe30292d0e4c3d72
42 | // https://github.com/libav/libav/blob/33d18982fa03feb061c8f744a4f0a9175c1f63ab/doc/APIchanges#L697
43 | #if (LIBAVCODEC_VERSION_INT < AV_VERSION_INT(54, 25, 0))
44 | #define AV_CODEC_ID_H264 CODEC_ID_H264
45 | #endif
46 |
47 | // https://github.com/libav/libav/blob/33d18982fa03feb061c8f744a4f0a9175c1f63ab/doc/APIchanges#L653
48 | #if (LIBAVCODEC_VERSION_INT < AV_VERSION_INT(51, 42, 0))
49 | #define AV_PIX_FMT_YUV420P PIX_FMT_YUV420P
50 | #endif
51 |
52 | #if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(55,28,1)
53 | #define av_frame_alloc avcodec_alloc_frame
54 | #define av_frame_free avcodec_free_frame
55 | #endif
56 |
57 | namespace bebop_driver
58 | {
59 |
60 | class VideoDecoder
61 | {
62 | private:
63 | static const char* LOG_TAG;
64 |
65 | bool codec_initialized_;
66 | bool first_iframe_recv_;
67 | AVFormatContext* format_ctx_ptr_;
68 | AVCodecContext* codec_ctx_ptr_;
69 | AVCodec* codec_ptr_;
70 | AVFrame* frame_ptr_;
71 | AVFrame* frame_rgb_ptr_;
72 | AVPacket packet_;
73 | SwsContext* img_convert_ctx_ptr_;
74 | AVInputFormat* input_format_ptr_;
75 | uint8_t *frame_rgb_raw_ptr_;
76 |
77 | bool update_codec_params_;
78 | std::vector codec_data_;
79 |
80 | static void ThrowOnCondition(const bool cond, const std::string& message);
81 | bool InitCodec();
82 | bool ReallocateBuffers();
83 | void CleanupBuffers();
84 | void Reset();
85 |
86 | void ConvertFrameToRGB();
87 |
88 | public:
89 | VideoDecoder();
90 | ~VideoDecoder();
91 |
92 | bool SetH264Params(uint8_t* sps_buffer_ptr, uint32_t sps_buffer_size,
93 | uint8_t* pps_buffer_ptr, uint32_t pps_buffer_size);
94 | bool Decode(const ARCONTROLLER_Frame_t* bebop_frame_ptr_);
95 | inline uint32_t GetFrameWidth() const {return codec_initialized_ ? codec_ctx_ptr_->width : 0;}
96 | inline uint32_t GetFrameHeight() const {return codec_initialized_ ? codec_ctx_ptr_->height : 0;}
97 |
98 | inline const uint8_t* GetFrameRGBRawCstPtr() const {return frame_rgb_raw_ptr_;}
99 | };
100 |
101 | } // namespace bebop_driver
102 |
103 | #endif // BEBOP_AUTONOMY_BEBOP_VIDEO_DECODER_H
104 |
--------------------------------------------------------------------------------
/bebop_driver/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 2.8.3)
2 | project(bebop_driver)
3 |
4 | ## Enable hardware (Bebop In The Loop Tests)
5 | option(RUN_HARDWARE_TESTS "Enable hardware (Bebop In The Loop Tests" OFF)
6 |
7 | find_package(catkin REQUIRED COMPONENTS
8 | parrot_arsdk
9 | bebop_msgs
10 | nodelet
11 | camera_info_manager
12 | image_transport
13 | nav_msgs
14 | roscpp
15 | std_msgs
16 | tf2
17 | tf2_ros
18 | tf2_geometry_msgs
19 | dynamic_reconfigure
20 | roslint
21 | )
22 |
23 | message(STATUS "Catkin INCLUE_DIR: ${catkin_INCLUDE_DIRS}")
24 | message(STATUS "Catkin LIBS: ${catkin_LIBRARIES}")
25 | message(STATUS "ARSDK3 INCLUDE_DIR: ${ARSDK_INCLUDE_DIR}")
26 | message(STATUS "ARSDK3 LIB_DIR: ${ARSDK_LIB_DIR}")
27 | message(STATUS "ARSDK3 LIBS: ${ARSDK_LIBS}")
28 |
29 | generate_dynamic_reconfigure_options(
30 | cfg/autogenerated/BebopArdrone3.cfg
31 | )
32 |
33 | # Video decoding dependencies (libbebop)
34 | find_package(PkgConfig REQUIRED)
35 | pkg_check_modules(AVCODEC REQUIRED libavcodec)
36 | pkg_check_modules(AVFORMAT REQUIRED libavformat)
37 | pkg_check_modules(SWSCALE REQUIRED libswscale)
38 |
39 | # TODO: Should we state all catkin depends?
40 | catkin_package(
41 | INCLUDE_DIRS include
42 | LIBRARIES libbebop bebop_driver_nodelet
43 | CATKIN_DEPENDS parrot_arsdk bebop_msgs bebop_description roscpp nodelet camera_info_manager image_transport nav_msgs std_msgs tf2 tf2_ros tf2_geometry_msgs dynamic_reconfigure
44 | DEPENDS system_lib libavcodec libavformat libswscale
45 | )
46 |
47 | # roslint
48 | set(ROSLINT_CPP_OPTS "--filter=-build/include")
49 | roslint_cpp(
50 | src/bebop.cpp
51 | src/bebop_driver_node.cpp
52 | src/bebop_driver_nodelet.cpp
53 | src/bebop_video_decoder.cpp
54 | include/bebop_driver/bebop.h
55 | include/bebop_driver/bebop_driver_nodelet.h
56 | include/bebop_driver/bebop_video_decoder.h
57 | )
58 |
59 | ###########
60 | ## Build ##
61 | ###########
62 |
63 | include_directories(
64 | ${catkin_INCLUDE_DIRS}
65 | ${ARSDK_INCLUDE_DIR}
66 | include
67 | ${AVCODEC_INCLUDE_DIRS}
68 | ${AVFORMAT_INCLUDE_DIRS}
69 | ${SWSCALE_INCLUDE_DIRS}
70 | )
71 |
72 | link_directories(${ARDRONESDK3_PATH}/lib
73 | ${ARSDK_LIB_DIR}
74 | ${AVCODEC_LIBRARY_DIRS}
75 | ${AVFORMAT_LIBRARY_DIRS}
76 | ${SWSCALE_LIBRARY_DIRS}
77 | )
78 |
79 | add_library(bebop src/bebop.cpp src/bebop_video_decoder.cpp)
80 | target_link_libraries(bebop
81 | ${catkin_LIBRARIES}
82 | ${ARSDK_LIBS}
83 | ${AVCODEC_LIBRARIES}
84 | ${AVFORMAT_LIBRARIES}
85 | ${SWSCALE_LIBRARIES}
86 | )
87 |
88 | add_dependencies(bebop ${PROJECT_NAME}_gencfg)
89 |
90 | add_library(bebop_driver_nodelet src/bebop_driver_nodelet.cpp)
91 | target_link_libraries(bebop_driver_nodelet
92 | ${catkin_LIBRARIES}
93 | bebop
94 | )
95 |
96 | add_executable(bebop_driver_node src/bebop_driver_node.cpp)
97 | target_link_libraries(bebop_driver_node
98 | ${catkin_LIBRARIES}
99 | bebop
100 | )
101 |
102 | #############
103 | ## Install ##
104 | #############
105 |
106 | # all install targets should use catkin DESTINATION variables
107 | # See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html
108 |
109 | ## Mark executable scripts (Python etc.) for installation
110 | ## in contrast to setup.py, you can choose the destination
111 | # install(PROGRAMS
112 | # scripts/my_python_script
113 | # DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
114 | # )
115 |
116 | ## Mark executables and/or libraries for installation
117 | # install(TARGETS bebop_autonomy bebop_autonomy_node
118 | # ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
119 | # LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
120 | # RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
121 | # )
122 |
123 | ## Mark cpp header files for installation
124 | # install(DIRECTORY include/${PROJECT_NAME}/
125 | # DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
126 | # FILES_MATCHING PATTERN "*.h"
127 | # PATTERN ".svn" EXCLUDE
128 | # )
129 |
130 | ## Mark other files for installation (e.g. launch and bag files, etc.)
131 | # install(FILES
132 | # # myfile1
133 | # # myfile2
134 | # DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
135 | # )
136 |
137 | #############
138 | ## Testing ##
139 | #############
140 |
141 | if(CATKIN_ENABLE_TESTING AND RUN_HARDWARE_TESTS)
142 | find_package(rostest REQUIRED)
143 | add_rostest_gtest(bebop_itl_test test/bebop_itl_test.test test/bebop_itl_test.cpp)
144 | target_link_libraries(bebop_itl_test ${catkin_LIBRARIES})
145 | endif()
146 |
--------------------------------------------------------------------------------
/docs/dev.rst:
--------------------------------------------------------------------------------
1 | **************
2 | Under The Hood
3 | **************
4 |
5 | This page contains information about the architecture of the driver and different techniques used for its development.
6 |
7 | Automatic Code Generation
8 | =========================
9 |
10 | TBA
11 |
12 | Threading Model
13 | ===============
14 |
15 | TBA
16 |
17 | Publishing the States
18 | =====================
19 |
20 | TBA
21 |
22 | .. _sec-dev-dyn:
23 |
24 | Configuring the Drone
25 | =====================
26 |
27 | TBA
28 |
29 | .. _sec-dev-test:
30 |
31 | Tests
32 | =====
33 |
34 | Enabling Bebop In The Loop Tests
35 | --------------------------------
36 |
37 | .. code-block:: bash
38 |
39 | $ cd /path/to/bebop_ws
40 | $ catkin clean --cmake-cache
41 | $ catkin build bebop_driver --cmake-args -DRUN_HARDWARE_TESTS=ON
42 |
43 | Running Bebop In The Loop Tests
44 | -------------------------------
45 |
46 | .. 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.
47 |
48 | .. code-block:: bash
49 |
50 | $ cd /path/to/bebop_ws/build/bebop_driver
51 | $ make tests
52 | $ rostest --text bebop_driver bebop_itl_test.test
53 |
54 | Upgrading the Bebop SDK
55 | =======================
56 |
57 | .. 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**.
58 |
59 | 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 `_.
60 | 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: ````.
61 | 3. Open ``bebop_driver/scripts/meta/generate.py`` and update ``LIBARCOMMANDS_GIT_HASH`` variable to the hash obtained in step (2).
62 | 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.
63 | 5. Copy the generated files to their target locations by calling ``./install.sh``.
64 | 6. In ``bebop_driver/include/bebop_driver/autogenerated/ardrone3_setting_callbacks.h`` change the following varialbles:
65 |
66 | - ``ARCONTROLLER_DICTIONARY_KEY_ARDRONE3_PILOTINGSETTINGSSTATE_MAXDISTANCECHANGED_VALUE`` to ``ARCONTROLLER_DICTIONARY_KEY_ARDRONE3_PILOTINGSETTINGSSTATE_MAXDISTANCECHANGED_CURRENT``.
67 | - ``ARCONTROLLER_DICTIONARY_KEY_ARDRONE3_PILOTINGSETTINGSSTATE_BANKEDTURNCHANGED_VALUE`` to ``ARCONTROLLER_DICTIONARY_KEY_ARDRONE3_PILOTINGSETTINGSSTATE_BANKEDTURNCHANGED_STATE``
68 | - ``ARCONTROLLER_DICTIONARY_KEY_ARDRONE3_PILOTINGSETTINGSSTATE_CIRCLINGRADIUSCHANGED_VALUE`` to ``ARCONTROLLER_DICTIONARY_KEY_ARDRONE3_PILOTINGSETTINGSSTATE_CIRCLINGRADIUSCHANGED_CURRENT``
69 | - ``ARCONTROLLER_DICTIONARY_KEY_ARDRONE3_PILOTINGSETTINGSSTATE_CIRCLINGALTITUDECHANGED_VALUE`` to ``ARCONTROLLER_DICTIONARY_KEY_ARDRONE3_PILOTINGSETTINGSSTATE_CIRCLINGALTITUDECHANGED_CURRENT``
70 |
71 | In ``bebop_driver/include/bebop_driver/autogenerated/ardrone3_state_callbacks.h`` remove the following lines:
72 |
73 | ``arg = NULL;
74 | HASH_FIND_STR (arguments, ARCONTROLLER_DICTIONARY_KEY_ARDRONE3_ACCESSORYSTATE_CONNECTEDACCESSORIES_LIST_FLAGS, arg);
75 | if (arg)
76 | {
77 | msg_ptr->list_flags = arg->value.U8;
78 | }``
79 |
80 | In ``bebop_msgs/msg/autogenerated/Ardrone3AccessoryStateConnectedAccessories.msg`` remove the following lines:
81 | ``# List entry attribute Bitfield. 0x01: First: indicate its the first element of the list. 0x02: Last: indicate its the last element of the list. 0x04: Empty: indicate the list is empty (implies First/Last). All other arguments should be ignored. 0x08: Remove: This value should be removed from the existing list.
82 | uint8 list_flags``
83 |
84 | These changes are required because the upstream XML file is inconsistent for a couple of variable names.
85 |
86 | 7. Remove ``build`` and ``devel`` space of your ``catkin`` workspace, then re-build it.
87 |
--------------------------------------------------------------------------------
/bebop_driver/scripts/meta/templates/setting_callbacks.h.mustache:
--------------------------------------------------------------------------------
1 | /**
2 | Software License Agreement (BSD)
3 |
4 | \file {{project}}_setting_callbacks.h
5 | \authors Mani Monajjemi
6 | \copyright Copyright (c) 2015, Autonomy Lab (Simon Fraser University), All rights reserved.
7 |
8 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that
9 | the following conditions are met:
10 | * Redistributions of source code must retain the above copyright notice, this list of conditions and the
11 | following disclaimer.
12 | * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the
13 | following disclaimer in the documentation and/or other materials provided with the distribution.
14 | * Neither the name of Autonomy Lab nor the names of its contributors may be used to endorse or promote
15 | products derived from this software without specific prior written permission.
16 |
17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WAR-
18 | RANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19 | PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, IN-
20 | DIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
21 | OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 |
25 | * {{project}}_setting_callbacks.h
26 | * auto-generated from {{url}}
27 | * Do not modify this file by hand. Check scripts/meta folder for generator files.
28 | */
29 | #ifndef BEBOP_AUTONOMY_AUTOGENERATED_{{project}}_SETTING_CALLBACKS_H
30 | #define BEBOP_AUTONOMY_AUTOGENERATED_{{project}}_SETTING_CALLBACKS_H
31 |
32 | extern "C"
33 | {
34 | #include "libARSAL/ARSAL.h"
35 | #include "libARController/ARController.h"
36 | }
37 |
38 | #include "bebop_driver/autogenerated/callbacks_common.h"
39 | #include "bebop_driver/BebopArdrone3Config.h"
40 |
41 | namespace bebop_driver
42 | {
43 | namespace cb
44 | {
45 | {{#cpp_class}}
46 |
47 | class {{cpp_class_name}} : public AbstractSetting
48 | {
49 | private:
50 | {{#cpp_class_params}}
51 | {{cpp_class_param_type}} {{cpp_class_param_name}}_bebop_value_;
52 | bool {{cpp_class_param_name}}_bebop_sent_;
53 | {{/cpp_class_params}}
54 |
55 | public:
56 | explicit {{cpp_class_name}}(ros::NodeHandle& priv_nh)
57 | : AbstractSetting({{cpp_class_dict_key}}, priv_nh)
58 | {{#cpp_class_params}}
59 | , {{cpp_class_param_name}}_bebop_sent_(false)
60 | {{/cpp_class_params}}
61 | {}
62 |
63 | // Runs in Nodelet's main thread's context (Dynamic Reconfigure Update Callback)
64 | void UpdateBebopFromROS(const BebopArdrone3Config &config, const ARCONTROLLER_Device_t* bebop_ctrl_ptr_)
65 | {
66 | ::boost::lock_guard lock(mutex_);
67 | bool changed = false;
68 | bool all_inited = true;
69 |
70 | {{#cpp_class_params}}
71 | // This will likely fail for float or double values
72 | if ((config.{{cpp_class_param_name}} != {{cpp_class_param_name}}_bebop_value_))
73 | {
74 | ARSAL_PRINT(ARSAL_PRINT_INFO, "CB",
75 | "{{cpp_class_param_name}} changed!");
76 | changed = true;
77 | }
78 | all_inited &= {{cpp_class_param_name}}_bebop_sent_;
79 |
80 | {{/cpp_class_params}}
81 | if (changed && !all_inited)
82 | {
83 | ARSAL_PRINT(ARSAL_PRINT_ERROR, "CB",
84 | "Value of {{cpp_class_name}} was not initialized either by Bebop or Params.");
85 | }
86 |
87 | if (changed && all_inited)
88 | {
89 | ARSAL_PRINT(ARSAL_PRINT_INFO, "CB",
90 | "Sending {{cpp_class_name}} changes to bebop");
91 |
92 | bebop_ctrl_ptr_->aRDrone3->send{{cpp_class_name}}(bebop_ctrl_ptr_->aRDrone3
93 | {{#cpp_class_params}}
94 | , {{{cpp_class_param_enum_cast}}}(config.{{cpp_class_param_name}})
95 | {{/cpp_class_params}}
96 | );
97 | }
98 | }
99 |
100 | // Runs in SDK's CommandReceivedCallback's context
101 | void Update(const ARCONTROLLER_DICTIONARY_ARG_t *arguments, const ::ros::Time& t)
102 | {
103 | if (arguments == NULL)
104 | {
105 | ARSAL_PRINT(ARSAL_PRINT_WARNING, "CB",
106 | "{{cpp_class_name}}::Update() arguments is NULL");
107 | return;
108 | }
109 |
110 | ::boost::lock_guard lock(mutex_);
111 | {{#cpp_class_params}}
112 |
113 | arg = NULL;
114 | HASH_FIND_STR (arguments, {{cpp_class_arg_key}}, arg);
115 | if (arg)
116 | {
117 | {{cpp_class_param_name}}_bebop_sent_ = true;
118 | ROS_INFO_STREAM("Value for {{cpp_class_param_name}} recved: " << static_cast<{{cpp_class_param_type}}>(arg->value.{{cpp_class_param_sdk_type}}));
119 | {{cpp_class_param_name}}_bebop_value_ = static_cast<{{cpp_class_param_type}}>(arg->value.{{cpp_class_param_sdk_type}});
120 |
121 | ARSAL_PRINT(ARSAL_PRINT_INFO, "CB", "Checking if {{cpp_class_param_name}} exists in params ...");
122 | if (!priv_nh_.hasParam("{{cpp_class_param_name}}"))
123 | {
124 | ARSAL_PRINT(ARSAL_PRINT_INFO, "CB", " No");
125 | priv_nh_.setParam("{{cpp_class_param_name}}", static_cast<{{cpp_class_param_type}}>(arg->value.{{cpp_class_param_sdk_type}}));
126 | }
127 | else
128 | {
129 | ARSAL_PRINT(ARSAL_PRINT_INFO, "CB", " Yes");
130 | //ROS_INFO_STREAM("New value for ros interanal variable: " << {{cpp_class_param_name}}_rosparam_value_);
131 | }
132 | }
133 | {{/cpp_class_params}}
134 | }
135 | }; // {{cpp_class_name}}
136 | {{/cpp_class}}
137 |
138 | } // namespace cb
139 | } // namespace bebop_driver
140 | #endif // BEBOP_AUTONOMY_AUTOGENERATED_{{project}}_SETTING_CALLBACKS_H
--------------------------------------------------------------------------------
/bebop_driver/include/bebop_driver/bebop.h:
--------------------------------------------------------------------------------
1 | /**
2 | Software License Agreement (BSD)
3 |
4 | \file bebop.h
5 | \authors Mani Monajjemi
6 | \copyright Copyright (c) 2015, Autonomy Lab (Simon Fraser University), All rights reserved.
7 |
8 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that
9 | the following conditions are met:
10 | * Redistributions of source code must retain the above copyright notice, this list of conditions and the
11 | following disclaimer.
12 | * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the
13 | following disclaimer in the documentation and/or other materials provided with the distribution.
14 | * Neither the name of Autonomy Lab nor the names of its contributors may be used to endorse or promote
15 | products derived from this software without specific prior written permission.
16 |
17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WAR-
18 | RANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19 | PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, IN-
20 | DIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
21 | OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 | */
25 | #ifndef BEBOP_AUTONOMY_BEBOP_H
26 | #define BEBOP_AUTONOMY_BEBOP_H
27 |
28 | #define BEBOP_ERR_STR_SZ 150
29 |
30 | #include
31 | #include
32 |
33 | #include
34 | #include
35 | #include
36 | #include