libai1943/CartesianPlanner

Autonomous Driving on Curvy Roads without Reliance on Frenet Frame: A Cartesian-based Trajectory Planning Method

What it solves

This project provides a trajectory planning system for autonomous vehicles operating on curved roads. It addresses the limitations of traditional Frenet-frame planners, which can struggle with high road curvature or complex obstacle layouts, by formulating the planning and optimization process directly in the Cartesian plane.

How it works

The planner uses a two-stage pipeline to generate a safe, smooth path:

  1. Coarse Trajectory Generation: A Dynamic Programming (DP) search finds an initial collision-free path based on road references and obstacle positions. This serves as a starting point for the next stage.
  2. Iterative Cartesian Optimization: The coarse path is refined using nonlinear optimization (via CasADi and Ipopt). The system optimizes for vehicle motion smoothness, heading, and jerk while enforcing physical vehicle constraints.

To handle collisions, the system generates "Cartesian corridors"—axis-aligned collision-free boxes around the vehicle's front and rear positions. These corridors are iteratively updated as the trajectory is refined, ensuring the final path remains safe.

Who it’s for

This is designed for robotics and autonomous driving engineers working on motion planning, specifically those looking for alternatives to Frenet-frame coordinate systems for navigating complex road geometries.

Highlights

  • Direct Cartesian Formulation: Avoids coordinate transformation difficulties on highly curved roads.
  • Two-Stage Pipeline: Combines fast DP search for global feasibility with nonlinear optimization for local smoothness.
  • Dynamic Obstacle Support: Handles time-varying obstacles by querying predicted future occupancy.
  • Iterative Corridor Refinement: Progressively adapts collision-free spatial boxes to the evolving trajectory estimate.
  • ROS Integration: Fully implemented as a ROS package with RViz visualization support.

Related

  • Project
  • Project
  • Project
  • Project