Package Summary

Tags No category tags.
Version 2.2.11
License BSD-3-Clause
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver.git
VCS Type git
VCS Version humble
Last Updated 2024-04-17
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Package for extracting the factory calibration from a UR robot and change it such that it can be used by ur_description to gain a correct URDF

Additional Links

No additional links.

Maintainers

  • Felix Exner
  • Robert Wilbrandt

Authors

  • Lovro Ivanov

ur_calibration

Package for extracting the factory calibration from a UR robot and changing it to be used by ur_description to gain a correct URDF model.

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.

Though this step is not necessary, to control the robot using this driver, it is highly recommended to do so, as end effector positions might be off in the magnitude of centimeters.

Nodes

calibration_correction

This node extracts calibration information directly from a robot, calculates the URDF correction and saves it into a .yaml file.

In the launch folder of the ur_calibration package is a helper script:

$ ros2 launch ur_calibration calibration_correction.launch.py \
robot_ip:=<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.

Creating a calibration / launch package for all local robots

When dealing with multiple robots in one organization it might make sense to store calibration data into a package dedicated to that purpose only. To do so, create a new package (if it doesn't already exist)

# Replace your actual colcon_ws folder
$ cd <colcon_ws>/src
$ ros2 pkg  create <organization_name>_ur_launch --build-type ament_cmake  --dependencies ur_client_library \
--description "Package containing calibrations and launch files for our UR robots."
# Create a skeleton package
$ mkdir -p <organization_name>_ur_launch/etc
$ mkdir -p <organization_name>_ur_launch/launch
$ echo 'install(DIRECTORY etc launch DESTINATION share/${PROJECT_NAME})' >> <organization_name>_ur_launch/CMakeLists.txt
$ colcon build --packages-select <organization_name>_ur_launch

We can use the new package to store the calibration data in that package. We recommend naming each robot individually, e.g. ex-ur10-1.

$ ros2 launch ur_calibration calibration_correction.launch.py \
robot_ip:=<robot_ip> \
target_filename:="$(ros2 pkg prefix <organization_name>_ur_launch)/share/<organization_name>_ur_launch/etc/ex-ur10-1_calibration.yaml"

To make life easier, we create a launchfile for this particular robot. We base it upon the respective launchfile in the driver:

# Replace your actual colcon_ws folder
$ cd <colcon_ws>/src/<organization_name>_ur_launch/launch
$ cp $(ros2 pkg prefix ur_robot_driver)/share/ur_robot_driver/launch/ur_control.launch.py ex-ur10-1.launch.py

Next, modify the parameter section of the new launchfile to match your actual calibration:

kinematics_params = PathJoinSubstitution(
        [FindPackageShare("<organization_name>_ur_launch"), "etc", "", "ex-ur10-1_calibration.yaml"]
    )


Then, anybody cloning this repository can startup the robot simply by launching

# Replace your actual colcon_ws folder
$ cd <colcon_ws>
$ colcon build --packages-select <organization_name>_ur_launch
$ ros2 launch <organization_name>_ur_launch ex-ur10-1.launch.py
robot_ip:=xxx.yyy.zzz.www ur_type:=ur5e  use_fake_hardware:=false launch_rviz:=true

CHANGELOG

Changelog for package ur_calibration

2.2.11 (2024-04-08)

2.2.10 (2024-01-03)

2.2.9 (2023-09-22)

2.2.8 (2023-06-26)

2.2.7 (2023-06-02)

2.2.6 (2022-11-28)

2.2.5 (2022-11-19)

  • Fixes launchfile references (#490) The filename with the dual type ending was wrong.
  • Contributors: Felix Exner

2.2.4 (2022-10-07)

2.2.3 (2022-07-27)

2.2.2 (2022-07-19)

  • Made sure all past maintainers are listed as authors (#429)
  • Contributors: Felix Exner

2.2.1 (2022-06-27)

2.2.0 (2022-06-20)

  • Updated package maintainers
  • Update license to BSD-3-Clause (#277)
  • Add missing dependency on angles and update formatting for linters. (#283)
  • Calibration extraction package (#186)
  • Contributors: Denis

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ur_calibration at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 2.3.6
License BSD-3-Clause
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver.git
VCS Type git
VCS Version iron
Last Updated 2024-04-17
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Package for extracting the factory calibration from a UR robot and change it such that it can be used by ur_description to gain a correct URDF

Additional Links

No additional links.

Maintainers

  • Felix Exner
  • Robert Wilbrandt

Authors

  • Lovro Ivanov

ur_calibration

Package for extracting the factory calibration from a UR robot and changing it to be used by ur_description to gain a correct URDF model.

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.

Though this step is not necessary, to control the robot using this driver, it is highly recommended to do so, as end effector positions might be off in the magnitude of centimeters.

Nodes

calibration_correction

This node extracts calibration information directly from a robot, calculates the URDF correction and saves it into a .yaml file.

In the launch folder of the ur_calibration package is a helper script:

$ ros2 launch ur_calibration calibration_correction.launch.py \
robot_ip:=<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.

Creating a calibration / launch package for all local robots

When dealing with multiple robots in one organization it might make sense to store calibration data into a package dedicated to that purpose only. To do so, create a new package (if it doesn't already exist)

# Replace your actual colcon_ws folder
$ cd <colcon_ws>/src
$ ros2 pkg  create <organization_name>_ur_launch --build-type ament_cmake  --dependencies ur_client_library \
--description "Package containing calibrations and launch files for our UR robots."
# Create a skeleton package
$ mkdir -p <organization_name>_ur_launch/etc
$ mkdir -p <organization_name>_ur_launch/launch
$ echo 'install(DIRECTORY etc launch DESTINATION share/${PROJECT_NAME})' >> <organization_name>_ur_launch/CMakeLists.txt
$ colcon build --packages-select <organization_name>_ur_launch

We can use the new package to store the calibration data in that package. We recommend naming each robot individually, e.g. ex-ur10-1.

$ ros2 launch ur_calibration calibration_correction.launch.py \
robot_ip:=<robot_ip> \
target_filename:="$(ros2 pkg prefix <organization_name>_ur_launch)/share/<organization_name>_ur_launch/etc/ex-ur10-1_calibration.yaml"

To make life easier, we create a launchfile for this particular robot. We base it upon the respective launchfile in the driver:

# Replace your actual colcon_ws folder
$ cd <colcon_ws>/src/<organization_name>_ur_launch/launch
$ cp $(ros2 pkg prefix ur_robot_driver)/share/ur_robot_driver/launch/ur_control.launch.py ex-ur10-1.launch.py

Next, modify the parameter section of the new launchfile to match your actual calibration:

kinematics_params = PathJoinSubstitution(
        [FindPackageShare("<organization_name>_ur_launch"), "etc", "", "ex-ur10-1_calibration.yaml"]
    )


Then, anybody cloning this repository can startup the robot simply by launching

# Replace your actual colcon_ws folder
$ cd <colcon_ws>
$ colcon build --packages-select <organization_name>_ur_launch
$ ros2 launch <organization_name>_ur_launch ex-ur10-1.launch.py
robot_ip:=xxx.yyy.zzz.www ur_type:=ur5e  use_fake_hardware:=false launch_rviz:=true

CHANGELOG

Changelog for package ur_calibration

2.3.6 (2024-04-08)

2.3.5 (2023-12-06)

2.3.4 (2023-09-21)

2.3.3 (2023-08-23)

2.3.2 (2023-06-02)

  • Fixed formatting (#685)
    • Removed empty lines from python files
    • Fixed typo in changelogs
  • Contributors: Felix Exner (fexner)

2.3.1 (2023-03-16)

2.3.0 (2023-03-02)

  • Fixes launchfile references (#490) The filename with the dual type ending was wrong.
  • Contributors: Felix Exner

2.2.4 (2022-10-07)

2.2.3 (2022-07-27)

2.2.2 (2022-07-19)

  • Made sure all past maintainers are listed as authors (#429)
  • Contributors: Felix Exner

2.2.1 (2022-06-27)

2.2.0 (2022-06-20)

  • Updated package maintainers
  • Update license to BSD-3-Clause (#277)
  • Add missing dependency on angles and update formatting for linters. (#283)
  • Calibration extraction package (#186)
  • Contributors: Denis

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ur_calibration at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 2.4.4
License BSD-3-Clause
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver.git
VCS Type git
VCS Version main
Last Updated 2024-04-15
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Package for extracting the factory calibration from a UR robot and change it such that it can be used by ur_description to gain a correct URDF

Additional Links

No additional links.

Maintainers

  • Felix Exner
  • Robert Wilbrandt

Authors

  • Lovro Ivanov

ur_calibration

Package for extracting the factory calibration from a UR robot and changing it to be used by ur_description to gain a correct URDF model.

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.

Though this step is not necessary, to control the robot using this driver, it is highly recommended to do so, as end effector positions might be off in the magnitude of centimeters.

Nodes

calibration_correction

This node extracts calibration information directly from a robot, calculates the URDF correction and saves it into a .yaml file.

In the launch folder of the ur_calibration package is a helper script:

$ ros2 launch ur_calibration calibration_correction.launch.py \
robot_ip:=<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.

Creating a calibration / launch package for all local robots

When dealing with multiple robots in one organization it might make sense to store calibration data into a package dedicated to that purpose only. To do so, create a new package (if it doesn't already exist)

# Replace your actual colcon_ws folder
$ cd <colcon_ws>/src
$ ros2 pkg  create <organization_name>_ur_launch --build-type ament_cmake  --dependencies ur_client_library \
--description "Package containing calibrations and launch files for our UR robots."
# Create a skeleton package
$ mkdir -p <organization_name>_ur_launch/etc
$ mkdir -p <organization_name>_ur_launch/launch
$ echo 'install(DIRECTORY etc launch DESTINATION share/${PROJECT_NAME})' >> <organization_name>_ur_launch/CMakeLists.txt
$ colcon build --packages-select <organization_name>_ur_launch

We can use the new package to store the calibration data in that package. We recommend naming each robot individually, e.g. ex-ur10-1.

$ ros2 launch ur_calibration calibration_correction.launch.py \
robot_ip:=<robot_ip> \
target_filename:="$(ros2 pkg prefix <organization_name>_ur_launch)/share/<organization_name>_ur_launch/etc/ex-ur10-1_calibration.yaml"

To make life easier, we create a launchfile for this particular robot. We base it upon the respective launchfile in the driver:

# Replace your actual colcon_ws folder
$ cd <colcon_ws>/src/<organization_name>_ur_launch/launch
$ cp $(ros2 pkg prefix ur_robot_driver)/share/ur_robot_driver/launch/ur_control.launch.py ex-ur10-1.launch.py

Next, modify the parameter section of the new launchfile to match your actual calibration:

kinematics_params = PathJoinSubstitution(
        [FindPackageShare("<organization_name>_ur_launch"), "etc", "", "ex-ur10-1_calibration.yaml"]
    )


Then, anybody cloning this repository can startup the robot simply by launching

# Replace your actual colcon_ws folder
$ cd <colcon_ws>
$ colcon build --packages-select <organization_name>_ur_launch
$ ros2 launch <organization_name>_ur_launch ex-ur10-1.launch.py
robot_ip:=xxx.yyy.zzz.www ur_type:=ur5e  use_mock_hardware:=false launch_rviz:=true

CHANGELOG

Changelog for package ur_calibration

2.4.4 (2024-04-04)

2.4.3 (2024-02-02)

2.4.2 (2023-11-23)

2.4.1 (2023-09-21)

2.4.0 (2023-08-28)

  • Use mock_hardware and mock_sensor_commands instead of fake (#739) * Use mock_hardware and mock_sensor_commands instead of fake This has been deprecated a while back and was never adapted.

    • Update documentation to mock_hardware
  • Contributors: Felix Exner (fexner)

2.3.2 (2023-06-02)

  • Fixed formatting (#685)
    • Removed empty lines from python files
    • Fixed typo in changelogs
  • Contributors: Felix Exner (fexner)

2.3.1 (2023-03-16)

2.3.0 (2023-03-02)

  • Fixes launchfile references (#490) The filename with the dual type ending was wrong.
  • Contributors: Felix Exner

2.2.4 (2022-10-07)

2.2.3 (2022-07-27)

2.2.2 (2022-07-19)

  • Made sure all past maintainers are listed as authors (#429)
  • Contributors: Felix Exner

2.2.1 (2022-06-27)

2.2.0 (2022-06-20)

  • Updated package maintainers
  • Update license to BSD-3-Clause (#277)
  • Add missing dependency on angles and update formatting for linters. (#283)
  • Calibration extraction package (#186)
  • Contributors: Denis

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ur_calibration at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 2.1.4
License Apache-2.0
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/UniversalRobots/Universal_Robots_ROS_Driver.git
VCS Type git
VCS Version master
Last Updated 2024-04-17
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Package for extracting the factory calibration from a UR robot and change it such that it can be used by ur_description to gain a correct URDF

Additional Links

No additional links.

Maintainers

  • Felix Exner

Authors

No additional authors.

ur_calibration

Package for extracting the factory calibration from a UR robot and changing it to be used by ur_description to gain a correct URDF model.

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.

Though this step is not necessary, to control the robot using this driver, it is highly recommended to do so, as end effector positions might be off in the magnitude of centimeters.

Nodes

calibration_correction

This node extracts calibration information directly from a robot, calculates the URDF correction and saves it into a .yaml file.

In the launch folder of the ur_calibration package is a helper script:

$ roslaunch ur_calibration calibration_correction.launch \
robot_ip:=<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.

Creating a calibration / launch package for all local robots

When dealing with multiple robots in one organization it might make sense to store calibration data into a package dedicated to that purpose only. To do so, create a new package (if it doesn't already exist)

# Replace your actual catkin_ws folder
$ cd <catkin_ws>/src
$ catkin_create_pkg example_organization_ur_launch ur_robot_driver \
-D "Package containing calibrations and launch files for our UR robots."
# Create a skeleton package
$ mkdir -p example_organization_ur_launch/etc
$ mkdir -p example_organization_ur_launch/launch

We can use the new package to store the calibration data in that package. We recommend naming each robot individually, e.g. ex-ur10-1.

$ roslaunch ur_calibration calibration_correction.launch \
robot_ip:=<robot_ip> \
target_filename:="$(rospack find example_organization_ur_launch)/etc/ex-ur10-1_calibration.yaml"

To make life easier, we create a launchfile for this particular robot. We base it upon the respective launchfile in the driver:

# Replace your actual catkin_ws folder
$ cd <catkin_ws>/src/example_organization_ur_launch/launch
$ roscp ur_robot_driver ur10_bringup.launch ex-ur10-1.launch

Next, modify the parameter section of the new launchfile to match your actual calibration:

<!-- Note: Only the relevant lines are printed here-->
  <arg name="robot_ip" default="192.168.0.101"/> <!-- if there is a default IP scheme for your
  robots -->
  <arg name="kinematics_config" default="$(find example_organization_ur_launch)/etc/ex-ur10-1_calibration.yaml"/>

Then, anybody cloning this repository can startup the robot simply by launching

$ roslaunch example_organization_ur_launch ex-ur10-1.launch

CHANGELOG

2.1.4 (2024-04-08)

2.1.3 (2023-12-18)

  • Bump cmake minimum version for all packages in repo
  • Contributors: Felix Exner

2.1.2 (2023-01-23)

2.1.1 (2023-01-23)

2.1.0 (2022-12-08)

  • fix dependency for the organization calibration package (#549)
  • Drop old C++ compiler flags (#577) Co-authored-by: Jochen Sprickerhof <git@jochen.sprickerhof.de>
  • Remove boilerplate comments from package.xml files (#528)
  • Contributors: Captain Yoshi, Felix Exner, Michael G

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Dependant Packages

No known dependants.

Launch files

  • launch/calibration_correction.launch
      • robot_ip — The IP address at which the robot is reachable.
      • target_filename [default: robot_calibration.yaml] — The extracted calibration information will be written to this target file.

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ur_calibration at Robotics Stack Exchange

No version for distro ardent. Known supported distros are highlighted in the buttons above.
No version for distro bouncy. Known supported distros are highlighted in the buttons above.
No version for distro crystal. Known supported distros are highlighted in the buttons above.
No version for distro eloquent. Known supported distros are highlighted in the buttons above.
No version for distro dashing. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 2.1.2
License BSD-3-Clause
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver.git
VCS Type git
VCS Version galactic
Last Updated 2022-10-11
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Package for extracting the factory calibration from a UR robot and change it such that it can be used by ur_description to gain a correct URDF

Additional Links

No additional links.

Maintainers

  • Felix Exner
  • Tristan Schnell

Authors

No additional authors.

ur_calibration

Package for extracting the factory calibration from a UR robot and changing it to be used by ur_description to gain a correct URDF model.

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.

Though this step is not necessary, to control the robot using this driver, it is highly recommended to do so, as end effector positions might be off in the magnitude of centimeters.

Nodes

calibration_correction

This node extracts calibration information directly from a robot, calculates the URDF correction and saves it into a .yaml file.

In the launch folder of the ur_calibration package is a helper script:

$ ros2 launch ur_calibration calibration_correction.launch.py \
robot_ip:=<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.

Creating a calibration / launch package for all local robots

When dealing with multiple robots in one organization it might make sense to store calibration data into a package dedicated to that purpose only. To do so, create a new package (if it doesn't already exist)

# Replace your actual colcon_ws folder
$ cd <colcon_ws>/src
$ ros2 pkg  create <organization_name>_ur_launch --build-type ament_cmake  --dependencies ur_client_library \
--description "Package containing calibrations and launch files for our UR robots."
# Create a skeleton package
$ mkdir -p <organization_name>_ur_launch/etc
$ mkdir -p <organization_name>_ur_launch/launch
$ echo 'install(DIRECTORY etc launch DESTINATION share/${PROJECT_NAME})' >> <organization_name>_ur_launch/CMakeLists.txt
$ colcon build --packages-select <organization_name>_ur_launch

We can use the new package to store the calibration data in that package. We recommend naming each robot individually, e.g. ex-ur10-1.

$ ros2 launch ur_calibration calibration_correction.launch.py \
robot_ip:=<robot_ip> \
target_filename:="$(ros2 pkg prefix <organization_name>_ur_launch)/share/<organization_name>_ur_launch/etc/ex-ur10-1_calibration.yaml"

To make life easier, we create a launchfile for this particular robot. We base it upon the respective launchfile in the driver:

# Replace your actual colcon_ws folder
$ cd <colcon_ws>/src/<organization_name>_ur_launch/launch
$ cp $(ros2 pkg prefix ur_bringup)/share/ur_bringup/launch/ur_control.launch.py ex-ur10-1.launch.py

Next, modify the parameter section of the new launchfile to match your actual calibration:

kinematics_params = PathJoinSubstitution(
        [FindPackageShare("<organization_name>_ur_launch"), "etc", "", "ex-ur10-1_calibration.yaml"]
    )


Then, anybody cloning this repository can startup the robot simply by launching

# Replace your actual colcon_ws folder
$ cd <colcon_ws>
$ colcon build --packages-select <organization_name>_ur_launch
$ ros2 launch <organization_name>_ur_launch ex-ur10-1.launch.py
robot_ip:=xxx.yyy.zzz.www ur_type:=ur5e  use_fake_hardware:=false launch_rviz:=true

CHANGELOG

Changelog for package ur_calibration

2.1.2 (2022-07-27)

2.1.1 (2022-05-05)

2.1.0 (2022-05-03)

  • Updated package maintainers (#360)
  • Update license to BSD-3-Clause (#277)
  • Add missing dependency on angles and update formatting for linters. (#283)
  • Calibration extraction package (#186)
  • Contributors: Denis

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ur_calibration at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 2.0.2
License BSD-3-Clause
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver.git
VCS Type git
VCS Version foxy
Last Updated 2023-04-17
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Package for extracting the factory calibration from a UR robot and change it such that it can be used by ur_description to gain a correct URDF

Additional Links

No additional links.

Maintainers

  • Felix Exner
  • Tristan Schnell

Authors

No additional authors.

ur_calibration

Package for extracting the factory calibration from a UR robot and changing it to be used by ur_description to gain a correct URDF model.

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.

Though this step is not necessary, to control the robot using this driver, it is highly recommended to do so, as end effector positions might be off in the magnitude of centimeters.

Nodes

calibration_correction

This node extracts calibration information directly from a robot, calculates the URDF correction and saves it into a .yaml file.

In the launch folder of the ur_calibration package is a helper script:

$ ros2 launch ur_calibration calibration_correction.launch.py \
robot_ip:=<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.

Creating a calibration / launch package for all local robots

When dealing with multiple robots in one organization it might make sense to store calibration data into a package dedicated to that purpose only. To do so, create a new package (if it doesn't already exist)

# Replace your actual colcon_ws folder
$ cd <colcon_ws>/src
$ ros2 pkg  create <organization_name>_ur_launch --build-type ament_cmake  --dependencies ur_client_library \
--description "Package containing calibrations and launch files for our UR robots."
# Create a skeleton package
$ mkdir -p <organization_name>_ur_launch/etc
$ mkdir -p <organization_name>_ur_launch/launch
$ echo 'install(DIRECTORY etc launch DESTINATION share/${PROJECT_NAME})' >> <organization_name>_ur_launch/CMakeLists.txt
$ colcon build --packages-select <organization_name>_ur_launch

We can use the new package to store the calibration data in that package. We recommend naming each robot individually, e.g. ex-ur10-1.

$ ros2 launch ur_calibration calibration_correction.launch.py \
robot_ip:=<robot_ip> \
target_filename:="$(ros2 pkg prefix <organization_name>_ur_launch)/share/<organization_name>_ur_launch/etc/ex-ur10-1_calibration.yaml"

To make life easier, we create a launchfile for this particular robot. We base it upon the respective launchfile in the driver:

# Replace your actual colcon_ws folder
$ cd <colcon_ws>/src/<organization_name>_ur_launch/launch
$ cp $(ros2 pkg prefix ur_bringup)/share/ur_bringup/launch/ur_control.launch.py ex-ur10-1.launch.py

Next, modify the parameter section of the new launchfile to match your actual calibration:

kinematics_params = PathJoinSubstitution(
        [FindPackageShare("<organization_name>_ur_launch"), "etc", "", "ex-ur10-1_calibration.yaml"]
    )


Then, anybody cloning this repository can startup the robot simply by launching

# Replace your actual colcon_ws folder
$ cd <colcon_ws>
$ colcon build --packages-select <organization_name>_ur_launch
$ ros2 launch <organization_name>_ur_launch ex-ur10-1.launch.py
robot_ip:=xxx.yyy.zzz.www ur_type:=ur5e  use_fake_hardware:=false launch_rviz:=true

CHANGELOG

Changelog for package ur_calibration

2.0.2 (2022-12-07)

2.0.1 (2022-08-01)

2.0.0 (2022-06-20)

0.0.3 (2020-10-29)

  • Initial copy of the ROS1 driver
  • Contributors: AndyZe

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ur_calibration at Robotics Stack Exchange

No version for distro lunar. Known supported distros are highlighted in the buttons above.
No version for distro jade. Known supported distros are highlighted in the buttons above.
No version for distro indigo. Known supported distros are highlighted in the buttons above.
No version for distro hydro. Known supported distros are highlighted in the buttons above.
No version for distro kinetic. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 2.1.4
License Apache-2.0
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/UniversalRobots/Universal_Robots_ROS_Driver.git
VCS Type git
VCS Version master
Last Updated 2024-04-17
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Package for extracting the factory calibration from a UR robot and change it such that it can be used by ur_description to gain a correct URDF

Additional Links

No additional links.

Maintainers

  • Felix Exner

Authors

No additional authors.

ur_calibration

Package for extracting the factory calibration from a UR robot and changing it to be used by ur_description to gain a correct URDF model.

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.

Though this step is not necessary, to control the robot using this driver, it is highly recommended to do so, as end effector positions might be off in the magnitude of centimeters.

Nodes

calibration_correction

This node extracts calibration information directly from a robot, calculates the URDF correction and saves it into a .yaml file.

In the launch folder of the ur_calibration package is a helper script:

$ roslaunch ur_calibration calibration_correction.launch \
robot_ip:=<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.

Creating a calibration / launch package for all local robots

When dealing with multiple robots in one organization it might make sense to store calibration data into a package dedicated to that purpose only. To do so, create a new package (if it doesn't already exist)

# Replace your actual catkin_ws folder
$ cd <catkin_ws>/src
$ catkin_create_pkg example_organization_ur_launch ur_robot_driver \
-D "Package containing calibrations and launch files for our UR robots."
# Create a skeleton package
$ mkdir -p example_organization_ur_launch/etc
$ mkdir -p example_organization_ur_launch/launch

We can use the new package to store the calibration data in that package. We recommend naming each robot individually, e.g. ex-ur10-1.

$ roslaunch ur_calibration calibration_correction.launch \
robot_ip:=<robot_ip> \
target_filename:="$(rospack find example_organization_ur_launch)/etc/ex-ur10-1_calibration.yaml"

To make life easier, we create a launchfile for this particular robot. We base it upon the respective launchfile in the driver:

# Replace your actual catkin_ws folder
$ cd <catkin_ws>/src/example_organization_ur_launch/launch
$ roscp ur_robot_driver ur10_bringup.launch ex-ur10-1.launch

Next, modify the parameter section of the new launchfile to match your actual calibration:

<!-- Note: Only the relevant lines are printed here-->
  <arg name="robot_ip" default="192.168.0.101"/> <!-- if there is a default IP scheme for your
  robots -->
  <arg name="kinematics_config" default="$(find example_organization_ur_launch)/etc/ex-ur10-1_calibration.yaml"/>

Then, anybody cloning this repository can startup the robot simply by launching

$ roslaunch example_organization_ur_launch ex-ur10-1.launch

CHANGELOG

2.1.4 (2024-04-08)

2.1.3 (2023-12-18)

  • Bump cmake minimum version for all packages in repo
  • Contributors: Felix Exner

2.1.2 (2023-01-23)

2.1.1 (2023-01-23)

2.1.0 (2022-12-08)

  • fix dependency for the organization calibration package (#549)
  • Drop old C++ compiler flags (#577) Co-authored-by: Jochen Sprickerhof <git@jochen.sprickerhof.de>
  • Remove boilerplate comments from package.xml files (#528)
  • Contributors: Captain Yoshi, Felix Exner, Michael G

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Dependant Packages

No known dependants.

Launch files

  • launch/calibration_correction.launch
      • robot_ip — The IP address at which the robot is reachable.
      • target_filename [default: robot_calibration.yaml] — The extracted calibration information will be written to this target file.

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ur_calibration at Robotics Stack Exchange