This is a simulation of a differential drive robot capable of navigating it's way through obstacles in a virtual world. It uses ROS Navigation stack Nav2 to receive goal position in rviz and find it's way to that place in the Gazebo Simulator. This project uses the "Kitchen Dining" world provided by osrf. I've included the dockerfile if someone wants to run it on docker since ROS installation is cumbersome.
Demonstration: YouTube
Make sure ~/.gazebo/models contains all the models provided here. All the dependencies required for it are installed by the DOCKERFILE.
Add the sam_bot_nav2 package inside the src folder of your workspace.
To start the simulation in rviz and gazebo, build the package using:
cd ~/<your-workspace-where-sam_bot_nav2-is-located>
colcon build
. install/setup.bash
Then, Run the following command
ros2 launch sam_bot_nav2 new_world2.launch.py
The following screen with Gazebo and Rviz should pop up.
We first need to specify the robot's initial position. To do that click on "2D Pose Estimate" on Rviz top bar and then click, hold and release on the (0, 0) position with the orientation as you can see in gazebo.
A bird-eye view of the model should appear in Rviz. Since the model is same color as the Rviz background, it appear transparent but the transforms are clearly visible.
We are done! Click "Navigation2 Goal" on the top bar and provide any goal position on the map and watch it go!




