Repository Summary
Checkout URI | https://github.com/dronesinma/ucl_drone_2016.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2017-09-22 |
Dev Status | UNMAINTAINED |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
ucl_drone | 0.0.1 |
ucl_drone_gui | 0.0.0 |
README
UCL_DRONE_2016
This repository contains the code related to the two master theses conducted at INMA (UCL) in 2016 using Parrot AR.Drone 2.0.
Please contact drones-inma (AT) uclouvain (DOT) be
for more information.
Please read CONTRIBUTING.md
to respect code conventions.
Workspace initialisation
Follow these instructions to set up a development ROS workspace containing this repository.
- (Install ROS)
- Go into the folder where you want to copy this repository.
- Clone (
git clone
). - Follow official ROS workspace initialisation (see ROS Wiki)
- Add the folder path into your
.bashrc
Open
$ nano ~/.bashrc
Add this line at the end of the file
source <path to your ROS workspace>/devel/setup.bash
Required packages and libraries
-
ardrone_autonomy
, if not present in your ROS installation, clone it into<path to your ROS workspace>/src
- OpenCV 2.4.* is required with non-free modules
- PCL (PointCloudLibrary)
Build
This package use catkin, type the following command in your terminal at your ROS workspace root:
catkin_make
Edit CMakeLists.txt
in packages folder if you want to create new ROS nodes or add some dependencies.
Folders structure
In ucl_drone
package:
-
drone_preparation/Appareillage
Containsautoconfarparrot
to reconfigure AR.Drone for multi-drone missions. (seeREADME
in this folder) -
doc/
Documentationrosdoc
(see below). -
include/ucl_drone/
Contains C++ header files. -
launch/
Contains all.launch
files (seeREADME
in this folder). -
msg/
Contains ROS messages definitions. -
src/
Contains ROS nodes.-
controller/
This node sends Takeoff/Land and velocities commands. This is a simple pose (position+orientation) controller (in the world coordinates).
-
computer_vision/
This node performs keypoints extraction from the video stream and target detection.
-
map/
This node builds a map containing observed keypoints and performs pose estimation based on visual keypoints. (see SLAM)
-
path_planning/
This node sends successive pose to the controller according to the instructions from the
strategy
node. -
pose_estimation/
This node performs a simple sensor fusion for pose estimation.
-
strategy/
This node determines successive operation and drives the drone to the mission objectives.
-
multi_strategy/
This node gives a role to each drone before the beginning of the mission.
-
-
srv/
Contains ROS services defintions. -
target/
Contains target pictures. -
CmakeLists.txt
Contains instructions to build nodes with catkin. -
package.xml
Package information.
Quick start
With only one drone and without router
File truncated at 100 lines see the full file
CONTRIBUTING
UCL_DRONE CONTRIBUTING
Please read the two reports of master students graduated in 2016.
Please follow the ROS guidelines:
- http://wiki.ros.org/QAProcess
- http://wiki.ros.org/CppStyleGuide
- http://wiki.ros.org/ROSNodeTutorialC%2B%2B
- https://github.com/davetcoleman/roscpp_code_format
Please document your code and respect the Doxygen syntax:
- http://wiki.ros.org/rosdoc_lite
- http://www.stack.nl/~dimitri/doxygen/manual/docblocks.html
- https://www.stack.nl/~dimitri/doxygen/manual/commands.html
The code contains some TODO tags. These highlight some ideas of new features that can help the future contributors. Here is a summary:
- Parameters:
- More parameters need to be tunable from the launch file to avoid compilation delay during the test phases
- Some of these parameters would be tunable during the runtime using the ROS server to ease development
- Here some examples:
- target’s path (also add a selection menu in the
ucl_drone_gui
) - keypoint detection and description
- thresholds to detect the target
- thresholds in the mapping node
- target’s path (also add a selection menu in the