All Projects → robotology → blender-robotics-utils

robotology / blender-robotics-utils

Licence: other
Set of utilities for exporting/controlling your robot in Blender

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to blender-robotics-utils

idyntree
Multibody Dynamics Library designed for Free Floating Robots
Stars: ✭ 109 (+319.23%)
Mutual labels:  urdf, urdf-parser
BlenderGameRig
Rigging framework for game development. Hard fork from Rigify.
Stars: ✭ 53 (+103.85%)
Mutual labels:  blender
Robotics-Object-Pose-Estimation
A complete end-to-end demonstration in which we collect training data in Unity and use that data to train a deep neural network to predict the pose of a cube. This model is then deployed in a simulated robotic pick-and-place task.
Stars: ✭ 153 (+488.46%)
Mutual labels:  urdf
neuro-bge
Node-based Blender game engine and logic editor addon for Blender
Stars: ✭ 27 (+3.85%)
Mutual labels:  blender
Blender-ArmorPaintLiveLink
This is a live-link tool to switch from Blender to ArmorPaint by only clicking in one button.
Stars: ✭ 86 (+230.77%)
Mutual labels:  blender
NS-illustration-pack
Package of 3D low poly illustrations created in a Blender
Stars: ✭ 28 (+7.69%)
Mutual labels:  blender
blendpresence
Discord RPC support for Blender 3.0
Stars: ✭ 81 (+211.54%)
Mutual labels:  blender
penny
3 servos, 10 dollars hexapod
Stars: ✭ 26 (+0%)
Mutual labels:  robots
blender-addon-for-trackmania-and-maniaplanet
Blender addon for trackmania2020 & maniaplanet. 1 Click export & convert to .gbx.
Stars: ✭ 18 (-30.77%)
Mutual labels:  blender
blender-importer-unity
A tool to fix orientation issues from Blender to Unity
Stars: ✭ 23 (-11.54%)
Mutual labels:  blender
arguing-robots
🤖 Watch and hear macOS robots argue live in your terminal 🤖
Stars: ✭ 53 (+103.85%)
Mutual labels:  robots
Blender-Metaverse-Addon
Blender toolset for creating content for Metaverses like High Fidelity
Stars: ✭ 53 (+103.85%)
Mutual labels:  blender
UEShaderScript
UEShaderScript is a free Blender Plugin that allows for saving and dynamically loading shader maps and textures. It is built for all 3d assets exported from Unreal Engine.
Stars: ✭ 26 (+0%)
Mutual labels:  blender
droplet-render
Volumetric cloud modeling and rendering for Blender.
Stars: ✭ 29 (+11.54%)
Mutual labels:  blender
robot hacking manual
Robot Hacking Manual (RHM). From robotics to cybersecurity. Papers, notes and writeups from a journey into robot cybersecurity.
Stars: ✭ 169 (+550%)
Mutual labels:  robots
projectile
An artist-friendly tool for throwing stuff around inside Blender
Stars: ✭ 136 (+423.08%)
Mutual labels:  blender
VSE Transform Tools
Quickly transform, crop and fade video strips in Blender's Video Sequence Editor
Stars: ✭ 195 (+650%)
Mutual labels:  blender
katana driver
This stack contains hardware drivers, Gazebo plugins and other basic functionalities for the Neuronics Katana family of robot arms.
Stars: ✭ 16 (-38.46%)
Mutual labels:  urdf
blender-mqo
Blender Add-on: Metasequoia File Importer/Exporter
Stars: ✭ 27 (+3.85%)
Mutual labels:  blender
nuxt-humans-txt
🧑🏻👩🏻 "We are people, not machines" - An initiative to know the creators of a website. Contains the information about humans to the web building - A Nuxt Module to statically integrate and generate a humans.txt author file - Based on the HumansTxt Project.
Stars: ✭ 27 (+3.85%)
Mutual labels:  robots

Blender Robotics Utils

This repository contains utilities for exporting/controlling your robot in Blender

ezgif com-gif-maker

Maintainers

This repository is maintained by:

@Nicogene

Addons installation

Dependencies

An easy way to install the dependencies is to use the conda binaries packages. Just install conda and then:

conda create -n blenderenv
conda activate blenderenv
conda install -c conda-forge -c robotology python=<blender_py_ver> yarp idyntree
conda env config vars set PYTHONPATH=/where/the/bindings/are/installed

where <blender_py_ver> is the python version used inside Blender.

Installation

The addons can be installed by running the following command:

conda activate blenderenv
cd blender-robotics-utils/script
blender -b --python-use-system-env -P ./addons_installer.py

urdfToBlender

Panel/Python script that given the urdf of a robot as input, define the complete rig, in terms of bones, meshes and joint limits.

Usage with GUI

Once installed correctly the dependencies run:

(Windows Powershell)

 & "C:\Program Files\Blender Foundation\Blender <blender_version>\blender.exe" --python-use-system-env

(Linux & macOs)

blender --python-use-system-env

If the installation went fine you should have this panel on the right under the Tools section:

immagine

After clicking "Select the urdf" it will be opened a file browse such as:

immagine

After selecting the urdf, the script creates the rig of the robot in term of armature and meshes.

Usage without GUI

It is also possible to run this script from the command line interface, in this case you have to specify the urdf_fiename to be converted and optionally the blend_filename to be saved(by default it saves robot.blend in the current directory).

(Windows Powershell)

 "C:\Program Files\Blender Foundation\Blender <blender_version>\blender.exe" --python-use-system-env -b -P "C:\where\you\have\blender-robotics-utils\script\urdfToBlender.py" -- --urdf_filename "C:\where\you\have\model.urdf" --blend_filename "C:\where\you\want\to\save\myrobot.blend"

(Linux & macOs)

blender --python-use-system-env -b -P "/where/you/have/blender-robotics-utils/script/urdfToBlender.py" -- --urdf_filename "/where/you/have/model.urdf" --blend_filename "/where/you/want/to/save/myrobot.blend"

Examples

iCub 2.5 iCub 3
immagine immagine

Known limitations

  • Only fixed or revolute joints are handled(see robotology/idyntree#881, it requires iDynTree >= 3.3.0).
  • Only .stl, .ply and .dae format are supported for meshes.

blenderRCBPanel 🚧

Python addon that consists in a panel inside the pose mode for connecting parts of the rig to the parts of the real robot(or simulator).

If the installation went fine you should have this panel on the right under the Tools section. First of all you have to configure it loading a .json file representing the structure of your robot like this one:

{
    "parts": [
        ["torso", "Torso"],
        ["head", "Head"],
        ["left_arm", "Left arm"],
        ["right_arm", "Right arm"],
        ["left_leg", "Left leg"],
        ["right_leg", "Right leg"]
    ]
}

It should contain a list of pair where the first value will be the "YARP name" of the part, and the second one will be the name displayed in the list. Once configured, select the parts you want to control, press connect and then have fun! This has been tested with iCub 2.5.

Joint space

It is possible to define the animation changing the values of joints from the joints' list, every time a new value is entered a waypoint in the animation is setted.

Video 🎥:

blenderPanelWithList-2022-03-24_05.58.40.mp4

Cartesian space

Reach target

  1. The user selects the Base Frame and the End Effector Frame according to the joint he/she wants to move.
  2. Input the tranformation to be reached by End Effector Frame respect to Base Frame, in XYZ(meters) and RPY(degrees).
  3. Press Reach target button.
  4. The waypoint in the animation is automatically set.

Video 🎥:

BlenderAnimationCartesianV2.mp4

Drag & Drop

  1. The user selects the Base Frame and the End Effector Frame according to the joint he/she wants to move.
  2. Press the button Drag & Drop to activate the feature. Once the button is pressed the user loses control of Blender.
  3. The user moves the mouse pointer in the 3D space of Blender and clicks the right mouse button to drop the position.
  4. The user clicks on the left mouse button to deactivate the drag and drop feature and to bring back the control to Blender.
  5. The waypoint in the animation is automatically set.

Video 🎥:

drag_drop-2022-05-11_07.27.20.mp4

Known limitations

  • We are controlling sequentially all the parts connected, this may lead to some discrepancies between the animation and the movements. This can be improved using multithreading and/or using a remapper.

FAQs 🙋‍♂️

Check our faq section 👈

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].