The work presents the basic control system of a mobile robot developed within the Microsoft Robotics Developer Studio environment. The goal of the control system is to drive the robot from a known initial position to another position within the scope of a known map avoiding collisions with uncharted obstacles. The robot is a differential drive platform with a lidar sensor – the significantly reworked MRDS reference platform. The control system service employs a number of other services to its ends: the odometry service evaluating the robot’s position using wheel encoders and the differential drive model; the map service providing fixed known occupancy grid map; the localization service tracking the robot’s position with the Monte Carlo algorithm merging odometry and lidar measurements; the navigation service based on the Dynamic Window Approach algorithm driving the robot to the next checkpoint avoiding collisions with uncharted obstacles; and the path planner service constructing a path as a sequence of checkpoints using the A* search with the Jump Points expansion.
The project’s code resides on GitHub. Feel free to contact me if you are interested.
Table of contents
- Control system requirements
- Robot model
- Odometry estimation
- Map representation
- Simulated environment construction
- Localization and tracking
- Obstacle avoidance and navigation
- Path planning
- Integrated control system