/** * Set the global ERP value, that controls how much error * correction is performed in each time step. * @param w the identifier of the world. * @param erp Typical values are in the range 0.1--0.8. The default is 0.2. */ //ODE_API public static void dWorldSetERP (DWorld w, double erp) { w.setERP(erp); }
/** * Set the global ERP value, that controls how much error * correction is performed in each time step. * @param w the identifier of the world. * @param erp Typical values are in the range 0.1--0.8. The default is 0.2. */ //ODE_API public static void dWorldSetERP (DWorld w, double erp) { w.setERP(erp); }
world.setGravity(0,0,-9.8); world.setERP(0.2);
world.setERP (0.8);
private void constructWorldForTest (double gravity, int bodycount, /* body 1 pos */ double pos1x, double pos1y, double pos1z, /* body 2 pos */ double pos2x, double pos2y, double pos2z, /* body 1 rotation axis */ double ax1x, double ax1y, double ax1z, /* body 1 rotation axis */ double ax2x, double ax2y, double ax2z, /* rotation angles */ double a1, double a2) { // create world world = OdeHelper.createWorld(); world.setERP (0.2); world.setCFM (1e-6); world.setGravity (0,0,gravity); DMass m = OdeHelper.createMass(); m.setBox (1,SIDE,SIDE,SIDE); m.adjust (MASS); body[0] = OdeHelper.createBody (world); body[0].setMass (m); body[0].setPosition(pos1x, pos1y, pos1z); DQuaternion q = new DQuaternion(); dQFromAxisAndAngle (q,ax1x,ax1y,ax1z,a1); body[0].setQuaternion (q); if (bodycount==2) { body[1] = OdeHelper.createBody (world); body[1].setMass (m); body[1].setPosition (pos2x, pos2y, pos2z); dQFromAxisAndAngle (q,ax2x,ax2y,ax2z,a2); body[1].setQuaternion (q); } else body[1] = null; }
dyn_world.setERP (err_reduct); dyn_world.setCFM (cf_mixing); dyn_world.setGravity (0, 0.0, -1.0);
world.setERP (0.8);
world.setGravity (0,0,-1.5); world.setCFM (1e-5); world.setERP (0.8); world.setQuickStepNumIterations (ITERS);
world.setERP (0.8);
world.setERP (0.8);