The main objective of this project is to learn to utilize the ROS AMCL(Adaptive Monte Carlo Localisation) package to accurately localize a mobile robot inside a map in the Gazebo simulation environment.and To learn several aspects of robotic software engineering with a focus on ROS:
*Create a ROS package that launches a custom robot model in a custom Gazebo world
*Utilize the ROS AMCL package and the Tele-Operation / Navigation Stack to localize the robot
*Explore, add, and tune specific parameters corresponding to each package to achieve the best possible localization results
To consolidate the robotic concepts learned in the Udacity Robotics Nanodegree and get a hands-on experience of working with C++, ROS, Gazebo simulation enviroment.
sudo apt-get install ros-kinetic-navigation
sudo apt-get install ros-kinetic-map-server
sudo apt-get install ros-kinetic-move-base
sudo apt-get install ros-kinetic-amcl
$ mkdir -p catkin_ws
$ cd catkin_ws/
$ git clone https://github.com/RamCharanThota/Udacity_Robotic_ND_Proj3_WhereAmI.git src
$ cd catkin_ws/src
$ catkin_init_workspace
$ cd ../
$ catkin_make
$ source devel/setup.bash
$ roslaunch my_robot world.launch
$ source devel/setup.bash
$ roslaunch my_robot amcl.launch
You can control or drive the robot two ways while it localize itself here:
*control through RViz by using navigation goal
*control through teleop package where you can drive robot using
your key board.
while you drive the robot arround you will observe the AMCL node localisation in action. you can tune AMCL node parameters to improve the performace of the algorithm.