Skip to content

[Feature] pychoreo - compas_fab integration #55

Open
@yijiangh

Description

@yijiangh

This summer, I'm working with the Gramazio & Kohler research group on integrating the sequence and motion planning engine Choreo to the compas_fab infrastructure. We will be focusing on pychoreo [1], which is a python implementation of the original choreo framework based on ROS [2].

Below I'm laying out the things we're planning to do. Each one of these bullet points will probably have its own issue entry later, but for now, I'm just trying to list them here.

High-level overview:

The integration will involve the following components:

  • a general data structure to model assembly (discrete collection of discrete geometric units). The data structure will be able to embed connectivity, structural modeling, robotic assembly information.

  • exposing the sequence and cartesian planner to compas_fab on the client side

  • replacing existing transition planner with the moveit! planners through the compas_fab interface

Implemetation details (adding more as we move forward):

The interface module plugins_choreo.py will reside in compas_fab.backends.ros module since we will rely on the moveit! stack for transition planning. import pybullet and import pychoreo will happen inside this class.

The ChoreoPlanner class will derive from the PlannerPlugin, and it will provide four functions, two of which are new functionalities for the client class:

  • inverse_kinematics_async
  • forward_kinematics_async
  • plan_cartesian_motions_async 🆕
  • plan_assembly_sequence_async 🆕

Future work

I'm still thinking about how to give users the flexibility on specifying the planning skeleton [3], but I will stick to pick-move-place-move for now.

References

[1] https://github.com/yijiangh/pychoreo
[2] https://github.com/yijiangh/choreo
[3] I will elaborate on what does this mean later in the documentation.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions