From: Joschka B. <jbo...@un...> - 2007-06-18 13:10:25
|
Hi Yuan, On Mon, 2007-06-18 at 20:34 +0800, Yuan Xu wrote: > Hi all, > > It seems there is still a problem in joint stop ;-( > While the robot have a fall, because of collide, some joint may out of > the range, > it seems that ODE add powerful external force to restrict it, then the > robot will crash... > I have experimented this many times ;-( The problem might be, that we have set the joints to be too restrictive. The ODE manual [1] lists two parameters that can be used to affect the joint constraints: the Error Reduction Paramter (ERP) and the Constraint Force Mixing (CFM), cf. sections 3.7 -- 3.8.2 of the manual. These parameters can be set globally, as we do e.g. for the CFM in lib/spark/spark.rb (line 353), or they can be set locally for individual joints which we don't do right now. Increasing the global CFM is recommended for numerical stability, but it may also result in softer joints in general, including the contact joints. So if the parameter is increased too much, the ball and the robots might sink into the ground! It's difficult, but it might be worth playing around with the global CFM and ERP parameters, and maybe also try to set local CFM and ERP values for the individual joints (or joint stops). As a start, one could try sth. like world.setCFM(0.01) world.setERP(0.9) in spark.rb, and see if it changes the stability of the simulation in a positive way. Yuan, do you think you could do some tests with this? Cheers, Joschka [1] http://ode.org/ode-latest-userguide.html > 2007/6/16, Yuan Xu <xuy...@gm...>: > > Hi Jan, > > > > You are right! > > After change 0 to 1, the server works well. > > It is great that we do not disable this feature ;-) > > > > > |