bool parseJointDynamics(JointDynamics &jd, TiXmlElement* config) { jd.clear(); // Get joint damping const char* damping_str = config->Attribute("damping"); if (damping_str == NULL){ CONSOLE_BRIDGE_logDebug("urdfdom.joint_dynamics: no damping, defaults to 0"); jd.damping = 0; } else { try { jd.damping = boost::lexical_cast<double>(damping_str); } catch (boost::bad_lexical_cast &e) { CONSOLE_BRIDGE_logError("damping value (%s) is not a float: %s",damping_str, e.what()); return false; } } // Get joint friction const char* friction_str = config->Attribute("friction"); if (friction_str == NULL){ CONSOLE_BRIDGE_logDebug("urdfdom.joint_dynamics: no friction, defaults to 0"); jd.friction = 0; } else { try { jd.friction = boost::lexical_cast<double>(friction_str); } catch (boost::bad_lexical_cast &e) { CONSOLE_BRIDGE_logError("friction value (%s) is not a float: %s",friction_str, e.what()); return false; } } if (damping_str == NULL && friction_str == NULL) { CONSOLE_BRIDGE_logError("joint dynamics element specified with no damping and no friction"); return false; } else{ CONSOLE_BRIDGE_logDebug("urdfdom.joint_dynamics: damping %f and friction %f", jd.damping, jd.friction); return true; } }
bool parseJointDynamics(JointDynamics &jd, TiXmlElement* config) { jd.clear(); // Get joint damping const char* damping_str = config->Attribute("damping"); if (damping_str == NULL){ //std::cout<<"joint dynamics: no damping, defaults to 1"<<std::endl; jd.damping = 0; } else { try { jd.damping = boost::lexical_cast<double>(damping_str); } catch (boost::bad_lexical_cast &e) { std::cout<<"damping value ("<< damping_str<<") is not a float: "<< e.what()<< std::endl; return false; } } // Get joint friction const char* friction_str = config->Attribute("friction"); if (friction_str == NULL){ //std::cout<<"joint dynamics: no friction, defaults to 0"<<std::endl; jd.friction = 0; } else { try { jd.friction = boost::lexical_cast<double>(friction_str); } catch (boost::bad_lexical_cast &e) { std::cout<<"friction value ("<< friction_str<< ") is not a float: "<< e.what() << std::endl; return false; } } if (damping_str == NULL && friction_str == NULL) { //printf("joint dynamics element specified with no damping and no friction \n"); return false; } else{ //printf("joint dynamics: damping %f and friction %f", jd.damping, jd.friction); return true; } }