11ur_controllers
22==============
33
4- This package contains controllers and hardware interface for ``ros_control `` that are special to the UR
4+ This package contains controllers and hardware interface for ``ros2_controllers `` that are special to the UR
55robot family. Currently this contains:
66
77
8- * A **speed_scaling_interface ** to read the value of the current speed scaling into controllers.
9- * A **scaled_joint_command_interface ** that provides access to joint values and commands in
10- combination with the speed scaling value.
11- * A **speed_scaling_state_controller ** that publishes the current execution speed as reported by
8+ * A **speed_scaling_state_broadcaster ** that publishes the current execution speed as reported by
129 the robot to a topic interface. Values are floating points between 0 and 1.
1310* A **scaled_joint_trajectory_controller ** that is similar to the *joint_trajectory_controller *\ ,
14- but it uses the speed scaling reported by the robot to reduce progress in the trajectory.
11+ but it uses the speed scaling reported to align progress of the trajectory between the robot and controller.
12+ * A **io_and_status_controller ** that allows setting I/O ports, controlling some UR-specific
13+ functionality and publishes status information about the robot.
1514
1615About this package
1716------------------
1817
19- This package contains controllers not being available in the default ``ros_control `` set. They are
20- created to support more features offered by the UR robot family. Any of these controllers are
18+ This package contains controllers not being available in the default ``ros2_controllers `` set. They are
19+ created to support more features offered by the UR robot family. Some of these controllers are
2120example implementations for certain features and are intended to be generalized and merged
22- into the default ``ros_control `` controller set at some future point.
21+ into the default ``ros2_controllers `` controller set at some future point.
2322
2423Controller description
2524----------------------
2625
2726This packages offers a couple of specific controllers that will be explained in the following
2827sections.
2928
29+ .. _speed_scaling_state_broadcaster :
30+
3031ur_controllers/SpeedScalingStateBroadcaster
3132^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
3233
@@ -41,8 +42,10 @@ fields ``speed_scaling`` (which should be equal to the value shown by the speed
4142teach pendant) and ``target_speed_fraction `` (Which is the fraction to which execution gets slowed
4243down by the controller).
4344
44- position_controllers/ScaledJointTrajectoryController and velocity_controllers/ScaledJointTrajectoryController
45- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
45+ .. _scaled_jtc :
46+
47+ ur_controlers/ScaledJointTrajectoryController
48+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4649
4750These controllers work similar to the well-known
4851`joint_trajectory_controller <https://control.ros.org/master/doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.html >`_.
@@ -97,3 +100,36 @@ Under the hood this is implemented by proceeding the trajectory not by a full ti
97100the fraction determined by the current speed scaling. If speed scaling is currently at 50% then
98101interpolation of the current control cycle will start half a time step after the beginning of the
99102previous control cycle.
103+
104+ .. _io_and_status_controller :
105+
106+ ur_controllers/GPIOController
107+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
108+
109+ This controller allows setting I/O ports, controlling some UR-specific functionality and publishes
110+ status information about the robot.
111+
112+ Published topics
113+ """"""""""""""""
114+
115+ * ``~/io_states [ur_msgs/msg/IOStates] ``: Status of all I/O ports
116+ * ``~/robot_mode [ur_dashboard_msgs/msg/RobotMode] ``: The current robot mode (e.g. ``POWER_OFF ``,
117+ ``IDLE ``, ``RUNNING ``)
118+ * ``~/robot_program_running [std_msgs/msg/Bool] ``: Publishes whether **the External Control
119+ program ** is running or not. If this is ``false `` no commands can be sent to the robot.
120+ * ``~/safety_mode [ur_dashboard_msgs/msg/SafetyMode] ``: The robot's current safety mode (e.g.
121+ ``PROTECTIVE_STOP ``, ``ROBOT_EMERGENCY_STOP ``, ``NORMAL ``)
122+ * ``~/tool_data [ur_msgs/msg/ToolDataMsg] ``: Information about the robot's tool configuration
123+
124+ Advertised services
125+ """""""""""""""""""
126+
127+ * ``~/hand_back_control [std_srvs/srv/Trigger] ``: Calling this service will make the robot program
128+ exit the *External Control * program node and continue with the rest of the program.
129+ * ``~/resend_robot_program [std_srvs/srv/Trigger] ``: When :ref: `headless_mode ` is used, this
130+ service can be used to restart the *External Control * program on the robot.
131+ * ``~/set_io [ur_msgs/srv/SetIO] ``: Set an output pin on the robot.
132+ * ``~/set_payload [ur_msgs/srv/SetPayload] ``: Change the robot's payload on-the-fly.
133+ * ``~/set_speed_slider [ur_msgs/srv/SetSpeedSliderFraction] ``: Set the value of the speed slider.
134+ * ``~/zero_ftsensor [std_srvs/srv/Trigger] ``: Zeroes the reported wrench of the force torque
135+ sensor.
0 commit comments