미래 시장을 선도할 핵심 분야로 지능형 서비스 로봇을 꼽을 수 있으며, 지능형 서비스 로봇은 인간과 공존하면서 육체적, 정신적, 감성적으로 인간을 보조하는 로봇이다. 지능형 서비스 로봇은 인간과 밀접한 관계를 맺으며 동작하기 때문에 지능형 서비스 로봇이 제공하는 핵심 서비스의 안정적인 수행은 로봇 사용자의 안전을 보장하기 위한 필수적인 고려사항이다. 이러한 안전성을 위해서는 정해진 시간마다 주기적으로 핵심 서비스를 수행시키는 실시간성이 필수 불가결한 요소이다. 현재 많은 로봇 컴포넌트들이 개발의 편의성을 위해 범용 운영체제인 윈도우를 사용하지만, 윈도우는 실시간성을 지원하지 않는 문제점이 있으며 실시간성 제공을 위해 RTX나 INtime과 같은 고가의 써드파티를 별도로 설치하여 사용해야 한다. 또한 로봇 컴포넌트는 유저 레벨에서 동작하기 때문에 유저영역에서 실시간성을 제공할 수 있는 방법에 대한 연구가 필요하다. 본 논문에서는 범용 운영체제 윈도우의 커널 레벨에서 실시간성을 제공하는 RTiK을 이용하여 유저 레벨에서 동작하는 함수를 주기적으로 동작시키는 방법을 설계 및 구현하였다.
미래 시장을 선도할 핵심 분야로 지능형 서비스 로봇을 꼽을 수 있으며, 지능형 서비스 로봇은 인간과 공존하면서 육체적, 정신적, 감성적으로 인간을 보조하는 로봇이다. 지능형 서비스 로봇은 인간과 밀접한 관계를 맺으며 동작하기 때문에 지능형 서비스 로봇이 제공하는 핵심 서비스의 안정적인 수행은 로봇 사용자의 안전을 보장하기 위한 필수적인 고려사항이다. 이러한 안전성을 위해서는 정해진 시간마다 주기적으로 핵심 서비스를 수행시키는 실시간성이 필수 불가결한 요소이다. 현재 많은 로봇 컴포넌트들이 개발의 편의성을 위해 범용 운영체제인 윈도우를 사용하지만, 윈도우는 실시간성을 지원하지 않는 문제점이 있으며 실시간성 제공을 위해 RTX나 INtime과 같은 고가의 써드파티를 별도로 설치하여 사용해야 한다. 또한 로봇 컴포넌트는 유저 레벨에서 동작하기 때문에 유저영역에서 실시간성을 제공할 수 있는 방법에 대한 연구가 필요하다. 본 논문에서는 범용 운영체제 윈도우의 커널 레벨에서 실시간성을 제공하는 RTiK을 이용하여 유저 레벨에서 동작하는 함수를 주기적으로 동작시키는 방법을 설계 및 구현하였다.
Intelligent service robots leading the future market are robots which assist humans physically, mentally, and emotionally. Since intelligent service robots operate in a tightly coupled manner with humans, their safe operation should be an inevitable consideration. For this safety, real-time capabili...
Intelligent service robots leading the future market are robots which assist humans physically, mentally, and emotionally. Since intelligent service robots operate in a tightly coupled manner with humans, their safe operation should be an inevitable consideration. For this safety, real-time capabilities are necessary to execute certain services periodically. Currently, most robot components are being developed based on Windows for the sake of development convenience. However, since Windows does not support real-time, there is no option but to use expensive third-party software such as RTX and INTime. Also since most robot components are usually execute in user-level, we need to research how to support real-time in user-level. In this paper, we design and implement how to support real-time for components running in user-level on Windows using RTiK which actually supports real-time in kernel level on Windows.
Intelligent service robots leading the future market are robots which assist humans physically, mentally, and emotionally. Since intelligent service robots operate in a tightly coupled manner with humans, their safe operation should be an inevitable consideration. For this safety, real-time capabilities are necessary to execute certain services periodically. Currently, most robot components are being developed based on Windows for the sake of development convenience. However, since Windows does not support real-time, there is no option but to use expensive third-party software such as RTX and INTime. Also since most robot components are usually execute in user-level, we need to research how to support real-time in user-level. In this paper, we design and implement how to support real-time for components running in user-level on Windows using RTiK which actually supports real-time in kernel level on Windows.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
본 논문에서는 x86기반 윈도우의 커널 레벨에서만 실시간성을 지원하는 기존 RTiK의 내부를 수정하여, 윈도우 유저 레벨에서 사용자가 정의한 함수를 동작시키는 방법을 설계 및 구현 하였다. 이를 통해 윈도우 유저 레벨에서 동작하는 로봇 컴포넌트 쓰레드에 실시간성을 지원함으로써 정확한 주기에 로봇 컴포넌트가 동작하게 하여, 기존의 값 비싼 써드파티 운영체제를 대신하여 로봇 미들웨어에게 실시간성을 지원하는 방법을 연구하였다.
본 논문에서는 현재 상용화되어 사용되고 있는 로봇들과의 호환성을 유지하면서, 유저 레벨에서 동작하는 로봇 컴포넌트에 실시간성을 지원하기 위해 커널 레벨에서만 동작하는 RTiK을 이용하여 윈도우 유저 레벨에서 동작하는 함수를 호출 하는 방법을 설계 및 구현하였다.
제안 방법
[표 7]은 이벤트 기반 RTiK과 RTX를 위의 실험환경과 동일한 조건 실험하여 비교한 표이다. 각각 1ms주기로 설정 하고 오실로스코프를 통하여 결과를 측정하였다.
실험 방법은 유저 레벨에서 1ms의 주기를 가지는 실시간 쓰레드를 생성하여, 주기별 시간을 측정하였다. 또한 현재 로봇 컴포넌트를 실행시키는 실행엔진이 사용 하는 큐 타이머와의 비교를 위해, 동일한 조건에서 큐 타이머를 실험하였다. 이때 윈도우에서 동작하고 있는 다른 쓰레드가 있을 경우에 대한 시간을 측정하기 위하여 무한으로 while문을 수행하는 프로세스를 생성하여 시간을 측정하였다.
또한, 기존 써드파티 운영체제인 RTX와의 성능비교를 위하여 RTX와 이벤트 기반 RTiK을 비교하였다. [표 7]은 이벤트 기반 RTiK과 RTX를 위의 실험환경과 동일한 조건 실험하여 비교한 표이다.
또한, 실시간 쓰레드는 윈도우에서 동작하고 있는 유저 레벨의 다른 쓰레드들보다 먼저 수행되어야 하기 때문에 쓰레드의 우선순위를 변경하였다.
실험 방법은 유저 레벨에서 1ms의 주기를 가지는 실시간 쓰레드를 생성하여, 주기별 시간을 측정하였다. 또한 현재 로봇 컴포넌트를 실행시키는 실행엔진이 사용 하는 큐 타이머와의 비교를 위해, 동일한 조건에서 큐 타이머를 실험하였다.
이때 윈도우에서 동작하고 있는 다른 쓰레드가 있을 경우에 대한 시간을 측정하기 위하여 무한으로 while문을 수행하는 프로세스를 생성하여 시간을 측정하였다. 실험결과의 정확성을 위해 매 주기마다 I/O포트에 신호를 출력하며 오실로스코프를 이용해 측정하였다.
또한 현재 로봇 컴포넌트를 실행시키는 실행엔진이 사용 하는 큐 타이머와의 비교를 위해, 동일한 조건에서 큐 타이머를 실험하였다. 이때 윈도우에서 동작하고 있는 다른 쓰레드가 있을 경우에 대한 시간을 측정하기 위하여 무한으로 while문을 수행하는 프로세스를 생성하여 시간을 측정하였다. 실험결과의 정확성을 위해 매 주기마다 I/O포트에 신호를 출력하며 오실로스코프를 이용해 측정하였다.
하지만, 윈도우 커널 레벨의 쓰레드만 접근 가능하다는 문제점이 있다. 이러한 문제점을 해결하기 위해 윈도우 커널 레벨에서만 동작하는 RTiK을 윈도우 유저 레벨의 로봇 컴포넌트를 실행하는 실시간 쓰레드에게 신호를 보내도록 수정하여, 유저 레벨에서 실시간 쓰레드가 주기적인 동작을 할 수 있게 하였다. 또한 실시간 쓰레드의 우선순위를 높여, 다른 윈도우 쓰레드 보다 먼저 수행시킴으로써 유저 레벨에서 로봇 컴포넌트에게 실시간성을 지원할 수 있다.
본 논문에서는 x86기반 윈도우의 커널 레벨에서만 실시간성을 지원하는 기존 RTiK의 내부를 수정하여, 윈도우 유저 레벨에서 사용자가 정의한 함수를 동작시키는 방법을 설계 및 구현 하였다. 이를 통해 윈도우 유저 레벨에서 동작하는 로봇 컴포넌트 쓰레드에 실시간성을 지원함으로써 정확한 주기에 로봇 컴포넌트가 동작하게 하여, 기존의 값 비싼 써드파티 운영체제를 대신하여 로봇 미들웨어에게 실시간성을 지원하는 방법을 연구하였다.
커널 레벨에서 동작하는 이벤트 기반 RTiK 타이머를 유저 레벨에서 쉽게 접근할 수 있게 하기 위하여 이벤트 기반 RTiK 내부의 DeviceIOControl루틴에서 특정한 루틴을 작성하고 유저 레벨에서 IOCTL 코드를 통하여 특정한 루틴을 호출하는 방식으로 API를 구현하였다[23-26].
이벤트 기반 RTiK이 윈도우 운영체제에 정상적으로 이식되어 유저 레벨의 실시간 쓰레드가 주기적으로 동작함을 검증하기 위해 구성한 실험 환경은 [그림 6]과 같다. 호스트 컴퓨터와 타겟 컴퓨터에 실시간 이식 커널을 이식하고, 정상적인 동작을 확인하기 위해 [표 4]와 같은 환경의 호스트 컴퓨터와 타켓 컴퓨터를 시리얼포트로 연결하여 이벤트 기반 RTiK을 디버깅 및 모니터링 하였다.
후속연구
향후 연구과제로는 이벤트 기반 RTiK이 사용할 수 있는 여러 가지 스케줄링 기법에 대한 연구가 필요하다.
질의응답
핵심어
질문
논문에서 추출한 답변
윈도우가 실시간성을 지원하지 못하는 이유는 무엇인가?
지능형 로봇은 간호 로봇, 청소 로봇, 교육용 로봇, 길안내 로봇 등이 있으며, 이러한 로봇들은 인간과 밀접한 관계를 맺으며 동작하기 때문에 언제 일어날지 모르는 상황에 대해 빠른 대처를 해야 한다[1]. 하지만, 현재 로봇 컴포넌트들은 개발의 편리성을 위해 범용 운영체제인 윈도우의 유저 레벨에서 개발하는 추세이며, 윈도우는 굶주림 현상(Starvation)을 방지하기 위해 런 타임 우선순위 값을 두어 스케줄링을 하므로 실시간성을 지원하지 못한다. 윈도우의 실시간성 지원을 위해서 써드파티 운영체제를 별도로 설치하여 사용해야 하며, 써드파티(Third-Party) 운영체제를 사용할 경우 고가의 구입비 및 유지 보수비 등을 지불해야 하는 문제점이 있다.
기존 RTiK가 유저 레벨의 로봇 컴포넌트에게 실시간성을 지원할 수 없는 이유는 무엇인가?
윈도우의 실시간성 지원을 위해서 써드파티 운영체제를 별도로 설치하여 사용해야 하며, 써드파티(Third-Party) 운영체제를 사용할 경우 고가의 구입비 및 유지 보수비 등을 지불해야 하는 문제점이 있다. 그리고 기존 RTiK(Real-Time implanted Kernel)의 경우 윈도우의 커널 레벨에서만 실시간성을 지원하는 문제점 때문에 유저 레벨의 로봇 컴포넌트에게 실시간성을 지원할 수 없다[13].
로봇 미들웨어의 문제점은 무엇인가?
현재 상용화된 외국의 로봇 미들웨어로는 OROCOS(Open Robot Control Software), MSRS(MicroSoft Robotic Studio), MIRO(Mi cro-Mid dleware for Mobile Robot Application)등이 있으며, 국내에서는 OPRoS(Open Platform for Robotic Service)라는 로봇미들웨어가 개발 중이다. 이러한 미들웨어는 실시간 운영체제 상에서만 실시간성을 지원하는 문제점이 있다[4-9].
참고문헌 (26)
D. Yu, H. Lin, R. Guo, J. Yang, and P. Xiao, "Research on real-time middleware for open architecture controller," Embedded and Rea l-Time Computing Systems and Applications, 2005. Proceddings. 11th IEEE International Conference on, pp.80-83, 2005(8).
http://www.intervalzero.com
http://www.tenasys.com
http://www.orocos.org
H. Bruyninckx, P. Soetens, and B. Koninckx, "The Real-Time Motion Control Core of the Orocos Project," IEEE International Conference on Robotics & Automation, Vol.2, pp. 2766-2771, 2003.
H. Bruyninckx, "Open Robot Control Software: the OROCOS project," IEEE International Conference on Robotics & Automation, Vol.3, pp.2523-2528, 2001.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.