Repository navigation
Zbiorczy merge PR-ow pawel120: #49 #34 #42 #36 #51 - #53
Merged
Merged
Conversation
The robot drove into the arm over the laggy hotspot. Delayed heartbeats arrive in bursts and, since #33, stale "W held" heartbeats restarted driving after the failsafe while the key release came later. The dead-man measures arrival time, so late messages look fresh. The heartbeat is a plain ping again (press the key anew after a failsafe). web_control MAX_PWM 500 -> 250; arm panel per-tick step 2 -> 1 deg (gripper 4 -> 2). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… calibrate Default is read-only (servo registers vs so101.json). --record S turns torque off on that joint only and records a manual sweep through the full range, then proposes Homing_Offset and limits so the range is centered on 2047 (away from the encoder zero). --write stores them in the servo EEPROM and in that joint's so101.json entry after typing TAK, with a timestamped backup; other joints are untouched. The math reproduces the 2026-09-25 shoulder fix (offset 1977). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Step-by-step guide from the 2026-09-26 session: hotspot or ethernet, finding the Pi IP, two SSH terminals (web_control.py, tools/arm_web.py), browser URLs, shutdown order and a troubleshooting table. Link from README, note in SETUP.md that Pi WiFi works now, STATUS and LOG updated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
One torque-off recording for every joint, one TAK confirmation, one backup of so101.json. A joint that barely moved (or did a full turn) is reported and skipped instead of aborting the whole run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
HOME_POSE in arm_control.py, pinecone_bot/arm.py and motions/home.json is now the pose the arm was set to by hand on 2026-09-26. grasp_mid still starts and ends at the old HOME, so its test is xfail until it is re-recorded. The panel STOP test jogs shoulder_lift down, because the new HOME sits near the top of its range. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…/live_grasp Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ntinue tools/live_grasp/ runs on the Pi over ssh stdin (pi.sh), nothing is copied to the Pi. Hand-guided recording and replay of a grasp-to-jar cycle work. Teaching sessions (HOME depth snapshot + hand grasp) gave 8 unambiguous samples; the camera->joints model is ~6 cm off, so autonomous grasps missed. docs/LIVE_GRASP.md has the exact steps to continue: clean teaching with one cone at a time, fit.py, pick.py. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Etap 1 uczony (ACT tylko na chwycie), etap 2 nagrany ruch do sloika. STATUS/LOG: leader na Pi, nagrywanie datasetu, naprawa venv po spadku napiecia. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…_pick Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Kamera (RealSense i kazda USB) jest na wylacznosc jednego procesu, wiec rs_mjpeg_server.py nie moze chodzic obok lerobot-record/rollout. Wrapper uruchamia komende lerobot w swoim procesie i serwer MJPEG (8081) obok; hook na Camera.__init__ rejestruje kamery, podglad bierze read_latest() (peek, petla sterowania dostaje te same klatki). act_pick.py puszcza rollout przez wrapper (--preview-port, 0 = wylacz). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…opu phyphox Niesprawdzone na sprzecie. Prawdopodobnie dubluje base_test.py --measure (pawel/base-calibration) i turn_loop (frane/gyro-rate-loop) - do decyzji. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # docs/LOG.md # docs/STATUS.md
# Conflicts: # docs/LOG.md # docs/STATUS.md
# Conflicts: # docs/LOG.md # docs/STATUS.md
# Conflicts: # docs/LOG.md # docs/STATUS.md
…artbeat-half-speed # Conflicts: # docs/LOG.md # docs/RUNBOOK.md # docs/STATUS.md # tests/test_arm_panel.py # web_control.py
# Conflicts: # docs/STATUS.md
…-pawel # Conflicts: # docs/STATUS.md
…f-speed' into tomek/merge-pawel # Conflicts: # docs/LOG.md
…erge-pawel # Conflicts: # docs/LOG.md
…ek/merge-pawel # Conflicts: # docs/LOG.md
…rge-pawel # Conflicts: # docs/LOG.md
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.
Jeden merge zamiast pieciu: kazdy kolejny merge robil nowy konflikt w
docs/LOG.md/docs/STATUS.md.Zawiera branche (bez zmian w kodzie poza rozwiazaniem konfliktow):
pawel/act-pick- tools/act_pick.py, tools/cam_preview.pypawel/drive-revert-heartbeat-half-speed- tools/calibrate_joint.py (limity predkosci w web_control.py zostaja z mastera: MAX_PWM 100, MAX_STEER 200)pawel/arm-home-cam- nowy HOME, tools/live_grasp/pawel/docs-panel-guide- docs/PANEL.mdpawel/drive-calib- tools/drive_calib.py (draft)Konflikty: tylko LOG.md (wpisy polaczone) i STATUS.md (obie strony). Po merge te PR-y GitHub oznaczy jako zmergowane.