[ODE] AMotor Lo/HiStop and Ball joint
Wesley Smith
wesley.hoke at gmail.com
Mon Dec 11 13:51:35 MST 2006
Hi,
I can't seem to get the Lo/HiStop parameters of Amotor joints to
properly constrain the angles of a Ball joint. Here's the setup code:
m_LinkJoints[i] = dJointCreateBall(m_World, 0);
pos1 = m_ChainLinks[i].position();
pos2 = m_ChainLinks[i+1].position();
jointPos[0] = (pos1[0]+pos2[0])/2.;
jointPos[1] = (pos1[1]+pos2[1])/2.;
jointPos[2] = (pos1[2]+pos2[2])/2.;
dJointAttach(m_LinkJoints[i], m_ChainLinks[i].body(),
m_ChainLinks[i+1].body());
dJointSetBallAnchor(m_LinkJoints[i], jointPos[0], jointPos[1], jointPos[2]);
m_LinkConstrain[i] = dJointCreateAMotor(m_World, 0);
dJointAttach(m_LinkConstrain[i], m_ChainLinks[i].body(),
m_ChainLinks[i+1].body());
dJointSetAMotorMode(m_LinkConstrain[i], dAMotorEuler);
dJointSetAMotorNumAxes(m_LinkConstrain[i], 3);
dJointSetAMotorAxis(m_LinkConstrain[i], 0, 1, 1, 0, 0);
dJointSetAMotorAxis(m_LinkConstrain[i], 2, 2, 0, 0, 1);
dJointSetAMotorParam(m_LinkConstrain[i], dParamLoStop, -30*3.1415/180.);
dJointSetAMotorParam(m_LinkConstrain[i], dParamHiStop, 30*3.1415/180.);
When I do dJointGetAMotorAngle, I see the angles going way beyond the
+/- 30 degrees I set the values to. Visually this is what I see as
well. Am I doing things in the proper order? Any other ideas?
thanks,
wes
More information about the ODE
mailing list