Auto-wing Car
비행기를 끌어주는 토잉카의 자율주행화 프로젝트
0. 프로젝트 소개
1. 프로젝트 개요
- 공항 내 비행기 토잉카의 자율주행화를 목표로 한 프로젝트
- STM32 NUCLEO-F103RB에서 모터와 서보를 제어하는 구조로 구현
- 웹 기반 관제 화면과 기장 화면을 통해 주행 상태를 공유하고, 비상 상황에서는 기장이 제어권을 확보할 수 있도록 설계
주요 기능
- 토잉카 경로 생성
- 토잉카 주행 제어
- POV/UI 기반 주행 상황 공유
- 기장의 비상 제어권 전환
- 관제 웹사이트 기반 상태 확인 및 모니터링
2. 담당 역할
- STM32 기반 DC 모터 / 조향 서보 / 도킹 서보 제어
- 안전 제어를 우선으로 둔 FreeRTOS 구조 구현
- Hybrid A* 기반 트레일러 경로 탐색 개선
- mask 기반 장애물 맵 생성 및 inflation 적용
팀 내 역할 분담(총 6인)
- Embedded: 2명
- Frontend: 1명
- Backend: 2명
- AI: 1명
3. 사용 기술
STM32 + UART
- Jetson과 제어부를 분리해 상위 보드와 하위 제어기를 역할별로 나누기 위해 적용
- 상위 보드 이상 시에도 STM32가 안전 정지를 직접 수행하도록 구조를 설계
FreeRTOS
- 초기에는 인터럽트와 단일 제어 흐름으로 시작했지만, 기능이 늘어나며 역할 분리가 필요해 도입
- 안전 감시, 주행 제어, 도킹 시퀀스를 분리해 응답성과 안정성을 높임
Hybrid A*
- 차량의 위치뿐 아니라 yaw와 조향 제약을 함께 반영하기 위해 사용
- 단순 Grid A*로는 실제 토잉카의 회전과 후진 경로를 충분히 반영하기 어려웠음
4. 구현 사항
NUCLEO-F103RB
- UART 패킷 기반 속도 / 조향 / 도킹 명령 수신
- PWM 기반 DC 모터 제어
- 조향 서보 및 도킹 서보 제어
- Timeout / Enable / E-stop 조건에서 즉시 정지하는 안전 로직 구현
FreeRTOS
- SafetyTask / ControlTask / DockTask / UartRxTask 분리
- 최신 명령만 반영하는 Queue 구조 설계
- 상위 보드 이상 시 STM32가 최종 안전 정지를 수행하도록 구현
경로계획
- mask.png에서 장애물 좌표를 추출하고 월드 좌표로 변환
- 비행기 크기를 반영한 inflation 적용
- Grid A* heuristic map 안정성 개선
- Hybrid A* 탐색 비용 직접 설계
- 전진 / 후진 / 조향 변화 / jackknife penalty 반영
5. 문제 해결 사례
1) 서보 구동 시 전원 불안정 문제 해결
상황
서보 동작 순간 전원이 흔들리며 시스템이 비정상적으로 동작했다. 회로와 제어 코드는 정상적으로 구성되었지만, 실제 구동 시 전원 계통 불안정이 발생했다.
해결
- 로직 문제와 전원 문제를 분리해 원인 범위를 축소
- 서보 목표값 변화를 로그로 확인해 제어 로직 이상 여부 점검
- 부품 정격 입력 전압, 연결 상태, NUCLEO-F103RB 보드 스키마틱 재확인
- 전원 공급 구조를 다시 설계하고, 11V 전원 환경에 맞게 배선 수정
성과
- 서보 구동 시 발생하던 전원 흔들림 완화
- 구동 중 시스템 멈춤 및 비정상 동작 감소
- 실제 하드웨어 환경에서 안정적으로 제어 가능한 구조 확보
의미
- 제어 문제를 코드만이 아니라 전원 구조까지 포함해 분석하는 경험 확보
- 하드웨어와 소프트웨어가 맞물리는 시스템에서 원인을 구조적으로 좁히는 방식 정립
2) Jetson 역전원 문제 해결
상황
전원 구조 수정 후, 모터 구동 시 Jetson Orin Nano가 꺼지는 문제가 발생했다. 서보 구동은 안정화되었지만 상위 보드가 꺼지며 전체 시스템이 다시 불안정해졌다.
해결
- Jetson 자체 문제, 소프트웨어 문제, 전원 문제를 나눠 원인 분석
- 모터드라이버 전원을 11V로 바꾼 뒤부터 문제가 발생한 점에 주목
- 스키마틱과 실제 배선을 비교하며 전원 경로 추적
- Jetson과 모터드라이버 HAT의 전원 라인을 분리해 역전원 경로 차단
성과
- 모터 구동 중 Jetson이 꺼지던 현상 해결
- 상위 보드와 제어부를 전원 측면에서도 안정적으로 분리
- 제어 시스템 전체의 신뢰성 향상
의미
- 증상만이 아니라 전원, 로직, 배선 구조로 나눠 문제를 해석하는 기준 확보
- 시스템 안정화에서 스키마틱 기반 검증과 전원 분리 설계의 중요성 확인
6. 성과 및 결과
- 경로계획과 제어 구조를 통합해 실제 토잉카 자율주행 시스템 구현
- 전원 불안정 및 역전원 문제를 해결하며 하드웨어-소프트웨어 통합 디버깅 경험 확보
- 인터럽트 중심의 초기 구조에서 FreeRTOS 기반 구조로 확장하며 시스템 안정성 개선