JuliaComputing / Multibody.jl

Other
7 stars 0 forks source link

add utility to build kinematics functions that don't require full state #69

Open baggepinnen opened 3 months ago

baggepinnen commented 3 months ago

Currently a draft since the current implementation is dangerous, it does not check whether all variables that actually matter are provided.

Better would be to make use of

joint_coordinates = [
    robot.mechanics.r1.phi
    robot.mechanics.r2.phi
    robot.mechanics.r3.phi
    robot.mechanics.r4.phi
    robot.mechanics.r5.phi
    robot.mechanics.r6.phi
]

# joint_coordinates = ModelingToolkit.unknowns(ssys.state.sys)[end-5:end] |> reverse # This gives Vector{JuliaSimCompiler.ADT.IRElement} but doesn't work either
fkine = JuliaSimCompiler.build_explicit_observed_function(ssys, output, unknowns=joint_coordinates)
q = rand(6)
fkine(q, prob.p, 0)

as mentioned in #68, but this appears buggy