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

Supported by

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