I design and implement from-scratch path planning algorithms tailored for specific robot kinematics. Rather than relying on generic planners, I build custom Nav2 plugins that exploit the unique capabilities of each robot platform.
Differential Drive
For differential drive robots, my planner generates smooth, curvature-continuous trajectories:
- A*-based Global Planner โ Grid-based graph search with custom cost functions accounting for turn penalties and clearance from obstacles
- DWA Local Planner โ Dynamic Window Approach sampling the velocity space for real-time obstacle avoidance
- Velocity Profiling โ Trapezoidal velocity profiles with configurable acceleration limits for smooth starts, stops, and turns
Swerve Drive
For the three-wheel omnidirectional swerve robot used in DD Robocon 2025:
- Holonomic Planner โ Exploits the swerve drive's ability to translate in any direction independently of heading
- Trajectory Optimization โ Minimum-jerk trajectory generation for optimal module steering coordination
- Module Synchronization โ Coordinated wheel steering to prevent wheel scrub and ensure smooth heading changes
- Recovery Behaviors โ Custom fallback strategies when the robot gets stuck or encounters unexpected obstacles
Implementation as Nav2 Plugins
All planners are implemented as proper Nav2 lifecycle-managed plugins in C++. They follow the Nav2 plugin architecture, making them drop-in replaceable and fully compatible with the Nav2 behavior tree navigator.
View Project Details โ