Skip to content

Commit 1c41cba

Browse files
Felix Exner (fexner)urrsk
andauthored
Apply suggestions from code review
Co-authored-by: Rune Søe-Knudsen <[email protected]>
1 parent 821e8cd commit 1c41cba

File tree

9 files changed

+58
-51
lines changed

9 files changed

+58
-51
lines changed

ur_controllers/doc/index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ robot family. Currently this contains:
88
* A **speed_scaling_state_broadcaster** that publishes the current execution speed as reported by
99
the robot to a topic interface. Values are floating points between 0 and 1.
1010
* A **scaled_joint_trajectory_controller** that is similar to the *joint_trajectory_controller*\ ,
11-
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.
1212
* A **io_and_status_controller** that allows setting I/O ports, controlling some UR-specific
1313
functionality and publishes status information about the robot.
1414

ur_robot_driver/doc/hardware_interface_parameters.rst

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ Path to the file containing the recipe used for requesting RTDE outputs.
3737
reverse_port (Required)
3838
-----------------------
3939

40-
Port that will be opened to communicate between the driver and the robot controller.
40+
Port that will be used by to communicate between the robot controller and the driver. This port needs to be free and will be opened on the host running the driver.
4141

4242
robot_ip (Required)
4343
-------------------
@@ -52,7 +52,8 @@ Path to the urscript code that will be sent to the robot.
5252
script_sender_port (Required)
5353
-----------------------------
5454

55-
The driver will offer an interface to receive the program's URScript on this port.
55+
Network port which the driver provides the URScript program that needs to run on the robot. This number needs to be configured for the [External Control URCap](https://github.com/UniversalRobots/Universal_Robots_ExternalControl_URCap).
56+
This port needs to be free and will be opened on the host running the driver.
5657

5758
servoj_gain (Required)
5859
----------------------
@@ -77,32 +78,45 @@ tool_baud_rate (Required)
7778

7879
Baud rate used for tool communication. Will be set as soon as the UR-Program on the robot is started. See UR documentation for valid baud rates. Note: This parameter is only evaluated, when the parameter "use_tool_communication" is set to ``true``. Then, this parameter is required.
7980

81+
This can also be configured using the robot teach pendant. Remember to save the installation on the robot to keep the setting after reboot.
82+
8083
tool_parity (Required)
8184
----------------------
8285

8386
Parity used for tool communication. Will be set as soon as the UR-Program on the robot is started. Can be 0 (None), 1 (odd) and 2 (even). Note: This parameter is only evaluated, when the parameter "use_tool_communication" is set to ``true``. Then, this parameter is required.
8487

88+
This can also be configured using the robot teach pendant. Remember to save the installation on the robot to keep the setting after reboot.
89+
8590
tool_rx_idle_chars (Required)
8691
-----------------------------
8792

8893
Number of idle chars for the RX unit used for tool communication. Will be set as soon as the UR-Program on the robot is started. Valid values: min=1.0, max=40.0 Note: This parameter is only evaluated, when the parameter "use_tool_communication" is set to ``true``. Then, this parameter is required.
8994

95+
This can also be configured using the robot teach pendant. Remember to save the installation on the robot to keep the setting after reboot.
96+
9097
tool_stop_bits (Required)
9198
-------------------------
9299

93100
Number of stop bits used for tool communication. Will be set as soon as the UR-Program on the robot is started. Can be 1 or 2. Note: This parameter is only evaluated, when the parameter "use_tool_communication" is set to ``true``. Then, this parameter is required.
94101

102+
This can also be configured using the robot teach pendant. Remember to save the installation on the robot to keep the setting after reboot.
103+
95104
tool_tx_idle_chars (Required)
96105
-----------------------------
97106

98107
Number of idle chars for the TX unit used for tool communication. Will be set as soon as the UR-Program on the robot is started. Valid values: min=0.0, max=40.0 Note: This parameter is only evaluated, when the parameter "use_tool_communication" is set to ``true``. Then, this parameter is required.
99108

109+
This can also be configured using the robot teach pendant. Remember to save the installation on the robot to keep the setting after reboot.
110+
100111
tool_voltage (Required)
101112
-----------------------
102113

103114
Tool voltage that will be set as soon as the UR-Program on the robot is started. Note: This parameter is only evaluated, when the parameter "use_tool_communication" is set to ``true``. Then, this parameter is required.
104115

116+
This can also be configured using the robot teach pendant. Remember to save the installation on the robot to keep the setting after reboot.
117+
105118
use_tool_communication (Required)
106119
---------------------------------
107120

108121
Should the tool's RS485 interface be forwarded to the ROS machine? This is only available on e-Series models. Setting this parameter to ``true`` requires multiple other parameters to be set as well.
122+
For more info please see :ref:`tool communication setup guide <setup-tool-communication>`.
Lines changed: 24 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
.. _operation_modes:
22

3-
Modes of operation
3+
Operation modes
44
==================
55

66
There are two different sets of **modes** that are used throughout this documentation:
77

8-
- The driver's mode of operation (External Control vs Headless)
9-
- (e-series only) The robot's control mode (Local Control Mode vs Remote Control Mode)
8+
- The ROS2 driver's mode of operation: _Teach pendant mode_ and _Headless mode_.
9+
- The Robot's control mode: _Local Control Mode_ and _Remote Control Mode_. (Not applicable to the CB3 series)
1010

1111
Both will be explained below.
1212

1313
Robot's control modes
1414
---------------------
15-
On the e-series the robot itself can operate in different command modes: It can be either in local control mode where the teach pendant is the single point of command or in remote control mode, where motions from the TP, starting & loading programs from the TP activating the freedrive mode are blocked. Note that the remote control mode has to be explicitly enabled in the robot's settings under Settings -> System -> Remote Control. See the robot's manual for details.
15+
E-series robots can operate in different command modes: It can be either in _local control mode_ where the teach pendant is the single point of control, or in _remote control mode_ where the teach pendant is locked and cannot be used to start any motion, including freedrive. Note that the ability to change to _remote control mode_ has to be explicitly enabled in the robot's settings under Settings -> System -> Remote Control. See the [robot manual](https://myur.universal-robots.com/manuals) for details.
1616

1717
The remote control mode is needed for many aspects of this driver such as
1818

@@ -28,45 +28,42 @@ The remote control mode is needed for many aspects of this driver such as
2828
Driver's operation modes
2929
------------------------
3030

31-
There are two fundamentally different modes of operation when using this driver with a UR robot /
32-
URSim: External Control Mode and Headless Mode. Depending on your requirements one can be more
33-
suitable than the other.
31+
There are two fundamentally different control modes of the UR ROS driver to control a UR robot or the URSim robot simulator:
32+
- _Teach pendant mode_ using the :ref:`External Control URCap<install-urcap-e-series>`
33+
- _Headless Mode_ that works without interacting with Teach pendant, when _remote control mode_ has been selected on the teach pendant.
3434

35-
.. _external_control_mode:
35+
.. _teach_pendant_mode:
3636

37-
External Control Mode
37+
Teach Pendant Mode
3838
^^^^^^^^^^^^^^^^^^^^^
3939

40-
In External Control mode you will need the :ref:`External Control URCap<install-urcap-e-series>`
41-
installed on the robot. With that, create a program containing the *External Control* program node.
42-
Once the program enters that node, it will request script code from an external source (in this
43-
case the ROS driver) and execute that.
40+
In Teach Pendant mode you will need the :ref:`External Control URCap<install-urcap-e-series>`
41+
installed on the robot. Please follow the installation guidelines for the :ref:`CB3<install-urcap-cb3>` or :ref:`E-series<install-urcap-e-series>`. Remember to set the correct IP address for the ROS driver host computer, and ensure the configured port number matches the ``script_sender_port`` defined in the ROS driver's launch arguments, default is 50002.
4442

45-
As soon as other script code is sent to the robot either by sending it directly through this driver
46-
or by pressing any motion-related button on the teach pendant, the script will be overwritten by
47-
this action and has to be restarted by using the "play" button on the teach pendant.
43+
With that, create a program containing the *External Control* program node and press "play" on the teach pendant to start the program.
44+
Hereafter the URCap will request script code from the ROS driver and execute it, once the program enters that node. In addition, the ROS driver can return the control to the Teach pendent program. This gives the possibility to combine the teach pendant program and the use of the ROS driver.
45+
46+
Please note that a running program will stop as soon as another program is sent to the robot, either by sending it directly through this driver or by pressing any motion-related button on the teach pendant. Therefore, the ROS drivers will not be able to send commands to the robot again afterward until the ROS driver's program has been restarted. This can be done using the "play" button on the teach pendant.
4847

4948
If this is necessary, you will see the output ``Connection to reverse interface dropped.`` from the driver.
5049

5150
.. note::
52-
It is also possible to use the driver's external control mode with the robot's local control
53-
mode together. In this case you will need to load and start the program containing the *External
54-
Control* program node through the :ref:`dashboard_client`'s ``load_program`` and ``play``
51+
It is also possible to use the ROS driver's _Teach pendant mode_ with the robot's _Remote control
52+
mode_ together. In this case you will need to load and start the program containing the *External
53+
Control URCap* program node through the :ref:`dashboard_client`'s ``load_program`` and ``play``
5554
services.
5655

5756
.. _headless_mode:
5857

5958
Headless mode
6059
^^^^^^^^^^^^^
6160

62-
Inside this driver, there's the headless mode, which can be either enabled or not. When the headless mode is activated, required script code for external control will be sent to the robot directly when the driver starts.
61+
When headless mode is activated while launching the ROS driver, the URScript code will be sent directly to the robot controller and started directly.
6362

64-
As soon as other script code is sent to the robot either by sending it directly through this driver
65-
or by pressing any motion-related button on the teach pendant, the script will be overwritten by
66-
this action and has to be restarted by using the ``/io_and_status_controller/resend_robot_program``
67-
service. If this is necessary, you will see the output ``Connection to reverse interface dropped.``
68-
from the driver.
63+
Please note, that a running program will stop as soon as another program is sent to the robot, either by sending it directly through this driver, or by pressing any motion-related button on the teach pendant. Therefore, the ROS driver will not be able to send commands to the robot again afterward until the ROS driver's program has been restarted.
64+
The robot program can be restarted using the ``/io_and_status_controller/resend_robot_program`` service.
65+
If this is necessary, you will see the output ``Connection to reverse interface dropped.`` from the driver.
6966

7067
.. note::
71-
On e-Series robots the robot must be in remote_control_mode as explained above in order to use the
72-
driver's Headless Mode.
68+
On e-Series robots and newer, the robot must be in _remote control mode_ as explained above in order to use the
69+
ROS driver's _headless mode_.

ur_robot_driver/doc/usage/controllers.rst

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -83,14 +83,10 @@ Type: :ref:`ur_controllers/ScaledJointTrajectoryController <scaled_jtc>`
8383
Scaled version of the
8484
`joint_trajectory_controller
8585
<https://control.ros.org/master/doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.html>`_.
86-
It uses the robot's speed scaling information and can also be paused when pausing the *External
87-
Control* program. See it's linked documentation for details.
86+
It uses the robot's speed scaling information and thereby the safety compliance features, like pause on safeguard stop. In addition, it also makes it possible to adjust execution speed using the speed slider on the teach pendant or set the program in pause and restart it again.
87+
See it's linked documentation for details.
8888

8989
.. note::
90-
91-
It is planned to replace this controller with ros2_control's joint_trajectory_controller once
92-
that has received the capability of being scaled, as well.
93-
9490
io_and_status_controller
9591
^^^^^^^^^^^^^^^^^^^^^^^^
9692

ur_robot_driver/doc/usage/move.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,16 @@
33
Move the robot
44
==============
55

6-
Before running any commands, first check the controllers' state using ``ros2 control list_controllers`` (Remember to install the ``ros2controlcli`` package).
6+
First check the controllers' state using ``ros2 control list_controllers``, before running any commands. (Remember to install the ``ros2controlcli`` package).
77

88

9-
* Send some goal to the Joint Trajectory Controller by using a demo node from `ros2_controllers_test_nodes <https://github.com/ros-controls/ros2_controllers/blob/master/ros2_controllers_test_nodes/ros2_controllers_test_nodes/publisher_joint_trajectory_controller.py>`_ package by starting the following command in another terminal:
9+
* Send goals to the Joint Trajectory Controller by using a demo node from `ros2_controllers_test_nodes <https://github.com/ros-controls/ros2_controllers/blob/master/ros2_controllers_test_nodes/ros2_controllers_test_nodes/publisher_joint_trajectory_controller.py>`_ package by starting the following command in another terminal:
1010

1111
.. code-block:: console
1212
1313
$ ros2 launch ur_robot_driver test_scaled_joint_trajectory_controller.launch.py
1414
15-
After a few seconds the robot should move.
15+
The robot should move, after a few seconds.
1616

1717
* To test another controller, simply define it using ``initial_joint_controller`` argument, for example when using mock hardware:
1818

ur_robot_driver/doc/usage/script_code.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@ Be aware, that running a program on this interface (meaning publishing script co
2121
Thus, the motion-interpreting program that is started by the driver gets stopped and has to be
2222
restarted again. Depending whether you use :ref:`headless_mode` or not, you'll have to call the
2323
``resend_program`` service or press the ``play`` button on the teach panel to start the
24-
external_control program again.
24+
external control URCap program again.
2525

2626
.. note::
27-
On E-series robots or newer the robot needs to be in remote control mode in order to execute custom URScript commands.
27+
On E-series robots or newer the robot needs to be in _remote control mode_ in order to execute custom URScript commands.
2828
Currently, there is no feedback on the code's correctness. If the code sent to the
2929
robot is incorrect, it will silently not get executed. Make sure that you send valid URScript code!
3030

ur_robot_driver/doc/usage/simulation.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
Simulation
22
==========
33

4-
As mentioned in the last section the driver has two basic modes of operation: Using mock hardware or
5-
using real hardware (Or the URSim simulator, which is equivalent from the driver's perspective).
4+
Apart from being used with a real robot, the ROS driver can be used with ros2_control's mock hardware or the URSim simulator (which is equivalent from the driver's perspective).
5+
66
Additionally, the robot can be simulated using
77
`Gazebo Classic <https://github.com/UniversalRobots/Universal_Robots_ROS2_Gazebo_Simulation>`_ or
88
`GZ Sim <https://github.com/UniversalRobots/Universal_Robots_ROS2_Ignition_Simulation>`_ but that's

ur_robot_driver/doc/usage/startup.rst

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Startup the driver
66
Prepare the robot
77
-----------------
88

9-
If you want to use a real robot (Or a URSim simulator) with this driver, you need to prepare it,
9+
If you want to use a real robot, or a URSim simulator, with this driver, you need to prepare it,
1010
first. Make sure that you complete all steps from the :ref:`setup instructions<robot_setup>`,
1111
installed the External Control URCap and created a program as explained
1212
:ref:`here<install-urcap-e-series>`.
@@ -54,13 +54,13 @@ Also, there are predefined launch files for all supported types of UR robots.
5454
Finish startup on the robot
5555
---------------------------
5656

57-
Unless :ref:`headless_mode` is used, you will now have to start the *External Control* program on
57+
Unless :ref:`headless_mode` is used, you will now have to start the *External Control URCap* program on
5858
the robot that you have created earlier.
5959

6060
Depending on the :ref:`robot control mode<operation_modes>` do the following:
6161

62-
* In local control mode, load the program on the robot and press the "Play" button |play_button| on the teach pendant.
63-
* In remote control mode load and start the program using the following dashboard calls:
62+
* In _local control mode_, load the program on the robot and press the "Play" button |play_button| on the teach pendant.
63+
* In _remote control mode_ load and start the program using the following dashboard calls:
6464

6565
.. code-block:: console
6666
@@ -75,7 +75,7 @@ Depending on the :ref:`robot control mode<operation_modes>` do the following:
7575
Continuation after interruptions
7676
--------------------------------
7777

78-
Whenever the *External Control* program gets interrupted, it has to be unpaused / restarted.
78+
Whenever the *External Control URCap* program gets interrupted, it has to be unpaused / restarted.
7979

8080
If that happens, you will see the output ``Connection to reverse interface dropped.``
8181

@@ -91,8 +91,8 @@ This can happen, e,g, when
9191

9292
Depending on the operation mode, perform one of the following steps:
9393

94-
* In local control mode, simply press the "Play" button |play_button| on the teach pendant.
95-
* In remote control mode start the program using the following dashboard call:
94+
* In _local control mode_, simply press the "Play" button |play_button| on the teach pendant.
95+
* In _remote control mode_ start the program using the following dashboard call:
9696

9797
.. code-block:: console
9898

ur_robot_driver/doc/usage/toc.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ interface. Ready to receive control commands.``
8484

8585
In general, make sure you're starting up the robot as explained :ref:`here<ur_robot_driver_startup>`.
8686

87-
When starting the program on the TP, I get an error "The connection to the remote PC could not be established"
87+
When starting the program on the teach pendant, I get an error "The connection to the remote PC could not be established"
8888
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
8989

9090
Make sure, the IP address setup is correct, as described in the setup guides

0 commit comments

Comments
 (0)