ur_calibration package from ur_robot_driver repour ur_bringup ur_calibration ur_controllers ur_dashboard_msgs ur_moveit_config ur_robot_driver |
|
Package Summary
Tags | No category tags. |
Version | 2.2.16 |
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-11-07 |
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
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 for package ur_calibration
2.2.16 (2024-10-28)
2.2.15 (2024-07-26)
2.2.14 (2024-07-01)
2.2.13 (2024-06-17)
- Fix calibration (#1022)
- Contributors: Felix Exner, Vincenzo Di Pendima
2.2.12 (2024-05-16)
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)
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_cmake_gmock | |
ament_cmake_gtest | |
ament_lint_auto | |
ament_lint_common | |
rclcpp | |
ur_client_library | |
ur_robot_driver |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
ur |
Launch files
Messages
Services
Plugins
Recent questions tagged ur_calibration at Robotics Stack Exchange
ur_calibration package from ur_robot_driver repour ur_calibration ur_controllers ur_dashboard_msgs ur_moveit_config ur_robot_driver |
|
Package Summary
Tags | No category tags. |
Version | 2.3.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 | iron |
Last Updated | 2024-11-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
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 for package ur_calibration
2.3.11 (2024-10-28)
2.3.10 (2024-08-09)
2.3.9 (2024-07-01)
2.3.8 (2024-06-17)
- Fix calibration (#1023)
- Contributors: Felix Exner, Vincenzo Di Pentima
2.3.7 (2024-05-16)
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)
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_cmake_gmock | |
ament_cmake_gtest | |
ament_lint_auto | |
ament_lint_common | |
rclcpp | |
ur_client_library | |
ur_robot_driver |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
ur |
Launch files
Messages
Services
Plugins
Recent questions tagged ur_calibration at Robotics Stack Exchange
ur_calibration package from ur_robot_driver repour ur_calibration ur_controllers ur_dashboard_msgs ur_moveit_config ur_robot_driver |
|
Package Summary
Tags | No category tags. |
Version | 2.4.13 |
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-11-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
Additional Links
Maintainers
- Felix Exner
- Vincenzo Di Pentima
Authors
- Robert Wilbrandt
- 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.
For details please see doc/index.rst
Changelog for package ur_calibration
2.4.13 (2024-10-28)
2.4.12 (2024-10-14)
2.4.11 (2024-10-10)
2.4.10 (2024-09-11)
- Update maintainers team (#1088)
- Contributors: Vincenzo Di Pentima
2.4.9 (2024-08-09)
2.4.8 (2024-07-01)
2.4.7 (2024-06-19)
2.4.6 (2024-06-17)
- Fix calibration (#1017)
- Restructure documentation for full stack documentation (#984)
- Contributors: Felix Exner (fexner), Vincenzo Di Pentima
2.4.5 (2024-05-16)
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)
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_cmake_gmock | |
ament_cmake_gtest | |
ament_lint_auto | |
ament_lint_common | |
rclcpp | |
ur_client_library | |
ur_robot_driver |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
ur |
Launch files
Messages
Services
Plugins
Recent questions tagged ur_calibration at Robotics Stack Exchange
ur_calibration package from ur_robot_driver repour ur_calibration ur_controllers ur_dashboard_msgs ur_moveit_config ur_robot_driver |
|
Package Summary
Tags | No category tags. |
Version | 2.4.13 |
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-11-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
Additional Links
Maintainers
- Felix Exner
- Vincenzo Di Pentima
Authors
- Robert Wilbrandt
- 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.
For details please see doc/index.rst
Changelog for package ur_calibration
2.4.13 (2024-10-28)
2.4.12 (2024-10-14)
2.4.11 (2024-10-10)
2.4.10 (2024-09-11)
- Update maintainers team (#1088)
- Contributors: Vincenzo Di Pentima
2.4.9 (2024-08-09)
2.4.8 (2024-07-01)
2.4.7 (2024-06-19)
2.4.6 (2024-06-17)
- Fix calibration (#1017)
- Restructure documentation for full stack documentation (#984)
- Contributors: Felix Exner (fexner), Vincenzo Di Pentima
2.4.5 (2024-05-16)
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)
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_cmake_gmock | |
ament_cmake_gtest | |
ament_lint_auto | |
ament_lint_common | |
rclcpp | |
ur_client_library | |
ur_robot_driver |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
ur |
Launch files
Messages
Services
Plugins
Recent questions tagged ur_calibration at Robotics Stack Exchange
ur_calibration package from ur_robot_driver repour_calibration ur_dashboard_msgs ur_robot_driver |
|
Package Summary
Tags | No category tags. |
Version | 2.1.5 |
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-10-23 |
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
Additional Links
Maintainers
- Felix Exner
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
2.1.5 (2024-06-17)
- Fix calibration (#704)
- Contributors: Felix Exner (fexner)
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örner
2.0.0 (2021-09-07)
- Add new features to the driver:
- Cartesian position-based control
- Cartesian twist-based control
- Trajectory forwarding for execution on robot
- More documentation and examples
- Fix package name in calibration example The example was referencing the library package where it should have been referencing the driver package.
- Added log handler for handling log messages from client library with … (#398)
- Added "On behalf of Universal Robots A/S" notice (#416) Removed copyright notice from LICENSE file, as the license file itself isn't copyrighted by FZI
- Replace two logging macros with ROS logging macros. (#330) Inside the driver we want to use plain ROS logging instead of the library's logging macros.
- Use ur_client_library package for building this driver #266 from UniversalRobots/separation
- Use namespace urcl instead of ur_driver
- Renamed library
- Made calibration use separated library, as well
- Merge pull request #166 from UniversalRobots/packaget Use the package type and not the header type as template parameter for communication
- Update ur_calibration to new template structure
- Use SPDX license identifiers. (#145) From https://spdx.org
- Merge pull request #1 from UniversalRobots/master Update from upstream repo
- catch all exceptions to bring them to output. (#98)
- Changed my name in every occurence
- Merge pull request #42 from gavanderhoorn/ur_calib_fix_yamlcpp_dep Fixup yaml-cpp linking and include paths in ur_calibration
- calibration: fix yaml-cpp include paths and linking.
- calibration: top-level pkgs don't export include dirs or libraries.
- calibration: remove boilerplate comments from build script.
- Renamed the driver to ur_robot_driver
- Simplified calibration interface When showing this to collegues it turned out that this was quite complicated. I reduced the target definition to a simple filename, while documenting the package approach separately.
- Updated calibration instructions
- Contributors: Felix Exner, Felix Mauch, G.A. vd. Hoorn, Lea Steffen, Mads Holm Peters, axelschroth, gavanderhoorn
0.0.2 (2019-07-03)
- Catch exception and log error when no connection can be established
0.0.1 (2019-06-28)
Initial release
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
catkin | |
rosunit | |
roscpp | |
ur_client_library | |
ur_robot_driver |
System Dependencies
Dependant Packages
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
Services
Plugins
Recent questions tagged ur_calibration at Robotics Stack Exchange
ur_calibration package from ur_robot_driver repour_bringup ur_calibration ur_controllers ur_dashboard_msgs ur_moveit_config ur_robot_driver |
|
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
Additional Links
Maintainers
- Felix Exner
- Tristan Schnell
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 for package ur_calibration
2.1.2 (2022-07-27)
2.1.1 (2022-05-05)
2.1.0 (2022-05-03)
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_cmake_gmock | |
ament_cmake_gtest | |
ament_lint_auto | |
ament_lint_common | |
rclcpp | |
ur_client_library | |
ur_robot_driver |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ur_calibration at Robotics Stack Exchange
ur_calibration package from ur_robot_driver repour_bringup ur_calibration ur_controllers ur_dashboard_msgs ur_description ur_moveit_config ur_robot_driver |
|
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
Additional Links
Maintainers
- Felix Exner
- Tristan Schnell
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 for package ur_calibration
2.0.2 (2022-12-07)
- Added changelog of ur_calibration
- Fixed package version of ur_calibration That one was old
- Add ur_calibration package (#451) Co-authored-by: Mads Holm Peters <<79145214+urmahp@users.noreply.github.com>>
- Contributors: Felix Exner
- Add ur_calibration package (#451) Co-authored-by: Mads Holm Peters <<79145214+urmahp@users.noreply.github.com>>
- Contributors: Felix Exner
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
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
ament_cmake_gmock | |
ament_cmake_gtest | |
ament_lint_auto | |
ament_lint_common | |
rclcpp | |
ur_client_library | |
ur_robot_driver |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ur_calibration at Robotics Stack Exchange
ur_calibration package from ur_robot_driver repour_calibration ur_dashboard_msgs ur_robot_driver |
|
Package Summary
Tags | No category tags. |
Version | 2.1.5 |
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-10-23 |
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
Additional Links
Maintainers
- Felix Exner
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
2.1.5 (2024-06-17)
- Fix calibration (#704)
- Contributors: Felix Exner (fexner)
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örner
2.0.0 (2021-09-07)
- Add new features to the driver:
- Cartesian position-based control
- Cartesian twist-based control
- Trajectory forwarding for execution on robot
- More documentation and examples
- Fix package name in calibration example The example was referencing the library package where it should have been referencing the driver package.
- Added log handler for handling log messages from client library with … (#398)
- Added "On behalf of Universal Robots A/S" notice (#416) Removed copyright notice from LICENSE file, as the license file itself isn't copyrighted by FZI
- Replace two logging macros with ROS logging macros. (#330) Inside the driver we want to use plain ROS logging instead of the library's logging macros.
- Use ur_client_library package for building this driver #266 from UniversalRobots/separation
- Use namespace urcl instead of ur_driver
- Renamed library
- Made calibration use separated library, as well
- Merge pull request #166 from UniversalRobots/packaget Use the package type and not the header type as template parameter for communication
- Update ur_calibration to new template structure
- Use SPDX license identifiers. (#145) From https://spdx.org
- Merge pull request #1 from UniversalRobots/master Update from upstream repo
- catch all exceptions to bring them to output. (#98)
- Changed my name in every occurence
- Merge pull request #42 from gavanderhoorn/ur_calib_fix_yamlcpp_dep Fixup yaml-cpp linking and include paths in ur_calibration
- calibration: fix yaml-cpp include paths and linking.
- calibration: top-level pkgs don't export include dirs or libraries.
- calibration: remove boilerplate comments from build script.
- Renamed the driver to ur_robot_driver
- Simplified calibration interface When showing this to collegues it turned out that this was quite complicated. I reduced the target definition to a simple filename, while documenting the package approach separately.
- Updated calibration instructions
- Contributors: Felix Exner, Felix Mauch, G.A. vd. Hoorn, Lea Steffen, Mads Holm Peters, axelschroth, gavanderhoorn
0.0.2 (2019-07-03)
- Catch exception and log error when no connection can be established
0.0.1 (2019-06-28)
Initial release
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
catkin | |
rosunit | |
roscpp | |
ur_client_library | |
ur_robot_driver |
System Dependencies
Dependant Packages
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.