/ PROJECT

Auto-wing Car

비행기를 끌어주는 토잉카의 자율주행화 프로젝트

0. 프로젝트 소개

Auto-wing Car 소개 영상

Auto-wing Car GitHub

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 기반 구조로 확장하며 시스템 안정성 개선