Skip to content

liyingzhi/phobos

 
 

Repository files navigation

Phobos (0.7)

Phobos is an add-on for the open-source 3D modeling software Blender. It uses Blender's powerful Python scripting API to extend Blender with GUI-supported tools that simplify the creation and modification of robot models for use in real-time simulations such as MARS or Gazebo. It is both possible to create robots from scratch as well as to derive them from exported CAD data - and Phobos allows to export completed models in formats such as URDF (widely used in ROS) and SMURF (the DFKI's versatile robot data format based on URDF). Meshes can currently be exported as .stl, Wavefront (.obj) and binary Wavefront (.bobj) for quicker importing into the MARS Simulation.

Phobos was initiated and is currently developed at the Robotics Innovation Center of the German Research Center for Artificial Intelligence (DFKI) in Bremen, together with the robotics group of the University of Bremen.

You can find our user documentation in the wiki and our source documentation on our github page.

Model of the SpaceClimber robot in Blender, next to the Phobos toolbar displayed on the left.

Model of the SpaceClimber robot in Blender, next to the Phobos toolbar displayed on the left.

Robot representation

Phobos makes use of Blender's hierarchical object graph and its bone objects. These objects, normally used for animating 3D characters, allow to store 3D coordinate systems and apply constraints to their movements, for instance to restrict the movement of an object to a certain range on a specific axis. This allows to replicate the links and joints defined in a URDF model and together with the hierarchical tree of parent and child objects, the complete, branching kinematic chain of a robot can be represented. By attaching meshes or primitives to the bones, Phobos allows to add visual and collision objects to a model. Additional objects allow storing further information, e.g. centers of mass of each part of a robot, thus refining the physical representation. Sensor objects can be added to correctly place and orient devices such as laser scanners, cameras or contact sensors. Making use of Blender's custom object properties, any necessary information can be added to the model, from inertia tensors to opening angels of cameras.

Decomposition of the different elements from which Phobos models are composed in Blender.

Decomposition of the different elements from which Phobos models are composed in Blender. These elements can be arranged in Blender on different layers, thus avoiding confusion or obstruction of view when editing very complex models.

Features

  • Model error checking
  • Batch editing of object properties
  • Measurements (e.g. distance of parts, sum of masses)
  • Synchronization of mass information between different layers
  • Auto-generation of collision objects
  • Auto-generation of simplified inertia; combination of manually defined precise inertia
  • Online definition and testing of joint constraints
  • Sensor attachment to single or multiple parts of a robot
  • Import and export of URDF, SMURF and other formats
  • Exporting with defined floating point precision
  • Growing number of tutorials

License

Phobos is distributed under the GNU Lesser General Public License.

About

An add-on for Blender allowing editing and exporting of robots for the MARS simulation.

Resources

License

LGPL-3.0, GPL-3.0 licenses found

Licenses found

LGPL-3.0
COPYING.LESSER
GPL-3.0
COPYING

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 97.4%
  • Other 2.6%