webots_ros2_universal_robot package from webots_ros2 repowebots_ros2 webots_ros2_control webots_ros2_driver webots_ros2_epuck webots_ros2_importer webots_ros2_mavic webots_ros2_msgs webots_ros2_tesla webots_ros2_tests webots_ros2_tiago webots_ros2_turtlebot webots_ros2_universal_robot |
|
Package Summary
Tags | No category tags. |
Version | 2023.1.3 |
License | Apache License 2.0 |
Build type | AMENT_PYTHON |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/cyberbotics/webots_ros2.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2024-09-07 |
Dev Status | MAINTAINED |
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
- Cyberbotics
Authors
Universal Robot
This package provides an interface between ROS2 and the UR3e, UR5e and UR10e simulation models of the Universal Robots running in Webots. It includes several simulations of these robots.
Documentation is available here.
Creation of the UR5e URDF file
The URDF file for the UR5e robot used in this package is a mix of the UR5e robot taken from UniversalRobots and the 3-fingers-gripper taken from robotiq. Some adaptations have been made in the files from the two repositories.
In order to reproduce a Xacro file that can generate this URDF file follow these steps:
- Clone the repositories of UniversalRobots and robotiq in your package.
- Create your own Xacro file to combine the robot and the gripper and add the
<webots>
plugin tag:
<?xml version="1.0"?>
<robot name="UR5e" xmlns:xacro="http://wiki.ros.org/xacro">
<!--
Custom mix of ur5e robot and robotiq 3f gripper for Webots.
Based on https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver
and https://github.com/ros-industrial/robotiq.
-->
<webots>
<plugin type="webots_ros2_control::Ros2Control" />
</webots>
<!-- ur5e robot -->
<xacro:include filename="$(find webots_ros2_universal_robot)/resource/Universal_Robots_ROS2_Driver/ur_description/urdf/ur.urdf.xacro" />
<!-- robotiq 3f gripper -->
<xacro:include filename="$(find webots_ros2_universal_robot)/resource/robotiq/robotiq_3f_gripper_visualization/cfg/robotiq-3f-gripper_articulated_macro.xacro" />
<xacro:robotiq-3f-gripper_articulated prefix=""/>
</robot>
Steps on the UniversalRobots
files:
The ur.urdf.xacro file:
- Define the
joint_limit_params
,kinematics_params
,physical_params
andvisual_params
default arguments with the path to their corresponding.yaml
files. - Update all the paths accordingly to your package.
The visual_parameters.yaml file:
- Update all the paths accordingly to your package.
The ur_macro.xacro file:
- Remove the 4 lines below
<!-- Data files required by the UR driver -->
. - Replace the tag
<xacro:ur_ros2_control.../>
below<!-- ros2 control instance -->
by:
<xacro:ur_ros2_control
name="WebotsControl" prefix="${prefix}"
initial_positions="${initial_positions}" />
- Update all the paths accordingly to your package.
The ur.ros2_control.xacro file:
- Remove
script_filename output_recipe_filename input_recipe_filename tf_prefix hash_kinematics robot_ip
from the<xacro:macro...>
tag. - Remove the
<joint name="speed_scaling">
, the<joint name="gpio">
, the<joint name="resend_robot_program">
and the<joint name="system_interface">
tags. - Remove all the
<command_interface name="velocity">...</command_interface>
tags and all the<param...>...</param>
tags from the<command_interface name="position">...</command_interface>
tags - Replace the
<hardware></hardware>
tag by:
<hardware>
<plugin>webots_ros2_control::Ros2ControlSystem</plugin>
</hardware>
- In order to also control the gripper, add after the
<sensor name="tcp_fts_sensor">...</sensor>
tag these tags:
<!-- ROBOTIQ 3F Gripper -->
<joint name="palm_finger_1_joint">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_1_joint_1">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_1_joint_2">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_1_joint_3">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="palm_finger_2_joint">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_2_joint_1">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_2_joint_2">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_2_joint_3">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_middle_joint_1">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_middle_joint_2">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_middle_joint_3">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
Steps on the robotiq
files:
The robotiq-3f-gripper_articulated_macro.xacro file:
- Remove the
<link name="${prefix}tool0"/>
tag and replace the<joint name="${prefix}palm_tool0" type="fixed">...</joint>
tags by:
<joint name="${prefix}tool0_palm" type="fixed">
<parent link="${prefix}tool0"/>
<child link="${prefix}palm"/>
<origin xyz="0 0 0.045" rpy="1.5708 0 0"/>
</joint>
- Update all the paths accordingly to your package.
The robotiq-3f-gripper_finger_articulated_macro.xacro file:
- Update all the paths accordingly to your package.
Changelog for package webots_ros2_universal_robot
2023.1.3 (2024-08-07) ------------------* Fixed passing the [robot_description]{.title-ref} parameter to ros2_control.
2023.1.2 (2023-07-28) ------------------* Fixed errors showing up when launching moveit for ur5e.
2023.1.0 (2023-06-29) ------------------* Clean simulation reset in launch file. * Fixed JTC interpolation. * Fixed deprecated load_yaml() function. * Update driver node to new WebotsController node.
2023.0.4 (2023-05-23) ------------------* Start ros control nodes when Webots is ready.
2023.0.2 (2023-02-07) ------------------* Fixed URDF relative URLs to assets. * Updated supervisor launch.
2022.1.3 (2022-11-02) ------------------* Added macOS support.
2022.1.2 (2022-10-21) ------------------* Added WSL support.
2022.1.0 (2022-09-23) ------------------* The 'robot' and 'moveit_demo' scenarios now show a use case of the new URDF importer.
1.2.2 (2022-01-19)
- Remove the 'moveit' dependency.
1.2.0 (2021-12-21)
- Adapt the worlds to the new R2022a FLU convention.
- Fix synchornosiation issue when the trajectory controller was receiving goals but was not ready to execute them.
1.1.2 (2021-11-03)
- Utilize the 'webots_ros2_driver' and 'ros2_control' instead of 'webots_ros2_core'.
- Add MoveIt2 example.
- Upgrade the multi-robot example.
- Remove non-useful simulations.
1.0.0 (2020-09-01)
- Use the webots_ros2_core::webots_robotic_arm_node node.
0.0.3 (2020-06-15)
- Added an 'universal_robot_multiple' simulation and launch file.
- Added an 'universal_robot_rviz' simulation and launch file.
- Added support for the goal tolerance in the action server.
- Fixed the action server that was never reaching the [SUCCESSFUL]{.title-ref} state.
0.0.2 (2019-09-23)
- Initial version
Wiki Tutorials
Package Dependencies
System Dependencies
Name |
---|
python3-pytest |
Dependant Packages
Name | Deps |
---|---|
webots_ros2 | |
webots_ros2_tests |
Launch files
Messages
Services
Plugins
Recent questions tagged webots_ros2_universal_robot at Robotics Stack Exchange
webots_ros2_universal_robot package from webots_ros2 repowebots_ros2 webots_ros2_control webots_ros2_driver webots_ros2_epuck webots_ros2_importer webots_ros2_mavic webots_ros2_msgs webots_ros2_tesla webots_ros2_tests webots_ros2_tiago webots_ros2_turtlebot webots_ros2_universal_robot |
|
Package Summary
Tags | No category tags. |
Version | 2023.1.3 |
License | Apache License 2.0 |
Build type | AMENT_PYTHON |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/cyberbotics/webots_ros2.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2024-09-07 |
Dev Status | MAINTAINED |
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
- Cyberbotics
Authors
Universal Robot
This package provides an interface between ROS2 and the UR3e, UR5e and UR10e simulation models of the Universal Robots running in Webots. It includes several simulations of these robots.
Documentation is available here.
Creation of the UR5e URDF file
The URDF file for the UR5e robot used in this package is a mix of the UR5e robot taken from UniversalRobots and the 3-fingers-gripper taken from robotiq. Some adaptations have been made in the files from the two repositories.
In order to reproduce a Xacro file that can generate this URDF file follow these steps:
- Clone the repositories of UniversalRobots and robotiq in your package.
- Create your own Xacro file to combine the robot and the gripper and add the
<webots>
plugin tag:
<?xml version="1.0"?>
<robot name="UR5e" xmlns:xacro="http://wiki.ros.org/xacro">
<!--
Custom mix of ur5e robot and robotiq 3f gripper for Webots.
Based on https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver
and https://github.com/ros-industrial/robotiq.
-->
<webots>
<plugin type="webots_ros2_control::Ros2Control" />
</webots>
<!-- ur5e robot -->
<xacro:include filename="$(find webots_ros2_universal_robot)/resource/Universal_Robots_ROS2_Driver/ur_description/urdf/ur.urdf.xacro" />
<!-- robotiq 3f gripper -->
<xacro:include filename="$(find webots_ros2_universal_robot)/resource/robotiq/robotiq_3f_gripper_visualization/cfg/robotiq-3f-gripper_articulated_macro.xacro" />
<xacro:robotiq-3f-gripper_articulated prefix=""/>
</robot>
Steps on the UniversalRobots
files:
The ur.urdf.xacro file:
- Define the
joint_limit_params
,kinematics_params
,physical_params
andvisual_params
default arguments with the path to their corresponding.yaml
files. - Update all the paths accordingly to your package.
The visual_parameters.yaml file:
- Update all the paths accordingly to your package.
The ur_macro.xacro file:
- Remove the 4 lines below
<!-- Data files required by the UR driver -->
. - Replace the tag
<xacro:ur_ros2_control.../>
below<!-- ros2 control instance -->
by:
<xacro:ur_ros2_control
name="WebotsControl" prefix="${prefix}"
initial_positions="${initial_positions}" />
- Update all the paths accordingly to your package.
The ur.ros2_control.xacro file:
- Remove
script_filename output_recipe_filename input_recipe_filename tf_prefix hash_kinematics robot_ip
from the<xacro:macro...>
tag. - Remove the
<joint name="speed_scaling">
, the<joint name="gpio">
, the<joint name="resend_robot_program">
and the<joint name="system_interface">
tags. - Remove all the
<command_interface name="velocity">...</command_interface>
tags and all the<param...>...</param>
tags from the<command_interface name="position">...</command_interface>
tags - Replace the
<hardware></hardware>
tag by:
<hardware>
<plugin>webots_ros2_control::Ros2ControlSystem</plugin>
</hardware>
- In order to also control the gripper, add after the
<sensor name="tcp_fts_sensor">...</sensor>
tag these tags:
<!-- ROBOTIQ 3F Gripper -->
<joint name="palm_finger_1_joint">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_1_joint_1">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_1_joint_2">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_1_joint_3">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="palm_finger_2_joint">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_2_joint_1">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_2_joint_2">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_2_joint_3">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_middle_joint_1">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_middle_joint_2">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_middle_joint_3">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
Steps on the robotiq
files:
The robotiq-3f-gripper_articulated_macro.xacro file:
- Remove the
<link name="${prefix}tool0"/>
tag and replace the<joint name="${prefix}palm_tool0" type="fixed">...</joint>
tags by:
<joint name="${prefix}tool0_palm" type="fixed">
<parent link="${prefix}tool0"/>
<child link="${prefix}palm"/>
<origin xyz="0 0 0.045" rpy="1.5708 0 0"/>
</joint>
- Update all the paths accordingly to your package.
The robotiq-3f-gripper_finger_articulated_macro.xacro file:
- Update all the paths accordingly to your package.
Changelog for package webots_ros2_universal_robot
2023.1.3 (2024-08-07) ------------------* Fixed passing the [robot_description]{.title-ref} parameter to ros2_control.
2023.1.2 (2023-07-28) ------------------* Fixed errors showing up when launching moveit for ur5e.
2023.1.0 (2023-06-29) ------------------* Clean simulation reset in launch file. * Fixed JTC interpolation. * Fixed deprecated load_yaml() function. * Update driver node to new WebotsController node.
2023.0.4 (2023-05-23) ------------------* Start ros control nodes when Webots is ready.
2023.0.2 (2023-02-07) ------------------* Fixed URDF relative URLs to assets. * Updated supervisor launch.
2022.1.3 (2022-11-02) ------------------* Added macOS support.
2022.1.2 (2022-10-21) ------------------* Added WSL support.
2022.1.0 (2022-09-23) ------------------* The 'robot' and 'moveit_demo' scenarios now show a use case of the new URDF importer.
1.2.2 (2022-01-19)
- Remove the 'moveit' dependency.
1.2.0 (2021-12-21)
- Adapt the worlds to the new R2022a FLU convention.
- Fix synchornosiation issue when the trajectory controller was receiving goals but was not ready to execute them.
1.1.2 (2021-11-03)
- Utilize the 'webots_ros2_driver' and 'ros2_control' instead of 'webots_ros2_core'.
- Add MoveIt2 example.
- Upgrade the multi-robot example.
- Remove non-useful simulations.
1.0.0 (2020-09-01)
- Use the webots_ros2_core::webots_robotic_arm_node node.
0.0.3 (2020-06-15)
- Added an 'universal_robot_multiple' simulation and launch file.
- Added an 'universal_robot_rviz' simulation and launch file.
- Added support for the goal tolerance in the action server.
- Fixed the action server that was never reaching the [SUCCESSFUL]{.title-ref} state.
0.0.2 (2019-09-23)
- Initial version
Wiki Tutorials
Package Dependencies
System Dependencies
Name |
---|
python3-pytest |
Dependant Packages
Name | Deps |
---|---|
webots_ros2 | |
webots_ros2_tests |
Launch files
Messages
Services
Plugins
Recent questions tagged webots_ros2_universal_robot at Robotics Stack Exchange
webots_ros2_universal_robot package from webots_ros2 repowebots_ros2 webots_ros2_control webots_ros2_driver webots_ros2_epuck webots_ros2_importer webots_ros2_mavic webots_ros2_msgs webots_ros2_tesla webots_ros2_tests webots_ros2_tiago webots_ros2_turtlebot webots_ros2_universal_robot |
|
Package Summary
Tags | No category tags. |
Version | 2023.1.3 |
License | Apache License 2.0 |
Build type | AMENT_PYTHON |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/cyberbotics/webots_ros2.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2024-09-07 |
Dev Status | MAINTAINED |
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
- Cyberbotics
Authors
Universal Robot
This package provides an interface between ROS2 and the UR3e, UR5e and UR10e simulation models of the Universal Robots running in Webots. It includes several simulations of these robots.
Documentation is available here.
Creation of the UR5e URDF file
The URDF file for the UR5e robot used in this package is a mix of the UR5e robot taken from UniversalRobots and the 3-fingers-gripper taken from robotiq. Some adaptations have been made in the files from the two repositories.
In order to reproduce a Xacro file that can generate this URDF file follow these steps:
- Clone the repositories of UniversalRobots and robotiq in your package.
- Create your own Xacro file to combine the robot and the gripper and add the
<webots>
plugin tag:
<?xml version="1.0"?>
<robot name="UR5e" xmlns:xacro="http://wiki.ros.org/xacro">
<!--
Custom mix of ur5e robot and robotiq 3f gripper for Webots.
Based on https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver
and https://github.com/ros-industrial/robotiq.
-->
<webots>
<plugin type="webots_ros2_control::Ros2Control" />
</webots>
<!-- ur5e robot -->
<xacro:include filename="$(find webots_ros2_universal_robot)/resource/Universal_Robots_ROS2_Driver/ur_description/urdf/ur.urdf.xacro" />
<!-- robotiq 3f gripper -->
<xacro:include filename="$(find webots_ros2_universal_robot)/resource/robotiq/robotiq_3f_gripper_visualization/cfg/robotiq-3f-gripper_articulated_macro.xacro" />
<xacro:robotiq-3f-gripper_articulated prefix=""/>
</robot>
Steps on the UniversalRobots
files:
The ur.urdf.xacro file:
- Define the
joint_limit_params
,kinematics_params
,physical_params
andvisual_params
default arguments with the path to their corresponding.yaml
files. - Update all the paths accordingly to your package.
The visual_parameters.yaml file:
- Update all the paths accordingly to your package.
The ur_macro.xacro file:
- Remove the 4 lines below
<!-- Data files required by the UR driver -->
. - Replace the tag
<xacro:ur_ros2_control.../>
below<!-- ros2 control instance -->
by:
<xacro:ur_ros2_control
name="WebotsControl" prefix="${prefix}"
initial_positions="${initial_positions}" />
- Update all the paths accordingly to your package.
The ur.ros2_control.xacro file:
- Remove
script_filename output_recipe_filename input_recipe_filename tf_prefix hash_kinematics robot_ip
from the<xacro:macro...>
tag. - Remove the
<joint name="speed_scaling">
, the<joint name="gpio">
, the<joint name="resend_robot_program">
and the<joint name="system_interface">
tags. - Remove all the
<command_interface name="velocity">...</command_interface>
tags and all the<param...>...</param>
tags from the<command_interface name="position">...</command_interface>
tags - Replace the
<hardware></hardware>
tag by:
<hardware>
<plugin>webots_ros2_control::Ros2ControlSystem</plugin>
</hardware>
- In order to also control the gripper, add after the
<sensor name="tcp_fts_sensor">...</sensor>
tag these tags:
<!-- ROBOTIQ 3F Gripper -->
<joint name="palm_finger_1_joint">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_1_joint_1">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_1_joint_2">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_1_joint_3">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="palm_finger_2_joint">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_2_joint_1">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_2_joint_2">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_2_joint_3">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_middle_joint_1">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_middle_joint_2">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_middle_joint_3">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
Steps on the robotiq
files:
The robotiq-3f-gripper_articulated_macro.xacro file:
- Remove the
<link name="${prefix}tool0"/>
tag and replace the<joint name="${prefix}palm_tool0" type="fixed">...</joint>
tags by:
<joint name="${prefix}tool0_palm" type="fixed">
<parent link="${prefix}tool0"/>
<child link="${prefix}palm"/>
<origin xyz="0 0 0.045" rpy="1.5708 0 0"/>
</joint>
- Update all the paths accordingly to your package.
The robotiq-3f-gripper_finger_articulated_macro.xacro file:
- Update all the paths accordingly to your package.
Changelog for package webots_ros2_universal_robot
2023.1.3 (2024-08-07) ------------------* Fixed passing the [robot_description]{.title-ref} parameter to ros2_control.
2023.1.2 (2023-07-28) ------------------* Fixed errors showing up when launching moveit for ur5e.
2023.1.0 (2023-06-29) ------------------* Clean simulation reset in launch file. * Fixed JTC interpolation. * Fixed deprecated load_yaml() function. * Update driver node to new WebotsController node.
2023.0.4 (2023-05-23) ------------------* Start ros control nodes when Webots is ready.
2023.0.2 (2023-02-07) ------------------* Fixed URDF relative URLs to assets. * Updated supervisor launch.
2022.1.3 (2022-11-02) ------------------* Added macOS support.
2022.1.2 (2022-10-21) ------------------* Added WSL support.
2022.1.0 (2022-09-23) ------------------* The 'robot' and 'moveit_demo' scenarios now show a use case of the new URDF importer.
1.2.2 (2022-01-19)
- Remove the 'moveit' dependency.
1.2.0 (2021-12-21)
- Adapt the worlds to the new R2022a FLU convention.
- Fix synchornosiation issue when the trajectory controller was receiving goals but was not ready to execute them.
1.1.2 (2021-11-03)
- Utilize the 'webots_ros2_driver' and 'ros2_control' instead of 'webots_ros2_core'.
- Add MoveIt2 example.
- Upgrade the multi-robot example.
- Remove non-useful simulations.
1.0.0 (2020-09-01)
- Use the webots_ros2_core::webots_robotic_arm_node node.
0.0.3 (2020-06-15)
- Added an 'universal_robot_multiple' simulation and launch file.
- Added an 'universal_robot_rviz' simulation and launch file.
- Added support for the goal tolerance in the action server.
- Fixed the action server that was never reaching the [SUCCESSFUL]{.title-ref} state.
0.0.2 (2019-09-23)
- Initial version
Wiki Tutorials
Package Dependencies
System Dependencies
Name |
---|
python3-pytest |
Dependant Packages
Name | Deps |
---|---|
webots_ros2 | |
webots_ros2_tests |
Launch files
Messages
Services
Plugins
Recent questions tagged webots_ros2_universal_robot at Robotics Stack Exchange
webots_ros2_universal_robot package from webots_ros2 repowebots_ros2 webots_ros2_control webots_ros2_driver webots_ros2_epuck webots_ros2_importer webots_ros2_mavic webots_ros2_msgs webots_ros2_tesla webots_ros2_tests webots_ros2_tiago webots_ros2_turtlebot webots_ros2_universal_robot |
|
Package Summary
Tags | No category tags. |
Version | 2023.1.3 |
License | Apache License 2.0 |
Build type | AMENT_PYTHON |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/cyberbotics/webots_ros2.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2024-09-07 |
Dev Status | MAINTAINED |
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
- Cyberbotics
Authors
Universal Robot
This package provides an interface between ROS2 and the UR3e, UR5e and UR10e simulation models of the Universal Robots running in Webots. It includes several simulations of these robots.
Documentation is available here.
Creation of the UR5e URDF file
The URDF file for the UR5e robot used in this package is a mix of the UR5e robot taken from UniversalRobots and the 3-fingers-gripper taken from robotiq. Some adaptations have been made in the files from the two repositories.
In order to reproduce a Xacro file that can generate this URDF file follow these steps:
- Clone the repositories of UniversalRobots and robotiq in your package.
- Create your own Xacro file to combine the robot and the gripper and add the
<webots>
plugin tag:
<?xml version="1.0"?>
<robot name="UR5e" xmlns:xacro="http://wiki.ros.org/xacro">
<!--
Custom mix of ur5e robot and robotiq 3f gripper for Webots.
Based on https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver
and https://github.com/ros-industrial/robotiq.
-->
<webots>
<plugin type="webots_ros2_control::Ros2Control" />
</webots>
<!-- ur5e robot -->
<xacro:include filename="$(find webots_ros2_universal_robot)/resource/Universal_Robots_ROS2_Driver/ur_description/urdf/ur.urdf.xacro" />
<!-- robotiq 3f gripper -->
<xacro:include filename="$(find webots_ros2_universal_robot)/resource/robotiq/robotiq_3f_gripper_visualization/cfg/robotiq-3f-gripper_articulated_macro.xacro" />
<xacro:robotiq-3f-gripper_articulated prefix=""/>
</robot>
Steps on the UniversalRobots
files:
The ur.urdf.xacro file:
- Define the
joint_limit_params
,kinematics_params
,physical_params
andvisual_params
default arguments with the path to their corresponding.yaml
files. - Update all the paths accordingly to your package.
The visual_parameters.yaml file:
- Update all the paths accordingly to your package.
The ur_macro.xacro file:
- Remove the 4 lines below
<!-- Data files required by the UR driver -->
. - Replace the tag
<xacro:ur_ros2_control.../>
below<!-- ros2 control instance -->
by:
<xacro:ur_ros2_control
name="WebotsControl" prefix="${prefix}"
initial_positions="${initial_positions}" />
- Update all the paths accordingly to your package.
The ur.ros2_control.xacro file:
- Remove
script_filename output_recipe_filename input_recipe_filename tf_prefix hash_kinematics robot_ip
from the<xacro:macro...>
tag. - Remove the
<joint name="speed_scaling">
, the<joint name="gpio">
, the<joint name="resend_robot_program">
and the<joint name="system_interface">
tags. - Remove all the
<command_interface name="velocity">...</command_interface>
tags and all the<param...>...</param>
tags from the<command_interface name="position">...</command_interface>
tags - Replace the
<hardware></hardware>
tag by:
<hardware>
<plugin>webots_ros2_control::Ros2ControlSystem</plugin>
</hardware>
- In order to also control the gripper, add after the
<sensor name="tcp_fts_sensor">...</sensor>
tag these tags:
<!-- ROBOTIQ 3F Gripper -->
<joint name="palm_finger_1_joint">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_1_joint_1">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_1_joint_2">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_1_joint_3">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="palm_finger_2_joint">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_2_joint_1">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_2_joint_2">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_2_joint_3">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_middle_joint_1">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_middle_joint_2">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_middle_joint_3">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
Steps on the robotiq
files:
The robotiq-3f-gripper_articulated_macro.xacro file:
- Remove the
<link name="${prefix}tool0"/>
tag and replace the<joint name="${prefix}palm_tool0" type="fixed">...</joint>
tags by:
<joint name="${prefix}tool0_palm" type="fixed">
<parent link="${prefix}tool0"/>
<child link="${prefix}palm"/>
<origin xyz="0 0 0.045" rpy="1.5708 0 0"/>
</joint>
- Update all the paths accordingly to your package.
The robotiq-3f-gripper_finger_articulated_macro.xacro file:
- Update all the paths accordingly to your package.
Changelog for package webots_ros2_universal_robot
2023.1.3 (2024-08-07) ------------------* Fixed passing the [robot_description]{.title-ref} parameter to ros2_control.
2023.1.2 (2023-07-28) ------------------* Fixed errors showing up when launching moveit for ur5e.
2023.1.0 (2023-06-29) ------------------* Clean simulation reset in launch file. * Fixed JTC interpolation. * Fixed deprecated load_yaml() function. * Update driver node to new WebotsController node.
2023.0.4 (2023-05-23) ------------------* Start ros control nodes when Webots is ready.
2023.0.2 (2023-02-07) ------------------* Fixed URDF relative URLs to assets. * Updated supervisor launch.
2022.1.3 (2022-11-02) ------------------* Added macOS support.
2022.1.2 (2022-10-21) ------------------* Added WSL support.
2022.1.0 (2022-09-23) ------------------* The 'robot' and 'moveit_demo' scenarios now show a use case of the new URDF importer.
1.2.2 (2022-01-19)
- Remove the 'moveit' dependency.
1.2.0 (2021-12-21)
- Adapt the worlds to the new R2022a FLU convention.
- Fix synchornosiation issue when the trajectory controller was receiving goals but was not ready to execute them.
1.1.2 (2021-11-03)
- Utilize the 'webots_ros2_driver' and 'ros2_control' instead of 'webots_ros2_core'.
- Add MoveIt2 example.
- Upgrade the multi-robot example.
- Remove non-useful simulations.
1.0.0 (2020-09-01)
- Use the webots_ros2_core::webots_robotic_arm_node node.
0.0.3 (2020-06-15)
- Added an 'universal_robot_multiple' simulation and launch file.
- Added an 'universal_robot_rviz' simulation and launch file.
- Added support for the goal tolerance in the action server.
- Fixed the action server that was never reaching the [SUCCESSFUL]{.title-ref} state.
0.0.2 (2019-09-23)
- Initial version
Wiki Tutorials
Package Dependencies
System Dependencies
Name |
---|
python3-pytest |
Dependant Packages
Name | Deps |
---|---|
webots_ros2 | |
webots_ros2_tests |
Launch files
Messages
Services
Plugins
Recent questions tagged webots_ros2_universal_robot at Robotics Stack Exchange
webots_ros2_universal_robot package from webots_ros2 repowebots_ros2 webots_ros2_control webots_ros2_driver webots_ros2_epuck webots_ros2_importer webots_ros2_mavic webots_ros2_msgs webots_ros2_tesla webots_ros2_tests webots_ros2_tiago webots_ros2_turtlebot webots_ros2_universal_robot |
|
Package Summary
Tags | No category tags. |
Version | 2023.1.3 |
License | Apache License 2.0 |
Build type | AMENT_PYTHON |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/cyberbotics/webots_ros2.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2024-09-07 |
Dev Status | MAINTAINED |
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
- Cyberbotics
Authors
Universal Robot
This package provides an interface between ROS2 and the UR3e, UR5e and UR10e simulation models of the Universal Robots running in Webots. It includes several simulations of these robots.
Documentation is available here.
Creation of the UR5e URDF file
The URDF file for the UR5e robot used in this package is a mix of the UR5e robot taken from UniversalRobots and the 3-fingers-gripper taken from robotiq. Some adaptations have been made in the files from the two repositories.
In order to reproduce a Xacro file that can generate this URDF file follow these steps:
- Clone the repositories of UniversalRobots and robotiq in your package.
- Create your own Xacro file to combine the robot and the gripper and add the
<webots>
plugin tag:
<?xml version="1.0"?>
<robot name="UR5e" xmlns:xacro="http://wiki.ros.org/xacro">
<!--
Custom mix of ur5e robot and robotiq 3f gripper for Webots.
Based on https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver
and https://github.com/ros-industrial/robotiq.
-->
<webots>
<plugin type="webots_ros2_control::Ros2Control" />
</webots>
<!-- ur5e robot -->
<xacro:include filename="$(find webots_ros2_universal_robot)/resource/Universal_Robots_ROS2_Driver/ur_description/urdf/ur.urdf.xacro" />
<!-- robotiq 3f gripper -->
<xacro:include filename="$(find webots_ros2_universal_robot)/resource/robotiq/robotiq_3f_gripper_visualization/cfg/robotiq-3f-gripper_articulated_macro.xacro" />
<xacro:robotiq-3f-gripper_articulated prefix=""/>
</robot>
Steps on the UniversalRobots
files:
The ur.urdf.xacro file:
- Define the
joint_limit_params
,kinematics_params
,physical_params
andvisual_params
default arguments with the path to their corresponding.yaml
files. - Update all the paths accordingly to your package.
The visual_parameters.yaml file:
- Update all the paths accordingly to your package.
The ur_macro.xacro file:
- Remove the 4 lines below
<!-- Data files required by the UR driver -->
. - Replace the tag
<xacro:ur_ros2_control.../>
below<!-- ros2 control instance -->
by:
<xacro:ur_ros2_control
name="WebotsControl" prefix="${prefix}"
initial_positions="${initial_positions}" />
- Update all the paths accordingly to your package.
The ur.ros2_control.xacro file:
- Remove
script_filename output_recipe_filename input_recipe_filename tf_prefix hash_kinematics robot_ip
from the<xacro:macro...>
tag. - Remove the
<joint name="speed_scaling">
, the<joint name="gpio">
, the<joint name="resend_robot_program">
and the<joint name="system_interface">
tags. - Remove all the
<command_interface name="velocity">...</command_interface>
tags and all the<param...>...</param>
tags from the<command_interface name="position">...</command_interface>
tags - Replace the
<hardware></hardware>
tag by:
<hardware>
<plugin>webots_ros2_control::Ros2ControlSystem</plugin>
</hardware>
- In order to also control the gripper, add after the
<sensor name="tcp_fts_sensor">...</sensor>
tag these tags:
<!-- ROBOTIQ 3F Gripper -->
<joint name="palm_finger_1_joint">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_1_joint_1">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_1_joint_2">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_1_joint_3">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="palm_finger_2_joint">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_2_joint_1">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_2_joint_2">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_2_joint_3">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_middle_joint_1">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_middle_joint_2">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
<joint name="finger_middle_joint_3">
<state_interface name="position"/>
<command_interface name="position"/>
</joint>
Steps on the robotiq
files:
The robotiq-3f-gripper_articulated_macro.xacro file:
- Remove the
<link name="${prefix}tool0"/>
tag and replace the<joint name="${prefix}palm_tool0" type="fixed">...</joint>
tags by:
<joint name="${prefix}tool0_palm" type="fixed">
<parent link="${prefix}tool0"/>
<child link="${prefix}palm"/>
<origin xyz="0 0 0.045" rpy="1.5708 0 0"/>
</joint>
- Update all the paths accordingly to your package.
The robotiq-3f-gripper_finger_articulated_macro.xacro file:
- Update all the paths accordingly to your package.
Changelog for package webots_ros2_universal_robot
2023.1.3 (2024-08-07) ------------------* Fixed passing the [robot_description]{.title-ref} parameter to ros2_control.
2023.1.2 (2023-07-28) ------------------* Fixed errors showing up when launching moveit for ur5e.
2023.1.0 (2023-06-29) ------------------* Clean simulation reset in launch file. * Fixed JTC interpolation. * Fixed deprecated load_yaml() function. * Update driver node to new WebotsController node.
2023.0.4 (2023-05-23) ------------------* Start ros control nodes when Webots is ready.
2023.0.2 (2023-02-07) ------------------* Fixed URDF relative URLs to assets. * Updated supervisor launch.
2022.1.3 (2022-11-02) ------------------* Added macOS support.
2022.1.2 (2022-10-21) ------------------* Added WSL support.
2022.1.0 (2022-09-23) ------------------* The 'robot' and 'moveit_demo' scenarios now show a use case of the new URDF importer.
1.2.2 (2022-01-19)
- Remove the 'moveit' dependency.
1.2.0 (2021-12-21)
- Adapt the worlds to the new R2022a FLU convention.
- Fix synchornosiation issue when the trajectory controller was receiving goals but was not ready to execute them.
1.1.2 (2021-11-03)
- Utilize the 'webots_ros2_driver' and 'ros2_control' instead of 'webots_ros2_core'.
- Add MoveIt2 example.
- Upgrade the multi-robot example.
- Remove non-useful simulations.
1.0.0 (2020-09-01)
- Use the webots_ros2_core::webots_robotic_arm_node node.
0.0.3 (2020-06-15)
- Added an 'universal_robot_multiple' simulation and launch file.
- Added an 'universal_robot_rviz' simulation and launch file.
- Added support for the goal tolerance in the action server.
- Fixed the action server that was never reaching the [SUCCESSFUL]{.title-ref} state.
0.0.2 (2019-09-23)
- Initial version
Wiki Tutorials
Package Dependencies
System Dependencies
Name |
---|
python3-pytest |
Dependant Packages
Name | Deps |
---|---|
webots_ros2 | |
webots_ros2_tests |