[Planificación de movimiento de robot móvil] 04 - Generación de trayectoria

prefacio

Parte del contenido de este artículo se refiere a la planificación del movimiento del robot móvil de Deep Blue Academy , y toma notas y arreglos pertinentes en consecuencia.

Acabado de código relacionado:

  1. https://gitee.com/lxyclara/motion-plan-homework/
  2. https://github.com/KailinTong/Motion-Planning-for-Mobile-Robots/blob/master
  3. https://gitee.com/aries-wu/Motion-plan/blob/main/
  4. Enlace: https://pan.baidu.com/s/1UtVHRxDq771LfSGK_21wgQ?pwd=rhtp Código de extracción: rhtp

introducir

Las trayectorias experimentadas por robots y vehículos no tripulados deben satisfacer características suaves y al mismo tiempo cumplir con las restricciones dinámicas correspondientes. La ruta académica tradicional obviamente necesita generar una trayectoria optimizada después de generar el camino para ajustarse a las características de la kinodinámica; mientras que la ruta que ha sido kinodinámica necesita optimizar aún más la trayectoria para mejorar la calidad de la ruta.

La generación de trayectorias suaves generalmente debe cumplir con las siguientes características:

  1. Condiciones de contorno: ubicación del punto de inicio, punto final (dirección, etc.)
  2. Condiciones intermedias: posición, dirección del nodo repetidor...
  3. Criterios de juicio para una trayectoria suave: la función de evaluación debe ser razonable (como lim ⁡ x → x 0 + f ( x ) = lim ⁡ x → x 0 − f ( x ) \begin{aligned}\lim_{x\rightarrow x_0^+ } f(x)\end{alineado} =\begin{alineado}\lim_{x\rightarrow x_0^- }f(x)\end{alineado}x x0+límitef ( x )=x x0límitef ( x )

Optimización mínima de instantáneas

Planitud diferencial

Documento: Generación y control de trayectoria mínima de ajuste para quadrotores, Daniel Mellinger y Vijay Kumar
serán un problema de espacio de estado de dimensión completa XXX va al espacio planoσ \sigmaσ para la investigación. State Space XX
inserte la descripción de la imagen aquí
para UAV QuadrotorX consta de posición, dirección, velocidad lineal y velocidad angular:
X = [ x , y , z , ϕ , θ , ψ , x ˙ , y ˙ , z ˙ , ω x , ω y , ω z ] TX=[x , y,z,\phi,\theta,\psi,\dot{x},\dot{y},\dot{z},\omega_x,\omega_y,\omega_z]^TX=[ X ,y ,z ,ϕ ,yo ,pd ,X˙ ,y˙,z˙ ,Vayax,Vayatu,Vayaz]La velocidad angular T se observa en el propio sistema de coordenadas del UAV.

Los estados y entradas del quadrotor se pueden expresar como funciones algebraicas de las variables de salida y sus derivadas en cuatro espacios planos.
Cualquier trayectoria suave (con derivadas razonablemente acotadas) en un espacio plano puede ser rastreada por un quadrotor subactuado.

Elija 4 dimensiones como un espacio plano en el espacio de estado de 12 dimensiones: σ = [ x , y , z , ψ ] T \sigma=[x,y,z,\psi]^Tpag=[ X ,y ,z ,ψ ]T
T 0 → TM T_0\rightarrow T_MT0Tmtiempo, la trayectoria en el espacio plano se define como: R 3 × SO ( 2 ) \mathbb{R}^3\times SO(2)R3×SO ( 2 ) (R 3 \mathbb{R}^3R3 esx , y , z , x,y,z,x ,y ,z , SO ( 2 ) SO(2)SO ( 2 ) ψ \psiψ )

La dinámica de un dron quadrotor se muestra a continuación, dividida en dos fórmulas:
inserte la descripción de la imagen aquí
z W \mathbf{z}_WzWRepresenta z en el sistema de coordenadas universales \mathbf{z}eje z ,z B \mathbf{z}_BzBRepresenta z \mathbf{z} en el sistema de coordenadas del Cuerpoeje z .
inserte la descripción de la imagen aquíDe la ecuación de movimiento: z segundo = t ∥ t ∥ , t = [ σ ¨ 1 , σ ¨ 2 , σ ¨ 3 + g ] T \mathbf{z}_B=\dfrac{\mathbf{t}} {\ |\mathbf{t}\|},\mathbf{t}=[\ddot{\sigma}_1,\ddot{\sigma}_2,\ddot{\sigma}_3+g]^TzB=t t,t=[pag¨1,pag¨2,pag¨3+g ]T σ 1 , σ 2 , σ 3 \sigma_1,\sigma_2,\sigma_3pag1,pag2,pag3Para x , y , zx,y,z respectivamentex ,y ,z , entoncest \mathbf{t}t representa la dirección de la aceleración resultante del UAV. Por lo tanto, representaz B \mathbf{z}_BzBes σ \sigmaLa combinación algebraica variable de σ . La actitud del dron se puede usarx B , y B , z B \mathbf{x}_B,\mathbf{y}_B,\mathbf{z}_BXB,yB,zBPara expresar, si se puede determinar x B , y B , z B \mathbf{x}_B,\mathbf{y}_B,\mathbf{z}_BXB,yB,zBPor combinación algebraica, entonces ϕ , θ , ψ \phi,\theta,\psiϕ ,yo ,ψ también se puede determinar.

A continuación, defina un sistema de coordenadas intermedio CCC , solo una diferencia de ángulo de guiñada del sistema mundial. x C = [ porque ⁡ σ 4 , sin ⁡ σ 4 , 0 ] T \mathbf{x}_C=[\cos\boldsymbol{\sigma}_4,\sin\boldsymbol{\sigma}_4,0]^TXc=[ porquepag4,pecadopag4,0 ]T
inserte la descripción de la imagen aquí
x C \mathbf{x}_CXctambién z B \mathbf{z}_BzBtambién y B \mathbf{y}_ByB
y segundo = z segundo × x C ∥ z segundo × x C ∥ , x segundo = y segundo × z BRB = [ x segundo y segundo z segundo ] \mathbf{y}_B=\frac{\mathbf{z}_B\ tiempos\mathbf{x}_C}{\|\mathbf{z}_B\tiempos\mathbf{x}_C\|},\quad\mathbf{x}_B=\mathbf{y}_B\tiempos\mathbf{z }_B\quad\mathbf{R}_B=\begin{bmatriz}\mathbf{x}_B&\mathbf{y}_B&\mathbf{z}_B\end{bmatriz}yB=∥z _B×XczB×Xc,XB=yB×zBRB=[XByBzB]

En este punto, solo queda la velocidad angular.
Para mp ¨ = − mgz W + u 1 z segundo m\ddot{\boldsymbol{p}}=-mg\mathbf{z}_W+u_1\mathbf{z}_Bmetropag¨=- metro gramo zW+tu1zB求导,得ma ˙ = tu ˙ 1 z segundo + ( ω BW ) × tu 1 z segundo metro\dot{\boldsymbol{a}}=\dot{u}_1\mathbf{z}_B+(\boldsymbol{\ omega}_{BW})\times u_1\mathbf{z}_Bmetroa˙=tu˙1zB+( ayB W)×tu1zB(Esto implica cierto conocimiento de la cinemática de cuerpos rígidos) BW BWB W :Velocidad angular del cuerpo
vista en el marco mundial
Debido a que el dron solo se empuja en la dirección vertical, entoncesu ˙ 1 = z B ⋅ ma ˙ \dot{u}_1=\mathbf{z}_B\cdot m\dot {\ símbolo de negrita {a}}tu˙1=zBmetroa˙Define
ah ω \mathbf{h}_\omegahVaya, h ω = ω BW × z segundo = en 1 ( un ̇ − ( z segundo ⋅ un ̇ ) z segundo ) \mathbf{h}_\omega=\boldsymbol{\omega}_{BW}\times\mathbf{ z}_B=\frac m{u_1}(\dot{\símbolo de bola{a}}-(\mathbf{z}_B\cdot\dot{\símbolo de bola{a}})\mathbf{z}_B)hVaya=VayaB W×zB=tu1m(a˙( zBa˙ )zB)h ω \mathbf{h}_\omegahVayaLas cantidades en se pueden expresar en espacio plano.
Sabemos que ω BW = ω xx B + ω yy B + ω zz B \omega_{BW}=\omega_x\mathbf{x}_B+\omega_y\mathbf{y}_B+\omega_z\mathbf{z}_BVayaB W=VayaxXB+VayatuyB+VayazzB
沿y B \mathbf{y}_ByBx B \mathbf{x}_BXBDa la siguiente solución: ω x = − h ω ⋅ y segundo , ω y = h ω ⋅ x segundo \omega_x=-\mathbf{h}_\omega\cdot\mathbf{y}_B,\quad\omega_y =\ matemáticasbf{h}_\omega\cdot\mathbf{x}_BVayax=- hVayayB,Vayatu=hVayaXB
inserte la descripción de la imagen aquí

Resumen
inserte la descripción de la imagen aquíinserte la descripción de la imagen aquí
La trayectoria generada es un polinomio, que tiene las siguientes ventajas:
• Fácil determinación de los criterios de suavidad utilizando el orden polinomial
• Cálculo simple de forma cerrada de derivadas
• Generación de trayectorias tridimensionales desacopladas

complemento mínimo

Trayectoria 1D suave

inserte la descripción de la imagen aquíinserte la descripción de la imagen aquí

Trayectoria suave de varios segmentos

inserte la descripción de la imagen aquíinserte la descripción de la imagen aquí
Las velocidades y aceleraciones para alcanzar estos puntos no son realmente fáciles de especificar.

Generación de trayectoria basada en optimización

inserte la descripción de la imagen aquí
Minimizar el tirón es equivalente a la velocidad angular mínima, lo que puede obtener un mejor campo de visión de seguimiento visual
Minimizar el chasquido puede ahorrar energía
inserte la descripción de la imagen aquí

得到以下公式
f ( t ) = { F 1 ( t ) ≐ ∑ yo = 0 norte pags 1 , iti T 0 ≤ t ≤ T 1 F 2 ( t ) ≐ ∑ yo = 0 norte pags 2 , iti T 1 ≤ t ≤ T 2 ⋮ ⋮ F METRO ( t ) ≐ ∑ yo = 0 norte pags METRO , iti TM - 1 ≤ t ≤ TM f(t)=\begin{cases}f_1(t)\doteq\sum_{i=0} ^Np_{1,i}t^i&\quad T_0\leq t\leq T_1\\f_2(t)\doteq\sum_{i=0}^Np_{2,i}t^i&\quad T_1\leq t \leq T_2\\\vdots&\quad\vdots\\f_M(t)\doteq\sum_{i=0}^Np_{M,i}t^i&\quad T_{M-1}\leq t\leq T_M \end{casos}f ( t )= F1( t )yo = 0nortepag1 , yotiF2( t )yo = 0nortepag2 , yotiFm( t )yo = 0nortepagM , yotyoT0tT1T1tT2TMETRO - 1tTm

  • cada segmento es un polinomio
  • No se requiere necesariamente que el orden de cada trayectoria sea el mismo, pero el mismo puede simplificar el problema.
  • El tiempo de cada trayectoria necesita ser conocido

Restricciones :
inserte la descripción de la imagen aquí
la suavidad de la trayectoria, la continuidad y la minimización de la entrada de control son independientes entre sí
inserte la descripción de la imagen aquí

Minimizar el tirón requiere cinco trayectorias (una sección de trayectoria)
y minimizar el chasquido requiere siete trayectorias (una sección de trayectoria)
inserte la descripción de la imagen aquí

Configuración de la línea de tiempo
inserte la descripción de la imagen aquí

Una función objetivo de trayectoria
inserte la descripción de la imagen aquí

Restricciones diferenciales, k = 0, 1, 2, 3 para el punto inicial y el punto final, es decir, se requieren p, v, a, j; para el punto de ruta, generalmente se requiere k = 0, es decir, solo se requiere p , ambos casos se pueden escribir como una matriz Restricciones formales de igualdad
inserte la descripción de la imagen aquí

Restricciones de continuidad, aunque no se requieren v, a, j para el punto de ruta, pero se requiere que las derivadas de las trayectorias izquierda y derecha en el punto de ruta sean igualesinserte la descripción de la imagen aquí

inserte la descripción de la imagen aquí

Optimizacion convexa

Cursos relacionados con la optimización convexa:

  1. Clase abierta de Boyd Stanford
  2. HKUST https://github.com/KellyHwong/convex-hkust
  3. Recomendación y arreglo de libros de texto y cursos introductorios de optimización convexa

Funciones convexas y conjuntos convexos

La definición matemática de una función convexa es: si f ( x ) f(x)f ( x ) en el intervaloIII enlace superior,III es un intervalo en el conjunto de números reales, y para cualquierx , y ∈ I x,y \in Ix ,ySumo cualquierλ ∈ [ 0 , 1 ] \lambda \in [0,1]yo[ 0 ,1 ] , tenemos f ( λ x + ( 1 − λ ) y ) ≤ λ f ( x ) + ( 1 − λ ) f ( y ) f(\lambda x + (1-\lambda)y) \leq \ lambda f(x) + (1-\lambda)f(y)f ( λ x+( 1l ) y )λ f ( x )+( 1λ ) f ( y )f ( x ) f(x)f ( x ) en el intervaloIII es una función convexa. Entre ellos,λ \lambdaλ se llama el peso o relación de mezcla. Esta definición es en sentido geométrico, es decir, para dos puntos cualesquiera de la función, el valor de la función en cada punto del segmento de línea entre estos dos puntos no excede el valor de la función lineal correspondiente al punto. Una función convexa también se puede definir en forma de segunda derivada comof ′ ′ ( x ) ≥ 0 f''(x)\geq 0F′′ (x)0 _ inserte la descripción de la imagen aquí
Definición matemática de conjunto convexo: En el espacio euclidiano, un conjuntoSSS es un conjunto convexo si y solo si para cualquierx , y ∈ S x,y\in Sx ,yS0 ≤ λ ≤ 1 0\leq \lambda\leq0yo1 ,都有
λ x + ( 1 − λ ) y ∈ S \lambda x+(1-\lambda)y\in Sλ x+( 1l ) yS entre ellos,λ \lambdaλ es un número real, que representax 1 x_1X1y x 2 x_2X2coeficiente de relación entre. En otras palabras, si el segmento de línea formado por dos puntos en cualquier conjunto está en el conjunto, entonces es un conjunto convexo.inserte la descripción de la imagen aquí

La forma estándar de un problema de optimización convexo

minimizarf 0 ( x ) sujeto afi ( x ) ≤ 0 i = 1 , ... , metro UN x = segundo \begin{alineado}\mathrm{minimizar}\quad&f_0(x)\\\mathrm{sujeto~a}\quad&f_i( x)\leq0\quad i=1,\ldots,m\\&\mathrm{A}x=b\end{alineado}minimizarsujeto a F0( X )Fyo( X )0i=1 ,,metrouna x=segundo
donde la función objetivo f 0 f_0F0y la función de restricción de desigualdad fi ( x ) f_i(x)Fyo( x ) son funciones convexas,A x = b Ax=buna x=se requiere que b sea afín,xxSi el dominio de x es un conjunto convexo

Programación Lineal (LP): problemas de programación lineal

minimizar ⁡ xc T x + d sujeto a G x ≤ h A x = b \begin{aligned} \underset{x}{\operatorname*{minimize}}\quad &c^Tx+d \\ \text{sujeto a} \quad &Gx\leq h \\ &Ax=b \end{alineado}Xminimizarsujeto aCTX _+dG xhuna x=segundo

Programación cuadrática (QP): problema de programación cuadrática

minimizar ⁡ x 1 2 x TP x + q T x + r sujeto a G x ≤ h A x = b \begin{aligned} \underset{x}{\operatorname*{minimize}}\quad &\frac1 2 x^ TPx+q^Tx +r \\ \text{sujeto a}\quad &Gx\leq h \\ &Ax=b \end{alineado}Xminimizarsujeto a21XT Px+qTX _+rG xhuna x=segundo

QP con restricciones cuadráticas (QCQP): un problema de programación cuadrática con restricciones cuadráticas

QCQP (Programa cuadrático restringido cuadráticamente) se puede expresar de la siguiente forma:

$ minimizar ⁡ x ( 1 / 2 ) x TP 0 x + q 0 T x + r 0 sujeto a ( 1 / 2 ) x TP ix + qi T x + ri ≤ 0 i = 1 , ... , m A x = b \begin{alineado}\underset{x}{\operatorname*{minimizar}}\quad&(1/2)x^TP_0x+q_0^Tx+r_0\\\mathrm{sujeto~a}\quad&(1/2) x^TP_ix+q_i^Tx+r_i\leq0\quad i=1,\ldots,m\\&Ax=b\end{alineado}Xminimizarsujeto a ( 1/2 ) ×TP _0X+q0TX+r0( 1/2 ) ×TP _yoX+qiTX+ryo0i=1 ,,metrouna x=segundoLas funciones de restricción también son funciones convexas.

donde x ∈ R nx \in \mathbb{R}^nXRn es la variable de optimización,P 0 ∈ S n P_0 \in \mathbb{S}^nPAG0Snorte ,PAGS yo ∈ S norte P_i \in \mathbb{S}^nPAGyoSnorte ,q 0 , qi ∈ R norte q_0,q_i \in \mathbb{R}^nq0,qyoRnorte ,bi ∈ R b_i \in \mathbb{R}byoR ,UN ∈ R p × n UN \in \mathbb{R}^{p \times n}ARp × norte ,segundo ∈ R pb \in \mathbb{R}^pbRpags ,l , tu ∈ R nl,u \in \mathbb{R}^nyo ,tuRn , yli ≤ ui l_i \leq u_iyoyotuyo

donde, S n \mathbb{S}^nSn significa todoslos n × nn \times nnorte×Una colección de matrices simétricas reales de n . 1 2 x TP ix + qi T x ≤ bi \frac{1}{2} x^T P_i x + q_i^T x \leq b_i21XTP _yoX+qiTXbyoexpresar sobre xxRestricciones de desigualdad cuadrática en x , A x = b Ax=buna x=b representa restricciones de igualdad lineal,li ≤ xi ≤ ui l_i \leq x_i \leq u_iyoyoXyotuyoRepresenta las restricciones de los límites superior e inferior de las variables. El objetivo es minimizar la función objetivo 1 2 x TP 0 x + q 0 T x \frac{1}{2} x^T P_0 x + q_0^T x21XTP _0X+q0Tx _

Programación de cono de segundo orden (SOCP): problema de optimización de segundo orden

SOCP es la abreviatura de programación de cono de segundo orden. La programación de conos cuadráticos se refiere a una clase de problemas de optimización convexos en los que las restricciones del problema de optimización consisten en conos cuadráticos.

La forma general de programación de cono cuadrático es:

minimizar c T x sujeto a ∣ ∣ UN ix + bi ∣ ∣ 2 ≤ ci T x + di , yo = 1 , . . . , m F x = g \begin{alineado} \text{minimizar} \quad & c^Tx \\ \text{sujeto a} \quad & ||A_ix + b_i||_2 \leq c_i^Tx + d_i, \ quad i=1,...,m \\ & Fx = g \end{alineado}minimizarsujeto aCTX _∣∣ AyoX+byo2CiTX+dyo,i=1 ,... ,metroF x=g

Entre ellos, xxx es la variable de optimización,ccc es un vector,A i A_iAyoes la matriz, bi b_ibyoes un vector, di d_idyoy ggg es un escalar.

La restricción principal es la restricción del cono cuadrático, donde ∣ ∣ A ix + bi ∣ ∣ 2 ≤ ci T x + di ||A_ix+b_i||_2 \leq c_i^Tx+d_i∣∣ AyoX+byo2CiTX+dyoRepresenta el vector A ix + bi A_ix+b_iAyoX+byocon el vector ci T x + di c_i^Tx+d_iCiTX+dyoEl producto interior en el espacio euclidiano es menor o igual a 0. Esta restricción se puede escribir en la forma transformada, a saber

t ≥ ∣ ∣ UN ix + bi ∣ ∣ 2 ci T x + di − t ≤ 0 \begin{alineado} t \geq ||A_i x + b_i||_2 \\ c_i^T x + d_i - t \leq 0 \end{alineado}t∣∣ AyoX+byo2CiTX+dyot0

donde ttt es una variable auxiliar utilizada para asegurar que el producto interno sea menor o igual a 0.

SOCP puede verse como un problema de PL directamente extendido. Por lo tanto, se puede resolver utilizando la optimización convexa, como el método de punto interior y el método de ramificación y límite. En comparación con la programación cuadrática, los problemas SOCP tienen mejor convexidad.

Programación Semidefinida(SDP)

SDP (Programación Semidefinida) se puede expresar de la siguiente forma:

min ⁡ X do T xs . t. F 0 + ∑ yo = 1 norte X yo F yo ⪰ 0 X yo ⪰ 0 , yo = 1 , 2 , ... , norte \begin{alineado} \min_{X} \ & c^T x\\ st \ & F_0 + \sum_{i=1}^n X_i F_i \succeq 0 \\ & X_i \succeq 0, i = 1, 2, \ldots, n \end{alineado}Xminuto s . t . CTX _F0+yo = 1nXyoFyo0Xyo0 ,i=1 ,2 ,,n

其中,X i ∈ S ni X_i \in \mathbb{S}^{n_i}XyoSnorteyoes una matriz semidefinida positiva simétrica, c ∈ R nc \in \mathbb{R}^nCRn es un vector constante,F i ∈ S ni F_i \in \mathbb{S}^{n_i}FyoSnorteyoes una matriz simétrica constante, F 0 ∈ S n 0 F_0 \in \mathbb{S}^{n_0}F0Snorte0es una matriz simétrica constante, ⪰ 0 \succeq 00 significa una matriz semidefinida positiva. El objetivo es minimizar la función objetivoc T xc^T xCT x, satisface la restricción de desigualdad matricialF 0 + ∑ i = 1 n X i F i ⪰ 0 F_0 + \sum_{i=1}^n X_i F_i \succeq 0F0+yo = 1nXyoFyo0 y restricciones semidefinidas positivasX i ⪰ 0 , i = 1 , 2 , ... , n X_i \succeq 0, i = 1, 2, \ldots, nXyo0 ,i=1 ,2 ,,norte _

No es difícil ver que SDP puede considerarse como un problema de optimización convexo cuyas restricciones son matrices semidefinidas positivas simétricas. Las restricciones de desigualdad matricial garantizan que el problema es convexo.

Solución de forma cerrada para ajuste mínimo

Paper: Polynomial Trayectory Planning for Aggressive Quadrotor Flight in Dense Indoor Environments, Charles Richter, Adam Bry y Nicholas Roy
usan el solucionador QP para resolver la solución numérica del problema de ajuste mínimo. Otra solución es encontrar el ajuste mínimo directamente del álgebra. La solución analítica del problema, es decir, la solución de forma cerrada del problema de Snap Mínimo.

asignación de variables de decisión asignación de variables

Tomemos la ecuación:
J = [ pags 1 ⋮ pags M ] T [ Q 1 0 0 0 ⋱ 0 0 0 QM ] [ pags 1 ⋮ pags M ] J=\begin{bmatrix}\mathbf{p}_1\\; \varvdots\\\mathbf{p}_M\end{bmatrix}^T\quad\begin{bmatrix}\mathbf{Q}_1&\mathbf{0}&\mathbf{0}\\\mathbf{0}&\ ddots&\mathbf{0}\\\mathbf{0}&\mathbf{0}&\mathbf{Q}_M\end{bmatrix}\begin{bmatrix}\mathbf{p}_1\\\varvdots\\\mathbf {p}_M\end{bmatriz}j= pag1pagm T q1000000qm pag1pagm
Se puede observar que las variables optimizadas son los coeficientes del polinomio de trayectoria p 0 , p 1 , . . . , p M p_0,p_1,...,p_Mpag0,pag1,... ,pagm, el coeficiente no tiene un significado físico real, como p 10 t 10 p_{10}t^{10}pag10t10 en punto cuandottCuando t es grande,p 10 p_{10}pag10Puede ser muy pequeño, lo que provocará inestabilidad numérica en problemas de planificación de trayectorias. Por lo tanto, necesitamos transformar el problema de los coeficientes en la optimización de la trayectoria en restricciones derivadas de los puntos de la trayectoria (es decir, p , v , ap, v, apag ,v ,a , tiene un significado físico). A través de la matriz de mapeoM j M_jMETROjLa variable pj p_j a resolverpagjRestricciones derivadas dj asignadas a puntos de trayectoria d_jdj,即M jpj = dj M_jp_j=d_jMETROjpagj=dj

Nueva función objetivo:

J = [ re 1 ⋮ re METRO ] T [ METRO 1 0 0 ⋮ 0 0 MM ] - T [ Q 1 0 0 ⋮ 0 0 0 QM ] [ METRO 1 0 0 ⋮ 0 0 0 MM ] - [ re 1 ⋮ re M ] J=\begin{bmatrix}\mathbf{d}_1\\\valuedots\\\mathbf{d}_M\end{bmatrix}^T\begin{bmatrix}M_1&\mathbf{0}; &\mathbf{ 0}\\\mathbf{0}&\vdots&\mathbf{0}\\\mathbf{0}&\mathbf{0}&M_M\end{bmatriz}^{-T}\begin{bmatriz} \mathbf{Q }_1&\mathbf{0}&\mathbf{0}\\\mathbf{0}&\vdots&\mathbf{0}\\\mathbf{0}&\mathbf{0}&\mathbf{Q }_M\end {bmatrix}\begin{bmatrix}M_1&\mathbf{0}&\mathbf{0}\\\mathbf{0}&\vdots&\mathbf{0}\\\mathbf{0}&\mathbf{ 0}&\ símbolo de bola{M}_M\end{bmatrix}^{-1}\begin{bmatrix}\mathbf{d}_1\\\vdots\\\mathbf{d}_M\end{bmatrix}j= d1dm T METRO1000000METROm T q1000000qm METRO1000000METROm 1 d1dm

轨迹方程如下:
x ( t ) = pag 5 t 5 + pag 4 t 4 + pag 3 t 3 + pag 2 t 2 + pag 1 t + pag 0 x ′ ( t ) = 5 pag 5 t 4 + 4 pag 4 t 3 + 3 pags 3 t 2 + 2 pags 2 t + pags 1 x ′ ′ ( t ) = 20 pags 5 t 3 + 12 pags 4 t 2 + 6 pags 3 t + 2 pags 2 \begin{alineado} &x( t)=p_5t^5+p_4t^4+p_3t^3+p_2t^2+p_1t+p_0 \\ &x'(t)=5p_5t^4+4p_4t^3+3p_3t^2+2p_2t+p_1 \\ &\begin {alineado}x''(t)=20p_5t^3+12p_4t^2+6p_3t+2p_2\end{alineado} \end{alineado}x ( t )=pag5t5+pag4t4+pag3t3+pag2t2+pag1t+pag0X (t)=17:00 _5t4+4p _4t3+3p _3t2+2p _2t+pag1X′′ (t)=20p _5t3+12 pags4t2+18:00 _3t+2p _2

Razón:
M = [ 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 2 0 0 T 5 T 4 T 3 T 2 T 1 5 T 4 4 T 3 3 T 2 2 T 1 0 20 T 12 t 2 2 0 0 0 0 0] \ BBoldSymbol {mBol {mBol {m} \ ben {bmatrix} 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0S & 0S \ 4 4 & T^4 & T^2 & T1 & T1 & T1 & T1 & T1 & T1 &^3 & 12T^2T & TIND matriz}METRO= 000T55 toneladas420T _3000T44 toneladas312 toneladas2000T33T _26 toneladas002T22T _2010T10100100 Para que quede más claro, MMLas tres primeras filas de la matriz M seránt = 0 t=0t=Sustituya el valor en 0 y las últimas tres líneas serán t = T t=Tt=DenoteM pi = [ 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 2 0 0 T 5 T 4 T 3 T 2 T 1 5 T 4 4 T 3 3 T 2 2 T 1 0 20 TMP _yo= 000T55 toneladas420T _3000T44 toneladas312 toneladas2000T33T _26 toneladas002T22T _2010T10100100 pag5pag4pag3pag2pag1pag0

Separación variable fija y variable libre Descomposición variable fija y variable libre

Las variables de estado del punto inicial y final en la trayectoria ( p , v , a , jp,v,a,jpag ,v ,un ,j ), se determina la posición del punto medio (waypoints)( p ) (p)( p ) es determinista, por lo que al elegir la matrizCCC para separar variables libres (gratis)d F \mathbf{d}_FdFY la variable fija (restringida) d P \mathbf{d}_Pdpag. Por lo tanto, se puede obtener la siguiente relación de mapeo:
CT [ d F d P ] = [ d 1 ⋮ d M ] \mathbf{C}^T\begin{bmatrix}\mathbf{d}_F\\\mathbf{d} _P \end{bmatrix}=\begin{bmatrix}\mathbf{d}_1\\\varvdots\\\mathbf{d}_M\end{bmatrix}CT[dFdpag]= d1dm Establezcamos las condiciones de contorno de la siguiente manera: J = [ d F d P ] TCM − TQM − 1 CT [ d F d P ] ⏟ R = [ d F d P ] T [ RFFRFPRPFRPP ] [ d F d P ] J=\ comenzar{ . bmatrix}\mathbf{d}_F\\\mathbf{d}_P\end{bmatrix}^T\underbrace{\mathbf{C}M^{-T}\mathbf{Q}M^{-1 }\mathbf {C}^T\begin{bmatrix}\mathbf{d}_F\\\mathbf{d}_P\end{bmatrix}}_{\mathbf{R}}=\begin{bmatrix}\mathbf{ d}_F \\\mathbf{d}_At{bmatrix}^T\begin{bmatrix}\mathbf{R}_{FF}&\mathbf{R}_{FP}\\\mathbf{R}_{PF } &\mathbf{R}_{PP}\end{bmatrix}\begin{bmatrix}\mathbf{d}_F\\\mathbf{d}_At\end{bmatrix}j=[dFdpag]TR CM _T QM- 1 CT[dFdpag]=[dFdpag]T[RFFRPFRFPRPP][dFdpag] Entonces, la función objetivo se convierte en un problema de programación cuadrática sin restricciones, que se puede resolver en forma cerradaJ = d FTRFF d F + d FTRFP d P + d PTRPF d F + d PTRPP d P d P ∗ = − RPP − 1 RFPT d F \begin{alineado}J=\mathbf{d}_F^T\mathbf{R}_{FF}\mathbf{d}_F+\mathbf{d}_F^T\mathbf{R}_{FP}\mathbf {d}_P+\mathbf{d}_P^T\mathbf{R}_{PF}\mathbf{d}_F+\mathbf{d}_P^T\mathbf{R}_{PP}\mathbf{d}_P \\ \mathbf{d}_P^*=-\mathbf{R}_{PP}^{-1}\mathbf{R}_{FP}^T\mathbf{d}_F\end{alineado}j=dFTRFFdF+dFTRFPdpag+dPAGTRPFdF+dPAGTRPPdpagdPAG=RPÁGINAS 1RFPTdF
PD: ¿Por qué se ha ido la restricción de continuidad? Porque la matriz CC se puede seleccionar por diseñoC mapea una variable end \mathbf{d}En las dos variables de d , se cumple la restricción de continuidad

CCdiseño de c
inserte la descripción de la imagen aquí

Enfoque jerárquico

Use RRT* para obtener waypoints, luego ajuste mínimo para generar trayectoria
inserte la descripción de la imagen aquí

Problema: problema de seguridad

La ruta encontrada por RRT está libre de colisiones, pero se producirá un exceso después de la optimización de la trayectoria.
inserte la descripción de la imagen aquí
Solución: agregue un punto de ruta a la parte de colisión y regenere la trayectoria. Si todavía hay una colisión, continúe insertando puntos de ruta y genere en casos extremos. la trayectoria de estará infinitamente cerca de la ruta absolutamente segura de la planificación de la rutainserte la descripción de la imagen aquí

mejor solución?

Aumente el cuadro delimitador y realice la optimización de la trayectoria bajo restricciones estrictas (la próxima lección lo explicará en detalle).
inserte la descripción de la imagen aquí

Detalles de implementacion

Solucionadores convexos

solucionador DIRECCIÓN Ventajas y desventajas
CVX http://cvxr.com/cvx/ Basado en la implementación de MATLAB, más lento
por Moisés https://www.mosek.com/ Muy robusto, pero solo se ejecuta en arquitectura x86
OOQP http://pages.cs.wisc.edu/~swright/ooqp/ Código rápido, de código abierto, robusto, pero antiguo, mala legibilidad
GLPK https://www.gnu.org/software/glpk/ Código abierto, robusto, rápido, tiene ventajas en la solución de LP

Estabilidad numérica

inserte la descripción de la imagen aquí

Otras cosas de ingeniería

inserte la descripción de la imagen aquí

Asignación de tiempo asignación de tiempo

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquíinserte la descripción de la imagen aquí

inserte la descripción de la imagen aquíinserte la descripción de la imagen aquí

referencia

[1] Generación y control de trayectoria mínima instantánea para quadrotores, Daniel Mellinger y Vijay Kumar
[2] Planificación de trayectoria polinomial para vuelo agresivo de quadrotor en entornos interiores densos, Charles Richter, Adam Bry y Nicholas Roy

Consejos de codificación

Tome dos pistas como ejemplo:
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquíinserte la descripción de la imagen aquí

solución cerrada

inserte la descripción de la imagen aquí

ROS:
solución cerrada
inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/sinat_52032317/article/details/132197045
Recomendado
Clasificación