Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/main' into forward_controller
Browse files Browse the repository at this point in the history
  • Loading branch information
fmauch committed Oct 2, 2024
2 parents 1389c3c + 1d1f4c5 commit e042de9
Show file tree
Hide file tree
Showing 19 changed files with 987 additions and 569 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/update-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
# Create pull request
- name: Create pull-request
id: cpr
uses: peter-evans/create-pull-request@v6
uses: peter-evans/create-pull-request@v7
with:
branch: update-ci/pre-commit-autoupdate
delete-branch: true
Expand Down
2 changes: 1 addition & 1 deletion ur_controllers/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# ur_controllers

This package contains controllers and hardware interface for `ros_control` that are special to the UR
This package contains controllers and hardware interface for `ros2_control` that are special to the UR
robot family. Currently this contains

* A **speed_scaling_interface** to read the value of the current speed scaling into controllers.
Expand Down
58 changes: 47 additions & 11 deletions ur_controllers/doc/index.rst
Original file line number Diff line number Diff line change
@@ -1,32 +1,33 @@
ur_controllers
==============

This package contains controllers and hardware interface for ``ros_control`` that are special to the UR
This package contains controllers and hardware interface for ``ros2_controllers`` that are special to the UR
robot family. Currently this contains:


* A **speed_scaling_interface** to read the value of the current speed scaling into controllers.
* A **scaled_joint_command_interface** that provides access to joint values and commands in
combination with the speed scaling value.
* A **speed_scaling_state_controller** that publishes the current execution speed as reported by
* A **speed_scaling_state_broadcaster** that publishes the current execution speed as reported by
the robot to a topic interface. Values are floating points between 0 and 1.
* A **scaled_joint_trajectory_controller** that is similar to the *joint_trajectory_controller*\ ,
but it uses the speed scaling reported by the robot to reduce progress in the trajectory.
but it uses the speed scaling reported to align progress of the trajectory between the robot and controller.
* A **io_and_status_controller** that allows setting I/O ports, controlling some UR-specific
functionality and publishes status information about the robot.

About this package
------------------

This package contains controllers not being available in the default ``ros_control`` set. They are
created to support more features offered by the UR robot family. Any of these controllers are
This package contains controllers not being available in the default ``ros2_controllers`` set. They are
created to support more features offered by the UR robot family. Some of these controllers are
example implementations for certain features and are intended to be generalized and merged
into the default ``ros_control`` controller set at some future point.
into the default ``ros2_controllers`` controller set at some future point.

Controller description
----------------------

This packages offers a couple of specific controllers that will be explained in the following
sections.

.. _speed_scaling_state_broadcaster:

ur_controllers/SpeedScalingStateBroadcaster
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Expand All @@ -41,8 +42,10 @@ fields ``speed_scaling`` (which should be equal to the value shown by the speed
teach pendant) and ``target_speed_fraction`` (Which is the fraction to which execution gets slowed
down by the controller).

position_controllers/ScaledJointTrajectoryController and velocity_controllers/ScaledJointTrajectoryController
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. _scaled_jtc:

ur_controlers/ScaledJointTrajectoryController
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

These controllers work similar to the well-known
`joint_trajectory_controller <https://control.ros.org/master/doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.html>`_.
Expand Down Expand Up @@ -97,3 +100,36 @@ Under the hood this is implemented by proceeding the trajectory not by a full ti
the fraction determined by the current speed scaling. If speed scaling is currently at 50% then
interpolation of the current control cycle will start half a time step after the beginning of the
previous control cycle.

.. _io_and_status_controller:

ur_controllers/GPIOController
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

This controller allows setting I/O ports, controlling some UR-specific functionality and publishes
status information about the robot.

Published topics
""""""""""""""""

* ``~/io_states [ur_msgs/msg/IOStates]``: Status of all I/O ports
* ``~/robot_mode [ur_dashboard_msgs/msg/RobotMode]``: The current robot mode (e.g. ``POWER_OFF``,
``IDLE``, ``RUNNING``)
* ``~/robot_program_running [std_msgs/msg/Bool]``: Publishes whether **the External Control
program** is running or not. If this is ``false`` no commands can be sent to the robot.
* ``~/safety_mode [ur_dashboard_msgs/msg/SafetyMode]``: The robot's current safety mode (e.g.
``PROTECTIVE_STOP``, ``ROBOT_EMERGENCY_STOP``, ``NORMAL``)
* ``~/tool_data [ur_msgs/msg/ToolDataMsg]``: Information about the robot's tool configuration

Advertised services
"""""""""""""""""""

* ``~/hand_back_control [std_srvs/srv/Trigger]``: Calling this service will make the robot program
exit the *External Control* program node and continue with the rest of the program.
* ``~/resend_robot_program [std_srvs/srv/Trigger]``: When :ref:`headless_mode` is used, this
service can be used to restart the *External Control* program on the robot.
* ``~/set_io [ur_msgs/srv/SetIO]``: Set an output pin on the robot.
* ``~/set_payload [ur_msgs/srv/SetPayload]``: Change the robot's payload on-the-fly.
* ``~/set_speed_slider [ur_msgs/srv/SetSpeedSliderFraction]``: Set the value of the speed slider.
* ``~/zero_ftsensor [std_srvs/srv/Trigger]``: Zeroes the reported wrench of the force torque
sensor.
4 changes: 2 additions & 2 deletions ur_robot_driver/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@ For using the **tool communication interface** on e-Series robots, a `socat` scr
forward the robot's tool communication interface to a local device on the ROS PC. See [the tool
communication setup guide](doc/setup_tool_communication.rst) for details.

This driver is using [ROS-Control](https://wiki.ros.org/ros_control) for any control statements.
Therefore, it can be used with all position-based controllers available in ROS-Control. However, we
This driver is using [`ros2_control`](https://control.ros.org) for any control statements.
Therefore, it can be used with all position-based controllers available in `ros2_control`. However, we
recommend using the controllers from the `ur_controllers` package. See it's
[documentation](../ur_controllers/README.md) for details. **Note: Speed scaling support will only be
available using the controllers from `ur_controllers`**
Expand Down
264 changes: 0 additions & 264 deletions ur_robot_driver/doc/ROS_INTERFACE.rst

This file was deleted.

Loading

0 comments on commit e042de9

Please sign in to comment.