Masters Research

Navigation Planning For A Multi Robot System Exploring An Unknown Environment Supported By Volumetric Data

High level system design

Introduction

Tech Stack: Robot Operating System (ROS), Octomap Library, Turtlebot system

The research project focuses on building a multi-robot exploration system to explore unknown environments. The system contains the following components,

  1. Client System
    1. Exploration Module
    2. Planning Module
    3. Control Module
    4. Client Module
  2. Server System


Client System

This is the system that runs on the robot. This system collects data from the environment and shares them with the server system while navigating and exploring at the same time.

Client side system that controls the robot

Exploration Module

The Exploration module analyses a predefined area of the voxel map of the environment by clustering it into groups. This area’s dimensions can change based on the exploration goals calculated and assigned by the server. Each cluster is evaluated to identify the occupied voxel percentage. If it is above a pre-defined threshold, it is considered an unexplored cluster. Once all the clusters are identified, the closest cluster to the robot position is selected as the exploration target. The following image contains the design of this module.

Exploration Module Design

Planning Module

The planning module functions as the control unit of the system in addition to performing path planning. It requests the exploration goal from the exploration module and also receives the goal calculated by the server through the client module. After selecting on goal, it calculates a 2D map of the environment by down projecting the 3D voxel map of the environment. Then it uses the robot’s position, selected goal, and calculated 2D map to calculate a path. Then it issues control instructions to Control Module to move the robot. The following image explains the design of this module.

Planning Module Design

Control Module

This module controls the robot as requested by the Planning Module. Supports 3 basic movements, Forward, Backward, and Rotation. In addition to that, also receives SLAM tf data and odometry data from respective ROS nodes to continuously track the position. The following image shows the design of this module.

Control Module

Client Module

This module communicates with the server. Once it receives a goal from the server, it calculates the area dimensions accordingly and updates other modules Following image shows the design of this module.

Client Module data receiving and sending functionality

Server System

The Server system receives data from all the robots through client modules on each robot. The server merges the maps from all the robots and analyses the derived voxel map of the environment by clustering it into groups. Each cluster is evaluated to identify the occupied voxel percentage. If it is above a pre-defined threshold, it is considered an unexplored cluster. Once all the clusters are identified, clusters are assigned to robots based on the distance between each other. From clusters assigned to a robot, the closes cluster to the robot is selected as the exploration target for that robot and gets transmitted to the robot via the control module. The following image shows the design of this system.

Server System