28.4.3.2. 위치 제어기 내부의 Slew Rate Limiter 및 궤적 생성기(Trajectory Generator) 동기화
FlightTask의 activate() 함수를 통해 초기 오차를 0으로 강제 세팅하는 것이 수학적 ’1차 방어막’이었다면, 기체가 원래 가고자 했던 최종 목표점(True Target)을 향해 다시 가속 페달을 밟아야 하는 ’2차 구간’의 부드러움을 무식하게 책임지는 것은 하위 위치 제어기(mc_pos_control) 내부에 진을 치고 있는 Slew Rate Limiter와 궤적 생성기(Trajectory Generator) 모듈이다.
FMM(Flight Mode Manager)에서 다듬어 뽑아낸 위치/속도 목표값조차도, 모드 전환 순간에는 결국 이산적(Discrete)이고 거친 거리가 존재하는 디지털 데이터 단차일 수밖에 없다. 이 거칠고 가파른 계단을 모터가 감당할 수 있는 부드러운 아날로그 미끄럼틀 곡선으로 깎아내는 과정이 핵심이다.
1. Slew Rate Limiter의 필터링 철학
Slew Rate(슬루 레이트)란 ’단위 시간당 최대 변화율’을 뜻한다. 비행 중 조종사가 조종기 스틱을 중앙(0%)에서 끝(100%)으로 불과 0.1초 만에 튕겼을 때(Step Input), 수동 모드의 목표 속도값은 수학적으로 순간 0m/s에서 10m/s로 점프한다.
이때 하위 제어기에 내장된 Slew Rate Limiter 모듈은 이 10m/s라는 충격적인 계단 입력값을 그대로 등 뒤의 PID 제어기에 통과시키지 않는다. 대신 내부의 가속도 한계치 하드 리미트 파라미터(예: MPC_ACC_HOR_MAX = 5m/s²)를 조회하여, 속도가 0에서 10까지 도달하는 데 최소 2초의 물리적 시간이 소비되도록 궤적 구간을 강제로 비틀어 늘어뜨려 버린다.
즉, t=0일 때 전송하는 목표 속도는 0m/s, t=1일 때는 5m/s, t=2일 때 비로소 10m/s로 입력값을 잘게 쪼개어 등가속도 램프(Ramp) 필터 함수로 변환해 내는 것이다. 모드 전환 시 타협된 초기 상태값에서 새로운 목표값으로 이동할 때, 기체는 결단코 덜컹거리는 범프(Bump) 없이 부드러운 가속 이륙 선상에 오르게 된다.
2. 궤적 생성기(Trajectory Generator)의 동적 리셋(Dynamic Reset)
자율 비행(Auto)이나 위치 제어(Position) 계열 모드에서는 단순한 1차원 Slew Rate 제한 필터를 넘어, 3차원 물리 법칙(Kinematics)을 엄격하게 준수하는 고차원 궤적 플래너(Jerk-limited Trajectory)가 본격 가동된다.
기체가 공중에 떠서 모드가 파격적으로 전환되는 찰나(예: Position \rightarrow Mission), mc_pos_control은 FMM으로부터 날아온 vehicle_control_mode 토픽의 플래그 변경(timestamp 갱신)을 인터럽트로 감지한다. 이 순간 궤적 플래너는 즉각적으로 다음과 같은 극한의 동기화 리셋 프로시저를 단행한다.
- 과거 궤적의 잔재 폭파: 이전 모드가 남겨둔 내부 위치/속도 가상 궤적의 적분된 상태(State) 캐시를 일말의 미련 없이 삭제(Flush)한다.
- 초기값의 동기화(Sync): 곡선 궤적의 출발점(Start Point)을 t=t_0 찰나 시점의 EKF2 실제 추정(Actual) 위치, 속도, 가속도로 강제 주입(Injection)하여 오차를 메운다.
- 물리적 제약 기반 곡선 플래닝: 그 시점부터 새로운 최종 목표점(Target)까지 잇는 수학적 폴리놈(Polynomial) 곡선을 마이크로초 단위로 실시간 계산한다. 이때 사용자 파라미터인 최대 가속도(
MPC_ACC_MAX)와 최대 저크(MPC_JERK_MAX)의 상한선을 절대 넘지 않도록 궤적 곡률의 목줄을 강하게 죈다.
결론적으로 PX4의 범프리스 트랜스퍼 아키텍처는 상위 레벨(FlightTask)의 선제적 오차 0(Zero)화 타협 주입과 하위 레벨(위치 제어 컨트롤러)의 가속도/저크 한계치 기반 스무딩 곡선 파생이라는 입체적인 양동 작전(Two-track strategy)을 통해, 어떠한 돌발 스위칭 조작 상황에서도 드론의 물리적인 기구학적 한계를 철벽 보호하고 소프트웨어적 추락 요인을 완벽에 가깝게 방어하고 있다.