[ros-robot-model] 01/01: Fix compilation with liburdfdom-headers-dev

Jochen Sprickerhof jspricke at moszumanska.debian.org
Tue Aug 23 19:45:01 UTC 2016


This is an automated email from the git hooks/post-receive script.

jspricke pushed a commit to branch master
in repository ros-robot-model.

commit d685c26878d089444d5a1293a3df82f8b2fbb34f
Author: Jochen Sprickerhof <git at jochen.sprickerhof.de>
Date:   Tue Aug 23 21:43:02 2016 +0200

    Fix compilation with liburdfdom-headers-dev
    
    Closes: #834981
---
 ...urdf-ShredPtr-instead-of-boost-shared_ptr.patch | 568 +++++++++++++++++++++
 debian/patches/series                              |   1 +
 2 files changed, 569 insertions(+)

diff --git a/debian/patches/0003-Use-urdf-ShredPtr-instead-of-boost-shared_ptr.patch b/debian/patches/0003-Use-urdf-ShredPtr-instead-of-boost-shared_ptr.patch
new file mode 100644
index 0000000..8d3565c
--- /dev/null
+++ b/debian/patches/0003-Use-urdf-ShredPtr-instead-of-boost-shared_ptr.patch
@@ -0,0 +1,568 @@
+From: Jochen Sprickerhof <git at jochen.sprickerhof.de>
+Date: Tue, 23 Aug 2016 15:07:25 +0200
+Subject: Use urdf::*ShredPtr instead of boost::shared_ptr
+
+urdfdom_headers uses C++ std::shared_ptr. As it exports it as custom
+*SharedPtr type, we can use the to sty compatible.
+---
+ .../include/collada_parser/collada_parser.h        |  4 +-
+ .../include/collada_parser/collada_parser_plugin.h |  2 +-
+ collada_parser/src/collada_parser.cpp              | 56 ++++++++++++----------
+ collada_parser/src/collada_parser_plugin.cpp       |  2 +-
+ collada_urdf/src/collada_to_urdf.cpp               | 14 +++---
+ collada_urdf/src/collada_urdf.cpp                  | 32 ++++++-------
+ kdl_parser/src/kdl_parser.cpp                      |  8 ++--
+ urdf/src/model.cpp                                 |  2 +-
+ urdf/test/test_robot_model_parser.cpp              |  8 ++--
+ .../include/urdf_parser_plugin/parser.h            |  4 +-
+ 10 files changed, 70 insertions(+), 62 deletions(-)
+
+diff --git a/collada_parser/include/collada_parser/collada_parser.h b/collada_parser/include/collada_parser/collada_parser.h
+index da72748..a41c8d2 100644
+--- a/collada_parser/include/collada_parser/collada_parser.h
++++ b/collada_parser/include/collada_parser/collada_parser.h
+@@ -41,13 +41,13 @@
+ #include <map>
+ #include <boost/function.hpp>
+ 
+-#include <urdf_model/model.h>
++#include <urdf_world/types.h>
+ 
+ 
+ namespace urdf {
+ 
+ /// \brief Load Model from string
+-boost::shared_ptr<ModelInterface> parseCollada(const std::string &xml_string );
++urdf::ModelInterfaceSharedPtr parseCollada(const std::string &xml_string );
+ 
+ }
+ 
+diff --git a/collada_parser/include/collada_parser/collada_parser_plugin.h b/collada_parser/include/collada_parser/collada_parser_plugin.h
+index 32974db..ac699c0 100644
+--- a/collada_parser/include/collada_parser/collada_parser_plugin.h
++++ b/collada_parser/include/collada_parser/collada_parser_plugin.h
+@@ -46,7 +46,7 @@ class ColladaURDFParser : public URDFParser
+ {
+ public:
+ 
+-  virtual boost::shared_ptr<ModelInterface> parse(const std::string &xml_string);    
++  virtual urdf::ModelInterfaceSharedPtr parse(const std::string &xml_string);
+ };
+ 
+ }
+diff --git a/collada_parser/src/collada_parser.cpp b/collada_parser/src/collada_parser.cpp
+index 75afeb6..959b2d7 100644
+--- a/collada_parser/src/collada_parser.cpp
++++ b/collada_parser/src/collada_parser.cpp
+@@ -176,7 +176,11 @@ public:
+         USERDATA(double scale) : scale(scale) {
+         }
+         double scale;
++#if __cplusplus <= 199711L
+         boost::shared_ptr<void> p; ///< custom managed data
++#else
++        std::shared_ptr<void> p; ///< custom managed data
++#endif
+     };
+ 
+     enum GeomType {
+@@ -409,7 +413,7 @@ public:
+     };
+ 
+ public:
+-    ColladaModelReader(boost::shared_ptr<ModelInterface> model) : _dom(NULL), _nGlobalSensorId(0), _nGlobalManipulatorId(0), _model(model) {
++    ColladaModelReader(urdf::ModelInterfaceSharedPtr model) : _dom(NULL), _nGlobalSensorId(0), _nGlobalManipulatorId(0), _model(model) {
+         daeErrorHandler::setErrorHandler(this);
+         _resourcedir = ".";
+     }
+@@ -715,7 +719,7 @@ protected:
+             }
+ 
+             // find the target joint
+-            boost::shared_ptr<Joint> pjoint = _getJointFromRef(pf->getTarget()->getParam()->getValue(),pf);
++            urdf::JointSharedPtr pjoint = _getJointFromRef(pf->getTarget()->getParam()->getValue(),pf);
+             if (!pjoint) {
+                 continue;
+             }
+@@ -785,7 +789,7 @@ protected:
+                     }
+                     BOOST_ASSERT(psymboljoint->hasAttribute("encoding"));
+                     BOOST_ASSERT(psymboljoint->getAttribute("encoding")==std::string("COLLADA"));
+-                    boost::shared_ptr<Joint> pbasejoint = _getJointFromRef(psymboljoint->getCharData().c_str(),pf);
++                    urdf::JointSharedPtr pbasejoint = _getJointFromRef(psymboljoint->getCharData().c_str(),pf);
+                     if( !!pbasejoint ) {
+                         // set the mimic properties
+                         pjoint->mimic.reset(new JointMimic());
+@@ -801,7 +805,7 @@ protected:
+     }
+ 
+     ///  \brief Extract Link info and add it to an existing body
+-    boost::shared_ptr<Link> _ExtractLink(const domLinkRef pdomlink,const domNodeRef pdomnode, const Pose& tParentWorldLink, const Pose& tParentLink, const std::vector<domJointRef>& vdomjoints, const KinematicsSceneBindings& bindings) {
++    urdf::LinkSharedPtr _ExtractLink(const domLinkRef pdomlink,const domNodeRef pdomnode, const Pose& tParentWorldLink, const Pose& tParentLink, const std::vector<domJointRef>& vdomjoints, const KinematicsSceneBindings& bindings) {
+         const std::list<JointAxisBinding>& listAxisBindings = bindings.listAxisBindings;
+         //  Set link name with the name of the COLLADA's Link
+         std::string linkname = _ExtractLinkName(pdomlink);
+@@ -817,7 +821,7 @@ protected:
+             }
+         }
+ 
+-        boost::shared_ptr<Link> plink;
++        urdf::LinkSharedPtr plink;
+         _model->getLink(linkname,plink);
+         if( !plink ) {
+             plink.reset(new Link());
+@@ -921,7 +925,7 @@ protected:
+ 
+                 if (!pdomjoint || pdomjoint->typeID() != domJoint::ID()) {
+                     ROS_WARN_STREAM(str(boost::format("could not find attached joint %s!\n")%pattfull->getJoint()));
+-                    return boost::shared_ptr<Link>();
++                    return urdf::LinkSharedPtr();
+                 }
+ 
+                 // get direct child link
+@@ -952,7 +956,7 @@ protected:
+                 }
+ 
+                 // create the joints before creating the child links
+-                std::vector<boost::shared_ptr<Joint> > vjoints(vdomaxes.getCount());
++                std::vector<urdf::JointSharedPtr > vjoints(vdomaxes.getCount());
+                 for (size_t ic = 0; ic < vdomaxes.getCount(); ++ic) {
+                     bool joint_active = true; // if not active, put into the passive list
+                     FOREACHC(itaxisbinding,listAxisBindings) {
+@@ -966,7 +970,7 @@ protected:
+                         }
+                     }
+ 
+-                    boost::shared_ptr<Joint> pjoint(new Joint());
++                    urdf::JointSharedPtr pjoint(new Joint());
+                     pjoint->limits.reset(new JointLimits());
+                     pjoint->limits->velocity = 0.0;
+                     pjoint->limits->effort = 0.0;
+@@ -995,12 +999,16 @@ protected:
+                     }
+ 
+                     _getUserData(pdomjoint)->p = pjoint;
++#if __cplusplus <= 199711L
+                     _getUserData(pdomaxis)->p = boost::shared_ptr<int>(new int(_model->joints_.size()));
++#else
++                    _getUserData(pdomaxis)->p = std::shared_ptr<int>(new int(_model->joints_.size()));
++#endif
+                     _model->joints_[pjoint->name] = pjoint;
+                     vjoints[ic] = pjoint;
+                 }
+ 
+-                boost::shared_ptr<Link> pchildlink = _ExtractLink(pattfull->getLink(), pchildnode, _poseMult(_poseMult(tParentWorldLink,tlink), tatt), tatt, vdomjoints, bindings);
++                urdf::LinkSharedPtr pchildlink = _ExtractLink(pattfull->getLink(), pchildnode, _poseMult(_poseMult(tParentWorldLink,tlink), tatt), tatt, vdomjoints, bindings);
+ 
+                 if (!pchildlink) {
+                     ROS_WARN_STREAM(str(boost::format("Link has no child: %s\n")%plink->name));
+@@ -1035,7 +1043,7 @@ protected:
+                     }
+ 
+                     ROS_DEBUG_STREAM(str(boost::format("Joint %s assigned %d \n")%vjoints[ic]->name%ic));
+-                    boost::shared_ptr<Joint> pjoint = vjoints[ic];
++                    urdf::JointSharedPtr pjoint = vjoints[ic];
+                     pjoint->child_link_name = pchildlink->name;
+ 
+ #define PRINT_POSE(pname, apose) ROS_DEBUG(pname" pos: %f %f %f, rot: %f %f %f %f", \
+@@ -1154,8 +1162,8 @@ protected:
+ 
+         plink->visual->geometry = _CreateGeometry(plink->name, listGeomProperties);
+         // visual_groups deprecated
+-        //boost::shared_ptr<std::vector<boost::shared_ptr<Visual > > > viss;
+-        //viss.reset(new std::vector<boost::shared_ptr<Visual > >);
++        //boost::shared_ptr<std::vector<urdf::VisualSharedPtr > > viss;
++        //viss.reset(new std::vector<urdf::VisualSharedPtr >);
+         //viss->push_back(plink->visual);
+         //plink->visual_groups.insert(std::make_pair("default", viss));
+ 
+@@ -1170,15 +1178,15 @@ protected:
+         }
+ 
+         // collision_groups deprecated
+-        //boost::shared_ptr<std::vector<boost::shared_ptr<Collision > > > cols;
+-        //cols.reset(new std::vector<boost::shared_ptr<Collision > >);
++        //boost::shared_ptr<std::vector<urdf::CollisionSharedPtr > > cols;
++        //cols.reset(new std::vector<urdf::CollisionSharedPtr >);
+         //cols->push_back(plink->collision);
+         //plink->collision_groups.insert(std::make_pair("default", cols));
+ 
+         return plink;
+     }
+ 
+-    boost::shared_ptr<Geometry> _CreateGeometry(const std::string& name, const std::list<GEOMPROPERTIES>& listGeomProperties)
++    urdf::GeometrySharedPtr _CreateGeometry(const std::string& name, const std::list<GEOMPROPERTIES>& listGeomProperties)
+     {
+         std::vector<std::vector<Vector3> > vertices;
+         std::vector<std::vector<int> > indices;
+@@ -1219,12 +1227,12 @@ protected:
+         }
+ 
+         if (vert_counter == 0) {
+-          boost::shared_ptr<Mesh> ret;
++          urdf::MeshSharedPtr ret;
+           ret.reset();
+           return ret;
+         }
+ 
+-        boost::shared_ptr<Mesh> geometry(new Mesh());
++        urdf::MeshSharedPtr geometry(new Mesh());
+         geometry->type = Geometry::MESH;
+         geometry->scale.x = 1;
+         geometry->scale.y = 1;
+@@ -2020,7 +2028,7 @@ protected:
+                 //std::string aname = pextra->getAttribute("name");
+                 domTechniqueRef tec = _ExtractOpenRAVEProfile(pextra->getTechnique_array());
+                 if( !!tec ) {
+-                    boost::shared_ptr<Joint> pjoint;
++                    urdf::JointSharedPtr pjoint;
+                     daeElementRef domactuator;
+                     {
+                         daeElementRef bact = tec->getChild("bind_actuator");
+@@ -2413,7 +2421,7 @@ protected:
+         return name.substr(pos+1)==type;
+     }
+ 
+-    boost::shared_ptr<Joint> _getJointFromRef(xsToken targetref, daeElementRef peltref) {
++        urdf::JointSharedPtr _getJointFromRef(xsToken targetref, daeElementRef peltref) {
+         daeElement* peltjoint = daeSidRef(targetref, peltref).resolve().elt;
+         domJointRef pdomjoint = daeSafeCast<domJoint> (peltjoint);
+ 
+@@ -2426,10 +2434,10 @@ protected:
+ 
+         if (!pdomjoint || pdomjoint->typeID() != domJoint::ID() || !pdomjoint->getName()) {
+             ROS_WARN_STREAM(str(boost::format("could not find collada joint %s!\n")%targetref));
+-            return boost::shared_ptr<Joint>();
++            return urdf::JointSharedPtr();
+         }
+ 
+-        boost::shared_ptr<Joint> pjoint;
++        urdf::JointSharedPtr pjoint;
+         std::string name(pdomjoint->getName());
+         if (_model->joints_.find(name) == _model->joints_.end()) {
+             pjoint.reset();
+@@ -2797,7 +2805,7 @@ protected:
+     int _nGlobalSensorId, _nGlobalManipulatorId;
+     std::string _filename;
+     std::string _resourcedir;
+-    boost::shared_ptr<ModelInterface> _model;
++    urdf::ModelInterfaceSharedPtr _model;
+     Pose _RootOrigin;
+     Pose _VisualRootOrigin;
+ };
+@@ -2805,9 +2813,9 @@ protected:
+ 
+ 
+ 
+-boost::shared_ptr<ModelInterface> parseCollada(const std::string &xml_str)
++urdf::ModelInterfaceSharedPtr parseCollada(const std::string &xml_str)
+ {
+-    boost::shared_ptr<ModelInterface> model(new ModelInterface);
++    urdf::ModelInterfaceSharedPtr model(new ModelInterface);
+ 
+     ColladaModelReader reader(model);
+     if (!reader.InitFromData(xml_str))
+diff --git a/collada_parser/src/collada_parser_plugin.cpp b/collada_parser/src/collada_parser_plugin.cpp
+index c4d98b0..d8f5369 100644
+--- a/collada_parser/src/collada_parser_plugin.cpp
++++ b/collada_parser/src/collada_parser_plugin.cpp
+@@ -38,7 +38,7 @@
+ #include "collada_parser/collada_parser.h"
+ #include <class_loader/class_loader.h>
+ 
+-boost::shared_ptr<urdf::ModelInterface> urdf::ColladaURDFParser::parse(const std::string &xml_string)
++urdf::ModelInterfaceSharedPtr urdf::ColladaURDFParser::parse(const std::string &xml_string)
+ {
+   return urdf::parseCollada(xml_string);
+ }
+diff --git a/collada_urdf/src/collada_to_urdf.cpp b/collada_urdf/src/collada_to_urdf.cpp
+index 3a4d6e6..14e9741 100644
+--- a/collada_urdf/src/collada_to_urdf.cpp
++++ b/collada_urdf/src/collada_to_urdf.cpp
+@@ -188,7 +188,7 @@ void assimp_calc_bbox(string fname, float &minx, float &miny, float &minz,
+   }
+ }
+ 
+-void addChildLinkNamesXML(boost::shared_ptr<const Link> link, ofstream& os)
++void addChildLinkNamesXML(urdf::LinkConstSharedPtr link, ofstream& os)
+ {
+   os << "  <link name=\"" << link->name << "\">" << endl;
+   if ( !!link->visual ) {
+@@ -405,14 +405,14 @@ void addChildLinkNamesXML(boost::shared_ptr<const Link> link, ofstream& os)
+   }
+ #endif
+ 
+-  for (std::vector<boost::shared_ptr<Link> >::const_iterator child = link->child_links.begin(); child != link->child_links.end(); child++)
++  for (std::vector<urdf::LinkSharedPtr >::const_iterator child = link->child_links.begin(); child != link->child_links.end(); child++)
+     addChildLinkNamesXML(*child, os);
+ }
+ 
+-void addChildJointNamesXML(boost::shared_ptr<const Link> link, ofstream& os)
++void addChildJointNamesXML(urdf::LinkConstSharedPtr link, ofstream& os)
+ {
+   double r, p, y;
+-  for (std::vector<boost::shared_ptr<Link> >::const_iterator child = link->child_links.begin(); child != link->child_links.end(); child++){
++  for (std::vector<urdf::LinkSharedPtr >::const_iterator child = link->child_links.begin(); child != link->child_links.end(); child++){
+     (*child)->parent_joint->parent_to_joint_origin_transform.rotation.getRPY(r,p,y);
+     std::string jtype;
+     if ( (*child)->parent_joint->type == urdf::Joint::UNKNOWN ) {
+@@ -443,7 +443,7 @@ void addChildJointNamesXML(boost::shared_ptr<const Link> link, ofstream& os)
+     os << "    <axis   xyz=\"" <<  (*child)->parent_joint->axis.x << " ";
+     os << (*child)->parent_joint->axis.y << " " << (*child)->parent_joint->axis.z << "\"/>" << endl;
+     {
+-      boost::shared_ptr<urdf::Joint> jt((*child)->parent_joint);
++      urdf::JointSharedPtr jt((*child)->parent_joint);
+ 
+       if ( !!jt->limits ) {
+         os << "    <limit ";
+@@ -501,7 +501,7 @@ void addChildJointNamesXML(boost::shared_ptr<const Link> link, ofstream& os)
+   }
+ }
+ 
+-void printTreeXML(boost::shared_ptr<const Link> link, string name, string file)
++void printTreeXML(urdf::LinkConstSharedPtr link, string name, string file)
+ {
+   std::ofstream os;
+   os.open(file.c_str());
+@@ -667,7 +667,7 @@ int main(int argc, char** argv)
+   }
+   xml_file.close();
+ 
+-  boost::shared_ptr<ModelInterface> robot;
++  urdf::ModelInterfaceSharedPtr robot;
+   if( xml_string.find("<COLLADA") != std::string::npos )
+   {
+     ROS_DEBUG("Parsing robot collada xml string");
+diff --git a/collada_urdf/src/collada_urdf.cpp b/collada_urdf/src/collada_urdf.cpp
+index 712328e..4fe51d0 100644
+--- a/collada_urdf/src/collada_urdf.cpp
++++ b/collada_urdf/src/collada_urdf.cpp
+@@ -538,7 +538,7 @@ private:
+         domInstance_with_extraRef piscene;
+     };
+ 
+-    typedef std::map< boost::shared_ptr<const urdf::Link>, urdf::Pose > MAPLINKPOSES;
++    typedef std::map< urdf::LinkConstSharedPtr, urdf::Pose > MAPLINKPOSES;
+     struct LINKOUTPUT
+     {
+         list<pair<int,string> > listusedlinks;
+@@ -562,7 +562,7 @@ private:
+             axis_output() : iaxis(0) {
+             }
+             string sid, nodesid;
+-            boost::shared_ptr<const urdf::Joint> pjoint;
++            urdf::JointConstSharedPtr pjoint;
+             int iaxis;
+             string jointnodesid;
+         };
+@@ -788,7 +788,7 @@ protected:
+ 
+         for(size_t idof = 0; idof < _ikmout->vaxissids.size(); ++idof) {
+             string axis_infosid = _ComputeId(str(boost::format("axis_info_inst%d")%idof));
+-            boost::shared_ptr<const urdf::Joint> pjoint = _ikmout->kmout->vaxissids.at(idof).pjoint;
++            urdf::JointConstSharedPtr pjoint = _ikmout->kmout->vaxissids.at(idof).pjoint;
+             BOOST_ASSERT(_mapjointindices[pjoint] == (int)idof);
+             //int iaxis = _ikmout->kmout->vaxissids.at(idof).iaxis;
+ 
+@@ -966,7 +966,7 @@ protected:
+         kmout->vlinksids.resize(_robot.links_.size());
+ 
+         FOREACHC(itjoint, _robot.joints_) {
+-            boost::shared_ptr<urdf::Joint> pjoint = itjoint->second;
++            urdf::JointSharedPtr pjoint = itjoint->second;
+             int index = _mapjointindices[itjoint->second];
+             domJointRef pdomjoint = daeSafeCast<domJoint>(ktec->add(COLLADA_ELEMENT_JOINT));
+             string jointid = _ComputeId(pjoint->name); //str(boost::format("joint%d")%index);
+@@ -1039,7 +1039,7 @@ protected:
+         // create the formulas for all mimic joints
+         FOREACHC(itjoint, _robot.joints_) {
+             string jointsid = _ComputeId(itjoint->second->name);
+-            boost::shared_ptr<urdf::Joint> pjoint = itjoint->second;
++            urdf::JointSharedPtr pjoint = itjoint->second;
+             if( !pjoint->mimic ) {
+                 continue;
+             }
+@@ -1125,7 +1125,7 @@ protected:
+     /// \param pkinparent Kinbody parent
+     /// \param pnodeparent Node parent
+     /// \param strModelUri
+-    virtual LINKOUTPUT _WriteLink(boost::shared_ptr<const urdf::Link> plink, daeElementRef pkinparent, domNodeRef pnodeparent, const string& strModelUri)
++    virtual LINKOUTPUT _WriteLink(urdf::LinkConstSharedPtr plink, daeElementRef pkinparent, domNodeRef pnodeparent, const string& strModelUri)
+     {
+         LINKOUTPUT out;
+         int linkindex = _maplinkindices[plink];
+@@ -1141,8 +1141,8 @@ protected:
+         pnode->setSid(nodesid.c_str());
+         pnode->setName(plink->name.c_str());
+ 
+-        boost::shared_ptr<urdf::Geometry> geometry;
+-        boost::shared_ptr<urdf::Material> material;
++        urdf::GeometrySharedPtr geometry;
++        urdf::MaterialSharedPtr material;
+         urdf::Pose geometry_origin;
+         if( !!plink->visual ) {
+             geometry = plink->visual->geometry;
+@@ -1161,7 +1161,7 @@ protected:
+             if ( !!plink->visual ) {
+               if (plink->visual_array.size() > 1) {
+ 		int igeom = 0;
+-		for (std::vector<boost::shared_ptr<urdf::Visual > >::const_iterator it = plink->visual_array.begin();
++		for (std::vector<urdf::VisualSharedPtr >::const_iterator it = plink->visual_array.begin();
+ 		     it != plink->visual_array.end(); it++) {
+ 		  // geom
+ 		  string geomid = _ComputeId(str(boost::format("g%s_%s_geom%d")%strModelUri%linksid%igeom));
+@@ -1208,7 +1208,7 @@ protected:
+ 
+         // process all children
+         FOREACHC(itjoint, plink->child_joints) {
+-            boost::shared_ptr<urdf::Joint> pjoint = *itjoint;
++            urdf::JointSharedPtr pjoint = *itjoint;
+             int index = _mapjointindices[pjoint];
+ 
+             // <attachment_full joint="k1/joint0">
+@@ -1269,7 +1269,7 @@ protected:
+         return out;
+     }
+ 
+-    domGeometryRef _WriteGeometry(boost::shared_ptr<urdf::Geometry> geometry, const std::string& geometry_id, urdf::Pose *org_trans = NULL)
++    domGeometryRef _WriteGeometry(urdf::GeometrySharedPtr geometry, const std::string& geometry_id, urdf::Pose *org_trans = NULL)
+     {
+         domGeometryRef cgeometry = daeSafeCast<domGeometry>(_geometriesLib->add(COLLADA_ELEMENT_GEOMETRY));
+         cgeometry->setId(geometry_id.c_str());
+@@ -1308,7 +1308,7 @@ protected:
+         return cgeometry;
+     }
+ 
+-    void _WriteMaterial(const string& geometry_id, boost::shared_ptr<urdf::Material> material)
++    void _WriteMaterial(const string& geometry_id, urdf::MaterialSharedPtr material)
+     {
+         string effid = geometry_id+string("_eff");
+         string matid = geometry_id+string("_mat");
+@@ -1386,7 +1386,7 @@ protected:
+             rigid_body->setSid(rigidsid.c_str());
+             rigid_body->setName(itlink->second->name.c_str());
+             domRigid_body::domTechnique_commonRef ptec = daeSafeCast<domRigid_body::domTechnique_common>(rigid_body->add(COLLADA_ELEMENT_TECHNIQUE_COMMON));
+-            boost::shared_ptr<urdf::Inertial> inertial = itlink->second->inertial;
++            urdf::InertialSharedPtr inertial = itlink->second->inertial;
+             if( !!inertial ) {
+                 daeSafeCast<domRigid_body::domTechnique_common::domDynamic>(ptec->add(COLLADA_ELEMENT_DYNAMIC))->setValue(xsBoolean(true)); //!!inertial));
+                 domTargetable_floatRef mass = daeSafeCast<domTargetable_float>(ptec->add(COLLADA_ELEMENT_MASS));
+@@ -1916,9 +1916,9 @@ private:
+ 
+     boost::shared_ptr<instance_kinematics_model_output> _ikmout;
+     boost::shared_ptr<instance_articulated_system_output> _iasout;
+-    std::map< boost::shared_ptr<const urdf::Joint>, int > _mapjointindices;
+-    std::map< boost::shared_ptr<const urdf::Link>, int > _maplinkindices;
+-    std::map< boost::shared_ptr<const urdf::Material>, int > _mapmaterialindices;
++    std::map< urdf::JointConstSharedPtr, int > _mapjointindices;
++    std::map< urdf::LinkConstSharedPtr, int > _maplinkindices;
++    std::map< urdf::MaterialConstSharedPtr, int > _mapmaterialindices;
+     Assimp::Importer _importer;
+ };
+ 
+diff --git a/kdl_parser/src/kdl_parser.cpp b/kdl_parser/src/kdl_parser.cpp
+index 7031247..78b6b5e 100644
+--- a/kdl_parser/src/kdl_parser.cpp
++++ b/kdl_parser/src/kdl_parser.cpp
+@@ -64,7 +64,7 @@ Frame toKdl(urdf::Pose p)
+ }
+ 
+ // construct joint
+-Joint toKdl(boost::shared_ptr<urdf::Joint> jnt)
++Joint toKdl(urdf::JointSharedPtr jnt)
+ {
+   Frame F_parent_jnt = toKdl(jnt->parent_to_joint_origin_transform);
+ 
+@@ -93,7 +93,7 @@ Joint toKdl(boost::shared_ptr<urdf::Joint> jnt)
+ }
+ 
+ // construct inertia
+-RigidBodyInertia toKdl(boost::shared_ptr<urdf::Inertial> i)
++RigidBodyInertia toKdl(urdf::InertialSharedPtr i)
+ {
+   Frame origin = toKdl(i->origin);
+   
+@@ -124,9 +124,9 @@ RigidBodyInertia toKdl(boost::shared_ptr<urdf::Inertial> i)
+ 
+ 
+ // recursive function to walk through tree
+-bool addChildrenToTree(boost::shared_ptr<const urdf::Link> root, Tree& tree)
++bool addChildrenToTree(urdf::LinkConstSharedPtr root, Tree& tree)
+ {
+-  std::vector<boost::shared_ptr<urdf::Link> > children = root->child_links;
++  std::vector<urdf::LinkSharedPtr > children = root->child_links;
+   ROS_DEBUG("Link %s had %i children", root->name.c_str(), (int)children.size());
+ 
+   // constructs the optional inertia
+diff --git a/urdf/src/model.cpp b/urdf/src/model.cpp
+index a721056..69f96b8 100644
+--- a/urdf/src/model.cpp
++++ b/urdf/src/model.cpp
+@@ -136,7 +136,7 @@ bool Model::initXml(TiXmlElement *robot_xml)
+ 
+ bool Model::initString(const std::string& xml_string)
+ {
+-  boost::shared_ptr<ModelInterface> model;
++  urdf::ModelInterfaceSharedPtr model;
+ 
+   // necessary for COLLADA compatibility
+   if( IsColladaData(xml_string) ) {
+diff --git a/urdf/test/test_robot_model_parser.cpp b/urdf/test/test_robot_model_parser.cpp
+index 5e16980..034a09f 100644
+--- a/urdf/test/test_robot_model_parser.cpp
++++ b/urdf/test/test_robot_model_parser.cpp
+@@ -54,7 +54,7 @@ public:
+   bool checkModel(urdf::Model & robot)
+   {
+     // get root link
+-    boost::shared_ptr<const Link> root_link = robot.getRoot();
++    urdf::LinkConstSharedPtr root_link = robot.getRoot();
+     if (!root_link)
+     {
+       ROS_ERROR("no root link %s", robot.getName().c_str());
+@@ -79,12 +79,12 @@ protected:
+   {
+   }
+ 
+-  bool traverse_tree(boost::shared_ptr<const Link> link,int level = 0)
++  bool traverse_tree(urdf::LinkConstSharedPtr link,int level = 0)
+   {
+     ROS_INFO("Traversing tree at level %d, link size %lu", level, link->child_links.size());
+     level+=2;
+     bool retval = true;
+-    for (std::vector<boost::shared_ptr<Link> >::const_iterator child = link->child_links.begin(); child != link->child_links.end(); child++)
++    for (std::vector<urdf::LinkSharedPtr>::const_iterator child = link->child_links.begin(); child != link->child_links.end(); child++)
+     {
+       ++num_links;
+       if (*child && (*child)->parent_joint)
+@@ -142,7 +142,7 @@ TEST_F(TestParser, test)
+   ASSERT_TRUE(robot.initFile(folder + file));
+ 
+   EXPECT_EQ(robot.getName(), robot_name);
+-  boost::shared_ptr<const urdf::Link> root = robot.getRoot();
++  urdf::LinkConstSharedPtr root = robot.getRoot();
+   ASSERT_TRUE(root);
+   EXPECT_EQ(root->name, root_name);
+ 
+diff --git a/urdf_parser_plugin/include/urdf_parser_plugin/parser.h b/urdf_parser_plugin/include/urdf_parser_plugin/parser.h
+index 7032b13..a2fbf63 100644
+--- a/urdf_parser_plugin/include/urdf_parser_plugin/parser.h
++++ b/urdf_parser_plugin/include/urdf_parser_plugin/parser.h
+@@ -37,7 +37,7 @@
+ #ifndef URDF_PARSER_PLUGIN_H
+ #define URDF_PARSER_PLUGIN_H
+ 
+-#include <urdf_model/model.h>
++#include <urdf_world/types.h>
+ 
+ namespace urdf
+ {
+@@ -54,7 +54,7 @@ public:
+   }
+ 
+   /// \brief Load Model from string
+-  virtual boost::shared_ptr<ModelInterface> parse(const std::string &xml_string) = 0;
++  virtual urdf::ModelInterfaceSharedPtr parse(const std::string &xml_string) = 0;
+ };
+   
+ }
diff --git a/debian/patches/series b/debian/patches/series
index c0916ef..52393b7 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,2 +1,3 @@
 0001-Add-CMakeLists.txt.patch
 0002-Add-Debian-specific-SOVERSION.patch
+0003-Use-urdf-ShredPtr-instead-of-boost-shared_ptr.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/ros/ros-robot-model.git



More information about the debian-science-commits mailing list