2020; MoPAT Mk. V: Motion Planning Algorithms Testbed (EE Dept. IITG)
- Guining Pertin
- Nov 28, 2020
- 3 min read
- Guided by Dr. Gaurav Trivedi and Dr. Hanumant Singh Shekhawat
Introduction
If you read research papers on motion planning or swarm robotics, you would often find that these are performed in controlled environments where complete information of the agents/robots can be obtained easily. While working with Reinforcement Learning simulations, I found the lack of pre-built environments and agents to be quite a drawback for real world testing. Also, the current systems like Vicon Labs were way too expensive and overly powerful for simple 2D simulation and testing. This led me to start my own project on developing a low cost, easy to set-up and highly reconfigurable system on May 2019.
This project went through several iterations over a 3 year period. Mk. I and II started as an individual project funded through Robotics Club, IITG. Mk. III included Rahul D and Raneesh Malviya working on the robot implementations while I focused on bringing ROS1 to the system. Mk. IV was submitted as my 3rd Year Design Project while working with a team of 3 - Me, Sai Manikanta Rishi and Mayank Tantuway. Mk. V included ROS2 as the backend for all the algorithms.
Preliminaries
I will cover some basic details on the project first, mainly motion planning and control for differential drive robots.
1. Motion Planning
2. Control of differential drive robots
Mk. V details
The entire project can be divided into 4 major parts:
Tracking: includes the image retrieval, robot identification, object detection and tracking positions, providing a centralized setup.
Control: Includes the robot control scheme i.e. the ESP32 microcontroller, servo motors, and the PID controllers. These are decentralized controllers, one for each robot.
Planning: This includes the motion planning stack, and the multi-robot coordination node.
User interface: A simplified web interface for new users and the code interface for advanced options.
All these sections are connected together through ROS2 (in Mk.V) and through ROS1(in Mk. IV). We also included a simulation environment using Pymunk library to run and test some of the algorithms. The RQT graph for some of the nodes are shown below:

The project also has a simulation environment to first test the user’s algorithms which runs on Pymunk library while ROS based integration for the entire system holds the different components together. User’s motion planning and coordination algorithms can be implemented through the mopat_lib module and the multi-robot-coordinator nodes in the project.

This simulator passed the image to the mopat/tracking group to form the configuration space. We are using A* algorithm for motion planning using the configuration space(to prevent collisions) for a holonomic robot(currently).
The following video demonstrates the work done in the project –
Older versions (Nov '19 - May '20)
In Mk. IV we designed the simple differential drive robots that are controlled through an ESP32 microcontroller and uses velocity control servos. A Web UI was designed for ease of access to new users and for teaching purposes.
NodeMCU along with 28BYJ-48 stepper motors and ULN2003 motor driver is being used in this version. But they happened to be quite inefficient and hence we are moving towards 360 degree “servo” motors for control.
The system was recently used for the ‘SPOT-IFY’ event conducted by Robotics Club at Kriti 2019 – Inter Hostel Technical Competition. The aim was to develop algorithms for multi-robot pattern formation.



















Comments