UAV-Guided UGV Navigation




This is our solution to the DRDO Navigation Challege in Inter IIT Tech Meet 10.0 In the problem statement, we were asked to use a UAV to explore and map a mountainous terrain during summer time. After mapping, the UAV must be used to guide a UGV to traverse through the terrain during the winter time when roads are covered with snow.

Key points from the PS
• The UAV has an IMU, a GPS and a RGBD camera as sensors.
• The UGV has no sensor.
• The mapping needs to be completed in the textured world while the UGV navigates in the untextured world.

[Code] [Slides] [Report]


Approach

The project is divided into three parts:


UAV Localization

In the problem statement, we were provided with GPS and IMU sensors on the UAV. We fused the incoming data from these sensors using Extended Kalman Filter to produce our desired odometry. The node ekf_localization in robot_localization ROS package provided us with the 15D odometry. Maximum observed error after multiple-goal points turned out to be ±0.5 meters in all three axes.



Terrain Mapping


Road Segmentation

We prepared a dataset containing simulated environment images and manually annotated them using CVAT. Then we fit a UNET to segment the roads in those images. For better training, we used standard augmentation techniques and obtained ~96% accuracy on testing data. More details can be found in our report.

UNET Segmentation Results

Exploration Pipeline


The mapping performed by the UAV has been implemented using the RTABMAP ROS package. The package uses RGB-D SLAM approach and create a 2D Occupancy grid map using the 3D pointcloud values obtained by RGBD camera atop the drone.

The package takes in the values from the camera as well as the odometry, and publishes the projected 2D map of the 3D environment.

Next, we implemented the Frontier Exploration approach using the Frontier_Exploration ROS package in order to explore the world terrain. Frontiers are regions on the boundary between open space and unexplored space. By moving to a new frontier, we can keep building the map of the environment, until there are no new frontiers left to detect.



UGV Navigation

UGV Detection and Tracking

Detection and Tracking Pipeline


UGV Controls

For UGV control Pure Pursuit Controller was used which is a path tracking algorithm.It computes the angular velocity command that moves the robot from its current position to reach some look-ahead point in front of the robot.


UGV Planning

We used se2_navigation ROS package which subscribes to the odometry topic of car with respect to a suitable odom frame to receive car's odometry w.r.t initial starting position and orientation of the drone.

Now when we publish a suitable goal point in the same odom frame, the se2 OMPL planner inside this package plans a proper trajectory for the car to follow which is a sequential array of poses in the odometry frame.


This webpage template was borrowed from some colorful folks.