From: Matthias B. <ba...@ir...> - 2005-09-20 15:45:14
|
Chris Bainbridge wrote: > Has anyone successfully got AMotors to work with universal or ball > joints? According to the 2nd pyode tutorial, they won't work. The tutorial is *not* referring to AMotors but to the internal motors of the joints (which a ball joint doesn't have). > mailing list have claimed to have it working. I notice that the > ParamX3 definitions are missing from the pyode wrappers - is this > deliberate? No. They're in there now, I've just checked it in. (but as was already mentioned, you can just add 256 to the ParamX2 values to get the ParamX3 values (or add 512 to ParamX)) >>From my own tests, in User Mode I can't get the AMotor to do anything. > In Euler mode only the 2nd axis control (ParamVel, ParamFMax2) seems > to have any effect, the other axis controls don't do anything. > > Any ideas? I have never used AMotors so far, so I'm afraid I can't help you there right now... but it looks as if this is actually an ODE issue and not really limited to PyODE (so asking in the ODE mailing list might a good idea, too). Paul Kinnane wrote: > Converting this to UserMode resulted in the limits not working at all. > I was unable to find the problem. My guess is that there is an issue > with PyODE's AMotor.setNumAxes or setAngle, but I couldn't track it > down. These methods do nothing but call the appropriate ODE C function, so I'd say the problem is already located in ODE itself... > can't use setAngle, and 2) you can't create a limit between a body and > the environment (well I couldn't work out how to do it anyway) since > am.setAxis(2, 2, [0, 0, 1]) fails if the second body is the > ode.environment. ode.environment is not an actual body but is just an alias for None. Connecting to the environment is just like calling the ODE C function with a second body argument of 0. Obviously the AMotor requires a real second body... - Matthias - |