-
Notifications
You must be signed in to change notification settings - Fork 417
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature: Support for Parsing MJCF equality/connect
Tag for Closed Chains
#2413
Feature: Support for Parsing MJCF equality/connect
Tag for Closed Chains
#2413
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👋 Hi,
This is a reminder message to assign an extra build label to this Pull Request if needed.
By default, this PR will be build with minimal build options (URDF support and Python bindings)
The possible extra labels are:
- build_collision (build Pinocchio with coal support)
- build_casadi (build Pinocchio with CasADi support)
- build_autodiff (build Pinocchio with CppAD support)
- build_codegen (build Pinocchio with CppADCodeGen support)
- build_extra (build Pinocchio with extra algorithms)
- build_mpfr (build Pinocchio with Boost.Multiprecision support)
- build_sdf (build Pinocchio with SDF parser)
- build_accelerate (build Pinocchio with APPLE Accelerate framework support)
- build_all (build Pinocchio with ALL the options stated above)
Thanks.
The Pinocchio development team.
Thanks @lvjonok for sharing this effort with the community. Indeed, at the time being, we only support limited features of MJCF format and we are looking for external contributions to enhance it. We give some feedback to you in the next following days to enhance your contribution. Thanks again for contributing to Pinocchio, Justin |
bba49c4
to
323dc8f
Compare
@lvjonok It seems the current parsing is not deterministic according to the current issue on the mjcf.cpp test. |
I found the issue, related to the use of unordered_map, which is system dependant. |
e4ab01a
to
4775bfa
Compare
## [3.3.0] - 2024-11-06 ### Added - Default visualizer can be changed with `PINOCCHIO_VIEWER` environment variable stack-of-tasks/pinocchio#2419 - Add more Python and C++ examples related to inverse kinematics with 3d tasks stack-of-tasks/pinocchio#2428 - Add parsing of equality/connect tag for closed-loop chains for MJCF format stack-of-tasks/pinocchio#2413 - Add compatibility with NumPy 2 `__array__` API stack-of-tasks/pinocchio#2436 - Added argument to let users decide of root joint name when parsing models (urdf, mjcf, sdf) stack-of-tasks/pinocchio#2402 - Allow use of `pathlib.Path | str` for paths in python bindings stack-of-tasks/pinocchio#2431 - Add Pseudo inertia and Log-cholesky parametrization stack-of-tasks/pinocchio#2296 - Add Pixi support stack-of-tasks/pinocchio#2459 ### Fixed - Fix linkage of Boost.Serialization on Windows stack-of-tasks/pinocchio#2400 - Fix mjcf parser appending of inertias at root joint stack-of-tasks/pinocchio#2403 - Fix unit tests with GCC 13.3 stack-of-tasks/pinocchio#2416) - Fix class abstract error for Rviz viewer stack-of-tasks/pinocchio#2425 - Fix compilation issue with MSCV and C++17 stack-of-tasks/pinocchio#2437 - Fix `pinocchio-test-py-robot_wrapper` when building with SDF and collision support stack-of-tasks/pinocchio#2437 - Fix crash when calling `Inertia::FromDynamicParameters` in Python with wrong vector size stack-of-tasks/pinocchio#2296 - Fix `examples/cassie-simulation.py` and `examples/talos-simulation.py` stack-of-tasks/pinocchio#2443 - Fix build with CppAd 2024 stack-of-tasks/pinocchio#2459 - Fix `pinocchio-test-cpp-mjcf` unittest with Boost 1.86 stack-of-tasks/pinocchio#2459 - Fix `pinocchio-test-cpp-constraint-variants` uninitialized values stack-of-tasks/pinocchio#2459 - Fix mixing library symbols between Pinocchio scalar bindings stack-of-tasks/pinocchio#2459 - Fix bug for get{Joint,Frame}JacobianTimeVariation stack-of-tasks/pinocchio#2466 ### Changed - Modernize python code base with ruff stack-of-tasks/pinocchio#2418 - Does not create a root_joint frame from parsed models (urdf, mjcf and sdf) when no root joint is provided stack-of-tasks/pinocchio#2402
## [3.3.0] - 2024-11-06 ### Added - Default visualizer can be changed with `PINOCCHIO_VIEWER` environment variable stack-of-tasks/pinocchio#2419 - Add more Python and C++ examples related to inverse kinematics with 3d tasks stack-of-tasks/pinocchio#2428 - Add parsing of equality/connect tag for closed-loop chains for MJCF format stack-of-tasks/pinocchio#2413 - Add compatibility with NumPy 2 `__array__` API stack-of-tasks/pinocchio#2436 - Added argument to let users decide of root joint name when parsing models (urdf, mjcf, sdf) stack-of-tasks/pinocchio#2402 - Allow use of `pathlib.Path | str` for paths in python bindings stack-of-tasks/pinocchio#2431 - Add Pseudo inertia and Log-cholesky parametrization stack-of-tasks/pinocchio#2296 - Add Pixi support stack-of-tasks/pinocchio#2459 ### Fixed - Fix linkage of Boost.Serialization on Windows stack-of-tasks/pinocchio#2400 - Fix mjcf parser appending of inertias at root joint stack-of-tasks/pinocchio#2403 - Fix unit tests with GCC 13.3 stack-of-tasks/pinocchio#2416) - Fix class abstract error for Rviz viewer stack-of-tasks/pinocchio#2425 - Fix compilation issue with MSCV and C++17 stack-of-tasks/pinocchio#2437 - Fix `pinocchio-test-py-robot_wrapper` when building with SDF and collision support stack-of-tasks/pinocchio#2437 - Fix crash when calling `Inertia::FromDynamicParameters` in Python with wrong vector size stack-of-tasks/pinocchio#2296 - Fix `examples/cassie-simulation.py` and `examples/talos-simulation.py` stack-of-tasks/pinocchio#2443 - Fix build with CppAd 2024 stack-of-tasks/pinocchio#2459 - Fix `pinocchio-test-cpp-mjcf` unittest with Boost 1.86 stack-of-tasks/pinocchio#2459 - Fix `pinocchio-test-cpp-constraint-variants` uninitialized values stack-of-tasks/pinocchio#2459 - Fix mixing library symbols between Pinocchio scalar bindings stack-of-tasks/pinocchio#2459 - Fix bug for get{Joint,Frame}JacobianTimeVariation stack-of-tasks/pinocchio#2466 ### Changed - Modernize python code base with ruff stack-of-tasks/pinocchio#2418 - Does not create a root_joint frame from parsed models (urdf, mjcf and sdf) when no root joint is provided stack-of-tasks/pinocchio#2402
## [3.3.0] - 2024-11-06 ### Added - Default visualizer can be changed with `PINOCCHIO_VIEWER` environment variable stack-of-tasks/pinocchio#2419 - Add more Python and C++ examples related to inverse kinematics with 3d tasks stack-of-tasks/pinocchio#2428 - Add parsing of equality/connect tag for closed-loop chains for MJCF format stack-of-tasks/pinocchio#2413 - Add compatibility with NumPy 2 `__array__` API stack-of-tasks/pinocchio#2436 - Added argument to let users decide of root joint name when parsing models (urdf, mjcf, sdf) stack-of-tasks/pinocchio#2402 - Allow use of `pathlib.Path | str` for paths in python bindings stack-of-tasks/pinocchio#2431 - Add Pseudo inertia and Log-cholesky parametrization stack-of-tasks/pinocchio#2296 - Add Pixi support stack-of-tasks/pinocchio#2459 ### Fixed - Fix linkage of Boost.Serialization on Windows stack-of-tasks/pinocchio#2400 - Fix mjcf parser appending of inertias at root joint stack-of-tasks/pinocchio#2403 - Fix unit tests with GCC 13.3 stack-of-tasks/pinocchio#2416) - Fix class abstract error for Rviz viewer stack-of-tasks/pinocchio#2425 - Fix compilation issue with MSCV and C++17 stack-of-tasks/pinocchio#2437 - Fix `pinocchio-test-py-robot_wrapper` when building with SDF and collision support stack-of-tasks/pinocchio#2437 - Fix crash when calling `Inertia::FromDynamicParameters` in Python with wrong vector size stack-of-tasks/pinocchio#2296 - Fix `examples/cassie-simulation.py` and `examples/talos-simulation.py` stack-of-tasks/pinocchio#2443 - Fix build with CppAd 2024 stack-of-tasks/pinocchio#2459 - Fix `pinocchio-test-cpp-mjcf` unittest with Boost 1.86 stack-of-tasks/pinocchio#2459 - Fix `pinocchio-test-cpp-constraint-variants` uninitialized values stack-of-tasks/pinocchio#2459 - Fix mixing library symbols between Pinocchio scalar bindings stack-of-tasks/pinocchio#2459 - Fix bug for get{Joint,Frame}JacobianTimeVariation stack-of-tasks/pinocchio#2466 ### Changed - Modernize python code base with ruff stack-of-tasks/pinocchio#2418 - Does not create a root_joint frame from parsed models (urdf, mjcf and sdf) when no root joint is provided stack-of-tasks/pinocchio#2402
Hello Pinocchio Team,
While working with the
buildModel
function, I noticed that when an SDF description is passed, it directly produces a vector ofRigidConstraintModel
s. However, themjcf
format, which also supports closed-chain descriptions, currently does not parse theequality/connect
tag.To address this, I have added a draft implementation to enable parsing of the
equality/connect
tag in themjcf
format. I believe this enhancement will ease the work for people who use it.Please feel free to review the draft implementation and share your feedback on its applicability to the Pinocchio library. I look forward to your comments!
Best regards,
Lev Kozlov