Blender for Robotics

From Wiki for iCub and Friends
Jump to: navigation, search

Demos

Demo #1 image stream

In directory tutorials/yarp/simpleImageCapture/, there is an example of streaming images from blender via a yarp port. Here's a yarp viewer overlaid on a blender application in game mode:

Blender-yarp-image-stream.png

Demo #2 simpleTranslation

In directory tutorials/yarp/simpleTranslation/, Boris has an example of moving a cube around via a yarp port, with gravity turned off. There's also a demo in tutorials/yarp/jumpMonkeyJump/ with gravity turned on, where you can command a monkey to jump in the air and then watch it fall again.

Demo #3 wall following

In directory tutorials/yarp/wallFollow/, there is an example of commanding forward and turning motions, and using a vary basic proximity sensor. There is an example of implementing a wall following behavior directly within the game engine, or in a separate program via YARP.

Here's a quick animation of what the behavior looks like:

Suzanne-yarp-wall-follow.gif

Demo MISSING armatures

With the current version of blender, it seems tricky to figure out how to do real time control of armatures (blender's name for a series of jointed links).

Links

Key links:

Blender can be used today for creating 3D models for use with many robot simulators. With work, it can be used for realtime visualization of robot state, or as a simulator for some robotic scenarios; such applications are not yet easy to create, but there are people working on improving this.

(Recent) history of Blender for Robotics

Herman Bruyninckx has been pushing for use of Blender by robot folks for a while - see his Blender for Robotics Roadmap. There are Blender+Orocos demos.

Séverin Lemaignan recently set up a Blender for Robotics wiki and mailing list

And he made a cool demo with Blender+YARP:

Some people have been hired to specifically do Blender+Robotics stuff.

Benoit Bolsee is among other things, working on an extension/fix to Blender that is important for robotics applications: http://wiki.blender.org/index.php/Dev:Source/GameEngine/RobotIKSolver

Blender+YARP reference

There is hope to support multiple middlewares from Blender. There is some work on YARP so far (Severin's work, with some tips from Paul) via Python.

So far this work is quite crude. It operates via python. A regular YARP port is used to receive commands; "game engine" output is streamed to a port. This works but the OpenGL buffer grab operation seems a bit unstable.

Getting started with Blender

  • Make sure you have a three-button mouse (a clickable scrollbar on your mouse works too). If your mouse just has two buttons, you need to make a trip to the store. Trust me on this one. Using Blender is like playing an orchestra on your keyboard and mouse, and you need to have all the necessary instruments.
  • Download Blender from blender.org and install it.
  • Do not just try running it and fooling around with the controls like you might other programs. You will get nowhere.
  • Read the Blender User Interface Tutorial. Don't just skim it, read it and try it out. If you get confused with something, don't worry, just skip it and move on.
  • Watch some of the getting started videos: Interface Concept, 3D Viewport, and Vital Functions. Again, if you get confused with something, skip it.
  • Start dipping into the Noob to Pro wikibook. This is an excellent resource. Read as much as you have patience for, then skip to the beginner tutorials. I recommend the Modeling a Simple Person example. If you get stuck, skip.
  • Repeat the last three steps until enlightment starts to dawn. Then start working towards your particular interests by selecting and following relevant tutorials and manuals.

(links borrowed with permission).

Blender community