DiffBot Bring Up Package
The bringup package is used to initialize the real hardware of DiffBot and to actually drive the robot around.
First the package is created using
1 2 3 4 5
The package provides a
launch folder which includes
minimal.launch is used to load DiffBot's robot descripton and the controller configuration
onto the ROS parameter server using the launch file from the
It will also setup the ROS controller manager with
DiffBot's hardware interface.
For the motor driver the node
motor_driver.py from the
grove_motor_driver package is started.
And for the encoders rosserial communicates with the Teensy microcontroller to publish the encoder ticks.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
As mentioned, the ROS controller used for DiffBot is the
This controller publishes a transform message (see its published topics),
/tf topic, between the
odom frame and the frame configured in the controller's configuration specified by the
In the case of DiffBot this is the
base_footprint, a conventional link, defined in REP-120, for mobile robots that specifies the robot's footprint.
Because this is the only transform published by
diff_drive_controller another node is needed to publish rest of the link transformations.
It is the well known
robot_state_publisher, which uses the joint states published by the ROS controller
joint_state_controller (not to be confused with
joint_state_publisher - it is not used here, see this answer for the difference) to create the transforms
between the links.
To do this the
bringup.launch includes the
minimal.launch and then runs the
1 2 3 4 5 6 7 8 9 10 11 12