Repository navigation
Consolidate Atomic Skill demos and repair timing and handover - #856
Merged
Merged
Conversation
[Medium impact] The PR appears safe to merge; no blocking issues were found. SummaryThe PR moves runnable Atomic Skill demos into
No actionable new issues were found in the changes since the previous review. No previous review threads were supplied.
|
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.
Description
Atomic Skill demonstrations were split between the installed
examples/tree and a tutorial directory containing both compatibility wrappers and independent scene implementations. All runnable per-skill and specialized demonstrations now live underexamples/sim/atomic_action/; the tutorial directory contains only two executable, explained API walkthroughs.examples/. Preserve the distinct paper-cup transport scene asmove_held_object_cup.pyalongside the fixed cube scene.single_arm.py(PickUp→Place) anddual_arm.py(HandOver). Both construct typed invocations and reuse the canonical examples' physical setup and calibration. The tutorial chapter includes their live source snippets.Dependencies: none. No linked issue.
Migration
Use
embodichain run-example sim/atomic_action --skill ...for the fixed scenes andembodichain run-example sim/atomic_action/<name>for standalone demonstrations. The old per-skill paths inscripts/tutorials/atomic_action/are removed. Filename mappings includehand_over→handover,move_joints→move_joint, and the old cup-basedmove_held_object→move_held_object_cup.Teaching entry points:
Type of change
examples; typed Atomic Skill APIs remain compatible.Validation
context.py checkpasses.run-example ... --helpsubprocess checks. Both teaching scripts ran in native UR5/Default physics; dual-arm runs covered the can and PGC stick fixtures. The control-period example ran and checked its equal geometry and 4× timing ratio.black==26.10.1:black .and formatting checks pass. API documentation gate: 3045/3045 exports documented.tests/examples/atomic_action/test_support.py, and extend the existing distribution test to cover the migrated scripts. The two teaching scripts use syntax/import/native smoke validation; no tutorial-only test files were added.Native single-seed UR5/Default-physics observations at 100 Hz:
The repaired PGC stick was physically lifted and transferred: final object-position errors were 0.28 mm (TOPPRA) and 1.60 mm (trapezoidal), versus 230.93 mm for the old trapezoidal/Robotiq stick scene. These are fixed-scene observations, not a general physical-success-rate claim. PGC configs/contact selectors were checked for UR5, Franka and UR10; live handover replay covered UR5/Default physics.
Screenshots
Native before/after and paired-planner videos were inspected locally. Their measured outcomes are summarized above; generated media and recording scripts are not committed.
Checklist
black .command to format the code base.python docs/scripts/check_api_docs.py), if applicable.