Rahul Kala, Code Repository http://rkala.in/codes.html
Code for Robot Path Planning using Bidirectional
Rapidly-exploring Random Trees
Rahul Kala
Robotics and Artificial Intelligence Laboratory,
Indian Institute of Information Technology, Allahabad
Devghat, Jhalwa, Allahabad, INDIA
Email: rkala001@gmail.com
Ph: +91-8174967783
Web: http://rkala.in/
Version 1, Released: 7th June, 2014
© Rahul Kala, IIIT Allahabad, Creative Commons Attribution-ShareAlike 4.0 International License. The use of this code, its parts and all the
materials in the text; creation of derivatives and their publication; and sharing the code publically is permitted without permission.
Please cite the work in all materials as: R. Kala (2014) Code for Robot Path Planning using Bidirectional Rapidly-exploring Random Trees,
Indian Institute of Information Technology Allahabad, Available at: http://rkala.in/codes.html
1. Background
The code provided with this document uses Bidirectional Rapidly-exploring Random Trees Algorithm for robot
motion planning. Assume that you have a robot arena with an overhead camera as shown in Figure 1. The camera
can be easily calibrated and the image coming from the camera can be used to create a robot map, as shown in the
same figure. This is a simplistic implementation of the real life scenarios where multiple cameras are used to capture
different parts of the entire workspace, and their outputs are fused to create an overall map used by the motion
planning algorithms. This tutorial would assume that such a map already exists and is given as an input to the map.
Figure 1: Overhead camera system and creation of robot map
The same camera can also be used to capture the location of the robot at the start of the planning and also as the
robot moves. This solves the problem of localization. An interesting looking region of interest becomes the goal of
the robot to be used in the motion planning algorithms. The robot is not shown in the map in Figure 1. This tutorial
assumes that the source and goal of the robot is explicitly supplied. The aim of the current tutorial is only to plan a
path for the robot; the code does not go forth with making the robot move on the desired path, for which a control
algorithm is needed.
For simplicity, the robot is taken as a point-sized object. This enables a quick implementation and understanding,
without delving into the libraries for collision detection and concepts of multi-dimensional configuration spaces.
2. Problem Solving using Bidirectional Rapidly-exploring Random Trees
The readers should please familiarize themselves with the Rapidly-exploring Random Trees (RRT) and
Bidirectional RRT algorithm before reading this tutorial. Please also refer to the Robot Path Planning using RRT