Hi Jim,
The reason your spring damper setup is unstable is because the service calls in your setup is not fast enough to update every simulation cycle.  Just for the sake of experimentation, if you slowed down simulation by throttling simulation update rate, adding:
  <updateRate>100.0</updateRate>
to <physics:ode> block in empty.world, then the spring damper model should work correctly.  This is not the right solution, ultimately, it is better to model the spring damper system as a transmission or using gazebo plugins; this way, the forces are updated at every simulation time step.  Let's chat off-line if you want to talk about implementation.
hope this helps.
John


On Tue, Feb 1, 2011 at 7:51 PM, Jim Rothrock <jim.rothrock@wunderkammerlab.com> wrote:
I am writing a package that simulates a Traxxas E-Maxx RC truck in Gazebo. Since springs (for the shock absorbers) cannot be specified in a URDF dynamics block, I've created a node that reads the shock absorber joint positions (they are prismatic joints), uses Hooke's law to compute spring forces, then applies the forces to the springs. The node also simulates damping. No matter what damping coefficient I use, the truck continues to oscillate. Sometimes it appears that Gazebo's ground contact force simulation is kicking the wheels into the air, but that's just a hypothesis. I've attached a test package to this message, and I'd really appreciate it if someone could take a look at it. To execute the test, run "roslaunch test test.launch" in one window, then run "rosrun test test.py" in another. The oscillating truck should be displayed in a Gazebo window.

--
Jim Rothrock | Wunderkammer Laboratory
jim.rothrock@wunderkammerlab.com


_______________________________________________
ros-users mailing list
ros-users@code.ros.org
https://code.ros.org/mailman/listinfo/ros-users