현재 OMG에서는 로봇 개발의 효율을 높이는 Robot Technology Component(이하 RTC)의 사양 책정을 하고 있습니다. 이 RTC 사양을 실장 및 적용한 공통 플랫폼으로서 독립 행정법인 산업기술 종합 연구소·지능 시스템 연구부문·태스크 인텔리젼스 연구 그룹에서는 OpenRTM-aist를 제공하고 있습니다. RT System Editor 는 이 OpenRTM-aist에 포함되는 개발툴의 하나이며, RTC를 리얼타임에 그래피컬 조작하는 기능을 가지고 있습니다.또, 그 이름대로 Eclipse 통합 개발 환경의 플러그 인으로서 작성되고 있어 Eclipse상에서 기존의 플러그 인과 무결절적으로 조작을 실시할 수 있습니다.
여기에서는, OpenRTM-aist RT System Editor (이하 RT System Editor)의 화면 예를 나타냅니다.
RT System Editor 는 RTC 를 리얼타임에 그래피컬하게 조작하는 기능을 가지고 있습니다. 제공되는 기능의 일람은 이하입니다.
№ | 기능 명칭 | 기능 개요 |
1 | 컴포넌트 configuration 표시/편집 기능 | 선택한 컴퍼넌트의 컨피그레이션 프로파일 정보를 컨피그레이션 뷰에 표시해 편집한다. |
2 | 컴포넌트 동작 변경 기능 | 선택한 컴포넌트의 동작을 변경한다. |
3 | RT시스템 조립 기능 | 시스템 에디터상에서 시스템의 조립을 실시한다. |
4 | 시스템 세이브/오픈 기능 | 시스템 에디터의 내용을 RTS 프로파일로서 세이브한다. RTS 프로파일을 시스템 에디터로 오픈한다. 시스템의 포토 접속, configuration를 변경하지 않는다) |
5 | 시스템 복원 기능 | RTS 프로파일을 시스템 에디터에 오픈해, 프로파일의 내용을 바탕으로 시스템을 복원한다.(프로파일의 내용으로 시스템의 포토 접속, configuration를 재구축 한다) |
RT System Editor 의 동작에 필요한 환경은 이하 입니다.
№ | 환경 | 비고 |
1 | Java Development Kit 6 | 주의:Java1.5(5.0)에서는 동작하지 않습니다. |
2 | Eclipse 3.2.1 | Eclipse 본체 |
3 | Eclipse EMF 2.2.4 EMF+SDO Runtime 및 XSD Runtime | RT System Editor 가 의존하는 Eclipse 플러그 인 |
4 | Eclipse GEF 3.2.2 | RT System Editor 가 의존하는 Eclipse 플러그 인 |
5 | Eclipse Java development tools(JDT) | ※사용하시는 Eclipse의 버전에 맞춰 사용하십시오. |
6 | RT Name Service View | RT System Editor가 의존하는 OpenRTM-aist에 포함되는 개발툴 |
7 | RT Repository View | RT System Editor가 의존하는 OpenRTM-aist에 포함되는 개발툴 |
RT System Editor 는, OpenRTM-aist 를 대상으로 개발된 것입니다. 그 외의 RTC 플랫폼에 대한 조작은 상정하고 있지 않습니다.
인스톨 후, Eclipse 를 처음으로 기동하면, 이하와 같은 페이지가 표시됩니다.
이 Welcome 페이지를 좌측 상단의 「X」를 클릭해 닫으면 이하의 페이지가 표시됩니다.
우측 상단의 「 Open Perspective 」버튼을 클릭, 풀다운의 「 Other… 」버튼을 클릭합니다.
「 RT System Editor 」를 선택하는 것으로, RT System Editor 가 기동합니다.
RT System Editor 에서는, 이하와 같은 뷰를 사용합니다.
№ | 뷰 이름 | 설명 |
1 | 네임 서비스 뷰 | RTC가 등록되어 있는 네임 서비스의 내용을 트리로 표시합니다. |
2 | 컨피그레이션 뷰 | 선택되고 있는 RTC의 configuration 정보를 표시/편집합니다. |
3 | 매니저 컨트롤 뷰 | 선택되고 있는 매니저를 제어합니다. |
4 | 복합 컴포넌트 뷰 | 선택되고 있는 복합 RTC의 포트 공개 정보를 표시/설정합니다. |
5 | 프로퍼티 뷰 | 선택되고 있는 RTC의 프로파일 정보를 표시합니다. |
6 | 시스템 에디터 | RTC를 그래피컬하게 표시해 RT시스템을 작성합니다. |
7 | 오프 라인 시스템 에디터 | RT리포지터리(repository)나 로컬의 RT컴퍼넌트 사양 파일의 내용을 그래피컬하게 표시해 RT시스템을 작성합니다. |
이 후의 페이지에서는 각 뷰에 대해 각각 설명합니다. 표시 루트를 이동하려면 , 이동하는 앞을 선택해, 「다음에 점프」로 이동합니다.
네임 서비스 뷰는 RTC를 리얼타임으로 그래피컬하게 조작하는 기능을 가지고 있습니다. 제공되는 기능의 일람은 이하와 같습니다.
No. | 기능 명칭 | 기능 개요 |
1 | 네임 서버 접속/편집 기능 | 네임 서버에 접속해 등록되어 있는 컴퍼넌트를 네임 서비스 뷰에 트리 형식에서 표시한다. |
2 | 컴퍼넌트 프로파일 표시 기능 | 선택한 컴퍼넌트의 프로파일 정보를 프로퍼티뷰에 표시한다. |
메뉴로부터[Window]-[Show View]-[Name Service View]를 선택하면, 네임 서비스 뷰가 표시됩니다.
네임 서버에 접속하려면 , 네임 서비스 뷰의 상부에 존재하는 버튼을 클릭하거나, context menu에서 「Add Name Server」를 선택합니다.
네임 서버 접속 다이얼로그에서는, IP주소 및 포트 번호를 입력합니다.(포트 번호가 생략 되었을 경우에는 설정 화면에서 설정된 포트 번호가 사용됩니다. 디폴트의 포트 번호는 2809번 포트입니다)
접속하고 있는 네임 서버를 화면에서 삭제하려면 , 네임 서버를 선택해 「Delete from View」를 실행합니다.
접속한 네임 서버에 컴퍼넌트가 등록되어 있으면, 이하와 같이 등록 내용이 트리 형식에서 표시됩니다.
각 아이콘의 의미는 이하와 같습니다.
아이콘 | 종류(KIND) | 이름 | |
1 | host_cxt | 호스트 컨텍스트 | |
2 | mgr_cxt | 매니저 컨텍스트 | |
3 | cate_cxt | 카테고리 컨텍스트 | |
4 | mod_cxt | 모듈 컨텍스트 | |
5 | 상기 이외 | 폴더(상기 이외의 컨텍스트) | |
6 | 없음 | RTC | |
7 | 없음 | 매니저 | |
8 | 없음 | 오브젝트(RTC 이외의 오브젝트) | |
9 | 없음 | 네임 서버에 엔트리 되고는 있지만, 실체의 오브젝트에 액세스 할 수 없는 좀비 오브젝트 |
네임 서비스 뷰는 접속처의 각 네임 서버를 항상 감시해, 표시의 동기·갱신을 실시하고 있습니다.(감시의 주기는, 설정 화면의[[접속 주기:]]에 변경할 수 있습니다). 또, 명시적으로 네임 서버의 내용을 재취득하는 경우에는 리프레쉬를 할 수 있습니다. 리프레쉬를 실시하려면 , 네임 서비스 뷰의 상부에 존재하는 버튼을 클릭 하거나 context menu에서 「Refresh」을 선택합니다.
네임 서비스 뷰에서는 RTC의 수가 많아지는 것에 의해서 조작하는 범위가 번잡화하는 것을 막기 위해서, 표시 루트의 위치를 이동하는 기능이 있습니다.
표시 루트를 이동하려면 , 이동할 곳의 앞 선택해, 「Go Into」로 이동합니다.
이동 후는, 「Go Back」로 1 계층 위로 올라갈 수 있습니다. 또, 「Go Home」로 최상위의 계층으로 돌아옵니다.
네임 서비스 뷰에서는 RTC의 수가 많아지는 것에 의해서 조작하는 범위가 번잡화하는 것을 막기 위한 또 하나의 방법으로서 필터링(표시하는 엔트리의 종류를 한정) 하는 기능이 있습니다.
필터링을 실시하려면 네임 서비스 뷰의 상부에 존재하는 「Name Serviceview Filter」버튼을 클릭합니다.
「필터를 설정」다이얼로그에서는, 비표시로 하는 엔트리의 종류를, 「뷰로부터 제외하는 엘리먼트를 선택」란으로부터 선택합니다.
네임 서비스 뷰의 표시로부터 제외하고 싶은 요소에 체크를 하면, 네임 서비스 뷰에 표시되지 않게 됩니다.
「Naming object name」를 유효하게 하면, 오브젝트명의 조건에 일치하는 것이 비표시가 됩니다.
오브젝트명의 조건은 앞부분 일치와 부분 일치를 선택할 수 있습니다.
네임 서비 스뷰에서는, 네임 서비스의 네이밍 오브젝트의 엔트리를 삭제할 수 있습니다. 네이밍 오브젝트를 삭제하려면, 오른쪽 마우스 버튼을 클릭해 컨텍스트 메뉴에서 「Delete from Name Service」를 클릭합니다.
네임 서비스 뷰에서 네임 서비스에 오브젝트의 엔트리를 등록할 수 있습니다.
오브젝트를 등록하려면 오브젝트를 추가하고 싶은 컨텍스트 및 오브젝트의 컨텍스트 메뉴에서 「Add Object」를 클릭합니다.
네임 서비스 뷰로, 네임 서비스에 컨텍스트의 엔트리를 등록할 수 있습니다.
컨텍스트을 등록하려면 , 컨텍스트를 추가하고 싶은 컨텍스트를 마우스 오른쪽 버튼을 클릭해 컨텍스트 메뉴에서 「Add Context」를 클릭합니다.
「Add Context」다이얼로그에서는, 문맥의 이름(name), 종류(kind)를 지정합니다.
종류(kind)에는 이하의 몇개의 값을 선택합니다.
종류(KIND) | 이름 | |
1 | host_cxt | 호스트 컨텍스트 |
2 | mgr_cxt | 매니저 컨텍스트 |
3 | cate_cxt | 카테고리 컨텍스트 |
4 | mod_cxt | 모듈 컨텍스트 |
5 | 상기 이외를 입력 | 폴더(상기 이외의 컨텍스트) |
네임 서비스 뷰에는, 좀비 오브젝트를 일괄해 삭제하는 기능이 있습니다. 좀비 오브젝트를 모두 삭제하려면, 네임 서비스 뷰의 상부에 존재하는 버튼을 클릭합니다.
여기에서는, 컨피그레이션 뷰에 대해 설명합니다.
컨피그레이션 뷰에서는, 선택된 RTC의 configuration를 표시/편집할 수 있습니다. 좌측으로 CofigurationSet의 리스트가 표시되어 우측으로 ConfigurationSet내의 프로퍼티가 표시됩니다.
No. | 설명 |
① | 선택되고 있는 컴포넌트명. |
② | 선택되고 있는 ConfigurationSet명. |
③ | 액티브하게 되어 있는 ConfigurationSet. 또, 액티브한 ConfigurationSet를 변경할 수 있다. |
④ | ConfigurationSet의 리스트. |
⑤ | 좌측에서 선택되고 있는 ConfigurationSet의 프로퍼티의 이름. |
⑥ | 좌측에서 선택되고 있는 ConfigurationSet의 프로퍼티의 값. |
⑦ | ConfigurationSet를 추가/삭제하는 버튼. |
⑧ | 프로퍼티를 추가/삭제하는 버튼. |
⑨ | 설정치의 편집 다이얼로그를 여는 버튼, 및 변경 내용을 적용/캔슬하는 버튼. |
컨피그레이션 뷰로 편집중의 정보는, ⑨의 적용 버튼이 클릭될 때까지 적용되지 않습니다. 또, 수정중(미적용)의 정보는 붉게 표시됩니다.
configuration의 설정치를 편집하려면 ⑨의 「Edit Value」버튼을 클릭해, 편집용의 다이얼로그를 열고 편집을 실시합니다.
복수의 ConfigurationSet가 있는 경우는, 다이얼로그 상부의 탭(⑩)으로 편집 대상을 변환가능합니다.
configuration의 각 파라미터에는 편집용의 widget를 지정할 수 있어 ConfigurationSet에 widget 종별이 정의되고 있으면, 지정의 widget으로 파라미터를 편집할 수 있습니다(⑪). widget 종별에는 슬라이더, 스피나, 및 라디오 버튼이 있어 widget 종별의 지정이 없는 경우는 디폴트로 텍스트 박스를 사용합니다.
또, 각 파라미터에는 제약 조건을 지정할 수 있어 widget 종별이 슬라이더, 스핀의 경우는 제약 조건의 지정이 필수가 됩니다. 해당의 widget 종별이 정의되고 있고, 제약 조건이 지정되어 있지 않은 경우는 디폴트인 텍스트 박스가 됩니다.
widget 종별 | 이미지 | 설명 |
슬라이더 | 제약 조건으로 지정된 최소치, 최대치의 범위를 슬라이더로 선택합니다. 텍스트 박스에의 입력도 가능합니다. | |
스피나 | 제약 조건으로 지정된 최소치, 최대치의 범위를 스피나에서 선택합니다. 소수의 정도는 제약 조건의 최소치, 최대치의 기술에 준거합니다. 다만, 음수의 지정은 할 수 없습니다. 예) 최대치가 「10.00」의 경우는 소수 2자리수 | |
라디오 버튼 | 라디오 버튼으로 값을 선택합니다. | |
텍스트 박스 | 통상의 텍스트 입력으로 설정합니다. |
각 파라미터에 제약 조건이 지정되어 있으면 입력치에 대해서 제약 조건의 체크를 하고 조건을 채우지 않는 경우는 폼을 빨강으로 표시합니다. 또, 「OK」버튼으로 편집 확정시로 변경이 있던 ConfigurationSet의 모든 파라미터에 대해서 제약 조건 체크를 실시해, 제약 조건을 채우지 않는 파라미터가 있었을 때에는 에러 다이얼로그를 표시합니다.
configuration 편집 다이얼로그의 「Apply」체크 박스(⑫)를 체크해 「OK」버튼을 클릭하면, 변경이 있던 ConfigurationSet에 대해서 편집 내용의 적용을 합니다.(⑨와 같이)
컨피그레이션 뷰에 표시되는 정보는 RTC 선택시에 최신의 정보를 캐쉬해 표시하고 있습니다(configuration의 편집에 대비하기 위해). 이 때문에, 언제까지나 같은 RTC를 계속 선택하면 시스템과의 정보차이가 발생합니다. RT System Editor는 편집의 적용시에, 이 차이를 의식하는 일 없이 편집중의 정보를 토대로 완전하게 덧쓰기하기 때문에 주의해 주십시오.
또, RTC의 사양상에서는 프로퍼티의 Value에 모든 오브젝트 등록이 가능하지만 RT System Editor로부터 등록/편집할 수 있는 것은 문자열만됩니다.
여기에서는 매니저컨트롤 뷰에 대해 설명합니다.
네임서비스뷰에서 매니저를 선택하면, 매니저컨트롤 뷰가 액티브 되어, 선택된 매니저를 제어할 수 있게 됩니다.
No. | 설명 |
① | 로드 가능 모듈 일람표시 버튼. |
② | 로드가 끝난 모듈 일람표시 버튼. |
③ | 컴포넌트 일람표시 버튼. |
④ | 컴포넌트 생성 버튼. 컴포넌트 작성 다이얼로그를 열어 새롭게 컴포넌트를 생성합니다. 생성된 컴포넌트는 ③의 컴포넌트 일람표시로 표시됩니다. |
⑤ | 매니저 복제 버튼. 새로운 매니저를 기동합니다. |
⑥ | 매니저 종료 버튼. 선택중의 매니저를 종료합니다. |
⑦ | 모듈 및 컴포넌트의 일람을 표시하는 테이블. |
⑧ | 모듈을 URL 지정으로 로드하는 경우에 URL를 지정합니다. |
⑨ | 모듈의 로드, 언로드 버튼. ⑦의 테이블로 선택중의 모듈, 혹은 URL로 지정한 모듈을 로드, 언로드합니다. |
매니저에 모듈을 로드하려면 「Loadable Modules」버튼을 클릭해 표시된 로드 가능 모듈을 선택하면, 「Load」버튼이 유효하게 되어, 클릭하면 모듈이 로드 됩니다.
또, 「URL:」의 텍스트 박스에 모듈의 URL를 입력해 「Load」버튼을 클릭하는 것으로써, URL 지정으로 모듈을 추가할 수도 있습니다.
모듈을 언로드하려면 「Loaded Modules」버튼을 클릭해, 표시된 로드가 끝난 모듈을 선택하면, 「Unload」버튼이 유효하게 되어, 클릭하면 모듈이 언로드됩니다.
새롭게 컴포넌트를 생성하려면 「Create」버튼을 클릭하고 컴포넌트 생성 다이얼로그를 열어 생성하는 컴포넌트의 종별을 선택해, 「OK」를 클릭하면 컴포넌트가 생성됩니다.
생성된 컴포넌트는 매니저에 의해서 네임 서비스에 등록되어 「Active Components」버튼으로 표시되는 컴포넌트 일람에 표시되게 됩니다.
컴포넌트의 종별은 매니저에 로드된 모듈로 정의되고 있는 컴포넌트로부터 선택합니다.
Parameter에는 컴포넌트 생성 파라미터를 지정할 수 있어 「param1=value1¶m2=value2」의 형식에서 기술합니다. 이하의 공통 파라미터는 모든 컴포넌트로 설정 가능합니다.
파라미터명 | 설명 |
instance_name | 컴포넌트의 인스턴스명. 지정하지 않는 경우 컴포넌트 종별(type_name)로 통번을 부여 |
type_name | 컴포넌트의 종별 |
description | 컴포넌트의 설명 |
version | 컴포넌트의 버전 |
vendor | 컴포넌트의 제공원 |
category | 컴포넌트의 카테고리 |
또, 컴포넌트 생성 파라미터로 ConfigurationSet의 값도 지정할 수 있습니다. ConfigurationSet의 파라미터는 「conf.NNNN.PPPP=VVVV」의 형식으로 NNNN에는 ConfigurationSet명, PPPP에는 파라미터명, VVVV에는 설정치를 각각 지정합니다.
예로서 ConsoleIn의 컴포넌트를 생성해, mode1라는 이름의 ConfigurationSet를 작성해 input_mode, input_cycle이라고 하는 파라미터를 지정하는 경우는 이하와 같이 됩니다.
그 외에도, 컴포넌트에 의해서 임의의 파라미터를 지정할 수 있습니다.
여기에서는 복합 컴포넌트 뷰에 대해 설명합니다.
복합 컴포넌트 뷰에서는, 선택된 복합 RTC의 포토 공개 정보가 표시되어 포토의 공개/비공개를 설정할 수 있습니다.
No. | 설명 |
① | 복합 RTC의 인스턴스명. |
② | 복합 RTC의 타입명. |
③ | 포트의 공개/비공개 상태. |
④ | 복합 RTC에 포함되는 자식(子) RTC의 인스턴스명. |
⑤ | 복합 RTC에 포함되는 자식(子) RTC의 포트명. |
⑥ | 포트의 공개/비공개의 변경을 반영시킵니다. |
⑦ | 포트의 공개/비공개의 변경을 캔슬합니다. |
복합 컴포넌트 뷰에서 편집 중의 정보는, ⑥의 적용 버튼이 눌러지기 전까지는 적용되지 않습니다. 또, 수정 중(미적용)의 정보는 옅은 적색으로 표시됩니다. 또, 시스템 에디터상에서 선택한 포트는 옅은 황색으로 표시됩니다.
복합 컴포넌트의 포트가 다른 컴포넌트의 포트와 접속되고 있는 경우는, 복합 컴포넌트 뷰로 해당의 포트가 회색으로 표시되고 편집 불가가 됩니다.
여기에서는 프로퍼티 뷰에 대해 설명합니다.
프로퍼티 뷰에서는, System Dialog 로 선택된 RTC나 커넥터의 프로파일 정보를 리얼타임로 표시합니다.( RTC 의 선택중에서 변경이 검출되면 즉석에서 반영됩니다)
표시되는 아이콘의 의미는 이하와 같습니다.
No. | 아이콘 | 이름 | 표시 내용 |
1 | RTC | InstanceName, TypeName, Description, Vender, Category, State(※1번째의 ExecutionContext의 LifeCycleState를 기본으로 해 표시된다) | |
2 | ExecutionContext | State, Kind, Rate | |
3 | ServicePort | Name, 프로퍼티 정보의 리스트 | |
4 | Outport | Name, 프로퍼티 정보의 리스트 | |
5 | Inport | Name, 프로퍼티 정보의 리스트 | |
6 | PortInterfaceProfile | InterfaceName, TypeName, PortInterfacePolarity | |
7 | 매니저 | Components (생성한 컴포넌트명의 리스트) Loadable Modules (로드 가능한 모듈명의 리스트) Loaded Modules (로드 끝난 모듈명의 리스트) |
덧붙여 RTC의 사양에서는, RTC의 LifeCycleState는 ExecutionContext 마다 존재합니다. 즉 상태는 복수 존재하지만 RT Name Service View에서는 1번째의 ExecutionContext만을 사용해 STATE를 표시합니다.
여기에서는, 시스템 에디터의 개요에 대해 설명합니다.
시스템 에디터에서는, RTC 상태가 리얼타임으로 표시됩니다. 또 포트간의 접속이나, RTC 상태를 변경하는 것으로 시스템 구축, 동작 검증을 실시할 수 있습니다.
새로운 시스템 에디터를 열려면, 툴바의 「Open New System Editor」버튼을 누르거나 도구모음의 [file]-[Open New System Editor] 를 선택합니다.
RTC를 시스템 에디터에 배치하려면, 네임서비스뷰로부터 RTC를 드래그&드롭 합니다.
여기에서는, RTC 상태를 변경하는 방법을 설명합니다.
시스템 다이어그램에서는 RTC를 선택해, 「Activate」, 「Deactivate」, 「Reset」, 「Finalize」, 「Exit」, 「Start」, 「Stop」를 실행할 수 있습니다. 또, 네임서비스뷰에서도와 같이 실행할 수 있습니다.
이러한 액션의 의미는 이하와 같습니다. 실행되는 곳에 주의해주십시오.
No. | 액션명 | 실행되는 곳 | 의미 |
1 | Activate | 선택된 RTC 와 그 1번째의 ExecutionContext 에 대해서 실행 | Activate 를 요구한다 |
2 | Deactivate | 〃 | Deactivate 를 요구한다 |
3 | Reset | 〃 | Reset 를 요구한다 |
4 | Finalize | 선택된 RTC에 대해서 실행 | Finalize 를 요구한다 |
5 | Exit | 〃 | Exit 를 요구한다 |
6 | Start | 선택된 RTC 의 1번째의 ExecutionContext 에 대해서 실행 | Start 를 요구한다 |
7 | Stop | 〃 | Activate 를 요구한다 |
또, 간단하고 쉽게 시스템을 조작하기 위한 기능으로서 시스템 에디터에 포함되는 모든 RTC는 Activate, Deactivate, Start, Stop으로의 변경을 툴바와 컨텍스트 메뉴에서도 가능합니다.
시스템 에디터에서는 RTC 의 포트와 포트를 연결할 수 있습니다.
포트와 포트를 연결하려면 , 포트와 포트를 드래그&드롭으로 연결합니다.
드래그&드롭 종료후, 접속에 필요한 정보를 입력하는 다이얼로그가 표시됩니다.
이 다이얼로그에서는 ConnectorProfile을 작성합니다. ConnectorProfile는 각각의 포트가 필요로 하는 조건이 만족하도록 작성될 필요가 있습니다만, 이 다이얼로그는 필요한 조건을 만족하는 값만이 입력되도록 풀다운으로 선택합니다. 필요한 조건에 만족하지 않는 연결인 경우, 드래그&드롭의 접속시에 금지 마크가 표시되어 연결을 할 수 없습니다.
포트와 포트의 연결은 크게 데이터포트 끼리의 연결과 서비스 포트 간의 연결로 나누어집니다. 자세한 내용은 시스템 에디터(포트와 포트의 연결 편) 을 참조하십시오.
포트와 포트의 연결을 끊으려면, 연결선을 선택해 Delete 버튼을 누르거나 컨텍스트 메뉴에 표시되는 Delete 를 클릭합니다.
포트의 연결을 모두 끊으려면, 포트를 선택하고, 오른쪽 클릭해 「All Disconnect」를 실행합니다.
복합 컴포넌트의 조작을 설명합니다.
복수의 컴포넌트를 정리해 복합 컴포넌트로 할 수 있습니다.
복합 컴포넌트로 하고 싶은 컴포넌트를 선택하고, 오른쪽 클릭해 「Create Composite Component」를 선택하면, 복합 컴포넌트 생성 다이얼로그가 표시됩니다.
다이얼로그의 각 항목은 이하와 같습니다.
No. | 다이얼로그 설명 | 설명 |
① | Manager | 네임서비스뷰에 표시되고 있는 매니저 일람으로부터 매니저를 선택합니다. 여기서 선택된 매니저가 복합 컴포넌트를 생성합니다. |
② | Name | 복합 컴포넌트의 인스턴스명을 지정합니다. |
③ | Type | 복합 컴포넌트의 종별을 지정합니다. 지정 가능한 종별은 이하대로. [PeriodicECShared] 각 RTC가 ExecutionContext만을 공유하는 형태로 동작합니다. 각 RTC 상태는 독립하고 있기 때문에, 복합 컴포넌트내에서 복수 상태가 존재하기도 합니다. [PeriodicStateShared] 각 RTC가 동일한 ExecutionContext를 공유하는 것과 동시에, 상태도 공유하는 형태로 동작합니다. [Grouping] 각 RTC가 아무것도 공유하지 않는 복합 컴포넌트로, 각 RTC가 각각 ExecutionContext, 상태를 보관 유지합니다. |
④ | Path | 복합 컴포넌트로 설정하는 패스를 지정합니다. |
⑤ | Port | 자식(子)컴포넌트의 포트 일람으로부터, 복합 컴포넌트에 표시하는 포트를 선택합니다. 여기서 선택된 포트에 대해서, 복합 컴포넌트에 프록시용의 포트가 작성됩니다. |
⑥ | - | 포트의 전체선택·전체해제 버튼 |
복합 컴포넌트를 작성하면, 자식(子)의 컴포넌트로서 선택하고 있던 컴포넌트는 시스템 에디터상으로부터 표시가 사라져 새로운 복합 컴포넌트가 그려집니다.
복합 컴포넌트의 다이어그램을 더블 클릭 하거나 마우스 오른쪽 버튼을 클릭해 「Open With System Diagram Editor」를 선택하면, 새로운 시스템 다이어그램이 열려, 복합 컴포넌트 내부가 표시됩니다.
※
단, 시스템 구성의 저장시에는, 컴포넌트의 묘화 정보는 컴포넌트에 대해서 1개 밖에 보존할 수 없기 때문에, 복합 컴포넌트내를 표시하는 시스템 다이어그램으로 변경한 묘화 정보는 보존되지 않습니다.
복합 컴포넌트내를 표시하는 시스템 에디터를 열고 네임서비스뷰로부터 RTC를 드러그&드롭 하는 것으로 복합 컴포넌트의 자식이(子) 추가됩니다. 추가된 자식(子)RTC의 포토는 모두 비공개로 설정됩니다.
복합 컴포넌트내를 표시하는 시스템 에디터를 열고, 거기서 자식(子) 컴포넌트를 삭제하는 것으로 복합 컴포넌트의 자식(子)가 삭제됩니다.
삭제된 자식(子) 컴포넌트는, 복합 컴포넌트내로부터 표시가 사라져 원 시스템 다이어그램(복합 컴포넌트 자신이 표시되고 있는 다이어그램)에 표시됩니다.
복합 컴포넌트상에서 오른쪽 마우스 버튼을 클릭해 「Delete」를 선택하면, 복합 컴포넌트가 다이어그램으로부터 삭제됩니다.
삭제시에 복합 컴포넌트가 다른 시스템 다이어그램에 열려 있으면, 에디터의 종료 확인의 다이얼로그가 표시됩니다.
복합 컴포넌트상에서 오른쪽 마우스 버튼을 클릭해 「Decompose Composite Component」를 선택하면, 복합 컴포넌트에 exist()가 보내져 컴포넌트 자체를 종료합니다.
해제시에 복합 컴포넌트가 다른 시스템 다이어그램으로 열려 있으면, 에디터의 종료 확인의 다이얼로그가 표시됩니다.
복합 컴포넌트가 해제되면, 자식(子) 컴포넌트가 원래의 시스템 다이어그램(복합 컴포넌트가 표시되고 있던 다이어그램)에 표시됩니다.
복합 컴포넌트내를 표시하는 시스템 에디터에 있는 컴포넌트의 포트가 복합 컴포넌트상에 공개되고 있는 경우, 아래와 같이 다른 아이콘으로 표시됩니다.
No. | 이름 | 형상 |
1 | InPort | |
2 | OutPort | |
3 | ServicePort |
공개되고 있는 포트에서 오른쪽 마우스를 클릭하고, 「Unexport」를 선택하면, 그 포트가 공개되어 있지 않은 상태로 바뀝니다.또, 공개되어 있지 않은 포트에서 오른쪽 마우스를 클릭하고, 「Export」를 선택하면, 그 포트는 공개 상태로 바뀝니다.
단, 포트가 다른 컴포넌트의 포트와 접속되고 있는 경우는, 「Unexport」 할 수 없습니다.
시스템에디터의 저장과 옵션에 대해서 설명합니다.
시스템 에디터는 저장할 수 있습니다. 저장하려면 , 메뉴의 [File] 혹은 에디터를 오른쪽 클릭해 「 Save… 」를 선택합니다.( 「 Save As… 」에서는, 저장하는 파일을 임의 선택할 수 있습니다)
시스템의 저장을 선택하면, 프로파일 정보 다이얼로그가 열려, 필요한 항목을 설정해 「OK」를 클릭하면, 시스템의 정보가 파일에 저장됩니다.
이름 | 형상 |
Vendor | 벤더명. RT시스템의 식별자를 구성하는 요소. 필수 항목. |
System Name | 시스템명. RT시스템의 식별자를 구성하는 요소. 필수 항목. |
Version | 시스템의 버젼. RT시스템의 식별자를 구성하는 요소. 필수 항목. |
Path | 시스템을 저장하는 파일명. 필수 항목. |
Update Log | 버전의 보충 설명등을 기술. |
Required | RT시스템을 동작시키는데 필수의 RTC에 체크를 붙인다. |
저장한 시스템 에디터를 오픈하려면 , 에디터에서 마우스 오른쪽 버튼을 클릭해 「 Open 」를 선택합니다.
오픈 후 RT System Editor 는 리모트의 시스템을 토대로 최신의 정보로 갱신을 실시합니다. 저장 내용을 시스템에 복원하려면, 다음의 절에서 설명하는 「 Open and Restore… 」를 사용해 주세요
저장한 시스템 에디터를 오픈 및 복원하려면, 에디터에서 마우스 오르쪽 버튼을 클릭해 「Open and Restore...」, 혹은 「Open and Quick Restore...」를 선택합니다.
또한 RTSystemEditor는 에러 발생시라도, 할 수 있는 한 복원을 시도합니다.
RTC의 표시와 RTC의 그림편집의 조작을 설명합니다.
시스템에디터에 배치된 RTC는 직사각형으로 표시되어 포트는 그 직사각형의 주위에 표시됩니다. 또, 각각의 상태가 색으로 표현됩니다.
아이콘과 상태색의 이람은 다음과 같습니다.
No. | 이 름 | 형 태 | 상 태 | 디폴트 색(※) | |
1 | RTC | CREATED | White | ||
INACTIVE | Blue | ||||
ACTIVE | Light Green | ||||
ERROR | Red | ||||
UNKNOWN | Black | ||||
2 | Execution Context (1번째 만) |
(RTC 직사각형의 외부선) | RUNNING | Gray | |
STOPPED | Black | ||||
3 | InPort | 미접속 | Blue | ||
연결됨(1개 이상) | Light Green | ||||
4 | OutPort | 미접속 | Blue | ||
연결됨(1개 이상) | Light Green | ||||
5 | ServicePort | 미접속 | Light Blue | ||
연결됨(1개 이상) | Cyan |
※각상태의 색은 설정화면의 표시색에서 변경할 수 있습니다.
또한 시스템에디터는 RTC의 상태를 감시해 리어라임으로 상태를 표시합니다.(감시의 주기는 설정화면의 접속주기에서 변경할 수 있습니다.)
여기에서는 RTC의 그림편집에 대해 설명합니다.(「편집」이 아니고「그림편집」이라고 굳이 하고 있는 이유는 여기서 설명되는 작업은 그림의 편집으로 시스템에 대한 영향은 전혀 없기 때문입니다.)
또, 선택된 RTC의 위치와 크기가 상태바에 표시됩니다.
데이터 포트의 연결으로 「 InPort 」와「 OutPort 」를 연결합니다. 이러한 포트 사이를 드래그&드롭으로 연결하면 이하의 다이얼로그가 표시됩니다.
다이얼로그의 항목과 조건은 이하와 같습니다.
№ | 다이얼로그 항목명 | ConnectorProfile | 필요 조건 |
① | Name | name | 특별히 없음 |
② | Data Type | properties “dataport.data_type” | 이 커넥터로 접속하고 있는 데이터 포트 사이에 송수신 하는 데이터형을 지정합니다. 각각의 포트에서 서로 송수신 가능한 데이터형으로부터 선택합니다. 다만, Any를 포함한 경우는 상대 포트의 어떠한 값도 허용합니다. |
③ | Instance Type | properties “dataport.interface_type” | RT시스템 설계자가 상정하거나 RTC가 동작하는 RT미들웨어 상에서 지원되는 인터페이스 종별을 지정합니다. 각각의 포트로 서에서 지원하고 있는 인터페이스 종별로부터 선택합니다. 다만, Any를 포함한 경우는 상대 포트의 어떠한 인터페이스도 허용합니다. |
④ | Dataflow Type | properties “dataport.dataflow_type” | RT시스템 설계자가 상정하거나 RTC가 동작하는 RT미들웨어 상에서 지원되는 데이터 플로우형을 지정합니다. 각각의 포트로 서에서 지원하고 있는 데이터 플로우형으로부터 선택합니다. 다만, Any를 포함한 경우는 상대 포트의 어떠한 데이터 플로우도 허용합니다. |
⑤ | Subscription Type | properties “dataport.subscription_type” | [Dataflow Type의 값이 Push 일 때에 필요한 조건] RT시스템 설계자가 상정하거나 RTC가 동작하는 RT미들웨어 상에서 지원되는 서브 스크립션 종별을 지정합니다. 각각의 포트에서 서로 지원하는 서브 스크립션 종별로부터 선택합니다. 다만, Any를 포함한 경우는 상대의 어떠한 서브 스크립션 종별도 허용합니다. |
⑥ | Push Rate(Hz) | properties “dataport.push_interval” | [Dataflow Type의 값이”Push”이고 또한 Subscription Type이 ”Periodic”일 때에 필요한 조건] 서브 스크립션 종별이 「Periodic」인 경우에 데이터의 송신 주기를 지정합니다. 송신 주기는 정수치(소수가능)로 지정합니다. |
⑦ | Push Policy | properties “dataport.publisher.push_policy” | 데이터 송신 정책. [Dataflow Type의 값이 ”Push”이고 또한 Subscription Type이 ”Periodic”일 때에 필요한 조건]all、fifo、skip、new중에서 선택합니다. all:버퍼 내의 데이터를 일괄 송신 fifo:버퍼 내의 데이터를 FIFO으로 한개씩 송신 skip:버퍼 내의 데이터를 스킵해서 송신 new:버퍼 내의 데이터의 최신값을 송신(오래된 값은 버려집니다.) |
⑧ | Skip Count | properties "dataport.publisher.skip_count" | 송신 데이터 스킵수. [Push Policy의 값이”skip”일 때에 필요한 조건]버퍼 내의 데이터가 이 지정값으로 스킵되어 송신됩니다. |
⑨ | Buffer length | properties "buffer.length" | 버퍼의 길이 |
⑩ | Buffer full policy | properties "buffer.write.full_policy" | 버퍼에 데이터를 쓸 때, 버퍼가 풀일 경우 동작. overwrite, do_nothing, block중에서 선택합니다. overwrite:데이터를 덮어쓰기 합니다. do_nothing:아무것도 하지 않습니다. block:블록 합니다. block을 지정한 경우, 다음(⑪)에서 타임 아웃 값을 지정하고 지정시간 후 쓰기 불가능이 되어 타임 아웃 합니다. 디폴트는 overwrite(덮어쓰기)입니다. |
⑪ | Buffer write timeout | properties " buffer.write.timeout" | 버퍼에 데이터를 쓸 때, 타임 아웃 이벤트를 발생시킬 때까지의 시간.(단위:초) 디폴트는 1.0 [sec]입니다. 0.0을 지정한경우는 타임 아웃하지 않습니다. |
⑫ | Buffer empty policy | properties "buffer.read.empty_policy” | 버퍼에서 데이터를 읽을 때, 버퍼가 비어있는 경우에 동작. readblock、do_nothing、block중에서 선택합니다. readblock:마지막의 요소를 다시 읽습니다. do_nothing:아무것도 하지 않습니다. block:블록 합니다. block을 지정한 경우, 다음(⑬)의 타임 아웃값을 지정하고 지정시간후에 읽기 불가능이 되면 타임 아웃 합니다. 디폴트는 readback입니다. |
⑬ | Buffer read timeout | properties " buffer.read.timeout" | 버퍼에서 데이터를 읽을 때, 타임 아웃 이벤트를 발생시킬 때까지의 시간.(단위:초) 디폴트는 1.0 [sec]입니다. 0.0을 설정한 경우는 타임 아웃하지 않습니다. |
서비스 포트간의 연결에서는, 「ServicePort」와「ServicePort」를 접속합니다. 이러한 포트 사이를 드래그&드롭으로 연결하면 이하의 다이얼로그가 표시됩니다.
다이얼로그의 항목과 조건은 이하와 같습니다.
№ | 다이얼로그 항목명 | ConnectorProfile | 필요 조건 |
① | Name | Name | 특별히 없음 |
② | properties "rtc_iname" properties "port_name" properties "interfaces.if_iname" |
인터페이스 연결 대상의 서비스 포트에 복수의 서비스 인터페이스가 정의되어 있는 경우에 유효. 어떤 인터페이스를 연결할 것인지를 지정할 수 있습니다. |
서비스 포트의 경우, 필수가 되는 연결조건은 없습니다. 그러나 ServicePort사이에서의 PortInterfaceProfile가 완전하게 매칭(※1)하지 않는 경우, 연결 다이얼로그에서 경고를 표시합니다.
여기에서는, 오프 라인 시스템 에디터의 개요에 대해 설명합니다.
새로운 오프 라인 시스템 에디터를 열려면 툴바의 「Open New Offline System Editor」버튼을 누르거나, 도구모음의[file]-[ Open New Offline System Editor]를 선택합니다.
컴포넌트 사양을 오프 라인 시스템 에디터에 배치하려면, 리포지터리 뷰로부터 컴포넌트 사양을 드래그&드롭 합니다.
오프 라인 시스템 에디터에서는 시스템 에디터로 실시할 수 있는 것 가운데, 실행시 컴포넌트의 동작에 관한 일 이외의 대부분의 조작을 시스템 에디터와 같은 조작으로 실시할 수 있습니다.
여기에서는, RT System Editor 의 설정 화면에 대해 설명합니다. RT System Editor 의 설정 화면은, 메뉴의 [window]-[preferences…]-[RT System Editor] 로 표시할 수 있습니다.
접속 주기란, RT System Editor 가 시스템의 정보를 수집해 표시에 반영하는 주기입니다.
단위는 밀리 세컨드로, 0을 지정했을 경우에는 동기가 행해지지 않습니다.
표시색 설정 화면에서는, 시스템 에디터에서 표시되는 RTC와 ExecutionContext 상태의 색을 설정할 수 있습니다. 각각의 상태의 의미에 대해서는,시스템 에디터의 RTC의 표시를 봐 주세요.
접속 주기란, RT Name Service View가 시스템의 정보를 수집해 표시에 반영하는 주기입니다. 단위는 밀리 세컨드로, 0을 지정했을 경우에는, 동기가 행해지지 않습니다. 디폴트 포트 번호에는, Name Service포트 번호의 디폴트 값을 지정합니다.
타임 아웃 대기 시간은 시스템의 정보를 수집할 때, 시스템과의 접속이 확립되지 않는 경우에 대기하는 시간입니다(단위는 밀리 세컨드).
접속 주기와 동기 타임 아웃 대기 시간의 관계는 아래의 그림과 같이 됩니다.
(예. 접속 주기가 1000 ms, 동기 타임 아웃 대기 시간이 100 ms의 경우)
A. RT System Editor 는 항상 시스템의 정보를 수집하면서 표시를 동기 하고 있습니다. 이 시스템 정보를 수집할 때에, 동작하고 있지 않는 오브젝트의 레퍼런스에 액세스 하면 타임 아웃 대기를 일으켜 극단적으로 늦어지는 일이 있습니다. 동작하고 있지 않는 오브젝트가 발생했을 경우에는, 네임서비스뷰로부터 「 Delete from NameService 」를 실시하고 삭제합니다. 또 동작하고 있지 않는 오브젝트와 포트 접속하고 있는 오브젝트를, 네임 서비스 및 시스템 에디터로부터 삭제하면 퍼포먼스가 돌아오는 일이 있습니다.
Apache Jakarta Commons Lang Copyright 2001-2006 The Apache Software Foundation
This product includes software developed by The Apache Software Foundation.
Because RT System Editor is an Eclipse plugin, it first requires that Eclipse and the other Eclipse plugins it depends on be installed. See the installation instructions for details on how to do this. Then copy the RT System Editor jar file (jp.go.aist.rtm.X.X.X.jar) into the eclipse/plugins directory as described in that document.
The first time Eclipse is started after installing, the Welcome page will be displayed.
Click the cross in the top left of the Welcome page to close it and display the below screen.
Click the Open Perspective button in the top right and select Other...
Select RT System Editor to start the plugin.