Processing math: 100%
반응형

 

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.584.9413&rep=rep1&type=pdf 

 

리아푸노브 안정 성질을 이용하여 전역 안정한 벡터필드를 이용한 UAV의 유도 기법을 제안한 논문이다.

위 알고리즘과 간단한 스위칭 알고리즘을 이용하면 경로점을 추종하는 경로와 루프를 추종하도록 유도할 수 있다.

예시로 원형 선회와 racetrack 형태의 선회 예시를 들고 있다.

 

1. 벡터 필드의 설계

 배열 θ을 매개변수로 하는 다음의 벡터 공간을 정의한다.

˙ˉrd=h(ˉr,θ)

 

위 벡터 필드의 전역적 거동이 모든 θ에 대해서 간단하고 강건하게 구체화될 수 있다면, 기체의 관리가 더 높은 계층 단계에서 수행 될 수 있다.

요구하는 점근적 거동은 attractor 를 통해서 표현된다. attractor는 기체가 수렴해야만 하는 경로나 요구되는 위치 집합과 같은 것으로 구성된다. 많은 응용 분야에서는 속도가 없는 점근적 고정 위치로 단일의 평형점을 정의할 수 있다. 그러나 고정익 무인기는 떠 있기 위해서 대기 속도를 유지해야하기 때문에 이게 불가능하다. 

 

본 응용에서는, 가장 간단한 attractor로써 평형점이 없는 closed, non-intersecting curves C\scriptR3에 초점을 두자. 그러면 '이 집합 C로 전역적으로 유인되도록 하는 벡터 공간을 구축'하는 문제로 정의한다.

 

VF(ˉr)의 시간 미분은 다음과 같다.

˙VF(ˉr)=VFˉr˙˙r=VFˉrh(ˉr,θ)

이때, 기체의 움직임 ˙ˉr이 요구하는 벡터 공간 ˙ˉrd과 같을 수 있다고 가정한다면, 다음과 같이 벡터 공간을 고르자.

˙ˉr=˙ˉrd=h(ˉr,θ)=[VFˉrΓ(ˉr)]T+S(ˉr)

Γ(ˉr)ˉr이 유계일 때 마다 VFˉrΓ(ˉr)이 유계가 어떤 대칭의 양의 정부호 행렬이라서, 

VFˉrΓ(ˉr)[VFˉrΓ(ˉr)]Tˉ0VFˉrˉ0이도록 하므로

S(ˉr)VFˉrS(ˉr)=0을 만족한다.

그러면 

˙VF(ˉr)=VFˉrΓ(ˉr)[VFˉrΓ(ˉr)]T

이고, ˙VF(ˉr)<=0이므로, VF(ˉr)는 유계이며 수렴한다.

 

벡터 공간을 다시 보면,

h(ˉr,θ)=[VFˉrΓ(ˉr)]T+S(ˉr)=hc(r,θ)+S(ˉr)

위의 벡터 공간의 첫 번째 항 hc(r,θ)은 "Contradiction" 으로, 포텐셜 함수 VF(ˉr의 gradient의 "반대" 방향으로 향하는 벡터 공간 성분을 만들어낸다.

위의 두 번째 항 S(ˉr)은 "Circulation" 항으로, 항상 포텐셜 함수 VF(ˉr)의 gradient에 항상 직교하는데, 이때문에 시간이 지남에 따라 VF(ˉr)의 변화에 기여하진 않는다.

 

UAV의 추종 제어를 위해 γ(ˉr)S(ˉr)는 요구 속력 ν를 나타내기 위해 벡터 공간 h(ˉr,θ) 정규화하도록 선택되어야 한다.

|h(ˉr,θ)|=|[VFˉrΓ(ˉr)]T+S(ˉr)|=ν

 

선회 원 예시

선회 원이 단위 벡터 ˆn에 수직인 평면에 놓여있다고 하자. 그리고 요구 선회 원 끌개(Desired loiter circle attractor) C 상의 선회 원 반경을 ρ라고 하자. 기체의 위치 벡터 r에 대해서 평면의 수직 성분 rn=(rTˆn)ˆn, 접선 성분을 rt=(IˆnˆnT)r이라 하면, 포텐셜 함수 VF(ˉr)을 다음과 같이 정의하자.

VF(r)=0.5(rTnˆn)2+0.5(rTtˆtρ)2

r는 벡터, ˉr는 길이, ˆr은 단위 방향 벡터이다.

그러면 다음의 식을 취할 수 있다.

VFˉr=ˉrnˆnT+(rtρ)ˆtT

또한 다음과 같이 정의하자.

Γ(ˉr)=1α(ˉr)IS(ˉr)=γˆn×rtα(ˉr)

γ>0이다. 정규화 변수 α(ˉr)는 다음과 같이 주어진다.

α(ˉr)=1ν(ˉr2n+(ˉrtρ)2+ρ2γ2)1/2

γ의 크기는 Contraction 항과 Circulation 항의 상대적인 강도를, 부호는 회전 방향을 나타낸다.

 

경우를 나누어 생각해보면,

Case 1) 선회 원 상에 기체가 있다면,

V_F (\bar}=0 이며, ˉrn=0, ˉrt=ρ이다. ˆn은 평면에 직교하기 때문이다. 또한 contradiction term hc(ˉr,θ)=0이며, circulation term |S(ˉr)|=ν이 작동하면서 선회 원 상의 요구 속력을 나타낸다.

Case 2) ˉr이 커지면,

contradiction term |hc|ν이고, circulation term |S(ˉr)|0이게 된다. 식으로부터, 벡터 공간은 선회 원의 중심을 향한다.

 

MATLAB을 이용한 구현과 그림

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
x_minmax = [-200.0, 200.0];
y_minmax = [-200.0, 200.0];
term = 20;
spd = 10.0;
Rd = 100.0;
gamma = 0.2;
 
[X, Y] = meshgrid(x_minmax(1):term:x_minmax(2), y_minmax(1):term:y_minmax(2));
R = sqrt(X.^2 + Y.^2);
[m, n] = size(X);
U = zeros(m, n);
V = zeros(m, n);
for i = 1 : m
    for j = 1 : n
    u_rn = [0,0,1];
    u_rt = [X(i,j), Y(i,j), 0];
    u_rt = u_rt / max(1.0, sqrt(dot(u_rt,u_rt)));
    rn = 0;
    rt = R(i,j);
 
    alpha = (1/spd)*sqrt(power(rn,2)+power(rt-Rd,2)+power(Rd*gamma,2));
    dVf = rn*u_rn + (rt - Rd)*u_rt;
    Contraction = dVf / alpha;
    Circular = gamma * rt * cross(u_rn, u_rt) / alpha;
    h = -Contraction + Circular;
    U(i,j) = h(1);
    V(i,j) = h(2);
    end
end
 
figure(1);
quiver(X,Y,U,V);
grid on;
 

Racetrack 예시

 

두 경로점에 고정된 두 개의 선회 원 간을 번갈아 돌면서 만든 Racetrack 패턴 시뮬레이션에서, 전환 기준은 간단하다.

기체는 현재 선회 원의 경로점을 지정된 거리 내에 지나야하며, 다음 경로점의 벡터 공간 내에서 기체의 방위가 특정 오차 이내로 정렬되어야한다.

 

Ref

Dale Lawrence, Eric Frew and William Pisano, "Lyapunov Vector Fields for Autonomous UAV Flight Control," Jun 2012.

 

728x90

+ Recent posts