[ros-users] Simulating a spring in Gazebo

John Hsu johnhsu at willowgarage.com
Tue Jan 25 01:55:43 UTC 2011


Hi Jim,

There are a couple of ways to simulate a spring in gazebo.  One example in
ros uses a transmission as a "spring-like controller" (see
http://ros-users.122217.n3.nabble.com/Flexible-amp-remote-transmission-td1929619.html#a1937295
for
an example of a torsional spring).  Alternatively, you can use a joint
constraint to do the same thing.  To simulate a linear spring, you can
define a prismatic joint with both upper and lower limits equal to 0.  This
means any constraint violation produces an error correction force which is
essentially the amount of constraint violation (x) multiplied by ODE's ERP
parameter / dt (k).

Note that using a joint constraint to simulate spring will actually update
joint force and compute equivalent compression distance within the same time
step, whereas using a transmission controller as given in the example above,
the spring force applied is computed using spring stretch from the last time
step.

If you want to use the joint constraint approach, I recommend testing on a
very simple setup and verifying the spring constant / forces first.

Hope this helps.
John

On Sun, Jan 23, 2011 at 3:57 PM, Jim Rothrock <jimrothrock52 at gmail.com>wrote:

> I have created a URDF file for a four-wheel-drive vehicle and am beginning
> to use it with Gazebo. Each shock absorber is a prismatic joint. Simulating
> the damping of a shock is easy; just set the joint's damping factor in a
> dynamics block. However, I don't know how to simulate the spring component
> of a shock. My only idea so far is to write a ROS node that subscribes to
> the joint's position topic. The node's loop gets the position, computes a
> force via Hooke's law, then applies a corresponding wrench to the joint. Is
> there a better way to simulate a spring in Gazebo? It seems that someone
> would have needed to simulate a shock absorber by now, but my searches
> didn't turn up any examples.
>  --
> Jim Rothrock | jimrothrock52 at gmail.com
> Sent from my Android phone
>
> _______________________________________________
> ros-users mailing list
> ros-users at code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ros.org/pipermail/ros-users/attachments/20110124/6bafb036/attachment-0003.html>


More information about the ros-users mailing list