Introduction:
This project aims at building a Quadrotor test bed for trying out autonomous algorithms. The quadrotor is a fairly complex machine which can serve as a useful tool to test out new algorithms for your research. I intend to test localization and mapping algorithms on this test bed.
Localization:
For mobile devices, the ability to navigate the environment is crucial. To navigate a complex environment with unknown obstacles, it becomes paramount to know where the robot is located. This need to know where the robot location is a highly complex subject which can be solved through a variety of algorithms. The goal for the robot can only be achieved if the localization system helps the system navigate without crashing into unknown territory.
Hardware used:
Scanse Sweep Lidar: https://www.sparkfun.com/products/14117
Software used:
ROS on beaglebone blue
Point CLoud library
Ardupilot : https://github.com/mirkix/ardupilotblue
Approach:
The aim of this project is to implement certain open source ROS algorithms on the test bed. The test bed itself can be assembled using the components. I intend to work on ICP and particle filters on the Quadrotor. The beaglebone blue would be used to run the Ardupilot on it providing motion commands to the rover. I intend to install ROS indigo on the platform so as to simultaneously work on the Ardupilot and ROS. The scans or the pointcloud data would be generated by the Scanse sweep module which have the necessary ROS drivers https://github.com/scanse/sweep-ros.
Iterative closest point (ICP) is an algorithm employed to minimize the difference between two clouds of points. ICP is often used to reconstruct 2D or 3D surfaces from different scans, to localize robots and achieve optimal path planning.
The experiments that I need to conduct is basically ICP scan matching and registering. I am trying to get the pose of the vehicle using the scan registering process. The pose can help me get the correct position of the vehicle in the unknown environment. To implement the scan matching, I would be using the Point cloud library. Point cloud library is an easy interface for implementing localization algorihtms. ICP implementation from the PCL can help me get the maps necessary for the mapping process.
The position of the copter as derived by the Ardupilot controls can be published on a ROS node. This vealue is then used to filter the value that we get from the scan matching. The updated position can be used as the position of the rotor.
Deliverables:
The project deliverables would be a software and hardware solution integrating Ardupilot and ROS for implementing localization and mapping modules from ROS into Ardupilot.