# urdf2webots
**Repository Path**: mathematicsX/urdf2webots
## Basic Information
- **Project Name**: urdf2webots
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2020-12-17
- **Last Updated**: 2021-11-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# urdf2webots
[](https://travis-ci.com/cyberbotics/urdf2webots)
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] [--help]
```
### From Sources
```
python demo.py --input=someRobot.urdf [--output=outputFile] [--box-collision] [--normal] [--disable-mesh-optimization] [--multi-file] [--static-base] [--tool-slot=linkName] [--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.
### In your Python Code
```
from urdf2webots.importer import convert2urdf
convert2urdf('MY_PATH/MY_URDF.urd')
```
### In-Depth Tutorial
Check out [this tutorial](./docs/tutorial.md) 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:
- universal robot: https://github.com/ros-industrial/universal_robot/tree/kinetic-devel/ur_description
- pr2 robot: https://github.com/PR2/pr2_common/tree/kinetic-devel/pr2_description
- motoman robot: https://github.com/ros-industrial/motoman/tree/kinetic-devel/motoman_sia20d_support
- kinova robot: https://github.com/Kinovarobotics/kinova-ros/tree/kinetic/kinova_description
- gait2392 human skeleton: https://github.com/cyberbotics/urdf2webots/tree/master/tests/sources/gait2392_simbody
## Acknowledgement
Supported by ROSIN - ROS-Industrial Quality-Assured Robot Software Components.
More information: rosin-project.eu
This project has received funding from the European Union’s Horizon 2020
research and innovation programme under grant agreement no. 732287.