Skip to content

Latest commit

 

History

History
52 lines (36 loc) · 2.88 KB

README.md

File metadata and controls

52 lines (36 loc) · 2.88 KB

FreeCAD-PyBullet Simulator

Simulate Rigid Body Mechanics With Assemblies Directly in FreeCAD and Export to PyBullet Also

This project aims to improve FreeCAD's A2Plus assembly creation workbench by:
  1. Writing new user-added joints to a Universal Robot Definition File (URDF) that can be used by PyBullet, a physics and robotics framework that may have better performance than the current A2Plus solver.
  2. Updating the movement and simulation of component positions in FreeCAD using PyBullet, allowing for more complicated and smoother moving assemblies for larger numbers of components.
  3. Adding additional assembly navigation and accesibility tools.

For example, from this FreeCAD Assembly created using this repository

Image

we can simulate a (very) basic helicopter in PyBullet:

[Watch the video [Watch the video

We can simulate a rover:

Image

Simple Truck:

Image [Watch the video

Prototype Crane Truck:

Image [Watch the video

Here is a FreeCAD A2Plus Assembly:

Image

Here is the Same Assembly Exported to PyBullet:

Image

Check out Arm Link Demo to create URDFs with FreeCAD and T Handle Demo for a demo on simulating object dynamics in FreeCAD using PyBullet

Hierarchy Support

This fork also supports the creation of assembly hierarchies in the tree structure for easier navigation. Child objects are automatically added beneath the parent object like this:

Image

The green part is the actual constraint info, listed directly beneath the child. You can click on these once to see parent, child, joint type etc. For instance, Revolute_continuous_001 connects Platform_001 (child) to CraneBody2_001 (parent).

Here is a link to Bullet/PyBullet for the physics simulation aspect:

https://github.com/bulletphysics/bullet3

Here is some additional documentation on the existing A2plus Workbench that this project is based on:

A2plus

DocumentationForumGit repository