Thank you Chananya. So if my understanding is correct, what I have to do is to bring the model into another software more suitable for animation (such as blender), define the skeleton there, export the model in one of the formats supported by assimp, and try do do skeletal animation in my code exploiting assimp.
Am I right?

Thank you very much again

Francesco



2014-06-03 17:54 GMT+02:00 Chananya Freiman <spectralcanine@gmail.com>:
tl:dr answer: yes, skeletal animations are what you want.

Long answer:
There are two common (are there others?) ways to animate things. Vertex animations, and skeletal animations.
Vertex animations means you hold N frames of your whole geometry, and you just select the correct one. This uses a lot of memory, but requires no processing at real-time.
Skeletal animations uses matrices in a hierarchy representing your model's "skeleton", and every vertex has information as to what matrices affect it, and how much they affect it (by using weights). This requires only a single frame of your geometry, which is usually called the bind pose (but many people call it in many different names, go figure), but it requires processing at real-time to do many matrix-vector multiplications.

These days the concept of vertex animations is almost never used for two reasons:
1) They consume way too much memory. Imagine a 20K triangle mesh duplicated over thousands of frames.
2) The cost of running skeletal animation is negligible when running on the GPU, unlike olden days when it ran on the CPU and took a considerate chunk of the frame time.

That said, vertex animations still exist on low-end platforms such as simple phones that don't support OpenGL ES 2, where you can't use shaders, and thus can't run it on the GPU. In this case, especially with the weak processors these platforms have, the cost of running skeletal animations might be greater than the cost of consuming more memory, especially since most of the models on said platforms are really low poly and have very little frames to begin with.

------

Now, as to how to actually get this done, SolidWorks doesn't support any kind of animation (beside really primitive key'ing), so you will need to export your model to a modeling software (e.g. 3ds Max, Blender) and finalize the model there.


On Tue, Jun 3, 2014 at 6:17 PM, Francesco Corucci <f.corucci@gmail.com> wrote:

Hi guys,

I have a Solid Works model of a robot arm, and I would like to be able to set joint positions in order to move the arm in assimp. Particularly, the arm features some pistons (linear actuators) as well as some rotational joints.

Concerning animation in assimp, I've read something related to skeletal animation.
Is this the way to do what I want to do (move rigid parts connected by joints) or there is a better/simpler way? Skeletal animation seems to do a harder work with respect to what I need.

Also, should the CAD model feature something particular in order to make this kind of animation possible? Should I work with specific formats in order to be able to do this?

Could you please provide some hints? I am very new to this stuff

Every suggestion/comment is highly appreciated

Thank you, 

Francesco


------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/NeoTech
_______________________________________________
Assimp-discussions mailing list
Assimp-discussions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/assimp-discussions