Journal of Institute of Control, Robotics and Systems (2013) 19(11):1036-1042 http://dx.doi.org/10.5302/j.icros.2013.13.1922 ISSN:1976-5622 eissn:2233-4335 Elderly Assistance System Development based on Real-time Embedded Linux,, * (Jae-Hwan Koh 1, Gil-Jin Yang 2, and Byoung-Wook Choi 2 ) 1 HA Control R&D Lab., LG Electronics 2 Dept. of Electrical and Information Engineering, Seoul National University of Science and Technology Abstract: In this paper, an elderly assistance system is developed based on Xenomai, a real-time development framework cooperating with the Linux kernel. A Kinect sensor is used to recognize the behavior of the elderly and A-star search algorithm is implemented to find the shortest path to the person. The mobile robot also generates a trajectory using a digital convolution operator which is based on a Bezier curve for smooth driving. In order to follow the generated trajectory within the control period, we developed real-time tasks and compared the performance of the tracking trajectory with that of non real-time tasks. The real-time task has a better result on following the trajectory within the physical constraints which means that it is more appropriate to apply to an elderly assistant system. Keywords: xenomai, real-time operating system, Kinect, A-star search algorithm, Bezier curve I. 서론 지능형모바일로봇은사람과유사한다양한센서를통 하여외부환경을인식 (sensing) 하며, 얻어진정보를통하여 자신과외부의상태를지각 (perception) 하고판단을수행하 는인지 (cognition) 와지능이결합되어운동기능 (manipula- tion) 의역할을수행한다. 이와같은전체소프트웨어계층 에서확실성, 지능성, 적응성과함께실시간성이요구되며, 이와같은요구사항을만족하는응용프로그램으로서비 스를안정적이면서체계적으로지원하기위해서는운영체 제의도움을받아야한다. 일반적으로범용운영체제로많 이쓰이는운영체제에는윈도우와리눅스가있지만이와 같은운영체제는실시간성을보장하지못함으로써예상치 못한행위를제어하는데어려움을겪게된다. 지능형모바 일로봇은인간과유기적으로관계하기때문에예상치못 한행위는인간에게치명적인위험이될수있다. 또한실 시간성을보장받지못함으로써사용자가원하는성능을 발휘하지못하게될수있다. 이러한단점을보완하기위해 실시간운영체제 (RTOS: Real-Time Operating System) 를적용 하는추세이다 [1]. 실시간운영체제는임베디드운영체제중에서시간을제 어할수있는기능이포함된운영체제로상용 RTOS 와오 * 책임저자 (Corresponding Author) Manuscript received May 22, 2013 / revised July 29, 2013 / accepted August 22, 2013 고재환 : LG 전자주식회사 (jaehwan.ko@lge.com) 양길진 : 서울과학기술대학전기공학과 (yang6495@gmail.com) 최병욱 : 서울과학기술대학전기정보공학과 (bwchoi@seoultech.ac.kr) 이논문은 2012 년도정부 ( 교육과학기술부 ) 의재원으로한국연구재단기초연구사업의지원을받아수행된연구임 (2012-006057). 픈소스인실시간임베디드리눅스로구분지을수있다 [2-5]. 상용 RTOS 로는 VxWorks, Nucleus PLUS, QNX Neutrino 등이있고, 리눅스를활용하여실시간성을지원하는실시간임베디드리눅스로는 RT-Linux, RTAI 프로젝트, Xenomai 프로젝트등이있다. RT-Linux 의경우에는상용화가이루어지면서상용버전 RT-Linux/Pro 와오픈소스인 RT-Linux 로나누어져있다. 상용 RTOS 를이용한지능형모바일로봇개발은초기개발비용이많이들고특정운영체제로의기술종속이될수있다 [6]. 따라서본논문에서는상용 RTOS 의대안이될수있는실시간임베디드리눅스를이용한지능형모바일로봇개발을제안한다. 실시간임베디드리눅스는저렴한비용으로개발이가능할뿐만아니라성능면에서도상용 RTOS 에비해뒤떨어지지않는다 [7]. 본연구에서는선행연구에서수행된실시간임베디드리눅스성능비교에서매우안정적인특성을보이는 Xenomai 를지능형모바일로봇에적용한다 [8]. 또한이를응용한어플리케이션으로노약자지원시스템을개발한다. 본논문의구성은다음과같다. 먼저 II 장에서는본논문에서제안한실시간임베디드리눅스기반노약자지원시스템에대해설명한다. III 장에서는실시간기반과비실시간기반에서의성능차이에대해논의하고, IV 장에서는노약자지원시스템개발과정을서술한다. 마지막으로 V 장에서는본논문의결론을도출한다. II. 시스템구조그림 1은본논문에서구현한실시간임베디드리눅스기반노약자지원시스템의구성을보여주고있다. 주요시나리오는지능형모바일로봇의주제어장치의운영체제로 Copyright ICROS 2013
Elderly Assistance System Development based on Real-time Embedded Linux 1037 Xenomai 를이용하여실시간시스템으로구성하고, 노약자의활동인식을위하여키넥트 (Kinect) 센서를이용한다. 키넥트센서의영상이미지를이용하여노약자의활동인식을위한알고리즘개발하였으며, 행동이상을확인하고노약자에게로자율주행하는시스템을구현하였다. 자율주행은최단거리주행을위해 A*(A-star) 알고리즘을이용하였고, 경로는부드러운곡선주행을위하여베지어곡선을이용하였다. 또한경로추종시물리적제한을만족하는디지털컨볼루션방법으로궤적생성을하는알고리즘을개발하였다 [9,10-12]. 마지막으로모니터링시스템은별도의프로그램을개발하지않고기존의동부로봇에서제공된모니터링프로그램을사용하였다. 1. 하드웨어구성본연구에서는실험을위해동부로봇에서제작한 TETRA-DS III을이용한다. TETRA는 2개의 AC 서보모터를가지고있으며, 주행최대속도는 2.0m/s 이다. 또한범퍼센서, 초음파센서, LRF (Laser Range Finder) 를탑재하고있으며제어보드로 VIA 임베디드보드를사용한다. 표 1은 연구에서사용한 TETRA 의하드웨어사양이다. 본연구에서는그림 1과같은노약자지원어플리케이션개발을위해 TETRA 에 Microsoft 사의키넥트센서를추가하였다. TETRA 에내장된 VIA 임베디드보드는사양이낮기때문에키넥트센서를구동하기에는어려움이존재한다. 이러한이유로그림 3과같이키넥트센서사용을위해별도의 SBC (Single Board Computer) 를추가하였다. VIA 임베디드보드는운영체제로 Ubuntu 를사용하며, 실시간성확보를위해리눅스커널 2.6.32.11 에 Xenomai(2.5.3) 를적용하였다. 추가된 SBC의경우키넥트센서의권장운영체제인 Windows7 을사용하였으며, 개발툴로 Visual Studio 2010을이용하였다. 또한노약자의스켈레톤이미지를얻기위해 Kinect for Windows SDK v1.5와 OpenCV2.3.1 을이용하였다. 그림 2는본연구에서사용한모바일로봇의실제모습이다. 키넥트센서를이용한노약자검출을위해로봇의상단에키넥트센서및 SBC를추가하였으며, 장애물검출및충돌감지를위해초음파센서, 범퍼센서, LRF를장착하였다. 그림 3은본연구에서구현한실시간 H/W 제어구조이다. 모바일로봇의제어및구동을위한 VIA 임베디드보드와키넥트센서사용을위한 SBC 사이의통신은 TCP/IP 를통해이루어진다. 또한 Power, Sensor, Drive 보드와 VIA 임베디드보드는시리얼통신을통해데이터를주고받으며, VIA 임베디드보드내의다양한서비스는실시간태스크로구현되었다. 그림 1. 시스템구성도. Fig. 1. System overview. 표 1. 모바일로봇의하드웨어사양. Table 1. The hardware specification of the mobile robot. 그림 2. TETRA-DS III 모바일로봇. Fig. 2. The mobile robot TETRA-DS III. 그림 3. 실시간 H/W 제어구조. Fig. 3. The real-time hardware control structure.
1038 고재환, 양길진, 최병욱 상도를지원하며, NUI_INITIALIZE_FLAG_USES_DEPTH_ AND_ PLAYER_INDEX 의경우 NUI_IMAGE_RESOLUTION _320x240 과 NUI_IMAGE_RESOLUTION_80x60 두가지의해상도를지원한다. 본연구에서는 Color 이미지의경우 NUI_IMAGE_RESOLUTION_640x480, Depth 이미지의경우 NUI_IMAGE_RESOLUTION_320x240 을사용하였다. 이미지스트림개방외에노약자의골격추적을위해 NuiSkeletonTrackingEnable 함수호출을통해 SkeletonTracking 을활성화시켜야한다. SkeletonTrancking 이활성화되면 Image, Depth 데이터와함께 Skeleton 데이터가함께전달되며, 스켈레톤추적상태에따라다음세가지로구분된다. 그림 4. 실시간시스템소프트웨어구성. Fig. 4. Architecture of the real-time software. 2. 실시간소프트웨어구성 VIA 임베디드보드내에서작동하는실시간태스크는그림 4와같이구조를보인다 [8]. 응용프로그램은사용자공간에서 Xenomai 실시간타스크로구현되었다. 모터구동태스크서보타스크 (servo task) 와추가된 SBC로부터노약자의관절데이터를가져오는태스크통신타스크 (TCP/IP task), 로봇의위치를추정하는태스크위치타스크 (position task), 센서및기타장치들을관리하는태스크디바이스타스크 (device task) 들로구성되었다. 키텍트동작을위하여서는별도의 SBC를이용하여윈도우즈기반으로다음장에서설명한방법으로다양한응용프로그램이구현되어있다. 키넥트센서를이용하여 RGB 영상추출, Depth 영상으로부터거리정보를얻는다. 그리고 Skeleton 이미지를얻어오는부분과이를이용하여노약자의활동성을판단하는프로그램으로구성된다. 또한실시간제어장치인 VIA 임베디드보드와의 TCP/IP 통신을담당하는부분으로이루어져있다. 3. 키넥트센서활용본연구에서는키넥트센서를이용하여노약자의관절데이터를얻어오기위하여 RGB 영상, Depth 영상, Skeleton 이미지를얻어올수있는 NUI API를이용하며, NUI API 사용을위해서는 NuiInitialize 함수를이용해야한다. NuiInitialize 함수는원하는기능에따라 5가지의플래그를인자로사용하며, 본논문에서는실험에필요한다음과같은플래그를 OR연산형태로사용하였다. NUI_INITIALIZE_FLAG_USES_COLOR NUI_INITIALIZE_FLAG_USES_DEPTH_AND_PLAYER_ INDEX NUI_INITIALIZE_FLAG_USES_SKELETON NuiInitialize 함수를이용한초기화가끝나면 Depth 이미지와 Color 이미지출력을위해 NuiImageStreamOpen 함수를이용하여스트림을개방한다. 스트림개방을위해서는해상도를인자로넘겨주어야하는데 NUI_INITIALIZE_FLAG_ USES_COLOR 를이용할경우 NUI_IMAGE_RESOLUTION_ 1280x1024, NUI_IMAGE_RESOLUTION_640x480 두가지해 NUI_SKELETON_TRACKED NUI_SKELETON_NOT_TRACKED NUI_SKELETON_POSITION_ONLY 본논문에서는노약자의상태를지속적으로관찰해야되기때문에 NUI_SKELETON_TRACKED 상태에서만 Skeleton 이검출되었다고판단하며, 이를바탕으로 Skeleton 이미지를출력하였다. 또한 SkeletonTracking 이활성화되면프레임내의관절정보를매끄럽게만들기위해 NuiTransformSmooth 함수를이용하였다. 마지막으로이미지를지속적으로가져오기위해 NuiImageStreamGetNextFrame 함수를이용하며, 본연구에서는 Color, Depth, Skeleton 이미지를 100ms 마다가져올수있도록설정하였다. 그리고스트림이지속적으로개방되면메모리누적이발생하기때문에 NuiImageStreamReleaseFrame 함수를이용하여메모리누적을방지하였다. III. 실험실시간임베디드리눅스기반지능형모바일로봇의성능을검증하기위해두가지측면에서범용리눅스와실시간임베디드리눅스의성능을비교하였다. 첫번째로는속도명령이입력되는모터구동태스크의주기성을비교하였으며, 두번째로는주어진궤적을추종시발생하는거리오차를비교하였다. 격자맵의크기가 4x4인환경에서실험을위해로봇의출발좌표는 (0, 0, 45 ), 노약자의좌표는 (4, 4, 45 ) 으로가정하였다. 격자맵의한칸의실제크기는 50cm이고, 로봇의최대속도는 0.25m/s 로설정하였다. 1. 태스크의주기성디지털컨볼루션과베지어곡선을통해얻어진속도프로파일이정해진시간에입력되지않을경우모바일로봇이주어진궤적을추종하는데어려움을겪게된다. 따라서정해진시간에정확한속도명령이입력되어야한다. 이러한이유로본논문에서는 Xenomai 가적용된리눅스와범용리눅스에서모터구동태스크의주기성을측정하여, 정확한주기에속도명령이입력되는지를분석하였다. 태스크의주기는 10ms 부터 50ms까지 10ms 씩증가시키며실험하였다. 결과는그림 5와같다. 결과를보면 10ms의주기에서 Xenomai 는 1400us, 범용 Linux 는 7458us 의오차가발생하였다. 실시간임베디드리
실시간임베디드리눅스기반노약자지원로봇개발 1039 그림 5. 태스크의주기성비교. Fig. 5. Comparison of task periodicity. 눅스인 Xenomai 와범용리눅스모두많은오차를나타내고있으며, 이는시리얼통신의지연으로인하여정해진시간안에모든일을끝내지못하고다음주기에남은일을처리하는경우가존재하기때문이다. 10ms 외의주기에서는 Xenomai 의경우 5~6[us] 의오차를나타내며, 비교적정확한주기에태스크가실행되었다. 반면범용리눅스의경우 10ms 에서 7.5[ms] 의오차를나타내었으며, 그외의주기에서는 5.6~6.4[ms] 의오차를나타냄으로써 Xenomai 에비해많은오차를보였다. 2. 주행거리그림 6와같은속도프로파일입력시모바일로봇의실제주행거리를측정하여비실시간기반모바일로봇과실시간기반모바일로봇의성능을비교하였다. 속도입력은그림 6와같은속도프로파일을 10ms, 30ms, 50ms 의주기로샘플링하여속도명령을입력하였다. 실시간및비실시간기반모바일로봇에서그림 7와같은속도프로파일입력시로봇이이동한궤적을모터의엔코더값을읽어그림 7과같이나타내었다. 실시간기반의경우 10ms 에서전술했던이유때문에다른주기에서보다실제주행거리가늘어나는모습을보였다. 그외의주기에서는원하는좌표에근접하게접근하였고, 로봇의다이나믹스, 샘플링오차, 슬립으로인해약간의오차가발생하였다. 비실시간인범용리눅스의경우전체주기에서주어진시간내에모든작업을수행하지못해태스크의주기가지 그림 7. 시스템에따른주행실험결과. Fig. 7. The result of the driving experiment according to the system. 연되었다. 이러한영향으로원하는목표보다많은거리를이동하였다. 또한태스크의주기가길어질수록주기내에원하는작업수행이가능하게되어오차가점점줄어드는모습을보였다. IV. 노약자지원시스템개발본연구에서는그림 1과같은노약자지원시스템을개발하기위해그림 8과같은순서도를이용하였다. 모바일로봇은시작과동시에 H/W 및 S/W 초기화가이루어지며로봇에탑재된키넥트센서를이용하여노약자를검출하고위급한상황이발생하기전까지지속적으로추적및관찰을수행한다. 키넥트센서를통해얻어지는노약자의관절데이터를바탕으로위급상황을판단하며, 위급상황이발생했을경우현재로봇의위치를기준으로 A* 알고 그림 6. 물리적제한을만족하는속도프로파일. Fig. 6. The velocity profile that satisfies the physical limit. 그림 8. 노약자지원시스템순서도. Fig. 8. Flow chart of the elderly assistance system.
1040 Jae-Hwan Koh, Gil-Jin Yang, and Byoung-Wook Choi 리즘을이용해노약자까지의최단경로검색을수행한다. 또한디지털컨볼루션과베지어곡선을이용하여궤적을생성하며얻어진궤적을바탕으로주행을한다. 1. 노약자행동인식노약자의생활을지원하기위해서는노약자를인식 (sensing) 하고, 위급한상황이발생했을때이를지각 (perception) 하고인지 (cognition) 할수있어야한다. 본연구에서는노약자를인식하기위해키넥트센서를사용하였다. 키넥트센서를통해노약자의행동을관찰하고, 얻어진정보를통해노약자의상태를판단하였다. 키넥트센서를통해얻는정보는그림 9와같이 RGB 영상, Depth 영상, 인식된사람의관절데이터이다. 본연구에서는실험을위해노약자가쓰러지는상황을가정하였다. 로봇에탑재된키넥트센서를이용해노약자를관찰하다노약자가쓰러지는상황을인식하고, 로봇의현재위치및각도와거리데이터를이용해노약자의위치를파악한다. 파악된노약자의위치를 TCP/IP 통신을통해 VIA 임베디드보드에전달한다. 그림 9와그림 10은키넥트센서를통해노약자가쓰러졌을때비상상태발생을판단하는모습이다. 실험의편의를위해노약자의관절이한계값밑으로내려갈경우쓰러졌다고판단하였다. 그림 9. 비상상황감시 (Normal Status). Fig. 9. Emergency monitoring (Normal Status). 그림 11. A* 알고리즘을이용한경로계획. Fig. 11. Path planning using the A* algorithm. 2. 경로계획노약자가쓰러졌다고판단되면현재로봇과노약자사이의최단경로를 A* 알고리즘을이용해검색한다. 그림 11 은노약자가 (4, 4) 에존재하고로봇의현재위치가 (0, 0) 일때최단경로를검색하는경우를나타낸것이다. 구현된노약자지원시스템은 SLAM (Simultaneous Localization and Mapping) 이구현되어있지않기때문에주변맵정보는알고있다고가정하였고, (2, 2) 에장애물이존재한다고가정하였다. 여기서격자맵의한칸의실제크기는 50cm로로봇의크기를고려하여설정하였다. A* 알고리즘에의해구해진경로는 (0, 0) (1, 1) (2, 1) (3, 1) (4, 2) (4, 3) (4, 4) 로각경로점을따라이동로봇이주행하게된다. 3. 주행 A* 알고리즘을통해경로가구해지면베지어곡선과디지털컨볼루션을이용해물리적제한을만족하며얻어진경로를부드럽게움직일수있는궤적이생성된다. 그림 12 는베지어곡선을이용해얻어진궤적이다. 최종위치인 (4, 4) 에서는노약자를정면으로바라보며로봇이도착하도록궤적을계획했다. 그림 12에서점의간격이조밀한부분은로봇이천천히움직이는구간이며, 넓은부분은로봇이빠르게움직이는구간이다. 그림 12와같이움직이기위해디지털컨볼루션을이용하여그림 13과같은로봇의중심에대한속도프로파일을생성하였다. TETRA 의최대속도는 0.25m/s 로가 그림 10. 비상상황감시 (Emergency Status). Fig. 10. Emergency monitoring (Emergency Status). 그림 12. 베지어곡선을이용한궤적계획. Fig. 12. Trajectory planning using a Bezier curve.
Elderly Assistance System Development based on Real-time Embedded Linux 1041 그림 13. 로봇중심에대한속도프로파일. Fig. 13. Velocity profile at the center of the robot. 그림 15. 시스템에따른주행시뮬레이션 (Xenomai). Fig. 15. The driving simulation according to system (Xenomai). 그림 16. 시스템에따른주행시뮬레이션 (Linux). Fig. 16. The driving simulation according to system (Linux). 그림 14. 양바퀴에대한속도프로파일. Fig. 14. Velocity profiles for the two wheels. 정하였다. TETRA 는두바퀴차분구동형이동로봇이기때문에중심에대한속도프로파일을양바퀴로나누어속도입력을넣어주어야한다 [10-11]. 그림 13의속도프로파일을역기구학을이용해두바퀴로나누었다. 두바퀴에대한속도프로파일은그림 14와같다. 그림 14를보면로봇의최대속도인 0.25m/s 가넘는속도명령이생성되며불연속한경로가생성된다. 따라서관절공간이두바퀴의속도명령제한을고려하고연속된경로생성이필요하며이에대한논문을별도로발표하였다 [11]. 본연구에서는실제 TETRA 의최대속도는 2m/s이기때문에양바퀴에대해 0.25m/s 가넘는속도입력이들어오더라도추종이가능하며불연속적인속도명령은인터폴레이션하여전체시스템의성능을관찰하는것을목표로하였다. 4. 시뮬레이션그림 14와태스크의주기성실험결과를바탕으로시뮬레이션을구성하였으며시뮬레이터는 anykode 사의 Marilou 를사용하였다 [13]. 실시간기반과비실시간기반의차이는속도명령을입력할때태스크의주기성실험결과에서나온오차시간만큼속도명령이지연되게만들었다. 또한모터구동태스크의주기는 30ms로설정하였다. 그림 15는 Xenomai 기반에서의시뮬레이션결과이다. (2, 2) 에존재하는장애물을회피하며주어진궤적을따라목표좌표인 (4, 4) 에도착하였다. 실선은명령을나타낸다. 그림 16은범용리눅스기반에서의시뮬레이션결과이다. Xenomai 기반에서와는달리태스크의주기성오차로인해정해진궤적을벗어나며움직이는모습을볼수있다. 따라서목표좌표인 (4, 4) 에멈추지못하고더많은거리를주행하였다. 5. 실험실제주행테스트를위해 50cm 간격으로맵을구성하였다. 로봇의초기위치는시뮬레이션과동일하게 (0, 0) 에위치하며, 노약자의위치는 (4, 4) 근처에존재한다. 따라서로봇은노약자가 (4, 4) 근처에존재하므로 (2, 2) 에있는장애물을회피하며최종목적지인 (4, 4) 에도착한다. 그림 17과그림 18은실시간기반에서와비실시간기반에서의실험결과이다. 실시간기반인그림 17에서는장애물을회피하며주어진궤적을따라최종목표에도달하는것을볼수있지만, 비실시간기반인그림 18에서는주어진궤적을벗어나주행함으로써장애물과충돌하고최종목표보다더많은거리를움직여노약자와충돌위험이발생하는모습을보였다. 주행실험을통하여얻은모터의엔코더값을이용하여이동로봇의실제주행궤적을그림 19에나타내었다. Xenomai 의경우 Command 와유사한궤적을그리며주행했지만, 비실시간기반인리눅스의경우태스크주기성의오차때문에 Command 를많이벗어난궤적으로움직였다.
1042 고 재 환, 양 길 진, 최 병 욱 [1] [2] [3] 그림17. 실시간 시스템에서 모바일 로봇의 주행 실험. Fig. 17. The driving experiment of the mobile robot at the real-time system. [4] [5] [6] [7] [8] 그림18. 비실시간 시스템에서 모바일 로봇의 주행실험. Fig. 18. The driving experiment of the mobile robot at the [9] non-real-time system. [10] [11] 그림19. 시스템에 따른 주행궤적 비교. Fig. 19. Driving trajectory comparison according to system. V. 결론 본 연구에서는 실시간 임베디드 리눅스 중 하나인 Xenomai를 지능형 모바일 로봇에 적용하여 비실시간 기반 지능형 모바일 로봇과 실시간 기반 지능형 모바일 로봇의 성능을 분석, 비교함으로써 실시간 시스템의 강점을 부각시 켰다. 그리고 응용 어플리케이션으로 노약자 지원 시스템을 개발함으로써, 실시간 기반 지능형 모바일 로봇의 적용 모 델의 예를 제시하였다. 이러한 연구 결과를 바탕으로 향후 [12] [13] REFERENCES B. W. Choi, D. G. Shin, J. H. Park, S. Y. Yi, and S. Gerald, Real-time control arhcitecture using xenomai for intelligent service robot in USN environment, Journal of Intelligent Service Robotics, vol. 2, no. 2, pp. 139-151, 2009. T. Bird, Comparing Two Approaches to Real-time Linux, www.linuxdevice.com, 2002. I. Ripoll, RTLinux versus RTAI, www.linuxdevice.com, 2002. K. Dankwardt, Comparing Real-time Linux Alternatives, www.linuxdevice.com 2002. W. S. Liu, Real-Time System, Prentice Hall, 2000. D. Abbout, Linux for Embedded and Real-time Applications, Elsevier, 2006. A. Barbalace, A. Lunchetta, G Manduchi, M. Moro, A. Soppelsa, and C. Taliercio, Performance Comparison of VxWorks, Linux, RTAI and XENOMAI in a Hard Real-time Application, Proc. of Real-Time Conference 2007 15th IEEE-NPSS, pp. 1-5, May 2007. J. H, Koh and B. W. Choi, Real-time performance of real-time mechanisms for RTAI and xenomai in various running conditions, Internal Journal of Control and Automation, vol. 6, no. 2, pp. 139-151, 2013. P. E. Hart, N. J. Nilsson, and B. Raphael, A formal basis for the heuristic determination of minimum cost paths, IEEE Transactions on Systems Science and Cybernetics, pp. 100-107, 1968. G. Lee, J. Kim, and Y. Choi, Convolution-based trajectory generation methods using physical system limits, J. Dynamic Systems, Measurement, and Control, ASME, vol. 135, pp. 1-8, 2013. G. J. Yang and B. W. Choi, Joint space trajectory planning considering physical limits for two-wheeled mobile robots, Journal of Institute of Control, Robotics and Systems (in Korean), vol. 19, no. 6, pp. 540-546, Jun. 2013. K. G. Jolly, R. S. Kumar, and R. Vijayakumar, A bezier curve based path planning in a multi-agent robot soccer system without violating the acceleration limits, Robotics and Automation Systems, vol. 57, pp. 23-33, Jan. 2009. anykode, Marilou Robotics Studio www.anykode.com 고재환 제어 로봇 시스템학회 논문지 제18권 제4호 참조. 양길진 제어 로봇 시스템학회 논문지 제19권 제6호 참조. 다양한 지능형 모바일 로봇에 실시간 임베디드 리눅스를 적용시킨다면 시스템의 성능 및 신뢰도 향상을 기대할 수 있을 것이다. 최병욱 제어 로봇 시스템학회 논문지 제19권 제6호 참조.