DOI QR코드

DOI QR Code

Design of Trajectory Generator for Performance Evaluation of Navigation Systems

  • Jae Hoon Son (Department of Electronics Engineering, Chungnam National University) ;
  • Sang Heon Oh (Advanced Technology Laboratory, Microinfinity Co., Ltd.) ;
  • Dong-Hwan Hwang (Department of Electronics Engineering, Chungnam National University)
  • Received : 2023.11.23
  • Accepted : 2023.11.30
  • Published : 2023.12.15

Abstract

In order to develop navigation systems, simulators that provide navigation sensors data are required. A trajectory generator that simulates vehicle motion is needed to generate navigation sensors data in the simulator. In this paper, a trajectory generator for evaluating navigation system performance is proposed. The proposed trajectory generator consists of two parts. The first part obtains parameters from the motion scenario file whereas the second part generates position, velocity, and attitude from the parameters. In the proposed trajectory generator six degrees of freedom, halt, climb, turn, accel turn, spiral, combined, and waypoint motions are given as basic motions with parameters. These motions can be combined to generate complex trajectories of the vehicle. Maximum acceleration and jerk for linear motion and maximum angular acceleration and velocity for rotational motion are considered to generate trajectories. In order to show the usefulness of the proposed trajectory generator, trajectories were generated from motion scenario files and the results were observed. The results show that the proposed trajectory generator can accurately simulate complex vehicle motions that can be used to evaluate navigation system performance.

Keywords

1. 서론

항법 시스템을 개발하려면, 항체에 센서를 탑재하고, 여러가지 환경에서 센서에 신호 및 데이터를 수집하여 성능평가를 수행해야 한다. 실험을 수행하기 전에 센서 출력을 제공하는 시뮬레이터를 이용하면, 개발 작업의 효율성을 크게 개선할 수 있다 (Peteovello & Curran 2017).

시뮬레이터에서 센서의 출력은 항체의 운동으로부터 생성하므로, 이를 모사하는 궤적 생성기가 반드시 필요하다. 3차원에서 직선 운동 및 회전 운동을 하는 항체의 간단한 궤적을 이용할 수 있지만, 이것만으로는 항법시스템이나 통합항법 시스템의 성능을 충분히 평가하기 어렵다 (Li et al. 2012a, Li et al. 2012b). 따라서, 보다 복잡한 항체의 여러가지 운동을 모사할 수 있는 궤적 생성기가 필요하다. 특히, 지상 항체, 수중 항체, 보행자, 항공기 등 여러 종류의 항체마다 특성이 다르므로, 여러가지 특성을 반영한 궤적을 생성할 수 있어야 한다.

최근에는 여러 회사에서 항법 시스템의 성능평가를 위하여 궤적 생성기를 포함한 시뮬레이터를 출시하고 있다 (Navsys Corporation 2019, CAST Navigation 2022, SatGen 2023). Navsys Corporation (2019) 사는 National Marine Electronics Association (NMEA) 파일 또는 Google earth의 Keyhole Markup Language (KML) 파일로부터 항체의 운동을 모사하는 궤적 생성기를 포함한 GNSS Signal Architect Simulator Software를 소개하였다. LabSat 사에서도 NMEA 파일 또는 KML 파일로부터 항체의 운동을 모사하는 SatGen GPS Simulation Software를 소개하였다 (SatGen 2023). CAST Navigation (2022) 사에서는 GNSS/INS 통합항법 시스템의 성능 평가를 위하여 시간에 따른 속력, 고도, 요(Yaw) 변화가 포함된 기동 시나리오로부터 항체의 위치, 속도, 자세를 생성하는 Scenario Generator가 포함된 CAST-3000을 소개하였다. Spirent (2022) 사는 항체의 운동을 모사하는 궤적 생성기인 SimGen을 소개하였는데, 지상 항체, 항공기, 배, 우주선과 같은 항체의 종류를 정하고, 저크, 가속도, 각가속도, 각속도의 최대값을 제한하는 기능을 설정할 수 있으며, 직선, 가속, 선회, 고도를 변경할 수 있다.

Koo et al. (2013)은 GPS/INS 통합항법 시스템의 성능 평가를 위하여 운동 시나리오로부터 등가속 운동, 선회 운동, 상승/하강 운동을 모사하는 기준 궤적 생성기를 포함한 데이터 생성기를 제시하였다. Chae et al. (2020)은 기차의 통합항법 시스템 성능평가를 위하여 가속도와 속도로부터 운동을 모사하는 궤적 생성기를 소개하고, GPS 신호와 IMU 데이터를 생성하고 이로부터 GNSS/INS 통합항법 결과를 제시하였다.

본 논문에서는 항법 시스템의 성능평가를 위한 궤적 생성기 설계 방법을 제안하고, 궤적 생성 결과를 제시하고자 한다. 제안한 궤적 생성기는 운동 시나리오 파일로부터 궤적을 생성하며, 항체의 가장 기본 운동인 6 degree of freedom 운동부터 halt, climb, turn, accel turn, spiral, combined, waypoint 운동을 모사할 수 있다. 그리고, 운동을 모사할 때 최대 가속도, 최대 저크, 최대 각속도, 최대 각가속도를 고려하고 있다. 여러가지 복잡한 운동은 이러한 운동을 조합하여 구현할 수 있다. 제안한 궤적 생성기의 유용함을 보이기 위하여 정지한 항체, 정지 후 직선 운동하는 항체, 정지 후 8가지 운동을 포함하는 복잡한 운동을 하는 항체의 궤적을 생성한 결과를 제시하였다. 2장에서는 제안한 궤적 생성기의 구조를 서술하고, 3장에서는 궤적 생성 방법에 대하여 서술한다. 마지막으로 4장에서는 본 연구의 결론을 정리하고, 추후 계획을 서술한다.

2. 궤적 생성기

본 논문에서 제안하는 궤적 생성기의 구조를 Fig. 1에 나타내었다. 궤적 생성기는 운동 시나리오(motion scenario) 파일로부터 파라미터를 읽는 부분, 파라미터로부터 위치, 속도, 자세를 생성하는 부분으로 이루어진다. 운동 시나리오 파일은 User Interface를 이용하거나 직접 작성할 수 있다.

f1.png 이미지
Fig. 1. Structure of proposed trajectory generator.

2.1 궤적 생성 방법

운동 시나리오 파일의 형식은 Table 1에 나타내었다. #은 실수나 정수로 입력된 값을 의미한다. Table 1에서 8행부터는 작성하고자 하는 궤적을 이루는 운동 command N개가 1행씩 기록되어 있다. 운동 command의 종류는 Table 2에 제시한 바와 같으며, 임의의 순서로 나열할 수 있다.

Table 1. Motion scenario file format.

Row Format
1
2
3
4
5
6
7
8~
Sampling time # s
Initial position, Latitude # deg, Longitude # deg, Altitude # m
Initial velocity, North # m/s, East # m/s, Down # m/s
Initial attitude, Roll # deg, Pitch # deg, Yaw # deg
Max acceleration # m/s2, Max jerk # m/s3
Max angular velocity # deg/s, Max angular acceleration # deg/s2

Motion command

 

Table 2. Motion command format.

Motion
command
Format
6 degree of
freedom
Max North/East/Down velocity #, #, # m/s, North/East/Down distance #, #, # m, 
Max Roll/Pitch/Yaw angular velocity #, #, # deg/s, Roll/Pitch/Yaw #, #, # deg
Halt Halt, Duration # sec, Distance # m
Climb Climb motion, Height change # m, Height change rate # m/s, Start/End Lateral acc. #, # g
Turn Turn motion, Yaw change # deg, Lateral acc. # g
Accel turn Accel turn motion, Yaw change # deg, Initial lateral acc. # g, Speed change # m/s
Spiral Spiral motion, Yaw change # deg, Initial lateral acc. # g, Speed change # m/s, Height change rate # m/s
Combined Combined motion, Yaw change # deg, Lateral acc. # g, Speed change # m/s, Height change # m, Height change rate # m/s
Waypoint Waypoint, Latitude # deg, Longitude # deg, Altitude # m, Lateral acc. # g

 

Table 3. Symbol of motion command parameter.
t3.png 이미지

운동 시나리오 파일에서 1행부터 6행까지 기록된 공통의 파라미터를 추출한다. 8행부터는 운동 command를 읽고 해당되는 파라미터를 추출한다. Table 3에는 Table 2에서 추출한 파라미터를 나타내었다.

운동 시나리오 파일에서 motion command의 위치, 속도, 자세를 생성하는 과정을 순서도로 나타내면 Fig. 2와 같다. 첫 번째 운동 command이면 운동 시나리오 파일로부터 얻은 초기 위치, 초기 속도, 초기 자세를 초기치로 두고, 두 번째 운동 command부터 직전 command 궤적의 가장 마지막에 출력된 위치, 속도, 자세를 초기치로 둔다. 6 degree of freedom 운동이거나 halt 운동이면 가속도, 각속도를 먼저 생성한다. 생성한 가속도, 각속도의 최대값과 기울기가 운동 시나리오 파일에서 입력한 제한 조건을 초과하면, 새로운 가속도, 각속도 궤적을 다시 생성한다. 이후 가속도, 각속도를 적분하여 위치, 속도, 자세를 생성한다. 나머지 운동인 경우, 각속도와 자세를 먼저 생성하고, 이후 속도, 위치를 생성한다. 마지막으로 생성한 운동 command의 개수가 총 운동 command의 개수와 일치하면, 궤적 생성을 종료하며, 아니면 초기치 설정부터 전술한 과정을 반복한다.

f2.png 이미지
Fig. 2. Flow chart of position, velocity, attitude generation.

2.2 여러가지 궤적의 생성

1축 방향 예로 North축으로 직선 운동하는 항체의 가속도를 생성 시, 저크가 무한대가 되지 않도록 가속도를 삼각파 형태로 두어 Fig. 3과 같이 가속도와 속도를 생성한다. Fig. 3의 가속도와 속도 그래프의 면적이 등가속 운동할 경우의 가속도와 속도 그래프의 면적과 같다. 즉, 거리와 시간 \(t_d\)는 변하지 않으므로, Eq. (1)이 성립한다.

f3.png 이미지
Fig. 3. North acceleration and north velocity of the linear motion.

\(D_{N,f}={1\over2} |υ_{N,MAX}^n | t_d\)                                                                                     (1)

Eq. (1)으로부터 시간 \(t_d\)를 구하면 Eq. (2)와 같다.

\(t_d={2D_{N,f}\over |υ_{N,MAX}^n |} \)                                                                                                 (2)

Eq. (2)와 \(υ_{N,MAX}^n\)을 이용하여 North축 가속도 \(a_N(t)\)을 계산하면, Eq. (3)이 된다.

\(a_N (t)=2 {υ_{N,MAX}^n\over t_d} \left({1-|t-0.5t_d | \over 0.5t_d }\right)\)                                                                         (3)

이때, \(a_N (t)\)의 최대 값이 최대 가속도를 초과하거나 \(a_N (t)\)의 기울기가 최대 저크를 초과하면 가속도를 다음과 같이 다시 계산한다.

삼각파로 생성한 가속도의 기울기 \(j_{N,1}\)이 최대 저크 \(j_{MAX}\)보다 작으며, 가속도 최대값 \(2a_N\)이 최대 가속도 \(a_{MAX}\)보다 큰 경우를 case 1이라 하고, 삼각파로 생성한 가속도의 기울기 \(j_{N,1}\)이 최대 저크 \(j_{MAX}\)보다 크며, 가속도 최대값 \(2a_N\)이 최대 가속도 \(a_{MAX}\)보다 큰 경우를 case 2라 하자. Fig. 4a에는 case 1의 가속도를 나타내었으며, Fig. 4b에는 case 2의 가속도를 나타내었다. Case 1과 case 2에서 가속도 \(a_N(t)\)의 최대값은 최대 가속도 \(a_{MAX}\)을 초과할 수 없으므로, 실선과 같이 새로운 가속도를 생성한다. 삼각파로 생성한 가속도와 면적이 같으므로, 운동을 종료한 시점의 속도는 같다. 그리고, Fig. 4a의 시간 \(t_d\)가 Fig. 3의 시간 \(t_d\)보다 크며, Fig. 4b의 시간 \(t_d\)가 Figs. 3과 4a의 시간 \(t_d\)보다 크다. Fig. 4의 시간\( t_1, t_2, t_d\)는 Table 4, 가속도는 Table 5에 나타내었다.

f4.png 이미지
Fig. 4. North acceleration of the vehicle. (a) case 1, (b) case 2.

Table 4. Time of case 1 and case 2 motion.
t4.png 이미지

Table 5. Acceleration of case 1 and case 2 motion.
t5.png 이미지

East축 직선 운동과 Down축 직선 운동도 같은 방법으로 생성한다. 2축 방향 직선 운동이나 3축 방향 직선 운동을 하는 항체의 운동도 전술한 방법으로 각 축의 가속도를 생성한다.

회전 운동에서는 각가속도가 무한대가 되지 않도록 직선 운동의 가속도 생성 방법과 마찬가지로 삼각파로 생성한다. 그리고, 삼각파로 생성한 각속도의 최대값, 각속도의 기울기를 최대 각속도, 최대 각가속도와 비교하여 새로운 각속도를 생성한다.

도착 지점에서 속도나 자세를 0으로 만들고 싶으면 두 개의 6 degree of freedom command를 이용하면 된다.

Halt command는 정지한 항체 혹은 자세를 유지한 상태로 등속으로 이동하는 항체의 운동을 모사한다. 최종 시간 \(t_d\)만 주어지면, 가속도와 각속도는 Eqs. (4, 5)가 된다.

\(a_N (t)=a_E (t)=a_D (t)=0\)                                                                              (4)

\(ω_x (t)=ω_y (t)=ω_z (t)=0\)                                                                               (5)

거리 \(D_f\)만 주어지면 일정한 속도로 주어진 거리까지 이동한다. 이때, 가속도와 각속도는 Eqs. (4, 5)가 되며, 시간 \(t_d\)는 Eq. (6)이 된다.

\(t_d={D_f \over \sqrt{ (υ_N^n )^2+(υ_E^n )^2+(υ_D^n )^2}}\)                                                                                           (6)

여기서, \(υ_N^n\)는 North축 속도, \(υ_E^n\)는 East축 속도, \(υ_D^n\)는 Down축 속도를 의미한다.

6 degree of freedom 운동과 Halt 운동의 가속도와 각속도를 구하면, Fig. 5와 같이 위치, 속도, 자세를 구한다.

f5.png 이미지
Fig. 5. Position, velocity and attitude generation.

시간 \(t_d\)를 샘플링 시간 \(Δt\)로 나누어서 생성할 샘플 개수 \(n_{step}\)를 구하고, 위치, 속도, 자세 샘플을 \(n_{step}\)개 생성한다. 속도는 Eq. (7)과 같다.

\(\left[\begin{matrix}υ_N^n [k]\\ υ_E^n [k]\\ υ_D^n [k]\end{matrix}\right]=\left[\begin{matrix}υ_N^n [k-1]+a_N [k]Δt\\ υ_E^n [k-1]+a_E [k]Δt\\ υ_D^n [k-1]+a_D [k]Δt\end{matrix}\right]\)                                                                         (7)

여기서, \(a_N [k],a_E [k],a_D [k]\)는 각각 \(t=kΔt\)인 시간에서의 North축 가속도, East축 가속도, Down축 가속도를 의미한다.

위도 \(L[k]\), 경도 \(l[k]\), 고도 \(h[k]\)는 Eqs. (8-10)과 같다.

\(L[k]=L[k-1]+{υ_N^n [k]\over R_M [k-1]+h[k-1]} Δt\)                                                                         (8)

\(l[k]=l[k-1]+{υ_E^n [k]\over R_N [k-1]+h[k-1]} Δt\)                                                                            (9)

\(h[k]=h[k-1]-υ_D^n [k]Δt\)                                                                                          (10)

여기서, \(R_M [k]\)는 자오선 곡률반경 (Meridian radius of curvature), \(R_N [k]\)는 횡 곡률반경 (Normal radius of curvature)를 의미한다.

자세는 Eq. (11)과 같다.

\(\left[\begin{matrix}ϕ[k]\\ θ[k]\\ ψ[k]\end{matrix}\right]=\left[\begin{matrix}ϕ[k-1]+ω_x [k]Δt\\ θ[k-1]+ω_y [k]Δt\\ ψ[k-1]+ω_z [k]Δt\end{matrix}\right]\)                                                                         (11)

여기서, \(ω_x [k],ω_y [k],ω_z [k]\)\(t=kΔt\) 시간에서의 롤 축 각속도, 피치 축 각속도, 요 축 각속도, \(ϕ[k]\)는 롤, \(θ[k]\)는 피치, \(ψ[k]\)는 요를 의미한다.

f6.png 이미지
Fig. 6. Climb motion.

f7.png 이미지
Fig. 7. Pitch angular velocity of the climb motion.

Climb 운동은 항체의 피치를 변화시켜 목표 고도까지 이동하는 운동이다. 이것을 시작 이후 피치 변화 구간, 피치가 일정한 구간, 종료 이전 피치 변화 구간으로 구분하여 Fig. 6에 나타내었다. Climb 운동을 하는 항체의 피치 축 각속도는 삼각파로 생성하며, Fig. 7에 구간별 각속도를 나타내었다. 시작 이후 피치 변화 구간이 종료될 때의 시간을 \(t_1\), 피치가 일정한 운동이 종료될 때의 시간을 \(t_2\), climb 운동이 종료될 때의 시간을 \(t_d\)로 둔다. 시작 이후 피치 변화 구간과 종료 이전 피치 변화 구간의 피치 축 각속도는 각각 Eqs. (12, 13)과 같다.

\(ω_{y,start}={a_{lat,start}\over υ_0}\)                                                                                     (12)

\(ω_{y,end}=-{a_{lat,end}\over υ_0}\)                                                                                     (13)

Climb 운동의 시간은 Table 6에 제시하였다. 피치 축 각속도는 Table 6의 시간과 Eqs. (12, 13)을 이용하여 구하며, Table 7에 제시하였다.

Table 6. Time of turn, accel turn, spiral, combined, waypoint motion.
t6.png 이미지

Table 7. Angular velocity of turn, accel turn, spiral, combined and waypoint.
t7.png 이미지

f8.png 이미지
Fig. 8. Roll angular velocity and yaw angular velocity of the turn motion.

Turn 운동은 고도 변화 없이 일정한 반지름을 갖는 원 운동이다. Turn 운동은 bank-to-turn 구간, 요 회전 구간, 종료 이전 bank-to-turn 구간으로 구분하며, 롤 축 각속도는 삼각파로 생성한다. Fig. 8에 롤 축 각속도와 요 축 각속도를 나타내었다. 시작 이후 bank-to-turn 구간이 종료될 때의 시간을 \(t_1\), 요 회전 구간이 종료되는 시간을 \(t_2\), turn 운동이 종료될 때의 시간을 \(t_d\)로 둔다. 고도의 변화가 없는 원 운동을 하려면, 횡 가속도와 원심 가속도의 크기가 같아야 하며, 양력과 양력의 반대 방향 가속도의 크기가 같아야 한다. 이때의 목표 롤 \(ϕ_{\rm target}\)은 Eq. (14)와 같다.

\(ϕ_{\rm target} =\mathbf{atan} 2(a_{lat},g)\)                                                                         (14)

요 회전 구간에서 접선 속력은 \(υ_0\)이며, 회전 반경의 중심 방향으로 횡 가속도가 생긴다. 이때의 요 축 각속도는 Eq. (15)와 같다.

\(ω_{z,con}={a_{lat}\over υ_0}\)                                                                                           (15)

Turn 운동의 시간은 Table 6에 제시하였다. 롤 축 각속도와 요 축 각속도는 Table 6에 제시한 시간과 Eqs. (14, 15)를 이용하여 구하며, Table 7에 제시하였다.

Accel turn 운동은 고도의 변화 없이 반지름이 변하는 원 운동이다. Accel turn 운동은 bank-to-turn 구간, 요 회전 구간, bank-to-turn 구간으로 구분하며, 롤 축 각속도는 삼각파로 생성한다. Fig. 8에 항체의 롤 축 각속도와 요 축 각속도를 나타내었다. Turn 운동과 마찬가지로 bank-to-turn이 종료될 때의 시간을 \(t_1\), 요 회전이 종료될 때의 시간을 \(t_2\), turn 운동이 종료될 때의 시간을 \(t_d\)로 둔다. 요 회전 구간에서는 속력이 변하므로, 회전 반경과 횡 가속도가 변한다. Accel turn 운동에서 목표 롤은 Eq. (14)와 같다. 요 축 각속도는 Eq. (16)과 같다.

\(ω_{z,con}={a_{lat} (t) \over υ(t)}={a_{lat,init}\over υ_0}\)                                                                               (16)

Accel turn 운동의 시간은 Table 6에 제시하였다. 롤 축 각속도, 요 축 각속도는 Table 6에 제시한 시간과 Eqs. (14, 16)을 이용하여 구하며, Table 7에 제시하였다.

f9.png 이미지
Fig. 9. Spiral motion.

f10.png 이미지
Fig. 10. Roll angular velocity, pitch angular velocity and yaw angular velocity of the spiral motion.

Spiral 운동은 Fig. 9에서 보듯이 고도와 회전 반경이 변하는 원 운동이다. Spiral 운동을 피치 변화 구간, 첫 번째 bank-to-turn 구간, 일정한 피치 및 요 변화 구간, 두 번째 bank-to-turn 구간, 피치 변화 구간으로 구분한다. 여기서 롤 축, 피치 축의 각속도는 삼각파로 생성한다. Fig. 10에 spiral 운동을 하는 항체의 각속도를 나타내었다. 피치 변화 구간이 종료될 때의 시간을 \(t_1\), 첫 번째 bank-to-turn 구간이 종료될 때의 시간을 \(t_2\), 일정한 피치 및 요 변화 구간이 종료될 때의 시간을 \(t_3\), 두번째 bank-to-turn 구간이 종료될 때의 시간을 \(t_4\), 운동이 종료될 때의 시간을 \(t_d\)로 둔다. 일정한 피치 및 요 변화 구간의 피치 축 각속도는 Eq. (17)과 같다.

\(ω_y={a_{lat,init}\over υ_0}\)                                                                                           (17)

이러한 시간은 Table 6에 제시하였다. 각속도는 Table 6에 제시한 시간과 Eqs. (14, 15, 17)을 이용하여 구하며, Table 7에 제시하였다. 각속도를 보면, spiral 운동은 climb 운동과 accel turn 운동의 조합인 것을 알 수 있다.

Combined 운동은 Fig. 11에서 보듯이 회전 반경이 일정한 원 운동을 한 후, 고도를 변화시키고, 목표 고도에 도달한 이후 가속도 운동을 한다. Combined 운동을 첫 번째 bank-to-turn 구간, 요 변화 구간, 두 번째 bank-to-turn 구간, 첫 번째 피치 변화 구간, 일정한 피치 구간, 두 번째 피치 변화 구간, 가속 구간으로 구분한다. 여기서 롤, 피치 축의 각속도는 삼각파로 생성한다. Fig. 12에 combined 운동의 각속도를 나타내었다. 첫 번째 bank-to-turn이 종료될 때의 시간을 \(t_1\), 요 변화 구간이 종료될 때의 시간을 \(t_2\), 두 번째 bank-to-turn이 종료될 때의 시간을 \(t_3\), 첫 번째 피치 변화가 종료될 때의 시간을 \(t_4\), 일정한 피치 구간이 종료될 때의 시간을 \(t_5\), 두 번째 피치 변화가 종료될 때의 시간을 \(t_6\), combined 운동이 종료될 때의 시간을 \(t_d\)로 둔다. Combined 운동의 시간은 Table 6에 제시하였다. 각속도는 Table 6에 제시한 시간과 Eqs. (14, 15, 17)을 이용하여 구하며, Table 7에 제시하였다. 각속도를 보면, combined 운동은 turn 운동과 climb 운동, 6 degree of freedom 운동의 조합인 것을 알 수 있다.

f11.png 이미지
Fig. 11. Combined motion.

f12.png 이미지
Fig. 12. Roll angular velocity, pitch angular velocity and yaw angular velocity of combined motion.

f13.png 이미지
Fig. 13. Roll angular velocity, pitch angular velocity and yaw angular velocity of waypoint motion.

Waypoint 운동은 항체가 목표 지점까지 이동하는 운동이다. Turn 운동을 수행하여 목표 지점까지 항체의 방향을 변화시키고, climb 운동으로 고도를 변화시킨다. Waypoint 운동은 첫 번째 bank-to-turn 구간, 요 변화 구간, 두 번째 bank-to-turn 구간, 첫 번째 피치 변화 구간, 일정한 피치 구간, 두 번째 피치 변화 구간으로 나누어진다. Waypoint 운동에서 롤 축, 피치 축의 각속도는 삼각파로 생성한다. Fig. 13에 waypoint 운동의 각속도를 나타내었다. 첫 번째 bank-to-turn 구간이 종료될 때의 시간을 \(t_1\), 요 변화 운동이 종료될 때의 시간을 \(t_2\), 두 번째 bank-to-turn 구간이 종료될 때의 시간을 \(t_3\), 첫 번째 피치 변화 운동이 종료될 때의 시간을 \(t_4\), 일정한 피치가 종료될 때의 시간을 \(t_5\), waypoint 운동이 종료될 때의 시간을 \(t_d\)로 둔다. 위도, 경도, 고도로 나타낸 초기 위치와 최종 위도, 경도, 고도로부터 구한 위치 차이를 Eq. (18)이라 하자.

\(δ\mathbf{p}^n=\left[\begin{matrix}δp_N^n&δp_E^n&δp_D^n \end{matrix}\right]^T\)                                                                         (18)

여기서 \(δp_N^n\)는 North축 위치 차이, \(δp_E^n\)는 East축 위치 차이, \(δp_D^n\)는 Down축 위치 차이를 의미한다. 이를 이용하여 Fig. 14a에 나타낸 요 \(ψ_{pos}\)를 구하면 Eq. (19)와 같다.

\(ψ_{pos}=\mathbf{atan}2 (δp_E^n, δp_N^n )\)                                                                               (19)

Eq. (19)를 이용하여 요 회전 방향을 정하고, Eq. (20)과 같이 요 축 각속도를 구한다.

\(ω_{z,con}=sign(ψ_{pos}){a_{lat}\over υ_0}\)                                                                                     (20)

여기서 \(sign\)은 부호를 의미한다. Eq. (20)의 요 축 각속도를 적분하고 초기 요를 더하여 요를 구한다. 요와 \(ψ_{pos}\)의 차이가 일정한 값 이하가 될 때까지 항체의 요를 변화시킨다.

f14.png 이미지
Fig. 14. (a) Yaw from the difference between vehicle position and target position. (b) Vehicle position and waypoint position at the turn motion ending point.

Turn 운동으로 항체의 요가 waypoint를 향하도록 변화시킨 후, climb 운동으로 고도를 일치시키면 항체가 waypoint에 도달할 수 있다. Turn 운동이 종료된 시점의 항체의 위치와 waypoint의 위치를 Fig. 14b에 나타내었다. 여기서 항체의 고도와 waypoint의 고도 차이로부터 고도 변화 \(Δh\)를 구하면 Eq. (21)과 같다.

\(Δh=h_{\rm{target}} -h\)                                                                                           (21)

North축 위치 차이와 East축 위치 차이로부터 수평 거리 \(δp_{Hor}^n\)를 구하면 Eq. (22)와 같다. 

\(δp_{Hor}^n=\sqrt{(δp_N^n )^2+(δp_E^n )^2}\)                                                                               (22)

Eqs. (20, 21)을 이용하면, Eq. (23)과 같이 목표 피치 \(θ_{\rm{target}}\)를 구할 수 있다.

\(θ_{\rm{target}} =\mathbf{atan} \left({Δh \over δp_{Hor}^n}\right)\)                                                                                     (23)

Eq. (23)을 이용하여 고도 변화율 \(\dot{h}\)를 구하면 Eq. (24)와 같다.

\(\dot{h}=υ_0 \sin θ_{\rm{target}}\)                                                                                           (24)

Eqs. (18-24)로부터 turn 운동과 climb 운동에 필요한 파라미터를 구하고 나면, 이로부터 시간과 각속도를 계산한다. Waypoint 운동의 시간은 Table 6에 제시하였다. 각속도는 Table 6에 제시한 시간과 Eqs. (14, 17, 20)을 이용하여 구하며, Table 7에 제시하였다. 각속도를 보면, waypoint는 turn 운동과 climb 운동의 조합인 것을 알 수 있다.

오일러 각으로 나타낸 자세를 동체좌표계에서 항법 좌표계로의 Direction Cosine Matrix (DCM)로 변환하고, DCM과 동체 좌표계에서 나타낸 속도를 이용하여 항법 좌표계에서 나타낸 속도를 Eq. (25)와 같이 계산한다.

\(\mathbf{υ}^n [k]=\left[\begin{matrix} υ_N^n [k]\\ υ_E^n [k]\\ υ_D^n [k] \end{matrix}\right] =\mathbf{C}_b^n [k]\mathbf{υ}^b [k]=\mathbf{C}_b^n [k] \left[\begin{matrix} υ_0\\0\\0 \end{matrix}\right]\)                                                           (25)

그런데, accel turn과 spiral 운동은 요 변화 구간에서 속력이 변하므로, 요 변화 구간에서 동체좌표계에서 나타낸 속도 \(\mathbf{υ}^b [k]\)를 갱신한다. Accel turn 운동에서 요 변화 구간의 \(\mathbf{υ}^b [k]\)는 Eq. (26)과 같다.

\(\mathbf{υ}^b [k]=\mathbf{υ}^b [k-1]+\left[\begin{matrix}{Δυ\over t_2-t_1}&0&0 \end{matrix}\right]^T Δt\)                                                                     (26)

Spiral 운동에서 요 변화 구간의 \(\mathbf{υ}^b [k]\)는 Eq. (27)과 같다.

\(\mathbf{υ}^b [k]=\mathbf{υ}^b [k-1]+\left[\begin{matrix}{Δυ \over t_3-t_2}&0&0 \end{matrix}\right]^T Δt\)                                                                     (27)

Eq. (25)에 나타낸 속도로부터 구한 위도, 경도, 고도는 Eqs. (8-10)과 같다

3. 궤적 생성의 예

제안한 궤적 생성기의 유용함을 보이기 위하여 100초 동안 정지한 궤적, 40초 정지 후 30초 동안 North축 속도가 10 m/s가 될 때까지 직선 운동하는 궤적과 40초 동안 정지 후 6 degree of freedom, halt, climb, turn, accel turn, spiral, combined, waypoint 순으로 수행하는 운동 시나리오 파일을 작성한 후 궤적 생성 결과를 확인하였다. 3가지 궤적 모두 샘플링 시간은 0.001초(=1000 Hz), 초기 위도는 36.3641도, 초기 경도는 127.3456도, 초기 고도는 93.7988 m, 초기 North/East/Down축 속도는 0 m/s, 초기 롤/피치/요를 0도이다.

첫번째 궤적은 Halt command를 이용하였으며, 운동 시나리오 파일은 Fig. 15, 시간에 따른 위치, 속도, 자세는 Fig. 16에 나타내었다. 두번째 궤적은 Halt command를 이용하여 정지를, 6 degree of freedom command로 60초 동안 North축 속도가 10 m/s가 될 때까지 직선 운동을 서술하였다. 이 경우의 운동 시나리오 파일을 Fig. 17, 항체의 위치를 Fig. 18a, 시간에 따른 위치, 속도, 자세를 Fig. 18b에 나타내었다.

f15.png 이미지
Fig. 15. Motion scenario file of the first trajectory.

f16.png 이미지
Fig. 16. Position, velocity, attitude of the first trajectory.

f17.png 이미지
Fig. 17. Motion scenario file of the second trajectory.

f18.png 이미지
Fig. 18. (a) Position of the vehicle in the 3 dimensional space, (b) Position, velocity, attitude of the second trajectory.

세번째 궤적은 Halt command로 40초 동안 정지를, 6 degree of freedom command로 North축 방향 직선 운동, climb command로 고도를 상승시키는 운동, turn command로 180도 원 운동, accel turn command로 180도 속력이 증가하면서 회전 반경이 변하는 원 운동, spiral command로 180도 회전하면서 고도가 상승하는 운동, combined command로 회전 후 고도가 상승하는 운동, waypoint로 위도 36.37도. 경도 127.36도, 고도 500 m까지 도달하는 운동을 서술하였다. 이 경우의 운동 시나리오 파일을 Fig. 19, 위치를 Fig. 20a, 시간에 따른 위치, 속도, 자세를 Fig. 20b에 나타내었다.

f19.png 이미지
Fig. 19. Motion scenario file of the third trajectory.

f20.png 이미지
Fig. 20. (a) Position of the vehicle in the 3 dimensional space, (b) Position, velocity, attitude of the third trajectory.

4. 결론 및 추후 계획

본 논문에서는 항법 시스템의 성능 평가를 위한 궤적 생성기 설계법을 제안하였다. 제안한 궤적 생성기 설계법은 운동 시나리오 파일로부터 파라미터를 구하고, 이를 이용하여 궤적을 생성한다. 본 논문에서 제안하는 방법은 비교적 간단하게 운동 시나리오 파일을 작성하여 궤적을 생성할 수 있다. 그리고, 제안한 궤적 생성기에서 최대 가속도, 최대 저크, 최대 각속도, 최대 각가속도를 제한하여 항체의 운동 종류에 따른 특성을 반영하였다. 제안한 궤적 생성기의 유용함을 보이기 위하여 정지한 항체의 궤적, 정지 후 직선 운동하는 항체의 궤적, 정지 후 복합운동 하는 항체의 궤적을 생성하였다. 궤적 생성 결과로부터 운동 시나리오 파일을 작성하여 간단한 궤적부터 복잡한 궤적을 잘 생성하는 것을 확인하였다. 즉, 제안한 궤적 생성기를 이용할 경우, 항법 시스템의 성능평가를 하기 위한 궤적을 쉽게 만들 수 있다.

추후에는 제안한 궤적 생성기를 이용하여 여러가지 종류의 항법 시스템의 평가를 수행할 예정이다. 그리고, 다른 상용 시뮬레이터의 궤적 생성기와 비교하여 제안한 궤적 생성기에서 제공하지 않는 운동을 추가할 것이다.

AUTHOR CONTRIBUTIONS

Conceptualization, S. H. Oh and D.-H. Hwang; methodology, J. H. Son, S. H. Oh and D.-H. Hwang; software, J. H. Son; supervision, S. H. Oh and D.-H. Hwang; writing – review & editing, D.-H. Hwang.

CONFLICTS OF INTEREST

The authors declare no conflict of interest.

References

  1. CAST Navigation 2022, A True Reference: Theory meets reality in synchronized simulation environments, InsideGNSS, 15, 28-30. https://insidegnss.com/a-true-reference-theory-meets-reality-in-synchronized-simulation-environments/
  2. Chae, M. S., Cho, S. Y., & Shin, K. H. 2020, Development of a Real Trajectory-based Simulator for Performance Evaluation of an Integrated Navigation System for Trains, in 2020 IPNT Conference, 11-13 Nov 2020, Yeosu, Korea, pp.87-90. https://ipnt.or.kr/2020proc/30
  3. Koo, M., Kim, Y., Choi, K.-H., So, H., Oh, S.-H., et al. 2013, Reference Trajectory Generation Algorithm of a Vehicle with Motion for M&S Software Configuration, in 2013 ICS, 26-27 Apr 2013, Korea University, Korea. https://www.dbpia.co.kr/journal/articleDetail?nodeId=NODE02147125
  4. Li, G., Mao, Y., & Song, C. 2012a, Design and Simulation of Trajectory Generator, in 2012 4th International Conference on Intelligent Human-Machine Systems and Cybernetics, 26-27 Aug 2012, Nanching, China. https://doi.org/10.1109/IHMSC.2012.57
  5. Li, Z., Cai, Z.-x., Ren, X.-p., Chen, A.-b., & Xue, Z.-c. 2012b, Vehicle kinematics modeling and design of vehicle trajectory generator system, Journal of Central South University, 19, 2860-2865. https://doi.org/10.1007 s11771-012-1352-3 https://doi.org/10.1007s11771-012-1352-3
  6. Navsys Corporation, GNSS Signal Architect Product Suite, [Internet], cited 2019 Apr 12, available from: https://static1.squarespace.com/static/570a836659827e091de14a8a/t/5cb0a74cf9619acc7d678f6a/1555081036807/Signal-Architect-Brochure.pdf
  7. Peteovello, M. G. & Curran, J. T. 2017, Simulators and Test Equipment, Springer Handbook of Global Navigation Satellite Systems, P. J. G. Teunissen & O. Montenbruck, eds. (Gewerbestrasse, Switzerland: Springer)
  8. SatGen 2023, SatGen GNSS Simulation Software, [Internet], cited 2023 Sep 29, available from: https://www.labsat.co.uk/downloads/product-info/Flyers/SatGen4-Flyer.pdf
  9. Spirent 2022, SimGEN® Software Datasheet with Product Specification, MS3008 Datasheet with Product Specification. https://support-kb.spirent.com/resources/sites/SPIRENT/content/live/DOCUMENTATION/12000/DOC12114/en_US/MS3008%20Issue%2016-00%20SimGEN%20Software%20Datasheet%20with%20Product%20Specification.pdf