Class RobotDriverInterface

Inheritance Relationships

Derived Type

Class Documentation

class RobotDriverInterface

Abstract class for managing different robot drivers.

Subclassed by husarion_ugv_hardware_interfaces::RoboteqRobotDriver

Public Functions

virtual void Initialize() = 0

Initialize robot driver.

Throws:

std::runtime_error – if boot fails

virtual void Deinitialize() = 0

Deinitialize robot driver.

virtual void Activate() = 0

Activate procedure for the driver.

Throws:

std::runtime_error – if any procedure step fails

virtual void UpdateCommunicationState() = 0

Updates current communication state with the drivers.

Throws:

std::runtime_error – if error was detected

virtual void UpdateMotorsState() = 0

Updates current motors’ state (position, velocity, current).

Throws:

std::runtime_error – if error was detected

virtual void UpdateDriversState() = 0

Updates current driver state (flags, temperatures, voltage, battery current)

Throws:

std::runtime_error – if error was detected

virtual const DriverData &GetData(const DriverNames name) = 0

Get data feedback from the driver.

Parameters:

name – name of the data to get

Throws:

std::runtime_error – if data with the given name does not exist

Returns:

data feedback

virtual void SendSpeedCommands(const std::vector<float> &speeds) = 0

Write speed commands to motors.

Parameters:

speeds – vector of motor speeds in rad/s

Throws:

std::runtime_error – if vector has invalid size or send command fails

virtual void TurnOnEStop() = 0

Turns on E-stop.

Throws:

std::runtime_error – if any operation returns error

virtual void TurnOffEStop() = 0

Turns off E-stop.

Throws:

std::runtime_error – if any operation returns error

virtual void AttemptErrorFlagReset() = 0

Attempt to clear driver error flags. If driver faults still exist, the error flags should remain active.

virtual bool CommunicationError() = 0

Check if communication with drivers is working properly.

Returns:

true if communication error occurred