For exploration, localization, mapping and navigation, mobile robots need to employ computationally efficient (optimal) and smarter (collision-free) path-planning strategies for performance optimization. The Bi Directional RRT algorithm simultaneously explores the configuration space in both directions by using two trees that grow from the initial and goal states. RRT-Connect, in contrast, iteratively connects two trees by growing them closer to one another. Two trees grow from initial and target point respectively with the end position of each other as the target, and connect to the last expansion of each other. BTO-RRT (Bi Directional Target Oriented RRT) takes advantage of bi-directional RRT and RRT connect - modify the extension rules for more target-oriented with faster connections. In BTO-RRT, the start node explores throughout the map assuming the goal node as its target while the goal node explores assuming the end position of start point as target.
This work is inspired from [1] and has been implemented using Python for 2-D. The path planning with BTO-RRT is implemented in a 3-D Simulation Gazebo World using ROS Noetic. In this setup, the TurtleBot navigates from its starting position to a specified goal point along the path generated by the BTO-RRT algorithm. A closed loop controller is implemented to control the robot’s linear speed and angular speed while it is navigating through an optimal path and avoiding obstacles.
- Use source code "code/vinay06_anuj_final2Dcode.py" file from folder and open any Python IDE or terminal. Map being tested should be in same directory as source code
- If Python IDE is used, please click on the run button Note : Before running please make sure whether these libraries are installed in the system : numpy,cv2,matplotlib,time.
#Test Case 1 :
Enter the x-coordinate of start node
10
Enter the y-coordinate of start node
10
Enter the x-coordinate of goal node
490
Enter the y-coordinate of goal node
490
- Once the code is run, a few information about the code is printed on the console and the cv2 visualisation video is recorded and saved
- Video will be saved under the name "BTO-RRT.avi". Alternatively, you can find the video in below links
- Please make sure you have the maps given in zip folder in the same directory where the code is being run.
The results and testing on different maps can be viewed from results folder. The video below shows the BTO-RRT planning executed in 2-D
Figure: BTO-RRT Planning in 2-D
# Test Case
Enter the x-coordinate of start node
10
Enter the y-coordinate of start node
10
Enter the x-coordinate of goal node
490
Enter the y-coordinate of goal node
490
- Keep the folder "bto_gazebo" inside the source folder of your respective ros workspace.
- Perfrom below set of commands now on the terminal window
- cd ~/catkin_ws
- catkin_make
- source devel/setup.bash
- roslaunch bto_gazebo bto_gazebo.launch
- rosrun bto_gazebo bto_gazebo.py (In another terminal)
- A new terminal window will be opened where you need to enter the coordinates as in Test Case.
- The turtlebot keeps moving to its goal point. The video link for the same is in the presentation slides and also in the zip folder.
The below Video shows how the turtlebot moves in an optimal path derived from the algorithm.
Figure: BTO-RRT Planning in 3-D
- Anuj Zore
- Vinay Krishna Bukka
- Zheng, Z., Bewley, T. R., Kuester, F., & Ma, J. (2022). BTO-RRT: A rapid, optimal, smooth and point cloud-based path planning algorithm