Home

Awesome

pychoreo

<img src="docs/images/choreo_logo.png" alt="drawing" width="100"/>

choreo + pybullet

:construction: work in progress!

:pushpin: In the summer of 2019, pychoreo will be integrated into the compas_fab infrastructure. Stay tuned! :beers:

With pychoreo, you will be able to print the following cool structures (and many more!) with ease:

<a href="http://www.youtube.com/watch?feature=player_embedded&v=Vv7dEB8T_Jg" target="_blank"><img src="http://img.youtube.com/vi/Vv7dEB8T_Jg/0.jpg" alt="voronoi_extrusion"/></a>

The ROS implementation of choreo can be found here.

<img src="http://digitalstructures.mit.edu/theme/digistruct/images/digital-structures-logo-gray.svg" width="150">         <img src="http://web.mit.edu/files/images/homepage/default/mit_logo.gif" width="80">

<img align="center" height="15" src="https://i.imgur.com/x1morBF.png"/> Installation

$ git clone --recursive https://github.com/yijiangh/pychoreo.git

pychoreo has been tested again python 2.x & 3.7.

Install pybullet

Install PyBullet on OS X or Linux using:

pip install numpy pybullet

Install ikfast modules

To build ikfast modules:

$ cd conrob_pybullet/utils/ikfast/kuka_kr6_r900/
$ python setup.py build

For other robots, replace kuka_kr6_r900 with the following supported robots:

Install conmech module for checking stiffness constraint

See conmech for more instructions.

(optional) Install meshcat-python for sequence result visualization (WebGL-based)

See meshcat-python for instructions on installing meshcat and ZMQ.

Installation test

  1. Test pybullet: python -c 'import pybullet'

  2. Testing new IKFast modules

<img align="center" height="15" src="https://i.imgur.com/x1morBF.png"/> Examples

Extrusion

python -m choreo.extrusion.run -h to see optional arguments.

After computation, you should be able to see result like the following:

<a href="http://www.youtube.com/watch?feature=player_embedded&v=q1S-7KQo1XU" target="_blank"><img src="http://img.youtube.com/vi/q1S-7KQo1XU/0.jpg" alt="simple_frame_demo"/></a>

To play with other examples, e.g. the topology optimized vault in this paper, try:

(in this example, the sequence planner will take about 150 sec to find a solution. Then, be patient with the transition planner...)

Note: If the terminal says something like:

transition planning # <> - E#<>
---
Warning: initial configuration is in collision
start extrusion pose:
pairwise BODY collision: body kr6_r900_workspace1 - body body<>
Press enter to continue

This problem is related to the end effector colliding with the element that it is currently printing. See issue #2. This is not hard to fix, once I get some time...

For now, simply type "Enter" to skip the current transition process and the planner will continue to the next one. If you keep skipping them (hopefully there are not a lot of them), you will get to see the following "result" with "magic jumps" between some extrusions (around 0:50):

<a href="http://www.youtube.com/watch?feature=player_embedded&v=mzu-OMvFMcE" target="_blank"><img src="http://img.youtube.com/vi/mzu-OMvFMcE/0.jpg" alt="simple_frame_demo_EE_self_collision"/></a>

Pick-and-place

Coming soon...

<img align="center" height="15" src="https://i.imgur.com/dHQx91Q.png"/> Citation

If you use this work, please consider citing as follows:

@article{huang2018automated,
  title={Automated sequence and motion planning for robotic spatial extrusion of 3D trusses},
  author={Huang, Yijiang and Garrett, Caelan R and Mueller, Caitlin T},
  journal={Construction Robotics},
  volume={2},
  number={1-4},
  pages={15--39},
  year={2018},
  publisher={Springer}}

Algorithms behind Choreo:

Applications of Choreo:

<img align="center" height="15" src="https://i.imgur.com/H4NwgMg.png"/> Bugs & Feature Requests

Please report bugs and request features using the Issue Tracker.

<img align="center" height="15" src="https://i.imgur.com/x1morBF.png"/> Related repos<a name="related_repos"></a>

Task and Motion Planning

Computational design and digital fabrication