Skip to main content

A converter between URDF and PROTO files.

Project description

urdf2webots

Build Status

This tool converts URDF files into Webots PROTO files.

Install

From pip

pip install urdf2webots

On macOS, export the pip binary path to the PATH: export PATH="/Users/$USER/Library/Python/3.7/bin:$PATH"

From Sources

git clone https://github.com/cyberbotics/urdf2webots.git
cd urdf2webots
pip install -r requirements.txt

Usage

From pip

python -m urdf2webots.importer --input=someRobot.urdf [--output=outputFile] [--box-collision] [--normal] [--disable-mesh-optimization] [--multi-file] [--static-base] [--tool-slot=linkName] [--name-to-def] [--help]

From Sources

python demo.py --input=someRobot.urdf [--output=outputFile] [--box-collision] [--normal] [--disable-mesh-optimization] [--multi-file] [--static-base] [--tool-slot=linkName] [--name-to-def] [--help]

Arguments

The script accepts the following arguments:

  • -h, --help: Show the help message and exit.
  • --input=INFILE: Specifies the urdf file to convert.
  • --output=OUTFILE: If set, specifies the path and, if ending in ".proto", name of the resulting PROTO file. The filename minus the .proto extension will be the robot name.
  • --normal: If set, the normals are exported if present in the URDF definition.
  • --box-collision: If set, the bounding objects are approximated using boxes.
  • --disable-mesh-optimization: If set, the duplicated vertices are not removed from the meshes (this can speed up a lot the conversion).
  • --multi-file: If set, the mesh files are exported as separated PROTO files.
  • --static-base: If set, the base link will have the option to be static (disable physics)
  • --tool-slot=LinkName: Specify the link that you want to add a tool slot to (exact link name from urdf).
  • --rotation="0 1 0 0": Set the rotation field of your PROTO file. If your URDF file uses the z-axis as 'up', use --rotation="1 0 0 -1.5708".
  • --init-pos=JointPositions: Set the initial positions of your robot joints. Example: --init-pos="[1.2, 0.5, -1.5]" would set the first 3 joints of your robot to the specified values, and leave the rest with their default value.
  • --link-to-def: Creates a DEF with the link name for each solid to be able to access it using getFromProtoDef(defName)
  • --joint-to-def: Creates a DEF with the joint name for each joint to be able to access it using getFromProtoDef(defName)

In your Python Code

from urdf2webots.importer import convert2urdf
convert2urdf('MY_PATH/MY_URDF.urdf')

In-Depth Tutorial

Check out this tutorial for a more in-depth, step by step instruction, on how to:

  • Generate a URDF file from a ROS repository.
  • Convert your URDF file to a Webots PROTO file.
  • Load your converted model into Webots and make final adjustments.

Notes

This tool have been tested using Webots R2020b on Ubuntu16.04 and Windows.
You can find the sources of these URDF files here:

Acknowledgements

rosin_logo

Supported by ROSIN - ROS-Industrial Quality-Assured Robot Software Components.
More information: rosin-project.eu

eu_flag

This project has received funding from the European Union’s Horizon 2020
research and innovation programme under grant agreement no. 732287.


opendr_logo

Supported by OpenDR - Open Deep Learning Toolkit for Robotics.
More information: opendr.eu

eu_flag

This project has received funding from the European Union’s Horizon 2020
research and innovation programme under grant agreement no. 871449.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

urdf2webots-1.0.9.tar.gz (23.8 kB view hashes)

Uploaded Source

Built Distribution

urdf2webots-1.0.9-py3-none-any.whl (27.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page