COMPAS FAB 2.0 release#458
Open
gonzalocasas wants to merge 512 commits into
Open
Conversation
Gh cpython -> `LTS-main-1.x`
Conditionally install pybullet if not in rhino
`MoveItPlanner.robot_cell` previously raised AttributeError because only `AnalyticalKinematicsPlanner` defined the property locally (as a passthrough to its client). Callers like the `Cf_InverseKinematics` fallback path that derive a zero-config start_state from the planner's cell were therefore broken against the MoveIt backend. Lifted the two properties to `PlannerInterface` itself, where they delegate to `self._client.robot_cell` / `self._client.robot_cell_state`. Safe when `_client` is None (returns None). Every concrete backend planner (MoveIt, PyBullet, AnalyticalKinematics, AnalyticalPyBullet) inherits the same accessor for free; the local override in `AnalyticalKinematicsPlanner` becomes redundant and is removed. Also folds in a test rename that finishes the earlier check_collision migration: `test_04_inverse_kinematics_allow_collision_example` → `test_04_inverse_kinematics_check_collision_example`, with the option flipped to `check_collision: False` so the ROS integration test now exercises the canonical key instead of the legacy alias. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Collapse the planned/unplanned PlanStep split into a single Action class wrapping start_state + optional trajectory + optional explicit post_state. A trajectory makes it planned (post-state derived); no trajectory makes it an unplanned/state-change action (post-state explicit). Single-class model means backtracking just clears the trajectory instead of swapping types. Action carries a free-form attributes bag with tags as the default, first-class key to drive differentiated downstream execution. MotionPlan -> ActionChain: same state-threading and serialization optimization (strip the duplicated start_state, re-thread on load), now mirroring Action.start_state onto the contained trajectory.start_state. Surface renamed: actions / iter_actions / action_by_name / append_action. MotionPlan/PlanStep were unreleased, so this is a clean rename with no back-compat aliases. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Cf_TrajectoryStep -> Cf_TrajectoryAction, Cf_StateChangeStep -> Cf_StateChangeAction (both now emit an Action and accept an optional comma-separated `tags` input that lands on the action's attributes), Cf_MotionPlan -> Cf_ActionChain (takes `actions`, emits `chain`). Component code.py/metadata.json updated to the Action/ActionChain API; icons carried over unchanged. Userobject regeneration is a separate step. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Rename developer/motion_plan.md -> developer/action.md and rewrite it;
update concepts.md, developer/index.md, backends/{ros,pybullet}.md, the
two 08_*pick_and_place example scripts, the icon-system catalog labels,
and mkdocs nav. Fold the rename + new tags feature into the existing
Unreleased CHANGELOG bullets.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
… into prep-release-motion-plan-wow
PR #459 targets the prep-release integration branch, not main, so the build workflow (and its build-cpython-components artifact job) was not running. Add prep-release to the push/pull_request branch filters so the Grasshopper userobjects are built and uploaded as an artifact for this PR. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Finish the Action rename in the icon catalog (glyph keys trajectoryStep -> trajectoryAction, stateChangeStep -> stateChangeAction, motionPlan -> actionChain). Redesign the "from library" glyphs around a stack-of-books motif (cell/tool/body), add a dedicated toolFromMesh glyph, and re-render the affected component icon.png files. Bump the catalog count to 37. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Composing multi-step motion plans
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR superceedes #456 and contains the entire Project Theseus + ROS 2 / MoveIt 2 support.
What type of change is this?
Checklist
Put an
xin 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.CHANGELOG.mdfile in theUnreleasedsection under the most fitting heading (e.g.Added,Changed,Removed).invoke test).invoke lint).compas_fab.robots.CollisionMesh.