Skip to content

Add guarded continuous effort control for MPC - #1

Draft
ZihaoLu001 wants to merge 13 commits into
mainfrom
agent/continuous-gn01-effort-mpc
Draft

Add guarded continuous effort control for MPC#1
ZihaoLu001 wants to merge 13 commits into
mainfrom
agent/continuous-gn01-effort-mpc

Conversation

@ZihaoLu001

Copy link
Copy Markdown
Collaborator

Summary

  • add signed GN01 force targets with no desired-width action
  • add a strict v5 joint-torque trajectory RPC backed by Flexiv RT_JOINT_TORQUE
  • bind commands to RobotInfo.tau_max, a 30% safety-profile ceiling, 1 kHz timing, gravity compensation, soft limits, and acknowledged torque continuity
  • keep all real torque execution behind explicit config and hardware-verification gates

Evidence

  • official mppi-isaac pick configuration uses effort control for the mobile manipulator
  • Flexiv RDK documents 1 kHz joint torque streaming and signed Gripper.Grasp(force)

Validation

  • full local pytest suite passed
  • focused local torque/protocol tests: 15 passed
  • clean GitHub clone on lab-machine used jointly with the ActAhead branch
  • no real robot motion was launched

Companion ActAhead PR will pin commit cc80d82 and switch the planner to the fixed effort action contract.

ZihaoLu001 and others added 13 commits July 30, 2026 18:40
- Gripper button toggles on rising edge only (was: once per tick while
  held); edge state tracked every tick and in intervention()
- ROS bridge delta_twist_cmds: default unitless [-1,1] semantics with
  Servo-matching scales + stale-command drop; speed_units opt-out
- GN01 width/initial-state conventions aligned with the ROS teleop repo;
  configurable signs for device-to-robot axis calibration
- Version 0.2.0, changelog for undocumented 0.1.6-0.1.8

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…e-independent twist integration

- Initial gripper open/closed state inferred from reported width
  (intervention() no longer emits close+grasp for an untouched gripper)
- Gripper edge actuates with the deadman released (zero-motion servo call)
  instead of silently flipping internal state
- ROS bridge integrates twists over the actual message interval, capped at
  twist_max_age; jog params validated before hardware connect
- Regression tests for all three

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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