Tools for robotics assembly preparation via Assembly Sequence Planner, FreeCAD workbench for annotating frames, Blender plugin for preparing mesh
Find a file
2020-09-02 05:48:25 +03:00
scripts moved freecad2gazebo.py to freecad2gazebo 2019-07-04 16:45:21 +03:00
src/freecad_to_gazebo Python2 compatibility (changed scandir to listdir) 2020-09-02 05:48:25 +03:00
.gitignore Initial commit 2019-06-19 06:11:06 +03:00
CMakeLists.txt change project name 2020-09-01 19:47:30 -03:00
LICENSE Initial commit 2019-06-19 06:11:06 +03:00
package.xml Added catkin package files 2019-07-04 16:46:35 +03:00
README.md Added usage modifications 2019-07-04 16:49:33 +03:00
setup.py Added setup.py 2019-07-04 16:46:47 +03:00

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 with A2Plus workspace installed
  • ROS Optional, If you wish to install it as a package

Usage

Clone the repository to catkin workspace

$ git clone https://github.com/Dave-Elec/freecad_to_gazebo.git ~/catkin_ws/src

Re-build catkin workspace

$ catkin_make
$ source devel/setup.bash

To generate only SDF model from freecad assembly:

# freecad_to_gazebo.py <assembly_file> <path/to/model_dir> --sdf-only

To generate SDF and URDF model from freecad assembly:

$ 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

$ freecad_to_gazebo.py <assembly_file> <path/to/model> [--sdf-only] [--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

{
    "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"
}

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.