Directorio de artículos
- prefacio
- introducir
- Optimización mínima de instantáneas
- Optimizacion convexa
-
- Funciones convexas y conjuntos convexos
- La forma estándar de un problema de optimización convexo
-
- Programación Lineal (LP): problemas de programación lineal
- Programación cuadrática (QP): problema de programación cuadrática
- QP con restricciones cuadráticas (QCQP): un problema de programación cuadrática con restricciones cuadráticas
- Programación de cono de segundo orden (SOCP): problema de optimización de segundo orden
- Programación Semidefinida(SDP)
- Solución de forma cerrada para ajuste mínimo
- Detalles de implementacion
- referencia
- Consejos de codificación
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:
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:
- Condiciones de contorno: ubicación del punto de inicio, punto final (dirección, etc.)
- Condiciones intermedias: posición, dirección del nodo repetidor...
- 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 → x0−lí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
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_MT0→Tmtiempo, 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:
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 .
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
用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×Xc∥zB×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=zB⋅metroa˙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˙−( zB⋅a˙ )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}_ByB、x 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=- hVaya⋅yB,Vayatu=hVaya⋅XB
Resumen
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
Trayectoria suave de varios segmentos
Las velocidades y aceleraciones para alcanzar estos puntos no son realmente fáciles de especificar.
Generación de trayectoria basada en optimización
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
得到以下公式
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 , yoti⋮Fm( t )≐∑yo = 0nortepagM , yotyoT0≤t≤T1T1≤t≤T2⋮TMETRO - 1≤t≤Tm
- 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 :
la suavidad de la trayectoria, la continuidad y la minimización de la entrada de control son independientes entre sí
Minimizar el tirón requiere cinco trayectorias (una sección de trayectoria)
y minimizar el chasquido requiere siete trayectorias (una sección de trayectoria)
Configuración de la línea de tiempo
Una función objetivo de trayectoria
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
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 iguales
Optimizacion convexa
Cursos relacionados con la optimización convexa:
- Clase abierta de Boyd Stanford
- HKUST https://github.com/KellyHwong/convex-hkust
- 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 ,y∈Sumo 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+( 1−l ) 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 _
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 ,y∈S和0 ≤ λ ≤ 1 0\leq \lambda\leq0≤yo≤1 ,都有
λ x + ( 1 − λ ) y ∈ S \lambda x+(1-\lambda)y\in Sλ x+( 1−l ) y∈S 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.
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 x≤huna 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 x≤huna 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+ryo≤0i=1 ,…,metrouna x=segundoLas funciones de restricción también son funciones convexas.
donde x ∈ R nx \in \mathbb{R}^nX∈Rn es la variable de optimización,P 0 ∈ S n P_0 \in \mathbb{S}^nPAG0∈Snorte ,PAGS yo ∈ S norte P_i \in \mathbb{S}^nPAGyo∈Snorte ,q 0 , qi ∈ R norte q_0,q_i \in \mathbb{R}^nq0,qyo∈Rnorte ,bi ∈ R b_i \in \mathbb{R}byo∈R ,UN ∈ R p × n UN \in \mathbb{R}^{p \times n}A∈Rp × norte ,segundo ∈ R pb \in \mathbb{R}^pb∈Rpags ,l , tu ∈ R nl,u \in \mathbb{R}^nyo ,tu∈Rn , yli ≤ ui l_i \leq u_iyoyo≤tuyo。
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+qiTX≤byoexpresar 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_iyoyo≤Xyo≤tuyoRepresenta 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+byo∣ ∣2≤CiTX+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+byo∣ ∣2≤CiTX+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+byo∣ ∣2CiTX+dyo−t≤0
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 = 1∑nXyoFyo⪰0Xyo⪰0 ,i=1 ,2 ,…,n
其中,X i ∈ S ni X_i \in \mathbb{S}^{n_i}Xyo∈Snorteyoes una matriz semidefinida positiva simétrica, c ∈ R nc \in \mathbb{R}^nC∈Rn es un vector constante,F i ∈ S ni F_i \in \mathbb{S}^{n_i}Fyo∈Snorteyoes una matriz simétrica constante, F 0 ∈ S n 0 F_0 \in \mathbb{S}^{n_0}F0∈Snorte0es una matriz simétrica constante, ⪰ 0 \succeq 0⪰0 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 = 1nXyoFyo⪰0 y restricciones semidefinidas positivasX i ⪰ 0 , i = 1 , 2 , ... , n X_i \succeq 0, i = 1, 2, \ldots, nXyo⪰0 ,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=
pag1⋮pagm
T
q1000⋱000qm
pag1⋮pagm
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= d1⋮dm T METRO1000⋮000METROm − T q1000⋮000qm METRO1000⋮000METROm − 1 d1⋮dm
轨迹方程如下:
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]=
d1⋮dm
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
Enfoque jerárquico
Use RRT* para obtener waypoints, luego ajuste mínimo para generar trayectoria
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.
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 ruta
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).
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
Otras cosas de ingeniería
Asignación de tiempo asignación de tiempo
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:
solución cerrada
ROS:
solución cerrada