Hardware Bringup
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 catkin-tools
:
1 2 3 4 5 |
|
The package provides a launch
folder which includes minimal.launch
and bringup.launch
.
The 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 diffbot_base
package.
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 diff_drive_controller
.
This controller publishes a transform message (see its published topics),
via the /tf
topic, between the odom
frame and the frame configured in the controller's configuration specified by the base_frame_id
.
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 robot_state_publisher
:
1 2 3 4 5 6 7 8 9 10 11 12 |
|