Skip to content

fix(kinova_site): camera streaming, USB split, and pstop recovery#703

Open
suchkristenwow wants to merge 1 commit into
e2e-kinova-mainfrom
kinova-config-camera-and-recovery-fixes
Open

fix(kinova_site): camera streaming, USB split, and pstop recovery#703
suchkristenwow wants to merge 1 commit into
e2e-kinova-mainfrom
kinova-config-camera-and-recovery-fixes

Conversation

@suchkristenwow

Copy link
Copy Markdown

Summary

Site-config fixes for the real Kinova Gen3 deployment, covering protective-stop recovery, JTAC tolerances, and multi-camera streaming reliability.

  • config.yaml — Keep joint_trajectory_controller active at startup. Protective-stop recovery deactivates everything and reactivates the default-active set; without a joint controller in that set the arm settles in ARMSTATE_SERVOING_READY, which the kortex driver's read() reports as in_fault_, so the arm re-reports RECOVERABLE_FAULT immediately after a successful reset.
  • picknik_kinova_gen3.ros2_control.yaml — Raise JTAC default_path_tolerance/default_goal_tolerance to 0.20 rad. A real arm tracking a teleop-generated path easily exceeds the 0.05 rad default; any violation funnels through writeToleranceViolation, which currently aborts ros2_control_node (fmt/spdlog ABI clash). Keep generous until that upstream bug is fixed.
  • cameras.launch.xml — Bump wrist-camera pub rate 6 → 30 Hz to match the ~30 Hz producer and keep the appsink FIFO drained, removing a standing ~130–170 ms lag.
  • zed_camera.launch.xml — Drop ZED 2i to VGA (1344x376 side-by-side). Two ZEDs at HD720 exceed the shared USB controller's bandwidth so neither streams; VGA is ~1/4 the data so both stream. Per-eye crop is downscaled to 224 by the Pi0 processor anyway.
  • robot_drivers_to_persist.launch.py — Put scene_camera and scene_camera_2 on separate USB controllers, and delay scene_camera_2 by 40s to clear the wrist-camera VIDIOC_STREAMON startup race (the wrist cam retries stream-start for ~34s; bringing scene_camera_2 up mid-storm leaves it advertising topics but publishing zero frames).

Test plan

  • Power-cycle arm, launch once, confirm protective-stop recover leaves the arm controllable (no immediate re-fault).
  • Teleop to waypoints without tripping a tolerance-violation crash.
  • Confirm both scene ZEDs and the wrist camera stream frames after a cold launch.

🤖 Generated with Claude Code

- config.yaml: keep joint_trajectory_controller active at startup so
  protective-stop recovery leaves a joint controller running; otherwise
  the arm settles in ARMSTATE_SERVOING_READY and the kortex driver
  re-reports RECOVERABLE_FAULT right after a successful reset.
- ros2_control.yaml: raise JTAC path/goal tolerances to 0.20 rad so a
  real arm tracking a teleop path doesn't trip writeToleranceViolation
  (which aborts ros2_control_node via the fmt/spdlog ABI bug).
- cameras.launch.xml: bump wrist-camera pub rate 6->30 Hz to match the
  ~30 Hz producer and keep the appsink FIFO drained (removes ~130-170 ms
  standing lag).
- zed_camera.launch.xml: drop ZED 2i to VGA (1344x376) so two cameras
  fit the shared USB controller bandwidth.
- robot_drivers_to_persist.launch.py: move scene_camera and
  scene_camera_2 onto separate USB controllers and delay
  scene_camera_2 by 40s to clear the wrist-camera STREAMON startup race.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
@coderabbitai

coderabbitai Bot commented Jun 10, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

🗂️ Base branches to auto review (1)
  • ^v[0-9]+.[0-9]+$

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 2cdd6195-ddf1-49dd-9dc8-5b7b8810ceb4

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant