Summary
In this chapter, we covered interfacing a DIY autonomous mobile robot with ROS and the Navigation Stack. After introducing the robot and the necessary components and connection diagrams, we looked at the robot firmware and saw how to flash it into the real robot. After that, we learned how to interface it with ROS using ROS Control packages by developing a hardware interface. With diff_drive_controller
it is easy to convert twist messages to motor velocities and encoder ticks to odom
and tf
. ROS Control also enables simulation with the gazebo_ros_control
plugin. After discussing these nodes, we looked at configurations of the ROS Navigation Stack. We also did gmapping
and AMCL and looked at how to use RViz with the Navigation Stack. We also covered obstacle avoidance using the Navigation Stack and worked with Remo in a simulation. The next chapter introduces pluginlib
, nodelets
, and Gazebo plugins.
Here are some questions based on what we covered in this chapter.