RangerRobot is a ROS package that implements a new local planner for move_base which is a ROS interface for interacting with the navigation stack on a robot.
This project aims to autonomously navigate a robot from it's source location to the target location specifically in a ware house environment scene.
RangerRobot is built with the following:
ROS1
on melodic versionTurtleBot3 burger
, ROS-based mobile robotGazebo
multi-robot simulator on version 9.0.0
This repository contains a custom Local planners. The algorithms implemented are
- DWA for local planner
The following functions from the BaseLocalPlanner interface are overriden in the custom local planner:
- initialize
- computeVelocityCommands
- isGoalReached
- setPlan
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/
$ catkin build
$ source devel/setup.bash
And for
Navigation with the BaseGlobalPlanner
and EbandLocalPlanner
enable the following in move_base.launch under the launch
folder.
<param name="base_global_planner" value="global_planner/GlobalPlanner" />
<param name="base_local_planner" value="eband_local_planner/EBandPlannerROS"/>
and for launch with the customised local planner
<param name="base_global_planner" value="global_planner/GlobalPlanner" />
<param name="dummy_local_planner" value="dummy_local_planner/DummyLocalPlanner" />
With these changes, hit this command on the terminal
$ roslaunch ranger_bot turtlebot3_navigation.launch
This opens up RVIZ and Gazebo world .......
-
Click the 2D Nav Goal button in the RViz menu on Toolbar.Set the destination of the robot by dragging the green arrow toward the direction where the robot will be facing. OR
-
Launch the
goal_handler
node like this and follow the instructions on terminal.
$ rosrun ranger_bot goal_handler
Launching goal_handler
node also helps us in tracking if the robot is following the calculated path or if it is lost/stuck by publishing the robot status on the ros-topic /robot_status
. Check this out by running the following on a sourced terminal.
$ rostopic echo /robot_status
Getting the robot to navigate with the custom local planner is still a work inProgress while different approaches are experimented.
-
Environment Model: AWS RoboMaker Small Warehouse World
-
Mapping the environment: Gmapping SLAM method
-
Navigating robot with base global and local planners: Mastering ROS for Robotics Programming Book
-
Creating custom global and local planners: Global and Local planner Plugins ROS
-
amcl
ros package which is a probabilistic localization system for a robot moving in 2D -
Others: Relaxed Astar, Bubble local Planner for obstacle avoidance, customised DWA local planner, Pure-pursuit local planner