The aim of this project is to implement Simultaneous Localization and Mapping (SLAM) with Quadcopter in indoor environments. Before starting connecting parts and coding, we needed a simulation environment to observe the dynamics of the Quadcopter and the data flow from laser range finder unit. There are various tutorials and examples about this subject. Most of these works are implemented on ROS(Robot Operating System) environment using Gazebo or Rviz.
Robot Operating System (ROS) is a software framework for robot software development. The most stable version of ROS is implemented on Ubuntu operating system. First, we need to setup an Ubuntu system on our personal computers. Then, we will install ROS on Ubuntu. For simulating and visualizing the system, we need to use Gazebo. Gazebo is a multi-robot simulator for indoor or outdoor environments. It is capable of simulating a population of robots, sensors and objects, but does so in a three-dimensional world. It generates both realistic sensor feedback and physically plausible interactions between objects.
By using Gazebo models or ROS packages such as hector_quadrotor, we will create a Quadcopter. hector_quadrotor contains packages related to modeling, control and simulation of quadrotor UAV systems. Figure – 1 shows us a Quadcopter model created by using hector_quadrotor package.
Figure – 1 Quadcopter model created via hector_quadrotor package.
There is also a ROS package named as hector_quadrotor_demo that includes Quadrotor indoor SLAM demo. This package depends on hector_quadrotor and other packages such as hector_quadrotor_apps, hector_slam, hector_gazebo, hector_models and hector_common. This demo package also uses Hokuyo Laser Range Finder that we are also thinking to use. Rviz is used to observe the 2D SLAM that has been realized. Figure – 2 shows the SLAM procedure with hector_quadrotor_demo package.
Figure – 2 hector_quadrotor_demo indoor SLAM results.