Skip to content
This repository was archived by the owner on Nov 28, 2025. It is now read-only.

Commit a9848e8

Browse files
committed
Merge branch 'master' into devel
2 parents 3df9bea + 0ca806b commit a9848e8

24 files changed

+217
-282
lines changed

.travis.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@ after_success:
77
- cd _travis/build/doc && ../../../cmake/github/update-doxygen-doc.sh
88
branches:
99
only:
10-
- master
11-
- topic/sot-pinocchio
10+
- disabled_travis_because_not_relevant_anymore
1211
compiler:
1312
- clang
1413
- gcc

CMakeLists.txt

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,18 +36,18 @@ PROJECT(${PROJECT_NAME} ${PROJECT_ARGS})
3636
ADD_PROJECT_DEPENDENCY(sot-tools REQUIRED PKG_CONFIG_REQUIRES sot-tools)
3737
ADD_PROJECT_DEPENDENCY(example-robot-data)
3838

39-
SET(BOOST_COMPONENTS filesystem system unit_test_framework)
39+
IF(BUILD_TESTING)
40+
FIND_PACKAGE(Boost REQUIRED COMPONENTS unit_test_framework)
41+
ENDIF(BUILD_TESTING)
4042

4143
IF(BUILD_PYTHON_INTERFACE)
4244
FINDPYTHON()
45+
SEARCH_FOR_BOOST_PYTHON(REQUIRED)
4346
STRING(REGEX REPLACE "-" "_" PYTHON_DIR ${CUSTOM_HEADER_DIR})
44-
ADD_PROJECT_DEPENDENCY(dynamic-graph-python REQUIRED
47+
ADD_PROJECT_DEPENDENCY(dynamic-graph-python 4.0.0 REQUIRED
4548
PKG_CONFIG_REQUIRES dynamic-graph-python)
46-
SET(BOOST_COMPONENTS ${BOOST_COMPONENTS} python)
4749
ENDIF(BUILD_PYTHON_INTERFACE)
4850

49-
SEARCH_FOR_BOOST()
50-
5151
# Main Library
5252
SET(${PROJECT_NAME}_HEADERS
5353
include/${CUSTOM_HEADER_DIR}/dynamic-pinocchio.h
@@ -69,8 +69,7 @@ SET(${PROJECT_NAME}_SOURCES
6969
ADD_LIBRARY(${PROJECT_NAME} SHARED
7070
${${PROJECT_NAME}_SOURCES} ${${PROJECT_NAME}_HEADERS})
7171
TARGET_INCLUDE_DIRECTORIES(${PROJECT_NAME} PUBLIC $<INSTALL_INTERFACE:include>)
72-
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${Boost_LIBRARIES}
73-
sot-core::sot-core)
72+
TARGET_LINK_LIBRARIES(${PROJECT_NAME} sot-core::sot-core)
7473

7574
IF(SUFFIX_SO_VERSION)
7675
SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${PROJECT_VERSION})

include/sot/dynamic-pinocchio/dynamic-pinocchio.h

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
/* STD */
1818
#include <string>
1919
#include <map>
20+
#include <memory>
2021

2122
/* SOT */
2223
#include <pinocchio/fwd.hpp>
@@ -29,6 +30,7 @@
2930
#include <sot/core/matrix-geometry.hh>
3031
/* Matrix */
3132
#include <dynamic-graph/linear-algebra.h>
33+
#include <sot/dynamic-pinocchio/deprecated.hh>
3234

3335
/* PINOCCHIO */
3436
#include <pinocchio/macros.hpp>
@@ -80,7 +82,7 @@ class SOTDYNAMIC_EXPORT DynamicPinocchio : public dg::Entity {
8082

8183
/* --- MODEL ATRIBUTES --- */
8284
pinocchio::Model* m_model;
83-
pinocchio::Data* m_data;
85+
std::unique_ptr<pinocchio::Data> m_data;
8486

8587
/* --- MODEL ATRIBUTES --- */
8688

@@ -164,7 +166,15 @@ class SOTDYNAMIC_EXPORT DynamicPinocchio : public dg::Entity {
164166

165167
void setModel(pinocchio::Model*);
166168

167-
void setData(pinocchio::Data*);
169+
void createData();
170+
171+
/// \deprecated this function does nothing. This class has its own
172+
/// pinocchio::Data object, which can be access with \ref getData.
173+
void setData(pinocchio::Data*) SOT_DYNAMIC_PINOCCHIO_DEPRECATED;
174+
175+
pinocchio::Model* getModel() { return m_model; };
176+
177+
pinocchio::Data* getData() { return m_data.get(); };
168178

169179
/* --- GETTERS --- */
170180

package.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<package format="2">
22
<name>sot-dynamic-pinocchio</name>
3-
<version>3.5.2</version>
3+
<version>3.6.0</version>
44
<description>
55
Pinocchio bindings for dynamic-graph
66
</description>

src/CMakeLists.txt

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,15 @@ FOREACH(plugin ${plugins})
3939

4040
IF(BUILD_PYTHON_INTERFACE)
4141
STRING(REPLACE - _ PYTHON_LIBRARY_NAME ${LIBRARY_NAME})
42-
DYNAMIC_GRAPH_PYTHON_MODULE("${PYTHON_DIR}/${PYTHON_LIBRARY_NAME}"
43-
${LIBRARY_NAME} ${PROJECT_NAME}-${PYTHON_LIBRARY_NAME}-wrap
44-
1 "src/python-module-py.cpp")
45-
TARGET_LINK_BOOST_PYTHON(${PROJECT_NAME}-${PYTHON_LIBRARY_NAME}-wrap)
42+
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${plugin}-python-module-py.cc")
43+
DYNAMIC_GRAPH_PYTHON_MODULE("${PYTHON_DIR}/${PYTHON_LIBRARY_NAME}"
44+
${LIBRARY_NAME} ${PROJECT_NAME}-${PYTHON_LIBRARY_NAME}-wrap
45+
SOURCE_PYTHON_MODULE "${CMAKE_CURRENT_SOURCE_DIR}/${plugin}-python-module-py.cc")
46+
elseif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${plugin}-python.hh")
47+
DYNAMIC_GRAPH_PYTHON_MODULE("${PYTHON_DIR}/${PYTHON_LIBRARY_NAME}"
48+
${LIBRARY_NAME} ${PROJECT_NAME}-${PYTHON_LIBRARY_NAME}-wrap
49+
MODULE_HEADER "${CMAKE_CURRENT_SOURCE_DIR}/${plugin}-python.hh")
50+
endif()
4651
ENDIF(BUILD_PYTHON_INTERFACE)
4752
ENDFOREACH(plugin)
4853

src/angle-estimator-python.hh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#include <sot/dynamic-pinocchio/angle-estimator.h>
2+
3+
typedef boost::mpl::vector< dynamicgraph::sot::AngleEstimator > entities_t;

src/dynamic-command.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,7 @@ class GetJointNames : public Command {
7575
}
7676
const std::vector<std::string>& jointNames = robot.m_model->names;
7777
// Remove first joint names 'universe'
78-
std::size_t n(jointNames.size());
79-
assert(n >= 1);
78+
assert(jointNames.size() >= 1);
8079
std::vector<Value> res;
8180
for (std::size_t i = 1; i < jointNames.size(); ++i) {
8281
res.push_back(Value(jointNames[i]));

src/dynamic-python-module-py.cc

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
#include <dynamic-graph/python/module.hh>
2+
3+
#include <sot/dynamic-pinocchio/dynamic-pinocchio.h>
4+
5+
namespace dg = dynamicgraph;
6+
namespace dgs = dynamicgraph::sot;
7+
8+
typedef bp::return_value_policy<bp::reference_existing_object> reference_existing_object;
9+
10+
BOOST_PYTHON_MODULE(wrap)
11+
{
12+
bp::import("dynamic_graph");
13+
bp::import("pinocchio");
14+
15+
dg::python::exposeEntity<dgs::DynamicPinocchio, bp::bases<dg::Entity>, dg::python::AddCommands>()
16+
.add_property("model",
17+
bp::make_function(&dgs::DynamicPinocchio::getModel, reference_existing_object()),
18+
bp::make_function(&dgs::DynamicPinocchio::setModel))
19+
.add_property("data",
20+
bp::make_function(&dgs::DynamicPinocchio::getData, reference_existing_object()),
21+
bp::make_function(&dgs::DynamicPinocchio::setData))
22+
.def("setModel", &dgs::DynamicPinocchio::setModel)
23+
.def("createData", &dgs::DynamicPinocchio::createData)
24+
.def("setData", &dgs::DynamicPinocchio::setData)
25+
;
26+
}

src/dynamic_graph/sot/dynamic_pinocchio/__init__.py

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,7 @@
11
import numpy as np
22
from numpy import cos, sin, sqrt
33

4-
from .dynamic import DynamicPinocchio as DynamicCpp
5-
6-
# DynamicOld = Dynamic
7-
8-
9-
class DynamicPinocchio(DynamicCpp):
10-
def __init__(self, name):
11-
DynamicCpp.__init__(self, name)
12-
self.model = None
13-
self.data = None
14-
15-
def setData(self, pinocchio_data):
16-
dynamic.wrap.set_pinocchio_data(self.obj, pinocchio_data) # noqa TODO
17-
self.data = pinocchio_data
18-
return
19-
20-
def setModel(self, pinocchio_model):
21-
dynamic.wrap.set_pinocchio_model(self.obj, pinocchio_model) # noqa TODO
22-
self.model = pinocchio_model
23-
return
24-
4+
from .dynamic import DynamicPinocchio
255

266
def fromSotToPinocchio(q_sot, freeflyer=True):
277
if freeflyer:

0 commit comments

Comments
 (0)