feat: smooth velocity (Issue #455) #464

Closed
sl-jetson wants to merge 0 commits from sl-controls/issue-455-smooth-velocity into main
Collaborator

Acceleration limiter + S-curve jerk

Acceleration limiter + S-curve jerk
sl-jetson added 3 commits 2026-03-05 11:07:44 -05:00
Event-driven audio feedback system with 9 sound events:
- boot_complete: Startup chime (ascending notes)
- person_detected: Subtle detection sound (800Hz sine)
- wake_word: Activation beep (1000Hz)
- low_battery: Warning tone (880Hz double beep)
- obstacle_close: Proximity beeps (rapid 1200Hz pulses)
- trick_complete: Success jingle (ascending arpeggio)
- error: Descending warning tone (800→400Hz)
- charging_start: Power-up tone (rising 400→1200Hz)
- geofence_warning: Boundary alert (950Hz)

Features:
- Priority queue for event handling
- Dynamic sound synthesis if WAV/OGG files missing
- Volume control with quiet/night mode support
- Fade in/out for smooth playback
- Configurable per-event duration and priority
- Caching of loaded audio files
- Background playback thread
- Real-time state publishing

Configuration:
- WAV/OGG file loading from /home/seb/saltybot-data/sounds/
- Programmatic sound generation (sine, chime, descending, power-up, beep, jingle, proximity, alert)
- Numpy/scipy-based synthesis
- YAML configuration for all events
- Volume and fade timing controls
- Sample rate: 16kHz, 16-bit audio

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Implement acceleration-limited velocity controller:
- Subscribe to /cmd_vel_raw, publish smoothed /cmd_vel
- Max linear acceleration: 0.5 m/s², angular: 1.0 rad/s²
- Deceleration: 0.8 m/s² (linear), 1.0 rad/s² (angular)
- S-curve jerk limiting with 0.2s ramp time
- E-stop immediate stop capability
- Command priority system (e-stop > teleop > geofence > follow-me > nav2 > patrol)
- Publish /saltybot/velocity_profile for monitoring
- 50Hz update rate (configurable)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Implements hand and body gesture recognition via MediaPipe on Jetson Orin GPU.
- MediaPipe Hands (21-point hand landmarks) + Pose (33-point body landmarks)
- Recognizes: wave, point, stop_palm, thumbs_up, come_here, arms_up, arms_spread
- GestureArray publishing at 10–15 fps on Jetson Orin
- Confidence threshold: 0.7 (configurable)
- Range: 2–5 meters optimal
- GPU acceleration via Jetson Tensor RT
- Integrates with voice command router for multimodal interaction
- Temporal smoothing: history-based motion detection (wave, beckon)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
sl-jetson closed this pull request 2026-03-05 11:10:11 -05:00

Pull request closed

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#464
No description provided.