This is the 3rd project in the Robotics Software Engineer Nanodegree Program by Udacity.
In this project, I learned 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
First, launch the simulation:
$ roslaunch my_robot world.launch
In a new terminal, launch the amcl
launch file:
$ roslaunch my_robot amcl.launch
There are two options to control my robot while it localize itself here:
- Send
navigation goal
via RViz - Send move command via
teleop
package.
Click the 2D Nav Goal button
in the RViz toolbar, then click and drag on the map to send the goal to the robot. It will start moving and localize itself in the process.
Open another terminal and launch the teleop script:
$ rosrun teleop_twist_keyboard teleop_twist_keyboard.py
- Basic Navigation Tuning Guide: ROS wiki
- base_local_planner does not follow the global plan accurately: The Construct
- Confusion about TF frames used #300: GitHub > googlecartographer/cartographer_ros