feat(controls): Terrain adaptation — surface detection + dynamic speed/balance adjustment #142

Closed
opened 2026-03-02 09:31:32 -05:00 by sl-jetson · 0 comments
Collaborator

Summary

Adapt balance and speed parameters based on detected terrain type.

Requirements

  • Terrain classification: IMU vibration analysis to detect surface type (smooth, gravel, grass, carpet, tile)
  • Dynamic speed limits: Reduce max speed on rough terrain, increase on smooth
  • Balance adaptation: Adjust PID aggressiveness based on surface grip estimate
  • Incline detection: Detect uphill/downhill from IMU pitch trend, adjust motor bias
  • Wheel slip detection: Compare expected vs actual speed from IMU, reduce power on slip
  • ROS2 topics: /saltybot/terrain (Terrain msg with type + roughness + incline + grip)
  • Logging: Terrain history for route planning (prefer smooth paths)

Agent: sl-controls

Labels: phase-2, terrain

## Summary Adapt balance and speed parameters based on detected terrain type. ## Requirements - **Terrain classification**: IMU vibration analysis to detect surface type (smooth, gravel, grass, carpet, tile) - **Dynamic speed limits**: Reduce max speed on rough terrain, increase on smooth - **Balance adaptation**: Adjust PID aggressiveness based on surface grip estimate - **Incline detection**: Detect uphill/downhill from IMU pitch trend, adjust motor bias - **Wheel slip detection**: Compare expected vs actual speed from IMU, reduce power on slip - **ROS2 topics**: /saltybot/terrain (Terrain msg with type + roughness + incline + grip) - **Logging**: Terrain history for route planning (prefer smooth paths) ## Agent: sl-controls ## Labels: phase-2, terrain
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

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