C3D: Cascade Control with Change Point Detection and Deep Koopman Learning for Autonomous Surface Vehicles
<|reference_start|>C3D: Cascade Control with Change Point Detection and Deep Koopman Learning for Autonomous Surface Vehicles: In this paper, we discuss the development and deployment of a robust autonomous system capable of performing various tasks in the maritime domain under unknown dynamic conditions. We investigate a data-driven approach based on modular design for ease of transfer of autonomy across different maritime surface vessel platforms. The data-driven approach alleviates issues related to a priori identification of system models that may become deficient under evolving system behaviors or shifting, unanticipated, environmental influences. Our proposed learning-based platform comprises a deep Koopman system model and a change point detector that provides guidance on domain shifts prompting relearning under severe exogenous and endogenous perturbations. Motion control of the autonomous system is achieved via an optimal controller design. The Koopman linearized model naturally lends itself to a linear-quadratic regulator (LQR) control design. We propose the C3D control architecture Cascade Control with Change Point Detection and Deep Koopman Learning. The framework is verified in station keeping task on an ASV in both simulation and real experiments. The approach achieved at least 13.9 percent improvement in mean distance error in all test cases compared to the methods that do not consider system changes.<|reference_end|>
@article{li2024c3d:,
    title={C3D: Cascade Control with Change Point Detection and Deep Koopman
  Learning for Autonomous Surface Vehicles},
    author={Jianwen Li, Hyunsang Park, Wenjian Hao, Lei Xin, Jalil Chavez-Galaviz,
  Ajinkya Chaudhary, Meredith Bloss, Kyle Pattison, Christopher Vo, Devesh
  Upadhyay, Shreyas Sundaram, Shaoshuai Mou, Nina Mahmoudian},
    journal={arXiv preprint arXiv:2403.05972},
    year={2024},
    archivePrefix={arXiv},
    eprint={2403.05972},
    primaryClass={cs.RO}
}