Added README.md
This commit is contained in:
parent
e610313349
commit
4fc65e3c80
1 changed files with 80 additions and 1 deletions
81
README.md
81
README.md
|
@ -1 +1,80 @@
|
|||
# freecad_to_gazebo
|
||||
# Freecad to Gazebo exporter
|
||||
|
||||
## Introduction
|
||||
Freecad to gazebo exporter is a tool for exporting freecad assembly project to gazebo/ros model.
|
||||
|
||||
## Design Rules
|
||||
This project is in its early stage therefore specific design rules must be followed to work with it.
|
||||
* The assmbly file must be created with `A2Plus` (freecad's prefered assembly workspace).
|
||||
* Parts of the assembly must be in separate files.
|
||||
* Imovable parts of the main assembly must be made in separate subasssemblies.
|
||||
* Joints should be represented by AxisConsident constraints with lock rotation turned off.
|
||||
* For URDF files to work properly, tree structure must be maintained (ie. parent and childs of constraints must follow tree structure).
|
||||
|
||||
## Requirements
|
||||
* [Freecad][freecad] with [A2Plus][a2plus] workspace installed
|
||||
* [ROS][ros] *Optional*, If you wish to install it as a package
|
||||
|
||||
## Usage
|
||||
|
||||
#### Clone the repository to catkin workspace
|
||||
```console
|
||||
$ git clone https://github.com/Dave-Elec/freecad_to_gazebo.git ~/catkin_ws/src
|
||||
```
|
||||
|
||||
#### Re-build catkin workspace
|
||||
```console
|
||||
$ catkin_make
|
||||
$ source devel/setup.bash
|
||||
```
|
||||
|
||||
#### To generate only SDF model from freecad assembly:
|
||||
```console
|
||||
# freecad_to_gazebo.py <assembly_file> <path/to/model_dir> --sdf
|
||||
```
|
||||
|
||||
#### To generate SDF and URDF model from freecad assembly:
|
||||
```console
|
||||
$ freecad_to_gazebo.py <assembly_file> <path/to/model_dir>
|
||||
```
|
||||
Note: Only links and joints are generated in the SDF model. to use the model with ros, use the URDF model.
|
||||
|
||||
## Options
|
||||
```console
|
||||
$ freecad_to_gazebo.py <assembly_file> <path/to/model> [--sdf] [--noexport] [--config <path/to/config>]
|
||||
```
|
||||
|
||||
**--sdf**: Export only SDF.
|
||||
|
||||
**--noexport**: Don't export mesh files.
|
||||
|
||||
**--config**: Use other configuration file. (default is `robot_config.json` inside a directory the same as the assembly file).
|
||||
|
||||
|
||||
## Example config file
|
||||
```json
|
||||
{
|
||||
"name": "robot_name",
|
||||
"joints_limits": {"upper": 90, "lower": -90, "effort": 1, "velocity": 5},
|
||||
"transmission": {
|
||||
"type": "transmission_interface/SimpleTransmission",
|
||||
"hardware_interface": "hardware_interface/PositionJointInterface"
|
||||
},
|
||||
"joints_config": {
|
||||
"type": "position_controllers/JointGroupPositionController",
|
||||
"grouped": true
|
||||
},
|
||||
"joints_pid": {"p": 20.0, "i": 10.0, "d": 0.0, "i_clamp": 0.0},
|
||||
"root_link": "base_link"
|
||||
}
|
||||
```
|
||||
|
||||
## Future plans
|
||||
* Extend collada exporter to export materials from assemblies.
|
||||
* Create a FreeCAD workbench to interactively assign joints and export to gazebo.
|
||||
* Reduce set of design rules by making it more robust and general perpouse.
|
||||
* Support any valid structures of assemblies.
|
||||
|
||||
[freecad]:https://freecadweb.org
|
||||
[a2plus]:https://github.com/kbwbe/A2plus
|
||||
[ros]:https://ros.org
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue