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

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