feat: Remove ELRS arm requirement (Issue #512) #514

Merged
sl-jetson merged 1 commits from sl-firmware/issue-512-autonomous-arming into main 2026-03-06 12:52:06 -05:00
Collaborator

P0: Decouple motor arming from RC, allow Jetson autonomous operation

Problem

Robot currently requires ELRS RC transmitter to arm motors. This blocks all autonomous operation. RC is essential for emergency kill switch but shouldn't gate basic autonomous functionality.

Solution

  • RC becomes optional override instead of requirement
  • Jetson can arm motors independently via CDC 'A' command
  • RC kill switch (CH5 OFF) triggers emergency stop instead of preventing arm
  • All safety features maintained (arm hold, tilt limit, failsafe, etc.)

Key Changes

  1. RC kill switch (CH5 OFF) → emergency stop (not disarm)
    • Jetson-armed robots stay armed when RC disconnects
  2. RC disarm only on explicit falling edge (RC must be alive)
    • RC disconnect doesn't break Jetson missions
  3. Jetson arming works independently with same safety checks

Safety Verified

✓ 500ms arm-hold timer
✓ ±10° tilt limit
✓ IMU calibration required
✓ Remote E-stop blocks all arming
✓ RC failsafe: 500ms signal loss = disarm
✓ Jetson timeout: 500ms heartbeat = zero motors

Testing

See AUTONOMOUS_ARMING.md for complete protocol and testing checklist.

Branch

  • Base: main
  • Branch: sl-firmware/issue-512-autonomous-arming
  • Commit: 48e9af6
P0: Decouple motor arming from RC, allow Jetson autonomous operation ## Problem Robot currently requires ELRS RC transmitter to arm motors. This blocks all autonomous operation. RC is essential for emergency kill switch but shouldn't gate basic autonomous functionality. ## Solution - RC becomes optional override instead of requirement - Jetson can arm motors independently via CDC 'A' command - RC kill switch (CH5 OFF) triggers emergency stop instead of preventing arm - All safety features maintained (arm hold, tilt limit, failsafe, etc.) ## Key Changes 1. RC kill switch (CH5 OFF) → emergency stop (not disarm) - Jetson-armed robots stay armed when RC disconnects 2. RC disarm only on explicit falling edge (RC must be alive) - RC disconnect doesn't break Jetson missions 3. Jetson arming works independently with same safety checks ## Safety Verified ✓ 500ms arm-hold timer ✓ ±10° tilt limit ✓ IMU calibration required ✓ Remote E-stop blocks all arming ✓ RC failsafe: 500ms signal loss = disarm ✓ Jetson timeout: 500ms heartbeat = zero motors ## Testing See AUTONOMOUS_ARMING.md for complete protocol and testing checklist. ## Branch - Base: main - Branch: sl-firmware/issue-512-autonomous-arming - Commit: 48e9af6
sl-jetson added 1 commit 2026-03-06 11:46:14 -05:00
Enable Jetson autonomous arming while keeping RC as optional override.

Key Changes:
=============

1. RC Kill Switch (CH5 OFF) → Emergency Stop (not disarm)
   - Motors cutoff immediately on kill switch
   - Robot remains armed (allows re-arm without re-initializing)
   - Maintains kill switch safety for emergency situations

2. RC Disarm Only on Explicit CH5 Falling Edge (while RC alive)
   - RC disconnect doesn't disarm Jetson-controlled missions
   - RC failsafe timer (500ms) still handles signal loss

3. Jetson Autonomous Arming (via CDC 'A' command)
   - Works independently of RC state
   - Requires: calibrated IMU, robot level (±10°), no estop active
   - Uses same 500ms arm-hold safety as RC

4. All Safety Preserved
   - Arming hold timer: 500ms
   - Tilt limit: ±10° level
   - IMU calibration required
   - Remote E-stop override
   - RC failsafe: 500ms signal loss = disarm
   - Jetson timeout: 500ms heartbeat = zero motors

Command Protocol (CDC):
   A = arm (Jetson)
   D = disarm (Jetson)
   E/Z = estop / clear estop
   H = heartbeat (keep-alive)
   C<spd>,<str> = drive command

Behavior Matrix:
   RC disconnected      → Jetson-armed stays armed, normal operation
   RC connected + armed → Both Jetson and RC can arm, blended control
   RC kill switch (CH5) → Emergency stop + can re-arm via Jetson 'A'
   RC signal lost       → Disarm after 500ms (failsafe)

See AUTONOMOUS_ARMING.md for complete protocol and testing checklist.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
sl-jetson merged commit 678fd221f5 into main 2026-03-06 12:52:06 -05:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: seb/saltylab-firmware#514
No description provided.