21
Flight Dynamics and Control Lab Seoul National University, Republic of Korea 서울대학교 비행역학 및 제어연구실 2010 17-9최현진 소프트웨어 무결점 연구센터 3 rd 워크샵 QNX RTOS기반 PC/104 비행제어컴퓨터 개발

QNX RTOS기반 PC/104 비행제어컴퓨터개발 - SNUrosaec.snu.ac.kr/meet/file/20100108a.pdf · 2018-04-12 · Flight Dynamics and Control Lab Seoul National University, Republic

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: QNX RTOS기반 PC/104 비행제어컴퓨터개발 - SNUrosaec.snu.ac.kr/meet/file/20100108a.pdf · 2018-04-12 · Flight Dynamics and Control Lab Seoul National University, Republic

Flight Dynamics and Control Lab

Seoul National University, Republic of Korea

서울대학교 비행역학 및 제어연구실

2010 년 1월 7일 - 9일

최현진

소프트웨어 무결점 연구센터 3rd 워크샵

QNX RTOS기반 PC/104 비행제어컴퓨터 개발

Page 2: QNX RTOS기반 PC/104 비행제어컴퓨터개발 - SNUrosaec.snu.ac.kr/meet/file/20100108a.pdf · 2018-04-12 · Flight Dynamics and Control Lab Seoul National University, Republic

무인비행체 소프트웨어

Flight Dynamics and Control Lab., Seoul National University

목차

I. 연구 배경

II. PC/104 비행제어컴퓨터 구성

III. QNX 기반 비행제어 프로그램 구성

IV. 결과 및 향후 과제

Page 3: QNX RTOS기반 PC/104 비행제어컴퓨터개발 - SNUrosaec.snu.ac.kr/meet/file/20100108a.pdf · 2018-04-12 · Flight Dynamics and Control Lab Seoul National University, Republic

무인비행체 소프트웨어

Flight Dynamics and Control Lab., Seoul National University

연구배경

연구배경

무인항공기(UAV)

높은 활용도와 가능성

다양한 임무 수행 능력

• 영상을 이용한 실시갂 감시 및 정찰, 적의 방공망 체계 무력화 등의 임무

자동화, 실시갂 처리 -> 고성능의 비행제어컴퓨터가 필요

DSP(TMS320LF2407A)

기존의 비행제어컴퓨터

데이터 처리속도, 저장공갂, 실시갂 처리능력 한계

PC/104(ATH660-128)

새롭게 구성한 비행제어컴퓨터

데이터 처리속도, 저장공갂 증가

RTOS(Real Time Operation System)을 통한 실시갂 처리능력 향상

연구배경 PC/104 비행제어컴퓨터 QNX 기반 비행제어 프로그램 결과 및 향후 과제

Page 4: QNX RTOS기반 PC/104 비행제어컴퓨터개발 - SNUrosaec.snu.ac.kr/meet/file/20100108a.pdf · 2018-04-12 · Flight Dynamics and Control Lab Seoul National University, Republic

무인비행체 소프트웨어

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 기반 비행제어 프로그램 결과 및 향후 과제

Page 5: QNX RTOS기반 PC/104 비행제어컴퓨터개발 - SNUrosaec.snu.ac.kr/meet/file/20100108a.pdf · 2018-04-12 · Flight Dynamics and Control Lab Seoul National University, Republic

무인비행체 소프트웨어

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 기반 비행제어 프로그램 결과 및 향후 과제

Page 6: QNX RTOS기반 PC/104 비행제어컴퓨터개발 - SNUrosaec.snu.ac.kr/meet/file/20100108a.pdf · 2018-04-12 · Flight Dynamics and Control Lab Seoul National University, Republic

무인비행체 소프트웨어

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 기반 비행제어 프로그램 결과 및 향후 과제

Page 7: QNX RTOS기반 PC/104 비행제어컴퓨터개발 - SNUrosaec.snu.ac.kr/meet/file/20100108a.pdf · 2018-04-12 · Flight Dynamics and Control Lab Seoul National University, Republic

무인비행체 소프트웨어

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 기반 비행제어 프로그램 결과 및 향후 과제

Page 8: QNX RTOS기반 PC/104 비행제어컴퓨터개발 - SNUrosaec.snu.ac.kr/meet/file/20100108a.pdf · 2018-04-12 · Flight Dynamics and Control Lab Seoul National University, Republic

무인비행체 소프트웨어

Flight Dynamics and Control Lab., Seoul National University

PC/104 비행제어컴퓨터 구성

연구배경 PC/104 비행제어컴퓨터 QNX 기반 비행제어 프로그램 결과 및 향후 과제

Page 9: QNX RTOS기반 PC/104 비행제어컴퓨터개발 - SNUrosaec.snu.ac.kr/meet/file/20100108a.pdf · 2018-04-12 · Flight Dynamics and Control Lab Seoul National University, Republic

무인비행체 소프트웨어

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 기반 비행제어 프로그램 결과 및 향후 과제

Page 10: QNX RTOS기반 PC/104 비행제어컴퓨터개발 - SNUrosaec.snu.ac.kr/meet/file/20100108a.pdf · 2018-04-12 · Flight Dynamics and Control Lab Seoul National University, Republic

무인비행체 소프트웨어

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 기반 비행제어 프로그램 결과 및 향후 과제

Page 11: QNX RTOS기반 PC/104 비행제어컴퓨터개발 - SNUrosaec.snu.ac.kr/meet/file/20100108a.pdf · 2018-04-12 · Flight Dynamics and Control Lab Seoul National University, Republic

무인비행체 소프트웨어

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 기반 비행제어 프로그램 결과 및 향후 과제

Page 12: QNX RTOS기반 PC/104 비행제어컴퓨터개발 - SNUrosaec.snu.ac.kr/meet/file/20100108a.pdf · 2018-04-12 · Flight Dynamics and Control Lab Seoul National University, Republic

무인비행체 소프트웨어

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 기반 비행제어 프로그램 결과 및 향후 과제

Page 13: QNX RTOS기반 PC/104 비행제어컴퓨터개발 - SNUrosaec.snu.ac.kr/meet/file/20100108a.pdf · 2018-04-12 · Flight Dynamics and Control Lab Seoul National University, Republic

무인비행체 소프트웨어

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 기반 비행제어 프로그램 결과 및 향후 과제

Page 14: QNX RTOS기반 PC/104 비행제어컴퓨터개발 - SNUrosaec.snu.ac.kr/meet/file/20100108a.pdf · 2018-04-12 · Flight Dynamics and Control Lab Seoul National University, Republic

무인비행체 소프트웨어

Flight Dynamics and Control Lab., Seoul National University

QNX 기반 비행제어 프로그램 구성

QNX

Unix, Linux, Windows NT - Monolithic 구조

응용프로그램을 제외한 모듞 기능이 커널 공갂 속에 존재

드라이버 개발이 복잡, 디버깅 어려움

커널 내의 한 부분의 문제가 OS Kernel에 영향을 미침 - 젂체 시스템에 장애가 생길 수 있음

QNX - Microkernel 구조

커널은 최소한의 핵심적인 기능 수행 - 기본 IPC, 가상 메모리, 스케쥴링 등

드라이버, 서버, 파일시스템, 응용프로그램이 커널과는 완젂 분리, 독립적인 재시작 설정

드라이버에 문제가 생기더라도 커널은 영향을 받지 않음 – 젂체 시스템 안정화

연구배경 PC/104 비행제어컴퓨터 QNX 기반 비행제어 프로그램 결과 및 향후 과제

Page 15: QNX RTOS기반 PC/104 비행제어컴퓨터개발 - SNUrosaec.snu.ac.kr/meet/file/20100108a.pdf · 2018-04-12 · Flight Dynamics and Control Lab Seoul National University, Republic

무인비행체 소프트웨어

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 기반 비행제어 프로그램 결과 및 향후 과제

Page 16: QNX RTOS기반 PC/104 비행제어컴퓨터개발 - SNUrosaec.snu.ac.kr/meet/file/20100108a.pdf · 2018-04-12 · Flight Dynamics and Control Lab Seoul National University, Republic

무인비행체 소프트웨어

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>

Page 17: QNX RTOS기반 PC/104 비행제어컴퓨터개발 - SNUrosaec.snu.ac.kr/meet/file/20100108a.pdf · 2018-04-12 · Flight Dynamics and Control Lab Seoul National University, Republic

무인비행체 소프트웨어

Flight Dynamics and Control Lab., Seoul National University

QNX 기반 비행제어 프로그램 구성

QNX를 이용한 비행제어 프로그램 구성도

연구배경 PC/104 비행제어컴퓨터 QNX 기반 비행제어 프로그램 결과 및 향후 과제

Page 18: QNX RTOS기반 PC/104 비행제어컴퓨터개발 - SNUrosaec.snu.ac.kr/meet/file/20100108a.pdf · 2018-04-12 · Flight Dynamics and Control Lab Seoul National University, Republic

무인비행체 소프트웨어

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 기반 비행제어 프로그램 결과 및 향후 과제

Page 19: QNX RTOS기반 PC/104 비행제어컴퓨터개발 - SNUrosaec.snu.ac.kr/meet/file/20100108a.pdf · 2018-04-12 · Flight Dynamics and Control Lab Seoul National University, Republic

무인비행체 소프트웨어

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 기반 비행제어 프로그램 결과 및 향후 과제

Page 20: QNX RTOS기반 PC/104 비행제어컴퓨터개발 - SNUrosaec.snu.ac.kr/meet/file/20100108a.pdf · 2018-04-12 · Flight Dynamics and Control Lab Seoul National University, Republic

무인비행체 소프트웨어

Flight Dynamics and Control Lab., Seoul National University

결과 및 향후 과제

결과

PC/104를 이용한 비행제어컴퓨터 구성

빠른 처리속도, 넓은 저장공갂 확보

QNX RTOS 기반의 비행제어프로그램 구성

Round-Robin scheduling 기법을 이용한 hard real-time 구현

시리얼 통싞, 센서 디코딩, 지상국 송수싞, 제어 입력 생성 – 비행시험을 통한 검증

향후 과제

유도/제어 코드 보완

새로운 비행제어프로그램 오류 검증 필요

연구배경 PC/104 비행제어컴퓨터 QNX 기반 비행제어 프로그램 결과 및 향후 과제

Page 21: QNX RTOS기반 PC/104 비행제어컴퓨터개발 - SNUrosaec.snu.ac.kr/meet/file/20100108a.pdf · 2018-04-12 · Flight Dynamics and Control Lab Seoul National University, Republic

무인비행체 소프트웨어

Flight Dynamics and Control Lab., Seoul National University 21

감사합니다