This node is the interface between the hardware and the high level robot functions. This includes:
There are three micro controller boards in the robot:
The mobile base driver communicate with these via two high speed UARTS, /dev/ttyS1 and /dev/ttyS2.
This board controls the drive motors and the head pan motor. It also gathers input from these sensors: bump, wheel drop, battery power and dock IR receiver.
The status LED (on the power button) is controlled by this board. The system power is controlled by this board. Depth sensor reset is controlled by this board.
This board controls the head tilt and eyelids motors. It also gathers data from the cap touch sensor.
This board controls the 15 LEDs in the chest board.
The firmware must be loaded on the two controller boards. The depth sensor needs to be operating and providing depth scans.
Controls the color of the chest LEDs
sensor_msgs::Imu Data from the IMU device (BNO055)
mobile_base_driver::SafetyStatus Safety status from sensors that prevent the robot from hurting itself.
mobile_base_driver::Sensors Contains the current state of most of the sensors in the robot.
mobile_base_driver::Touch The cap touch sensor
mobile_base_driver::Power The power state, ie., battery charge, dock status.
mobile_base_driver::Stall Motor stall state.
mobile_base_driver::Telescope IR receivers that detect the dock, one in front and one in the back.
mobile_base_driver::CliffArray The cliff sensors in the back of the robot. These are only active if the at least one of the drive wheels is being commanded backwards.
/mobile_base/debug_logger`See ROS logging documentation
mobile_base_driver::GetEmbeddedRegs Get the value of the specified register
mobile_base_driver::SetEmbeddedRegs Set the value of the specified register
mobile_base_driver::SafetyClear Clear the specified safety condition
mobile_base_driver::SafetyOverride Override the safety controller for the specified conditions
mobile_base_driver::PwrBtnLed Set the color of the power button LED
std_srvs::Empty Holds the depth sensor in reset for 200ms
std_srvs::Empty Start the shutdown process
std_srvs::Empty Cancel the shutdown process
std_srvs::Trigger Causes the pan motor to re-home to the homing sensor
std_srvs::Trigger Causes the tilt motor to re-home to the homing sensor
std_srvs::Trigger Causes the eyelids motor to re-home to the homing sensor
/dev/ttyS1, used to communicate with the body board
/dev/rrtS2, used to communicate with the head board and chest light
The polling rate for reading data from the IMU
The ros topic publish rate
The main control loop processing rate
The rate the control board are polled for errors
The rate the control boards are polled to check their loop run times
The rate the power status is monitored to control the status LED on the power button
Queue size used for ROS publishers