Simulating Actuated Joint Stiffness
Hello.
I am trying to simulate a joint which actuates a lift using Gazebo 7 and ROS Indigo. The URDF definition for the joint is as follows:
<joint name="lift_joint" type="prismatic">
<origin xyz="0 0 0.177" rpy="1.5707963267949 0 0" />
<parent link="chassis_link" />
<child link="lift_link" />
<axis xyz="0 1 0" />
<limit lower="0" upper="0.08" effort="20000.0" velocity="0.02" />
<dynamics damping="100.0" />
</joint>
The lift is driven by a position controller with these parameters:
<rosparam>
gazebo_ros_control:
pid_gains:
left_wheel_joint: { p: 1.0, i: 0.0, d: 0.0 }
right_wheel_joint: { p: 1.0, i: 0.0, d: 0.0 }
lift_joint: { p: 100000.0, i: 1000.0, i_clamp: 1000, d: 1000.0 }
</rosparam>
The problem is that the lift can be easily depressed by another object. Say the lift is given a command to raise. It does so, but when it comes into contact with the object it is meant to actually lift, it "bounces" back do to a lower position. It will then continually attempt to reach the commanded position, and continually get bounced back down before it can do so.
Is there a way to specify a stiffness for the joint, so that it only moves when commanded to move?