We have a robotic rover that we would like to give the ability to self-drive along a footpath. The robot runs on Linux and ROS. Your task is to develop the software and artificial intelligence to allow it to accomplish driving on a footpath, detecting and avoiding (where possible) obstacles and people.
You will be provided with a virtual simulation environment called Gazebo Sim to allow you to test your software without the presence of the physical robot. The Gazebo Sim simulator includes a simulation of the hardware of the actual robot (with sensor inputs and outputs) and a simulation of a virtual environment (with trees, buildings, roads, footpath, real physics) through which you have to make the virtual simulated robot navigate through autonomously. The Gazebo Sim environment will be linked to the ROS installation. All of this will run in Linux.
- You are required to use as much of the pre-built ROS features as possible for this task
- You are to use AI techniques to implement the autonomous driving features. As far as practicable the driving task should not be hard-coded.
- A start and end co-ordinate will be randomly generated on the map of the virtual simulated environment.
- Your code needs to be able to allow the virtual robot to autonomously navigate in the simulated terrain from the start to the end co-ordinate without user input.
- It must be able to successfully complete this mission at least 90% of the time. (1 out of 10 missions).
- You will have experience using ROS, Gazebo Sim, and Linux and be competent in using the Linux terminal.
- You shall be competent in using the C, C++, Python programming languages.
- A mid-range PC at a minimum running an Ubuntu Linux installation to run the simulation environments is required - as this is expected to be a remote task, we recommend that your equipment meets or exceeds the following basic specifications: Intel Core I5, or I7, at least 16 GB DDR3/4 RAM, 4GB GPU, we recommend the use of SSD drives for running these simulations, however, this is entirely optional.