PavanproJack / RosRangerRobot

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

RosRangerRobot

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.

Components and Software

RangerRobot is built with the following:

  1. ROS1 on melodic version
  2. TurtleBot3 burger, ROS-based mobile robot
  3. Gazebo multi-robot simulator on version 9.0.0

Custom local planner using ROS Navigation Stack

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

Build and Running Instructions

$ 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 .......

Assigning Tasks/Goals

Two ways:

  • 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

Note

Getting the robot to navigate with the custom local planner is still a work inProgress while different approaches are experimented.

References

  1. Environment Model: AWS RoboMaker Small Warehouse World

  2. Mapping the environment: Gmapping SLAM method

  3. Navigating robot with base global and local planners: Mastering ROS for Robotics Programming Book

  4. Creating custom global and local planners: Global and Local planner Plugins ROS

  5. BaseLocalPlanner interface and DWALocalPlanner interface

  6. amcl ros package which is a probabilistic localization system for a robot moving in 2D

  7. Others: Relaxed Astar, Bubble local Planner for obstacle avoidance, customised DWA local planner, Pure-pursuit local planner

About

License:GNU General Public License v3.0


Languages

Language:C++ 83.6%Language:CMake 13.8%Language:Python 2.6%