NaviChair simulates a powered wheelchair with a 360° LIDAR driving through an apartment. It demonstrates the
navigation stack used by assistive mobility robots and the shared-control ideas that let users with limited
motor control drive safely.
1 · Perception
The LIDAR casts rays through a 5 cm occupancy grid (Amanatides–Woo traversal) and intersects moving pedestrians.
In unknown-map mode every scan updates a log-odds occupancy grid: cells along a beam become freer, the hit cell more occupied.
2 · Costmap & global planning
An exact Euclidean distance transform (Felzenszwalb–Huttenlocher) gives the clearance of every cell. Cells closer than the
chair radius are lethal; beyond it an exponential penalty keeps the chair away from walls — smoother, more comfortable routes through doorways.
cost(d) = ∞ if d < r_robot
cost(d) = 1 + w·exp(−(d − r)/0.35) otherwise
8-connected A* finds the cheapest path, then line-of-sight smoothing removes grid zig-zags. The path is replanned when the map changes or it becomes blocked.
3 · Local planning — Dynamic Window Approach
Every 100 ms the planner samples (v, ω) pairs reachable within the acceleration limits, rolls each arc 1.8 s ahead and scores it:
J = w_goal·d_goal + w_head·|Δθ| + w_clear/clearance + w_speed·(v_max − v) [+ w_user·‖u − u_user‖²]
Arcs that would hit a wall or a predicted pedestrian position before the chair can brake are discarded.
4 · Control modes
- Manual — joystick commands go straight to the motors; an optional safety layer scales speed down when the commanded arc would collide.
- Shared — the DWA searches for the safe command closest to the user’s intent: the chair glides through doorways and around people while the user stays in charge. Turn on simulated tremor to see noisy input being filtered.
- Autonomous — pick a room or type a sentence (“I’m hungry, take me to the kitchen”); keywords map to destinations.
Metrics
Assistance is the relative difference between what the user asked for and what was executed — a common measure of how much a shared controller intervenes.