Quadrotor LAnding Benchmarking (QLAB) is a simulated environment for developing and testing landing algorithms for unmanned aerial vehicles. It based on the dedicated gazebo simulator written by Hongrong Huang and Juergen Sturm of the Computer Vision Group at the Technical University of Munich (https://wiki.ros.org/tum_simulator).
The main contribution of this repository can be listed as follows:
- Compatibility with the latest version of ROS and Gazebo.
- ROS services offering methods widely used when implementing a reinforcement algorithm (e.g., reset, get_reward, get_done...)
- A dataset comprising 91 ground textures that can be used to validate and compare different algorithms under different situations.
- deep_reinforced_landing: Contains the method calls for implementing a reinforcement learning algorithm.
- qlab: Contains the gazebo world files, the ardrone model with the plugins and the simulation launch files.
- Operating System
- Ubuntu 14.04 - or newer
- Middleware
- ROS - depending on the installed OS (Indigo, Jade or Kinetic)
- Other Dependencies
- GAZEBO - It needs GAZEBO 7 (5 can suit too but it has not been tested)
At any time you might need to install some more specific dependencies (like some missing ROS packages). Please open an issue in case you can't solve these or other dependencies.
Install ros full desktop following the installation instructions on the official ros website: www.ros.org (tested on indigo, jade and kinetic)
If you don't have it already, create a catkin workspace folder (for more informations look at this link: https://wiki.ros.org/ROS/Tutorials/InstallingandConfiguringROSEnvironment):
$ mkdir qlab_ws
Create a folder named src inside it:
$ cd qlab_ws
$ mkdir src
Run catkin_init_workspace inside the src directory:
$ cd src
$ catkin_init_workspace
Now source your new setup.bash file inside your .bashrc:
$ echo "source <your_catkin_ws_directory>/devel/setup.bash" >> ~/.bashrc
$ source ~/.bashrc
Clone the git repository inside your catkin workspace src directory:
$ cd <your_catkin_ws_directory>/src
$ git clone https://github.com/pulver22/qlab.git
Move to the root of the repository first and then invoke rosdep:
$ cd ..
$ rosdep install --from-paths src --ignore-src -r -y
In order to compile the packages just run the following commands:
$ cd <your_catkin_ws_directory>
$ catkin_make
To launch the simulation with only the ardrone model using roslaunch:
$ roslaunch qlab_gazebo qlab.launch
To launch the simulation with both the ardrone and the husky model using roslaunch:
$ roslaunch deep_reinforced_landing drl.launch
1 - In order to simplify the tuning of the simulator without the need of recompile it every time, a dedicated launch file is offered. It lists various parameters that can be easily changed before launching the environment. The launch file is located at the following path:
$ ~/qlab_ws/src/qlab/deep_reinforced_landing/launch/drl.launch
2 - To change or remove the drift affecting the UAV's movements, please modify the following entries (expressed in m/s)
<motionSmallNoise>0.0</motionSmallNoise>
<motionDriftNoise>0.0</motionDriftNoise>
<motionDriftNoiseTime>0.0</motionDriftNoiseTime>
located in the following xacro file:
$ ~/qlab_ws/src/qlab/qlab/cvg_sim_gazebo_plugins/urdf/quadrotor_simple_controller.urdf.xacro
All kind of issues and contributions will be very welcome. Please get in touch on our issues page when help is needed!