ROS Localisation and Navigation using Adaptive Monte Carlo Localisation (AMCL) with a skid-steer robot
This repository contains a Robot Operating System (ROS) implementation of a skid-steer robot model for uses with the ROS navigation stack. The model uses the Adaptive Monte Carlo Localisation (AMCL) method for localisation with the Elastic band planner method to navigate to goal locations.
This repository has an accompanying project page, contains the theory and details behind the code. It can be found here.
-
Robot Operating System (ROS). Installation instructions can be found here.
-
Install ROS nodes required for the local and global planners, amcl, maps and motor control for the navigation stack.
$ sudo apt-get update
$ sudo apt-get install ros-kinetic-move-base
$ sudo apt-get install ros-kinetic-map-server
$ sudo apt-get install ros-kinetic-amcl
$ sudo apt-get install ros-kinetic-eband-local-planner
$ sudo apt-get install ros-kinetic-global-planner
Clone this repository in your catkin workspace 'src/' folder.
$ cd ~/catkin_ws/src/
$ git clone https://github.com/Heych88/skid_steer_bot.git
Build the project:
$ cd ~/catkin_ws
$ catkin_make
If you haven’t already, the following line can be added to your .bashrc to auto-source all new terminals
source ~/catkin_ws/devel/setup.bash
In a terminal window, type the following,
$ cd ~/catkin_ws
$ roslaunch skid_steer_bot udacity_world.launch
In a new terminal, run the 'amcl.launch' file.
$ cd ~/catkin_ws
$ source devel/setup.bash
$ roslaunch skid_steer_bot amcl.launch
Gazebo and Rviz will load and you should arrive at a result similar to the below.
- In Rviz, click on the 2D Nav Goal in the top menu.
- Click on the Rviz map where you want the robot to navigate too.
You should arrive at a result similar to the below.
This project is licensed under the MIT License - see the LICENSE.md file for details.