Skip to content
This repository has been archived by the owner on Jul 11, 2020. It is now read-only.

Remove direct dependency on TinyXML #7

Closed
wants to merge 4 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions kdl_parser/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@ project(kdl_parser)

find_package(ament_cmake_ros REQUIRED)
find_package(orocos_kdl REQUIRED)
find_package(tinyxml_vendor REQUIRED)
find_package(TinyXML REQUIRED)
find_package(urdf REQUIRED)
find_package(urdfdom_headers REQUIRED)
find_library(KDL_LIBRARY REQUIRED
Expand All @@ -26,7 +24,6 @@ target_include_directories(${PROJECT_NAME}
"$<INSTALL_INTERFACE:include>"
)
ament_target_dependencies(${PROJECT_NAME}
TinyXML
orocos_kdl
urdf
urdfdom_headers)
Expand Down
9 changes: 0 additions & 9 deletions kdl_parser/include/kdl_parser/kdl_parser.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@
#define KDL_PARSER__KDL_PARSER_HPP_

#include <string>
#include <tinyxml.h> // NOLINT

#include "kdl/tree.hpp"
#include "urdf_model/model.h"
Expand Down Expand Up @@ -72,14 +71,6 @@ bool treeFromParam(const std::string & param, KDL::Tree & tree);
KDL_PARSER_PUBLIC
bool treeFromString(const std::string & xml, KDL::Tree & tree);

/** Constructs a KDL tree from a TiXmlDocument
* \param xml_doc The TiXmlDocument containting the xml description of the robot
* \param tree The resulting KDL Tree
* returns true on success, false on failure
*/
KDL_PARSER_PUBLIC
bool treeFromXml(TiXmlDocument * xml_doc, KDL::Tree & tree);

/** Constructs a KDL tree from a URDF robot model
* \param robot_model The URDF robot model
* \param tree The resulting KDL Tree
Expand Down
4 changes: 0 additions & 4 deletions kdl_parser/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,9 @@

<depend version_gte="1.3.0">orocos_kdl</depend>

<build_depend>tinyxml</build_depend>
<build_depend>tinyxml_vendor</build_depend>
<build_depend>urdf</build_depend>
<build_depend>urdfdom_headers</build_depend>

<exec_depend>tinyxml</exec_depend>
<exec_depend>tinyxml_vendor</exec_depend>
<exec_depend>urdf</exec_depend>

<test_depend>ament_lint_auto</test_depend>
Expand Down
18 changes: 6 additions & 12 deletions kdl_parser/src/kdl_parser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -160,9 +160,11 @@ bool addChildrenToTree(urdf::LinkConstSharedPtr root, KDL::Tree & tree)

bool treeFromFile(const std::string & file, KDL::Tree & tree)
{
TiXmlDocument urdf_xml;
urdf_xml.LoadFile(file);
return treeFromXml(&urdf_xml, tree);
std::ifstream t(file);
std::stringstream buffer;
buffer << t.rdbuf();

return treeFromString(buffer.str(), tree);
}

bool treeFromParam(const std::string & param, KDL::Tree & tree)
Expand All @@ -180,23 +182,15 @@ bool treeFromParam(const std::string & param, KDL::Tree & tree)
}

bool treeFromString(const std::string & xml, KDL::Tree & tree)
{
TiXmlDocument urdf_xml;
urdf_xml.Parse(xml.c_str());
return treeFromXml(&urdf_xml, tree);
}

bool treeFromXml(TiXmlDocument * xml_doc, KDL::Tree & tree)
{
urdf::Model robot_model;
if (!robot_model.initXml(xml_doc)) {
if (!robot_model.initString(xml.c_str())) {
fprintf(stderr, "Could not generate robot model\n");
return false;
}
return treeFromUrdfModel(robot_model, tree);
}


bool treeFromUrdfModel(const urdf::ModelInterface & robot_model, KDL::Tree & tree)
{
if (!robot_model.getRoot()) {
Expand Down