Repository navigation
Add dual-arm teleoperation and VR hand guidance - #1
Merged
Merged
Conversation
- Separate real and simulated launch paths while sharing the existing IK - Bridge VR targets to ROS controllers using live motor feedback - Add CAN pacing, feedback validation, fault handling, and diagnostics - Tune physical teleoperation for one-to-one hand translation - Add guarded return-to-zero, cancellation, and position-status commands - Handle small elbow and gripper zero offsets without recalibration - Add regression tests and hardware setup documentation
- Move real-arm engagement from side grip to rear trigger - Reset progress tracking when the end-effector target moves - Hide intrusive recovery panels for advisory reach warnings - Update headset instructions and regression tests
The store is generated from the Dual-Arm Supermarket shelving and scanned products (pinned upstream commit), fully stocked, and enclosed with walls, ceiling panels, chilled cabinets, produce and checkouts. TIAGo comes from the Menagerie with its arm tucked through joint refs. scene_export now writes each mesh asset once per material and places every use as a child instance node; the store's glb drops from ~2 GB to 119 MB, and scenes without repeats export as before. SceneNode takes actuator commands on ~/ctrl for the actuators named in ctrl_actuators, zeroed after ctrl_timeout_s of silence; sim.launch.py passes ctrl_actuators through. tiago_patrol.py follows the world's patrol.yaml with pure pursuit on the wheels.
0.4.0 is a breaking release: robots and loops go through an Env, and ensure_plugins_loaded() and a Robot's index maps are internal. SceneNode loads its world through Env::adopt inside init_env, which loads the plugins first, and frees the adopted pair itself. OpenArmIk builds its chain in a private Env running on a copy of the model and reads the qpos, dof and actuator indices from the model directly, with the same actuator lookup 0.3 used. find_package asks for 0.4, as the package now matches within a minor version only; dependencies.repos pins v0.4.0, and the OpenArm launcher and docs name the MuJoCo 3.14.0 library.
A gripper closed on an object stops moving while the bridge's command kept closing, passing the 8 mm following check within ~0.5 s and disarming both arms. The command now leads the measured finger position by at most 4 mm, so a stalled grip holds a bounded squeeze; joint-limit checks are unchanged. on_activate re-arms the first-read fresh-reply wait and the first-write dt allowance, which previously applied to the first activation only. With motion bounds off, a held first delta reported translation_limit or rotation_limit; the reason now comes from the check that fired. PollWorldLock set the label colour before its null check; UpdateLockLabel already sets it, guarded. The hardware doc gave an 8 ms CAN batch limit; the code uses 30 ms.
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.
Add independent left- and right-arm control with separate grip, trigger, and calibration.
Allow movement to start from a comfortable hand position.
Add hand-orientation guides that turn green when ready to make it easier for the ui.
Show temporary recovery instructions when limits are reached or tracking pauses.
Fix false tracking timeouts caused by headset timestamp changes.
Update setup documentation and add regression tests.
Add guarded OpenArm hardware teleoperation alongside simulation