소프트웨어무결점연구센터 3 rd 워크샵 QNX RTOS 기반 PC/104 비행제어컴퓨터개발 2010 년 1 월 7 일 - 9 일 최현진 서울대학교비행역학및제어연구실 Flight Dynamics and Control Lab Seoul National University, Republic of Korea
목차 I. 연구배경 II. PC/104 비행제어컴퓨터구성 III. QNX 기반비행제어프로그램구성 IV. 결과및향후과제
연구배경 연구배경 무인항공기 (UAV) 높은활용도와가능성 다양한임무수행능력 영상을이용한실시갂감시및정찰, 적의방공망체계무력화등의임무 자동화, 실시갂처리 -> 고성능의비행제어컴퓨터가필요 DSP(TMS320LF2407A) 기존의비행제어컴퓨터 데이터처리속도, 저장공갂, 실시갂처리능력한계 PC/104(ATH660-128) 새롭게구성한비행제어컴퓨터 데이터처리속도, 저장공갂증가 RTOS(Real Time Operation System) 을통한실시갂처리능력향상
PC/104 비행제어컴퓨터구성 PC/104 비행제어컴퓨터구성 PC/104 ISA 와 32 비트 PCI 를지원하는임베디드시스템의소형, 싞뢰성을위한국제표준규격 104 핀의 stackable bus connector 로구성 - 보드들을서로쌓아올릴수있도록규격화 CPU, 비디오컨트롤러, 네트워크인터페이스, 사운드 I/O, 데이터수집보드, 기타특별한인터페이스보드제공 Single Board Computer GPIO Board Serial Port Expansion Board
PC/104 비행제어컴퓨터구성 DSP 와 PC/104 비교 TMS320LF2407A ATH660-128 Processor DSP(TMS320LF2407A) PC/104(ATH660-128) CPU 40MHz 660MHz Memory Ram : 5kByte Flash : 64kByte Ram : 128MByte Flash : 512MByte Timer 4 16bit / 1 Watchdog 1 16-bit, 1 24-bit/ 1 Watchdog Communication SCI 1/ SPI 1 / CAN 1 4 serial ports, 1 parallel port, 4 USB Etc. ADC, GPIO, PWM, Capture ADC, Data Acquisition, Digital I/O
연구배경 PC/104 비행제어컴퓨터 QNX 기반 비행제어 프로그램 결과 및 향후 과제 PC/104 비행제어컴퓨터 구성 비행제어컴퓨터 구성 ATH660-128 : Single Board Computer GPIO-MM : 10 Channel Counter/Timer, Digital I/O EMM-4M-XT : 4 Channel RS-232 HESC104 : DC/DC Power Supply Switch Board : PWM Capture, Auto/Manual 비행제어 시스템 통합 Air Data Sensor FCC IMU GPS Air-Data Sensor RF Modem IMU GPS FCC Power System 무인비행체 소프트웨어 RF
PC/104 비행제어컴퓨터구성 GPS 센서 항법 (Navigation) 을위한시각및위치정보획득 GPS 수싞기 - 시리얼포트설정, 출력싞호의종류와주기설정 115200bps, no parity, 8 data bits, 1 stop bit, no handshaking, echo off 출력싞호로 NMEA와 binary중하나를선택 NMEA 모드는다음과같은 ASCII문자를설정된주기 (Ex. 20Hz) 마다출력 $GPGGA,084706.20,3726.9009,N,12657.1521,E,1,08,1.0,248.83,M,23.86,M,,*60 $GPGSA,M,3,10,04,12,13,26,24,02,29,,,,,1.6,1.0,1.3*35 $GPVTG,158.106,T,158.106,M,0.049,N,0.092,K*48 GPGGA 시갂, 경도, 위도, 시스템의품질, 사용된위성수, 고도 GPGSA 위치결정에사용된위성번호, 측정의정확도 GPVTG 진행방향, 속도
PC/104 비행제어컴퓨터구성
PC/104 비행제어컴퓨터구성 IMU 센서 비행체자세제어를위한상태정보를획득 AHRS(Attitude and Heading Reference Systems) : Xsens MTi Sample frequency : 100 Hz Baudrate : 115,200 bps 데이터형식 FA FF : header 32 : Message inentification 18 : Length 3C 5B C9 16 BA D0 53 54 BC A7 F2 E5 : rate of turn 3D 24 8D 03 3F BE 2F 58 42 0B 0F 9E : Euler angle BA : Checksum (NED 좌표계기준 ) X 축각속도, Y 축각속도, Z 축각속도 (deg/sec) X 축각, Y 축각, Z 축각 (deg)
PC/104 비행제어컴퓨터구성 Air-Data 센서 비행체의자세제어를위한상태정보획득 피토관 속도, 고도측정 AOA(Angle of Attack), AOS(Angle of Sideslip) 센서 바람각측정 Baud rate : 19,200 bps 데이터형식 데이터번호 의미 형식 1 2 3 4 식별자 [4A 48 3 34] 4byte, float 5 6 7 8 고도 [m] 4byte, float 9 10 11 12 속도 [km/h] 4byte, float 13 14 15 16 AOA [deg] 4byte, float 17 18 19 20 AOS [deg] 4byte, float 21 Check Sum 1byte, unsigned char Check Sum은고도, 속도, AOA, AOS 16 byte를 XOR연산하여출력
PC/104 비행제어컴퓨터구성 영상센서 비행체유도목적, 경로생성을위한정보획득 카메라 : LG LCV-A730HM S/N ratio 48dB 직류 12V 입력 통싞장비 3 채널 R/C Transmitter and Receiver : Hitec 2.4 GHz Wireless Transceiver : Freewave 920 MHz Video Transceiver : SungJin RF 5.8 GHz
PC/104 비행제어컴퓨터구성 Data flow 소프트웨어의변수들과상태변수들, 센서변수들, 제어입력신호등등연결 Time, positions, velocity, heading, satellite Attitude (p,q,r,phi,theta,psi) FCC Velocity, AOA, AOS, altitude Camera GCS RF communication Control input Camera attitude Servo
연구배경 PC/104 비행제어컴퓨터 QNX 기반 비행제어 프로그램 결과 및 향후 과제 QNX 기반 비행제어 프로그램 구성 QNX 기반 비행제어 프로그램 구성 QNX : Real-time, Microkernel, Preemptive, Prioritized, Message Passing, Network Distributed, Multitasking, Multiuser, Fault Tolerant한 운영체계 Applications 의료장비, 원자력 발젂 감시장치, 산업용 제어기, 로봇, 국방, 텔레매틱스, 반도체, 통싞&네트워크, 가젂에 이르기까지 폭넓고 다양한 분야 Embedded 기술분야 RTOS 기술 First multitasking RTOS running with MMU support First RTOS to implement distributed processing First RTOS to implement symmetrical multi-processing First POSIX certified RTOS First microgui Windowing system for embedded systems 무인비행체 소프트웨어
연구배경 PC/104 비행제어컴퓨터 QNX 기반 비행제어 프로그램 결과 및 향후 과제 QNX 기반 비행제어 프로그램 구성 QNX Unix, Linux, Windows NT - Monolithic 구조 응용프로그램을 제외한 모듞 기능이 커널 공갂 속에 존재 드라이버 개발이 복잡, 디버깅 어려움 커널 내의 한 부분의 문제가 OS Kernel에 영향을 미침 - 젂체 시스템에 장애가 생길 수 있음 QNX - Microkernel 구조 커널은 최소한의 핵심적인 기능 수행 - 기본 IPC, 가상 메모리, 스케쥴링 등 드라이버, 서버, 파일시스템, 응용프로그램이 커널과는 완젂 분리, 독립적인 재시작 설정 드라이버에 문제가 생기더라도 커널은 영향을 받지 않음 젂체 시스템 안정화 무인비행체 소프트웨어
연구배경 PC/104 비행제어컴퓨터 QNX 기반 비행제어 프로그램 결과 및 향후 과제 QNX 기반 비행제어 프로그램 구성 QNX Hard Real-time 지원 철저한 우선순위(Priority) 기반의 선점형(Pre-emptable) Thread 지원 256 Level 우선순위 완벽히 선점 가능하고 예측 가능한 커널 우선순위가 있고 중첩된 ISR 제공 우선순위가 높은 ISR (Interrupt Service Routine) 중첩 실행 어떤 Thread보다 우선 실행되는 ISR ISR 자싞의 작업을 대싞할 User Thread를 실행할 수 있음 다수의 Scheduling 알고리즘 적용 FIFO, Round Robin, Sporadic ANSI C, Dinkum C++, Embedded C++ 프로그래밍 언어 지원 GCC 컴파일러, GDB 디버거 지원 Eclipse 기반 IDE 지원 무인비행체 소프트웨어
QNX 기반비행제어프로그램구성 QNX <FIFO> Thread Scheduling FIFO scheduling 자기자싞이스스로블록하거나, 높은우선순위 thread 가준비상태가될때까지실행 Round-Robin scheduling 동일한우선순위를가지는 thread 들이시분할갂격단위로번갈아가며실행 <Round Robin> 새롭게구성한비행제어프로그램에서는 Hardware Thread 와 Software Thread 를나누어 RR scheduling 방법을사용
QNX 기반비행제어프로그램구성 QNX 를이용한비행제어프로그램구성도
QNX 기반비행제어프로그램구성 FCC 코드구성 air_sensor.c gps.c imu.c capture.c vision_com.c tx_to_ground.c main.c Air 데이터센서신호처리 219 line. GPS 디코딩 556 line. IMU 디코딩 217 line. PWM 캡쳐디코딩 301 line. 영상데이터디코딩 119 line. 지상국과의통신 528 line. 함수실행, Scheduling 421 line. id.c control.c guidance.c pc104.h dscud.h 2009uav.h variable.h 시스템 ID 할때만사용 192 line. 제어입력생성 512 line. 유도명령생성 804 line. PC/104 초기설정 217 line. PC/104 용변수, 함수정의 1375 line. 함수연결, 시리얼설정 90 line 변수정의 245 line. Makefile 컴파일, 빌드 waypoint.h 경로점정의 518 line.
QNX 기반비행제어프로그램구성 FCC 코드특징 시리얼통싞 센서디코딩, 지상통싞 (Hardware Thread) 포트열기 : fd = open(port, O_RDWR O_NOCTTY); 8 data bits, no parity, 1 stop bit, echo off, time out 설정 포트읽기 : r = read(fd,buff,200); 현재코드구성 디코딩함수가실행될때마다정해진크기의버퍼를읽음 포트쓰기 : write(fd,txch,111); 지상으로데이터를보낼때일정한크기만큼젂송 Hardware Thread IMU(64Hz), GPS(21Hz), Air-data(64Hz), PWM 캡쳐 (64Hz), 영상데이터디코딩 (32Hz), 지상국통싞 (16Hz) Software Thread Control(64Hz), Guidance(16Hz)
결과및향후과제 결과 PC/104를이용한비행제어컴퓨터구성 빠른처리속도, 넓은저장공갂확보 QNX RTOS 기반의비행제어프로그램구성 Round-Robin scheduling 기법을이용한 hard real-time 구현 시리얼통싞, 센서디코딩, 지상국송수싞, 제어입력생성 비행시험을통한검증 향후과제 유도 / 제어코드보완 새로운비행제어프로그램오류검증필요
감사합니다 21