Hi all,
I created a small tool to export Fusion 360 designs to SDF. The tool is called FusionSDF and can be found at GitHub - andreasBihlmaier/FusionSDF: Export Fusion 360 designs to SDF (Simulation Description Format).
FusionSDF is inspired by existing tools, such as ExportURDF and fusion2urdf-ros2. Apart from focusing on directly exporting SDF, my goal is to make it easy to export any Fusion 360 design as SDF with as few constraints on its structure as possible. I wanted to make it fast and simple to import existing CAD models, e.g. STEP files, restructure them and add missing information, e.g. joints, physical materials and appearances (visual materials). Furthermore, FusionSDF automatically uses simplified collision objects (oriented bounding box) and calculates each links inertial properties based on geometry and physical material.
No more manual XML editing!
Using the tool I was able to go from the official OpenManipulator CAD model (downloaded as STEP file from OnShape) to a SDF - and hence robot_description / RViz and Gazebo - in about 1h, incl. visuals, collisions, joints and inertia.
Restructured model in Fusion 360 (one component per link with all sub-components added to a rigid group each and joints added):
Displayed as RobotModel in RViz (via view_sdf_rviz):
Colliders:
Centers of mass and inertias:
SDF spawned in Gazebo:
Bundled with FusionSDF is a tool called sdfopt. It uses the headless Blender API (bpy) to decimate the meshes and convert them into the self-contained GLB format.
The next milestone is extending sdfopt to automatically substitute Fusion 360 appearance with similar Blender PBR materials for increased visual fidelity. Currently only color information (diffuse reflectivity) is preserved.
I hope some of you find the tool useful in your own robotics projects. Feedback and PRs are highly welcome!
Best,
Andreas