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
The camera detects objects relative to markers and sends xrel, yrel, yawrel.
The object is placed on the workspace, revealing the object pose in robot coordinates x, y, z, roll, pitch, yaw.
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 |
List of saved dynamic frames |
|
/niryo_robot_poses_handlers/pose_list |
List of saved relative poses |
|
/niryo_robot_poses_handlers/relative_pose |
List of saved poses with x axis forward (deprecated) |
|
/niryo_robot_poses_handlers/relative_pose_v2 |
List of saved relative poses with z axis forward |
|
/niryo_robot_poses_handlers/workspace_list |
List of saved workspaces name & description |
|
/rosout |
N/A |
|
/tf |
N/A |
Subscribers
Topic Name |
Type |
Description |
---|---|---|
/niryo_robot/robot_state_v2 |
Publish the robot state (TCP pose with z-axis forward and TCP speed) |
|
/niryo_robot_tools_commander/current_id |
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 |
Get a given saved dynamic frame |
|
/niryo_robot_poses_handlers/get_dynamic_frame_list |
Get the list of saved dynamic frames |
|
/niryo_robot_poses_handlers/get_loggers |
roscpp/GetLoggers |
N/A |
/niryo_robot_poses_handlers/get_pose |
Get a given saved pose |
|
/niryo_robot_poses_handlers/get_pose_list |
Get the list of saved poses name & description |
|
/niryo_robot_poses_handlers/get_target_pose |
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 |
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 |
Get transform the between 2 known frames |
|
/niryo_robot_poses_handlers/get_workspace_list |
Get the list of saved workspaces name & description |
|
/niryo_robot_poses_handlers/get_workspace_matrix_poses |
Get the 4 corners of a given workspace in Point/Quaternion formatrelative to the robot frame |
|
/niryo_robot_poses_handlers/get_workspace_points |
Get the 4 corners of a given workspace in Point formatrelative to the robot frame |
|
/niryo_robot_poses_handlers/get_workspace_poses |
Get the 4 corners of a given workspace in Pose format relative to the robot frame |
|
/niryo_robot_poses_handlers/get_workspace_ratio |
Get workspace’s ratio |
|
/niryo_robot_poses_handlers/manage_dynamic_frame |
Save/Edit/Delete a dynamic frame |
|
/niryo_robot_poses_handlers/manage_pose |
Save/Delete a Pose |
|
/niryo_robot_poses_handlers/manage_workspace |
Save/Delete a workspace |
|
/niryo_robot_poses_handlers/set_logger_level |
roscpp/SetLoggerLevel |
N/A |
/niryo_robot_poses_handlers/set_relative_transform_frame |
Set the relative transform frame |
|
/niryo_robot_poses_handlers/tf2_frames |
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