mh5_hardware packageΒΆ

This package follows the ros_control design model. It contains the highly specific hardware access functions needed for:

  • configuring and communicating with the Dynamixel actuators used by the robot

  • configuring and reading information from the on-board IMU unit

  • (to-be) configuring and retrieving information from the Force Sensitive Resistors (FSRs) in the feet

class MH5DynamixelInterface : public RobotHW

Main class implementing the protocol required by ros_control for providing access to the robot hardware.

This class performs communication with the servos using Dynamixel protocol and manages the state of these servos. It uses for this purpose Dynamixel SDK (specifically the ROS implementation of it) with the only exception that for port communication it uses a custom subclass of PortHandler in order to be able to configure the communication port with RS485 support, because the interface board used by RH5 robot uses SC16IS762 chips that control the flow in heardware, but need tto be connfigured in RS485 mode via ioctl.

The class should be instantiated by the pluginlib once the main mode is started and initiates the load of the CombinedRobotHW class.

The class uses the information from the param server to get details about the communication port configuration and the attached servos. For each dynamixel interface the following parameters are read:

The class registers itself with the pluginlib by calling:

 PLUGINLIB_EXPORT_CLASS(mh5_hardware::MH5DynamixelInterface, hardware_interface::RobotHW)