[ROS Projects] – Performing LSD-SLAM with a ROS based Parrot AR. Drone

[ROS Projects] – Performing LSD-SLAM with a ROS based Parrot AR. Drone

 

 

Drones market is growing more and more each year, and so does the need of improving the way we control them. One of the most important topics here is, of course, how to navigate drones. In this series of videos we are going to have a look at how to implement in ROS one of the approaches that can allow us to perform Localization and Mapping in drones in a quite easy way: LSD-SLAM. LSD-SLAM is a direct monocular SLAM technique, developed by TUM, which allows to localize and create maps with drones with just a 3D camera. Hope you enjoy it!

You will learn step by step through 4 video tutorials:

[irp posts=”6638″ name=”ROS Q&A | How to Start Programming Drones using ROS”]

Part 1 – Setup the whole environment

How to perform LSD-SLAM with a ROS based Parrot AR.Drone with a Gazebo simulation. In this 1st video, you’re going to

  • Learn the definition of LSD SLAM (Large-Scale Direct Monocular SLAM)
  • Install LSD-SLAM packages and compile them
  • Setup the whole environment in order to have all the packages we need for performing LSD-SLAM with a Parrot AR.Drone.

 

Step 1. Create the project in ROS Development Studio(RDS)

You can simply build the project in RDS without any configuration in the local machine. If you haven’t had an account yet, please register here.

Step 2. Download  and compile the simulation environment

Let’s clone the drone simulation under the simulation_ws, you can find shell from Tools->shell

$ cd ~/simulation_ws/src
$ git clone https://bitbucket.org/theconstructcore/tum_ardrone_sim

Now we have to compile the package before using it.

Since the package is for ROS-indigo, we have to configure something first. Please replace the following part in the file ~/simulation_ws/src/tum_ardrone_sim/tum_ardrone/src/UINode/RosThread.h

...
#define __ROSTHREAD_H
 
#ifndef Q_MOC_RUN

#include "cvd/thread.h"
#include "tum_ardrone/filter_state.h"
#include "std_msgs/String.h"
#include "geometry_msgs/Twist.h"
#include "ardrone_autonomy/Navdata.h"
#include "ros/ros.h"
#include "sensor_msgs/Joy.h"
#include "std_srvs/Empty.h"
#include "std_msgs/Empty.h"

#endif

class tum_ardrone_gui;
...

Then compile it! (Notice: it may take a while, go get a coffee)

$ cd ~/simulation_ws
$ rosdep install tum_ardrone
$ catkine_make
$ source devel/setup.bash

 

 

 

 

 

Contents and links mentioned in the video:

Definition of LSD-SLAM (Large-Scale Direct Monocular SLAM): https://vision.in.tum.de/research/vslam/lsdslam

TUM ARDrone simulation: https://bitbucket.org/theconstructcore/tum_ardrone_sim

LSD-SLAM repository: https://github.com/tum-vision/lsd_slam

RDS – ROS Development Studio: https://www.theconstruct.ai/rds-ros-development-studio/

Course mentioned in the video: Programming Drones with ROS https://wp.me/P9Rthq-20N


Part 2 – Solve compilation errors & Launch the nodes for performing LSD SLAM

In this 2nd video of the series, we are going to solve some compilation errors we got in the previous video, and we are trying to launch the nodes for performing LSD SLAM.

[irp posts=”8584″ name=”How to launch two drones on a Single Gazebo Simulation”]


Part 3 – Launch the LSD-SLAM ROS node in an Hector Quadrotor simulation

In this 3rd video of the series, we are successfully achieve to launch the LSD-SLAM ROS node in an Hector Quadrotor simulation.


Part 4 – Perform LSD-SLAM in an small village environment

In this 4th video of the series, we have successfully achieved to launch the LSD-SLAM ROS nodes in an Hector Quadrotor simulation, and we perform some LSD-SLAM in an small village environment.

 

***


programming-drone-with-ros-course-banner

Pin It on Pinterest