32 #include <yarp/os/ResourceFinder.h>
33 #include <yarp/os/Bottle.h>
42 using namespace yarp::os;
66 return moduleName.c_str();
107 return p.maxContactCorrectingVel;
111 return p.contactFrictionCoefficient;
115 return p.contactSurfaceLayer;
119 return p.motorMaxTorque;
123 return p.motorDryFriction;
127 return p.jointStopBouncyness;
131 return p.worldTimestep;
148 void readOdeParams(){
149 if(odeParamRead==
true)
153 bParams.fromConfigFile(findFile(find(
"ode").asString().c_str()).c_str());
154 Bottle &bParamWorld = bParams.findGroup(
"WORLD");
155 Bottle &bParamContacts = bParams.findGroup(
"CONTACTS");
156 Bottle &bParamJoints = bParams.findGroup(
"JOINTS");
158 p.worldTimestep = bParamWorld.check(
"timestep", Value(10)).asInt32();
159 p.worldCFM = bParamWorld.check(
"worldCFM", Value(0.00001)).asFloat64();
160 p.worldERP = bParamWorld.check(
"worldERP", Value(0.2)).asFloat64();
162 p.maxContactCorrectingVel = bParamContacts.check(
"maxContactCorrectingVel", Value(1e6)).asFloat64();
163 p.contactFrictionCoefficient = bParamContacts.check(
"contactFrictionCoefficient",Value(1.0)).asFloat64();
164 p.contactSurfaceLayer = bParamContacts.check(
"contactSurfaceLayer", Value(0.0)).asFloat64();
166 p.fudgeFactor = bParamJoints.check(
"fudgeFactor", Value(0.02)).asFloat64();
167 p.jointCFM = bParamJoints.check(
"jointCFM", Value(1
e-5)).asFloat64();
168 p.stopCFM = bParamJoints.check(
"stopCFM", Value(1
e-5)).asFloat64();
169 p.stopERP = bParamJoints.check(
"stopERP", Value(0.2)).asFloat64();
170 p.motorMaxTorque = bParamJoints.check(
"motorMaxTorque", Value(1e3)).asFloat64();
171 p.motorDryFriction = bParamJoints.check(
"motorDryFriction", Value(0.1)).asFloat64();
172 p.jointStopBouncyness = bParamJoints.check(
"jointStopBouncyness", Value(0.1)).asFloat64();