Skip to content

Commit 0778dcf

Browse files
Add UR30 model (#142)
* Added UR30 meshes * Add UR30 model * Fix ends of files --------- Co-authored-by: Robert Wilbrandt <[email protected]>
1 parent c1c8ac9 commit 0778dcf

File tree

15 files changed

+1235
-8
lines changed

15 files changed

+1235
-8
lines changed

.pre-commit-config.yaml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@
1313
#
1414
# See https://github.com/pre-commit/pre-commit
1515

16-
# This need to be a one to one copy from the Universal Robots legal no matter trailing spaces or not
17-
exclude: 'meshes/ur20/LICENSE.txt'
1816

1917
repos:
2018
# Standard hooks
@@ -33,8 +31,14 @@ repos:
3331
- id: debug-statements
3432
- id: end-of-file-fixer
3533
- id: mixed-line-ending
36-
- id: trailing-whitespace
3734
- id: check-byte-order-marker # Forbid UTF-8 byte-order markers
35+
- id: trailing-whitespace
36+
# This need to be a one to one copy from the Universal Robots legal no matter trailing spaces or not
37+
exclude: |
38+
(?x)^(
39+
meshes/ur20/LICENSE.txt|
40+
meshes/ur30/LICENSE.txt
41+
)$
3842
3943
# Python hooks
4044
- repo: https://github.com/asottile/pyupgrade

README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,10 @@ repository](https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/tree
2020
not clone this repository into a Foxy workspace.
2121

2222
## License
23-
The [UR20 meshes](ur_description/meshes/ur20) constitutes “Graphical Documentation” the use of which is subject to and governed by our “[Terms and Conditions for use of Graphical Documentation](https://www.universal-robots.com/legal/terms-and-conditions/terms_and_conditions_for_use_of_graphical_documentation.txt)”.\
24-
If you have any questions regarding the license or the license doesn't fit you use-case, please contact [[email protected]](mailto:[email protected]).
23+
The [UR20 meshes](ur_description/meshes/ur20) and [UR30 meshes](ur_description/meshes/ur30) constitutes “Graphical Documentation” the use of which is subject to and governed by our “[Terms and Conditions for use of Graphical Documentation](https://www.universal-robots.com/legal/terms-and-conditions/terms_and_conditions_for_use_of_graphical_documentation.txt)”.
24+
25+
Universal Robots' [Terms and Conditions for use of Graphical Documentation](https://www.universal-robots.com/legal/terms-and-conditions/terms_and_conditions_for_use_of_graphical_documentation.txt) do not fully comply with [OSI's definition of Open Source](https://opensource.org/osd/), but they do allow you to use, modify and share “Graphical Documentation”, including [UR20](meshes/ur20) and [UR30](meshes/ur30) meshes, subject to certain restrictions.\
26+
If you have any questions regarding this license or if this license doesn't fit your use-case, please contact [[email protected]](mailto:[email protected]).
2527

2628
All other content is licensed under the BSD-3-Clause license
2729

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
kinematics:
2+
shoulder:
3+
x: 0
4+
y: 0
5+
z: 0.23630000000000001
6+
roll: -0
7+
pitch: 0
8+
yaw: -0
9+
upper_arm:
10+
x: 0
11+
y: 0
12+
z: 0
13+
roll: 1.570796327
14+
pitch: 0
15+
yaw: -0
16+
forearm:
17+
x: -0.637
18+
y: 0
19+
z: 0
20+
roll: -0
21+
pitch: 0
22+
yaw: -0
23+
wrist_1:
24+
x: -0.5037
25+
y: 0
26+
z: 0.20100000000000001
27+
roll: -0
28+
pitch: 0
29+
yaw: -0
30+
wrist_2:
31+
x: 0
32+
y: -0.1593
33+
z: 0
34+
roll: 1.570796327
35+
pitch: 0
36+
yaw: -0
37+
wrist_3:
38+
x: 0
39+
y: 0.15429999999999999
40+
z: -3.1647459019915597e-11
41+
roll: 1.5707963265897931
42+
pitch: 3.1415926535897931
43+
yaw: 3.1415926535897931
44+
hash: calib_4890363623803256388

config/ur30/joint_limits.yaml

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
# Joints limits
2+
#
3+
# Sources:
4+
#
5+
# - Universal Robots e-Series, User Manual, UR20, Version 5.14
6+
# https://s3-eu-west-1.amazonaws.com/ur-support-site/203281/706-276-00_UR20_User_Manual_en_Global.pdf
7+
joint_limits:
8+
shoulder_pan_joint:
9+
# acceleration limits are not publicly available
10+
has_acceleration_limits: false
11+
has_effort_limits: true
12+
has_position_limits: true
13+
has_velocity_limits: true
14+
max_effort: 730.0
15+
max_position: !degrees 360.0
16+
max_velocity: !degrees 120.0
17+
min_position: !degrees -360.0
18+
shoulder_lift_joint:
19+
# acceleration limits are not publicly available
20+
has_acceleration_limits: false
21+
has_effort_limits: true
22+
has_position_limits: true
23+
has_velocity_limits: true
24+
max_effort: 730.0
25+
max_position: !degrees 360.0
26+
max_velocity: !degrees 120.0
27+
min_position: !degrees -360.0
28+
elbow_joint:
29+
# acceleration limits are not publicly available
30+
has_acceleration_limits: false
31+
has_effort_limits: true
32+
has_position_limits: true
33+
has_velocity_limits: true
34+
max_effort: 430.0
35+
# we artificially limit this joint to half its actual joint position limit
36+
# to avoid (MoveIt/OMPL) planning problems, as due to the physical
37+
# construction of the robot, it's impossible to rotate the 'elbow_joint'
38+
# over more than approx +- 1 pi (the shoulder lift joint gets in the way).
39+
#
40+
# This leads to planning problems as the search space will be divided into
41+
# two sections, with no connections from one to the other.
42+
#
43+
# Refer to https://github.com/ros-industrial/universal_robot/issues/265 for
44+
# more information.
45+
max_position: !degrees 180.0
46+
max_velocity: !degrees 150.0
47+
min_position: !degrees -180.0
48+
wrist_1_joint:
49+
# acceleration limits are not publicly available
50+
has_acceleration_limits: false
51+
has_effort_limits: true
52+
has_position_limits: true
53+
has_velocity_limits: true
54+
max_effort: 100.0
55+
max_position: !degrees 360.0
56+
max_velocity: !degrees 210.0
57+
min_position: !degrees -360.0
58+
wrist_2_joint:
59+
# acceleration limits are not publicly available
60+
has_acceleration_limits: false
61+
has_effort_limits: true
62+
has_position_limits: true
63+
has_velocity_limits: true
64+
max_effort: 100.0
65+
max_position: !degrees 360.0
66+
max_velocity: !degrees 210.0
67+
min_position: !degrees -360.0
68+
wrist_3_joint:
69+
# acceleration limits are not publicly available
70+
has_acceleration_limits: false
71+
has_effort_limits: true
72+
has_position_limits: true
73+
has_velocity_limits: true
74+
max_effort: 100.0
75+
max_position: !degrees 360.0
76+
max_velocity: !degrees 210.0
77+
min_position: !degrees -360.0
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# Physical parameters
2+
3+
# from https://www.universal-robots.com/how-tos-and-faqs/faq/ur-faq/parameters-for-calculations-of-kinematics-and-dynamics-45257/
4+
dh_parameters:
5+
d1: 0.2363
6+
a2: -0.8620
7+
a3: -0.7287
8+
d4: 0.201
9+
d5: 0.1593
10+
d6: 0.1543
11+
12+
offsets:
13+
shoulder_offset: 0.260 # measured from model
14+
elbow_offset: 0.043 # measured from model
15+
16+
inertia_parameters:
17+
# taken from https://www.universal-robots.com/how-tos-and-faqs/faq/ur-faq/parameters-for-calculations-of-kinematics-and-dynamics-45257/
18+
base_mass: 4.0 # This mass might be incorrect
19+
shoulder_mass: 16.343
20+
upper_arm_mass: 29.632
21+
upper_arm_inertia_offset: 0.275 # measured from model
22+
forearm_mass: 7.879
23+
wrist_1_mass: 3.054
24+
wrist_2_mass: 3.126
25+
wrist_3_mass: 0.846
26+
27+
shoulder_radius: x0.060 # FROM UR5 CURRENTLY NOT USED ANYMORE
28+
upper_arm_radius: x0.054 # FROM UR5 CURRENTLY NOT USED ANYMORE
29+
elbow_radius: x0.060 # FROM UR5 CURRENTLY NOT USED ANYMORE
30+
forearm_radius: x0.040 # FROM UR5 CURRENTLY NOT USED ANYMORE
31+
wrist_radius: x0.045 # FROM UR5 CURRENTLY NOT USED ANYMORE
32+
33+
links:
34+
base:
35+
radius: 0.075
36+
length: 0.038
37+
shoulder:
38+
radius: 0.075
39+
length: 0.178
40+
upperarm:
41+
radius: 0.075
42+
length: 0.637
43+
forearm:
44+
radius: 0.075
45+
length: 0.5037
46+
wrist_1:
47+
radius: 0.075
48+
length: 0.12
49+
wrist_2:
50+
radius: 0.075
51+
length: 0.12
52+
wrist_3:
53+
radius: 0.045
54+
length: 0.05
55+
56+
center_of_mass: # Adjusted manually
57+
shoulder_cog:
58+
x: 0.0
59+
y: 0.00244
60+
z: -0.037
61+
upper_arm_cog:
62+
x: 0.00001
63+
y: 0.15061
64+
z: 0.40757
65+
forearm_cog:
66+
x: -0.00012
67+
y: 0.06112
68+
z: 0.2084
69+
wrist_1_cog:
70+
x: -0.00021
71+
y: -0.00112
72+
z: 0.02269
73+
wrist_2_cog:
74+
x: -0.00021
75+
y: 0.00112
76+
z: 0.002269
77+
wrist_3_cog:
78+
x: 0.0
79+
y: -0.001156
80+
z: -0.00149

config/ur30/visual_parameters.yaml

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
# Visualisation
2+
3+
mesh_files:
4+
base:
5+
visual:
6+
mesh:
7+
package: ur_description
8+
path: meshes/ur20/visual/base.dae
9+
material:
10+
name: "LightGrey"
11+
color: "0.7 0.7 0.7 1.0"
12+
collision:
13+
mesh:
14+
package: ur_description
15+
path: meshes/ur20/collision/base.stl
16+
17+
shoulder:
18+
visual:
19+
mesh:
20+
package: ur_description
21+
path: meshes/ur20/visual/shoulder.dae
22+
material:
23+
name: "LightGrey"
24+
color: "0.7 0.7 0.7 1.0"
25+
collision:
26+
mesh:
27+
package: ur_description
28+
path: meshes/ur20/collision/shoulder.stl
29+
30+
upper_arm:
31+
visual:
32+
mesh:
33+
package: ur_description
34+
path: meshes/ur30/visual/upperarm.dae
35+
material:
36+
name: "LightGrey"
37+
color: "0.7 0.7 0.7 1.0"
38+
collision:
39+
mesh:
40+
package: ur_description
41+
path: meshes/ur30/collision/upperarm.stl
42+
mesh_files:
43+
44+
forearm:
45+
visual:
46+
mesh:
47+
package: ur_description
48+
path: meshes/ur30/visual/forearm.dae
49+
material:
50+
name: "LightGrey"
51+
color: "0.7 0.7 0.7 1.0"
52+
collision:
53+
mesh:
54+
package: ur_description
55+
path: meshes/ur30/collision/forearm.stl
56+
57+
wrist_1:
58+
visual:
59+
mesh:
60+
package: ur_description
61+
path: meshes/ur20/visual/wrist1.dae
62+
material:
63+
name: "LightGrey"
64+
color: "0.7 0.7 0.7 1.0"
65+
collision:
66+
mesh:
67+
package: ur_description
68+
path: meshes/ur20/collision/wrist1.stl
69+
visual_offset: -0.0775
70+
71+
wrist_2:
72+
visual:
73+
mesh:
74+
package: ur_description
75+
path: meshes/ur20/visual/wrist2.dae
76+
material:
77+
name: "LightGrey"
78+
color: "0.7 0.7 0.7 1.0"
79+
collision:
80+
mesh:
81+
package: ur_description
82+
path: meshes/ur20/collision/wrist2.stl
83+
visual_offset: -0.0749
84+
85+
wrist_3:
86+
visual:
87+
mesh:
88+
package: ur_description
89+
path: meshes/ur20/visual/wrist3.dae
90+
material:
91+
name: "LightGrey"
92+
color: "0.7 0.7 0.7 1.0"
93+
collision:
94+
mesh:
95+
package: ur_description
96+
path: meshes/ur20/collision/wrist3.stl
97+
visual_offset: -0.07

launch/view_ur.launch.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ def generate_launch_description():
4242
DeclareLaunchArgument(
4343
"ur_type",
4444
description="Type/series of used UR robot.",
45-
choices=["ur3", "ur3e", "ur5", "ur5e", "ur10", "ur10e", "ur16e", "ur20"],
45+
choices=["ur3", "ur3e", "ur5", "ur5e", "ur10", "ur10e", "ur16e", "ur20", "ur30"],
4646
)
4747
)
4848
declared_arguments.append(

0 commit comments

Comments
 (0)