Skip to main content

sequence and motion planning for robotic spatial extrusion

Project description

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

Project details


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

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

Uploaded Python 2 Python 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.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page