Niryo_robot_poses_handlers
======================================================
This package is in charge of dealing with transforms, workspace, grips and
trajectories.
Poses handlers node
--------------------------
Description - Poses handlers
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The ROS Node is made of several services to deal with transforms, workspace, grips and
trajectories.
The namespace used is: |namespace_emphasize|
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 introduce 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. Camera detects object 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.
Poses & trajectories
""""""""""""""""""""""""""""""""""
List of poses
Parameters - Poses handlers
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. list-table:: Poses Handlers' Parameters
:header-rows: 1
:widths: auto
:stub-columns: 0
:align: center
* - Name
- Description
* - ``workspace_dir``
- Path to the Workspace storage mother folder
* - ``grip_dir``
- Path to the Grip storage mother folder
* - ``poses_dir``
- Path to the Poses storage mother folder
* - ``trajectories_dir``
- Path to the Trajectory storage mother folder
Services - Poses handlers
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. list-table:: Poses Handlers' Services
:header-rows: 1
:widths: auto
:stub-columns: 0
:align: center
* - Name
- Message Type
- Description
* - ``manage_workspace``
- :ref:`ManageWorkspace