From: Ricardo K. <ric...@gm...> - 2006-11-27 13:36:21
|
Hi: I came up with this error a few times myself Matthias Baas wrote: > mi...@mi... wrote: >> Strange. There is no 's' variable... apart from sx,sy,sz when setting glScale in the draw_body() part. Setting scale to zero would give an error, but they shouldn't be zero. > > I also get such a message, but only for the version at the origin: > > ODE Message 3: LCP internal error, s <= 0 (s=-5.2075e-003) What this means is that the matrix (that represents the current state of the simulation) to be solved is near singular, and thus the LCP solver fails. It cannot solve this matrix, because it cannot find the inverse matrix to solve the equation system. This happens mostly when using the WorldStep method, because this method depends on finding the exact inverse matrix. There is another method QuickStep, which uses an iterative approach to solve the equation system, that can handle most of these cases. The only problem with QuickStep is that the simulation becomes less accurate (although faster). As far as I know there is not (yet) a real solution to this problem. There was some discussion about throwing an exception when this occurred, so that people could handle the error, instead of just breaking the simulations, but I am not quite sure what the state of that is right now. I hope you could understand at least a little of what I tried to explain (due to my bad english :)) ricardo |