Comments (8)
Hello Martin,
Thanks for your report.
I tried your code on my computer (Mac OS X 10.10, llvm 3.4, Eigen 3.2.5, last commit of Pinocchio on the devel branch 227a4cd) and everything looks fine with very small residues:
Model: ../pin-fix-bug/models/simple_humanoid.urdf
--
Stats | #q | #qdot
Pinocchio | 36 | 35
--
Error M[0:6,0:6]
[[ 0.00e+00 0.00e+00 0.00e+00 -0.00e+00 1.24e-14 -0.00e+00]
[ 0.00e+00 0.00e+00 0.00e+00 1.78e-15 -0.00e+00 -1.42e-14]
[ 0.00e+00 0.00e+00 -1.71e-13 0.00e+00 -2.13e-13 -0.00e+00]
[ -0.00e+00 1.78e-15 1.42e-14 1.42e-14 0.00e+00 4.44e-16]
[ -5.33e-15 -0.00e+00 -1.07e-14 -3.55e-15 -1.42e-14 -7.33e-15]
[ -3.55e-15 0.00e+00 -0.00e+00 4.44e-16 -3.77e-15 -7.11e-15]]
Error M[0:6,6:12]
[[ 0.00e+00 1.24e-14 6.38e-16 4.44e-15 2.50e-15 0.00e+00]
[ 0.00e+00 0.00e+00 -3.52e-15 0.00e+00 0.00e+00 -2.55e-15]
[ -1.78e-13 -7.46e-14 0.00e+00 -7.46e-14 -7.46e-14 0.00e+00]
[ 1.78e-15 -5.58e-15 -4.41e-15 -5.58e-15 -5.58e-15 -3.33e-15]
[ 4.34e-19 -7.11e-15 -2.69e-15 -5.33e-15 -4.88e-15 0.00e+00]
[ 2.66e-15 -2.11e-15 1.78e-15 1.22e-15 1.55e-15 -7.08e-16]]
Can you give me your current configuration in order to reproduce your errors ?
Best,
from pinocchio.
Hello Martin,
Here are some results on an Ubuntu 12.04 64 bits, with gcc 4.6.3, eigen 3.2.1.
They come from the master branch (release v1.0.2), but i get the same matrices on the devel branch.
Model: /local/fvalenza/devel/src/pinocchio/models/simple_humanoid.urdf
--
Stats | #q | #qdot
Pinocchio | 29 | 29
--
Error M[0:6,0:6]
[[ 0.00e+00 0.00e+00 4.72e-16 0.00e+00 0.00e+00 2.22e-16]
[ 0.00e+00 0.00e+00 -2.78e-17 0.00e+00 8.88e-16 0.00e+00]
[ 2.78e-17 -2.78e-17 0.00e+00 0.00e+00 0.00e+00 1.80e-16]
[ 0.00e+00 1.78e-15 0.00e+00 0.00e+00 8.88e-16 0.00e+00]
[ 0.00e+00 4.44e-16 0.00e+00 0.00e+00 8.88e-16 0.00e+00]
[ 0.00e+00 0.00e+00 -4.16e-17 0.00e+00 0.00e+00 0.00e+00]]
Error M[0:6,6:12]
[[ 0. 0. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 0. 0.]]
With the FreeFlyer :
Model: /local/fvalenza/devel/src/pinocchio/models/simple_humanoid.urdf
--
Stats | #q | #qdot
Pinocchio | 36 | 35
--
Error M[0:6,0:6]
[[ 0.00e+00 0.00e+00 0.00e+00 -0.00e+00 1.24e-14 -0.00e+00]
[ 0.00e+00 0.00e+00 0.00e+00 1.78e-15 -0.00e+00 -1.42e-14]
[ 0.00e+00 0.00e+00 -1.71e-13 0.00e+00 -2.13e-13 -0.00e+00]
[ -0.00e+00 1.78e-15 1.42e-14 1.42e-14 0.00e+00 4.44e-16]
[ -5.33e-15 -0.00e+00 -1.07e-14 -3.55e-15 -1.42e-14 -7.33e-15]
[ -3.55e-15 0.00e+00 -0.00e+00 4.44e-16 -3.77e-15 -7.11e-15]]
Error M[0:6,6:12]
[[ 0.00e+00 1.24e-14 6.38e-16 4.44e-15 2.50e-15 0.00e+00]
[ 0.00e+00 0.00e+00 -3.52e-15 0.00e+00 0.00e+00 -2.55e-15]
[ -1.78e-13 -7.46e-14 0.00e+00 -7.46e-14 -7.46e-14 0.00e+00]
[ 1.78e-15 -5.58e-15 -4.41e-15 -5.58e-15 -5.58e-15 -3.33e-15]
[ 4.34e-19 -7.11e-15 -2.69e-15 -5.33e-15 -4.88e-15 0.00e+00]
[ 2.66e-15 -2.11e-15 1.78e-15 1.22e-15 1.55e-15 -7.08e-16]]
I get the same results as Justin when using clang
from pinocchio.
I believe I had the same problem, it comes from se3::Symmetric3Tpl::rotate (I thought i was fixed).
// Y = R' L ===> (12 m + 8 a)
const Matrix2 & Y = R.template block<2,3>(1,0) * L; // Wrong
const Matrix2 Y(R.template block<2,3>(1,0) * L); // Correct
@martinfelis Could you check?
from pinocchio.
Hrmm.... I am on:
- Ubuntu 14.04
- g++ (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4
- eigenpy 5b9029e7d59
- libeigen3-dev 3.2.0-8
Both master and devel branch give the same results. The culprit seems to be using Release mode. In Debug mode the errors are negligible.
from pinocchio.
It seems that this error already occurred for @aelkhour but was never fixed as @aelkhour switched to clang as far as I remember.
@martinfelis does the line
const Matrix2 Y(R.template block<2,3>(1,0) * L);
fixe your problem ?
In this way, we will fix this line in order to really control the compiler behavior.
from pinocchio.
It does indeed.
from pinocchio.
Thanks Martin for reporting and checking. Thanks Antonio for highlighting the buggy line. The bug is now fixed (2bd39d8).
from pinocchio.
Thanks for the hotfix @jcarpent and @fvalenza.
from pinocchio.
Related Issues (20)
- Ros related compatibility issues HOT 1
- Build error when installing with pip HOT 16
- Memory alignment issue when instantiating Data with AVX2 HOT 14
- undefined reference to `boost::filesystem::detail::path_algorithms::find_root_directory` HOT 3
- the document cannot be dispalyed properly HOT 1
- About \dot {q} in Pinocchio HOT 1
- Wrong derivatives of constraintDynamics
- Pinocchio 3.x Documentation HOT 1
- Building 3.0.0 on OSX fails HOT 8
- Allow to choose build options to accelerate build in PR
- Homogenize internal namespace
- Use real ubuntu image in linux.yml worflow
- Add OpenUSD support
- Merge C++/Python context
- Find a way to use different explicit template instantiation C++ library in the same program
- Use boost::variant Python binding to bind JointModel and JointData
- Remove C++ warnings
- Parsing urdf - breaking change 2.7 - 3.0 HOT 3
- Installation of pinocchio 3.0 HOT 4
- pinocchio 3.0.0 build failure HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pinocchio.