How mykullllll/smart-walker works
This repository implements a ROS-based Smart Walker that uses LiDAR-observed leg motion and wheel-encoder feedback to estimate gait and command assisted wheel speeds. The principal runtime is the ROS control node, which passes sensor state into the control logic and publishes motor commands; the controller includes clustering, adaptive-frequency feedforward, calibration, corrective feedback, and gait-state handling. The README also describes gait metrics and validation work. Runtime wiring is based on the sampled controller excerpts and README; validation links are documented, but their full runtime integration is not shown.
Main entry points: AFO_control_PID.py ROS control node · AFO_PID.py Cadence and stride · AFO_control_reverse.py Reverse AFO control · dbscan_parameter_sweep.py Clustering sweep
Components 20
Walker runtime
- ROS control node
Control/Code/AFO_control_PID.py - Gait metrics
Control/Code/AFO_control_PID.py - Reverse AFO control
Control/Reverse/AFO_control_reverse.py
Gait and control
- Scan and leg tracking
Control/Code/AFO_PID.py - Cadence and stride
Control/Code/AFO_PID.py - Gait calibration
Control/Code/calibration.py - Feedforward and PID
Control/Code/AFO_PID.py - Freeze and safety
Control/Code/AFO_PID.py - Reverse control logic
Control/Reverse/AFO_reverse.py
Validation workflows
- AFO validation
Validation/AFO/Code/AFO_validation.py - PID validation
Validation/PID/Code/pid_validation.py - LiDAR trial capture
Validation/LiDAR/Code/lidar_scan_values.py - Clustering sweep
Validation/LiDAR/Code/dbscan_parameter_sweep.py - Latency tests
Validation/Latency/Code - Motor tests
Validation/Motor/Code
Hardware trials
- Hardware gait trials
HardwareInTheLoop/Gait_data.py
Other components
- Walker user
- LiDAR scanner
- Wheel encoders
- Wheel motors
Connections 27
- Walker user → LiDAR scanner: moves within view
- LiDAR scanner → ROS control node: publishes scans
- Wheel encoders → ROS control node: publishes velocity
- ROS control node → Scan and leg tracking: processes scans
- ROS control node → Cadence and stride: steps from legs
- Scan and leg tracking → Cadence and stride: tracks legs
- Cadence and stride → Gait calibration: calibrates gait
- ROS control node → Gait calibration: supplies gait history
- ROS control node → Feedforward and PID: computes commands
- Cadence and stride → Feedforward and PID: provides cadence
- Wheel encoders → Feedforward and PID: feedback input
- ROS control node → Freeze and safety: checks gait state
- Freeze and safety → ROS control node: gates control
- ROS control node → Wheel motors: publishes wheel speeds
- ROS control node → Gait metrics: publishes metrics
- AFO validation → Cadence and stride: evaluates oscillator
- PID validation → Feedforward and PID: evaluates feedback
- LiDAR trial capture → Clustering sweep: records trial scans
- Clustering sweep → Scan and leg tracking: sweeps clustering
- Latency tests → ROS control node: checks timing
- Motor tests → Wheel motors: tests response
- LiDAR scanner → Reverse AFO control: publishes scans
- Wheel encoders → Reverse AFO control: publishes state
- Reverse AFO control → Reverse control logic: runs control logic
- Reverse AFO control → Wheel motors: publishes wheel speeds
- LiDAR scanner → Hardware gait trials: provides scans
- Wheel encoders → Hardware gait trials: provides odometry