Skip to main content

pychoreo is a sequence and motion planning engine that allow you to print the following cool structures (and many more!) with ease:

Voronoi extrusion video

Note :pushpin:

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

  • The ROS implementation of choreo can be found here: choreo.

Main features

  • feature

Documentation

Coming soon!

Requirements

Installation

Credits

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:

  • Automated sequence and motion planning for robotic spatial extrusion of 3D trusses, Constr Robot (2018) 2:15-39, Arxiv-1810.00998

Applications of Choreo:
  • Robotic extrusion of architectural structures with nonstandard topology, RobArch 2018, RobArch paper link

  • Spatial extrusion of Topology Optimized 3D Trusses, IASS 2018, IASS paper link

0.3.0

Added

0.2.0

Added

  • SparseLadderGraph completed

  • export planned trajectory for extrusion

  • add parsing function for visualizing saved extrusion trajectories

  • from_data methods for Trajectory and subclasses

  • tagging print processes with ground/creation/connect in the test function

  • infinite pose sampler added for extrusion case when using sparse ladder graph to solve

  • Added max_valence_extrusion_direction_routing to extrusion.utils

  • Added reverse_flags info to add_collision_fns_from_seq and extrusion’s test

  • Added start_conf parameter to SparseLadderGraph.extract_solution and solve_ladder_graph_from_cartesian_process_list to allow minimizing ladder graph with respect to a given start configuration

  • Added picknplace.transition_planner

  • Added target_conf attribute to CartesianProcess to allow using snap_sols when sample_ik_sols is called. This is essential for robots with large joint limits, e.g. UR.

Minor

  • is_any_empty utility function for checking ik sol list of lists

  • reset_ee_pose_gen_fn for easier resetting generator

  • Added print_table model in the mit_3-412_workspace URDF/SRDF

Removed

  • Removed PicknPlaceBufferTrajectory’s ee_attachments and attachments attributes

  • Removed picknplace.planner_interface (which is there only as an archive)

Fixed

  • fix nested empty list detection bug in is_any_empty

  • add disabled_collisions argument to the extrusion transition_planner

  • Fixed min_z to base_point model transformation in extrusion.parsing

Changed

  • extrusion export save lin_path’s poses as 4x4 tform matrix (there’s some disagreement in quaterion in compas.Frame.from_quat?)

  • move extrusion test fixtures into a separate fixture module

  • ladder graph interface broken into from_cartesian_process_list, from_cartesian_process, from_poses to increase code reuse

  • Changed sub_process_ids specification in prune_ee_feasible_directions

  • Changed Trajectory to have ee_attachments and attachments attributes natively

  • Changed Trajectory’s from_data, making it raise ValueError when robot body cannot be found in pybullet

  • Changed MoveTrajectory to have element_id attributes natively

  • Changed picknplace.visualization to reload and manually assign pybullet bodies to ensure objects get matched correctly

  • Changed build_picknplace_cartesian_process_seq to inject ee_attach info before passing into ladder graph solver, and tag element attachment after solving is finished.

0.1.1

Added

  • cartesian process class for modeling general linear movement in the workspace

  • ladder graph interface using the Cartesian process class

  • Trajectory class for modeling result trajectory in different contexts (inherited classes)

  • display_trajectories for extrusion

  • some simple exceptions added for LadderGraph and DAGSearch

  • subprocess modeling to have a more detailed control over Cartesian process modeling

  • add exhaust_iter method to CartisianProcess which resets the generator

  • add template class GenFn for generating functions

  • add PrintBufferTrajectory to model approach/retreat trajectories

Changed

  • move transition planning to application context.

  • conform to the latest pybullet_planning

Removed

  • assembly_datastructure

  • the old extrusion.run module, moved to the test file

Fixed

Deprecated

0.0.1

Added

  • Initial version

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pychoreo-0.3.0.tar.gz (14.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pychoreo-0.3.0-py2.py3-none-any.whl (14.8 MB view details)

Uploaded Python 2Python 3

File details

Details for the file pychoreo-0.3.0.tar.gz.

File metadata

  • Download URL: pychoreo-0.3.0.tar.gz
  • Upload date:
  • Size: 14.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.6.7

File hashes

Hashes for pychoreo-0.3.0.tar.gz
Algorithm Hash digest
SHA256 6aff2233450ad33fbfd18a97256c1abd685da92cd80e6da5c1aa13c8582edaed
MD5 678a4c046562d854b5a428ff4141ceb5
BLAKE2b-256 ebdf15b667cf1617ce7420f08250c22fdebf59f8493424410011d8c8979aefc8

See more details on using hashes here.

File details

Details for the file pychoreo-0.3.0-py2.py3-none-any.whl.

File metadata

  • Download URL: pychoreo-0.3.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 14.8 MB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.6.7

File hashes

Hashes for pychoreo-0.3.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 73c5bbeae330af0ff7db630333e74e5b52a80a2538381933d21cbbd0400fcd0a
MD5 85bd6d18c222ba56d7738c1d575c807e
BLAKE2b-256 56763147fdfe78f1b43cf0b1913ecc43b0cb6c9cfeb9fd34b39757e272ac77ef

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 files

0.2.0

2 files

0.1.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page