Autonomous rovers find applications in planetary surface exploration, search and rescue missions, reconnaissance and other military applications, work in hazardous environments etc. They need to be endowed with capability of in-motion mapping, localization and path planning to meet their mission objectives. Such systems are a class of resource constrained real time missions where all the tasks are intended to provide robust, real time and fault tolerant behaviors under considerable constraints of resources. This project aims to build an experimental rover and develop lightweight algorithms to aid autonomous navigation in partially known or unknown environments.
Results
An experimental rover platform “Freelancer” was designed and validated for real time exploratory missions. This platform was provided with 24 sonar sensors, two vision sensors, four wheel speed encoders, two electronic compasses and two three axis gyroscopes. It has a four wheel differential drive providing the rover with a flat surface top speed for .20 m/s. The rover has been provided with three FPGA boards: Spartan-6 for image acquisition and processing, A virtex-6 board for sensor data fusion, mapping and localization related computations and a Zync-7 board with embedded ARM-Cortex processor for higher level tasks. Real time mapping, localization, obstacle avoidance and path planning tasks were implemented and validated in different obstacle field configurations.
Technical Challenges
Online mapping and localization using minimalist sensor suite
Effective data fusion to lower the computational complexity.
Imprecise sensor and actuator models.
Handling dynamic environment.
Providing real time response with fault tolerance.
Constraints on size, volume, computational resources and on-board power.
Technical Solution
Data fusion across vision sensors, range sensors and inertial sensors for pose estimation.
Use of probabilistic sensor and actuator models to account for sensing and actuation noise.
Design of on-line incremental mapping and localization strategy for real time response.
Minimizing raw sensor data processing by meaningful approximations.
Redundancy and re-configuration based fault tolerance for mission critical applications.
Design of custom parallel and pipelined computational architectures for embedded real time computing.