Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Flight Dynamics and Control Lab
Seoul National University, Republic of Korea
서울대학교 비행역학 및 제어연구실
2010 년 1월 7일 - 9일
최현진
소프트웨어 무결점 연구센터 3rd 워크샵
QNX RTOS기반 PC/104 비행제어컴퓨터 개발
무인비행체 소프트웨어
Flight Dynamics and Control Lab., Seoul National University
목차
I. 연구 배경
II. PC/104 비행제어컴퓨터 구성
III. QNX 기반 비행제어 프로그램 구성
IV. 결과 및 향후 과제
무인비행체 소프트웨어
Flight Dynamics and Control Lab., Seoul National University
연구배경
연구배경
무인항공기(UAV)
높은 활용도와 가능성
다양한 임무 수행 능력
• 영상을 이용한 실시갂 감시 및 정찰, 적의 방공망 체계 무력화 등의 임무
자동화, 실시갂 처리 -> 고성능의 비행제어컴퓨터가 필요
DSP(TMS320LF2407A)
기존의 비행제어컴퓨터
데이터 처리속도, 저장공갂, 실시갂 처리능력 한계
PC/104(ATH660-128)
새롭게 구성한 비행제어컴퓨터
데이터 처리속도, 저장공갂 증가
RTOS(Real Time Operation System)을 통한 실시갂 처리능력 향상
연구배경 PC/104 비행제어컴퓨터 QNX 기반 비행제어 프로그램 결과 및 향후 과제
무인비행체 소프트웨어
Flight Dynamics and Control Lab., Seoul National University
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 비행제어컴퓨터 QNX 기반 비행제어 프로그램 결과 및 향후 과제
무인비행체 소프트웨어
Flight Dynamics and Control Lab., Seoul National University
PC/104 비행제어컴퓨터 구성
DSP와 PC/104 비교 TMS320LF2407A ATH660-128
Processor DSP(TMS320LF2407A) PC/104(ATH660-128)
CPU 40MHz 660MHz
MemoryRam : 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 기반 비행제어 프로그램 결과 및 향후 과제
무인비행체 소프트웨어
Flight Dynamics and Control Lab., Seoul National University
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
비행제어 시스템 통합
FCC
IMU
GPS
Air-Data Sensor
RF Modem
Power System
Air Data Sensor
GPS
IMU
FCC
RF
연구배경 PC/104 비행제어컴퓨터 QNX 기반 비행제어 프로그램 결과 및 향후 과제
무인비행체 소프트웨어
Flight Dynamics and Control Lab., Seoul National University
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 비행제어컴퓨터 QNX 기반 비행제어 프로그램 결과 및 향후 과제
무인비행체 소프트웨어
Flight Dynamics and Control Lab., Seoul National University
PC/104 비행제어컴퓨터 구성
연구배경 PC/104 비행제어컴퓨터 QNX 기반 비행제어 프로그램 결과 및 향후 과제
무인비행체 소프트웨어
Flight Dynamics and Control Lab., Seoul National University
PC/104 비행제어컴퓨터 구성
IMU 센서 – 비행체 자세제어를 위한 상태정보를 획득
AHRS(Attitude and Heading Reference Systems) : Xsens MTi
Sample frequency : 100 Hz
Baudrate : 115,200 bps
데이터 형식
FA FF : header32 : Message inentification18 : Length3C 5B C9 16 BA D0 53 54 BC A7 F2 E5 : rate of turn3D 24 8D 03 3F BE 2F 58 42 0B 0F 9E : Euler angleBA : Checksum
(NED 좌표계 기준) X축 각속도, Y축 각속도, Z축 각속도 (deg/sec)X축 각 , Y축 각 , Z축 각 (deg)
연구배경 PC/104 비행제어컴퓨터 QNX 기반 비행제어 프로그램 결과 및 향후 과제
무인비행체 소프트웨어
Flight Dynamics and Control Lab., Seoul National University
데이터 형식
Check Sum은 고도, 속도, AOA, AOS 16 byte를 XOR연산하여 출력
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
연구배경 PC/104 비행제어컴퓨터 QNX 기반 비행제어 프로그램 결과 및 향후 과제
무인비행체 소프트웨어
Flight Dynamics and Control Lab., Seoul National University
PC/104 비행제어컴퓨터 구성
영상 센서 – 비행체 유도 목적, 경로 생성을 위한 정보 획득
통싞장비 – 3채널
R/C Transmitter and Receiver : Hitec 2.4 GHzWireless Transceiver : Freewave 920 MHzVideo Transceiver : SungJin RF 5.8 GHz
카메라 : LG LCV-A730HMS/N ratio 48dB직류 12V 입력
연구배경 PC/104 비행제어컴퓨터 QNX 기반 비행제어 프로그램 결과 및 향후 과제
무인비행체 소프트웨어
Flight Dynamics and Control Lab., Seoul National University
PC/104 비행제어컴퓨터 구성
Data flow
소프트웨어의 변수들과 상태변수들, 센서변수들, 제어입력신호 등등 연결
FCC
Servo
Time, positions, velocity, heading, satellite
Attitude(p,q,r,phi,theta,psi) Velocity,
AOA, AOS, altitude
Control input
Camera
Camera attitude
GCS
RF communication
연구배경 PC/104 비행제어컴퓨터 QNX 기반 비행제어 프로그램 결과 및 향후 과제
무인비행체 소프트웨어
Flight Dynamics and Control Lab., Seoul National University
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 기반 비행제어 프로그램 결과 및 향후 과제
무인비행체 소프트웨어
Flight Dynamics and Control Lab., Seoul National University
QNX 기반 비행제어 프로그램 구성
QNX
Unix, Linux, Windows NT - Monolithic 구조
응용프로그램을 제외한 모듞 기능이 커널 공갂 속에 존재
드라이버 개발이 복잡, 디버깅 어려움
커널 내의 한 부분의 문제가 OS Kernel에 영향을 미침 - 젂체 시스템에 장애가 생길 수 있음
QNX - Microkernel 구조
커널은 최소한의 핵심적인 기능 수행 - 기본 IPC, 가상 메모리, 스케쥴링 등
드라이버, 서버, 파일시스템, 응용프로그램이 커널과는 완젂 분리, 독립적인 재시작 설정
드라이버에 문제가 생기더라도 커널은 영향을 받지 않음 – 젂체 시스템 안정화
연구배경 PC/104 비행제어컴퓨터 QNX 기반 비행제어 프로그램 결과 및 향후 과제
무인비행체 소프트웨어
Flight Dynamics and Control Lab., Seoul National University
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 지원
연구배경 PC/104 비행제어컴퓨터 QNX 기반 비행제어 프로그램 결과 및 향후 과제
무인비행체 소프트웨어
Flight Dynamics and Control Lab., Seoul National University
QNX 기반 비행제어 프로그램 구성
QNX
Thread Scheduling
FIFO scheduling
자기 자싞이 스스로 블록하거나,
높은 우선순위 thread가 준비상태가
될 때까지 실행
Round-Robin scheduling
동일한 우선순위를 가지는 thread들이
시분할 갂격 단위로 번갈아 가며 실행
새롭게 구성한 비행제어 프로그램에서는
Hardware Thread와 Software Thread를
나누어 RR scheduling 방법을 사용
연구배경 PC/104 비행제어컴퓨터 QNX 기반 비행제어 프로그램 결과 및 향후 과제
<FIFO>
<Round Robin>
무인비행체 소프트웨어
Flight Dynamics and Control Lab., Seoul National University
QNX 기반 비행제어 프로그램 구성
QNX를 이용한 비행제어 프로그램 구성도
연구배경 PC/104 비행제어컴퓨터 QNX 기반 비행제어 프로그램 결과 및 향후 과제
무인비행체 소프트웨어
Flight Dynamics and Control Lab., Seoul National University
FCC 코드 구성
QNX 기반 비행제어 프로그램 구성
air_sensor.c Air 데이터 센서 신호 처리
219 line.
id.c 시스템 ID 할 때만 사용
192 line.
gps.c GPS 디코딩
556 line.
control.c 제어 입력 생성
512 line.
imu.c IMU 디코딩
217 line.
guidance.c 유도 명령 생성
804 line.
capture.c PWM 캡쳐 디코딩
301 line.
pc104.h PC/104 초기 설정
217 line.
vision_com.c 영상 데이터 디코딩
119 line.
dscud.h PC/104 용 변수, 함수 정의
1375 line.
tx_to_ground.c 지상국과의 통신
528 line.
2009uav.h 함수연결, 시리얼 설정
90 line
main.c 함수 실행, Scheduling
421 line.
variable.h 변수 정의
245 line.
Makefile 컴파일, 빌드 waypoint.h 경로점 정의
518 line.
연구배경 PC/104 비행제어컴퓨터 QNX 기반 비행제어 프로그램 결과 및 향후 과제
무인비행체 소프트웨어
Flight Dynamics and Control Lab., Seoul National University
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 기반 비행제어 프로그램 결과 및 향후 과제
무인비행체 소프트웨어
Flight Dynamics and Control Lab., Seoul National University
결과 및 향후 과제
결과
PC/104를 이용한 비행제어컴퓨터 구성
빠른 처리속도, 넓은 저장공갂 확보
QNX RTOS 기반의 비행제어프로그램 구성
Round-Robin scheduling 기법을 이용한 hard real-time 구현
시리얼 통싞, 센서 디코딩, 지상국 송수싞, 제어 입력 생성 – 비행시험을 통한 검증
향후 과제
유도/제어 코드 보완
새로운 비행제어프로그램 오류 검증 필요
연구배경 PC/104 비행제어컴퓨터 QNX 기반 비행제어 프로그램 결과 및 향후 과제
무인비행체 소프트웨어
Flight Dynamics and Control Lab., Seoul National University 21
감사합니다