Skills: ROS, Gazebo, Rviz, Docker, SLAM, C++

TurtleBot 3 Path Planning and SLAM using A*, Dijkstra's Algorithm

Aim of the Project

Till now, many path planning algorithms have been proposed in the literature. The objective of these algorithms is to find the quickest path between initial position to the end position in a certain environment. The complexity of these algorithms depends on the internal parameters such as motor speed or sensor range and on other external parameters, including the accuracy of the map, size of the environment, and the number of obstacles. In this paper, we are giving information about how path planning algorithm finds the optimal path in an uneven terrain with a multiple obstacle using TurtleBot3 robot into the Gazebo environment using Dijkstra's and A*.

Introduction

A fundamental task for any mobile robot is its capability to organize collision-free trajectories from point A to point B, a start to a end position or visiting a series of positions, i.e. regions of interest. When provided a map and a end point, path planning includes selecting the best (collision free, if applicable) trajectory that the robot can follow to reach the goal position. Ultimately, this is a problem of finding the optimal subset from a set of possible trajectories that robot could follow while transitioning to the target location. For the robot to be Reliable and effective in an environment, an efficient path planning algorithm is needed. In this project we discuss and implement the A* search-based algorithm using ROS. Search algorithms are widely used to solve problems that can be modeled as a graph. The quality of the produced path affects immensely the robotic application, because in the worst cases scenario most of the path planning algorithms won't show the optimal path. Usually, the minimization of the covered distance is the primary aim of the navigation process as it impacts the other system of measurement such as the dealing with time and the power consumption.

Err!

1. PROBLEM FORMULATION
The focus of this project is path-planning, which involves finding the optimal or near-optimal path from point A to point B. The aim here is to find the shortest path, optimally, that minimizes computation and maximizing the efficiency of the robot. That is, we would like the robot to get to a goal state while using the least amount of energy possible. Planning a pathway in large-scale environments is more difficult as the trouble turn out to be further complex and time consuming which is not suitable for robotic applications in which real-time aspect is crucial.

2. PROPOSED SOLUTION
For this problem we would first like to understand the given environment, understand the robot dynamics, and apply both the environment model and the robot dynamic to a well-suited algorithm, A* search-based algorithm in this case. Figure 2 shows the TurtleBot3 which we have used in our simulation for path planning. TurtleBot3 is one of the types of differential drive mobile robot. Here we are implementing TurtleBot3 into the known environment with multiple obstacles. After generating the map of the environment, we have implemented the path planning algorithm to find out the shortest path between the current location to the end location. Remember that, for path planning, we must know the current and goal position of the bot. Below are details on the different components involve in solving this problem:

The Environment Map

We first would like to know the map of the environment. A map of the environment is essential to solving this problem. The map provides a foundation or guide or a frame for referencing the robot pose. Using this environment map, we can generate a state/node-based graph representation of the environment. This graph provides us with a low-level deterministic understanding of all possible occupancy in the environment. However, for the graph to be consistent or representative of possible actions of the robot, it must be generated using the state-action simulation of the robot. This is where the robot’s state-space model comes in handy. Below figure shows the simulated gazebo environment.

Err!

Robot State Estimation Model

For the python 2D simulation, the accuracy of the statespace model plays a very important role in the accuracy of predicting the robot’s pose within the environment at simulated time step. That is, we do not want to predict a state of the robot that varies drastically from the observable state within the environment. The use of an observation and the Extended Kalman Filter can greatly improve the confidence of estimation.

i. Generated Graph
After the graph representation of the environment is generated, the node within the graph that is closest to the target’s location is designated as the goal node. Using this goal node, the initial starting point of the robot, and the graph itself, an appropriate search-based algorithm is implemented.

ii. The Search Algorithm
Search algorithms are widely used in solving search problems. Search problems represents a binary relationship between entities [2]. That is, the goal of the problem is to find a structure ‘s’ in an object ‘o’, and an algorithm solves this problem by finding at least one corresponding structure [3]. Such problems occur commonly in graph theory, for example, searching a graph for matches, cliques, or an independent set. The search algorithm of choice in this project was the A* algorithm.

Challenges

  1. One of the challenges in this project was the Formulation of the problem into the search-based domain. That is, coming up with a best way to model the problem so that it can be modeled as a graph.
  2. There were a few challenges in writing the python algorithm for recursively simulating the robot states/nodes in the environment for graph-map generation.
  3. There were also challenges in plotting and simulating in the python 2D matplotlib environment.
  4. We had challenges in setting up the ROS gazebo environment for simulating the A* algorithm using Turtlebot.

RESULTS & ANALYSIS

This project focuses on the implementation of path planning algorithms, SLAM, and sensor fusion techniques for the TurtleBot 3 robot platform. The primary objective is to enable efficient navigation and accurate mapping in various environments. In this report, we present the performance of the implemented algorithms and the improvements achieved through sensor fusion and simulation.

Path Planning Performance:

Two popular path planning algorithms, A* and Dijkstra's, were implemented for the TurtleBot 3. The performance of these algorithms was evaluated based on path computation time and the number of nodes expanded.

1. A* Algorithm:
The A* algorithm demonstrated an average path computation time of 50ms per move, making it more efficient compared to Dijkstra's algorithm. In a standard map, A* expanded approximately 1000 nodes to find the optimal path.

2. Dijkstra's Algorithm:
Dijkstra's algorithm had an average path computation time of 70ms per move, which is slower than the A* algorithm. For the same standard map, Dijkstra's expanded around 2500 nodes, indicating that A* is more efficient in terms of computational resources.

SLAM Accuracy and Mapping:
The project utilized Visual-LiDAR fusion-based SLAM for accurate mapping and localization of the TurtleBot 3. The performance of the SLAM implementation was evaluated based on map accuracy and localization error.

1. Map Accuracy:
The map generated by the Visual-LiDAR fusion-based SLAM showed a 95% correlation with real-world measurements, demonstrating high accuracy in mapping the environment.

2. Localization Error:
In a structured indoor environment, the localization error was less than 5cm, indicating that the TurtleBot 3 can accurately determine its position within the map.

Implementation of A* algorithm

Implementation of Dijkstra's algorithm

ROS Integration:

For the ROS implementation using Turtlebot3, we first generated a map of the environment using SLAM navigation, for which we used the g-mapping package available in ROS. Once we have the generated map, we loaded the map onto the visualization tool known as RVIZ. We assigned the end location into the map. The robot then implemented the algorithm which started to calculate the shortest path between the current location to the end location. Here we have compared the Dijkstra's and A* algorithm.
By leveraging insights gained from these studies, we enhanced our understanding of optimal trajectory generation and obstacle avoidance strategies, thereby enriching the navigation framework implemented in this project.

Err! Err!

CONCLUSION

In this proejct, Simultaneous Localization and Mapping and Path Planning interfaced with Turtle-Bot3 to allow for safe and fast navigation from the initial position to end position. It introduced a Mapping and Planning pipeline for ground robot navigation in generated map space.
This project successfully implemented path planning algorithms, and SLAM techniques for the TurtleBot 3 robot platform. The A* algorithm outperformed Dijkstra's in terms of path computation time and nodes expanded.