workcell_description_interfaces =============================== ``workcell_description_interfaces`` defines 29 interface(s). Messages -------- AllowedCollisionEntry ~~~~~~~~~~~~~~~~~~~~~ whether or not collision checking is enabled .. code-block:: text bool[] enabled AllowedCollisionMatrix ~~~~~~~~~~~~~~~~~~~~~~ The list of entry names in the matrix. The names are object names .. code-block:: text 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 .. code-block:: text float64[] a_matrix # (x vector) Defined active joints in the KinematicsModel string[] joint_names # (b vector) float64[] limits ErrorCodes ~~~~~~~~~~ .. code-block:: text 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. .. code-block:: text 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. .. code-block:: text 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 .. code-block:: text 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 ~~~~~~~~~~~~~~~ .. code-block:: text 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. .. code-block:: text 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. .. code-block:: text 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. .. code-block:: text 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. .. code-block:: text # 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. .. code-block:: text # 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 .. code-block:: text --- # 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 .. code-block:: text --- 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. .. code-block:: text 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. .. code-block:: text # Deprecated, use GetRobotDescription.srv --- KinematicsModel kin_model GetObject ~~~~~~~~~ The name of the object of interest. .. code-block:: text 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. .. code-block:: text # 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. .. code-block:: text # 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. .. code-block:: text --- 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. .. code-block:: text --- # The latest state of the robot. common_msgs/RobotState robot_state GetRootFrame ~~~~~~~~~~~~ This service is to get the root frame of the workcell. .. code-block:: text --- # 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 .. code-block:: text # 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. .. code-block:: text 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. .. code-block:: text # 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. .. code-block:: text --- # Error code. # Possible values: # SUCCESS # INVALID_WORKCELL_CONFIGURATION ErrorCodes error_code SetObjectPose ~~~~~~~~~~~~~ This service is to update an object's pose. .. code-block:: text # 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. .. code-block:: text 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