Basic control system of a mobile robot

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

  1. Introduction
  2. Control system requirements
  3. Robot model
  4. Odometry estimation
  5. Map representation
  6. Simulated environment construction
  7. Localization and tracking
  8. Obstacle avoidance and navigation
  9. Path planning
  10. Integrated control system
  11. Results
  12. Conclusion
Start reading