-
Notifications
You must be signed in to change notification settings - Fork 28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Robot's joints break on Gazebo #19
Comments
Thanks for reporting this. This package is still in a rather early stage (hence it is not released as binary form) and we currently don't have many resources available to work on this, I'm afraid. |
Thanks for your response. |
Are this package and the Ignition sim package in a similar state?
No, I'm seeing something similar on Rolling. The robot is actually undergoing slow relaxation oscillations in the relative joint poses in my case, but unfortunately my Gazebo video capture also isn't working 😅 (Edit: the oscillations and breaking joints happen for me in the all-zeros starting posture if I turn on a little bit of x-direction gravity) |
Thanks, @danzimmerman. breaking_joints.mp4 |
Yes, very similar to what I'm seeing. If I figure anything out about workarounds/fixes, I'll post here and/or make a PR. |
I'm experiencing the same issue on humble (galactic was fine). |
That's interesting. Will definitely document what I find if I find anything. I just got back to working on this. |
Can confirm it works fine on Galactic. (Ubuntu 20.04 native install) |
These issues seem similar, several different suggestions there. ros-controls/gazebo_ros2_control#73 |
@relffok Among other discussion of the Gazebo
It seems like there's something similar in {
// joint->SetParam("fmax") must be called if joint->SetAngle() or joint->SetParam("vel") are
// going to be called. joint->SetParam("fmax") must *not* be called if joint->SetForce() is
// going to be called.
#if GAZEBO_MAJOR_VERSION > 2
joint->SetParam("fmax", 0, joint_effort_limits_[j]);
#else
joint->SetMaxForce(0, joint_effort_limits_[j]);
#endif
} Workaround ComparisonI forked and modified // At first we do a test with an arbitrary force limit of 1e6
this->dataPtr->sim_joints_[j]->SetParam("fmax", 0, 1000000.0); To get the robot to move, I'm using
As-Is ❌On the as-is Workaround ✅On my Next StepsAccording to this comment, this comment and the Noetic code in ROS 1 So I need to look into ros2_control/joint_limits_interface to see what's going on there. I don't think I have access to joint limit data where I hacked it in to Also worth noting is this joint friction/damping plus |
Another observation: When I set In this->dataPtr->sim_joints_[j]->SetParam("fmax", 0, 867530.9); In the description retrieved with
There's a Gazebo Answers post suggesting they need to be set together: There's an archived Bitbucket PR for Gazebo discussing this a bit: https://osrf-migration.github.io/gazebo-gh-pages/#!/osrf/gazebo/pull-requests/1221/page/1 |
Another Gazebo Answers post about https://answers.gazebosim.org/question/24487/change-joint-characteristics-at-runtime/
The It also appears that a
http://ode.org/wiki/index.php/Manual#Stops_and_motor_parameters
In prior implementations it seems like people have been setting
Some more docs on joint motors: https://classic.gazebosim.org/tutorials?tut=set_velocity&cat=#SetJointVelocityUsingJointMotors
In velocity/position control, I'd think we'd always want to stay well over the minimal amount of joint torque to achieve the next joint velocity in simulation. I'd think the effort limits from this page should probably be handled some other supervisory way ( I'm going to see if I can pass |
I didn't get that to work yet. The draft PR mentioned above uses the joints' It's potentially a good interim workaround to this issue if you're planning to use Open Dynamics Engine. It's simple. |
Excellent documentation, thanks so much! I haven't had the time to look into the reasons for the parameter adaptions, but I quickly tested the mentioned PR and I can confirm it works on debian humble (UR_gazebo and UR_descr from source) as I used ODE as well. I also quickly used MoveIt to control the adapted robot, which I can confirm to work as well (with adaptions of #22) |
@danzimmerman your solution was very helpful. thanks !!! |
@Wiktor-99 worked with our own manipulator in gazebo simulation on ROS 2 Foxy and he found out solution for moving joints. <joint name="${prefix}wrist_3_joint" type="revolute">
[...]
<dynamics damping="0.7" friction="1.0"/>
</joint>
<gazebo reference="${prefix}wrist_3_joint">
<implicitSpringDamper>true</implicitSpringDamper>
</gazebo> I applied this to the |
In my tests, setting |
@danzimmerman I will check that! |
Hi! <dynamics friction="1.0"/> Here are the videos: Screencast.from.18.05.2023.14.21.04.webmThe best solution is to add this 3 configurations for joints: <joint name="${prefix}wrist_3_joint" type="revolute">
[...]
<dynamics damping="0.7" friction="1.0"/>
</joint>
<gazebo reference="${prefix}wrist_3_joint">
<implicitSpringDamper>true</implicitSpringDamper>
</gazebo> |
I can confirm this result when UR3e Gazebo model, friction=1.0 in each jointname: "ur"
id: 10
is_static: false
pose {
position {
x: -0.00029183954658583753
y: -0.00011466868083646661
z: 2.2929547897558578e-05
}
orientation {
x: -0.0016056360667725928
y: 0.0035283387897651446
z: 1.4765924024855587e-05
w: 0.99999248624185832
}
}
joint {
name: "ur::base_joint"
id: 46
type: FIXED
parent: "world"
parent_id: 0
child: "ur::base_link"
child_id: 11
pose {
position {
x: 0
y: 0
z: 0
}
orientation {
x: 0
y: 0
z: 0
w: 1
}
}
}
joint {
name: "ur::shoulder_pan_joint"
id: 47
angle: 0.42819187645724277
type: REVOLUTE
parent: "ur::base_link"
parent_id: 11
child: "ur::shoulder_link"
child_id: 16
pose {
position {
x: 0
y: 0
z: 2.7755575615628914e-17
}
orientation {
x: 0
y: 0
z: 0
w: 1
}
}
axis1 {
xyz {
x: 0
y: 0
z: 1
}
limit_lower: -6.28319
limit_upper: 6.28319
limit_effort: 56
limit_velocity: 3.14159
damping: 0
friction: 1
use_parent_model_frame: false
xyz_expressed_in: ""
}
}
joint {
name: "ur::shoulder_lift_joint"
id: 48
angle: -0.052294021552956593
type: REVOLUTE
parent: "ur::shoulder_link"
parent_id: 16
child: "ur::upper_arm_link"
child_id: 21
pose {
position {
x: -2.6469779601696886e-23
y: 5.5511151231257827e-17
z: -2.7755575615628914e-17
}
orientation {
x: 0
y: 0
z: 0
w: 1
}
}
axis1 {
xyz {
x: 0
y: 0
z: 1
}
limit_lower: -6.28319
limit_upper: 6.28319
limit_effort: 56
limit_velocity: 3.14159
damping: 0
friction: 1
use_parent_model_frame: false
xyz_expressed_in: ""
}
}
joint {
name: "ur::elbow_joint"
id: 49
angle: 1.171561654474381
type: REVOLUTE
parent: "ur::upper_arm_link"
parent_id: 21
child: "ur::forearm_link"
child_id: 26
pose {
position {
x: -2.7755575615628914e-17
y: 5.5511151231257827e-17
z: -2.7755678763066065e-17
}
orientation {
x: 0
y: -2.1175823681357508e-22
z: 0
w: 1
}
}
axis1 {
xyz {
x: 0
y: 0
z: 1
}
limit_lower: -3.14159
limit_upper: 3.14159
limit_effort: 28
limit_velocity: 3.14159
damping: 0
friction: 1
use_parent_model_frame: false
xyz_expressed_in: ""
}
}
joint {
name: "ur::wrist_1_joint"
id: 50
angle: 0.41676511434641839
type: REVOLUTE
parent: "ur::forearm_link"
parent_id: 26
child: "ur::wrist_1_link"
child_id: 31
pose {
position {
x: -1.1102230246251565e-16
y: 5.5511151231257827e-17
z: -5.5511151231257827e-17
}
orientation {
x: 0
y: -2.1175823681357508e-22
z: 0
w: 1
}
}
axis1 {
xyz {
x: 0
y: 0
z: 1
}
limit_lower: -6.28319
limit_upper: 6.28319
limit_effort: 12
limit_velocity: 6.28319
damping: 0
friction: 1
use_parent_model_frame: false
xyz_expressed_in: ""
}
}
joint {
name: "ur::wrist_2_joint"
id: 51
angle: 0.070364197122390948
type: REVOLUTE
parent: "ur::wrist_1_link"
parent_id: 31
child: "ur::wrist_2_link"
child_id: 36
pose {
position {
x: -4.9960035979239134e-16
y: 2.7755575615628914e-17
z: -1.5265566588595902e-16
}
orientation {
x: 0
y: 7.5515863655772091e-24
z: 2.0209095383946746e-22
w: 0.99999999999999989
}
}
axis1 {
xyz {
x: 0
y: 0
z: 1
}
limit_lower: -6.28319
limit_upper: 6.28319
limit_effort: 12
limit_velocity: 6.28319
damping: 0
friction: 1
use_parent_model_frame: false
xyz_expressed_in: ""
}
}
joint {
name: "ur::wrist_3_joint"
id: 52
angle: 0.41523934994008194
type: REVOLUTE
parent: "ur::wrist_2_link"
parent_id: 36
child: "ur::wrist_3_link"
child_id: 41
pose {
position {
x: -3.8857806413618311e-16
y: -6.2450045135165055e-17
z: 0
}
orientation {
x: 0
y: -2.9953303857266052e-23
z: 2.995319383283953e-23
w: 1
}
}
axis1 {
xyz {
x: 0
y: 0
z: 1
}
limit_lower: -6.28319
limit_upper: 6.28319
limit_effort: 12
limit_velocity: 6.28319
damping: 0
friction: 1
use_parent_model_frame: false
xyz_expressed_in: ""
}
}
link {
id: 11
name: "ur::base_link"
self_collide: false
gravity: true
kinematic: false
enabled: true
inertial {
mass: 2
pose {
position {
x: 0
y: 0
z: 0
}
orientation {
x: 0
y: 0
z: 0
w: 1
}
}
ixx: 0.00305317
ixy: 0
ixz: 0
iyy: 0.00305317
iyz: 0
izz: 0.005625
}
pose {
position {
x: 0
y: 0
z: 0.05
}
orientation {
x: 0
y: 0
z: 0
w: 1
}
}
visual {
name: "ur::base_link"
id: 11
parent_name: "ur"
parent_id: 10
pose {
position {
x: 0
y: 0
z: 0.05
}
orientation {
x: 0
y: 0
z: 0
w: 1
}
}
type: LINK
}
visual {
name: "ur::base_link::base_link_inertia_visual"
id: 12
parent_name: "ur::base_link"
parent_id: 11
pose {
position {
x: 0
y: 0
z: 0
}
orientation {
x: 0
y: 0
z: 0
w: 1
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/<username>/ros/gz_ws/install/share/ur_description/meshes/ur3e/visual/base.dae"
scale {
x: 1
y: 1
z: 1
}
}
}
is_static: false
scale {
x: 1
y: 1
z: 1
}
type: VISUAL
}
collision {
id: 13
name: "ur::base_link::base_link_inertia_collision"
laser_retro: 0
pose {
position {
x: 0
y: 0
z: 0
}
orientation {
x: 0
y: 0
z: 0
w: 1
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/<username>/ros/gz_ws/install/share/ur_description/meshes/ur3e/collision/base.stl"
scale {
x: 1
y: 1
z: 1
}
}
}
surface {
friction {
mu: 1
mu2: 1
fdir1 {
x: 0
y: 0
z: 0
}
slip1: 0
slip2: 0
torsional {
coefficient: 1
use_patch_radius: true
patch_radius: 0
surface_radius: 0
ode {
slip: 0
}
}
}
restitution_coefficient: 0
bounce_threshold: 100000
soft_cfm: 0
soft_erp: 0.2
kp: 1000000000000
kd: 1
max_vel: 0.01
min_depth: 0
collide_without_contact: false
collide_without_contact_bitmask: 1
collide_bitmask: 65535
elastic_modulus: 0
}
visual {
name: "ur::base_link::base_link_inertia_collision"
id: 13
parent_name: "ur::base_link"
parent_id: 11
pose {
position {
x: 0
y: 0
z: 0
}
orientation {
x: 0
y: 0
z: 0
w: 1
}
}
type: COLLISION
}
visual {
name: "ur::base_link::base_link_inertia_collision__COLLISION_VISUAL__"
id: 14
parent_name: "ur::base_link"
parent_id: 11
cast_shadows: false
pose {
position {
x: 0
y: 0
z: 0
}
orientation {
x: 0
y: 0
z: 0
w: 1
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/<username>/ros/gz_ws/install/share/ur_description/meshes/ur3e/collision/base.stl"
scale {
x: 1
y: 1
z: 1
}
}
}
material {
script {
uri: "file://media/materials/scripts/gazebo.material"
name: "Gazebo/OrangeTransparent"
}
}
is_static: false
type: COLLISION
}
}
canonical: true
enable_wind: false
}
link {
id: 16
name: "ur::shoulder_link"
self_collide: false
gravity: true
kinematic: false
enabled: true
inertial {
mass: 2
pose {
position {
x: 0
y: 0
z: 0
}
orientation {
x: 0
y: 0
z: 0
w: 1
}
}
ixx: 0.00809316
ixy: 0
ixz: 0
iyy: 0.00809316
iyz: 0
izz: 0.005625
}
pose {
position {
x: -0.0031929675645683397
y: -0.0024436684988631005
z: 0.2018075259645494
}
orientation {
x: -0.015931455122378209
y: -0.0046494161702490752
z: 0.97716915521373915
w: -0.21181362979238819
}
}
visual {
name: "ur::shoulder_link"
id: 16
parent_name: "ur"
parent_id: 10
pose {
position {
x: -0.0031929675645683397
y: -0.0024436684988631005
z: 0.2018075259645494
}
orientation {
x: -0.015931455122378209
y: -0.0046494161702490752
z: 0.97716915521373915
w: -0.21181362979238819
}
}
type: LINK
}
visual {
name: "ur::shoulder_link::shoulder_link_visual"
id: 17
parent_name: "ur::shoulder_link"
parent_id: 16
pose {
position {
x: 0
y: 0
z: 0
}
orientation {
x: 0
y: 0
z: 0.99999999999911982
w: 1.3267948966775328e-06
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/<username>/ros/gz_ws/install/share/ur_description/meshes/ur3e/visual/shoulder.dae"
scale {
x: 1
y: 1
z: 1
}
}
}
is_static: false
scale {
x: 1
y: 1
z: 1
}
type: VISUAL
}
collision {
id: 18
name: "ur::shoulder_link::shoulder_link_collision"
laser_retro: 0
pose {
position {
x: 0
y: 0
z: 0
}
orientation {
x: 0
y: 0
z: 0.99999999999911982
w: 1.3267948966775328e-06
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/<username>/ros/gz_ws/install/share/ur_description/meshes/ur3e/collision/shoulder.stl"
scale {
x: 1
y: 1
z: 1
}
}
}
surface {
friction {
mu: 1
mu2: 1
fdir1 {
x: 0
y: 0
z: 0
}
slip1: 0
slip2: 0
torsional {
coefficient: 1
use_patch_radius: true
patch_radius: 0
surface_radius: 0
ode {
slip: 0
}
}
}
restitution_coefficient: 0
bounce_threshold: 100000
soft_cfm: 0
soft_erp: 0.2
kp: 1000000000000
kd: 1
max_vel: 0.01
min_depth: 0
collide_without_contact: false
collide_without_contact_bitmask: 1
collide_bitmask: 65535
elastic_modulus: 0
}
visual {
name: "ur::shoulder_link::shoulder_link_collision"
id: 18
parent_name: "ur::shoulder_link"
parent_id: 16
pose {
position {
x: 0
y: 0
z: 0
}
orientation {
x: 0
y: 0
z: 0.99999999999911982
w: 1.3267948966775328e-06
}
}
type: COLLISION
}
visual {
name: "ur::shoulder_link::shoulder_link_collision__COLLISION_VISUAL__"
id: 19
parent_name: "ur::shoulder_link"
parent_id: 16
cast_shadows: false
pose {
position {
x: 0
y: 0
z: 0
}
orientation {
x: 0
y: 0
z: 0.99999999999911982
w: 1.3267948966775328e-06
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/<username>/ros/gz_ws/install/share/ur_description/meshes/ur3e/collision/shoulder.stl"
scale {
x: 1
y: 1
z: 1
}
}
}
material {
script {
uri: "file://media/materials/scripts/gazebo.material"
name: "Gazebo/OrangeTransparent"
}
}
is_static: false
type: COLLISION
}
}
enable_wind: false
}
link {
id: 21
name: "ur::upper_arm_link"
self_collide: false
gravity: true
kinematic: false
enabled: true
inertial {
mass: 3.42
pose {
position {
x: -0.121825
y: 0
z: 0.12
}
orientation {
x: 5.93570830084467e-12
y: 0.70710901804279691
z: 5.93570830084467e-12
w: 0.70710454432322223
}
}
ixx: 0.0217285
ixy: 0
ixz: 0
iyy: 0.0217285
iyz: 0
izz: 0.00961875
}
pose {
position {
x: -0.00033758897217561832
y: -0.0013243889702794528
z: 0.20182111521721133
}
orientation {
x: -0.17923352724829547
y: 0.6841869880722663
z: 0.69664348932376774
w: -0.12021379640266194
}
}
visual {
name: "ur::upper_arm_link"
id: 21
parent_name: "ur"
parent_id: 10
pose {
position {
x: -0.00033758897217561832
y: -0.0013243889702794528
z: 0.20182111521721133
}
orientation {
x: -0.17923352724829547
y: 0.6841869880722663
z: 0.69664348932376774
w: -0.12021379640266194
}
}
type: LINK
}
visual {
name: "ur::upper_arm_link::upper_arm_link_visual"
id: 22
parent_name: "ur::upper_arm_link"
parent_id: 21
pose {
position {
x: -7.72917564369549e-23
y: 5.5511151231257827e-17
z: 0.11999999999999997
}
orientation {
x: 0.49999999999662686
y: -0.5000018366025516
z: -0.49999999999662686
w: 0.49999816339744829
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/<username>/ros/gz_ws/install/share/ur_description/meshes/ur3e/visual/upperarm.dae"
scale {
x: 1
y: 1
z: 1
}
}
}
is_static: false
scale {
x: 1
y: 1
z: 1
}
type: VISUAL
}
collision {
id: 23
name: "ur::upper_arm_link::upper_arm_link_collision"
laser_retro: 0
pose {
position {
x: -7.72917564369549e-23
y: 5.5511151231257827e-17
z: 0.11999999999999997
}
orientation {
x: 0.49999999999662686
y: -0.5000018366025516
z: -0.49999999999662686
w: 0.49999816339744829
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/<username>/ros/gz_ws/install/share/ur_description/meshes/ur3e/collision/upperarm.stl"
scale {
x: 1
y: 1
z: 1
}
}
}
surface {
friction {
mu: 1
mu2: 1
fdir1 {
x: 0
y: 0
z: 0
}
slip1: 0
slip2: 0
torsional {
coefficient: 1
use_patch_radius: true
patch_radius: 0
surface_radius: 0
ode {
slip: 0
}
}
}
restitution_coefficient: 0
bounce_threshold: 100000
soft_cfm: 0
soft_erp: 0.2
kp: 1000000000000
kd: 1
max_vel: 0.01
min_depth: 0
collide_without_contact: false
collide_without_contact_bitmask: 1
collide_bitmask: 65535
elastic_modulus: 0
}
visual {
name: "ur::upper_arm_link::upper_arm_link_collision"
id: 23
parent_name: "ur::upper_arm_link"
parent_id: 21
pose {
position {
x: -7.72917564369549e-23
y: 5.5511151231257827e-17
z: 0.11999999999999997
}
orientation {
x: 0.49999999999662686
y: -0.5000018366025516
z: -0.49999999999662686
w: 0.49999816339744829
}
}
type: COLLISION
}
visual {
name: "ur::upper_arm_link::upper_arm_link_collision__COLLISION_VISUAL__"
id: 24
parent_name: "ur::upper_arm_link"
parent_id: 21
cast_shadows: false
pose {
position {
x: -7.72917564369549e-23
y: 5.5511151231257827e-17
z: 0.11999999999999997
}
orientation {
x: 0.49999999999662686
y: -0.5000018366025516
z: -0.49999999999662686
w: 0.49999816339744829
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/<username>/ros/gz_ws/install/share/ur_description/meshes/ur3e/collision/upperarm.stl"
scale {
x: 1
y: 1
z: 1
}
}
}
material {
script {
uri: "file://media/materials/scripts/gazebo.material"
name: "Gazebo/OrangeTransparent"
}
}
is_static: false
type: COLLISION
}
}
enable_wind: false
}
link {
id: 26
name: "ur::forearm_link"
self_collide: false
gravity: true
kinematic: false
enabled: true
inertial {
mass: 1.26
pose {
position {
x: -0.1066
y: 0
z: 0.027
}
orientation {
x: 5.93570830084467e-12
y: 0.70710901804279691
z: 5.93570830084467e-12
w: 0.70710454432322223
}
}
ixx: 0.00654457
ixy: 0
ixz: 0
iyy: 0.00654457
iyz: 0
izz: 0.00354375
}
pose {
position {
x: 0.22955942692413636
y: 0.10321529180164256
z: 0.22386526429097495
}
orientation {
x: 0.21599623336306034
y: 0.68885990295106492
z: 0.49103362087718117
w: -0.4875486072664596
}
}
visual {
name: "ur::forearm_link"
id: 26
parent_name: "ur"
parent_id: 10
pose {
position {
x: 0.22955942692413636
y: 0.10321529180164256
z: 0.22386526429097495
}
orientation {
x: 0.21599623336306034
y: 0.68885990295106492
z: 0.49103362087718117
w: -0.4875486072664596
}
}
type: LINK
}
visual {
name: "ur::forearm_link::forearm_link_visual"
id: 27
parent_name: "ur::forearm_link"
parent_id: 26
pose {
position {
x: -8.3266738281831529e-17
y: 8.3266726846886741e-17
z: 0.026999999999999958
}
orientation {
x: 0.49999999999662686
y: -0.5000018366025516
z: -0.49999999999662686
w: 0.49999816339744829
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/<username>/ros/gz_ws/install/share/ur_description/meshes/ur3e/visual/forearm.dae"
scale {
x: 1
y: 1
z: 1
}
}
}
is_static: false
scale {
x: 1
y: 1
z: 1
}
type: VISUAL
}
collision {
id: 28
name: "ur::forearm_link::forearm_link_collision"
laser_retro: 0
pose {
position {
x: -8.3266738281831529e-17
y: 8.3266726846886741e-17
z: 0.026999999999999958
}
orientation {
x: 0.49999999999662686
y: -0.5000018366025516
z: -0.49999999999662686
w: 0.49999816339744829
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/<username>/ros/gz_ws/install/share/ur_description/meshes/ur3e/collision/forearm.stl"
scale {
x: 1
y: 1
z: 1
}
}
}
surface {
friction {
mu: 1
mu2: 1
fdir1 {
x: 0
y: 0
z: 0
}
slip1: 0
slip2: 0
torsional {
coefficient: 1
use_patch_radius: true
patch_radius: 0
surface_radius: 0
ode {
slip: 0
}
}
}
restitution_coefficient: 0
bounce_threshold: 100000
soft_cfm: 0
soft_erp: 0.2
kp: 1000000000000
kd: 1
max_vel: 0.01
min_depth: 0
collide_without_contact: false
collide_without_contact_bitmask: 1
collide_bitmask: 65535
elastic_modulus: 0
}
visual {
name: "ur::forearm_link::forearm_link_collision"
id: 28
parent_name: "ur::forearm_link"
parent_id: 26
pose {
position {
x: -8.3266738281831529e-17
y: 8.3266726846886741e-17
z: 0.026999999999999958
}
orientation {
x: 0.49999999999662686
y: -0.5000018366025516
z: -0.49999999999662686
w: 0.49999816339744829
}
}
type: COLLISION
}
visual {
name: "ur::forearm_link::forearm_link_collision__COLLISION_VISUAL__"
id: 29
parent_name: "ur::forearm_link"
parent_id: 26
cast_shadows: false
pose {
position {
x: -8.3266738281831529e-17
y: 8.3266726846886741e-17
z: 0.026999999999999958
}
orientation {
x: 0.49999999999662686
y: -0.5000018366025516
z: -0.49999999999662686
w: 0.49999816339744829
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/<username>/ros/gz_ws/install/share/ur_description/meshes/ur3e/collision/forearm.stl"
scale {
x: 1
y: 1
z: 1
}
}
}
material {
script {
uri: "file://media/materials/scripts/gazebo.material"
name: "Gazebo/OrangeTransparent"
}
}
is_static: false
type: COLLISION
}
}
enable_wind: false
}
link {
id: 31
name: "ur::wrist_1_link"
self_collide: false
gravity: true
kinematic: false
enabled: true
inertial {
mass: 0.8
pose {
position {
x: 0
y: 0
z: 0
}
orientation {
x: 0
y: 0
z: 0
w: 1
}
}
ixx: 0.002085
ixy: 0
ixz: 0
iyy: 0.002085
iyz: 0
izz: 0.00225
}
pose {
position {
x: 0.27815935638517741
y: 0.2686571459299667
z: 0.037768674316212385
}
orientation {
x: 0.366646034821522
y: 0.59301467442843436
z: 0.4289831492184763
w: -0.57434984003548883
}
}
visual {
name: "ur::wrist_1_link"
id: 31
parent_name: "ur"
parent_id: 10
pose {
position {
x: 0.27815935638517741
y: 0.2686571459299667
z: 0.037768674316212385
}
orientation {
x: 0.366646034821522
y: 0.59301467442843436
z: 0.4289831492184763
w: -0.57434984003548883
}
}
type: LINK
}
visual {
name: "ur::wrist_1_link::wrist_1_link_visual"
id: 32
parent_name: "ur::wrist_1_link"
parent_id: 31
pose {
position {
x: -1.6653340964806023e-16
y: 2.7755575615628914e-17
z: -0.104
}
orientation {
x: 0.70710807985947366
y: -1.4973541021779167e-22
z: 1.4973596022767479e-22
w: 0.70710548251123639
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/<username>/ros/gz_ws/install/share/ur_description/meshes/ur3e/visual/wrist1.dae"
scale {
x: 1
y: 1
z: 1
}
}
}
is_static: false
scale {
x: 1
y: 1
z: 1
}
type: VISUAL
}
collision {
id: 33
name: "ur::wrist_1_link::wrist_1_link_collision"
laser_retro: 0
pose {
position {
x: -1.6653340964806023e-16
y: 2.7755575615628914e-17
z: -0.104
}
orientation {
x: 0.70710807985947366
y: -1.4973541021779167e-22
z: 1.4973596022767479e-22
w: 0.70710548251123639
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/<username>/ros/gz_ws/install/share/ur_description/meshes/ur3e/collision/wrist1.stl"
scale {
x: 1
y: 1
z: 1
}
}
}
surface {
friction {
mu: 1
mu2: 1
fdir1 {
x: 0
y: 0
z: 0
}
slip1: 0
slip2: 0
torsional {
coefficient: 1
use_patch_radius: true
patch_radius: 0
surface_radius: 0
ode {
slip: 0
}
}
}
restitution_coefficient: 0
bounce_threshold: 100000
soft_cfm: 0
soft_erp: 0.2
kp: 1000000000000
kd: 1
max_vel: 0.01
min_depth: 0
collide_without_contact: false
collide_without_contact_bitmask: 1
collide_bitmask: 65535
elastic_modulus: 0
}
visual {
name: "ur::wrist_1_link::wrist_1_link_collision"
id: 33
parent_name: "ur::wrist_1_link"
parent_id: 31
pose {
position {
x: -1.6653340964806023e-16
y: 2.7755575615628914e-17
z: -0.104
}
orientation {
x: 0.70710807985947366
y: -1.4973541021779167e-22
z: 1.4973596022767479e-22
w: 0.70710548251123639
}
}
type: COLLISION
}
visual {
name: "ur::wrist_1_link::wrist_1_link_collision__COLLISION_VISUAL__"
id: 34
parent_name: "ur::wrist_1_link"
parent_id: 31
cast_shadows: false
pose {
position {
x: -1.6653340964806023e-16
y: 2.7755575615628914e-17
z: -0.104
}
orientation {
x: 0.70710807985947366
y: -1.4973541021779167e-22
z: 1.4973596022767479e-22
w: 0.70710548251123639
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/<username>/ros/gz_ws/install/share/ur_description/meshes/ur3e/collision/wrist1.stl"
scale {
x: 1
y: 1
z: 1
}
}
}
material {
script {
uri: "file://media/materials/scripts/gazebo.material"
name: "Gazebo/OrangeTransparent"
}
}
is_static: false
type: COLLISION
}
}
enable_wind: false
}
link {
id: 36
name: "ur::wrist_2_link"
self_collide: false
gravity: true
kinematic: false
enabled: true
inertial {
mass: 0.8
pose {
position {
x: 0
y: 0
z: 0
}
orientation {
x: 0
y: 0
z: 0
w: 1
}
}
ixx: 0.002085
ixy: 0
ixz: 0
iyy: 0.002085
iyz: 0
izz: 0.00225
}
pose {
position {
x: 0.19878929179925789
y: 0.2320294496953221
z: 0.033795121868799155
}
orientation {
x: -0.14211509513124285
y: 0.70924321835618853
z: -0.14677927280846864
w: -0.67470971686008119
}
}
visual {
name: "ur::wrist_2_link"
id: 36
parent_name: "ur"
parent_id: 10
pose {
position {
x: 0.19878929179925789
y: 0.2320294496953221
z: 0.033795121868799155
}
orientation {
x: -0.14211509513124285
y: 0.70924321835618853
z: -0.14677927280846864
w: -0.67470971686008119
}
}
type: LINK
}
visual {
name: "ur::wrist_2_link::wrist_2_link_visual"
id: 37
parent_name: "ur::wrist_2_link"
parent_id: 36
pose {
position {
x: -4.9960036108159625e-16
y: 2.124844926931163e-50
z: -0.0853500000000001
}
orientation {
x: 0
y: 1.6155871338926322e-27
z: -7.7048348339792173e-23
w: 0.99999999999999989
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/<username>/ros/gz_ws/install/share/ur_description/meshes/ur3e/visual/wrist2.dae"
scale {
x: 1
y: 1
z: 1
}
}
}
is_static: false
scale {
x: 1
y: 1
z: 1
}
type: VISUAL
}
collision {
id: 38
name: "ur::wrist_2_link::wrist_2_link_collision"
laser_retro: 0
pose {
position {
x: -4.9960036108159625e-16
y: 2.124844926931163e-50
z: -0.0853500000000001
}
orientation {
x: 0
y: 1.6155871338926322e-27
z: -7.7048348339792173e-23
w: 0.99999999999999989
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/<username>/ros/gz_ws/install/share/ur_description/meshes/ur3e/collision/wrist2.stl"
scale {
x: 1
y: 1
z: 1
}
}
}
surface {
friction {
mu: 1
mu2: 1
fdir1 {
x: 0
y: 0
z: 0
}
slip1: 0
slip2: 0
torsional {
coefficient: 1
use_patch_radius: true
patch_radius: 0
surface_radius: 0
ode {
slip: 0
}
}
}
restitution_coefficient: 0
bounce_threshold: 100000
soft_cfm: 0
soft_erp: 0.2
kp: 1000000000000
kd: 1
max_vel: 0.01
min_depth: 0
collide_without_contact: false
collide_without_contact_bitmask: 1
collide_bitmask: 65535
elastic_modulus: 0
}
visual {
name: "ur::wrist_2_link::wrist_2_link_collision"
id: 38
parent_name: "ur::wrist_2_link"
parent_id: 36
pose {
position {
x: -4.9960036108159625e-16
y: 2.124844926931163e-50
z: -0.0853500000000001
}
orientation {
x: 0
y: 1.6155871338926322e-27
z: -7.7048348339792173e-23
w: 0.99999999999999989
}
}
type: COLLISION
}
visual {
name: "ur::wrist_2_link::wrist_2_link_collision__COLLISION_VISUAL__"
id: 39
parent_name: "ur::wrist_2_link"
parent_id: 36
cast_shadows: false
pose {
position {
x: -4.9960036108159625e-16
y: 2.124844926931163e-50
z: -0.0853500000000001
}
orientation {
x: 0
y: 1.6155871338926322e-27
z: -7.7048348339792173e-23
w: 0.99999999999999989
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/<username>/ros/gz_ws/install/share/ur_description/meshes/ur3e/collision/wrist2.stl"
scale {
x: 1
y: 1
z: 1
}
}
}
material {
script {
uri: "file://media/materials/scripts/gazebo.material"
name: "Gazebo/OrangeTransparent"
}
}
is_static: false
type: COLLISION
}
}
enable_wind: false
}
link {
id: 41
name: "ur::wrist_3_link"
self_collide: false
gravity: true
kinematic: false
enabled: true
inertial {
mass: 0.35
pose {
position {
x: 0
y: 0
z: -0.02
}
orientation {
x: 0
y: 0
z: 0
w: 1
}
}
ixx: 0.000136267
ixy: 0
ixz: 0
iyy: 0.000136267
iyz: 0
izz: 0.0001792
}
pose {
position {
x: 0.16276614751979787
y: 0.31585212014835995
z: 0.032659652528992549
}
orientation {
x: 0.5121387620028891
y: 0.53047836407871252
z: 0.26682326057570127
w: -0.62057388062524232
}
}
visual {
name: "ur::wrist_3_link"
id: 41
parent_name: "ur"
parent_id: 10
pose {
position {
x: 0.16276614751979787
y: 0.31585212014835995
z: 0.032659652528992549
}
orientation {
x: 0.5121387620028891
y: 0.53047836407871252
z: 0.26682326057570127
w: -0.62057388062524232
}
}
type: LINK
}
visual {
name: "ur::wrist_3_link::wrist_3_link_visual"
id: 42
parent_name: "ur::wrist_3_link"
parent_id: 41
pose {
position {
x: -3.8857805861880479e-16
y: -6.9388939039072284e-17
z: -0.092099999999999918
}
orientation {
x: 0.70710807985947366
y: 0
z: 0
w: 0.70710548251123639
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/<username>/ros/gz_ws/install/share/ur_description/meshes/ur3e/visual/wrist3.dae"
scale {
x: 1
y: 1
z: 1
}
}
}
is_static: false
scale {
x: 1
y: 1
z: 1
}
type: VISUAL
}
collision {
id: 43
name: "ur::wrist_3_link::wrist_3_link_collision"
laser_retro: 0
pose {
position {
x: -3.8857805861880479e-16
y: -6.9388939039072284e-17
z: -0.092099999999999918
}
orientation {
x: 0.70710807985947366
y: 0
z: 0
w: 0.70710548251123639
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/<username>/ros/gz_ws/install/share/ur_description/meshes/ur3e/collision/wrist3.stl"
scale {
x: 1
y: 1
z: 1
}
}
}
surface {
friction {
mu: 1
mu2: 1
fdir1 {
x: 0
y: 0
z: 0
}
slip1: 0
slip2: 0
torsional {
coefficient: 1
use_patch_radius: true
patch_radius: 0
surface_radius: 0
ode {
slip: 0
}
}
}
restitution_coefficient: 0
bounce_threshold: 100000
soft_cfm: 0
soft_erp: 0.2
kp: 1000000000000
kd: 1
max_vel: 0.01
min_depth: 0
collide_without_contact: false
collide_without_contact_bitmask: 1
collide_bitmask: 65535
elastic_modulus: 0
}
visual {
name: "ur::wrist_3_link::wrist_3_link_collision"
id: 43
parent_name: "ur::wrist_3_link"
parent_id: 41
pose {
position {
x: -3.8857805861880479e-16
y: -6.9388939039072284e-17
z: -0.092099999999999918
}
orientation {
x: 0.70710807985947366
y: 0
z: 0
w: 0.70710548251123639
}
}
type: COLLISION
}
visual {
name: "ur::wrist_3_link::wrist_3_link_collision__COLLISION_VISUAL__"
id: 44
parent_name: "ur::wrist_3_link"
parent_id: 41
cast_shadows: false
pose {
position {
x: -3.8857805861880479e-16
y: -6.9388939039072284e-17
z: -0.092099999999999918
}
orientation {
x: 0.70710807985947366
y: 0
z: 0
w: 0.70710548251123639
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/<username>/ros/gz_ws/install/share/ur_description/meshes/ur3e/collision/wrist3.stl"
scale {
x: 1
y: 1
z: 1
}
}
}
material {
script {
uri: "file://media/materials/scripts/gazebo.material"
name: "Gazebo/OrangeTransparent"
}
}
is_static: false
type: COLLISION
}
}
enable_wind: false
}
visual {
name: "ur"
id: 10
parent_name: "default"
parent_id: 1
pose {
position {
x: -0.00029183954658583753
y: -0.00011466868083646661
z: 2.2929547897558578e-05
}
orientation {
x: -0.0016056360667725928
y: 0.0035283387897651446
z: 1.4765924024855587e-05
w: 0.99999248624185832
}
}
type: MODEL
}
scale {
x: 1
y: 1
z: 1
}
self_collide: false
enable_wind: false
plugin {
name: "gazebo_ros2_control"
filename: "libgazebo_ros2_control.so"
innerxml: "<parameters>/home/<username>/ros/gz_ws/install/share/ur_simulation_gazebo/config/ur_controllers.yaml</parameters>\n"
}
Joint dynamics settings<xacro:property name="joint_dyn_dict"
value="${dict(
joint_dynamics=dict(
shoulder_pan_joint=dict(damping=0.0, friction=1.0),
shoulder_lift_joint=dict(damping=0.0, friction=1.0),
elbow_joint=dict(damping=0.0, friction=1.0),
wrist_1_joint=dict(damping=0.0, friction=1.0),
wrist_2_joint=dict(damping=0.0, friction=1.0),
wrist_3_joint=dict(damping=0.0, friction=1.0)))}"
/> However, if I set the friction higher, here, to 1.0x the joint's effort limit, the model is stable with no damping. For example, these settings are stable: UR3e Gazebo modelname: "ur"
id: 10
is_static: false
pose {
position {
x: 1.7664581161916394e-07
y: 9.8421628554235216e-07
z: 6.1777577546606732e-08
}
orientation {
x: 1.0063997217110073e-05
y: -1.8200132416254767e-06
z: -1.6235609612999127e-07
w: 0.99999999994768851
}
}
joint {
name: "ur::base_joint"
id: 46
type: FIXED
parent: "world"
parent_id: 0
child: "ur::base_link"
child_id: 11
pose {
position {
x: 0
y: 0
z: 0
}
orientation {
x: 0
y: 0
z: 0
w: 1
}
}
}
joint {
name: "ur::shoulder_pan_joint"
id: 47
angle: 8.2505567948309988e-05
type: REVOLUTE
parent: "ur::base_link"
parent_id: 11
child: "ur::shoulder_link"
child_id: 16
pose {
position {
x: 0
y: 0
z: 2.7755575615628914e-17
}
orientation {
x: 0
y: 0
z: 0
w: 1
}
}
axis1 {
xyz {
x: 0
y: 0
z: 1
}
limit_lower: -6.28319
limit_upper: 6.28319
limit_effort: 56
limit_velocity: 3.14159
damping: 0
friction: 56
use_parent_model_frame: false
xyz_expressed_in: ""
}
}
joint {
name: "ur::shoulder_lift_joint"
id: 48
angle: -1.569999232182308
type: REVOLUTE
parent: "ur::shoulder_link"
parent_id: 16
child: "ur::upper_arm_link"
child_id: 21
pose {
position {
x: -2.6469779601696886e-23
y: 5.5511151231257827e-17
z: -2.7755575615628914e-17
}
orientation {
x: 0
y: 0
z: 0
w: 1
}
}
axis1 {
xyz {
x: 0
y: 0
z: 1
}
limit_lower: -6.28319
limit_upper: 6.28319
limit_effort: 56
limit_velocity: 3.14159
damping: 0
friction: 56
use_parent_model_frame: false
xyz_expressed_in: ""
}
}
joint {
name: "ur::elbow_joint"
id: 49
angle: -1.614056065690761e-06
type: REVOLUTE
parent: "ur::upper_arm_link"
parent_id: 21
child: "ur::forearm_link"
child_id: 26
pose {
position {
x: -2.7755575615628914e-17
y: 5.5511151231257827e-17
z: -2.7755678763066065e-17
}
orientation {
x: 0
y: -2.1175823681357508e-22
z: 0
w: 1
}
}
axis1 {
xyz {
x: 0
y: 0
z: 1
}
limit_lower: -3.14159
limit_upper: 3.14159
limit_effort: 28
limit_velocity: 3.14159
damping: 0
friction: 28
use_parent_model_frame: false
xyz_expressed_in: ""
}
}
joint {
name: "ur::wrist_1_joint"
id: 50
angle: 9.3461879187017871e-06
type: REVOLUTE
parent: "ur::forearm_link"
parent_id: 26
child: "ur::wrist_1_link"
child_id: 31
pose {
position {
x: -1.1102230246251565e-16
y: 5.5511151231257827e-17
z: -5.5511151231257827e-17
}
orientation {
x: 0
y: -2.1175823681357508e-22
z: 0
w: 1
}
}
axis1 {
xyz {
x: 0
y: 0
z: 1
}
limit_lower: -6.28319
limit_upper: 6.28319
limit_effort: 12
limit_velocity: 6.28319
damping: 0
friction: 12
use_parent_model_frame: false
xyz_expressed_in: ""
}
}
joint {
name: "ur::wrist_2_joint"
id: 51
angle: -0.70649922833953216
type: REVOLUTE
parent: "ur::wrist_1_link"
parent_id: 31
child: "ur::wrist_2_link"
child_id: 36
pose {
position {
x: -4.9960035979239134e-16
y: 2.7755575615628914e-17
z: -1.5265566588595902e-16
}
orientation {
x: 0
y: 7.5515863655772091e-24
z: 2.0209095383946746e-22
w: 0.99999999999999989
}
}
axis1 {
xyz {
x: 0
y: 0
z: 1
}
limit_lower: -6.28319
limit_upper: 6.28319
limit_effort: 12
limit_velocity: 6.28319
damping: 0
friction: 12
use_parent_model_frame: false
xyz_expressed_in: ""
}
}
joint {
name: "ur::wrist_3_joint"
id: 52
angle: 1.6066448162987967e-06
type: REVOLUTE
parent: "ur::wrist_2_link"
parent_id: 36
child: "ur::wrist_3_link"
child_id: 41
pose {
position {
x: -3.8857806413618311e-16
y: -6.2450045135165055e-17
z: 0
}
orientation {
x: 0
y: -2.9953303857266052e-23
z: 2.995319383283953e-23
w: 1
}
}
axis1 {
xyz {
x: 0
y: 0
z: 1
}
limit_lower: -6.28319
limit_upper: 6.28319
limit_effort: 12
limit_velocity: 6.28319
damping: 0
friction: 12
use_parent_model_frame: false
xyz_expressed_in: ""
}
}
link {
id: 11
name: "ur::base_link"
self_collide: false
gravity: true
kinematic: false
enabled: true
inertial {
mass: 2
pose {
position {
x: 0
y: 0
z: 0
}
orientation {
x: 0
y: 0
z: 0
w: 1
}
}
ixx: 0.00305317
ixy: 0
ixz: 0
iyy: 0.00305317
iyz: 0
izz: 0.005625
}
pose {
position {
x: 0
y: 0
z: 0.05
}
orientation {
x: 0
y: 0
z: 0
w: 1
}
}
visual {
name: "ur::base_link"
id: 11
parent_name: "ur"
parent_id: 10
pose {
position {
x: 0
y: 0
z: 0.05
}
orientation {
x: 0
y: 0
z: 0
w: 1
}
}
type: LINK
}
visual {
name: "ur::base_link::base_link_inertia_visual"
id: 12
parent_name: "ur::base_link"
parent_id: 11
pose {
position {
x: 0
y: 0
z: 0
}
orientation {
x: 0
y: 0
z: 0
w: 1
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/dan/ros/gz_ws/install/share/ur_description/meshes/ur3e/visual/base.dae"
scale {
x: 1
y: 1
z: 1
}
}
}
is_static: false
scale {
x: 1
y: 1
z: 1
}
type: VISUAL
}
collision {
id: 13
name: "ur::base_link::base_link_inertia_collision"
laser_retro: 0
pose {
position {
x: 0
y: 0
z: 0
}
orientation {
x: 0
y: 0
z: 0
w: 1
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/dan/ros/gz_ws/install/share/ur_description/meshes/ur3e/collision/base.stl"
scale {
x: 1
y: 1
z: 1
}
}
}
surface {
friction {
mu: 1
mu2: 1
fdir1 {
x: 0
y: 0
z: 0
}
slip1: 0
slip2: 0
torsional {
coefficient: 1
use_patch_radius: true
patch_radius: 0
surface_radius: 0
ode {
slip: 0
}
}
}
restitution_coefficient: 0
bounce_threshold: 100000
soft_cfm: 0
soft_erp: 0.2
kp: 1000000000000
kd: 1
max_vel: 0.01
min_depth: 0
collide_without_contact: false
collide_without_contact_bitmask: 1
collide_bitmask: 65535
elastic_modulus: 0
}
visual {
name: "ur::base_link::base_link_inertia_collision"
id: 13
parent_name: "ur::base_link"
parent_id: 11
pose {
position {
x: 0
y: 0
z: 0
}
orientation {
x: 0
y: 0
z: 0
w: 1
}
}
type: COLLISION
}
visual {
name: "ur::base_link::base_link_inertia_collision__COLLISION_VISUAL__"
id: 14
parent_name: "ur::base_link"
parent_id: 11
cast_shadows: false
pose {
position {
x: 0
y: 0
z: 0
}
orientation {
x: 0
y: 0
z: 0
w: 1
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/dan/ros/gz_ws/install/share/ur_description/meshes/ur3e/collision/base.stl"
scale {
x: 1
y: 1
z: 1
}
}
}
material {
script {
uri: "file://media/materials/scripts/gazebo.material"
name: "Gazebo/OrangeTransparent"
}
}
is_static: false
type: COLLISION
}
}
canonical: true
enable_wind: false
}
link {
id: 16
name: "ur::shoulder_link"
self_collide: false
gravity: true
kinematic: false
enabled: true
inertial {
mass: 2
pose {
position {
x: 0
y: 0
z: 0
}
orientation {
x: 0
y: 0
z: 0
w: 1
}
}
ixx: 0.00809316
ixy: 0
ixz: 0
iyy: 0.00809316
iyz: 0
izz: 0.005625
}
pose {
position {
x: 2.7853444170520962e-07
y: 1.1372628390970756e-06
z: 0.20184985675060552
}
orientation {
x: 5.743475973535535e-06
y: 3.123253744542718e-05
z: 0.99999999918315985
w: -2.5004427505359085e-05
}
}
visual {
name: "ur::shoulder_link"
id: 16
parent_name: "ur"
parent_id: 10
pose {
position {
x: 2.7853444170520962e-07
y: 1.1372628390970756e-06
z: 0.20184985675060552
}
orientation {
x: 5.743475973535535e-06
y: 3.123253744542718e-05
z: 0.99999999918315985
w: -2.5004427505359085e-05
}
}
type: LINK
}
visual {
name: "ur::shoulder_link::shoulder_link_visual"
id: 17
parent_name: "ur::shoulder_link"
parent_id: 16
pose {
position {
x: 0
y: 0
z: 0
}
orientation {
x: 0
y: 0
z: 0.99999999999911982
w: 1.3267948966775328e-06
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/dan/ros/gz_ws/install/share/ur_description/meshes/ur3e/visual/shoulder.dae"
scale {
x: 1
y: 1
z: 1
}
}
}
is_static: false
scale {
x: 1
y: 1
z: 1
}
type: VISUAL
}
collision {
id: 18
name: "ur::shoulder_link::shoulder_link_collision"
laser_retro: 0
pose {
position {
x: 0
y: 0
z: 0
}
orientation {
x: 0
y: 0
z: 0.99999999999911982
w: 1.3267948966775328e-06
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/dan/ros/gz_ws/install/share/ur_description/meshes/ur3e/collision/shoulder.stl"
scale {
x: 1
y: 1
z: 1
}
}
}
surface {
friction {
mu: 1
mu2: 1
fdir1 {
x: 0
y: 0
z: 0
}
slip1: 0
slip2: 0
torsional {
coefficient: 1
use_patch_radius: true
patch_radius: 0
surface_radius: 0
ode {
slip: 0
}
}
}
restitution_coefficient: 0
bounce_threshold: 100000
soft_cfm: 0
soft_erp: 0.2
kp: 1000000000000
kd: 1
max_vel: 0.01
min_depth: 0
collide_without_contact: false
collide_without_contact_bitmask: 1
collide_bitmask: 65535
elastic_modulus: 0
}
visual {
name: "ur::shoulder_link::shoulder_link_collision"
id: 18
parent_name: "ur::shoulder_link"
parent_id: 16
pose {
position {
x: 0
y: 0
z: 0
}
orientation {
x: 0
y: 0
z: 0.99999999999911982
w: 1.3267948966775328e-06
}
}
type: COLLISION
}
visual {
name: "ur::shoulder_link::shoulder_link_collision__COLLISION_VISUAL__"
id: 19
parent_name: "ur::shoulder_link"
parent_id: 16
cast_shadows: false
pose {
position {
x: 0
y: 0
z: 0
}
orientation {
x: 0
y: 0
z: 0.99999999999911982
w: 1.3267948966775328e-06
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/dan/ros/gz_ws/install/share/ur_description/meshes/ur3e/collision/shoulder.stl"
scale {
x: 1
y: 1
z: 1
}
}
}
material {
script {
uri: "file://media/materials/scripts/gazebo.material"
name: "Gazebo/OrangeTransparent"
}
}
is_static: false
type: COLLISION
}
}
enable_wind: false
}
link {
id: 21
name: "ur::upper_arm_link"
self_collide: false
gravity: true
kinematic: false
enabled: true
inertial {
mass: 3.42
pose {
position {
x: -0.121825
y: 0
z: 0.12
}
orientation {
x: 5.93570830084467e-12
y: 0.70710901804279691
z: 5.93570830084467e-12
w: 0.70710454432322223
}
}
ixx: 0.0217285
ixy: 0
ixz: 0
iyy: 0.0217285
iyz: 0
izz: 0.00961875
}
pose {
position {
x: 3.918183354635e-07
y: 2.087238063334397e-06
z: 0.20184845911463806
}
orientation {
x: -0.49983210018104046
y: 0.50021095701643148
z: 0.50019325054294794
w: 0.49976352630078519
}
}
visual {
name: "ur::upper_arm_link"
id: 21
parent_name: "ur"
parent_id: 10
pose {
position {
x: 3.918183354635e-07
y: 2.087238063334397e-06
z: 0.20184845911463806
}
orientation {
x: -0.49983210018104046
y: 0.50021095701643148
z: 0.50019325054294794
w: 0.49976352630078519
}
}
type: LINK
}
visual {
name: "ur::upper_arm_link::upper_arm_link_visual"
id: 22
parent_name: "ur::upper_arm_link"
parent_id: 21
pose {
position {
x: -7.72917564369549e-23
y: 5.5511151231257827e-17
z: 0.11999999999999997
}
orientation {
x: 0.49999999999662686
y: -0.5000018366025516
z: -0.49999999999662686
w: 0.49999816339744829
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/dan/ros/gz_ws/install/share/ur_description/meshes/ur3e/visual/upperarm.dae"
scale {
x: 1
y: 1
z: 1
}
}
}
is_static: false
scale {
x: 1
y: 1
z: 1
}
type: VISUAL
}
collision {
id: 23
name: "ur::upper_arm_link::upper_arm_link_collision"
laser_retro: 0
pose {
position {
x: -7.72917564369549e-23
y: 5.5511151231257827e-17
z: 0.11999999999999997
}
orientation {
x: 0.49999999999662686
y: -0.5000018366025516
z: -0.49999999999662686
w: 0.49999816339744829
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/dan/ros/gz_ws/install/share/ur_description/meshes/ur3e/collision/upperarm.stl"
scale {
x: 1
y: 1
z: 1
}
}
}
surface {
friction {
mu: 1
mu2: 1
fdir1 {
x: 0
y: 0
z: 0
}
slip1: 0
slip2: 0
torsional {
coefficient: 1
use_patch_radius: true
patch_radius: 0
surface_radius: 0
ode {
slip: 0
}
}
}
restitution_coefficient: 0
bounce_threshold: 100000
soft_cfm: 0
soft_erp: 0.2
kp: 1000000000000
kd: 1
max_vel: 0.01
min_depth: 0
collide_without_contact: false
collide_without_contact_bitmask: 1
collide_bitmask: 65535
elastic_modulus: 0
}
visual {
name: "ur::upper_arm_link::upper_arm_link_collision"
id: 23
parent_name: "ur::upper_arm_link"
parent_id: 21
pose {
position {
x: -7.72917564369549e-23
y: 5.5511151231257827e-17
z: 0.11999999999999997
}
orientation {
x: 0.49999999999662686
y: -0.5000018366025516
z: -0.49999999999662686
w: 0.49999816339744829
}
}
type: COLLISION
}
visual {
name: "ur::upper_arm_link::upper_arm_link_collision__COLLISION_VISUAL__"
id: 24
parent_name: "ur::upper_arm_link"
parent_id: 21
cast_shadows: false
pose {
position {
x: -7.72917564369549e-23
y: 5.5511151231257827e-17
z: 0.11999999999999997
}
orientation {
x: 0.49999999999662686
y: -0.5000018366025516
z: -0.49999999999662686
w: 0.49999816339744829
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/dan/ros/gz_ws/install/share/ur_description/meshes/ur3e/collision/upperarm.stl"
scale {
x: 1
y: 1
z: 1
}
}
}
material {
script {
uri: "file://media/materials/scripts/gazebo.material"
name: "Gazebo/OrangeTransparent"
}
}
is_static: false
type: COLLISION
}
}
enable_wind: false
}
link {
id: 26
name: "ur::forearm_link"
self_collide: false
gravity: true
kinematic: false
enabled: true
inertial {
mass: 1.26
pose {
position {
x: -0.1066
y: 0
z: 0.027
}
orientation {
x: 5.93570830084467e-12
y: 0.70710901804279691
z: 5.93570830084467e-12
w: 0.70710454432322223
}
}
ixx: 0.00654457
ixy: 0
ixz: 0
iyy: 0.00654457
iyz: 0
izz: 0.00354375
}
pose {
position {
x: 0.00019775220717024015
y: 2.4873806324927733e-05
z: 0.44539801092770737
}
orientation {
x: -0.49983279782290546
y: 0.50021076399604825
z: 0.50019298933709466
w: 0.49976328318618751
}
}
visual {
name: "ur::forearm_link"
id: 26
parent_name: "ur"
parent_id: 10
pose {
position {
x: 0.00019775220717024015
y: 2.4873806324927733e-05
z: 0.44539801092770737
}
orientation {
x: -0.49983279782290546
y: 0.50021076399604825
z: 0.50019298933709466
w: 0.49976328318618751
}
}
type: LINK
}
visual {
name: "ur::forearm_link::forearm_link_visual"
id: 27
parent_name: "ur::forearm_link"
parent_id: 26
pose {
position {
x: -8.3266738281831529e-17
y: 8.3266726846886741e-17
z: 0.026999999999999958
}
orientation {
x: 0.49999999999662686
y: -0.5000018366025516
z: -0.49999999999662686
w: 0.49999816339744829
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/dan/ros/gz_ws/install/share/ur_description/meshes/ur3e/visual/forearm.dae"
scale {
x: 1
y: 1
z: 1
}
}
}
is_static: false
scale {
x: 1
y: 1
z: 1
}
type: VISUAL
}
collision {
id: 28
name: "ur::forearm_link::forearm_link_collision"
laser_retro: 0
pose {
position {
x: -8.3266738281831529e-17
y: 8.3266726846886741e-17
z: 0.026999999999999958
}
orientation {
x: 0.49999999999662686
y: -0.5000018366025516
z: -0.49999999999662686
w: 0.49999816339744829
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/dan/ros/gz_ws/install/share/ur_description/meshes/ur3e/collision/forearm.stl"
scale {
x: 1
y: 1
z: 1
}
}
}
surface {
friction {
mu: 1
mu2: 1
fdir1 {
x: 0
y: 0
z: 0
}
slip1: 0
slip2: 0
torsional {
coefficient: 1
use_patch_radius: true
patch_radius: 0
surface_radius: 0
ode {
slip: 0
}
}
}
restitution_coefficient: 0
bounce_threshold: 100000
soft_cfm: 0
soft_erp: 0.2
kp: 1000000000000
kd: 1
max_vel: 0.01
min_depth: 0
collide_without_contact: false
collide_without_contact_bitmask: 1
collide_bitmask: 65535
elastic_modulus: 0
}
visual {
name: "ur::forearm_link::forearm_link_collision"
id: 28
parent_name: "ur::forearm_link"
parent_id: 26
pose {
position {
x: -8.3266738281831529e-17
y: 8.3266726846886741e-17
z: 0.026999999999999958
}
orientation {
x: 0.49999999999662686
y: -0.5000018366025516
z: -0.49999999999662686
w: 0.49999816339744829
}
}
type: COLLISION
}
visual {
name: "ur::forearm_link::forearm_link_collision__COLLISION_VISUAL__"
id: 29
parent_name: "ur::forearm_link"
parent_id: 26
cast_shadows: false
pose {
position {
x: -8.3266738281831529e-17
y: 8.3266726846886741e-17
z: 0.026999999999999958
}
orientation {
x: 0.49999999999662686
y: -0.5000018366025516
z: -0.49999999999662686
w: 0.49999816339744829
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/dan/ros/gz_ws/install/share/ur_description/meshes/ur3e/collision/forearm.stl"
scale {
x: 1
y: 1
z: 1
}
}
}
material {
script {
uri: "file://media/materials/scripts/gazebo.material"
name: "Gazebo/OrangeTransparent"
}
}
is_static: false
type: COLLISION
}
}
enable_wind: false
}
link {
id: 31
name: "ur::wrist_1_link"
self_collide: false
gravity: true
kinematic: false
enabled: true
inertial {
mass: 0.8
pose {
position {
x: 0
y: 0
z: 0
}
orientation {
x: 0
y: 0
z: 0
w: 1
}
}
ixx: 0.002085
ixy: 0
ixz: 0
iyy: 0.002085
iyz: 0
izz: 0.00225
}
pose {
position {
x: 0.00036334252068871383
y: 0.13109407964587383
z: 0.65858557360701964
}
orientation {
x: -0.49983417795110846
y: 0.50021372516429452
z: 0.50019174872973793
w: 0.49976018069858874
}
}
visual {
name: "ur::wrist_1_link"
id: 31
parent_name: "ur"
parent_id: 10
pose {
position {
x: 0.00036334252068871383
y: 0.13109407964587383
z: 0.65858557360701964
}
orientation {
x: -0.49983417795110846
y: 0.50021372516429452
z: 0.50019174872973793
w: 0.49976018069858874
}
}
type: LINK
}
visual {
name: "ur::wrist_1_link::wrist_1_link_visual"
id: 32
parent_name: "ur::wrist_1_link"
parent_id: 31
pose {
position {
x: -1.6653340964806023e-16
y: 2.7755575615628914e-17
z: -0.104
}
orientation {
x: 0.70710807985947366
y: -1.4973541021779167e-22
z: 1.4973596022767479e-22
w: 0.70710548251123639
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/dan/ros/gz_ws/install/share/ur_description/meshes/ur3e/visual/wrist1.dae"
scale {
x: 1
y: 1
z: 1
}
}
}
is_static: false
scale {
x: 1
y: 1
z: 1
}
type: VISUAL
}
collision {
id: 33
name: "ur::wrist_1_link::wrist_1_link_collision"
laser_retro: 0
pose {
position {
x: -1.6653340964806023e-16
y: 2.7755575615628914e-17
z: -0.104
}
orientation {
x: 0.70710807985947366
y: -1.4973541021779167e-22
z: 1.4973596022767479e-22
w: 0.70710548251123639
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/dan/ros/gz_ws/install/share/ur_description/meshes/ur3e/collision/wrist1.stl"
scale {
x: 1
y: 1
z: 1
}
}
}
surface {
friction {
mu: 1
mu2: 1
fdir1 {
x: 0
y: 0
z: 0
}
slip1: 0
slip2: 0
torsional {
coefficient: 1
use_patch_radius: true
patch_radius: 0
surface_radius: 0
ode {
slip: 0
}
}
}
restitution_coefficient: 0
bounce_threshold: 100000
soft_cfm: 0
soft_erp: 0.2
kp: 1000000000000
kd: 1
max_vel: 0.01
min_depth: 0
collide_without_contact: false
collide_without_contact_bitmask: 1
collide_bitmask: 65535
elastic_modulus: 0
}
visual {
name: "ur::wrist_1_link::wrist_1_link_collision"
id: 33
parent_name: "ur::wrist_1_link"
parent_id: 31
pose {
position {
x: -1.6653340964806023e-16
y: 2.7755575615628914e-17
z: -0.104
}
orientation {
x: 0.70710807985947366
y: -1.4973541021779167e-22
z: 1.4973596022767479e-22
w: 0.70710548251123639
}
}
type: COLLISION
}
visual {
name: "ur::wrist_1_link::wrist_1_link_collision__COLLISION_VISUAL__"
id: 34
parent_name: "ur::wrist_1_link"
parent_id: 31
cast_shadows: false
pose {
position {
x: -1.6653340964806023e-16
y: 2.7755575615628914e-17
z: -0.104
}
orientation {
x: 0.70710807985947366
y: -1.4973541021779167e-22
z: 1.4973596022767479e-22
w: 0.70710548251123639
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/dan/ros/gz_ws/install/share/ur_description/meshes/ur3e/collision/wrist1.stl"
scale {
x: 1
y: 1
z: 1
}
}
}
material {
script {
uri: "file://media/materials/scripts/gazebo.material"
name: "Gazebo/OrangeTransparent"
}
}
is_static: false
type: COLLISION
}
}
enable_wind: false
}
link {
id: 36
name: "ur::wrist_2_link"
self_collide: false
gravity: true
kinematic: false
enabled: true
inertial {
mass: 0.8
pose {
position {
x: 0
y: 0
z: 0
}
orientation {
x: 0
y: 0
z: 0
w: 1
}
}
ixx: 0.002085
ixy: 0
ixz: 0
iyy: 0.002085
iyz: 0
izz: 0.00225
}
pose {
position {
x: 0.085713351212226757
y: 0.13109919831668315
z: 0.65851573804648744
}
orientation {
x: -0.24477257751200432
y: 0.663697987295043
z: -0.24453624200255489
w: 0.66316920412961489
}
}
visual {
name: "ur::wrist_2_link"
id: 36
parent_name: "ur"
parent_id: 10
pose {
position {
x: 0.085713351212226757
y: 0.13109919831668315
z: 0.65851573804648744
}
orientation {
x: -0.24477257751200432
y: 0.663697987295043
z: -0.24453624200255489
w: 0.66316920412961489
}
}
type: LINK
}
visual {
name: "ur::wrist_2_link::wrist_2_link_visual"
id: 37
parent_name: "ur::wrist_2_link"
parent_id: 36
pose {
position {
x: -4.9960036108159625e-16
y: 2.124844926931163e-50
z: -0.0853500000000001
}
orientation {
x: 0
y: 1.6155871338926322e-27
z: -7.7048348339792173e-23
w: 0.99999999999999989
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/dan/ros/gz_ws/install/share/ur_description/meshes/ur3e/visual/wrist2.dae"
scale {
x: 1
y: 1
z: 1
}
}
}
is_static: false
scale {
x: 1
y: 1
z: 1
}
type: VISUAL
}
collision {
id: 38
name: "ur::wrist_2_link::wrist_2_link_collision"
laser_retro: 0
pose {
position {
x: -4.9960036108159625e-16
y: 2.124844926931163e-50
z: -0.0853500000000001
}
orientation {
x: 0
y: 1.6155871338926322e-27
z: -7.7048348339792173e-23
w: 0.99999999999999989
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/dan/ros/gz_ws/install/share/ur_description/meshes/ur3e/collision/wrist2.stl"
scale {
x: 1
y: 1
z: 1
}
}
}
surface {
friction {
mu: 1
mu2: 1
fdir1 {
x: 0
y: 0
z: 0
}
slip1: 0
slip2: 0
torsional {
coefficient: 1
use_patch_radius: true
patch_radius: 0
surface_radius: 0
ode {
slip: 0
}
}
}
restitution_coefficient: 0
bounce_threshold: 100000
soft_cfm: 0
soft_erp: 0.2
kp: 1000000000000
kd: 1
max_vel: 0.01
min_depth: 0
collide_without_contact: false
collide_without_contact_bitmask: 1
collide_bitmask: 65535
elastic_modulus: 0
}
visual {
name: "ur::wrist_2_link::wrist_2_link_collision"
id: 38
parent_name: "ur::wrist_2_link"
parent_id: 36
pose {
position {
x: -4.9960036108159625e-16
y: 2.124844926931163e-50
z: -0.0853500000000001
}
orientation {
x: 0
y: 1.6155871338926322e-27
z: -7.7048348339792173e-23
w: 0.99999999999999989
}
}
type: COLLISION
}
visual {
name: "ur::wrist_2_link::wrist_2_link_collision__COLLISION_VISUAL__"
id: 39
parent_name: "ur::wrist_2_link"
parent_id: 36
cast_shadows: false
pose {
position {
x: -4.9960036108159625e-16
y: 2.124844926931163e-50
z: -0.0853500000000001
}
orientation {
x: 0
y: 1.6155871338926322e-27
z: -7.7048348339792173e-23
w: 0.99999999999999989
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/dan/ros/gz_ws/install/share/ur_description/meshes/ur3e/collision/wrist2.stl"
scale {
x: 1
y: 1
z: 1
}
}
}
material {
script {
uri: "file://media/materials/scripts/gazebo.material"
name: "Gazebo/OrangeTransparent"
}
}
is_static: false
type: COLLISION
}
}
enable_wind: false
}
link {
id: 41
name: "ur::wrist_3_link"
self_collide: false
gravity: true
kinematic: false
enabled: true
inertial {
mass: 0.35
pose {
position {
x: 0
y: 0
z: -0.02
}
orientation {
x: 0
y: 0
z: 0
w: 1
}
}
ixx: 0.000136267
ixy: 0
ixz: 0
iyy: 0.000136267
iyz: 0
izz: 0.0001792
}
pose {
position {
x: 0.08566066805473424
y: 0.20114854985977121
z: 0.59871981837749
}
orientation {
x: -0.64201255121099854
y: 0.6422182960257139
z: 0.29639275377029656
w: 0.29584942090501687
}
}
visual {
name: "ur::wrist_3_link"
id: 41
parent_name: "ur"
parent_id: 10
pose {
position {
x: 0.08566066805473424
y: 0.20114854985977121
z: 0.59871981837749
}
orientation {
x: -0.64201255121099854
y: 0.6422182960257139
z: 0.29639275377029656
w: 0.29584942090501687
}
}
type: LINK
}
visual {
name: "ur::wrist_3_link::wrist_3_link_visual"
id: 42
parent_name: "ur::wrist_3_link"
parent_id: 41
pose {
position {
x: -3.8857805861880479e-16
y: -6.9388939039072284e-17
z: -0.092099999999999918
}
orientation {
x: 0.70710807985947366
y: 0
z: 0
w: 0.70710548251123639
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/dan/ros/gz_ws/install/share/ur_description/meshes/ur3e/visual/wrist3.dae"
scale {
x: 1
y: 1
z: 1
}
}
}
is_static: false
scale {
x: 1
y: 1
z: 1
}
type: VISUAL
}
collision {
id: 43
name: "ur::wrist_3_link::wrist_3_link_collision"
laser_retro: 0
pose {
position {
x: -3.8857805861880479e-16
y: -6.9388939039072284e-17
z: -0.092099999999999918
}
orientation {
x: 0.70710807985947366
y: 0
z: 0
w: 0.70710548251123639
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/dan/ros/gz_ws/install/share/ur_description/meshes/ur3e/collision/wrist3.stl"
scale {
x: 1
y: 1
z: 1
}
}
}
surface {
friction {
mu: 1
mu2: 1
fdir1 {
x: 0
y: 0
z: 0
}
slip1: 0
slip2: 0
torsional {
coefficient: 1
use_patch_radius: true
patch_radius: 0
surface_radius: 0
ode {
slip: 0
}
}
}
restitution_coefficient: 0
bounce_threshold: 100000
soft_cfm: 0
soft_erp: 0.2
kp: 1000000000000
kd: 1
max_vel: 0.01
min_depth: 0
collide_without_contact: false
collide_without_contact_bitmask: 1
collide_bitmask: 65535
elastic_modulus: 0
}
visual {
name: "ur::wrist_3_link::wrist_3_link_collision"
id: 43
parent_name: "ur::wrist_3_link"
parent_id: 41
pose {
position {
x: -3.8857805861880479e-16
y: -6.9388939039072284e-17
z: -0.092099999999999918
}
orientation {
x: 0.70710807985947366
y: 0
z: 0
w: 0.70710548251123639
}
}
type: COLLISION
}
visual {
name: "ur::wrist_3_link::wrist_3_link_collision__COLLISION_VISUAL__"
id: 44
parent_name: "ur::wrist_3_link"
parent_id: 41
cast_shadows: false
pose {
position {
x: -3.8857805861880479e-16
y: -6.9388939039072284e-17
z: -0.092099999999999918
}
orientation {
x: 0.70710807985947366
y: 0
z: 0
w: 0.70710548251123639
}
}
geometry {
type: MESH
mesh {
filename: "file:///home/dan/ros/gz_ws/install/share/ur_description/meshes/ur3e/collision/wrist3.stl"
scale {
x: 1
y: 1
z: 1
}
}
}
material {
script {
uri: "file://media/materials/scripts/gazebo.material"
name: "Gazebo/OrangeTransparent"
}
}
is_static: false
type: COLLISION
}
}
enable_wind: false
}
visual {
name: "ur"
id: 10
parent_name: "default"
parent_id: 1
pose {
position {
x: 1.7664581161916394e-07
y: 9.8421628554235216e-07
z: 6.1777577546606732e-08
}
orientation {
x: 1.0063997217110073e-05
y: -1.8200132416254767e-06
z: -1.6235609612999127e-07
w: 0.99999999994768851
}
}
type: MODEL
}
scale {
x: 1
y: 1
z: 1
}
self_collide: false
enable_wind: false
plugin {
name: "gazebo_ros2_control"
filename: "libgazebo_ros2_control.so"
innerxml: "<parameters>/home/dan/ros/gz_ws/install/share/ur_simulation_gazebo/config/ur_controllers.yaml</parameters>\n"
}
From my fork: Joint dynamics settings in xacro file<xacro:property name="fric_scale" value="1.0" />
<xacro:property name="joint_dyn_dict"
value="${dict(
joint_dynamics=dict(
shoulder_pan_joint=dict(damping=0.0, friction=fric_scale*jnt_limits['shoulder_pan_joint']['max_effort']),
shoulder_lift_joint=dict(damping=0.0, friction=fric_scale*jnt_limits['shoulder_lift_joint']['max_effort']),
elbow_joint=dict(damping=0.0, friction=fric_scale*jnt_limits['elbow_joint']['max_effort']),
wrist_1_joint=dict(damping=0.0, friction=fric_scale*jnt_limits['wrist_1_joint']['max_effort']),
wrist_2_joint=dict(damping=0.0, friction=fric_scale*jnt_limits['wrist_2_joint']['max_effort']),
wrist_3_joint=dict(damping=0.0, friction=fric_scale*jnt_limits['wrist_3_joint']['max_effort'])))}"
/> Resulting URDF joints<joint name="shoulder_pan_joint" type="revolute">
<parent link="base_link_inertia"/>
<child link="shoulder_link"/>
<origin rpy="0 0 0" xyz="0 0 0.15185"/>
<axis xyz="0 0 1"/>
<limit effort="56.0" lower="-6.283185307179586" upper="6.283185307179586" velocity="3.141592653589793"/>
<safety_controller k_position="20" k_velocity="0.0" soft_lower_limit="-6.133185307179586" soft_upper_limit="6.133185307179586"/>
<dynamics damping="0.0" friction="56.0"/>
</joint>
<joint name="shoulder_lift_joint" type="revolute">
<parent link="shoulder_link"/>
<child link="upper_arm_link"/>
<origin rpy="1.570796327 0 0" xyz="0 0 0"/>
<axis xyz="0 0 1"/>
<limit effort="56.0" lower="-6.283185307179586" upper="6.283185307179586" velocity="3.141592653589793"/>
<safety_controller k_position="20" k_velocity="0.0" soft_lower_limit="-6.133185307179586" soft_upper_limit="6.133185307179586"/>
<dynamics damping="0.0" friction="56.0"/>
</joint>
<joint name="elbow_joint" type="revolute">
<parent link="upper_arm_link"/>
<child link="forearm_link"/>
<origin rpy="0 0 0" xyz="-0.24355 0 0"/>
<axis xyz="0 0 1"/>
<limit effort="28.0" lower="-3.141592653589793" upper="3.141592653589793" velocity="3.141592653589793"/>
<safety_controller k_position="20" k_velocity="0.0" soft_lower_limit="-2.991592653589793" soft_upper_limit="2.991592653589793"/>
<dynamics damping="0.0" friction="28.0"/>
</joint>
<joint name="wrist_1_joint" type="revolute">
<parent link="forearm_link"/>
<child link="wrist_1_link"/>
<origin rpy="0 0 0" xyz="-0.2132 0 0.13105"/>
<axis xyz="0 0 1"/>
<limit effort="12.0" lower="-6.283185307179586" upper="6.283185307179586" velocity="6.283185307179586"/>
<safety_controller k_position="20" k_velocity="0.0" soft_lower_limit="-6.133185307179586" soft_upper_limit="6.133185307179586"/>
<dynamics damping="0.0" friction="12.0"/>
</joint>
<joint name="wrist_2_joint" type="revolute">
<parent link="wrist_1_link"/>
<child link="wrist_2_link"/>
<origin rpy="1.570796327 0 0" xyz="0 -0.08535 -1.750557762378351e-11"/>
<axis xyz="0 0 1"/>
<limit effort="12.0" lower="-6.283185307179586" upper="6.283185307179586" velocity="6.283185307179586"/>
<safety_controller k_position="20" k_velocity="0.0" soft_lower_limit="-6.133185307179586" soft_upper_limit="6.133185307179586"/>
<dynamics damping="0.0" friction="12.0"/>
</joint>
<joint name="wrist_3_joint" type="revolute">
<parent link="wrist_2_link"/>
<child link="wrist_3_link"/>
<origin rpy="1.570796326589793 3.141592653589793 3.141592653589793" xyz="0 0.0921 -1.8890025766262e-11"/>
<axis xyz="0 0 1"/>
<limit effort="12.0" lower="-6.283185307179586" upper="6.283185307179586" velocity="6.283185307179586"/>
<safety_controller k_position="20" k_velocity="0.0" soft_lower_limit="-6.133185307179586" soft_upper_limit="6.133185307179586"/>
<dynamics damping="0.0" friction="12.0"/>
</joint> That setting, friction set to 1.0x the joint effort limit, should be equivalent to the ROS 1 behavior. Will try to figure out where |
Hi, how are you opening this robot in Gazebo, can you please provide the exact command? |
Hi @Gaurang-1402, the exact command I used was: ros2 launch ur_simulation_gazebo ur_sim_control.launch.py ur_type:=ur10 This launches a ur10. If you want a different robot you can change it after the "=". You can find selectable options in the ur_sim_control.launch.py-file. |
@fmauch Based on a quick test here, it looks like ros-controls/gazebo_ros2_control#213 fixed this issue. |
Hi, @danzimmerman, Thanks in advance! |
Things seem to be fine by now, so closing this. |
My Environment
Description
When I start simulation by using
ros2 launch ur_simulation_gazebo ur_sim_control.launch.py
, the robot's joints break as in this image:To clarify this phenomenon, I changed the initial joint positions as follows:
If the controller is not activated, this does not happen (the robot just lies down).
My Attempts
Turning off gravity
I added
turnGravityOff
tag for each link in the URDF description:Then the robot looks fine, but it may behave the same for external forces other than gravity.
Increasing damping and friction
Increasing the values of damping and friction for each joint in URDF made the robot stable, but the joints still shift a little.
Adding CFM and ERP
I didn't see the effect of this.
The text was updated successfully, but these errors were encountered: