compas-dev / compas_fab

Robotic fabrication package for the COMPAS Framework.
https://compas.dev/compas_fab/
MIT License
108 stars 32 forks source link

Introduce `compas_fab.robot.Target` class #409

Closed yck011522 closed 2 months ago

yck011522 commented 4 months ago

A new class for describing Targets to be used by planning calls. It abstracts away the current use of a list of Constraints when describing targets. This will be more friendly and flexible for other backends other than ROS.

Constraints classes will now have a much lower importance than before, users who want to do planning no longer have to pass a list of Constraints (although they still can via ConstraintSetTarget) but can use more geometry oriented Targets.

The Constraint class will still be exposed such that advanced users can compose with them to form ConstraintSetTarget, however only MoveIt Planner will support this at the moment, and only for planning Free Motion (using plan_motion()). On the other hand, the Target classes are aiming to be more generic classes that can be supported by all planning backends.

What type of change is this?

Checklist

Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

yck011522 commented 3 months ago

I'm struggling to decide where the tolerance parameters should go. Currently JointConstraint has tolerance_above and tolerance_below PositionConstraint has a Sphere with tolerance_position OrientationConstraint has tolerances to represent tolerances_orientation

I'm trying to find a place to abstract them, either inside Targets. Or passed to the planning call.

jf--- commented 2 months ago

so stoked for this PR! amazing work @yck011522

jf--- commented 1 month ago

massive!