diff --git a/CMakeLists.txt b/CMakeLists.txt index 003a534..40fbb04 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,7 +12,7 @@ include(GNUInstallDirs) include(FeatureSummary) find_package(Eigen3 REQUIRED) -find_package(iDynTree 12.3.1 REQUIRED) +find_package(iDynTree 12.4.0 REQUIRED) find_package(yaml-cpp REQUIRED) find_package(LibXml2 REQUIRED) diff --git a/src/creo2urdf/CMakeLists.txt b/src/creo2urdf/CMakeLists.txt index b5e91c1..b525a6f 100644 --- a/src/creo2urdf/CMakeLists.txt +++ b/src/creo2urdf/CMakeLists.txt @@ -69,6 +69,7 @@ add_compile_definitions(creo2urdf PUBLIC PRO_MACHINE=36 # Link dependencies target_link_libraries(creo2urdf PRIVATE iDynTree::idyntree-modelio iDynTree::idyntree-high-level + iDynTree::idyntree-model yaml-cpp::yaml-cpp LibXml2::LibXml2 Eigen3::Eigen diff --git a/src/creo2urdf/src/Creo2Urdf.cpp b/src/creo2urdf/src/Creo2Urdf.cpp index 8ea59e8..692fef3 100644 --- a/src/creo2urdf/src/Creo2Urdf.cpp +++ b/src/creo2urdf/src/Creo2Urdf.cpp @@ -13,6 +13,7 @@ #include #include +#include #include @@ -440,7 +441,12 @@ void Creo2Urdf::OnCommand() { bool Creo2Urdf::exportModelToUrdf(iDynTree::Model mdl, iDynTree::ModelExporterOptions options) { iDynTree::ModelExporter mdl_exporter; - mdl_exporter.init(mdl); + // Convert modelToExport in a URDF-compatible model (using the default base link) + iDynTree::Model modelToExportURDFCompatible; + + bool ok = iDynTree::moveLinkFramesToBeCompatibleWithURDFWithGivenBaseLink(mdl, modelToExportURDFCompatible); + + mdl_exporter.init(modelToExportURDFCompatible); mdl_exporter.setExportingOptions(options); if (!mdl_exporter.isValid())