In Chapter 6, Using the ROS MoveIt! and Navigation Stack, we have discussed some mandatory requirements for interfacing a mobile robot with the ROS Navigation package. These requirements are recalled in the following:
- Odometry source: The robot should publish its odometry/position data with respect to the starting position. The necessary hardware components that provide odometry information are wheel encoders, IMU, or 2D/3D cameras (visual odometry).
- Sensor source: There should be a laser scanner, or a vision sensor that can act as a laser scanner. The laser scanner data is essential for the map-building process using SLAM.
- Sensor transform using tf: The robot should publish the transform of the sensors and other robot components using ROS transform.
- Base controller: The base controller is an ROS node, which can convert a twist message from the Navigation stack to corresponding motor velocities:
Figure 1: Chefbot prototype...