The work was majorly concentrated on Visual Odometry. ROS Indigo, OpenCV were major tools used in the project.
ROS provides a platform where different modules running simultaneously can communicate easily and synchronously. In this project ROS plays an important role integrating Visual Odometryand other operations performed based on visual odometry.
In the current work, tracking camera and marking its position in previous frames is implemented based on fundamental matrix. The issue with this process is that the terrain patch under the object can not be tracked with out height correspondance with the distance. On the other hand we can use Visual Odometry, which will continuously publishing the camera position on a ROS topic and compute terrain patch coordinates directly as we know height of camera from the ground using pose transformation. The only requirement will be a calibrated camera
For visual odometry, rtabmap_ros was used which runs on ROS Indigo. The projection matrix is published on the ROS topic camera_info on which pose transformation can be performed. As of now pose transformations is performed on a recorded video and calibration values are taken from rtabmap_ros itself which is resulting in not very accurate transformation as compared to fundamental matrix technique and terrain patches can not be correctly extracted. It should be fixed with good calibrated camera. The code for fundamental matrix implementation and pose transformation can be found here
The future work would be implementing the same on a live streaming video from a good calibrated camera such as ZED camera. Sensor fusion can be done with IMU to get accurate visual odometry resulting in more accurate terrain patches. IMU can also help in rating the terrain traversability.