I'm working with a lifesize (~130cm) humanoid robot (Hubo+) and looking for a way to easily program new motions and gestures into him. Obviously, I could write my own tool, but I am looking for a solution that can leverage existing tools or standards for robot motion. My first thought was trying to use animation software like Blender or Maya, and writing a script to extract the joint angles at keyframes. However, few robotics researchers are probably proficient with Maya. (I know I'm not!)

Is there already some kind of 3D posing tool for robotics that is a standard? The only things I have seen so far that comes close is the Pose Utility in RoboPlus and Choregraphe for the Nao, but both programs seem limited to particular robots and don't appear to be extendable to Hubo.

So my questions are:

  • Are there standard file formats for robot motion? Not 2D wheeled robot motion. Arm and leg motion! Something equivalent to the .bvh file format used in motion capture.
  • Do you know of any WYSIWYGish tool for creating robot motion using keyframes and inverse kinematics?
  • $\begingroup$ Welcome to Stack Exchange William, I've edited out your thanks since they aren't really needed on stack exchange questions and just distract people from the question itself. We default to thinking well of people, so we just assume people will be grateful when others help out with comments and answers. *8') $\endgroup$
    – Mark Booth
    Commented Jan 22, 2013 at 20:47
  • 3
    $\begingroup$ For what it's worth, for humanoid virtual models there exists the H-Anim standard. And while few roboticists know Maya, Blender is indeed finding use in robotics projects $\endgroup$
    – ThomasH
    Commented Jan 23, 2013 at 1:24
  • $\begingroup$ @mark-booth, That is a very healthy attitude I think! $\endgroup$ Commented Jan 23, 2013 at 2:59
  • $\begingroup$ @ThomasH, I registered for the Blender Robotics mailing list the other day, actually! I had not seen their wiki page though, thank you. $\endgroup$ Commented Jan 23, 2013 at 2:59
  • 1
    $\begingroup$ Have you seen this? coppeliarobotics.com $\endgroup$
    – Shahbaz
    Commented Mar 25, 2013 at 18:17

2 Answers 2


The short answer is that I don't think a good standardized motion file format exists and I don't think there are any good generic wysiwyg robot posing tools. Some level of custom programming is going to be required.

RE: Standard file formats for robot motion

Collada is meant as a standardized 3D data interchange file format, and it has support for storing basic animation and physics type information with a model. Support is not consistent across tools though, especially for the animation/physics data.

Beyond that, it's unlikely you'll find any general use file formats for storing robotic animation. (Although not 100% comparable, check out the wikipedia list of motion/gesture file formats.) Everything I have seen is specific to the platform and/or proprietary. Consider that the game and CAD industries are orders of magnitude larger and more specific than robotics. They have similar requirements, yet there is no defacto file format.

If you are interested in a more programmatic view of the data by these proprietary systems though, then looking at the specialized tools used by these industries might give you some additional options and ideas. Examples:

The creation, storage, and execution of character animation (often humanoid), in particular, is well represented and very advanced in the game development industry. For a price. I believe most of the larger studios have an entire team dedicated to doing nothing more than converting data from one system to another and feeding it through a production pipeline.

One recurring problem with using game development tools (or creative type 3D tools in general) for robotics is that in games/movies, is that it's usually okay if the animation doesn't model reality exactly. That can cause issues when applied to real world robots.

RE: Posing Tools

Robotic simulators (like Coppelia's V-REP or even MS Robotics Studio) might be of use if they provided an API/export of some sort and were able to simulate humanoid type robots. I don't know of any that support a full humanoid model though. Most are just for modelling arms and wheeled robots. Still, perhaps you could model your humanoid movements as an collection of independent arm subsystems? i.e. The left leg is one robotic arm. If so, then a few more wsyiwyg tools would be open to you.

Flowstone is another visual tool that could be used for posing, but probably not the wysiwyg that you had in mind.

If you don't need WYSIWYG and are open to some programming, you might want to check out PyPose and Nuke.

Similarly, but requiring more advanced programming, various physics engines might be of interest for taking in all the inputs (3D models and associated parameters) and then providing movement results by applying forces and inverse kinematics. Examples include ODE and Bullet physics. A similar programmatic slanted option would be to use ROS. I've seen a few projects and notes regarding potential ROS support for humanoid type motions.

All that said... although difficult to learn, I still think Blender3D has potential to be one of the better all around options for advanced hobbiest type robotics posing and motion work, particularly due to it's tight integration with the Python programming language. Someone already pointed out the Blender Robotics wiki in the comments. You should also review Grantlo321's YouTube video using blender to control servos playing a piano, as well as the blog post by Justin Daily where he describes using Blender/Python for servo control. I agree that Blender3D is hard to learn, but that is likely going to be true with almost any 3D wysiwyg type software unless it's focus is very narrow.


If you want to Design your robot you can use SolidWork, CATIA or ADAMS software then you can animate your robot. But you can use Aldebaran standard platform robot (NAO) simulator. This simulator can be helpful for you but NAO robot is a kid size robot with good sensors.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.