ModelingToolkit.jl / Multibody.jl with interpolated joint properties

Hello Julia community,

I am working on a multibody dynamics simulation, and was looking to use ModelingToolkit.jl along with Multibody.jl

The specific problem I am working on involves an externally solved mapping of joint variables to spatial coordinates via interpolation. My question is, does Multibody.jl or another library (preferably compatible with ModelingToolkit.jl) support an external definition for a joint’s behavior? From what I gathered it seems that Multibody.jl does not support this, but I am not too familiar with the package.

Upon reviewing the open issues, this package appears to be poorly maintained.

There is also Getting Started · Modia3D; however, it does not utilize ModelingToolkit and is also poorly maintained.

Multibody.jl is ongoing a very large refactoring to make use of the MTK compiler rather than the previous JuliaSimCompiler. Until this refactoring is done, the package is not officially working.

It sounds like the functionality you are looking for is “prescribed motion”?

Is the MTK compiler already released? Where is it documented? What are the main differences compared to JuliaSimCompiler?

The MTK compiler is what you are, and always have been, using if you’re using MTK normally, it’s invoked with mtkcompile. Multibody.jl used to use a different compiler.

Any way I (or others :slight_smile: ) could help with this refactoring?

The refactoring is mostly complete, it’s waiting to improvements to the MTK compiler that are work in progress.

I never used mtkcompile. I think that was introduced with MTK 10.x, I am still using MTK 9.x.

So you call structural_simplify instead. It’s the same function, it has only been renamed.

The package has been rereleased with a new name, now implemented in dyad, docs here

The link in the docs does not work: github.com/JuliaComputing/MultibodyComponents.jl
Is the repo public somewhere?

The repo is not available, but it has been released in DyadRegistry with a BSD3 license, so if you install it you get the source locally