• 대한전기학회
Mobile QR Code QR CODE : The Transactions of the Korean Institute of Electrical Engineers
  • COPE
  • kcse
  • 한국과학기술단체총연합회
  • 한국학술지인용색인
  • Scopus
  • crossref
  • orcid

  1. (Light Rail Transit Research Team, Korea Railroad Research Institute, Korea.)



Profile generation, S-curve, Autonomous vehicle, Tram

1. 서 론

최근 자율주행 기술 분야는 운전자의 개입이 필요없는 완전자율주행을 목표로 세계 각국에서 활발한 연구가 진행되고 있다. 이러한 기술 흐름에 발맞춰 철도차량 분야에서도 차상 센서 기반의 자율주행 기술을 접목하려는 시도들이 보고되고 있다 (1). 철도차량의 한 분류인 트램은 자동차와 달리 고정된 선로 상을 주행하기 때문에 조향이 필요하지 않으나, 일반 철도차량과 달리 매립형 궤도의 운영 환경에 따라 주행 선로를 자동차 및 보행자와 공유하는 경우가 대부분이다. 이러한 개방형 운영 환경에서 자율주행을 구현하기 위해서는 기존의 인프라에 의존한 자동 운전은 적합하지 않으며, 각각의 차량이 독립적으로 인지, 판단 및 제어할 수 있는 차상 센서 기반의 자율주행을 구현할 필요가 있다. 특히 트램이 궤도주행 차량임을 감안할 때 자율주행 구현 시 주행 제어 측면의 주요한 설계 고려사항은 차량의 적절한 속도제어라고 볼 수 있다. 따라서 본 논문에서는 차량 제어의 측면에서 개방형 운영 환경에 대응하기 위한 방안으로 동적 속도 프로파일의 생성방법을 제안한다.

기준 프로파일은 속도 프로파일의 형태에 따라 사다리꼴 궤적, s-curve 궤적, 다항식 궤적 등으로 분류할 수 있으며, 최근에는 최적화 개념을 도입한 이동구간 제어(Receding Horizon Control) 기반의 생성방식도 널리 사용되고 있다 (2-5). 사다리꼴 혹은 s-curve 궤적의 경우 시/종점 간 가속도 기준값이 불연속한 단계로 구분되는 세그먼트 기반의 생성방식이지만, 궤적의 운동학적 특성을 특정값으로 제한하기에 용이한 장점이 있으며 (6-9), 다항식 궤적의 경우 연속성이 보장되는 고차의 다항식을 도입하여 좀 더 다양한 특성 설정이 가능하나 속도, 가속도 등의 제한을 명시적 구속조건으로 적용하기에는 까다로운 단점이 있다 (7). 이동구간 제어 방식은 시스템 동특성 및 구속조건을 체계화된 하나의 최적화 프레임에서 고려할 수 있는 장점이 있으나 코드 구현이 복잡하고 예측구간의 설정에 따른 계산 부하량을 고려해야 하므로 임베디드 시스템 구현 시 제어구간(control horizon) 및 예측구간(prediction horizon)의 설정이 제약되는 한계가 있다. 이러한 알고리즘들은 코드 구현 방식에 따라 온라인 혹은 오프라인 방식으로 분류할 수 있다. 전자의 경우 제어의 매 샘플마다 필요한 기준값을 정해진 알고리즘에 따라 계산하는 방식이고, 후자의 경우 전체 경로에 대한 기준값을 미리 계산하여 배열로 저장하거나 다항식 계수화하는 등의 방식으로 미리 구성하는 방식이다. 온라인 방식은 주행과정에서 발생하는 상황을 즉각적으로 프로파일에 반영하기 용이한 반면 제한된 제어주기 이내에 판단 및 계산을 수행해야 하므로 하드웨어 사양에 따라 제어 알고리즘이 적절한 계산 시간 내에 수행될 수 있도록 효과적으로 구성할 필요가 있다. 오프라인 방식은 정해진 경로를 일정한 패턴으로 반복하는 경우에 적합하며 제어주기에 의한 계산시간 제약이 없기 때문에 계산량이 많은 최적화 기법을 적용하기에 유리하지만, 주행 중의 제어 시점에서 실시간으로 프로파일을 재생성하기 어려운 단점이 있다.

본 논문에서는 속도 프로파일 생성 시 실시간 시스템 구현 및 운동학적 특성 제한의 용이성에 초점을 맞춰 세그먼트 기반의 궤적 생성방식을 적용하고, 제어 시스템의 진동 저감 및 궤적 추종 정확도와 추종 속도 향상을 위해 저크 제한이 가능한 3차의 s-curve 방식을 도입한다. 또한, 세그먼트 기반 방식의 특성상 시/종점 간 가속도 및 저크의 기준값이 불연속한 단계로 구분되고 이로 인해 임의의 경계 조건에 대한 실시간 재생성이 복잡해지는 것을 해소하기 위하여 경로상의 속도 제한값과 정지거리 예측에 기반한 s-curve 생성 방법을 제안한다. 제안 방식의 유효성은 목적지점 이동을 위한 시나리오 구성 및 시뮬레이션을 통해 검증한다.

2. 본 론

2.1 속도 프로파일의 구성

본 절에서는 s-curve의 일반적인 구성에 대해 소개한다. s-curve 궤적 생성방식은 저크의 형태를 구성하는 기본모델에 따라 다항식 모델과 삼각함수 모델 등으로 구분된다 (6). 각 모델은 요구되는 궤적의 매끄러움(smoothness) 정도에 따라 세부적으로 분류되는데 다항식 모델의 경우 3차의 모델이 일반적이다.

Fig. 1. Typical s-curve profile based on 3rd order polynomial

../../Resources/kiee/KIEE.2020.69.10.1569/fig1.png

이 궤적의 가속 프로파일은 7개의 세그먼트로 구성된다. 프로파일 시점과 종점의 각각 3개의 세그먼트는 가속 및 감속 단계를 구성하며 중간지점의 1개의 세그먼트는 등속구간을 구성한다. 가속 및 감속 영역에 대한 저크 프로파일은 다음과 같다.

(1)
$j(t)=\begin{cases} j_{m1}t_{0}\le t\le t_{1},\: t_{6}\le t\le t_{7}\\ 0 t_{1}\le t\le t_{2},\: t_{3}\le t\le t_{4},\: t_{5}\le t\le t_{6}\\ j_{m2}t_{2}\le t\le t_{3},\: t_{4}\le t\le t_{5} \end{cases}$

시간에 따른 위치, 속도, 가속도 프로파일은 저크 프로파일 기본 모델의 적분을 통한 운동학적 관계에 의해 정의되며 최대 속도, 가속도 및 저크가 (2)와 같이 주어진 경우 그림 1과 같은 형태의 s-curve 프로파일이 생성된다.

(2)
$\begin{bmatrix}v_{m}\\a_{m}\\j_{m1}\\j_{m2}\end{bmatrix}=\begin{bmatrix}\max(v(t))\\\max(a(t))\\j_{m}\\-j_{m}\end{bmatrix}$

2.2 속도 프로파일 생성절차

Fig. 2. The procedure for velocity profile generation

../../Resources/kiee/KIEE.2020.69.10.1569/fig2.png

앞서 살펴본 바와 같이 s-curve 궤적은 다수의 저크 세그먼트로 구성되기 때문에 목표 이동거리 및 최대 가속도, 최대 속도 등이 결정되면 이에 맞게 세그먼트별 구간을 설정하고 각 세그먼트 경계의 스위칭 시점을 미리 계획하는 과정이 필요하다. 단일 시/종점 혹은 단일 속도 제한값으로 구성되는 경로의 주행시 이러한 사전 계산 과정은 비교적 간단하게 처리할 수 있으나, 속도 제한수준이 여러 단계로 구성되거나 외부 상황에 따라 임의로 변경되는 경우에는 그 처리가 다소 까다롭게 된다. 또한, 주행 중 경로의 상황변화에 따라 프로파일을 실시간으로 다시 생성해야 할 경우, 영이 아닌 임의의 경계 조건 및 비대칭 프로파일에 대한 처리도 병행되어야 하므로 관련 처리 과정은 더욱 복잡하게 된다 (9). 본 논문에서는 이러한 스위칭 시간에 기반한 경로 생성을 배제하고, 임의의 경계조건에 대해 유연한 경로 생성을 위해 그림 2와 같은 프로파일 생성절차를 구성하였다. 프로파일 생성기는 제어의 매 샘플마다 진입하여 추종 목표를 갱신하도록 하며, 속도제한 확인, 모드 선택, 가/감속 명령생성, 기준궤적 생성의 단계로 구성된다. 모드 선택부에서는 프로파일의 상태벡터와 속도 제한값의 관계에 따라 목표 가속도($a_{m}$) 및 목표 저크($j_{m}$)를 계산하며, 도출된 목표값은 가/감속 명령생성부에서 궤적 생성을 위한 명령값을 생성하는 데에 사용된다. 또한, 주행 경로상의 속도 제한 변동에 대응하기 위해 매 샘플마다 현재 프로파일 상태에 따른 최대 감속 정지거리($d_{s}$)를 계산하고, $d_{s}$의 속도 제한값과 현재 상태의 속도 제한값의 비교를 통해 모드 전환 판단을 실시한다. 다음 절에서는 각 구성 요소의 세부사항을 설명한다.

2.3 목표 가속도 설정

모드 선택유닛은 현재 궤적 상태에 따라 가속 혹은 감속모드를 결정하는 기능을 한다. 최초 동작은 가속 모드로 시작하며 가속 모드에서는 가속의 출발시점 ($v_{k}<v_{b,\:k}$ 및 $a_{k}=0$)혹은 재가속이 필요한 시점($v_{b,\:k-1}<v_{b,\:k}$ 및 $a_{k}\ge 0$)에 목표 가속도를 설정한다. 그림 3에서 $t_{k}$ 시점의 속도 제한이 $v_{b,\:k}$이고 현재 속도가 $v_{k}$라고 하면, 목표 가속도($a_{m}$) 및 목표 저크($j_{m}$)와 요구되는 속도증가량($\Delta v$)의 관계는 다음의 식으로 표현할 수 있다.

(3)
\begin{align*} \Delta v=v_{b,\:k}-v_{k}=\int_{t_{k}}^{t_{3}}a(t)dt\\ =\dfrac{a_{m}^{2}}{j_{m}}-\dfrac{1}{2}\dfrac{a_{k}^{2}}{j_{m}}+a_{m}(t_{2}-t_{1}) \end{align*}

이 때, $t_{2}=t_{1}$인 삼각파 형 가속 형태를 고려하면, 현재 상태에서 속도 제한값에 도달하기 위한 목표 가속도는 아래와 같이 계산할 수 있다.

(4)
$a_{mp}=\sqrt{(v_{b,\:k}-v_{k})\times j_{m}+\dfrac{1}{2}a_{k}^{2}}$

만약, 계산된 $a_{mp}$ 값이 시스템 한계에 의해 주어지는 최대 가속도($a_{m}$)를 초과하는 경우 포화값을 적용한다.

Fig. 3. Target acceleration setting in acceleration mode

../../Resources/kiee/KIEE.2020.69.10.1569/fig3.png

2.4 최대 감속 정지거리 예측

다음 단계에서는 현재의 프로파일 상태 벡터($x_{k}$)에 따른 최대 감속 정지거리($d_{s}$)를 계산하고 정지위치($p_{f}$) 및 정지위치의 속도 제한값($v_{b,\:pf}$)을 갱신한다. 저크 입력에 대한 가속도, 속도, 거리의 운동학적 관계를 상태 방정식으로 기술하면 다음과 같다.

(5)
$x_{k+1}=Ax_{k}+Bj_{k}$

여기서 상태벡터 및 A, B 행렬은 다음과 같다.

(6)
$x_{k}=\begin{bmatrix}d_{k}\\v_{k}\\a_{k}\end{bmatrix},\:A=\begin{bmatrix}1& T&(1/2)T^{2}\\0& 1&T\\0& 0&1\end{bmatrix},\: B=\begin{bmatrix}(1/6)T^{3}\\(1/2)T^{2}\\T\end{bmatrix}$

일반적인 3차의 s-curve 감속 프로파일을 고려하면 최대 감속시 저크 입력은 그림 4와 같이 3개의 세그먼트($s_{1}\sim s_{3}$)로 구분할 수 있다. 이를 시간 구간에 따른 저크 입력으로 표현하면 다음과 같다.

(7)
$$ j_{k}=\left\{\begin{array}{cc} -j_{m} & \left(k=1,0<t<t_{2}\right) \\ 0 & \left(k=2, t_{2}<t<t_{3}\right) \\ j_{m} & \left(k=3, t_{3}<t<t_{4}\right) \end{array}\right. $$

즉, $d_{s}$는 목표 입력벡터($u_{m}=[a_{m},\: j_{m}]$) 구속조건이 적용된 경우의 이동거리이며, 상기 시간 구간을 가속도의 초기조건에 따라 적절히 계산하고 전체 세그먼트에 대해 (6)을 회귀적으로 적용하면 $u_{m}$ 구속조건 적용 시의 $d_{s}$를 계산할 수 있다.

(8)
$d_{s}=\sum_{k=1}^{3}d_{k}$ subject to $[a_{k},\: j_{k}]\le u_{m}$

먼저, 가속도의 초기조건($a_{0}$)이 양수인 경우를 살펴보면 다음과 같다.

Fig. 4. Deceleration profile for $d_{s}$ calculation($a_{0}>0$)

../../Resources/kiee/KIEE.2020.69.10.1569/fig4.png

그림 4에서 $t_{1}$까지의 구간은 양의 가속도 $a_{0}$에 의한 잔여 증가 속도를 나타낸다. 저크와 가속도의 관계에 의해 $dt_{1}\sim dt_{4}$는 다음과 같이 정의할 수 있다.

(9)
$\begin{bmatrix}dt_{1}\\dt_{2}\\dt_{3}\\dt_{4}\end{bmatrix}=\begin{bmatrix}a_{0}/j_{m}\\a_{m}/j_{m}\\v_{1}/a_{m}-dt_{2}\\a_{m}/j_{m}\end{bmatrix}$

여기서 $v_{1}$은 다음의 적분관계를 통해 정의되는 $t_{1}$ 시점의 속도이다.

(10)
$\int_{0}^{t_{1}}a(t)dt=v_{0}+\dfrac{1}{2}a_{0}dt_{1}=v_{1}$

$t_{1}$ 이후는 실질적인 감속이 발생되는데, 만약 $v_{1}$이 $dt_{2},\: dt_{4}$ 구간의 면적보다 작은 경우 최대 감속($-a_{m}$)을 적용할 수 없고, 다음의 관계에 의해 수정된 $a_{m}$을 적용해야 한다. 이 경우 $dt_{2}$는 다음의 관계에 의해 다시 계산되며, $dt_{3}$는 0으로 설정된다.

(11)
$v_{1}=\int_{t_{1}}^{t_{2}}a(t)dt+\int_{t_{3}}^{t_{4}}a(t)dt=\dfrac{a_{mp}^{2}}{j_{m}}$

(12)
$dt_{2}=a_{mp}/j_{m}$

다음으로 가속도의 초기조건($a_{0}$)이 음수인 경우는 그림 5에 보인 것과 같이 3가지 경우(①→②, ①→④, ③→④)가 존재할 수 있다. 모든 경우에 $dt_{1}$은 0으로 설정되며, 각 경우에 따라 $dt_{2}\sim dt_{4}$가 결정된다.

Fig. 5. Deceleration profile for $d_{s}$ calculation($a_{0}<0$)

../../Resources/kiee/KIEE.2020.69.10.1569/fig5.png

먼저, 초기속도($v_{0}$)에 따라 크게 두 가지 경우로 나눌 수 있다. 첫 번째는 ③→④의 경우로 다음의 조건을 만족하는 경우이다.

(13)
$v_{0}\le C_{1}$

여기서 $C_{1}$은 가속도가 현재 상태에서 지정된 최대 저크($j_{m}$)로 ramp-up에 바로 진입하는 경우에 감속 가능한 속도로 가속도 프로파일의 형상에서 다음과 같이 계산할 수 있다.

(14)
$C_{1}=\dfrac{1}{2}a_{0}dt_{4},\: dt_{4}=\dfrac{a_{0}}{j_{m}}$

이때, $dt_{2},\: dt_{3}$는 0으로 설정된다.

다음은 (13)의 조건을 만족하지 않은 경우로 그림 5에서 ①→②, ①→④의 경우이다. 먼저 ①→② 형태를 가정하면, 이 때 적용가능한 가속도 값은 다음의 가속도와 속도의 관계로부터 구할 수 있다.

(15)
$\int a(t)dt=\dfrac{a_{mp}^{2}}{j_{m}}-\dfrac{1}{2}\dfrac{a_{0}^{2}}{j_{m}}=v_{0}$

(16)
$a_{mp}=\sqrt{v_{0}j_{m}+\dfrac{1}{2}a_{0}^{2}}$

이 때의 $dt_{2}\sim dt_{4}$는 다음과 같이 계산된다.

(17)
$\begin{bmatrix}dt_{2}\\dt_{3}\\dt_{4}\end{bmatrix}=\begin{bmatrix}(a_{mp}-a_{0})/j_{m}\\0\\a_{mp}/j_{m}\end{bmatrix}$

만약 $a_{mp}$의 값이 지정된 미리 지정된 $a_{m}$을 초과하는 경우 가속도는 $a_{m}$으로 포화되어 ①→④의 프로파일 형태가 적용되며 이 때의 $dt_{2}\sim dt_{4}$는 다음의 관계에서 계산할 수 있다.

(18)
$\int a(t)dt=\dfrac{a_{m}^{2}}{j_{m}}-\dfrac{1}{2}\dfrac{a_{0}^{2}}{j_{m}}+a_{m}dt_{3}=v_{0}$

(19)
$\begin{bmatrix}dt_{2}\\dt_{3}\\dt_{4}\end{bmatrix}=\begin{bmatrix}(a_{m}-a_{0})/j_{m}\\v_{0}/a_{m}-a_{m}/j_{m}+0.5 a_{0}^{2}/(j_{m}a_{m})\\a_{mp}/j_{m}\end{bmatrix}$

계산된 $dt_{1}\sim dt_{4}$의 값에 따라 세그먼트 별 입력 인가 시간을 결정하고 이를 (6)에 회귀적으로 적용하면 최종적인 $d_{s}$를 계산할 수 있다. 상기 과정을 통해 사전에 계획된 전체 프로파일의 정보 혹은 상태벡터의 프로파일 내의 현재 위치 등과 같은 참조 정보를 사용하지 않고 현재 샘플의 가속도 상태만으로 정지거리를 산출할 수 있으며 임의의 조건에 대한 프로파일 생성을 일반화할 수 있다.

2.5 모드 전환 판단

이 단계에서는 현재 프로파일 상태에 따른 최대 감속 정지거리($d_{s}$)를 계산하고, $d_{s}$의 속도 제한값과 현재 상태의 속도 제한값의 비교를 통해 모드 전환 판단을 수행한다. 해당 판단 결과에 따라 이후의 목표 입력벡터 갱신여부가 결정된다. 여기서는 그림 6의 일반조건 분석을 통해 모드 전환 판단 로직을 설명한다.

먼저, $x_{k1}=[s_{k1}v_{k1}]$의 경우 해당 시점의 속도제한값 $v_{b}(s_{k1})$과 $d_{s}$의 속도제한값 $v_{b}(s_{p1})$을 비교했을 때 차이가 없으므로 감속을 위한 조치가 필요하지 않으며 현재의 가속 상태를 유지한다. $x_{k2}=[s_{k2}v_{k2}]$의 경우 해당 시점의 속도제한값 $v_{b}(s_{k2})$와 $d_{s}$의 속도제한값 $v_{b}(s_{p2})$을 비교했을 때 속도제한의 감소가 검출되므로 해당 위치를 저장($x_{e}=[s_{e}v_{e}]$) 후 감속모드로 변경하고 목표 입력벡터($u_{m}$)를 갱신한다. 감속모드로 전환된 상태에서는 검출된 상태벡터($x_{e}$)와 현재의 상태 벡터를 비교하고 현재 상태에서 추정한 $d_{s}$ 위치가 $s_{e}$를 초과하는 경우의 속도 제한값 $v_{b}(s_{k2}+d_{s}(x_{k2}))$이 $v_{e}$보다 작은 경우 새로운 목표 속도에 맞추기 위해 목표 입력벡터($u_{m}$)를 갱신한다.

Fig. 6. The conditions to update the target input vector

../../Resources/kiee/KIEE.2020.69.10.1569/fig6.png

2.6 목표 입력벡터 계산

감속모드 진입이 판단되어 $a_{m},\: j_{m}$을 갱신하는 과정은 $d_{s}$ 계산시 가속도 조건에 따라 분류하는 것과 유사하며 현재 가속도의 부호 조건에 따라 두 가지 조건으로 분류할 수 있다. 첫 번째는, 현재 가속도가 양수인 경우이며 이때의 시나리오는 그림 7의 하위 조건으로 분류할 수 있다. 여기서, $x_{k}$는 감속모드로 진입하는 시점의 프로파일 상태벡터이고, $a:x_{v1}$ 및 $b:x_{v1}$는 저크 제한에 의해 감속 진입시 양의 가속도가 감속으로 전환되기까지의 잔여 속도 증가의 두 가지 경우이다. 이 때의 속도($v_{1}$)와 $d_{s}$ 위치($s_{p}$)의 속도제한($v_{b}(s_{p})$)의 관계에 따라 상이한 접근이 필요하다. 먼저, $v_{1}$이 $v_{b}(s_{p})$보다 작은 경우($a:x_{v1}$)를 살펴보면 다음과 같다. 그림 4의 감속 프로파일을 참고하면 이때의 궤적은 $t_{0}\sim t_{1}$ 구간에서 필요한 속도증가량($\Delta v=v_{b}(s_{p})-v_{0}$)보다 과도하게 감속된 상태로 볼 수 있다. 따라서 $j_{m}$을 다음과 같이 조정하면 $t_{1}$에서 $v_{b}(s_{p})$ 속도제한에 맞출 수 있다.

(20)
$v_{1}=v_{0}+\dfrac{1}{2}a_{0}dt_{1},\: dt_{1}=\dfrac{a_{0}}{j_{m}}$

(21)
$j_{m}=\dfrac{a_{0}^{2}}{2(v_{b}(s_{p})-v_{0})}$

다음으로 $v_{1}$이 $v_{b}(s_{p})$보다 큰 경우($b:x_{v1}$)는 $a_{m}$ 값을 조정하여 $v_{b}(s_{p})$ 속도제한에 맞추도록 한다. 이 경우 가장 간단한 방법은 그림 4의 감속 프로파일에서 $dt_{3}$가 없는 삼각파 형태를 가정하여 필요 감속량에 대한 $a_{m}$ 값을 적용하는 것으로 이를 계산하면 다음과 같다.

(22)
$a_{m}=\sqrt{(v_{1}-v_{b}(s_{p}))j_{m}}$

Fig. 7. The sub-scenarios to enter the deceleration mode

../../Resources/kiee/KIEE.2020.69.10.1569/fig7.png

하지만 $a_{m}$값이 주어진 시스템 제한값을 초과하는 경우, 제한값으로 포화되기 때문에 감속 프로파일은 $dt_{3}$ 구간을 포함하는 형태로 구성할 필요가 있다. 이 경우 $t_{1}\sim t_{4}$ 구간에서 필요한 속도감소량($\Delta v=v_{1}-v_{b}(s_{p})$)은 해당 구간의 감속도 형태로부터 다음과 같이 계산할 수 있으며, $\Delta v,\: j_{m}$이 주어진 경우 $a_{m}$ 결정을 위해서는 $dt_{3}$를 적절히 결정할 필요가 있다.

(23)
$\int_{t_{1}}^{t_{4}}a(t)dt=(dt_{2}+dt_{3})a_{m}=\Delta v$

(24)
$dt_{2}=a_{m}/j_{m}$

이를 위해서는 $t_{1}\sim t_{4}$ 사이에 요구되는 다음의 이동거리를 구속조건으로 사용하면 상태벡터 $x_{e}$ 지점에서 $v_{b}(s_{p})$를 만족하는 궤적을 생성할 수 있다.

(25)
$\iint_{t_{1}}^{t_{4}}a(t)dt =s_{e}-s_{1}$

상기 조건에 대해 식을 정리하면 다음과 같은 이차 방정식으로 표현할 수 있으며 $0\le a_{m}\le a_{\max}$ 조건을 만족하는 값을 해로 선택한다.

(26)
$a_{m}^{2}+2\alpha a_{m}+\beta =0$

여기서,

(27)
$\alpha =\dfrac{j_{m}(p_{1}-p_{e})}{\Delta v+2v_{e}},\:\beta =(v_{1}-v_{e})j_{m}$

목표 입력벡터 계산의 가속도 부호 조건에 따른 두 번째 조건은 $a_{0}$가 음수인 경우이다. 이때의 하위 시나리오는 그림 5의 3가지 경우가 있으며, 이때의 필요한 속도감소량은 진입 시점의 속도를 기준으로 다음과 같이 정의할 수 있다.

(28)
$\Delta v=v_{0}-v_{b}(s_{p})$

목표 가속도 값은 $\Delta v$와 (13)에서 정의된 $C_{1}$과의 관계에 따라 다음과 같이 결정된다.

(29)
$$ a_{m}=\left\{\begin{array}{ll} a_{0} & \left(\Delta v \leq C_{1}\right) \\ \sqrt{\Delta v j_{m}+a_{0}^{2} / 2} & \left(\Delta v>C_{1}\right) \end{array}\right. $$

2.7 가/감속 명령 생성

감속가속 및 감속을 위한 명령생성은 앞서 설정된 목표 입력벡터($a_{m},\: j_{m}$) 값에 의해 결정된다. 가속 모드인 경우 속도 상태에 따라 다음과 같이 명령을 생성한다.

(30)
$a_{cmd}=\begin{cases} a_{m}sat(\dfrac{a_{cmd}+j_{m}T_{s}}{a_{m}})&(v_{k}<v_{ramp})\\ a_{m}sat(\dfrac{a_{cmd}-j_{m}T_{s}-a_{m}}{a_{m}})+a_{m}&(v_{k}\ge v_{ramp}) \end{cases}$

여기서, $v_{ramp}$는 가속구간에서 가속도가 목표값에 도달한 이후 목표 속도에 안착하기 위해 필요한 ramp-down 진입조건을 나타내며, 해당 목표 속도에 의해 다음과 같이 계산할 수 있다.

(31)
$v_{ramp}=v_{b}(s_{k})-\dfrac{1}{2}\dfrac{a_{m}^{2}}{j_{m}}$

감속 모드의 경우는 가속과 반대로 목표 속도에 안착하기 위해 필요한 ramp-up 진입조건에 의해 명령을 생성하며, 다음의 식에 의해 정의된다.

(32)
$a_{cmd}=\begin{cases} a_{m}sat(\dfrac{a_{cmd}-j_{m}T_{s}}{a_{m}})&(v_{k}>v_{ramp})\\ a_{m}sat(\dfrac{a_{cmd}+j_{m}T_{s}+a_{m}}{a_{m}})-a_{m}&(v_{k}\le v_{ramp}) \end{cases}$

(33)
$v_{ramp}=v_{b}(s_{k})+\dfrac{1}{2}\dfrac{a_{m}^{2}}{j_{m}}$

2.8 궤적 생성유닛

상기 과정을 통해 생성된 가속 명령은 궤적 생성유닛에 인가하여 기준 궤적을 생성한다. 제어 주기($T_{s}$) 동안 영차 유지(zero order hold) 입력이 인가된다고 가정하면 가속도와 변위 간의 운동학적 관계를 통해 다음과 같은 위치, 속도의 차분 방정식을 구성할 수 있다.

(34)
$$ x_{k+1}=\left[\begin{array}{cc} 1 & T_{s} \\ 0 & 1 \end{array}\right] x_{k}+\left[\begin{array}{c} T_{s}^{2} / 2 \\ T_{s} \end{array}\right] a_{k} $$

여기서, $x_{k}=\begin{bmatrix}s_{k}& v_{k}\end{bmatrix}^{T}$ 로 정의되는 궤적의 상태벡터이다.

2.9 프로파일 생성 검증

제안한 프로파일 생성방식의 검증을 위해 모의실험을 수행하였다. 기준 프로파일 생성을 위한 입력은 시스템 동특성을 반영한 최대 가속도($a_{m}$)와 최대 저크($j_{m}$) 그리고 노선 구배, 곡률 및 운영 특성 등을 반영한 속도 제한값으로 구성된다. 본 모의실험에서는 상황별 프로파일 생성을 확인하기 위한 차량의 운동특성 제한조건을 다음과 같이 가정하였다.

(35)
$[a_{m},\: j_{m}]=[0.5 m/s^{2}0.2 m/s^{3}]$

Fig. 8. Profile generation for v-limit increase section(1/2)

../../Resources/kiee/KIEE.2020.69.10.1569/fig8.png

Fig. 9. Profile generation for v-limit increase section(2/2)

../../Resources/kiee/KIEE.2020.69.10.1569/fig9.png

먼저 제한속도가 증가하는 경우의 목표 가속도 재생성 동작을 살펴본다. 여기서는 그림 8, 9의 c1~c3의 세 가지 경우에 대한 프로파일 생성 비교를 통해 제한속도 증가구간에 대한 응답 특성을 검증한다. 그림 8의 첫 번째 그래프는 시간별 속도 프로파일로 가속 명령이 궤적 생성유닛에 인가되어 도출되는 결과이고, 두 번째 그래프는 목표 가속도 값이 반영되어 매 샘플에서 갱신되는 가속 명령이다. 그림 9의 첫 번째 그래프는 위치별 제한속도로 노선의 운영조건에 의해 미리 주어지거나 트램의 주행 중 전방위치에서 검출되는 값이고, 두 번째 그래프는 상기 제한속도 변경이 반영되어 계산되는 목표 가속도 값이다. c1은 제한속도의 변경 없이 3km/h로 유지된 경우로 정지상태에서 목표 속도까지 가속을 위한 $a_{m}$값은 초기 가속 단계에서 (4)를 통해 계산되고 이를 기초로 가속 명령 및 기준 속도 프로파일이 제한속도에 맞도록 생성된 것을 확인할 수 있다. c2 및 c3는 시작 구간의 제한속도는 3km/h이나 0.5m 지점과 1m 지점에서 각각 5km/, 10km/h로 변경된 경우이다. 해당 변경 시점은 매 샘플에서 재가속이 필요한 조건($v_{b,\:k-1}<v_{b,\:k}$ 및 $a_{k}\ge 0$)의 모니터링을 통해 검출되며, 이 때 $a_{m}$이 재계산되어 갱신되고, 이에 맞춰 가속 명령이 생성된 후 기준 속도 프로파일이 목표 속도에 맞도록 생성되는 것을 확인할 수 있다.

다음으로 제한속도 감소하는 경우의 목표 입력벡터 재생성 동작을 살펴본다. 여기서는 그림 10, 11의 c4~c6의 세 가지 경우에 대한 프로파일 생성 비교를 통해 제한속도 감소구간에 대한 응답 특성을 검증한다. 그림 10, 11은 각각 앞서 설명한 그림 8, 9에 대응된다. c4는 제한속도의 변경 없이 10km/h로 유지된 경우로 정지상태에서 목표 속도까지 가속을 위한 $a_{m}$값은 이전과 마찬가지로 초기 가속 단계에서 (4)를 통해 계산되고 이를 기초로 가속 명령 및 기준 속도 프로파일이 제한속도에 맞도록 생성된다. c5는 10km/h의 제한속도 조건으로 시작하여 5m지점에서 5km/h로 감속되는 경우이다. 이 때는 감속 진입 시 양의 가속도가 감속으로 전환되기까지의 잔여 속도 증가가 부족한 경우로 그림 10의 가속 명령의 하강 기울기를 통해 해당 시점에 재계산된 저크의 크기가 감소되었으며, 이를 통해 최대감속 정지거리의 목표 속도에 맞도록 프로파일이 생성된 것을 확인할 수 있다. c6는 10km/h의 제한속도 조건으로 시작하여 10m지점에서 5km/h로 감속되는 경우이다. 이 때는 감속 진입 시 양의 가속도가 감속으로 전환되기까지의 잔여 속도 증가가 과도한 경우로 그림 11의 최대 가속도 그래프에서 해당 시점에 재계산된 가속도의 크기가 감소하였으며, 이를 통해 최대감속 정지거리의 목표 속도에 맞도록 프로파일이 생성된 것을 확인할 수 있다.

Fig. 10. Profile generation for v-limit decrease section(1/2)

../../Resources/kiee/KIEE.2020.69.10.1569/fig10.png

Fig. 11. Profile generation for v-limit decrease section(2/2)

../../Resources/kiee/KIEE.2020.69.10.1569/fig11.png

끝으로 실제 트램의 주행을 고려한 시나리오 평가를 수행하였다. 노선 속도제한은 프로파일 생성 방식의 가속 및 감속 대응 특성을 복합적으로 파악할 수 있도록 구성하였으며, 500m의 이동 거리를 그림 12의 ①~⑤와 같이 다섯 개의 구간으로 구분하였다. ①은 정지 상태의 초기조건에서 속도제한 목표 속도까지의 가속 프로파일 생성을 확인하기 위한 구간이고 ②~④는 임의의 초기조건 및 종점조건에서 감속 진입의 검출 및 가/감속 프로파일 생성을 확인하기 위한 구간이다. 여기서 ②, ③은 생성 프로파일이 제한속도에 도달하기 전에 감속이 검출되는 경우를 확인하기 위한 부분이고, ④는 생성 프로파일이 제한속도에 도달한 후에 감속이 검출되는 경우의 프로파일 생성을 확인하기 위한 구간이다. 끝으로 ⑤는 임의의 초기조건 및 정지 종점조건에서의 프로파일 생성을 확인하기 위한 구간이다.

Fig. 12. Velocity limit scenario for a route

../../Resources/kiee/KIEE.2020.69.10.1569/fig12.png

시뮬레이션 결과는 그림 13과 같다. 여기서 (a)는 위치-속도의 궤적, (b)는 시간-속도의 궤적, (c)는 시간-위치의 궤적 및 각 샘플의 상태에서 추정된 $d_{s}$ 거리, (d)는 시간-가속도 입력을 나타낸다.

①의 구간에서는 목표 속도까지 도달을 위한 가속 명령이 미리 정의된 목표 입력벡터($u_{m}$) 조건에 맞도록 사다리꼴 형태로 생성되고 목표 속도 도달 이후 항속 구간이 유지되는 것을 확인할 수 있다. ②의 구간에서는 초기 가속 이후 목표 속도 도달 이전에 $d_{s}$ 거리의 속도제한 감소가 검출되어 감속을 위한 $u_{m}$ 이 갱신되고, 이때 시스템의 최대 가속도 제약조건을 만족하는 $a_{m}$이 계산되어 감속 명령의 형상이 삼각파 프로파일로 생성된 것을 확인할 수 있다. ③의 구간에서도 초기 가속 이후 목표 속도 도달 이전에 속도제한 감소가 검출되어 $u_{m}$이 갱신되나 이 경우는 시스템의 최대 가속도 제약조건을 초과하여 (25)의 이동거리 구속조건이 적용된 프로파일이 생성된다. (a)의 위치-속도 차트에서 해당 구간의 종단을 살펴보면 속도제한 변동 지점에서 목표 속도에 일치하도록 프로파일이 생성된 것을 확인할 수 있다. ④의 구간에서는 초기 가속 이후 목표 속도까지 도달하기 위한 가속 명령이 적절히 생생되었으며 이후 속도제한 감소가 검출되어 이에 맞는 감속 프로파일이 생성된 것을 확인할 수 있다. 끝으로 ⑤의 구간에서는 주행 중의 상황에서 정차를 위한 목적지점을 속도제한의 목표 속도 정지값(0)으로 검출하고 정지 상태까지 감속을 위한 프로파일이 의도한 대로 생성된 것을 확인할 수 있다. 프로파일 생성 시 계산되는 최대감속 정지거리의 궤적은 그림 13의 (c) 및 그림 14에 나타내었다. (2)에서 추론할 수 있듯이 최대감속 정지거리는 목표 입력벡터($u_{m}$)가 고정된 경우 가속도, 속도, 정지거리로 구성된 3차원 공간에서 하나의 곡면으로 형성되는 것을 확인할 수 있다. 코드 구현시 계산량을 줄이기 위해서는 최대감속 정지거리의 이러한 특성을 이용하여 다항식 계수화하고 선형 보간하는 방식을 고려할 수 있을 것이다.

Fig. 13. Profile generation simulation result

../../Resources/kiee/KIEE.2020.69.10.1569/fig13.png

Fig. 14. Maximum deceleration stop distance of the generated profile

../../Resources/kiee/KIEE.2020.69.10.1569/fig14.png

3. 결 론

본 논문에서는 주행 중 프로파일 가변 시 효과적으로 대응할 수 있는 동적 프로파일의 생성방법을 살펴보았다. 제안한 프로파일 생성방법은 기존의 이동구간 최적화 기반의 생성방식과 비교 시 임베디드 시스템 적용에 따른 예측구간 설정의 제한이 없으므로 전체 경로관점의 차량 거동을 효과적으로 반영할 수 있는 장점이 있으며, 세그먼트 기반의 프로파일 생성 시 수반되는 스위칭 시점 처리 과정을 제거하여 실시간 궤적 생성에 유리하다. 또한, 주행 중 전방의 교통상황, 장애물 검출 등에 따른 속도변경 필요시 프로파일 생성 입력부의 경로 속도 제한값 조정으로 손쉽게 실시간 대응이 가능한 장점이 있다. 모의 실험을 통해 제안한 방식의 프로파일 생성결과를 살펴보았으며, 다양한 속도제한 변동 상황에 대해 실시간 프로파일 생성을 효과적으로 구현할 수 있음을 검증하였다. 향후 구축될 차상 센서 기반의 자율주행 트램 시스템은 차속센서, 관성센서(IMU), 위성항법장치(GPS), 라이다(LiDAR) 등의 차상 센서를 기반으로 정거장 간 자율주행을 시험할 계획이다. 제안한 방법은 트램 주행 시 속도제한 변동을 유발할 수 있는 전방의 상황에 대해 실시간 대응이 가능한 프로파일의 생성 및 안정적인 주행을 위한 센서 검출 거리의 검증 등에 활용될 예정이다.

Acknowledgements

본 연구는 한국철도기술연구원 주요사업 “자율주행트램 차량핵심기술개발”의 연구비 지원으로 수행되었습니다.

References

1 
A. Fantechi, 2019, Connected or Autonomous Trains?, International Conf. on Reliability, Safety, and Security of Railway Systems, pp. 3-19Google Search
2 
G. Cimini, Y. Kim, B. McCain, J. Siegel, A. Stefanopoulou, 2017, Model Predictive Control for Real-time Position Tracking of a Catenary-free Tram, IFAC(International Federation of Automatic Control), pp. 1000-1005DOI
3 
Z. Li, L. Chen, C. Robert, N. Zhao, 2018, Dynamic Trajectory Optimization Design for Railway Driver Advisory System, IEEE Intelligent Transportation System Magazine, pp. 121-132DOI
4 
X. Yan, B. Cai, B. Ning, W. ShangGuan, 2016, Moving Horizon Optimization of Dynamic Trajectory Planning for High-Speed Train Operation, IEEE Trans. on Intelligent Transportation System, pp. 1258-1270DOI
5 
S. Lu, S. Hillmanse, T. K. Ho, C. Roberts, 2013, Single- Train Trajectory Optimization, IEEE Trans. on Intelligent Transportation System, pp. 743-750DOI
6 
Y. Fang, J. Hu, W. Liu, Q. Shao, J. Qi, Y. Peng, 2019, Smooth and time-optimal S-curve trajectory planning for automated robots and machines, Mechanism and Machine Theory 137, pp. 127-153DOI
7 
G. Lee, J. Kim, Y. Choi, 2013, Convolution-Based Trajectory Generation Methods Using Physical System Limits, Journal of Dynamic Systems, Measurement, and ControlDOI
8 
H. Heo, Y. Son, J. Kim, 2019, A Trapezoidal Velocity Profile Generator for Position Control Using a Feedback Strategy, EnergiesDOI
9 
R. Haschke, E. Weitnauer, H. Ritter, 2008, On-line planning of time-optimal, jerk-limited trajectories, IEEE/RSJ International Conference on Intelligent Robots and SystemsDOI

저자소개

Sung-Won Park
../../Resources/kiee/KIEE.2020.69.10.1569/au1.png

He received the Ph.D. degree in mechanical engineering from the Yonsei University, Korea in 2005.

He is currently senior researcher at Korea Railroad Research Institute, Korea

Kyoung Joon Choi
../../Resources/kiee/KIEE.2020.69.10.1569/au2.png

He received the Ph.D. degree in nuclear engineering from the UNIST, Korea in 2017.

He is currently senior researcher at Korea Railroad Research Institute, Korea.

Hyeon-Chyeol Hwang
../../Resources/kiee/KIEE.2020.69.10.1569/au3.png

He received the Ph.D. degree in electrical engineering from the Inha University, Korea in 2006.

He is currently principal researcher at Korea Railroad Research Institute, Korea.

Jae-Ho Kwak
../../Resources/kiee/KIEE.2020.69.10.1569/au4.png

He received the Ph.D. degree in mechanical engineering from the Purdue University, USA in 2005.

He is currently principal researcher at Korea Railroad Research Institute, Korea.