wangjw55 / QLAB

Quadrotor LAnding Benchmarking (QLAB) is a simulated environment for developing and testing landing algorithms for unmanned aerial vehicles.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

QLab

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 (http://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.

Packages Description

  • 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.

Environment

  • Operating System
  • 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.

Download and Setup

1 - Install ROS

Install ros full desktop following the installation instructions on the official ros website: www.ros.org (tested on indigo, jade and kinetic)

2 - Create a catkin workspace

If you don't have it already, create a catkin workspace folder (for more informations look at this link: http://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

3 - Clone the git repository

Clone the git repository inside your catkin workspace src directory:

$ cd <your_catkin_ws_directory>/src
$ git clone https://github.com/pulver22/qlab.git

4 - Install the dependencies missing (ardrone_autonomy) package

Move to the root of the repository first and then invoke rosdep:

$ cd ..
$ rosdep install --from-paths src --ignore-src -r -y

Compile

1 - Compile the ros package with catkin

In order to compile the packages just run the following commands:

$ cd <your_catkin_ws_directory>
$ catkin_make

Run

1 - Running the simulation with the ardrone only

To launch the simulation with only the ardrone model using roslaunch:

$ roslaunch qlab_gazebo qlab.launch

2 - Running the simulation also with the DRL node

To launch the simulation with both the ardrone and the husky model using roslaunch:

$ roslaunch deep_reinforced_landing drl.launch

Notes

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

Issues

All kind of issues and contributions will be very welcome. Please get in touch on our issues page when help is needed!

About

Quadrotor LAnding Benchmarking (QLAB) is a simulated environment for developing and testing landing algorithms for unmanned aerial vehicles.


Languages

Language:Python 63.9%Language:C++ 31.4%Language:CMake 4.7%Language:EmberScript 0.0%