[ODE] Center of Mass of Mesh

yyd_iris@yahoo.com yyd_iris at yahoo.com
Mon Jul 2 09:24:19 MST 2007


I am given the inertia data at the center of mass of a
TriMesh. The hinge joint location does not overlap the
center of  mass. If the mass translation is ignored,
how can I set the mass correctly? 

What I am trying to do is to control a robot, which is
a chain-body (several bodies connected with hinge
joints). I have successfully applied the
'gravity-compensation' torques to a simple chain-body:
I apply a torque equal to the gravity and make the
chain-body 'float' in the air. The chain-body moves
little in my experiments. The next step is to move the
chain-body to certain locations. As I apply more
torques to the chain-body, the chain-body moves much
slower than it should. This is why I ask the
acceleration question. Currently I have ERP=0.2 and
CFM = 0.0. I can change CFM to make the chain-body
move faster. But I don't think it is the right way to
get desired acceleration by changing CFM. FYI, I am
using dWorldQuickStep. The joint limits are not
symmetric. The TriMesh are not symmetric. 

Has anybody tried to simulate the dynamics of a robot
on ODE before?  I am supposed to send torques to the
bodies at 1000 Hz. I think I need to change the way of
computing the impulse of a torque to
torque*0.001/inertia? Where is it? 



Jon Watte wrote:

The reference point for trimesh geoms is the origin.
If you have another 
center, you need to offset the geom.

Note that the translation part of the mass is ignored
by the body 
simulation code, so don't expect to use it. Offset the
geoms instead.

Joints are not between geoms; joints are between
bodies. Perhaps that's 
what you mean. Note that the impulse is
torque*time/inertia, and your 
time step is typically 1/100th of a second.


          / h+

yyd_iris at yahoo.com wrote:
> Hi, 
> In ODE, center of mass must coincide with geom
> reference points. I have read some posts about
> center of mass of geoms. Basically there are two
> to do it: 1. use geom-translate and 2. geom offset. 
> I have some questions about the case of TriMesh
> 1. Is there default defintion of TriMesh reference
> point? I have mesh models of some manufacture parts.
> Their reference points are just somewhere in the
> middle of the models. I also have the dynamics data:
> center of mass and the inertia at the center of
> The next two questions are general to all geoms. 
> 2. In my understanding, dMassSetParameters is equal
> dMassTranslate plus setMassRoate, if I do the right
> computation, right? 
> 3. If I apply a torque to a hinge joint with two
> (one end is fixed), I should be able to get an
> acceleration of q_dotdot = torque/inertia. But in my
> experiments, I need to apply a much bigger torque to
> get the accelerations. Is there any parameters I
> should pay attention to? 
> Thanks!
> Iris

Luggage? GPS? Comic books? 
Check out fitting gifts for grads at Yahoo! Search

More information about the ODE mailing list