[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:
- Part 1: Setup the whole environment
- Part 2: Solve compilation errors & Launch the nodes for performing LSD SLAM
- Part 3: Launch the LSD-SLAM ROS node in an Hector Quadrotor simulation
- Part 4: Perform LSD-SLAM in an small village environment
[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.
***