CSDO: Enhancing Efficiency and Success in Large-Scale Multi-Vehicle Trajectory Planning (2024)

Yibin Yang, Shaobing Xu, Xintao Yan, Junkai Jiang, Jianqiang Wang, Heye HuangThis work was supported in part by National Natural Science Foundation of China, Science Fund for Creative Research Groups (52221005) and the Key Project (52131201). (Corresponding author: Heye Huang.)Y. Yang, J. Jiang, S. Xu, J. Wang and H. Huang are with the School of Vehicle and Mobility, Tsinghua University, Beijing 100084, China. (Email: yyb19,hhy18,jiangjk21@mails.tsinghua.edu.cn; shaobxu, wjqlws@tsinghua.edu.cn).X. Yan is with the Department of Civil and Environmental Engineering, University of Michigan, Ann Arbor, MI 48109 USA. (xintaoy@umich.edu)

Abstract

This paper presents an efficient algorithm, naming Centralized Searching and Decentralized Optimization (CSDO), to find feasible solution for large-scale Multi-Vehicle Trajectory Planning (MVTP) problem.Due to the intractable growth of non-convex constraints with the number of agents, exploring various hom*otopy classes that imply different convex domains, is crucial for finding a feasible solution.However, existing methods struggle to explore various hom*otopy classes efficiently due to combining it with time-consuming precise trajectory solution finding.CSDO, addresses this limitation by separating them into different levels and integrating an efficient Multi-Agent Path Finding (MAPF) algorithm to search hom*otopy classes.It first searches for a coarse initial guess using a large search step, identifying a specific hom*otopy class.Subsequent decentralized Quadratic Programming (QP) refinement processes this guess, resolving minor collisions efficiently.Experimental results demonstrate that CSDO outperforms existing MVTP algorithms in large-scale, high-density scenarios, achieving up to 95% success rate in 50m ×\times× 50m random scenarios around one second. Source codes are released in https://github.com/YangSVM/CSDOTrajectoryPlanning.

Index Terms:

Multi-robot systems, Path planning for multiple mobile robots or agents, nonholonomic motion planning.

publicationid: pubid: 0000–0000/00$00.00©2021 IEEE

I Introduction

Multi-vehicle trajectory planning (MVTP) seeks to generate a set of collision-free trajectories for multiple vehicles, from current positions to pre-set goals in a known unstructured environment, while minimizing travel time [1, 2]. It is a fundamental problem with diverse applications, such as cooperative parking and warehouse automation. In practical applications, there is a need to efficiently obtain solutions with a limited time [3]. As a non-convex optimization problem, MVTP necessitates a trade-off between solution quality and computational efficiency [4]. Particularly, in scenarios involving a large number of vehicles within a narrow space, the frequency of vehicle-to-obstacle and vehicle-to-vehicle conflicts increases, complicating the search for optimal or even feasible solutions [5, 6]. This work aims to develop an efficient algorithm that quickly finds feasible solutions with a high success rate for large-scale MVTP problems.

I-A Related Work

The hom*otopy class can be loosely defined as a set of solutions that are capable of continuous deformation into one another, without intersecting obstacles or other agents [7]. Exploring various hom*otopy classes is essential for solving large-scale MVTP problems [1]. Therefore, we will evaluate the scalability of current MVTP algorithms in narrow space with their ability to explore hom*otopy classes. Table I summarizes the existing MVTP algorithms.

MethodsFeatureRuntime
Narrow Space
Scalability
CoupledOptimal; Complete.Very slowVery Small
Distributed planningLack of cooperation.FastSmall
Constraint ReductionOptimal.Relative slowLarge
Tube constructionHighly rely on initial guess.FastSmall
Grid search based
Underuse efficient MAPF;
Step size trade-off.
VariableLarge

Coupled planning methods [8, 9] treat all vehicles as a single, very high dimensional agent. This approach relies solely on the optimizer’s capability to traverse between different hom*otopy classes. While coupled planning methods guarantee completeness and even optimality, the computational complexity increases rapidly with growing number of non-convex constraints.In general, coupled planning methods exhibit poor scalability.

Distributed Planning methods address MVTP in a single-agent manner, treating others as moving obstacles [10, 11, 12]. They have high efficiency in sparse scenarios but struggle with coordination, restricting the exploration of hom*otopy classes. In practice, these methods often struggle to generate high-quality collaboration and the success rate decreases as scale increases, particularly in obstacle-dense scenarios.

Constraint reduction [1, 13, 14] dynamically adjusts the problem’s complexity by adding or removing constraints, continuously approaching a feasible or even optimal solution.They achieve transitions between different hom*otopy classes by solving different nonlinear programming problems (NLP). However, solving NLP can be time-consuming.

Tube construction methods [15, 16, 17] construct a safe corridor for each vehicle so the vehicle can be separated with the obstacles and other vehicles.Tube construction’s solution is strictly hom*otopic with the reference trajectories. Therefore, it only searches limited hom*otopy classes and performs poorly without an approximately feasible initial guess.

Grid search [18, 2] based methods discretize vehicle poses, actions, and space, utilizing a search algorithm to find discrete trajectories. This search algorithm is closely linked to a well-studied problem known as Multi-Agent Path Finding (MAPF), focusing on planning collision-free paths for multiple agents in a grid-like environment while minimizing travel time.Despite the NP-hard nature of MAPF, various efficient sub-optimal algorithms can generate paths for hundreds of agents in under a second [19], aligning with MVTP’s need for finding feasible solutions efficiently. However, the potential of these efficient MAPF algorithms remains largely unexplored in the MVTP field [20]. Moreover, akin to single-agent grid searching motion planning algorithms, when the search step size is too small, the search space becomes too large, posing challenges for real-time requirements. Conversely, when the search step size is too large, the solution space diminishes, making it challenging to find a solution, and collisions may occur between search steps, rendering the solution infeasible. Therefore, grid search-based methods are more suitable for generating a coarse initial guess containing hom*otopy class information rather than directly generating fine solutions.

I-B Motivation and Contribution

Existing methods search limited hom*otopy classes or search them inefficiently.In this letter, we propose a hierarchical planner, centralized searching and decentralized optimization (CSDO), tailored for large-scale MVTP problem. Specifically, by adapting the efficient MAPF algorithm priority based search (PBS) [19] for MVTP to generate an initial guess, CSDO aims at searching various hom*otopy classes with a large grid size, despite initial minor collisions. We further employ a tube construction method to generate a safe and precise solution. By transforming multi-vehicle constraints into single-vehicle planning problems near this initial guess, we simplify the MVTP into parallel, solvable ones, enhancing efficiency.

Accordingly, the main contributions are outlined as follows.

  1. 1.

    CSDO, an efficient, scalable multi-vehicle trajectory planning algorithm, employs a hierarchical framework to enhance search capabilities across diverse hom*otopy classes. Experiments demonstrate CSDO outperforms existing methods in random scenarios, especially in large scale and high-density environments.

  2. 2.

    A seamless adaptation of the priority-based search method from the MAPF domain into the complex non-holonomic MVTP problems, enabling efficient exploration for feasible or near-feasible solutions.

  3. 3.

    An efficient distributed local solver is introduced. Given a hom*otopically correct reference solution, the local solver can generate feasible solutions within approximately 300 ms for nearly 100 agents on a typical 100 m × 100 m size random map.

II Problem Definition

A MVTP problem can be defined by a ten element tuple M,𝒲,𝒪,z,,s,g,f,𝒯,P𝑀𝒲𝒪𝑧𝑠𝑔𝑓𝒯𝑃\langle M,\mathcal{W},\mathcal{O},z,\mathcal{R},s,g,f,\mathcal{T},P\rangle⟨ italic_M , caligraphic_W , caligraphic_O , italic_z , caligraphic_R , italic_s , italic_g , italic_f , caligraphic_T , italic_P ⟩. Consider a system consisting of M𝑀Mitalic_M front-steering agents a(1),a(2),,a(M)superscript𝑎1superscript𝑎2superscript𝑎𝑀a^{(1)},a^{(2)},...,a^{(M)}italic_a start_POSTSUPERSCRIPT ( 1 ) end_POSTSUPERSCRIPT , italic_a start_POSTSUPERSCRIPT ( 2 ) end_POSTSUPERSCRIPT , … , italic_a start_POSTSUPERSCRIPT ( italic_M ) end_POSTSUPERSCRIPT operating in a continuous planar workspace 𝒲2𝒲superscript2\mathcal{W}\subset\mathbb{R}^{2}caligraphic_W ⊂ blackboard_R start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT. We use [M]delimited-[]𝑀[M][ italic_M ] to denote the set {1,2,,M}12𝑀\{1,2,...,M\}{ 1 , 2 , … , italic_M } for simplicity. There is some random static obstacles lying in the environment and occupying the workspace 𝒪𝒪\mathcal{O}caligraphic_O. We use superscript (i)𝑖(i)( italic_i ) to represent the variable related to agent a(i)superscript𝑎𝑖a^{(i)}italic_a start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT. z(i)=[x(i),y(i),θ(i)]T3superscript𝑧𝑖superscriptsuperscript𝑥𝑖superscript𝑦𝑖superscript𝜃𝑖𝑇superscript3z^{(i)}=[x^{(i)},y^{(i)},\theta^{(i)}]^{T}\in\mathbb{R}^{3}italic_z start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT = [ italic_x start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT , italic_y start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT , italic_θ start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT refers to the state of agent a(i)superscript𝑎𝑖a^{(i)}italic_a start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT, where (x(i),y(i))superscript𝑥𝑖superscript𝑦𝑖(x^{(i)},y^{(i)})( italic_x start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT , italic_y start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) is the position of rear axis center of agent a(i)superscript𝑎𝑖a^{(i)}italic_a start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT and θ(i)superscript𝜃𝑖\theta^{(i)}italic_θ start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT is its yaw angle.We use agent occupancy function (z):3𝒲:𝑧superscript3𝒲\mathcal{R}(z):\mathbb{R}^{3}\rightarrow\mathcal{W}caligraphic_R ( italic_z ) : blackboard_R start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT → caligraphic_W to represent the workspace occupied by the agent’s body at state z𝑧zitalic_z.Agent’s trajectory is represented by a sequence of vehicle states sampled at fixed time interval ΔtΔ𝑡\Delta troman_Δ italic_t. It is denoted as 𝒯=[z0,z1,,zτ]𝒯subscript𝑧0subscript𝑧1subscript𝑧𝜏\mathcal{T}=[z_{0},z_{1},...,z_{\tau}]caligraphic_T = [ italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_z start_POSTSUBSCRIPT italic_τ end_POSTSUBSCRIPT ], where the τ+1𝜏1\tau+1italic_τ + 1 is the number of states in the trajectory.For one MVTP task, agent a(i)superscript𝑎𝑖a^{(i)}italic_a start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT’s trajectory 𝒯(i)superscript𝒯𝑖\mathcal{T}^{(i)}caligraphic_T start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT need to start from the start state s(i)superscript𝑠𝑖s^{(i)}italic_s start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT and end at the goal state g(i)superscript𝑔𝑖g^{(i)}italic_g start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT. The MVTP task is finished only when all the agents arrive at their goals at a specific time τfsubscript𝜏𝑓\tau_{f}italic_τ start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT.

z0(i)=s(i),zτf(i)=g(i),i[M].formulae-sequencesubscriptsuperscript𝑧𝑖0superscript𝑠𝑖formulae-sequencesubscriptsuperscript𝑧𝑖subscript𝜏𝑓superscript𝑔𝑖for-all𝑖delimited-[]𝑀z^{(i)}_{0}=s^{(i)},z^{(i)}_{\tau_{f}}=g^{(i)},\forall i\in[M].italic_z start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = italic_s start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT , italic_z start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_τ start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT end_POSTSUBSCRIPT = italic_g start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT , ∀ italic_i ∈ [ italic_M ] .(1)

The control input of agent a(i)superscript𝑎𝑖a^{(i)}italic_a start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT is denoted as u(i)=[v(i),ω(i)]Tsuperscript𝑢𝑖superscriptsuperscript𝑣𝑖superscript𝜔𝑖𝑇u^{(i)}=[v^{(i)},\omega^{(i)}]^{T}italic_u start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT = [ italic_v start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT , italic_ω start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT, where ω(i)=ϕ˙(i)superscript𝜔𝑖superscript˙italic-ϕ𝑖\omega^{(i)}=\dot{\phi}^{(i)}italic_ω start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT = over˙ start_ARG italic_ϕ end_ARG start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT, ϕ(i)superscriptitalic-ϕ𝑖\phi^{(i)}italic_ϕ start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT is the front-wheel steering angle, v(i)superscript𝑣𝑖v^{(i)}italic_v start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT is the velocity. For agent a(i)superscript𝑎𝑖a^{(i)}italic_a start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT, its planned trajectory zt(i)subscriptsuperscript𝑧𝑖𝑡z^{(i)}_{t}italic_z start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT should be kinematic feasible for the Ackermann-steering model f𝑓fitalic_f. We denote ζ=[x,y,θ,ϕ]T𝜁superscript𝑥𝑦𝜃italic-ϕ𝑇\zeta=[x,y,\theta,\phi]^{T}italic_ζ = [ italic_x , italic_y , italic_θ , italic_ϕ ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT to include the state and steering angle. The kinematic model can be written as follows,

ζt+1(i)subscriptsuperscript𝜁𝑖𝑡1\displaystyle\zeta^{(i)}_{t+1}italic_ζ start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t + 1 end_POSTSUBSCRIPT=ζt(i)+[vt(i)cos(θt(i))vt(i)sin(θt(i))vt(i)tan(ϕt(i))/Lω]Δt,absentsubscriptsuperscript𝜁𝑖𝑡matrixsubscriptsuperscript𝑣𝑖𝑡subscriptsuperscript𝜃𝑖𝑡subscriptsuperscript𝑣𝑖𝑡subscriptsuperscript𝜃𝑖𝑡subscriptsuperscript𝑣𝑖𝑡subscriptsuperscriptitalic-ϕ𝑖𝑡𝐿𝜔Δ𝑡\displaystyle=\zeta^{(i)}_{t}+\begin{bmatrix}v^{(i)}_{t}\cos(\theta^{(i)}_{t})%\\v^{(i)}_{t}\sin(\theta^{(i)}_{t})\\v^{(i)}_{t}\tan(\phi^{(i)}_{t})/L\\\omega\\\end{bmatrix}\Delta t,= italic_ζ start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT + [ start_ARG start_ROW start_CELL italic_v start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT roman_cos ( italic_θ start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ) end_CELL end_ROW start_ROW start_CELL italic_v start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT roman_sin ( italic_θ start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ) end_CELL end_ROW start_ROW start_CELL italic_v start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT roman_tan ( italic_ϕ start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ) / italic_L end_CELL end_ROW start_ROW start_CELL italic_ω end_CELL end_ROW end_ARG ] roman_Δ italic_t ,(2)
0for-all0\displaystyle\forall 0∀ 0t<τf,i[M],formulae-sequenceabsent𝑡subscript𝜏𝑓𝑖delimited-[]𝑀\displaystyle\leq t<\tau_{f},i\in[M],≤ italic_t < italic_τ start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT , italic_i ∈ [ italic_M ] ,
|vt(i)|vmax,|ωt(i)|ωmax,0t<τf,i[M],formulae-sequenceformulae-sequencesubscriptsuperscript𝑣𝑖𝑡subscript𝑣𝑚𝑎𝑥formulae-sequencesubscriptsuperscript𝜔𝑖𝑡subscript𝜔𝑚𝑎𝑥for-all0𝑡subscript𝜏𝑓𝑖delimited-[]𝑀\left|v^{(i)}_{t}\right|\leq v_{max},\left|\omega^{(i)}_{t}\right|\leq\omega_{%max},\forall 0\leq t<\tau_{f},i\in[M],| italic_v start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT | ≤ italic_v start_POSTSUBSCRIPT italic_m italic_a italic_x end_POSTSUBSCRIPT , | italic_ω start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT | ≤ italic_ω start_POSTSUBSCRIPT italic_m italic_a italic_x end_POSTSUBSCRIPT , ∀ 0 ≤ italic_t < italic_τ start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT , italic_i ∈ [ italic_M ] ,(3)
|ϕt(i)|ϕmax,0tτf,i[M],formulae-sequenceformulae-sequencesubscriptsuperscriptitalic-ϕ𝑖𝑡subscriptitalic-ϕ𝑚𝑎𝑥for-all0𝑡subscript𝜏𝑓𝑖delimited-[]𝑀\left|\phi^{(i)}_{t}\right|\leq\phi_{max},\forall 0\leq t\leq\tau_{f},i\in[M],| italic_ϕ start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT | ≤ italic_ϕ start_POSTSUBSCRIPT italic_m italic_a italic_x end_POSTSUBSCRIPT , ∀ 0 ≤ italic_t ≤ italic_τ start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT , italic_i ∈ [ italic_M ] ,(4)

where the L𝐿Litalic_L is the vehicle wheelbase. The agents cannot collide with static obstacles or any other agents, i.e.

(zt(i))𝒪=,t0,i[M],formulae-sequencesubscriptsuperscript𝑧𝑖𝑡𝒪formulae-sequencefor-all𝑡0for-all𝑖delimited-[]𝑀\mathcal{R}(z^{(i)}_{t})\cap\mathcal{O}=\emptyset,\forall t\geq 0,\forall i\in%[M],caligraphic_R ( italic_z start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ) ∩ caligraphic_O = ∅ , ∀ italic_t ≥ 0 , ∀ italic_i ∈ [ italic_M ] ,(5)
(zt(i))(zt(j))=,t0,i,j[M],ij.formulae-sequencesubscriptsuperscript𝑧𝑖𝑡subscriptsuperscript𝑧𝑗𝑡formulae-sequencefor-all𝑡0for-all𝑖formulae-sequence𝑗delimited-[]𝑀𝑖𝑗\mathcal{R}(z^{(i)}_{t})\cap\mathcal{R}(z^{(j)}_{t})=\emptyset,\forall t\geq 0%,\forall i,j\in[M],i\neq j.caligraphic_R ( italic_z start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ) ∩ caligraphic_R ( italic_z start_POSTSUPERSCRIPT ( italic_j ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ) = ∅ , ∀ italic_t ≥ 0 , ∀ italic_i , italic_j ∈ [ italic_M ] , italic_i ≠ italic_j .(6)

The solution plan P𝑃Pitalic_P, comprising collision-free trajectories for all agents, is measured by its makespan𝑚𝑎𝑘𝑒𝑠𝑝𝑎𝑛makespanitalic_m italic_a italic_k italic_e italic_s italic_p italic_a italic_n τfsubscript𝜏𝑓\tau_{f}italic_τ start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT. Considering the summarized elements, a traditional optimal control problem can be formulated as

Minimizeτfsubscript𝜏𝑓\displaystyle\quad\quad\tau_{f}italic_τ start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT(7)
s.t.Boundary Constraints (1),Boundary Constraints (1)\displaystyle\quad\textrm{Boundary Constraints (\ref{eq:boundary_ocp})},Boundary Constraints ( ) ,
Kinematic Constraints (2),(3),(4),Kinematic Constraints (2)34\displaystyle\quad\textrm{Kinematic Constraints (\ref{eq:kine_ocp})},(\ref{eq:%control_max_ocp}),(\ref{eq:phi_max_ocp}),Kinematic Constraints ( ) , ( ) , ( ) ,
Static Collision Constraints (5),Static Collision Constraints (5)\displaystyle\quad\textrm{Static Collision Constraints (\ref{eq:static_ocp})},Static Collision Constraints ( ) ,
Inter-Agent Collision Constraints (6).Inter-Agent Collision Constraints (6)\displaystyle\quad\textrm{Inter-Agent Collision Constraints (\ref{eq:inter_ocp%})}.Inter-Agent Collision Constraints ( ) .

III Method

CSDO: Enhancing Efficiency and Success in Large-Scale Multi-Vehicle Trajectory Planning (1)

The overall CSDO framework is illustrated in Fig. 1. Upon receiving the start poses, goal poses, and obstacle information, these components are combined to form a Multi-Vehicle Trajectory Planning (MVTP) instance. Subsequently, the centralized priority based searching phase generates coarse trajectories as an initial guess. The decentralized Quadratic Programming (QP) refinement follows, where inter-vehicle constraints are divided and solved in parallel using the QP formulation. Finally, the obtained solution is then sent to the respective multiple vehicles, which subsequently track the collision-free trajectories to reach their goals.

III-A Centralized Priority based Searching

CSDO: Enhancing Efficiency and Success in Large-Scale Multi-Vehicle Trajectory Planning (2)

By discretizing the MVTP problem, we can utilize search algorithms to find an initial guess. As in Fig. 2, the deiscretizing process consists of state z𝑧zitalic_z discretization, kinematic model f𝑓fitalic_f discretization and agent collision detection implementation in formula (5-6) as in single agent search algorithm hybrid A* [21]. The state is still stored as a continuous vector but only a limited number of states are kept. As in Fig. 2(a),we discretize the workspace 𝒲𝒲\mathcal{W}caligraphic_W into nxysubscript𝑛𝑥𝑦n_{xy}italic_n start_POSTSUBSCRIPT italic_x italic_y end_POSTSUBSCRIPT grids. Every grid only has nθsubscript𝑛𝜃n_{\theta}italic_n start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPT angles. Then at most nxy×nθ×(τf+1)×Msubscript𝑛𝑥𝑦subscript𝑛𝜃subscript𝜏𝑓1𝑀n_{xy}\times n_{\theta}\times(\tau_{f}+1)\times Mitalic_n start_POSTSUBSCRIPT italic_x italic_y end_POSTSUBSCRIPT × italic_n start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPT × ( italic_τ start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT + 1 ) × italic_M states can be stored. For every agent at a specific time, its continuous state z𝑧zitalic_z will calculate a corresponding discrete state z^=[x^,y^,θ^]T^𝑧superscript^𝑥^𝑦^𝜃𝑇\hat{z}=[\hat{x},\hat{y},\hat{\theta}]^{T}over^ start_ARG italic_z end_ARG = [ over^ start_ARG italic_x end_ARG , over^ start_ARG italic_y end_ARG , over^ start_ARG italic_θ end_ARG ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT based on the L2 loss, where (x^,y^)^𝑥^𝑦(\hat{x},\hat{y})( over^ start_ARG italic_x end_ARG , over^ start_ARG italic_y end_ARG ) is the center position of the grid and θ^{0,2π/nθ,,2π(nθ1)/nθ}^𝜃02𝜋subscript𝑛𝜃2𝜋subscript𝑛𝜃1subscript𝑛𝜃\hat{\theta}\in\{0,2\pi/n_{\theta},...,2\pi(n_{\theta}-1)/n_{\theta}\}over^ start_ARG italic_θ end_ARG ∈ { 0 , 2 italic_π / italic_n start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPT , … , 2 italic_π ( italic_n start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPT - 1 ) / italic_n start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPT }. As in Fig. 2(a), if two states z1(i)(tk)superscriptsubscript𝑧1𝑖subscript𝑡𝑘z_{1}^{(i)}(t_{k})italic_z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ), z2(i)(tk)superscriptsubscript𝑧2𝑖subscript𝑡𝑘z_{2}^{(i)}(t_{k})italic_z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ) of same agent and timestamp have the same discrete state z(i)(tk)^^superscript𝑧𝑖subscript𝑡𝑘\hat{z^{(i)}(t_{k})}over^ start_ARG italic_z start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ) end_ARG, then only the state with minimum cost is saved. The kinematic model f𝑓fitalic_f is simplified to an action set. Actions={FL,FS,FR,BL,BS,BR,Wait}𝐴𝑐𝑡𝑖𝑜𝑛𝑠𝐹𝐿𝐹𝑆𝐹𝑅𝐵𝐿𝐵𝑆𝐵𝑅𝑊𝑎𝑖𝑡Actions=\{FL,FS,FR,BL,BS,BR,Wait\}italic_A italic_c italic_t italic_i italic_o italic_n italic_s = { italic_F italic_L , italic_F italic_S , italic_F italic_R , italic_B italic_L , italic_B italic_S , italic_B italic_R , italic_W italic_a italic_i italic_t }, which stand for front-max-steering-left, front-straight, front-max-steering-right, back-max-steering-left, back-straight, back-max-steering-right and wait respectively. Except for the Wait𝑊𝑎𝑖𝑡Waititalic_W italic_a italic_i italic_t action, all the actions, travels for the same distance. Collision detection utilizes the Separating Axis Theorem and checks only if vehicles collide at the sampling moment, without considering collisions between state transitions.

CSDO: Enhancing Efficiency and Success in Large-Scale Multi-Vehicle Trajectory Planning (3)

Our overall framework is illustrated in Fig. 3. Centralized searching is divided into two layers of search. In the high level, each node represents a subproblem, and each node contains a set of partial priority orders as constraints. Specifically, for any two agents, if ijprecedes𝑖𝑗i\prec jitalic_i ≺ italic_j, then j𝑗jitalic_j has a lower priority than i𝑖iitalic_i, and j𝑗jitalic_j treats i𝑖iitalic_i as a dynamic obstacle to avoid in the low-level planner. For any two agents, they may not have a relationship of ijprecedes𝑖𝑗i\prec jitalic_i ≺ italic_j or jiprecedes𝑗𝑖j\prec iitalic_j ≺ italic_i, meaning they ignore each other and may have collisions. If collisions arise within a node’s plan, two possible partial orders according to a specific conflict will be added to generate child nodes until collisions are entirely resolved.

III-A1 High-level search

1

Input :MAPF instance

2Root𝑅𝑜𝑜𝑡absentRoot\leftarrowitalic_R italic_o italic_o italic_t ←GENERATEROOT() ;

3 // Root=\prec_{Root}=\emptyset≺ start_POSTSUBSCRIPT italic_R italic_o italic_o italic_t end_POSTSUBSCRIPT = ∅

4STACK {Root}absent𝑅𝑜𝑜𝑡\leftarrow\{Root\}← { italic_R italic_o italic_o italic_t };

5whileStack𝑆𝑡𝑎𝑐𝑘Stackitalic_S italic_t italic_a italic_c italic_k absent\neq\emptyset≠ ∅do

6N𝑁absentN\leftarrowitalic_N ← STACK.pop();

7if N.collisionsformulae-sequence𝑁𝑐𝑜𝑙𝑙𝑖𝑠𝑖𝑜𝑛𝑠N.collisionsitalic_N . italic_c italic_o italic_l italic_l italic_i italic_s italic_i italic_o italic_n italic_s = \emptysetthen

8return N.planformulae-sequence𝑁𝑝𝑙𝑎𝑛N.planitalic_N . italic_p italic_l italic_a italic_n;

9(i,j)𝑖𝑗absent(i,j)\leftarrow( italic_i , italic_j ) ← one collision in N.planformulae-sequence𝑁𝑝𝑙𝑎𝑛N.planitalic_N . italic_p italic_l italic_a italic_n;

10Ni,NjNsubscript𝑁𝑖subscript𝑁𝑗𝑁N_{i},N_{j}\leftarrow Nitalic_N start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_N start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ← italic_N ;

11 // Two copies of N𝑁Nitalic_N

12foreach (x,y){(i,j),(j,i)}𝑥𝑦𝑖𝑗𝑗𝑖(x,y)\in\{(i,j),(j,i)\}( italic_x , italic_y ) ∈ { ( italic_i , italic_j ) , ( italic_j , italic_i ) }do

13NxN{yx}\boldsymbol{\prec}_{N_{x}}\leftarrow\boldsymbol{\prec}_{N}\cup\{y\prec x\}bold_≺ start_POSTSUBSCRIPT italic_N start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT end_POSTSUBSCRIPT ← bold_≺ start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ∪ { italic_y ≺ italic_x } ;

14UPDATEPLAN(Nxsubscript𝑁𝑥N_{x}italic_N start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT);

15

16Insert Nisubscript𝑁𝑖N_{i}italic_N start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT and Njsubscript𝑁𝑗N_{j}italic_N start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT into STACK in descending order of their makespan;

17

18

19return false;

We adapt PBS [19, 22] to address our problem as follows. As in algorithm 1, the root node [Line 1] is initialized with an empty set of priority orderings, but we employ a random restart technique to speed up the search process. Within the root node, we attempt to plan the agents sequentially, treating the previously planned agents as dynamic obstacles. If any agent encounters planning failure due to obstruction by preceding agents, we allow it to plan its trajectory freely;When expanding a node, we check for collisions between each vehicle pair at every time step. If no collisions are detected, the node is considered the final result [Line 5-6]. Otherwise, we select a pair of colliding vehicles, i𝑖iitalic_i and j𝑗jitalic_j [Line 7]. Two constraints, ijprecedes𝑖𝑗i\prec jitalic_i ≺ italic_j and jiprecedes𝑗𝑖j\prec iitalic_j ≺ italic_i, are created and resulting in two child nodes. A low-level planner is then employed to replan the trajectories to satisfy the new priorities. To avoid redundant replanning, we topologically sort the new priorities in descending order and plan conflicting lower-priority vehicles from higher to lower priority [Line 11]. Finally, child nodes are inserted [Line 12] in non-decreasing order of the planned makespan of the nodes.

III-A2 Low-level planner

We directly adopt the spatiotemporal Hybrid A* from [2] as our low-level planner. Given a workspace 𝒲𝒲\mathcal{W}caligraphic_W and static obstacle occupancy workspace 𝒪𝒪\mathcal{O}caligraphic_O, the higher priority agents’ trajectories highTrajs𝑖𝑔𝑇𝑟𝑎𝑗𝑠highTrajsitalic_h italic_i italic_g italic_h italic_T italic_r italic_a italic_j italic_s, a predefined start state sisubscript𝑠𝑖s_{i}italic_s start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT and goal state gisubscript𝑔𝑖g_{i}italic_g start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT, the low-level path planner spatiotemporal hybrid A* (STHA*) will search a feasible trajectory. Compared with Hybrid A*, the STHA* add a time dimension to deal with the dynamic obstacles.

In the algorithm 2, it initiates by inserting the start node into open heap [Line 2]. Each node in open heap stores its state z𝑧zitalic_z and timestamp t. The heap pops the node with minimum f𝑓fitalic_f value, where f=h+g𝑓𝑔f=h+gitalic_f = italic_h + italic_g, hhitalic_h represents the admissible heuristic function, similar to that used in Hybrid A*, and g𝑔gitalic_g denotes the action cost from the start node to the current node. Generally, the greater the distance traveled and the more frequent reversing or changing direction, the higher the g𝑔gitalic_g value. A node is popped from the heap for expansion [Lines 4-5]; if the expanded path is valid and collision-free, a solution can be obtained [Lines 6-9]. Otherwise, we iterate through the action set Actions=FL,FS,FR,BL,BS,BR,Wait𝐴𝑐𝑡𝑖𝑜𝑛𝑠𝐹𝐿𝐹𝑆𝐹𝑅𝐵𝐿𝐵𝑆𝐵𝑅𝑊𝑎𝑖𝑡Actions={FL,FS,FR,BL,BS,BR,Wait}italic_A italic_c italic_t italic_i italic_o italic_n italic_s = italic_F italic_L , italic_F italic_S , italic_F italic_R , italic_B italic_L , italic_B italic_S , italic_B italic_R , italic_W italic_a italic_i italic_t to generate subsequent neighbor states of n𝑛nitalic_n [Lines 10-11]. Invalid nodes are discarded [Lines 12-13], while valid ones calculated their f𝑓fitalic_f, g𝑔gitalic_g, and hhitalic_h values [Lines 14-15]. If nsuperscript𝑛n^{\prime}italic_n start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT is not in the open heap, we push it into the heap [Lines 16-17]. Alternatively, if a node nsuperscript𝑛n^{\prime}italic_n start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT matches an existing heap node by timestamp, and state but offers a lower g𝑔gitalic_g cost value, it replaces the existing one [Lines 18-21]. The whole process terminates with an empty solution if the heap empties[Line 22].

Input :𝒪,highTrajs,si,gi𝒪𝑖𝑔𝑇𝑟𝑎𝑗𝑠subscript𝑠𝑖subscript𝑔𝑖\mathcal{O},highTrajs,s_{i},g_{i}caligraphic_O , italic_h italic_i italic_g italic_h italic_T italic_r italic_a italic_j italic_s , italic_s start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_g start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT

1Open \leftarrow new min heap sorted by node’s f value;

2Push (si,t=0)subscript𝑠𝑖𝑡0(s_{i},t=0)( italic_s start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_t = 0 ) into Open;

3whileOpen𝑂𝑝𝑒𝑛Open\neq\emptysetitalic_O italic_p italic_e italic_n ≠ ∅do

4Open𝑂𝑝𝑒𝑛absentOpen\leftarrowitalic_O italic_p italic_e italic_n ←Open.pop();

5pathtoGoalAnalyticExpand(n,gi)𝑝𝑎𝑡subscript𝑡𝑜𝐺𝑜𝑎𝑙𝐴𝑛𝑎𝑙𝑦𝑡𝑖𝑐𝐸𝑥𝑝𝑎𝑛𝑑𝑛subscript𝑔𝑖path_{toGoal}\leftarrow AnalyticExpand(n,g_{i})italic_p italic_a italic_t italic_h start_POSTSUBSCRIPT italic_t italic_o italic_G italic_o italic_a italic_l end_POSTSUBSCRIPT ← italic_A italic_n italic_a italic_l italic_y italic_t italic_i italic_c italic_E italic_x italic_p italic_a italic_n italic_d ( italic_n , italic_g start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) ;

6if pathtoGoal𝑝𝑎𝑡subscript𝑡𝑜𝐺𝑜𝑎𝑙path_{toGoal}italic_p italic_a italic_t italic_h start_POSTSUBSCRIPT italic_t italic_o italic_G italic_o italic_a italic_l end_POSTSUBSCRIPT has no Collision with highTrajs𝑖𝑔𝑇𝑟𝑎𝑗𝑠highTrajsitalic_h italic_i italic_g italic_h italic_T italic_r italic_a italic_j italic_s and 𝒪𝒪\mathcal{O}caligraphic_Othen

7pathtoN𝑝𝑎𝑡subscript𝑡𝑜𝑁absentpath_{toN}\leftarrowitalic_p italic_a italic_t italic_h start_POSTSUBSCRIPT italic_t italic_o italic_N end_POSTSUBSCRIPT ← Get Path By Finding n𝑛nitalic_n’s preceding nodes ;

8pathpathtoN𝑝𝑎𝑡𝑝𝑎𝑡subscript𝑡𝑜𝑁path\leftarrow path_{toN}italic_p italic_a italic_t italic_h ← italic_p italic_a italic_t italic_h start_POSTSUBSCRIPT italic_t italic_o italic_N end_POSTSUBSCRIPT + pathtoGoal𝑝𝑎𝑡subscript𝑡𝑜𝐺𝑜𝑎𝑙path_{toGoal}italic_p italic_a italic_t italic_h start_POSTSUBSCRIPT italic_t italic_o italic_G italic_o italic_a italic_l end_POSTSUBSCRIPT ;

9return path𝑝𝑎𝑡pathitalic_p italic_a italic_t italic_h ;

10

11foreach actionActions𝑎𝑐𝑡𝑖𝑜𝑛𝐴𝑐𝑡𝑖𝑜𝑛𝑠action\in Actionsitalic_a italic_c italic_t italic_i italic_o italic_n ∈ italic_A italic_c italic_t italic_i italic_o italic_n italic_sdo

12nsuperscript𝑛absentn^{\prime}\leftarrowitalic_n start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ← Generate Next State from n𝑛nitalic_n by action𝑎𝑐𝑡𝑖𝑜𝑛actionitalic_a italic_c italic_t italic_i italic_o italic_n ;

13if nsuperscript𝑛n^{\prime}italic_n start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT has collision with highTrajs𝑖𝑔𝑇𝑟𝑎𝑗𝑠highTrajsitalic_h italic_i italic_g italic_h italic_T italic_r italic_a italic_j italic_s or 𝒪𝒪\mathcal{O}caligraphic_Othen

14continue ;

15 // drop this node

16

17n.costn.cost+cost(action)formulae-sequencesuperscript𝑛𝑐𝑜𝑠𝑡𝑛𝑐𝑜𝑠𝑡𝑐𝑜𝑠𝑡𝑎𝑐𝑡𝑖𝑜𝑛n^{\prime}.cost\leftarrow n.cost+cost(action)italic_n start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT . italic_c italic_o italic_s italic_t ← italic_n . italic_c italic_o italic_s italic_t + italic_c italic_o italic_s italic_t ( italic_a italic_c italic_t italic_i italic_o italic_n ) ;

18n.hn.cost+heuristic(n,gi)formulae-sequencesuperscript𝑛superscript𝑛𝑐𝑜𝑠𝑡𝑒𝑢𝑟𝑖𝑠𝑡𝑖𝑐superscript𝑛subscript𝑔𝑖n^{\prime}.h\leftarrow n^{\prime}.cost+heuristic(n^{\prime},g_{i})italic_n start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT . italic_h ← italic_n start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT . italic_c italic_o italic_s italic_t + italic_h italic_e italic_u italic_r italic_i italic_s italic_t italic_i italic_c ( italic_n start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT , italic_g start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) ;

19if nsuperscript𝑛absentn^{\prime}\notinitalic_n start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ∉ Openthen

20Push nsuperscript𝑛n^{\prime}italic_n start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT into Open ;

21

22else

23nsamesuperscriptsubscript𝑛𝑠𝑎𝑚𝑒absentn_{same}^{\prime}\leftarrowitalic_n start_POSTSUBSCRIPT italic_s italic_a italic_m italic_e end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ← same Discrete State as nsuperscript𝑛n^{\prime}italic_n start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT in Open;

24ifn.cost<nsame.costformulae-sequencesuperscript𝑛𝑐𝑜𝑠𝑡superscriptsubscript𝑛𝑠𝑎𝑚𝑒𝑐𝑜𝑠𝑡n^{\prime}.cost<n_{same}^{\prime}.costitalic_n start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT . italic_c italic_o italic_s italic_t < italic_n start_POSTSUBSCRIPT italic_s italic_a italic_m italic_e end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT . italic_c italic_o italic_s italic_tthen

25Replace the nsamesuperscriptsubscript𝑛𝑠𝑎𝑚𝑒n_{same}^{\prime}italic_n start_POSTSUBSCRIPT italic_s italic_a italic_m italic_e end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT to nsuperscript𝑛n^{\prime}italic_n start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT in Open;

26

27

28

return \emptyset ;

III-B Decentralized QP

As shown in Fig. 1, the decentralized QP takes an initial guess as input, then constructs safe corridors along them, and finally outputs trajectories for all agents.

CSDO: Enhancing Efficiency and Success in Large-Scale Multi-Vehicle Trajectory Planning (4)

III-B1 Initial Guess Interpolation

The initial guess, after a simple interpolation, may encounter three types of minor collisions, as illustrated in Fig. 4: type A: collisions between two vehicles, type B: collisions with obstacles, and type C: off-map states. For clarity, we denote x¯¯𝑥\bar{x}over¯ start_ARG italic_x end_ARG as the variable related to the interpolated initial guess. For instance, z¯t(i)subscriptsuperscript¯𝑧𝑖𝑡\bar{z}^{(i)}_{t}over¯ start_ARG italic_z end_ARG start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT is the state of agent i𝑖iitalic_i in the timestamp t𝑡titalic_t in the dense initial guess.

To facilitate collision detection, we employ two uniformly distributed circles to cover the rectangular shape of the vehicle [13]. As illustrated in the Fig. 5, the circle centers are positioned at the quadrant points. The formulas for calculating the centers and radii of the two circles are as follows.

CSDO: Enhancing Efficiency and Success in Large-Scale Multi-Vehicle Trajectory Planning (5)
xtF(i)=xt(i)+Lf2xcosθt(i),ytF(i)=yt(i)+Lf2xsinθt(i),formulae-sequencesubscriptsuperscript𝑥𝐹𝑖𝑡subscriptsuperscript𝑥𝑖𝑡subscript𝐿𝑓2𝑥subscriptsuperscript𝜃𝑖𝑡subscriptsuperscript𝑦𝐹𝑖𝑡subscriptsuperscript𝑦𝑖𝑡subscript𝐿𝑓2𝑥subscriptsuperscript𝜃𝑖𝑡x^{F(i)}_{t}=x^{(i)}_{t}+L_{f2x}\cos{\theta^{(i)}_{t}},y^{F(i)}_{t}=y^{(i)}_{t%}+L_{f2x}\sin{\theta^{(i)}_{t}},italic_x start_POSTSUPERSCRIPT italic_F ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT = italic_x start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT + italic_L start_POSTSUBSCRIPT italic_f 2 italic_x end_POSTSUBSCRIPT roman_cos italic_θ start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT , italic_y start_POSTSUPERSCRIPT italic_F ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT = italic_y start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT + italic_L start_POSTSUBSCRIPT italic_f 2 italic_x end_POSTSUBSCRIPT roman_sin italic_θ start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ,(8a)
xtR(i)=xt(i)+Lr2xcosθt(i),ytR(i)=yt(i)+Lr2xsinθt(i),formulae-sequencesubscriptsuperscript𝑥𝑅𝑖𝑡subscriptsuperscript𝑥𝑖𝑡subscript𝐿𝑟2𝑥subscriptsuperscript𝜃𝑖𝑡subscriptsuperscript𝑦𝑅𝑖𝑡subscriptsuperscript𝑦𝑖𝑡subscript𝐿𝑟2𝑥subscriptsuperscript𝜃𝑖𝑡x^{R(i)}_{t}=x^{(i)}_{t}+L_{r2x}\cos{\theta^{(i)}_{t}},y^{R(i)}_{t}=y^{(i)}_{t%}+L_{r2x}\sin{\theta^{(i)}_{t}},italic_x start_POSTSUPERSCRIPT italic_R ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT = italic_x start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT + italic_L start_POSTSUBSCRIPT italic_r 2 italic_x end_POSTSUBSCRIPT roman_cos italic_θ start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT , italic_y start_POSTSUPERSCRIPT italic_R ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT = italic_y start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT + italic_L start_POSTSUBSCRIPT italic_r 2 italic_x end_POSTSUBSCRIPT roman_sin italic_θ start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ,(8b)
rv=1214(LF2+LB2)+LB2,subscript𝑟𝑣1214superscriptsubscript𝐿𝐹2superscriptsubscript𝐿𝐵2superscriptsubscript𝐿𝐵2r_{v}=\frac{1}{2}\sqrt{\frac{1}{4}(L_{F}^{2}+L_{B}^{2})+L_{B}^{2}},italic_r start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT = divide start_ARG 1 end_ARG start_ARG 2 end_ARG square-root start_ARG divide start_ARG 1 end_ARG start_ARG 4 end_ARG ( italic_L start_POSTSUBSCRIPT italic_F end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_L start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ) + italic_L start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG ,(8c)

where the Lf2x=(3LFLB)/4subscript𝐿𝑓2𝑥3subscript𝐿𝐹subscript𝐿𝐵4L_{f2x}=(3L_{F}-L_{B})/4italic_L start_POSTSUBSCRIPT italic_f 2 italic_x end_POSTSUBSCRIPT = ( 3 italic_L start_POSTSUBSCRIPT italic_F end_POSTSUBSCRIPT - italic_L start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT ) / 4 is distance from the front disc center to the rear-axis center, Lr2x=(LF3LB)/4subscript𝐿𝑟2𝑥subscript𝐿𝐹3subscript𝐿𝐵4L_{r2x}=(L_{F}-3L_{B})/4italic_L start_POSTSUBSCRIPT italic_r 2 italic_x end_POSTSUBSCRIPT = ( italic_L start_POSTSUBSCRIPT italic_F end_POSTSUBSCRIPT - 3 italic_L start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT ) / 4 is distance from the rear disc center to the rear-axis center, LFsubscript𝐿𝐹L_{F}italic_L start_POSTSUBSCRIPT italic_F end_POSTSUBSCRIPT is the distance from rear axis to the front bumper, LBsubscript𝐿𝐵L_{B}italic_L start_POSTSUBSCRIPT italic_B end_POSTSUBSCRIPT is distance from rear axis to the rear bumper. YtF(i)=[xtF(i),ytF(i)]Tsubscriptsuperscript𝑌𝐹𝑖𝑡superscriptsubscriptsuperscript𝑥𝐹𝑖𝑡subscriptsuperscript𝑦𝐹𝑖𝑡𝑇Y^{F(i)}_{t}=[x^{F(i)}_{t},y^{F(i)}_{t}]^{T}italic_Y start_POSTSUPERSCRIPT italic_F ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT = [ italic_x start_POSTSUPERSCRIPT italic_F ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT , italic_y start_POSTSUPERSCRIPT italic_F ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT is the center of the front circle. YtR(i)=[xtR(i),ytR(i)]Tsubscriptsuperscript𝑌𝑅𝑖𝑡superscriptsubscriptsuperscript𝑥𝑅𝑖𝑡subscriptsuperscript𝑦𝑅𝑖𝑡𝑇Y^{R(i)}_{t}=[x^{R(i)}_{t},y^{R(i)}_{t}]^{T}italic_Y start_POSTSUPERSCRIPT italic_R ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT = [ italic_x start_POSTSUPERSCRIPT italic_R ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT , italic_y start_POSTSUPERSCRIPT italic_R ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT refers to the rear circle’s center. rvsubscript𝑟𝑣r_{v}italic_r start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT is the radius of the circle. We denote Y=[xF,yF,xR,yR]T𝑌superscriptsuperscript𝑥𝐹superscript𝑦𝐹superscript𝑥𝑅superscript𝑦𝑅𝑇Y=[x^{F},y^{F},x^{R},y^{R}]^{T}italic_Y = [ italic_x start_POSTSUPERSCRIPT italic_F end_POSTSUPERSCRIPT , italic_y start_POSTSUPERSCRIPT italic_F end_POSTSUPERSCRIPT , italic_x start_POSTSUPERSCRIPT italic_R end_POSTSUPERSCRIPT , italic_y start_POSTSUPERSCRIPT italic_R end_POSTSUPERSCRIPT ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT as the vector of the circles positions. For any i[M],0tτfformulae-sequence𝑖delimited-[]𝑀0𝑡subscript𝜏𝑓i\in[M],0\leq t\leq\tau_{f}italic_i ∈ [ italic_M ] , 0 ≤ italic_t ≤ italic_τ start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT, its linear form is as follows:

Yt(i)=Dt(i)ζt(i)+et(i),superscriptsubscript𝑌𝑡𝑖superscriptsubscript𝐷𝑡𝑖superscriptsubscript𝜁𝑡𝑖superscriptsubscript𝑒𝑡𝑖Y_{t}^{(i)}=D_{t}^{(i)}\zeta_{t}^{(i)}+e_{t}^{(i)},italic_Y start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT = italic_D start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT italic_ζ start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT + italic_e start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ,(9a)
Dt(i)=[10Lf2xsinθ¯t(i)001Lf2xcosθ¯t(i)010Lr2xsinθ¯t(i)001Lr2xcosθ¯t(i)0],superscriptsubscript𝐷𝑡𝑖matrix10subscript𝐿𝑓2𝑥superscriptsubscript¯𝜃𝑡𝑖001subscript𝐿𝑓2𝑥superscriptsubscript¯𝜃𝑡𝑖010subscript𝐿𝑟2𝑥superscriptsubscript¯𝜃𝑡𝑖001subscript𝐿𝑟2𝑥superscriptsubscript¯𝜃𝑡𝑖0D_{t}^{(i)}=\begin{bmatrix}1&0&-L_{f2x}\sin\bar{\theta}_{t}^{(i)}&0\\0&1&L_{f2x}\cos\bar{\theta}_{t}^{(i)}&0\\1&0&-L_{r2x}\sin\bar{\theta}_{t}^{(i)}&0\\0&1&L_{r2x}\cos\bar{\theta}_{t}^{(i)}&0\\\end{bmatrix},\\italic_D start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT = [ start_ARG start_ROW start_CELL 1 end_CELL start_CELL 0 end_CELL start_CELL - italic_L start_POSTSUBSCRIPT italic_f 2 italic_x end_POSTSUBSCRIPT roman_sin over¯ start_ARG italic_θ end_ARG start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 1 end_CELL start_CELL italic_L start_POSTSUBSCRIPT italic_f 2 italic_x end_POSTSUBSCRIPT roman_cos over¯ start_ARG italic_θ end_ARG start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 1 end_CELL start_CELL 0 end_CELL start_CELL - italic_L start_POSTSUBSCRIPT italic_r 2 italic_x end_POSTSUBSCRIPT roman_sin over¯ start_ARG italic_θ end_ARG start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 1 end_CELL start_CELL italic_L start_POSTSUBSCRIPT italic_r 2 italic_x end_POSTSUBSCRIPT roman_cos over¯ start_ARG italic_θ end_ARG start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT end_CELL start_CELL 0 end_CELL end_ROW end_ARG ] ,(9b)
et(i)=[Lf2x(cosθ¯t(i)+θ¯t(i)sinθ¯t(i))Lf2x(sinθ¯t(i)θ¯t(i)cosθ¯t(i))Lr2x(cosθ¯t(i)+θ¯t(i)sinθ¯t(i))Lr2x(sinθ¯t(i)θ¯t(i)cosθ¯t(i))].superscriptsubscript𝑒𝑡𝑖matrixsubscript𝐿𝑓2𝑥superscriptsubscript¯𝜃𝑡𝑖superscriptsubscript¯𝜃𝑡𝑖superscriptsubscript¯𝜃𝑡𝑖subscript𝐿𝑓2𝑥superscriptsubscript¯𝜃𝑡𝑖superscriptsubscript¯𝜃𝑡𝑖superscriptsubscript¯𝜃𝑡𝑖subscript𝐿𝑟2𝑥superscriptsubscript¯𝜃𝑡𝑖superscriptsubscript¯𝜃𝑡𝑖superscriptsubscript¯𝜃𝑡𝑖subscript𝐿𝑟2𝑥superscriptsubscript¯𝜃𝑡𝑖superscriptsubscript¯𝜃𝑡𝑖superscriptsubscript¯𝜃𝑡𝑖e_{t}^{(i)}=\begin{bmatrix}L_{f2x}(\cos{\bar{\theta}_{t}^{(i)}}+\bar{\theta}_{%t}^{(i)}\sin\bar{\theta}_{t}^{(i)})\\L_{f2x}(\sin{\bar{\theta}_{t}^{(i)}}-\bar{\theta}_{t}^{(i)}\cos\bar{\theta}_{t%}^{(i)})\\L_{r2x}(\cos{\bar{\theta}_{t}^{(i)}}+\bar{\theta}_{t}^{(i)}\sin\bar{\theta}_{t%}^{(i)})\\L_{r2x}(\sin{\bar{\theta}_{t}^{(i)}}-\bar{\theta}_{t}^{(i)}\cos\bar{\theta}_{t%}^{(i)})\end{bmatrix}.\\italic_e start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT = [ start_ARG start_ROW start_CELL italic_L start_POSTSUBSCRIPT italic_f 2 italic_x end_POSTSUBSCRIPT ( roman_cos over¯ start_ARG italic_θ end_ARG start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT + over¯ start_ARG italic_θ end_ARG start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT roman_sin over¯ start_ARG italic_θ end_ARG start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) end_CELL end_ROW start_ROW start_CELL italic_L start_POSTSUBSCRIPT italic_f 2 italic_x end_POSTSUBSCRIPT ( roman_sin over¯ start_ARG italic_θ end_ARG start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT - over¯ start_ARG italic_θ end_ARG start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT roman_cos over¯ start_ARG italic_θ end_ARG start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) end_CELL end_ROW start_ROW start_CELL italic_L start_POSTSUBSCRIPT italic_r 2 italic_x end_POSTSUBSCRIPT ( roman_cos over¯ start_ARG italic_θ end_ARG start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT + over¯ start_ARG italic_θ end_ARG start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT roman_sin over¯ start_ARG italic_θ end_ARG start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) end_CELL end_ROW start_ROW start_CELL italic_L start_POSTSUBSCRIPT italic_r 2 italic_x end_POSTSUBSCRIPT ( roman_sin over¯ start_ARG italic_θ end_ARG start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT - over¯ start_ARG italic_θ end_ARG start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT roman_cos over¯ start_ARG italic_θ end_ARG start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) end_CELL end_ROW end_ARG ] .(9c)

III-B2 Neighbor Pair Searching

Given a distance threshold Rtrustsubscript𝑅𝑡𝑟𝑢𝑠𝑡R_{trust}italic_R start_POSTSUBSCRIPT italic_t italic_r italic_u italic_s italic_t end_POSTSUBSCRIPT, we iterate through the plan to search pairs of agents a(i)superscript𝑎𝑖a^{(i)}italic_a start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT and a(j)superscript𝑎𝑗a^{(j)}italic_a start_POSTSUPERSCRIPT ( italic_j ) end_POSTSUPERSCRIPT with a distance less than 22Rtrust22subscript𝑅𝑡𝑟𝑢𝑠𝑡2\sqrt{2}R_{trust}2 square-root start_ARG 2 end_ARG italic_R start_POSTSUBSCRIPT italic_t italic_r italic_u italic_s italic_t end_POSTSUBSCRIPT at the same timestamp. The distance function between two states (ζt(i),ζt(j))subscriptsuperscript𝜁𝑖𝑡subscriptsuperscript𝜁𝑗𝑡(\zeta^{(i)}_{t},\zeta^{(j)}_{t})( italic_ζ start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT , italic_ζ start_POSTSUPERSCRIPT ( italic_j ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ) is defined as follows:

dist𝑑𝑖𝑠𝑡\displaystyle distitalic_d italic_i italic_s italic_t(ζt(i),ζt(j))=min(YtF(i)YtF(j),YtF(i)YtR(j),\displaystyle(\zeta^{(i)}_{t},\zeta^{(j)}_{t})=\min(\left\|Y^{F(i)}_{t}-Y^{F(j%)}_{t}\right\|,\left\|Y^{F(i)}_{t}-Y^{R(j)}_{t}\right\|,( italic_ζ start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT , italic_ζ start_POSTSUPERSCRIPT ( italic_j ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ) = roman_min ( ∥ italic_Y start_POSTSUPERSCRIPT italic_F ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT - italic_Y start_POSTSUPERSCRIPT italic_F ( italic_j ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ∥ , ∥ italic_Y start_POSTSUPERSCRIPT italic_F ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT - italic_Y start_POSTSUPERSCRIPT italic_R ( italic_j ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ∥ ,(10)
YtR(i)YtF(j),YtR(i)YtR(j))2rv,\displaystyle\quad\left\|Y^{R(i)}_{t}-Y^{F(j)}_{t}\right\|,\left\|Y^{R(i)}_{t}%-Y^{R(j)}_{t}\right\|)-2r_{v},∥ italic_Y start_POSTSUPERSCRIPT italic_R ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT - italic_Y start_POSTSUPERSCRIPT italic_F ( italic_j ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ∥ , ∥ italic_Y start_POSTSUPERSCRIPT italic_R ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT - italic_Y start_POSTSUPERSCRIPT italic_R ( italic_j ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ∥ ) - 2 italic_r start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT ,

where the YtF(i)subscriptsuperscript𝑌𝐹𝑖𝑡Y^{F(i)}_{t}italic_Y start_POSTSUPERSCRIPT italic_F ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT, YtR(i)subscriptsuperscript𝑌𝑅𝑖𝑡Y^{R(i)}_{t}italic_Y start_POSTSUPERSCRIPT italic_R ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT, YtF(j)subscriptsuperscript𝑌𝐹𝑗𝑡Y^{F(j)}_{t}italic_Y start_POSTSUPERSCRIPT italic_F ( italic_j ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT, YtR(j)subscriptsuperscript𝑌𝑅𝑗𝑡Y^{R(j)}_{t}italic_Y start_POSTSUPERSCRIPT italic_R ( italic_j ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT are the agent a(i)superscript𝑎𝑖a^{(i)}italic_a start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT’s front disc center, back disc center, agent a(j)superscript𝑎𝑗a^{(j)}italic_a start_POSTSUPERSCRIPT ( italic_j ) end_POSTSUPERSCRIPT’s front disc center and rear disc center respectively. The search result, denoted as NPairs𝑁𝑃𝑎𝑖𝑟𝑠NPairsitalic_N italic_P italic_a italic_i italic_r italic_s, comprises neighbor pairs and their corresponding timestamps. NPairs={(a(i),a(j),t)|dist(ζt(i),ζt(j))<22Rtrust,i,j[M],0tτf}𝑁𝑃𝑎𝑖𝑟𝑠conditional-setsuperscript𝑎𝑖superscript𝑎𝑗𝑡formulae-sequence𝑑𝑖𝑠𝑡subscriptsuperscript𝜁𝑖𝑡subscriptsuperscript𝜁𝑗𝑡22subscript𝑅𝑡𝑟𝑢𝑠𝑡for-all𝑖formulae-sequence𝑗delimited-[]𝑀for-all0𝑡subscript𝜏𝑓NPairs=\{(a^{(i)},a^{(j)},t)|dist(\zeta^{(i)}_{t},\zeta^{(j)}_{t})<2\sqrt{2}R_%{trust},\forall i,j\in[M],\forall 0\leq t\leq\tau_{f}\}italic_N italic_P italic_a italic_i italic_r italic_s = { ( italic_a start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT , italic_a start_POSTSUPERSCRIPT ( italic_j ) end_POSTSUPERSCRIPT , italic_t ) | italic_d italic_i italic_s italic_t ( italic_ζ start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT , italic_ζ start_POSTSUPERSCRIPT ( italic_j ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ) < 2 square-root start_ARG 2 end_ARG italic_R start_POSTSUBSCRIPT italic_t italic_r italic_u italic_s italic_t end_POSTSUBSCRIPT , ∀ italic_i , italic_j ∈ [ italic_M ] , ∀ 0 ≤ italic_t ≤ italic_τ start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT }.

III-B3 Neighbor Pair Separation

After obtaining the neighbor pairs NPairs𝑁𝑃𝑎𝑖𝑟𝑠NPairsitalic_N italic_P italic_a italic_i italic_r italic_s, we utilize the plane derived by the perpendicular bisector of the disc’s center as the constraint for mutual avoidance between vehicles. Each neighbor pair (a(i),a(j),t)superscript𝑎𝑖superscript𝑎𝑗𝑡(a^{(i)},a^{(j)},t)( italic_a start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT , italic_a start_POSTSUPERSCRIPT ( italic_j ) end_POSTSUPERSCRIPT , italic_t ) generates 4 separation planes {Cffj(i),Cfrj(i),Crfj(i),Crrj(i)superscriptsubscript𝐶𝑓𝑓𝑗𝑖superscriptsubscript𝐶𝑓𝑟𝑗𝑖superscriptsubscript𝐶𝑟𝑓𝑗𝑖superscriptsubscript𝐶𝑟𝑟𝑗𝑖C_{ffj}^{(i)},C_{frj}^{(i)},C_{rfj}^{(i)},C_{rrj}^{(i)}italic_C start_POSTSUBSCRIPT italic_f italic_f italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT , italic_C start_POSTSUBSCRIPT italic_f italic_r italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT , italic_C start_POSTSUBSCRIPT italic_r italic_f italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT , italic_C start_POSTSUBSCRIPT italic_r italic_r italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT} for agent a(i)superscript𝑎𝑖a^{(i)}italic_a start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT. Fig. 5 illustrates the process foragent a(i)superscript𝑎𝑖a^{(i)}italic_a start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT and agent a(j)superscript𝑎𝑗a^{(j)}italic_a start_POSTSUPERSCRIPT ( italic_j ) end_POSTSUPERSCRIPT—calculating perpendicular bisectors, offset by a distance of rvsubscript𝑟𝑣r_{v}italic_r start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT on both sides to obtain the separation half-plane Cffj(i)superscriptsubscript𝐶𝑓𝑓𝑗𝑖C_{ffj}^{(i)}italic_C start_POSTSUBSCRIPT italic_f italic_f italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT. Similarly, we generate the separation half-plane Cfrj(i)superscriptsubscript𝐶𝑓𝑟𝑗𝑖C_{frj}^{(i)}italic_C start_POSTSUBSCRIPT italic_f italic_r italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT for front-to-rear disc avoidance between agents a(i)superscript𝑎𝑖a^{(i)}italic_a start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT and a(j)superscript𝑎𝑗a^{(j)}italic_a start_POSTSUPERSCRIPT ( italic_j ) end_POSTSUPERSCRIPT, and obtain the separation half-planes Crfj(i)superscriptsubscript𝐶𝑟𝑓𝑗𝑖C_{rfj}^{(i)}italic_C start_POSTSUBSCRIPT italic_r italic_f italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT and Crrj(i)superscriptsubscript𝐶𝑟𝑟𝑗𝑖C_{rrj}^{(i)}italic_C start_POSTSUBSCRIPT italic_r italic_r italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT between the rear disc of agent i𝑖iitalic_i and the discs of agent a(j)superscript𝑎𝑗a^{(j)}italic_a start_POSTSUPERSCRIPT ( italic_j ) end_POSTSUPERSCRIPT.

Ac(i)Y(i)0,i[M]formulae-sequencesuperscriptsubscript𝐴𝑐𝑖superscript𝑌𝑖0for-all𝑖delimited-[]𝑀A_{c}^{(i)}Y^{(i)}\leq\overrightarrow{0},\forall i\in[M]italic_A start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT italic_Y start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ≤ over→ start_ARG 0 end_ARG , ∀ italic_i ∈ [ italic_M ](11)

where the Ac(i)superscriptsubscript𝐴𝑐𝑖A_{c}^{(i)}italic_A start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT denotes the corresponding half planes which are relevant to agent a(i)superscript𝑎𝑖a^{(i)}italic_a start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT according to NPairs𝑁𝑃𝑎𝑖𝑟𝑠NPairsitalic_N italic_P italic_a italic_i italic_r italic_s.When the initial guess is given, Ac(i)superscriptsubscript𝐴𝑐𝑖A_{c}^{(i)}italic_A start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT is a constant matrix.

To focus the search within the neighbor of the initial guess, we restrict the variation range of the disk to Rtrustsubscript𝑅𝑡𝑟𝑢𝑠𝑡R_{trust}italic_R start_POSTSUBSCRIPT italic_t italic_r italic_u italic_s italic_t end_POSTSUBSCRIPT, i.e.,

|Yt(i)Y¯t(i)|Rtrust1,i[M],0tτf.formulae-sequencesubscriptsuperscript𝑌𝑖𝑡subscriptsuperscript¯𝑌𝑖𝑡subscript𝑅𝑡𝑟𝑢𝑠𝑡1formulae-sequencefor-all𝑖delimited-[]𝑀0𝑡subscript𝜏𝑓\left|Y^{(i)}_{t}-\bar{Y}^{(i)}_{t}\right|\leq R_{trust}\overrightarrow{1},%\forall i\in[M],0\leq t\leq\tau_{f}.| italic_Y start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT - over¯ start_ARG italic_Y end_ARG start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT | ≤ italic_R start_POSTSUBSCRIPT italic_t italic_r italic_u italic_s italic_t end_POSTSUBSCRIPT over→ start_ARG 1 end_ARG , ∀ italic_i ∈ [ italic_M ] , 0 ≤ italic_t ≤ italic_τ start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT .(12)
Remark.

Constraints (11)-(12) are equivalent to constraint (6), guaranteeing that there are no collisions between vehicles at each discrete time step.

For neighbor pairs, they are separated by the planes as in constraint (11). For non-neighbor pairs, they are separated by the variation range constraint (12).

Remark.

Constraints (11)-(12) decouple the trajectory variables between different vehicles.

Ac(i)superscriptsubscript𝐴𝑐𝑖A_{c}^{(i)}italic_A start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT and Y¯t(i)subscriptsuperscript¯𝑌𝑖𝑡\bar{Y}^{(i)}_{t}over¯ start_ARG italic_Y end_ARG start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT are constants determined by the initial guess. For any two different vehicles a(i)superscript𝑎𝑖a^{(i)}italic_a start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT and a(j)superscript𝑎𝑗a^{(j)}italic_a start_POSTSUPERSCRIPT ( italic_j ) end_POSTSUPERSCRIPT, their variables ζ(i)superscript𝜁𝑖\zeta^{(i)}italic_ζ start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT and ζ(j)superscript𝜁𝑗\zeta^{(j)}italic_ζ start_POSTSUPERSCRIPT ( italic_j ) end_POSTSUPERSCRIPT will not appear in the same inequality.

The above process decouples agents for distributed problem-solving. Without loss of generality, we describe the processing procedure for agent a(i)superscript𝑎𝑖a^{(i)}italic_a start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT in the following steps.

III-B4 Robust Corridor Construction

CSDO: Enhancing Efficiency and Success in Large-Scale Multi-Vehicle Trajectory Planning (6)

To handle the static obstacle avoidance constraint (5), we adapt the method from [23] to generate a corridor along its initial guess.

For clarity, ensuring that disc with radii rvsubscript𝑟𝑣r_{v}italic_r start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT does not go out of the map is equivalent to maintaining a distance of rvsubscript𝑟𝑣r_{v}italic_r start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT from the border. As in Fig. 6, we erode the map by a distance of rvsubscript𝑟𝑣r_{v}italic_r start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT to define the safety space enclosed by the dotted line. Similarly, we dilate the obstacles by a distance of rvsubscript𝑟𝑣r_{v}italic_r start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT.

As illustrated in Fig. 6, we sequentially extend the empty box clockwise in all four directions until it encounters dilated obstacles, the eroded map boundary, or reaches the maximum allowed length. Details can be found in [23].

Note that our initial point may be in a colliding or out-of-map state, as previously mentioned in Fig. 4, causing the algorithm to immediately return an empty box. Therefore, we must relocate the initial point to a safe position before generating the box. In cases of a colliding state, we move the point outside of the grey circle. If it remains unsafe due to collisions with other obstacles, we gradually rotate it around the obstacle center until it becomes safe. For initial points that are out-of-map, we project them onto the map boundary. The corridor constraints can be summarized as follows,

Yt,min(i)Astatic,t(i)Y(i)tYt,max(i),0tτf,formulae-sequencesubscriptsuperscript𝑌𝑖𝑡𝑚𝑖𝑛superscriptsubscript𝐴𝑠𝑡𝑎𝑡𝑖𝑐𝑡𝑖superscript𝑌subscript𝑖𝑡subscriptsuperscript𝑌𝑖𝑡𝑚𝑎𝑥for-all0𝑡subscript𝜏𝑓Y^{(i)}_{t,min}\leq A_{static,t}^{(i)}Y^{(i)_{t}}\leq Y^{(i)}_{t,max},\forall 0%\leq t\leq\tau_{f},italic_Y start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t , italic_m italic_i italic_n end_POSTSUBSCRIPT ≤ italic_A start_POSTSUBSCRIPT italic_s italic_t italic_a italic_t italic_i italic_c , italic_t end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT italic_Y start_POSTSUPERSCRIPT ( italic_i ) start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT end_POSTSUPERSCRIPT ≤ italic_Y start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t , italic_m italic_a italic_x end_POSTSUBSCRIPT , ∀ 0 ≤ italic_t ≤ italic_τ start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT ,(13)

where Astatic,t(i)superscriptsubscript𝐴𝑠𝑡𝑎𝑡𝑖𝑐𝑡𝑖A_{static,t}^{(i)}italic_A start_POSTSUBSCRIPT italic_s italic_t italic_a italic_t italic_i italic_c , italic_t end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT denotes the generated corridor as in Fig. 6.

III-B5 QP Formulation

Finally, we linearize the kinematic constraints. The objective function is set to minimize changes in velocity and steering wheel angle, aiming to smooth the trajectory.The kinematic constraints are linearized as follows:

ζt+1=Atζt+Btut+ct,subscript𝜁𝑡1subscript𝐴𝑡subscript𝜁𝑡subscript𝐵𝑡subscript𝑢𝑡subscript𝑐𝑡\zeta_{t+1}=A_{t}\zeta_{t}+B_{t}u_{t}+c_{t},italic_ζ start_POSTSUBSCRIPT italic_t + 1 end_POSTSUBSCRIPT = italic_A start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT italic_ζ start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT + italic_B start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT italic_u start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT + italic_c start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ,(14a)
At=[10v¯tsinθ¯tΔt001v¯tcosθ¯tΔt0001v¯tΔtLcos2ϕ¯0001],subscript𝐴𝑡matrix10subscript¯𝑣𝑡subscript¯𝜃𝑡Δ𝑡001subscript¯𝑣𝑡subscript¯𝜃𝑡Δ𝑡0001subscript¯𝑣𝑡Δ𝑡𝐿superscript2¯italic-ϕ0001A_{t}=\begin{bmatrix}1&0&-\bar{v}_{t}\sin\bar{\theta}_{t}*\Delta t&0\\0&1&-\bar{v}_{t}\cos\bar{\theta}_{t}*\Delta t&0\\0&0&1&\frac{\bar{v}_{t}*\Delta t}{L\cos^{2}\bar{\phi}}\\0&0&0&1\end{bmatrix},italic_A start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT = [ start_ARG start_ROW start_CELL 1 end_CELL start_CELL 0 end_CELL start_CELL - over¯ start_ARG italic_v end_ARG start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT roman_sin over¯ start_ARG italic_θ end_ARG start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ∗ roman_Δ italic_t end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 1 end_CELL start_CELL - over¯ start_ARG italic_v end_ARG start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT roman_cos over¯ start_ARG italic_θ end_ARG start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ∗ roman_Δ italic_t end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 1 end_CELL start_CELL divide start_ARG over¯ start_ARG italic_v end_ARG start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ∗ roman_Δ italic_t end_ARG start_ARG italic_L roman_cos start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT over¯ start_ARG italic_ϕ end_ARG end_ARG end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 1 end_CELL end_ROW end_ARG ] ,(14b)
Bt=[cosθ¯tΔt0sinθ¯tΔt0tanϕ¯ΔtL00Δt],subscript𝐵𝑡matrixsubscript¯𝜃𝑡Δ𝑡0subscript¯𝜃𝑡Δ𝑡0¯italic-ϕΔ𝑡𝐿00Δ𝑡B_{t}=\begin{bmatrix}\cos\bar{\theta}_{t}*\Delta t&0\\\sin\bar{\theta}_{t}*\Delta t&0\\\frac{\tan\bar{\phi}*\Delta t}{L}&0\\0&\Delta t\end{bmatrix},italic_B start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT = [ start_ARG start_ROW start_CELL roman_cos over¯ start_ARG italic_θ end_ARG start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ∗ roman_Δ italic_t end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL roman_sin over¯ start_ARG italic_θ end_ARG start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ∗ roman_Δ italic_t end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL divide start_ARG roman_tan over¯ start_ARG italic_ϕ end_ARG ∗ roman_Δ italic_t end_ARG start_ARG italic_L end_ARG end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL roman_Δ italic_t end_CELL end_ROW end_ARG ] ,(14c)
ct=[θ¯tv¯tsinθt^Δt,θ¯tv¯tcosθt^Δt,ϕ¯ΔtLcos2ϕt]T,subscript𝑐𝑡superscriptsubscript¯𝜃𝑡subscript¯𝑣𝑡^subscript𝜃𝑡Δ𝑡subscript¯𝜃𝑡subscript¯𝑣𝑡^subscript𝜃𝑡Δ𝑡¯italic-ϕΔ𝑡𝐿superscript2subscriptitalic-ϕ𝑡𝑇c_{t}=[\bar{\theta}_{t}\bar{v}_{t}\sin\hat{\theta_{t}}\Delta t,-\bar{\theta}_{%t}\bar{v}_{t}\cos\hat{\theta_{t}}\Delta t,-\frac{\bar{\phi}\Delta t}{L\cos^{2}%{\phi_{t}}}]^{T},italic_c start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT = [ over¯ start_ARG italic_θ end_ARG start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT over¯ start_ARG italic_v end_ARG start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT roman_sin over^ start_ARG italic_θ start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT end_ARG roman_Δ italic_t , - over¯ start_ARG italic_θ end_ARG start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT over¯ start_ARG italic_v end_ARG start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT roman_cos over^ start_ARG italic_θ start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT end_ARG roman_Δ italic_t , - divide start_ARG over¯ start_ARG italic_ϕ end_ARG roman_Δ italic_t end_ARG start_ARG italic_L roman_cos start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_ϕ start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT end_ARG ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT ,(14d)

where (At,Bt,ct)subscript𝐴𝑡subscript𝐵𝑡subscript𝑐𝑡(A_{t},B_{t},c_{t})( italic_A start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT , italic_B start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT , italic_c start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ) are the associated coefficients at time t𝑡titalic_t.

The objective function is as follows,

J=Σt(αv(Δvt(i))2+αω(ωt(i))2),𝐽subscriptΣ𝑡subscript𝛼𝑣superscriptΔsuperscriptsubscript𝑣𝑡𝑖2subscript𝛼𝜔superscriptsuperscriptsubscript𝜔𝑡𝑖2J=\Sigma_{t}(\alpha_{v}(\Delta v_{t}^{(i)})^{2}+\alpha_{\omega}(\omega_{t}^{(i%)})^{2}),italic_J = roman_Σ start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ( italic_α start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT ( roman_Δ italic_v start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_α start_POSTSUBSCRIPT italic_ω end_POSTSUBSCRIPT ( italic_ω start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ) ,(15)

where αvsubscript𝛼𝑣\alpha_{v}italic_α start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT, αωsubscript𝛼𝜔\alpha_{\omega}italic_α start_POSTSUBSCRIPT italic_ω end_POSTSUBSCRIPT are the weighting parameters.

With the aforementioned elements summarized, a complete QP is formulated as follows,

minζ(i),u(i)subscriptsuperscript𝜁𝑖superscript𝑢𝑖\displaystyle\min_{\zeta^{(i)},u^{(i)}}roman_min start_POSTSUBSCRIPT italic_ζ start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT , italic_u start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT end_POSTSUBSCRIPTJ𝐽\displaystyle Jitalic_J(16)
s.t.ζ0(i)=[s(i)T,0]T,ζτf(i)=[g(i)T,0]T,formulae-sequencesuperscriptsubscript𝜁0𝑖superscriptsuperscript𝑠𝑖𝑇0𝑇superscriptsubscript𝜁subscript𝜏𝑓𝑖superscriptsuperscript𝑔𝑖𝑇0𝑇\displaystyle\zeta_{0}^{(i)}=[s^{(i)T},0]^{T},\zeta_{\tau_{f}}^{(i)}=[g^{(i)T}%,0]^{T},italic_ζ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT = [ italic_s start_POSTSUPERSCRIPT ( italic_i ) italic_T end_POSTSUPERSCRIPT , 0 ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT , italic_ζ start_POSTSUBSCRIPT italic_τ start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT = [ italic_g start_POSTSUPERSCRIPT ( italic_i ) italic_T end_POSTSUPERSCRIPT , 0 ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT ,
|vt(i)|vmax,|ωt(i)|ωmax,0t<τf,formulae-sequencesubscriptsuperscript𝑣𝑖𝑡subscript𝑣𝑚𝑎𝑥formulae-sequencesubscriptsuperscript𝜔𝑖𝑡subscript𝜔𝑚𝑎𝑥for-all0𝑡subscript𝜏𝑓\displaystyle\left|v^{(i)}_{t}\right|\leq v_{max},\left|\omega^{(i)}_{t}\right%|\leq\omega_{max},\forall 0\leq t<\tau_{f},| italic_v start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT | ≤ italic_v start_POSTSUBSCRIPT italic_m italic_a italic_x end_POSTSUBSCRIPT , | italic_ω start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT | ≤ italic_ω start_POSTSUBSCRIPT italic_m italic_a italic_x end_POSTSUBSCRIPT , ∀ 0 ≤ italic_t < italic_τ start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT ,
|ϕt(i)|ϕmax,0tτf,formulae-sequencesubscriptsuperscriptitalic-ϕ𝑖𝑡subscriptitalic-ϕ𝑚𝑎𝑥for-all0𝑡subscript𝜏𝑓\displaystyle\left|\phi^{(i)}_{t}\right|\leq\phi_{max},\forall 0\leq t\leq\tau%_{f},| italic_ϕ start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT | ≤ italic_ϕ start_POSTSUBSCRIPT italic_m italic_a italic_x end_POSTSUBSCRIPT , ∀ 0 ≤ italic_t ≤ italic_τ start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT ,
Constraints(11)(14)related toa(i)Constraints1114related toa(i)\displaystyle\textrm{Constraints}\quad(\ref{eq:inter})-(\ref{eq:linear_kine})%\quad\textrm{related to $a^{(i)}$}Constraints ( ) - ( ) related to italic_a start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT

IV Experiment

To demonstrate the effectiveness of our method, we conduct experiments on randomly generated obstructed maps as well as obstacle-free maps. We incrementally increased the number of agents in the problem, resulting in more congested maps, with a specific emphasis on showcasing the effectiveness of our approach in addressing large-scale MVTP problems.

IV-A Simulation Settings

The benchmark consists of various map sets with different sizes (50m ×\times× 50m, 100m ×\times× 100m), varying numbers of agents (5 to 100), and includes both obstructed and obstacle-free maps. Each map set contains 60 instances, resulting in a total of 1800 test instances in this testing benchmark.We assume all agents are hom*ogeneous and share the following parameters: the vehicle’s shape is 3 m × 2 m, with a minimum turning radius of 3 m, and a maximum speed of 1 m/s.All algorithms are assessed using their respective open-source implementations, with most executed on an Intel Xeon Gold 622R CPU at 2.90 GHz in C++, while Fast-ASCO runs on an Intel Core i7-9750H CPU at 2.6 GHz in Matlab.

IV-B Simulation results

CSDO: Enhancing Efficiency and Success in Large-Scale Multi-Vehicle Trajectory Planning (7)
CSDO: Enhancing Efficiency and Success in Large-Scale Multi-Vehicle Trajectory Planning (8)

Method50m*50m 25 obstacles map with 5,10,15,20,25 agents
Success Rate \uparrowRuntime (s) \downarrowMakespan (s) \downarrow
SCC100.00%95.00%81.67%36.67%5.00%0.040.422.167.1413.3943.3548.7452.2154.9954.55
PP100.00%95.00%83.33%85.00%51.67%0.030.140.361.232.8043.3549.7053.2960.0365.17
FastASCO90.00%73.33%70.00%65.00%51.67%2.469.8624.1250.6499.0056.1261.5867.8773.1174.73
CSDO95.00%95.00%98.33%96.67%90.00%0.040.100.250.903.4248.4255.3259.7167.0673.77
50m*50m empty map with 5,10,15,20,25 agents
SCC100.00%98.33%98.33%70.00%10.00%0.030.401.707.198.6341.7148.2251.3652.2556.34
PP100.00%98.33%96.67%90.00%73.33%0.020.090.230.581.2841.6648.5251.7554.9559.48
FastASCO98.33%96.67%88.33%93.33%85.00%1.447.0916.5231.8953.8552.2559.8863.2666.2668.82
CSDO100.00%100.00%98.33%98.33%96.67%0.010.030.080.260.8344.7552.5358.3162.2566.46

The performance of CSDO is evaluated through a comparative analysis with various MVTP algorithms, focusing on success rate, runtime, and solution quality (makespan). A general time limit of 20 s is applied, except for Fast-ASCO, which is allowed 200 s due to Matlab implementation. Figure 7 presents the results for both map sizes, while Table II displays results for a map size of 50 m ×\times× 50 m.

Seq-CL-CBS (SCC) [2] is a grid search-based method and a prioritized planning version of CL-CBS for large-scale problems. CL-CBS, leveraging the optimal MAPF algorithm Conflict based Search (CBS), forms the basis for SCC, which organizes agents into kbsubscript𝑘𝑏k_{b}italic_k start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT groups for sequential planning with CL-CBS; each subsequent group views the prior as dynamic obstacles. With kb=2subscript𝑘𝑏2k_{b}=2italic_k start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT = 2, SCC performs well with small numbers of agents and generally achieves the best makespan. However, its computation time increases exponentially with large-scale problems due to CBS. In sum, SCC performs worse than CSDO in terms of success rate and runtime.

Prioritized Planning (PP) is a grid search-based prioritized planning method. It randomly assigns each agent an order and plans their trajectories sequentially based on this order. It is implemented by setting kb=Msubscript𝑘𝑏𝑀k_{b}=Mitalic_k start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT = italic_M using SCC. In theory, PP is not a complete or optimal method and may perform poorly if an inappropriate order is chosen. In our simulations, PP scales better than SCC, and the solution quality does not deteriorate significantly. However, compared to CSDO, PP exhibits poorer performance in terms of success rate and runtime. CSDO relies on PBS, which searches various partial order sets and has higher completeness. Additionally, CSDO dynamically adjusts its priority during planning to optimize performance. Thus, in crowded scenarios, CSDO may run faster than PP. Regarding solution quality, PP may outperform CSDO, as CSDO prioritizes success rate over makespan optimization.

Fast ASCO [13], an advanced ASCO variant [1], excels in constraint reduction, offering an optimal solution despite slower performance in Matlab.It optimizes for travel time and comfort but has longer makespan due to a detailed kinematics model. Despite this, it achieves superior success rates in large-agent scenarios, outperforming near-optimal methods like SCC for groups of 20 and 25 agents in a 50 m ×\times× 50 m map.

CSDO has the best success rate and computation time, benefiting from PBS’s efficiency and its hierarchical framework. In scenarios with few agents, most methods achieve success rates close to or at 100%. However, as the number of agents increases from 5 to 25 in dense scenarios with 25 obstacles, CSDO maintains a 90% success rate, while existing algorithms begin breaking down, dropping to 51.67%. Moreover, CSDO operates under 1s for 20 agents, significantly outperforming other algorithms.

IV-C CSDO Limitation and Analysis

Number of agents30507090
Success rate96.67%90.00%11.67%1.67%
Search success rate100%90.00%11.67%1.67%
Centralized Search time(s)0.877.469.7324.72
DQP time(s)0.060.100.200.28

CSDO is an efficient MVTP algorithm with a high success rate, but it is not an optimal or complete algorithm due to constraints of PBS.As shown in Table III, the success rate is slightly lower than the search rate, indicating that failures are primarily caused by centralized searching.Meanwhile, it’s clear that the search time remains the primary component of the overall runtime.While the simulation demonstrate the efficiency and high success rate of CSDO, MAPF is an NP-hard problem. In simulated crowded scenarios, CSDO may still fail to solve due to timeouts.

V Conclusion

This work introduces CSDO, an efficient algorithm for large-scale multi-vehicle trajectory planning, leveraging a combination of centralized priority-based searching and decentralized optimization. By employing MAPF algorithms, CSDO efficiently identifies feasible solutions to the MVTP optimization challenge. It also accelerates the resolution of MVTP problems efficiently, by decomposing the joint optimization problem into a series of smaller, manageable ones that can be processed in parallel, enabling real-time processing near potential solutions.Through an extensive set of experiments, we demonstrate that CSDO efficiently discovers solutions within a limited time compared to other methods, without significant loss in solution quality, and supports collision-free trajectory planning in large-scale, high-density scenarios.In the future, we will try to extend our algorithm to real-vehicle test environments with dynamic and intensive traffic participants.

References

  • [1]B.Li, Y.Ouyang, Y.Zhang, T.Acarman, Q.Kong, and Z.Shao, “Optimal Cooperative Maneuver Planning for Multiple Nonholonomic Robots in a Tiny Environment via Adaptive-Scaling Constrained Optimization,” IEEE Robotics and Automation Letters, vol.6, no.2, pp. 1511–1518, Apr. 2021, conference Name: IEEE Robotics and Automation Letters.
  • [2]L.Wen, Y.Liu, and H.Li, “CL-MAPF: Multi-Agent Path Finding for Car-Like robots with kinematic and spatiotemporal constraints,” Robotics and Autonomous Systems, vol. 150, p. 103997, Apr. 2022.
  • [3]H.Huang, Y.Liu, J.Liu, Q.Yang, J.Wang, D.Abbink, and A.Zgonnikov, “General optimal trajectory planning: Enabling autonomous vehicles with the principle of least action,” Engineering, 2023.
  • [4]S.Tang and V.Kumar, “Safe and complete trajectory generation for robot teams with higher-order dynamics,” in 2016 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS).IEEE, 2016, pp. 1894–1901.
  • [5]M.Čáp, J.Vokřínek, and A.Kleiner, “Complete decentralized method for on-line multi-robot trajectory planning in well-formed infrastructures,” in Proceedings of the international conference on automated planning and scheduling, vol.25, 2015, pp. 324–332.
  • [6]B.Şenbaşlar and G.S. Sukhatme, “Asynchronous real-time decentralized multi-robot trajectory planning,” in 2022 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS).IEEE, 2022, pp. 9972–9979.
  • [7]J.Park, S.Karumanchi, and K.Iagnemma, “hom*otopy-based divide-and-conquer strategy for optimal trajectory planning via mixed-integer programming,” IEEE Transactions on Robotics, vol.31, no.5, pp. 1101–1115, 2015.
  • [8]T.Schouwenaars, B.DeMoor, E.Feron, and J.How, “Mixed integer programming for multi-vehicle path planning,” in 2001 European Control Conference (ECC), Sep. 2001, pp. 2603–2608.
  • [9]B.Li, H.Liu, D.Xiao, G.Yu, and Y.Zhang, “Centralized and optimal motion planning for large-scale AGV systems: A generic approach,” Advances in Engineering Software, vol. 106, pp. 33–46, Apr. 2017.
  • [10]C.Ma, Z.Han, T.Zhang, J.Wang, L.Xu, C.Li, C.Xu, and F.Gao, “Decentralized Planning for Car-Like Robotic Swarm in Cluttered Environments,” in 2023 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Oct. 2023, pp. 9293–9300, iSSN: 2153-0866.
  • [11]C.E. Luis, M.Vukosavljev, and A.P. Schoellig, “Online Trajectory Generation With Distributed Model Predictive Control for Multi-Robot Motion Planning,” IEEE Robotics and Automation Letters, vol.5, no.2, pp. 604–611, Apr. 2020, conference Name: IEEE Robotics and Automation Letters.
  • [12]J.Alonso-Mora, P.Beardsley, and R.Siegwart, “Cooperative Collision Avoidance for Nonholonomic Robots,” IEEE Transactions on Robotics, vol.34, no.2, pp. 404–420, Apr. 2018, conference Name: IEEE Transactions on Robotics.
  • [13]Y.Ouyang, B.Li, Y.Zhang, T.Acarman, Y.Guo, and T.Zhang, “Fast and Optimal Trajectory Planning for Multiple Vehicles in a Nonconvex and Cluttered Environment: Benchmarks, Methodology, and Experiments,” in 2022 International Conference on Robotics and Automation (ICRA), May 2022, pp. 10 746–10 752.
  • [14]Y.Chen, M.Cutler, and J.P. How, “Decoupled multiagent path planning via incremental sequential convex programming,” in 2015 IEEE International Conference on Robotics and Automation (ICRA), May 2015, pp. 5954–5961, iSSN: 1050-4729.
  • [15]W.Hönig, J.A. Preiss, T.K.S. Kumar, G.S. Sukhatme, and N.Ayanian, “Trajectory Planning for Quadrotor Swarms,” IEEE Transactions on Robotics, vol.34, no.4, pp. 856–869, Aug. 2018, conference Name: IEEE Transactions on Robotics.
  • [16]J.Park, J.Kim, I.Jang, and H.J. Kim, “Efficient Multi-Agent Trajectory Planning with Feasibility Guarantee using Relative Bernstein Polynomial,” in 2020 IEEE International Conference on Robotics and Automation (ICRA), May 2020, pp. 434–440, iSSN: 2577-087X.
  • [17]G.Shi, W.Hönig, X.Shi, Y.Yue, and S.-J. Chung, “Neural-swarm2: Planning and control of heterogeneous multirotor swarms using learned interactions,” IEEE Transactions on Robotics, vol.38, no.2, pp. 1063–1079, 2021.
  • [18]J.Li, M.Ran, and L.Xie, “Efficient Trajectory Planning for Multiple Non-Holonomic Mobile Robots via Prioritized Trajectory Optimization,” IEEE Robotics and Automation Letters, vol.6, no.2, pp. 405–412, Apr. 2021, conference Name: IEEE Robotics and Automation Letters.
  • [19]H.Ma, D.Harabor, P.J. Stuckey, J.Li, and S.Koenig, “Searching with Consistent Prioritization for Multi-Agent Path Finding,” Proceedings of the AAAI Conference on Artificial Intelligence, vol.33, no.01, pp. 7643–7650, Jul. 2019, number: 01.
  • [20]K.Okumura, M.Machida, X.Défa*go, and Y.Tamura, “Priority inheritance with backtracking for iterative multi-agent path finding,” Artificial Intelligence, vol. 310, p. 103752, 2022.
  • [21]D.Dolgov, S.Thrun, M.Montemerlo, and J.Diebel, “Path Planning for Autonomous Vehicles in Unknown Semi-structured Environments,” The International Journal of Robotics Research, vol.29, no.5, pp. 485–501, Apr. 2010, publisher: SAGE Publications Ltd STM.
  • [22]J.Li, T.A. Hoang, E.Lin, H.L. Vu, and S.Koenig, “Intersection Coordination with Priority-Based Search for Autonomous Vehicles,” Proceedings of the AAAI Conference on Artificial Intelligence, vol.37, no.10, pp. 11 578–11 585, Jun. 2023, number: 10.
  • [23]B.Li, T.Acarman, Y.Zhang, Y.Ouyang, C.Yaman, Q.Kong, X.Zhong, and X.Peng, “Optimization-Based Trajectory Planning for Autonomous Parking With Irregularly Placed Obstacles: A Lightweight Iterative Framework,” IEEE Transactions on Intelligent Transportation Systems, vol.23, no.8, pp. 11 970–11 981, Aug. 2022, conference Name: IEEE Transactions on Intelligent Transportation Systems.
CSDO: Enhancing Efficiency and Success in Large-Scale Multi-Vehicle Trajectory Planning (2024)
Top Articles
Latest Posts
Article information

Author: Jerrold Considine

Last Updated:

Views: 5745

Rating: 4.8 / 5 (58 voted)

Reviews: 81% of readers found this page helpful

Author information

Name: Jerrold Considine

Birthday: 1993-11-03

Address: Suite 447 3463 Marybelle Circles, New Marlin, AL 20765

Phone: +5816749283868

Job: Sales Executive

Hobby: Air sports, Sand art, Electronics, LARPing, Baseball, Book restoration, Puzzles

Introduction: My name is Jerrold Considine, I am a combative, cheerful, encouraging, happy, enthusiastic, funny, kind person who loves writing and wants to share my knowledge and understanding with you.