@@ -221,10 +221,6 @@ std::string Values2str(unsigned int _count, const double *_values);
221221
222222void CreateGeometry (TiXmlElement *_elem, urdf::GeometrySharedPtr _geometry);
223223
224- ignition::math::Pose3d inverseTransformToParentFrame (
225- ignition::math::Pose3d _transformInLinkFrame,
226- urdf::Pose _parentToLinkTransform);
227-
228224// / reduced fixed joints: transform to parent frame
229225urdf::Pose TransformToParentFrame (urdf::Pose _transformInLinkFrame,
230226 urdf::Pose _parentToLinkTransform);
@@ -2429,31 +2425,6 @@ ignition::math::Pose3d TransformToParentFrame(
24292425 return transformInParentLinkFrame;
24302426}
24312427
2432- // ///////////////////////////////////////////////
2433- // / reduced fixed joints: transform to parent frame
2434- ignition::math::Pose3d inverseTransformToParentFrame (
2435- ignition::math::Pose3d _transformInLinkFrame,
2436- urdf::Pose _parentToLinkTransform)
2437- {
2438- ignition::math::Pose3d transformInParentLinkFrame;
2439- // rotate link pose to parentLink frame
2440- urdf::Rotation ri = _parentToLinkTransform.rotation .GetInverse ();
2441- ignition::math::Quaterniond q1 (ri.w , ri.x , ri.y , ri.z );
2442- transformInParentLinkFrame.Pos () = q1 * _transformInLinkFrame.Pos ();
2443- urdf::Rotation r2 = _parentToLinkTransform.rotation .GetInverse ();
2444- ignition::math::Quaterniond q3 (r2.w , r2.x , r2.y , r2.z );
2445- transformInParentLinkFrame.Rot () = q3 * _transformInLinkFrame.Rot ();
2446- // translate link to parentLink frame
2447- transformInParentLinkFrame.Pos ().X () = transformInParentLinkFrame.Pos ().X ()
2448- - _parentToLinkTransform.position .x ;
2449- transformInParentLinkFrame.Pos ().Y () = transformInParentLinkFrame.Pos ().Y ()
2450- - _parentToLinkTransform.position .y ;
2451- transformInParentLinkFrame.Pos ().Z () = transformInParentLinkFrame.Pos ().Z ()
2452- - _parentToLinkTransform.position .z ;
2453-
2454- return transformInParentLinkFrame;
2455- }
2456-
24572428// //////////////////////////////////////////////////////////////////////////////
24582429void ReduceSDFExtensionToParent (urdf::LinkSharedPtr _link)
24592430{
@@ -3499,20 +3470,27 @@ void ReduceSDFExtensionPluginFrameReplace(
34993470 TiXmlNode* rpyKey = (*_blobIt)->FirstChild (" rpyOffset" );
35003471 if (rpyKey)
35013472 {
3502- urdf::Vector3 rpy = ParseVector3 (rpyKey, M_PI/ 180.0 );
3473+ urdf::Vector3 rpy = ParseVector3 (rpyKey);
35033474 _reductionTransform.Rot () =
35043475 ignition::math::Quaterniond::EulerToQuaternion (rpy.x , rpy.y , rpy.z );
35053476 // remove xyzOffset and rpyOffset
35063477 (*_blobIt)->RemoveChild (rpyKey);
35073478 }
3479+ TiXmlNode* correctedOffsetKey =
3480+ (*_blobIt)->FirstChild (" ignition::corrected_offsets" );
3481+ if (correctedOffsetKey)
3482+ {
3483+ (*_blobIt)->RemoveChild (correctedOffsetKey);
3484+ }
35083485
35093486 // pass through the parent transform from fixed joint reduction
3510- _reductionTransform = inverseTransformToParentFrame (_reductionTransform,
3487+ _reductionTransform = TransformToParentFrame (_reductionTransform,
35113488 _link->parent_joint ->parent_to_joint_origin_transform );
35123489
35133490 // create new offset xml blocks
35143491 xyzKey = new TiXmlElement (" xyzOffset" );
35153492 rpyKey = new TiXmlElement (" rpyOffset" );
3493+ correctedOffsetKey = new TiXmlElement (" ignition::corrected_offsets" );
35163494
35173495 // create new offset xml blocks
35183496 urdf::Vector3 reductionXyz (_reductionTransform.Pos ().X (),
@@ -3533,12 +3511,15 @@ void ReduceSDFExtensionPluginFrameReplace(
35333511
35343512 TiXmlText* xyzTxt = new TiXmlText (xyzStream.str ());
35353513 TiXmlText* rpyTxt = new TiXmlText (rpyStream.str ());
3514+ TiXmlText* correctedOffsetTxt = new TiXmlText (" 1" );
35363515
35373516 xyzKey->LinkEndChild (xyzTxt);
35383517 rpyKey->LinkEndChild (rpyTxt);
3518+ correctedOffsetKey->LinkEndChild (correctedOffsetTxt);
35393519
35403520 (*_blobIt)->LinkEndChild (xyzKey);
35413521 (*_blobIt)->LinkEndChild (rpyKey);
3522+ (*_blobIt)->LinkEndChild (correctedOffsetKey);
35423523 }
35433524 }
35443525 }
0 commit comments