Skip to content

martcram/FreeCAD-APLAN

Repository files navigation

PRs Stargazers Issues License


Logo

APLAN: Assembly PLANning workbench for FreeCAD

Report Bug · Request Feature

Table of contents
  1. About the project
  2. Getting started
  3. Contributing
  4. License
  5. Acknowledgments

About the project

⚠️ Work in progress ⚠️

This workbench is an attempt to introduce automatic assembly sequence planning (ASP) into FreeCAD. ASP involves determining (all) feasible sequences in which the different components of a product can be assembled successfully. Based on an assembly product's CAD model, feasible assembly sequences are composed by considering topological and geometrical constraints, and are represented as an AND/OR graph.

Citation

This project started in the context of Ph.D. research into intention-based human-robot collaborative assembly, and was first mentioned in the following paper:

M. Cramer, K. Kellens and E. Demeester, "Probabilistic Decision Model for Adaptive Task Planning in Human-Robot Collaborative Assembly Based on Designer and Operator Intents," in IEEE Robotics and Automation Letters, vol. 6, no. 4, pp. 7325-7332, Oct. 2021, doi: 10.1109/LRA.2021.3095513.

Videos

  • Automatic constraint detectors and interactive graph visualiser [YouTube]

Built with

  • FreeCAD version info:
OS: Ubuntu 22.04 LTS (ubuntu:GNOME/ubuntu)
Word size of FreeCAD: 64-bit
Version: 0.20.29177 (Git)
Build type: Release
Branch: (HEAD detached at 0.20)
Hash: 68e337670e227889217652ddac593c93b5e8dc94
Python 3.10.4, Qt 5.15.3, Coin 4.0.0, Vtk 7.1.1, OCC 7.5.1
Locale: English/United States (en_US)

(back to top)

Getting started

These instructions will help you get the APLAN workbench up and running on your local machine.

  1. Copy the latest version of FreeCAD's source code:
$ git clone https://github.com/FreeCAD/FreeCAD.git freecad/freecad-source
  1. Copy the source code of the APLAN workbench into the Mod folder:
$ git clone https://github.com/martcram/FreeCAD-APLAN.git freecad/freecad-source/src/Mod/Aplan

... or include the project as a submodule for development purposes:

$ cd freecad/freecad-source
$ git submodule add https://github.com/martcram/FreeCAD-APLAN.git src/Mod/Aplan
  1. Create a CMake variable in the file freecad-source/cMake/FreeCAD_Helpers/InitializeFreeCADBuildOptions.cmake to provide the user with the option to compile this workbench:
...
option(BUILD_APLAN "Build the FreeCAD APLAN module" ON)
...
  1. Include the subdirectory of the APLAN workbench in the CMake build by adding the following lines to the file freecad-source/src/Mod/CMakeLists.txt:
...
if(BUILD_APLAN)
    add_subdirectory(Aplan)
endif(BUILD_APLAN)
...
  1. Follow the succeeding instructions for compiling FreeCAD on your specific OS using the official documentation. Note that the first step of acquiring FreeCAD's source code can be disregarded since this was already addressed by this README file.

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this workbench better, please fork the repo and create a pull request. You can also simply open an issue with the tag "Feature". Don't forget to give the project a star! Thank you!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/amazingFeature)
  3. Commit your Changes (git commit -m 'add some amazingFeature')
  4. Push to the Branch (git push origin feature/amazingFeature)
  5. Open a Pull Request

Finally, have a look at the list of contributors who participated in this project.

(back to top)

License

This project is distributed under the LGPL-2.1 License. See LICENSE for more information.

(back to top)

Acknowledgments

(back to top)