From 23a32db9ab87193ac0cf06432cb7ff7cb0bbba25 Mon Sep 17 00:00:00 2001 From: Carter Sifferman Date: Wed, 18 Dec 2024 16:04:57 -0600 Subject: [PATCH 1/3] improve docs around calibration --- .../doc/installation/robot_setup.rst | 9 ++++++--- ur_robot_driver/doc/usage/startup.rst | 18 ++++++++++++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/ur_robot_driver/doc/installation/robot_setup.rst b/ur_robot_driver/doc/installation/robot_setup.rst index 321d0f90..83e35dff 100644 --- a/ur_robot_driver/doc/installation/robot_setup.rst +++ b/ur_robot_driver/doc/installation/robot_setup.rst @@ -69,11 +69,11 @@ Prepare the ROS PC For using the driver make sure it is installed (either by the debian package or built from source inside a colcon workspace). +.. _calibration_extraction: + Extract calibration information ------------------------------- -.. _calibration_extraction: - Each UR robot is calibrated inside the factory giving exact forward and inverse kinematics. To also make use of this in ROS, you first have to extract the calibration information from the robot. @@ -88,4 +88,7 @@ For this, there exists a helper script: robot_ip:= target_filename:="${HOME}/my_robot_calibration.yaml" For the parameter ``robot_ip`` insert the IP address on which the ROS pc can reach the robot. As -``target_filename`` provide an absolute path where the result will be saved to. +``target_filename`` provide an absolute path where the result will be saved to. The robot must be +powered on (can be idle) before executing this script. + +See :ref:`ur_robot_driver_startup` for instructions on using the extracted calibration information. \ No newline at end of file diff --git a/ur_robot_driver/doc/usage/startup.rst b/ur_robot_driver/doc/usage/startup.rst index 8db29bb6..63bd02b3 100644 --- a/ur_robot_driver/doc/usage/startup.rst +++ b/ur_robot_driver/doc/usage/startup.rst @@ -28,6 +28,7 @@ Allowed ``ur_type`` strings: ``ur3``, ``ur3e``, ``ur5``, ``ur5e``, ``ur10``, ``u Other important arguments are: +* ``kinematics_params_file`` (default: *None*) - Path to the calibration file extracted from the robot, as described in :ref:`calibration_extraction`. * ``use_mock_hardware`` (default: *false* ) - Use simple hardware emulator from ros2_control. Useful for testing launch files, descriptions, etc. * ``headless_mode`` (default: *false*) - Start driver in :ref:`headless_mode`. * ``launch_rviz`` (default: *true*) - Start RViz together with the driver. @@ -72,6 +73,23 @@ Depending on the :ref:`robot control mode` do the following: .. _continuation_after_interruptions: +Verify calibration info is being used correctly +----------------------------------------------- + +.. _verify_calibration: + +If you passed a path to extracted calibration via the *kinematics_params_file* +parameter, verify that the checksum of the loaded calibration matches that of your extracted +calibration. Search for the term *checksum* in the console output after launching the driver, +and you should see: + +.. code-block:: console + + $ [INFO] [1694437690.406932381] [URPositionHardwareInterface]: Calibration checksum: 'calib_xxxxxxxxxxxxxxxxxxx' + +Verify that the printed checksum matches that on the final line of your extracted calibration file. + + Continuation after interruptions -------------------------------- From 84377872491216a4220a50cc602610ce4de7c746 Mon Sep 17 00:00:00 2001 From: Carter Sifferman Date: Thu, 19 Dec 2024 09:47:28 -0600 Subject: [PATCH 2/3] add note about looking for error in console --- ur_robot_driver/doc/usage/startup.rst | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/ur_robot_driver/doc/usage/startup.rst b/ur_robot_driver/doc/usage/startup.rst index 63bd02b3..21033a4c 100644 --- a/ur_robot_driver/doc/usage/startup.rst +++ b/ur_robot_driver/doc/usage/startup.rst @@ -79,13 +79,19 @@ Verify calibration info is being used correctly .. _verify_calibration: If you passed a path to extracted calibration via the *kinematics_params_file* -parameter, verify that the checksum of the loaded calibration matches that of your extracted -calibration. Search for the term *checksum* in the console output after launching the driver, -and you should see: +parameter, ensure that the loaded calibration matches that of the robot by inspecting the console +output after launching ur_robot_driver. If the calibration does not match, you will see an error: -.. code-block:: console +.. code-block:: none + + [ERROR] [1694437624.484381456] [URPositionHardwareInterface]: The calibration parameters of the connected robot don't match the ones from the given kinematics config file. + +Alternatively, search for the term *checksum* in the console output after launching the driver, and +you should see: + +.. code-block:: none - $ [INFO] [1694437690.406932381] [URPositionHardwareInterface]: Calibration checksum: 'calib_xxxxxxxxxxxxxxxxxxx' + [INFO] [1694437690.406932381] [URPositionHardwareInterface]: Calibration checksum: 'calib_xxxxxxxxxxxxxxxxxxx' Verify that the printed checksum matches that on the final line of your extracted calibration file. From cc90e81f6680ed473b1f7536b38a310ebbeb8613 Mon Sep 17 00:00:00 2001 From: Felix Exner Date: Fri, 20 Dec 2024 10:02:37 +0100 Subject: [PATCH 3/3] Some minor rewordings and clarifications --- ur_robot_driver/doc/installation/robot_setup.rst | 9 ++++++--- ur_robot_driver/doc/usage/startup.rst | 16 +++++++++------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/ur_robot_driver/doc/installation/robot_setup.rst b/ur_robot_driver/doc/installation/robot_setup.rst index 83e35dff..d77e8621 100644 --- a/ur_robot_driver/doc/installation/robot_setup.rst +++ b/ur_robot_driver/doc/installation/robot_setup.rst @@ -87,8 +87,11 @@ For this, there exists a helper script: $ ros2 launch ur_calibration calibration_correction.launch.py \ robot_ip:= target_filename:="${HOME}/my_robot_calibration.yaml" +.. note:: + The robot must be powered on (can be idle) before executing this script. + + For the parameter ``robot_ip`` insert the IP address on which the ROS pc can reach the robot. As -``target_filename`` provide an absolute path where the result will be saved to. The robot must be -powered on (can be idle) before executing this script. +``target_filename`` provide an absolute path where the result will be saved to. -See :ref:`ur_robot_driver_startup` for instructions on using the extracted calibration information. \ No newline at end of file +See :ref:`ur_robot_driver_startup` for instructions on using the extracted calibration information. diff --git a/ur_robot_driver/doc/usage/startup.rst b/ur_robot_driver/doc/usage/startup.rst index 21033a4c..f6c2cfb8 100644 --- a/ur_robot_driver/doc/usage/startup.rst +++ b/ur_robot_driver/doc/usage/startup.rst @@ -78,21 +78,23 @@ Verify calibration info is being used correctly .. _verify_calibration: -If you passed a path to extracted calibration via the *kinematics_params_file* +If you passed a path to an extracted calibration via the *kinematics_params_file* parameter, ensure that the loaded calibration matches that of the robot by inspecting the console -output after launching ur_robot_driver. If the calibration does not match, you will see an error: +output after launching the ``ur_robot_driver``. If the calibration does not match, you will see an error: -.. code-block:: none +.. code-block:: - [ERROR] [1694437624.484381456] [URPositionHardwareInterface]: The calibration parameters of the connected robot don't match the ones from the given kinematics config file. + [INFO] [1694437690.406932381] [URPositionHardwareInterface]: Calibration checksum: 'calib_xxxxxxxxxxxxxxxxxxx' + [ERROR] [1694437690.516957265] [URPositionHardwareInterface]: The calibration parameters of the connected robot don't match the ones from the given kinematics config file. -Alternatively, search for the term *checksum* in the console output after launching the driver, and -you should see: +With the correct calibration you should see: -.. code-block:: none +.. code-block:: [INFO] [1694437690.406932381] [URPositionHardwareInterface]: Calibration checksum: 'calib_xxxxxxxxxxxxxxxxxxx' + [INFO] [1694437690.516957265] [URPositionHardwareInterface]: Calibration checked successfully. +Alternatively, search for the term *checksum* in the console output after launching the driver. Verify that the printed checksum matches that on the final line of your extracted calibration file.