Download
latest Releases : 2.0.0-RELESE
2.0.0-RELESE | Download page |
Number of Projects
RT-Component | 153.5 |
RT-Middleware | 35 |
Tools | 22 |
Documentation | 2 |
Choreonoid
Motion editor/Dynamics simulator
OpenHRP3
Dynamics simulator
OpenRTP
Integrated Development Platform
AIST RTC collection
RT-Components collection by AIST
TORK
Tokyo Opensource Robotics Association
DAQ-Middleware
Middleware for DAQ (Data Aquisition) by KEK
ARTLinux용 실행 컨텍스트
ARTLinux상에서 OpenRTM-aist-0.4.0으로 작성한 RT컴포넌트를 리얼타임으로 실행하기 위한 방법을 설명합니다. OpenRTM-aist에서는 loadable module로서 작성한 실행 컨텍스트(ExecutionContext)을 동적으로 로드해, 컴포넌트에 바인드 하는 것으로 RT컴포넌트의 동작을 제어할 수 있습니다.
개요
OpenRTM-aist-0.2.0에서는 ARTLinux를 사용해 RT컴포넌트를 리얼타임화하는 방법으로서 이하와 같은 방법이 일시적으로 사용되고 있었습니다.OpenRTM-aist-0.4.0에서는 컴포넌트의 실행 주체(≒스렛드)는 ExecutionContext라고 하는 명시적으로 분리된 오브젝트가 되고 있어 상기와 같은 방법에서는 리얼타임화할 수 없습니다.
순서로서는, 이하와 같이 됩니다.ARTLinux용 ExecutionContext 공유 라이브러리의 작성
어카이브(archive)의 다운로드
이하의 링크로부터 ARTExecutionContext의 소스를 다운로드합니다.
빌드
파일을 적당한 디렉토리에 압축을 해제해 빌드합니다. 부속의 Makefile는/usr/lib/art_syscalls.o가 존재하는 것으로서 기술되고 있습니다. art_syscalls.o가 다른 장소에 있는 경우는 Makefile를 수정해 주십시오.
*Comp.cpp의 수정
작성 끝난 컴포넌트의 *Comp.cpp 의 앞부분을 변경합니다.
컴포넌트의 재컴파일
컴포넌트를 재컴파일 합니다.
rtc.conf의 수정
rtc.conf에 이하와 같이(1)(4)를 추가합니다.
컴포넌트의 실행
ArtExecutionContext.so 의 복사
위에서 작성한 ARTExecutionContext.so를 컴포넌트 실행 디렉토리에 복사합니다.
실행
컴포넌트를 실행합니다.
샘플
여기에서는, ArtExecutionContext를 이용한 간단한 샘플을 소개합니다.(栗原 제공)
rtc-template의 실행
rtc-template에서 컴포넌트의 모형을 생성합니다.
이하와 같이 gen.sh와 같은 파일을 생성하면, 재차 모형을 생성할 때에 편리합니다.
헤더 파일의 편집
art_ec_test.h의 onExecute(), onDeactivate() 의 주석을 해제합니다.
소스 파일의 편집
이번은 onExecute() 내에서 gettimeodda()에서 취득한 시간을 파일에 쓰는 컴포넌트를 작성합니다.
[art_ec_test.cpp]
*Comp 파일의 편집
art_ec_testComp.cpp의 main() 함수내의manager->setModuleInitProc(MyModuleInit);의 위에 이하의 1행을 추가합니다.
컴포넌트의 실행
ART용 ExecutionContext?를 이용하기 위해서는 ARTExecutionContext?.so가 컴포넌트 실행 디렉토리에 존재해야 합니다.
이하의 방법으로 컴포넌트를 실행 후, Activate, DeActivate를 실시하면 cycle.log라고 하는 파일이 생깁니다.
주기 데이터
아래는 위의 컴포넌트에서 계측한 매주기의 차분 시간의 데이터입니다.
표시되고 있는 값은 마이크로 세컨드입니다.
이와 같이, ARTLinux를 이용해 기존의 컴포넌트를 리얼타임화할 수 있습니다.