Improve error reporting of sensorized objects.

Also remove duplication of element name and id from most error messages.

PiperOrigin-RevId: 628065116
Change-Id: Idd962fbab7aeba09e3a70c6c9d044b23db94cf23
This commit is contained in:
Yuval Tassa
2024-04-25 07:12:26 -07:00
committed by Copybara-Service
parent cbb048ff00
commit 027c26a153
4 changed files with 187 additions and 217 deletions
+24 -24
View File
@@ -1344,7 +1344,7 @@ void mjXReader::OneFlex(XMLElement* elem, mjsFlex* pflex) {
}
// write error info
mjs_setString(pflex->info, ("line = " + std::to_string(elem->GetLineNum())).c_str());
mjs_setString(pflex->info, ("line " + std::to_string(elem->GetLineNum())).c_str());
}
@@ -1414,7 +1414,7 @@ void mjXReader::OneMesh(XMLElement* elem, mjsMesh* pmesh) {
}
// write error info
mjs_setString(pmesh->info, ("line = " + std::to_string(elem->GetLineNum())).c_str());
mjs_setString(pmesh->info, ("line " + std::to_string(elem->GetLineNum())).c_str());
}
@@ -1502,7 +1502,7 @@ void mjXReader::OneSkin(XMLElement* elem, mjsSkin* pskin) {
mjs_setFloat(pskin->bindquat, bindquat.data(), bindquat.size());
// write error info
mjs_setString(pskin->info, ("line = " + std::to_string(elem->GetLineNum())).c_str());
mjs_setString(pskin->info, ("line " + std::to_string(elem->GetLineNum())).c_str());
}
@@ -1535,7 +1535,7 @@ void mjXReader::OneMaterial(XMLElement* elem, mjsMaterial* pmat) {
ReadAttr(elem, "rgba", 4, pmat->rgba, text);
// write error info
mjs_setString(pmat->info, ("line = " + std::to_string(elem->GetLineNum())).c_str());
mjs_setString(pmat->info, ("line " + std::to_string(elem->GetLineNum())).c_str());
}
@@ -1585,7 +1585,7 @@ void mjXReader::OneJoint(XMLElement* elem, mjsJoint* pjoint) {
}
// write error info
mjs_setString(pjoint->info, ("line = " + std::to_string(elem->GetLineNum())).c_str());
mjs_setString(pjoint->info, ("line " + std::to_string(elem->GetLineNum())).c_str());
}
@@ -1660,7 +1660,7 @@ void mjXReader::OneGeom(XMLElement* elem, mjsGeom* pgeom) {
}
// write error info
mjs_setString(pgeom->info, ("line = " + std::to_string(elem->GetLineNum())).c_str());
mjs_setString(pgeom->info, ("line " + std::to_string(elem->GetLineNum())).c_str());
}
@@ -1697,7 +1697,7 @@ void mjXReader::OneSite(XMLElement* elem, mjsSite* site) {
}
// write error info
mjs_setString(site->info, ("line = " + std::to_string(elem->GetLineNum())).c_str());
mjs_setString(site->info, ("line " + std::to_string(elem->GetLineNum())).c_str());
}
@@ -1751,7 +1751,7 @@ void mjXReader::OneCamera(XMLElement* elem, mjsCamera* pcam) {
mjs_setDouble(pcam->userdata, userdata.data(), userdata.size());
// write error info
mjs_setString(pcam->info, ("line = " + std::to_string(elem->GetLineNum())).c_str());
mjs_setString(pcam->info, ("line " + std::to_string(elem->GetLineNum())).c_str());
}
@@ -1794,7 +1794,7 @@ void mjXReader::OneLight(XMLElement* elem, mjsLight* plight) {
ReadAttr(elem, "specular", 3, plight->specular, text);
// write error info
mjs_setString(plight->info, ("line = " + std::to_string(elem->GetLineNum())).c_str());
mjs_setString(plight->info, ("line " + std::to_string(elem->GetLineNum())).c_str());
}
@@ -1829,7 +1829,7 @@ void mjXReader::OnePair(XMLElement* elem, mjsPair* ppair) {
ReadAttr(elem, "friction", 5, ppair->friction, text, false, false);
// write error info
mjs_setString(ppair->info, ("line = " + std::to_string(elem->GetLineNum())).c_str());
mjs_setString(ppair->info, ("line " + std::to_string(elem->GetLineNum())).c_str());
}
@@ -1907,7 +1907,7 @@ void mjXReader::OneEquality(XMLElement* elem, mjsEquality* pequality) {
ReadAttr(elem, "solimp", mjNIMP, pequality->solimp, text, false, false);
// write error info
mjs_setString(pequality->info, ("line = " + std::to_string(elem->GetLineNum())).c_str());
mjs_setString(pequality->info, ("line " + std::to_string(elem->GetLineNum())).c_str());
}
@@ -1951,7 +1951,7 @@ void mjXReader::OneTendon(XMLElement* elem, mjsTendon* pten) {
}
// write error info
mjs_setString(pten->info, ("line = " + std::to_string(elem->GetLineNum())).c_str());
mjs_setString(pten->info, ("line " + std::to_string(elem->GetLineNum())).c_str());
}
@@ -2241,7 +2241,7 @@ void mjXReader::OneActuator(XMLElement* elem, mjsActuator* pact) {
}
// write info
mjs_setString(pact->info, ("line = " + std::to_string(elem->GetLineNum())).c_str());
mjs_setString(pact->info, ("line " + std::to_string(elem->GetLineNum())).c_str());
}
@@ -2762,7 +2762,7 @@ void mjXReader::Extension(XMLElement* section) {
}
string name;
mjsPlugin* p = mjs_addPlugin(model);
mjs_setString(p->info, ("line = " + std::to_string(elem->GetLineNum())).c_str());
mjs_setString(p->info, ("line " + std::to_string(elem->GetLineNum())).c_str());
ReadAttrTxt(child, "name", name, /* required = */ true);
mjs_setString(p->name, name.c_str());
if (!p->name) {
@@ -2803,7 +2803,7 @@ void mjXReader::Custom(XMLElement* section) {
mjsNumeric* pnum = mjs_addNumeric(model);
// write error info
mjs_setString(pnum->info, ("line = " + std::to_string(elem->GetLineNum())).c_str());
mjs_setString(pnum->info, ("line " + std::to_string(elem->GetLineNum())).c_str());
// read attributes
ReadAttrTxt(elem, "name", elname, true);
@@ -2834,7 +2834,7 @@ void mjXReader::Custom(XMLElement* section) {
mjsText* pte = mjs_addText(model);
// write error info
mjs_setString(pte->info, ("line = " + std::to_string(elem->GetLineNum())).c_str());
mjs_setString(pte->info, ("line " + std::to_string(elem->GetLineNum())).c_str());
// read attributes
ReadAttrTxt(elem, "name", elname, true);
@@ -2854,7 +2854,7 @@ void mjXReader::Custom(XMLElement* section) {
mjsTuple* ptu = mjs_addTuple(model);
// write error info
mjs_setString(ptu->info, ("line = " + std::to_string(elem->GetLineNum())).c_str());
mjs_setString(ptu->info, ("line " + std::to_string(elem->GetLineNum())).c_str());
// read attributes
ReadAttrTxt(elem, "name", elname, true);
@@ -3061,7 +3061,7 @@ void mjXReader::Asset(XMLElement* section) {
mjsTexture* ptex = mjs_addTexture(model);
// write error info
mjs_setString(ptex->info, ("line = " + std::to_string(elem->GetLineNum())).c_str());
mjs_setString(ptex->info, ("line " + std::to_string(elem->GetLineNum())).c_str());
// read attributes
if (MapValue(elem, "type", &n, texture_map, texture_sz)) {
@@ -3150,7 +3150,7 @@ void mjXReader::Asset(XMLElement* section) {
mjsHField* phf = mjs_addHField(model);
// write error info
mjs_setString(phf->info, ("line = " + std::to_string(elem->GetLineNum())).c_str());
mjs_setString(phf->info, ("line " + std::to_string(elem->GetLineNum())).c_str());
// read attributes
string name, content_type;
@@ -3353,7 +3353,7 @@ void mjXReader::Body(XMLElement* section, mjsBody* pbody, mjsFrame* frame) {
// create frame
mjsFrame* pframe = mjs_addFrame(pbody, frame);
mjs_setString(pframe->info, ("line = " + std::to_string(elem->GetLineNum())).c_str());
mjs_setString(pframe->info, ("line " + std::to_string(elem->GetLineNum())).c_str());
mjs_setDefault(pframe->element, childdef ? childdef : def);
// read attributes
@@ -3386,7 +3386,7 @@ void mjXReader::Body(XMLElement* section, mjsBody* pbody, mjsFrame* frame) {
// create child body
mjsBody* pchild = mjs_addBody(pbody, childdef);
mjs_setString(pchild->info,
std::string("line = " + std::to_string(elem->GetLineNum())).c_str());
std::string("line " + std::to_string(elem->GetLineNum())).c_str());
// read attributes
std::string name, childclass;
@@ -3460,7 +3460,7 @@ void mjXReader::Contact(XMLElement* section) {
string exname, exbody1, exbody2;
// write error info
mjs_setString(pexclude->info, ("line = " + std::to_string(elem->GetLineNum())).c_str());
mjs_setString(pexclude->info, ("line " + std::to_string(elem->GetLineNum())).c_str());
// read name and body names
if (ReadAttrTxt(elem, "name", exname)) {
@@ -3596,7 +3596,7 @@ void mjXReader::Tendon(XMLElement* section) {
throw mjXError(sub, "unknown wrap type"); // SHOULD NOT OCCUR
}
mjs_setString(pwrap->info, ("line = " + std::to_string(sub->GetLineNum())).c_str());
mjs_setString(pwrap->info, ("line " + std::to_string(sub->GetLineNum())).c_str());
// advance to next sub-element
sub = NextSiblingElement(sub);
@@ -3935,7 +3935,7 @@ void mjXReader::Sensor(XMLElement* section) {
}
// write info
mjs_setString(psen->info, ("line = " + std::to_string(elem->GetLineNum())).c_str());
mjs_setString(psen->info, ("line " + std::to_string(elem->GetLineNum())).c_str());
// advance to next element
elem = NextSiblingElement(elem);