Soccerbot orchestrator: in-process ACT pickup, clamping, and killswitch - #5
Open
arjuncoder1 wants to merge 9 commits into
Open
arjuncoder1 wants to merge 9 commits into
arjuncoder1 wants to merge 9 commits into
Conversation
…itch Make soccerbot the core workspace orchestrator that imports local-vla-inference (ACT pickup with ajkoder/g1-pickup-ball-act, clamp 0.002, working teleimager zmq://192.168.123.164:55555) and scripted-behavior stages in-process. Add Rerun telemetry, Ctrl+C graceful reset (StopMove + arm_sdk release), headed killswitch GUI, and root install/diagnose/run scripts. Leave front_camera single-port path untouched. Co-authored-by: arjuncoder1 <arjuncoder1@users.noreply.github.com>
arjuncoder1
marked this pull request as ready for review
July 19, 2026 07:53
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
Owner
Author
|
@cursor review |
- Load local-vla-inference/main as local_vla_inference_main so scripted main.py cannot shadow build_args/run - Share process-wide ensure_dds (dds_init) across ACT and scripted stages - graceful_reset always opens a temp G1Arms to release arm_sdk when no handle - ACT leave-engaged path freezes then detach() so only one rt/arm_sdk publisher - diagnose.sh cds to REPO_ROOT before relative import checks Co-authored-by: arjuncoder1 <arjuncoder1@users.noreply.github.com>
Owner
Author
Default killswitch is a no-GUI CLI (interactive or one-shot stop/damp/zero/ start/home/status). --gui keeps the Tk panel and adds a GO HOME button. Home is Unitree zeros by default, overridable via scripted-behavior/home_pose.json, and motion is slew-clamped. Co-authored-by: arjuncoder1 <arjuncoder1@users.noreply.github.com>
…zero - G1Arms.send_arm_positions hard-clamps every commanded q to URDF limits (single choke point for ACT / replay / holds / throw / home) - Damp & ZeroTorque switch FSM first, arm cleanup after; temp release publisher uses 3s lowstate timeout so emergencies never stall - throw phases chain from the actual last command (no step-jump when the slew clamp lags the blend); verified with fake-arms delta test - go-home: no-ramp weight=1 engage (avoids re-engage jerk), home_pose.json validated against URDF limits at load - Rerun telemetry disables itself on any error instead of breaking control Co-authored-by: arjuncoder1 <arjuncoder1@users.noreply.github.com>
…its dynamics; clamp stays as a garbage-target net Co-authored-by: arjuncoder1 <arjuncoder1@users.noreply.github.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 35dbcc5. Configure here.
….py, --rerun flags, lerobot[viz] deps, and diagnose check Co-authored-by: arjuncoder1 <arjuncoder1@users.noreply.github.com>
Go-home now matches ACT at 0.002 rad/step (was 0.02 / 1 rad/s), with a longer duration budget so the tight slew can still reach the pose. Replay safety net drops to 0.01; throw stays loose at 0.06 for push dynamics. Co-authored-by: arjuncoder1 <arjuncoder1@users.noreply.github.com>
Soccerbot --pickup-duration and in-process build_args now default to 45 seconds instead of 30. Co-authored-by: arjuncoder1 <arjuncoder1@users.noreply.github.com>
Co-authored-by: arjuncoder1 <arjuncoder1@users.noreply.github.com>
This branch has not been deployed
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.

Summary
Makes
soccerbot/the core orchestrator (workspace-local, not PyPI). Logic stays in sibling deps and is imported in-process:local-vla-inference— ACT pickupscripted-behavior— turn / avoid / throw + trajectory replayDefaults
--layout 14d--policy ajkoder/g1-pickup-ball-act--clamp 0.002--camera zmq://192.168.123.164:55555(working teleimager head JPEG port)Safety (defense in depth)
G1Arms.send_arm_positionsclamps every commanded joint to real G1 URDF limits; covers ACT, replay, arm holds, throw, and go-home no matter what the caller computes.StopMove+ releasearm_sdk; opens a short-timeout temp publisher when the interrupted stage held no handle.(Rerun telemetry was prototyped and then scrapped per request — no viz deps.)
Killswitch (CLI default + GUI)
Run
Tests
scripted-behavior/test_throw.py— 9 passed (FK/limit checks on the push delta)