MeshCatMechanisms.jl icon indicating copy to clipboard operation
MeshCatMechanisms.jl copied to clipboard

`Animation()` not working

Open dev10110 opened this issue 3 years ago • 1 comments

Hi,

Ive been trying to follow the example at

https://github.com/JuliaRobotics/MeshCatMechanisms.jl/blob/master/examples/demo.ipynb

but the animations don't work.

The error message is below. Tested on a Mac, in IJulia, running Julia 1.7.2

If anyone could help point me towards the issue I can try to help fix the bug.

Thanks Dev

MethodError: no method matching StaticArrays.Size(::TypeVar)
Closest candidates are:
  StaticArrays.Size(::Union{StaticArrays.Dynamic, Int64}...) at ~/.julia/packages/StaticArrays/0T5rI/src/traits.jl:67
  StaticArrays.Size(::StaticArrays.TSize{S}) where S at ~/.julia/packages/StaticArrays/0T5rI/src/matrix_multiply_add.jl:194
  StaticArrays.Size(::Tuple{Vararg{Union{StaticArrays.Dynamic, Int64}}}) at ~/.julia/packages/StaticArrays/0T5rI/src/traits.jl:66
  ...

Stacktrace:
  [1] call
    @ ~/.julia/packages/Cassette/34vIw/src/context.jl:456 [inlined]
  [2] fallback
    @ ~/.julia/packages/Cassette/34vIw/src/context.jl:454 [inlined]
  [3] _overdub_fallback(::Any, ::Vararg{Any})
    @ ~/.julia/packages/Cassette/34vIw/src/overdub.jl:586 [inlined]
  [4] overdub
    @ ~/.julia/packages/Cassette/34vIw/src/overdub.jl:586 [inlined]
  [5] StaticArrays.Size(::Type{StaticArrays.SVector})
    @ ~/.julia/packages/StaticArrays/0T5rI/src/traits.jl:90 [inlined]
  [6] overdub
    @ ~/.julia/packages/StaticArrays/0T5rI/src/traits.jl:90 [inlined]
  [7] overdub(::Cassette.Context{nametype(AnimationCtx), Tuple{Animation, Int64}, Nothing, Cassette.var"##PassType#301", Nothing, Nothing}, ::Type{StaticArrays.Size}, ::Type{StaticArrays.SVector})
    @ Cassette ~/.julia/packages/Cassette/34vIw/src/overdub.jl:0
  [8] size(::Type{StaticArrays.SVector})
    @ ~/.julia/packages/StaticArrays/0T5rI/src/abstractarray.jl:4 [inlined]
  [9] overdub
    @ ~/.julia/packages/StaticArrays/0T5rI/src/abstractarray.jl:4 [inlined]
 [10] overdub(::Cassette.Context{nametype(AnimationCtx), Tuple{Animation, Int64}, Nothing, Cassette.var"##PassType#301", Nothing, Nothing}, ::typeof(size), ::Type{StaticArrays.SVector})
    @ Cassette ~/.julia/packages/Cassette/34vIw/src/overdub.jl:0
 [11] overdub
    @ ~/.julia/packages/StaticArrays/0T5rI/src/convert.jl:114 [inlined]
 [12] overdub(::Cassette.Context{nametype(AnimationCtx), Tuple{Animation, Int64}, Nothing, Cassette.var"##PassType#301", Nothing, Nothing}, ::typeof(StaticArrays.length_match_size), ::Type{StaticArrays.SVector}, ::StaticArrays.Args{Tuple{Float64, Float64, Float64}})
    @ Cassette ~/.julia/packages/Cassette/34vIw/src/overdub.jl:0
 [13] adapt_size(::Type{StaticArrays.SVector}, ::StaticArrays.Args{Tuple{Float64, Float64, Float64}})
    @ ~/.julia/packages/StaticArrays/0T5rI/src/convert.jl:86 [inlined]
 [14] overdub
    @ ~/.julia/packages/StaticArrays/0T5rI/src/convert.jl:86 [inlined]
 [15] overdub(::Cassette.Context{nametype(AnimationCtx), Tuple{Animation, Int64}, Nothing, Cassette.var"##PassType#301", Nothing, Nothing}, ::typeof(StaticArrays.adapt_size), ::Type{StaticArrays.SVector}, ::StaticArrays.Args{Tuple{Float64, Float64, Float64}})
    @ Cassette ~/.julia/packages/Cassette/34vIw/src/overdub.jl:0
 [16] construct_type(::Type{StaticArrays.SVector}, ::StaticArrays.Args{Tuple{Float64, Float64, Float64}})
    @ ~/.julia/packages/StaticArrays/0T5rI/src/convert.jl:79 [inlined]
 [17] overdub
    @ ~/.julia/packages/StaticArrays/0T5rI/src/convert.jl:79 [inlined]
 [18] overdub(::Cassette.Context{nametype(AnimationCtx), Tuple{Animation, Int64}, Nothing, Cassette.var"##PassType#301", Nothing, Nothing}, ::typeof(StaticArrays.construct_type), ::Type{StaticArrays.SVector}, ::StaticArrays.Args{Tuple{Float64, Float64, Float64}})
    @ Cassette ~/.julia/packages/Cassette/34vIw/src/overdub.jl:0
 [19] (StaticArrays.SVector)(::Float64, ::Float64, ::Float64)
    @ ~/.julia/packages/StaticArrays/0T5rI/src/convert.jl:152 [inlined]
 [20] overdub
    @ ~/.julia/packages/StaticArrays/0T5rI/src/convert.jl:152 [inlined]
 [21] translation(::Transform3D{Float64})
    @ ~/.julia/packages/RigidBodyDynamics/8B04X/src/spatial/transform3d.jl:50 [inlined]
 [22] overdub
    @ ~/.julia/packages/RigidBodyDynamics/8B04X/src/spatial/transform3d.jl:50 [inlined]
 [23] overdub
    @ ~/.julia/packages/RigidBodyDynamics/8B04X/src/spatial/transform3d.jl:68 [inlined]
 [24] overdub(::Cassette.Context{nametype(AnimationCtx), Tuple{Animation, Int64}, Nothing, Cassette.var"##PassType#301", Nothing, Nothing}, ::typeof(inv), ::Transform3D{Float64})
    @ Cassette ~/.julia/packages/Cassette/34vIw/src/overdub.jl:0
 [25] overdub
    @ ~/.julia/packages/RigidBodyDynamics/8B04X/src/mechanism_state.jl:1013 [inlined]
 [26] overdub(::Cassette.Context{nametype(AnimationCtx), Tuple{Animation, Int64}, Nothing, Cassette.var"##PassType#301", Nothing, Nothing}, ::typeof(relative_transform), ::MechanismState{Float64, Float64, Float64, TypeSortedCollections.TypeSortedCollection{Tuple{Vector{Joint{Float64, Revolute{Float64}}}}, 1}}, ::CartesianFrame3D, ::CartesianFrame3D)
    @ Cassette ~/.julia/packages/Cassette/34vIw/src/overdub.jl:0
 [27] overdub
    @ ~/.julia/packages/MeshCatMechanisms/PfrGE/src/visualizer.jl:146 [inlined]
 [28] overdub(::Cassette.Context{nametype(AnimationCtx), Tuple{Animation, Int64}, Nothing, Cassette.var"##PassType#301", Nothing, Nothing}, ::typeof(MeshCatMechanisms._render_state!), ::MechanismVisualizer{MechanismState{Float64, Float64, Float64, TypeSortedCollections.TypeSortedCollection{Tuple{Vector{Joint{Float64, Revolute{Float64}}}}, 1}}, Visualizer}, ::MechanismState{Float64, Float64, Float64, TypeSortedCollections.TypeSortedCollection{Tuple{Vector{Joint{Float64, Revolute{Float64}}}}, 1}})
    @ Cassette ~/.julia/packages/Cassette/34vIw/src/overdub.jl:0
 [29] _render_state!(::MechanismVisualizer{MechanismState{Float64, Float64, Float64, TypeSortedCollections.TypeSortedCollection{Tuple{Vector{Joint{Float64, Revolute{Float64}}}}, 1}}, Visualizer})
    @ ~/.julia/packages/MeshCatMechanisms/PfrGE/src/visualizer.jl:135 [inlined]
 [30] overdub
    @ ~/.julia/packages/MeshCatMechanisms/PfrGE/src/visualizer.jl:135 [inlined]
 [31] overdub
    @ ~/.julia/packages/MeshCatMechanisms/PfrGE/src/visualizer.jl:168 [inlined]
 [32] overdub(::Cassette.Context{nametype(AnimationCtx), Tuple{Animation, Int64}, Nothing, Cassette.var"##PassType#301", Nothing, Nothing}, ::typeof(set_configuration!), ::MechanismVisualizer{MechanismState{Float64, Float64, Float64, TypeSortedCollections.TypeSortedCollection{Tuple{Vector{Joint{Float64, Revolute{Float64}}}}, 1}}, Visualizer}, ::Vector{Float64})
    @ Cassette ~/.julia/packages/Cassette/34vIw/src/overdub.jl:0
 [33] (::MeshCatMechanisms.var"
    @ ~/.julia/packages/MeshCatMechanisms/PfrGE/src/animate.jl:45 [inlined]
 [34] overdub
    @ ~/.julia/packages/MeshCatMechanisms/PfrGE/src/animate.jl:45 [inlined]
 [35] overdub(overdub_context#299::Cassette.Context{nametype(AnimationCtx), Tuple{Animation, Int64}, Nothing, Cassette.var"##PassType#301", Nothing, Nothing}, overdub_arguments#300::MeshCatMechanisms.var"#5#6"{MechanismVisualizer{MechanismState{Float64, Float64, Float64, TypeSortedCollections.TypeSortedCollection{Tuple{Vector{Joint{Float64, Revolute{Float64}}}}, 1}}, Visualizer}, Interpolations.GriddedInterpolation{Vector{Float64}, 1, SegmentedVector{JointID, Float64, Base.OneTo{JointID}, Vector{Float64}}, Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}, Tuple{Vector{Float64}}}, Float64})
    @ Cassette ~/.julia/packages/Cassette/34vIw/src/overdub.jl:0
 [36] atframe
    @ ~/.julia/packages/MeshCat/oC0sL/src/atframe.jl:100 [inlined]
 [37] Animation(mvis::MechanismVisualizer{MechanismState{Float64, Float64, Float64, TypeSortedCollections.TypeSortedCollection{Tuple{Vector{Joint{Float64, Revolute{Float64}}}}, 1}}, Visualizer}, times::Vector{Float64}, configurations::Vector{SegmentedVector{JointID, Float64, Base.OneTo{JointID}, Vector{Float64}}}; fps::Int64)
    @ MeshCatMechanisms ~/.julia/packages/MeshCatMechanisms/PfrGE/src/animate.jl:44
 [38] Animation(mvis::MechanismVisualizer{MechanismState{Float64, Float64, Float64, TypeSortedCollections.TypeSortedCollection{Tuple{Vector{Joint{Float64, Revolute{Float64}}}}, 1}}, Visualizer}, times::Vector{Float64}, configurations::Vector{SegmentedVector{JointID, Float64, Base.OneTo{JointID}, Vector{Float64}}})
    @ MeshCatMechanisms ~/.julia/packages/MeshCatMechanisms/PfrGE/src/animate.jl:37
 [39] top-level scope
    @ In[10]:1
 [40] eval
    @ ./boot.jl:373 [inlined]
 [41] include_string(mapexpr::typeof(REPL.softscope), mod::Module, code::String, filename::String)
    @ Base ./loading.jl:1196

1


dev10110 avatar Jun 15 '22 01:06 dev10110

Hi @dev10110, can you try to downgrade the version of StaticArrays.jl and see if that fixes the issue?

] add [email protected]

ferrolho avatar Jun 22 '22 21:06 ferrolho

Closing this issue as it has been fixed. See https://github.com/JuliaArrays/StaticArrays.jl/issues/1047#issuecomment-1181610210.

ferrolho avatar Oct 10 '24 10:10 ferrolho