You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: ur_controllers/doc/index.rst
+62Lines changed: 62 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,6 +11,8 @@ robot family. Currently this contains:
11
11
but it uses the speed scaling reported to align progress of the trajectory between the robot and controller.
12
12
* A **io_and_status_controller** that allows setting I/O ports, controlling some UR-specific
13
13
functionality and publishes status information about the robot.
14
+
* A **tool_contact_controller** that exposes an action to enable the tool contact function on the robot.
15
+
* A **trajectory_until_node**. This is not a controller in itself, but allows for executing a trajectory with any of the motion controllers while having tool contact enabled.
14
16
15
17
About this package
16
18
------------------
@@ -378,3 +380,63 @@ The controller provides the ``~/enable_freedrive_mode`` topic of type ``[std_msg
378
380
* to deactivate freedrive mode is enough to publish a ``False`` msg on the indicated topic or
379
381
to deactivate the controller or to stop publishing ``True`` on the enable topic and wait for the
380
382
controller timeout.
383
+
384
+
.. _tool_contact_controller:
385
+
386
+
ur_controllers/ToolContactController
387
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
388
+
This controller can enable tool contact on the robot. When tool contact is enabled,
389
+
and the robot senses that the tool has made contact with something, it will stop all motion,
390
+
and retract to where it first sensed the contact.
391
+
This controller can be used with any of the motion controllers.
392
+
This is not a complete interface of the URScript function ``tool_contact(direction)``, as it does not allow for choosing the direction.
393
+
The direction of tool contact will always be the current TCP direction of movement.
This is not a controller in itself, but it allows the user to execute a trajectory with tool contact enabled without having to call 2 actions at the same time.
425
+
This means that the trajectory will execute until either the trajectory is finished or tool contact has been triggered.
426
+
Both scenarios will result in the trajectory being reported as successful.
427
+
428
+
Action interface / usage
429
+
""""""""""""""""""""""""
430
+
The node provides an action to execute a trajectory with tool contact enabled. For the node to accept action goals, both the motion controller and the tool contact controller need to be in ``active`` state.
The action contains all the same fields as the ordinary `FollowJointTrajectory <http://docs.ros.org/en/noetic/api/control_msgs/html/action/FollowJointTrajectory.html>`_ action, but has two additional fields.
435
+
One in the goal section called ``until_type``, which is used to choose between different conditions that can stop the trajectory. Currently only tool contact is available.
436
+
The result section contains the other new field called ``until_condition_result``, which reports whether the chosen condition was triggered or not, and also error codes if something went wrong with the controller responsible for the until condition.
437
+
438
+
Implementation details
439
+
""""""""""""""""""""""
440
+
Upon instantiation of the node, the internal trajectory action client will connect to an action named ``motion_controller/follow_joint_trajectory``.
441
+
This action does not exist, but upon launch of the driver, the node is remapped to connect to the ``initial_joint_controller``, default is ``scaled_joint_trajectory_controller``.
442
+
If you wish to use the node with another motion controller use the launch argument ``initial_joint_controller:=<your_motion_controller>`` when launching the driver.
0 commit comments