ControlConfig \(C++\)

June 4, 2021 ยท View on GitHub

This page describes the C++ ControlConfig API.

RPC reference

This section describes the existing RPCs used in this API.

Service to configure robot control library

ControlConfigClient RPCs

Function nameReturn typeInput typeDescription
SetGravityVectorEmptyGravityVectorSets global gravity vector in terms of base reference frame. This needs to be configured to enable control of the robot in wall or ceiling mounting of the robot.
GetGravityVectorGravityVectorEmptyRetrieves global gravity vector
SetPayloadInformationEmptyPayloadInformationSets payload information. This needs to be configured so that the control library can take into account the presence of the payload mass in computing the dynamics of the robot.
GetPayloadInformationPayloadInformationEmptyRetrieves payload information
SetToolConfigurationEmptyToolConfigurationSets tool configuration. This needs to be configured for two reasons. 1) so that the control library can take into account the presence of the tool mass in computing the dynamics of the robot. 2) so that the robot is aware of the tool frame center relative position and orientation to correctly compute and report the tool position.
GetToolConfigurationToolConfigurationEmptyRetrieves tool configuration
OnNotificationControlConfigurationTopicNotificationHandleNotificationOptionsSubscribes to control configuration notifications
UnsubscribeEmptyNotificationHandleUnsubscribes client from receiving specified type of notifications
SetCartesianReferenceFrameEmptyCartesianReferenceFrameInfoDefines the reference frame to use with twist and wrench commands
GetCartesianReferenceFrameCartesianReferenceFrameInfoEmptyRetrieves the current reference frame used by the twist and wrench commands
GetControlModeControlModeInformationEmptyRetrieves current control mode
SetJointSpeedSoftLimitsEmptyJointSpeedSoftLimitsSet the software joint speed limits.
SetTwistLinearSoftLimitEmptyTwistLinearSoftLimitSet the software twist linear limit.
SetTwistAngularSoftLimitEmptyTwistAngularSoftLimitSet the software twist angular limit.
SetJointAccelerationSoftLimitsEmptyJointAccelerationSoftLimitsSet the software joint acceleration limits.
GetKinematicHardLimitsKinematicLimitsEmptyRetrieves angular and twist hard limits.
GetKinematicSoftLimitsKinematicLimitsControlModeInformationRetrieves the software kinematic limits for a specific control mode.
GetAllKinematicSoftLimitsKinematicLimitsListEmptyRetrieves the software kinematic limits for all control modes.
SetDesiredLinearTwistEmptyLinearTwistSet the desired linear twist when using the joystick.
SetDesiredAngularTwistEmptyAngularTwistSet the desired angular twist when using the joystick.
SetDesiredJointSpeedsEmptyJointSpeedsSet the desired joint speeds when using the joystick in angular mode.
GetDesiredSpeedsDesiredSpeedsEmptyRetrieves the desired joystick speeds
ResetGravityVectorGravityVectorEmptyResets gravity vector to default values
ResetPayloadInformationPayloadInformationEmptyResets payload information to default values
ResetToolConfigurationToolConfigurationEmptyResets tool configuration to default values
ResetJointSpeedSoftLimitsJointSpeedSoftLimitsControlModeInformationResets joint speed soft limits to default values
ResetTwistLinearSoftLimitTwistLinearSoftLimitControlModeInformationResets twist linear soft limit to default value
ResetTwistAngularSoftLimitTwistAngularSoftLimitControlModeInformationResets twist angular soft limit to default value
ResetJointAccelerationSoftLimitsJointAccelerationSoftLimitsControlModeInformationResets joint acceleration soft limits to default values
OnNotificationControlModeTopicNotificationHandleNotificationOptionsSubscribes to control mode topic for notifications

Class reference

This section describes the data classes used in this API.

Messages

ClassDescription
AngularTwistDesired Joystick angular speed.
CartesianReferenceFrameInfoCartesian reference frame
CartesianTransformDefines a Cartesian transform
ControlConfigurationNotificationNotification about a single control configuration event
ControlModeInformationControl mode information
ControlModeNotificationNotification about a single control mode event
DesiredSpeedsDesired Joystick speeds.
GravityVectorDefines the gravity vector in terms of the robot base frame. If not explicitly configured, it defaults to (0, 0, -9.81), assuming a mounting on a horizontal surface. If the robot is mounted on a wall or ceiling, the gravity vector relative to the base frame will change. The control library needs to be aware of this to accurately compensate for gravity.
JointAccelerationSoftLimitsSoftware Joint acceleration limits
JointSpeedSoftLimitsSoftware joint speed limits
JointSpeedsDesired Joystick joint speeds.
KinematicLimitsKinematic limits
KinematicLimitsListKinematic limits
LinearTwistDesired Joystick linear speed.
PayloadInformationDefines payload information
PositionA Cartesian position
ToolConfigurationDefines a tool configuration
TwistAngularSoftLimitSoftware twist angular speed limit
TwistLinearSoftLimitSoftware twist linear speed limit

Enumerators

EnumeratorDescription
ControlConfigurationEventAdmissible control configuration events
ControlModeAdmissible robot control modes
ServiceVersionIdentifies ControlConfig current version