Niryo robot poses handlers

This package is in charge of dealing with transforms, workspace, grips and trajectories.

It belongs to the ROS namespace: /niryo_robot_poses_handlers.

Workspaces

A workspace is defined by 4 markers that form a rectangle. With the help of the robot’s calibration tip, the marker positions are learned. The camera returns poses (x, y, yaw) relative to the workspace. We can then infer the absolute object pose in robot coordinates.

Grips

When we know the object pose in robot coordinates, we can’t directly send this pose to the robot because we specify the target pose of the tool_link and not of the actual TCP (tool center point). Therefore we introduced the notion of grip. Each end effector has its own grip that specifies where to place the robot with respect to the object.

Currently, the notion of grip is not part of the python/tcp/blockly interface because it would add an extra layer of complexity that is not really necessary for the moment.

Therefore we have a default grip for all tools that is selected automatically based on the current tool id. However, everything is ready if you want to define custom grips, e.g. for custom tools or for custom grip positions.

The vision pick loop

  1. The camera detects objects relative to markers and sends xrel, yrel, yawrel.

  2. The object is placed on the workspace, revealing the object pose in robot coordinates x, y, z, roll, pitch, yaw.

  3. The grip is applied on the absolute object pose and gives the pose the robot should move to.

Dynamic frames

Note

This part is still in progress.

Poses & trajectories

Note

This part is still in progress.

Package Documentation

ROS topics

Publishers

Topic Name

Type

Description

/niryo_robot_poses_handlers/dynamic_frame_list

niryo_robot_msgs/BasicObjectArray

List of saved dynamic frames

/niryo_robot_poses_handlers/pose_list

niryo_robot_msgs/BasicObjectArray

List of saved relative poses

/niryo_robot_poses_handlers/relative_pose

geometry_msgs/PoseStamped

List of saved poses with x axis forward (deprecated)

/niryo_robot_poses_handlers/relative_pose_v2

geometry_msgs/PoseStamped

List of saved relative poses with z axis forward

/niryo_robot_poses_handlers/workspace_list

niryo_robot_msgs/BasicObjectArray

List of saved workspaces name & description

/rosout

rosgraph_msgs/Log

N/A

/tf

tf2_msgs/TFMessage

N/A

Subscribers

Topic Name

Type

Description

/niryo_robot/robot_state_v2

niryo_robot_msgs/RobotState

Publish the robot state (TCP pose with z-axis forward and TCP speed)

/niryo_robot_tools_commander/current_id

std_msgs/Int32

Publish the current detected tool ID

/niryo_robot_tools_commander/tcp

niryo_robot_tools_commander/TCP

Publish the TCP (Tool Center Point) state (enabled/disabled) and transformation between the tool_link and the TCP. The end-effector is considered with the x-axis forward (deprecated)

ROS Services

Service Name

Type

Description

/niryo_robot_poses_handlers/get_dynamic_frame

niryo_robot_poses_handlers/GetDynamicFrame

Get a given saved dynamic frame

/niryo_robot_poses_handlers/get_dynamic_frame_list

niryo_robot_msgs/GetNameDescriptionList

Get the list of saved dynamic frames

/niryo_robot_poses_handlers/get_loggers

roscpp/GetLoggers

N/A

/niryo_robot_poses_handlers/get_pose

niryo_robot_poses_handlers/GetPose

Get a given saved pose

/niryo_robot_poses_handlers/get_pose_list

niryo_robot_msgs/GetNameDescriptionList

Get the list of saved poses name & description

/niryo_robot_poses_handlers/get_target_pose

niryo_robot_poses_handlers/GetTargetPose

Get the robot pose with x axis forward that can be used to grab an object which is positioned relative to the given workspace (deprecated)

/niryo_robot_poses_handlers/get_target_pose_v2

niryo_robot_poses_handlers/GetTargetPose

Get the robot pose with é axis forward that can be used to grab an object which is positioned relative to the given workspace

/niryo_robot_poses_handlers/get_transform_pose

niryo_robot_poses_handlers/GetTransformPose

Get transform the between 2 known frames

/niryo_robot_poses_handlers/get_workspace_list

niryo_robot_msgs/GetNameDescriptionList

Get the list of saved workspaces name & description

/niryo_robot_poses_handlers/get_workspace_matrix_poses

niryo_robot_poses_handlers/GetWorkspaceMatrixPoses

Get the 4 corners of a given workspace in Point/Quaternion formatrelative to the robot frame

/niryo_robot_poses_handlers/get_workspace_points

niryo_robot_poses_handlers/GetWorkspacePoints

Get the 4 corners of a given workspace in Point formatrelative to the robot frame

/niryo_robot_poses_handlers/get_workspace_poses

niryo_robot_poses_handlers/GetWorkspaceRobotPoses

Get the 4 corners of a given workspace in Pose format relative to the robot frame

/niryo_robot_poses_handlers/get_workspace_ratio

niryo_robot_poses_handlers/GetWorkspaceRatio

Get workspace’s ratio

/niryo_robot_poses_handlers/manage_dynamic_frame

niryo_robot_poses_handlers/ManageDynamicFrame

Save/Edit/Delete a dynamic frame

/niryo_robot_poses_handlers/manage_pose

niryo_robot_poses_handlers/ManagePose

Save/Delete a Pose

/niryo_robot_poses_handlers/manage_workspace

niryo_robot_poses_handlers/ManageWorkspace

Save/Delete a workspace

/niryo_robot_poses_handlers/set_logger_level

roscpp/SetLoggerLevel

N/A

/niryo_robot_poses_handlers/set_relative_transform_frame

niryo_robot_msgs/SetString

Set the relative transform frame

/niryo_robot_poses_handlers/tf2_frames

tf2_msgs/FrameGraph

N/A

ROS Parameters

Parameter Name

Default value

Simulation value

Unit

Description

/niryo_robot_poses_handlers/dynamic_frame_dir

$(env HOME)/niryo_robot_saved_files/niryo_robot_dynamic_frame/

$(env HOME)/niryo_robot_saved_files/niryo_robot_dynamic_frame/

string

Path to the dynamic frames storage folder

/niryo_robot_poses_handlers/gazebo_workspaces/gazebo_1

[[0.337, 0.087, 0.001], [0.337, -0.087, 0.001], [0.163, -0.087, 0.001], [0.163, 0.087, 0.001]]

N/A

N/A

N/A

/niryo_robot_poses_handlers/gazebo_workspaces/gazebo_2

[[-0.0915, 0.3415, 0.001], [0.0915, 0.3415, 0.001], [0.0915, 0.1585, 0.001], [-0.0915, 0.1585, 0.001]]

N/A

N/A

N/A

/niryo_robot_poses_handlers/grip_dir

/root/catkin_ws/install/release/share/niryo_robot_poses_handlers/grips/ned2/

N/A

string

Path to the Grip storage folder

/niryo_robot_poses_handlers/initialized

True

N/A

N/A

N/A

/niryo_robot_poses_handlers/log_level

INFO

N/A

N/A

N/A

/niryo_robot_poses_handlers/poses_dir

$(env HOME)/niryo_robot_saved_files/niryo_robot_poses/

$(env HOME)/niryo_robot_saved_files/niryo_robot_poses/

string

Path to the Poses storage folder

/niryo_robot_poses_handlers/trajectories_dir

$(env HOME)/niryo_robot_saved_files/niryo_robot_trajectories/

$(env HOME)/niryo_robot_saved_files/niryo_robot_trajectories/

string

Path to the trajectories storage folder

/niryo_robot_poses_handlers/workspace_dir

$(env HOME)/niryo_robot_saved_files/niryo_robot_workspaces/

$(env HOME)/niryo_robot_saved_files/niryo_robot_workspaces/

string

Path to the Workspace storage folder

ROS Action

Namespace: None