Goal-Reaching Trajectory Design Near Danger with Piecewise Affine Reach-avoid Computation
<|reference_start|>Goal-Reaching Trajectory Design Near Danger with Piecewise Affine Reach-avoid Computation: Autonomous mobile robots must maintain safety, but should not sacrifice performance, leading to the classical reach-avoid problem: find a trajectory that is guaranteed to reach a goal and avoid obstacles. This paper addresses the near danger case, also known as a narrow gap, where the agent starts near the goal, but must navigate through tight obstacles that block its path. The proposed method builds off the common approach of using a simplified planning model to generate plans, which are then tracked using a high-fidelity tracking model and controller. Existing approaches use reachability analysis to overapproximate the error between these models and ensure safety, but doing so introduces numerical approximation error conservativeness that prevents goal-reaching. The present work instead proposes a Piecewise Affine Reach-avoid Computation (PARC) method to tightly approximate the reachable set of the planning model. PARC significantly reduces conservativeness through a careful choice of the planning model and set representation, along with an effective approach to handling time-varying tracking errors. The utility of this method is demonstrated through extensive numerical experiments in which PARC outperforms state-of-the-art reach avoid methods in near-danger goal reaching. Furthermore, in a simulated demonstration, PARC enables the generation of provably-safe extreme vehicle dynamics drift parking maneuvers. A preliminary hardware demo on a TurtleBot3 also validates the method.<|reference_end|>
@article{chung2024goal-reaching,
    title={Goal-Reaching Trajectory Design Near Danger with Piecewise Affine
  Reach-avoid Computation},
    author={Long Kiu Chung, Wonsuhk Jung, Chuizheng Kong, and Shreyas Kousik},
    journal={arXiv preprint arXiv:2402.15604},
    year={2024},
    archivePrefix={arXiv},
    eprint={2402.15604},
    primaryClass={cs.RO cs.SY eess.SY}
}