69 lines
2.6 KiB
Markdown
69 lines
2.6 KiB
Markdown

|
|
# Arbench
|
|
Annotation for robotics bench. A FreeCAD workbench for annotating frames of interest, exporting these w.r.t. the part frame, and exporting part information.
|
|
|
|
# Installation instructions
|
|
This workbench supports versions of FreeCAD>0.16.
|
|
|
|
1. [Install FreeCAD](https://www.freecadweb.org/wiki/Installing)
|
|
2. If you're not on Ubuntu follow the [workbench installation instructions](https://www.freecadweb.org/wiki/How_to_install_additional_workbenches) or you can do the following on Ubuntu.
|
|
3. Custom workbenches are located in `.FreeCAD/Mod/` under your home directory
|
|
`cd ~/.FreeCAD/Mod/`
|
|
3. Either
|
|
- Clone the repository there
|
|
- symlink the cloned repo in there (`ln -s ./ARBench ~/.FreeCAD/ARBench`)
|
|
4. Start the workbench by
|
|
1. Running FreeCAD
|
|
2. Open a STEP file
|
|
3. Open the `ARBench` workbench
|
|
|
|
# Usage
|
|
|
|
1. Click a small feature e.g. a circle
|
|
2. Press the feature frame creator (cone with a magnifying glass on it icon)
|
|
3. Chose type of feature to create
|
|
4. Chose feature parameters if relevant and the offset of the frame from the feature.
|
|
5. Repeat 4 for each feature you want on each part
|
|
6. Click a part and press the export to json button (block->textfile icon)
|
|
7. Save json
|
|
8. Use the json with whatever you want. E.g. [`arbench_part_publisher`](https://github.com/mahaarbo/arbench_part_publisher)
|
|
|
|
|
|
# Freecad to Gazebo exporter
|
|
|
|
To generate SDF and URDF model from freecad assembly use python call:
|
|
|
|
```python
|
|
freecad_exporter.export_gazebo_model(freecad_assembly_file, model_destination_folder, config)
|
|
```
|
|
Note: Only links and joints are generated in the SDF model. To use the model with ros, use the URDF model.
|
|
|
|
## Config specification
|
|
```json
|
|
{
|
|
"name": "robot_name",
|
|
"joints_limits": {"upper": 90, "lower": -90, "effort": 10, "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",
|
|
"ros_package": "humanoid_17dof_description",
|
|
"sdf_only": false,
|
|
"export": true
|
|
}
|
|
```
|
|
|
|
**sdf_only**: Export only SDF.
|
|
|
|
**export**: Export mesh files.
|
|
|
|
## Future plans
|
|
* Extend collada exporter to export materials from assemblies.
|
|
* Create a FreeCAD workbench to interactively assign joints and export to gazebo.
|
|
* Support any valid structures of assemblies.
|