workcell_description_interfaces
workcell_description_interfaces defines 29 interface(s).
Messages
AllowedCollisionEntry
whether or not collision checking is enabled
bool[] enabled
AllowedCollisionMatrix
The list of entry names in the matrix. The names are object names
string[] entry_names
# The individual entries in the allowed collision matrix
# square, symmetric, with same order as entry_names
AllowedCollisionEntry[] entry_values
CoupledJointLimit
Linear equation Ax < b row num is the size of limits col num is the size of joint_names
float64[] a_matrix
# (x vector) Defined active joints in the KinematicsModel
string[] joint_names
# (b vector)
float64[] limits
ErrorCodes
int32 val
# overall behavior
int32 SUCCESS=1
int32 OBJECT_NOT_FOUND=-1
int32 GROUP_NOT_FOUND=-2
int32 OBJECT_NAME_ALREADY_EXISTS=-3
int32 SOURCE_FRAME_NOT_FOUND=-4
int32 TARGET_FRAME_NOT_FOUND=-5
int32 INVALID_TRANSFORM=-6
int32 NO_IMPLEMENTATION=-7
int32 INVALID_VALUE=-8
int32 REFERENCE_FRAME_NOT_FOUND=-9
int32 INVALID_WORKCELL_CONFIGURATION=-10
KinematicsJoint
Name of the joint.
string joint_name
# The link that the joint's init_pose and self_twist are wrt.
string parent_link
# The link that the joint is connecting to. child_link will move as the joint
# changes its state.
string child_link
# The init pose of this joint's origin wrt parent_frame
geometry_msgs/Pose init_pose
# The twist wrt self origin that defines the movement of this joint.
# It can be either revolute or prismatic.
geometry_msgs/Twist self_twist
KinematicsLink
Name of the link.
string link_name
# The frame that the link is wrt.
string parent_frame
# The init pose of the link wrt parent_frame.
geometry_msgs/Pose init_pose
KinematicsMimic
The joint which is a mimic joint
string joint_name
# Which joint value this joint mimics
string mimiced_joint_name
# this_joint_value= mimiced_joint_value * multiplier + offset
float64 multiplier
float64 offset
KinematicsModel
KinematicsJoint[] joints
KinematicsLink[] links
# Some joints in KinematicsJoint[] joints can be declared as a mimic which mimics other joints
# This means these joints are non-active.
KinematicsMimic[] mimics
ObjectGroupInfo
The timestamp when this group is recently updated.
builtin_interfaces/Time time_when_updated
# The name of the group.
string group_name
# The objects in the group. They might or might not be the all objects in this
# group depending on the mode that users set in GetObjects.srv
common_msgs/Object[] objects
WorkspaceConstraint
The frame to be constrained.
string tip_frame
# The reference frame.
string root_frame
# The type of the shape.
uint8 UNKNOWN = 0
uint8 BOX = 1
uint8 SPHERE = 2
uint8 CYLINDER = 3
uint8 type
# The dimensions of the object if it is box/sphere/cylinder.
float64[<=3] dimensions # At no point will dimensions have a length > 3.
# The meaning of the shape dimensions: each constant defines the index in the 'dimensions' array.
# For type BOX, the X, Y, and Z dimensions are the length of the corresponding sides of the box.
# root_frame is the centerpoint of BOX_X, BOX_Y, BOX_Z dimensions.
uint8 BOX_X=0
uint8 BOX_Y=1
uint8 BOX_Z=2
# For the SPHERE type, only one component is used, and it gives the radius of the sphere.
# The center of the sphere is defined at the root_frame
uint8 SPHERE_RADIUS=0
# For the CYLINDER, the center line is oriented along the Z axis.
# CYLINDER_HEIGHT is measured along the z-axis.
# The root_frame is at the center of CYLINDER_HEIGHT
uint8 CYLINDER_HEIGHT=0
uint8 CYLINDER_RADIUS=1
Services
AddObject
This service is to add a new object into a dynamic-obstacle group.
common_msgs/Object object
# The name of the dynamic-obstacle group, which will be created if it doesn't exist.
string group_name
---
# Error code.
# Possible values:
# SUCCESS
# OBJECT_NAME_ALREADY_EXISTS
ErrorCodes error_code
AttachObject
Each robot in the workcell provides its own this service for attaching an object to a certain link.
# The object we want to attach. The pose of object and its reference frame
# should be already set to a link on the target robot.
common_msgs/Object object
---
# Error code.
# Possible values:
# SUCCESS
# OBJECT_NAME_ALREADY_EXISTS
ErrorCodes error_code
DetachObject
Each robot in the workcell provides its own this service for detaching an object.
# The name of the object we want to detach.
string object_name
---
# Detached object
common_msgs/Object object
# Error code.
# Possible values:
# SUCCESS
# OBJECT_NOT_FOUND
ErrorCodes error_code
GetAllowedCollisionMatrix
Deprecated, use GetRobotDescription.srv
---
# The ACM in this workcell. It tells which objects in the robot and static_obstacles
# can be in collision.
AllowedCollisionMatrix acm
GetCoupledJointLimit
Deprecated, use GetRobotDescription.srv
---
CoupledJointLimit coupled_joint_limit
GetJointLimit
Getting joint limit of the robot. type is corresponding to ACTIVE_JOINTS and ALL_JOINTS for example, if type=0, it represents type=ACTIVE_JOINTS, which is also its default type.
uint8 ACTIVE_JOINTS = 0
uint8 ALL_JOINTS = 1
uint8 type 0
---
common_msgs/JointLimit joint_limit
GetKinematicsModel
This service is to get the kinematics model of the robot.
# Deprecated, use GetRobotDescription.srv
---
KinematicsModel kin_model
GetObject
The name of the object of interest.
string object_name
# If true the returned object's pose is with respect to the workcell root frame.
# If false, return the objects pose with respect to the frame when it was added
bool in_root_frame false
---
# The object of interest.
common_msgs/Object object
# Error code.
# Possible values:
# SUCCESS
# OBJECT_NOT_FOUND
ErrorCodes error_code
GetObjectGroups
This service is to get objects from workcell.
# There more multiple choices for the objects to get of each group:
# - INITIAL_OBJECTS: the static obstacles and the initial roobt objects.
# - EXTERNAL_OBJECTS: the dynamic obstacles and the objects attached to robots.
# - ALL_OBJECTS: all objects in static-obstalce group, dynamic-obstacles groups
# and robot-object groups.
int8 objects_to_get
int8 INITIAL_OBJECTS=1
int8 EXTERNAL_OBJECTS=2
int8 ALL_OBJECTS=3
---
# The objects managed by groups.
ObjectGroupInfo[] object_group_infos
GetObjectNamesInGroup
This service is to get the object names in a group of interest.
# The name of the group.
# It can be either "static_obstacles", or user defined dynamic-obstacle group,
# or a robot's name.
string group_name
---
# The names of the objects in this group.
string[] object_names
# Error code.
# Possible values:
# SUCCESS
# GROUP_NOT_FOUND
ErrorCodes error_code
GetRobotDescription
This service is to get the robot description.
---
KinematicsModel kinematics_model
# All joint limits in the Kinematics Model. Includes passive and active joint limits
common_msgs/JointLimit all_joint_limit
# Tells which objects in the robot and static_obstacles can be in collision.
AllowedCollisionMatrix allowed_collision_matrix
# All robot objects
ObjectGroupInfo robot_object_group_info
CoupledJointLimit[<=1] coupled_joint_limit
WorkspaceConstraint[] workspace_constraints
GetRobotState
This service is to get the latest state of the robot.
---
# The latest state of the robot.
common_msgs/RobotState robot_state
GetRootFrame
This service is to get the root frame of the workcell.
---
# The workcell's root frame.
string root_frame
GetTransform
This service is to get the transform from source_frame to target_frame at a certain time. The service will return with SUCCESS if the two frames are on the tf tree. The implementation will traverse the tf tree to find the common root frame of source frame and target frame, and compute the required transform based on the equation below: source_to_target_tf = root_to_source_tf.get_inverse() * root_to_target_tf
# The source frame.
string source_frame
# The target_frame.
string target_frame
# Getting the transform at a specific time.
# If it is 0, we are getting the latest transform.
# Otherwise the transform will be returned when it is available.
uint32 nanosec 0
---
# The transform from source_frame to target_frame.
# The source_frame will be the header.frame_id
# The target_frame will be the child_frame_id
geometry_msgs/TransformStamped transform
# True if the transform is available at the timestamp.
# Error code.
# Possible values:
# SUCCESS
# SOURCE_FRAME_NOT_FOUND
# TARGET_FRAME_NOT_FOUND
ErrorCodes error_code
RemoveObject
This service is to remove an object from a certain frame.
string object_name
---
# Removed object
common_msgs/Object object
# Error code.
# Possible values:
# SUCCESS
# OBJECT_NOT_FOUND
ErrorCodes error_code
RemoveObjectGroup
The objects in this group will all be removed.
# The name of the group we want to remove.
string group_name
---
# Error code.
# Possible values:
# SUCCESS
# GROUP_NOT_FOUND
ErrorCodes error_code
ResetWorkcell
This service will reset the workcell to it’s initial state, including joint states and object states.
---
# Error code.
# Possible values:
# SUCCESS
# INVALID_WORKCELL_CONFIGURATION
ErrorCodes error_code
SetObjectPose
This service is to update an object’s pose.
# The name of the object.
string object_name
# The new pose of the object.
geometry_msgs/Pose new_pose
string reference_frame
---
# Error code.
# Possible values:
# SUCCESS
# OBJECT_NOT_FOUND
ErrorCodes error_code
SetTransform
This service is to add a new frame or change an existing frame.
geometry_msgs/TransformStamped transform
# The source of the information for this transform.
string authority
# Record this transform as a static transform. It will be good across all time. (This cannot be changed after the first call.)
bool is_static false
---
# Error code.
# Possible values:
# SUCCESS
# INVALID_TRANSFORM
ErrorCodes error_code