Issue #2582 resolved
Roselle Carmen
created an issue

Based on this bug report.:

https://bitbucket.org/osrf/gazebo/issues/2516/animated-model-distorted

I'm able to spawn the walk.dae model using the same sdf setup from this tutorial

Following the same format, I created a simple mesh with minimum animation using various 3d softwares. The following is the result of the error message received upon loading it into Gazebo.

1) Exported from 3ds max

[Wrn] [ColladaLoader.cc:241] <instance_controller> without a <skeleton> cannot be parsed
[Wrn] [Actor.cc:170] Collada file [test.DAE] does not contain skeletal animation.

2) Exported from the beta version of blender. Take note that there was a previously reported bug that is fixed in the new version.

[Err] [Connection.cc:546] Connection[0] Closed during Read
[Err] [ConnectionManager.cc:141] Unable to read from master
[Err] [gazebo_shared.cc:83] Unable to initialize transport.
[Err] [gazebo_client.cc:62] Unable to setup Gazebo

Attached are the files used for testing. They have been renamed to the appropriate software.

Comments (2)

  1. Steven Peters

    this fixes the collada loader so models from mixamo.com can be loaded correctly. It should also fix issue #2582.

    List of changes: - boost::split(words, line, boost::is_any_of(" ")) in BVHLoader.cc and ColladaLoader.cc looks like a bug as a result of tab being replaced with spaces, replaced boost::split(words, line, boost::is_any_of(" \t")); - Scale the skeleton according to the collada's meter parameter - Import the whole scene in a Collada file as an actor, because animations may target the scene outside the skeleton, this is required so some animations work correctly - Allow Skeleton to store data of raw node weights with multiple vertices group. The raw node weights are overwritten when loading a new submesh, while not strictly required becauses submeshes are load sequentially, it is probably more "correct" to have the full node weights available. - Map the animation to the target bone's name as opposed to the id (target bone is still chosen by the id). Since the skeleton nodes are identified by its name in the rendering process, mapping the animations to id may result in missing animations. - Fix loading <transparency> tag, gazebo uses 0 opaque, collada uses 1 opaque. Note that is is separate from the <transparent> tag where the color is defined in the opaque attribute. - Separate the positions and normals from the texture mapping buffers. When doing software skinning OGRE requires the positions and normal to be in their own buffers, see https://ogrecave.github.io/ogre/api/1.11/_animation.html under Vertex buffer arrangements.

    → <<cset 10f50fbe857e>>

  2. Log in to comment