Some BushingForce things

Provide a space for people developing and using musculoskeletal models to collaborate and learn from each other.
POST REPLY
User avatar
Nur Adila Faruk Senan
Posts: 75
Joined: Tue Apr 06, 2010 8:20 pm

Some BushingForce things

Post by Nur Adila Faruk Senan » Thu Nov 11, 2010 8:36 pm

Hey,

I stumbled across this page recently and figured I'd post what I've learned so far about using the BushingForce function in OpenSim, and some of the problems you might face since I've been using it quite a bit in my work.

Some of the stuff mentioned here was (shamelessly) plagiarized from the OpenSim forum post https://simtk.org/forum/message.php?msg_id=5130

In brief (this is from the Docygen documentation, and the forum post mentioned above):

* A Bushing Force is the force proportional to the deviation of two frames. One can think of the Bushing as being composed of 3 linear and 3 torsional spring-dampers, which act along or about the bushing frames. The underlying Force in Simbody is a SimtK::Force::LinearBushing

An example XML representation looks like this:
<BushingForce name = "L_Bushing">
<body_1> pelvis </body_1>
<body_2>lumbar5</body_2>
<location_body_1>0.0 0.0 0.0</location_body_1>
<orientation_body_1>0.0 0.0 0.0</orientation_body_1>
<location_body_2>0.0 0.0 0.0</location_body_2>
<orientation_body_2>0.0 0.0 0.0</orientation_body_2>
<rotational_stiffness>10.0 20.0 30.0</rotational_stiffness>
<translational_stiffness>0.0 0.0 0.0</translational_stiffness>
<rotational_damping>0.0 0.0 0.0</rotational_damping>
<translational_damping>0.0 0.0 0.0</translational_damping>
</BushingForce>

I like to think of the BushingForce as sort of a diagonal stiffness matrix where the force/torque exerted by the BushingForce is linearly proportional to the displacements/rotations (I haven't done anything with the damping terms so far, so I'm just going to assume that those are set to zero throughout and not bother with them).

I.e. if at time "t", your body is rotated about the "X" axis by 30 degrees, and your BushingForce rotational_stiffness in the X-direction is 10.0Nm/rad, then

BushingForce exerted on body_1 (at time t) = 10Nm/rad * 30deg * (pi radian/180 deg)
while

BushingForce exerted on body_2 (at time t) = -BushingForce exerted on body_1 (at time t)

To get OpenSim to calculate this for you automatically, go to
Analyze -> Analyses tab -> click "Add" -> ForceReporter.
You will get 12 values output for each BushingForce you have in your model -- 6 for body_1 and 6 for body_2 which correspond to the 3 translational and the 3 rotational DOFs.

A very important thing to keep in mind here though is that this is only true iff your BushingForce location coincides with the coordinates of the joint that it's acting on.

That is,
<location_body_1>   of the Bushing Force <=> <location_in_parent>  of the Joint
<location_body_2>    of the Bushing Force <=>   <location>  of the Joint

where
BushingForce <body_1> <=> Joint <parent _body>
BushingForce <body_2> <=> Joint <child_body> (i.e. the body the Joint is defined in).

Hope this helps!

adila

User avatar
Edith Arnold
Posts: 44
Joined: Fri Apr 06, 2007 2:07 pm

RE: Some BushingForce things

Post by Edith Arnold » Fri Nov 19, 2010 4:19 pm

Thanks Adila!
-Edith

POST REPLY