Skip to content

A FreeCAD Workbench for Creating and Simulating Universal Robot Definition Files (URDF Files)

License

Notifications You must be signed in to change notification settings

VallesMarinerisExplorer/A2plus

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

A FreeCAD Workbench for Creating and Simulating Universal Robot Definition Files (URDF Files)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%