ダウンロード
最新バージョン : 2.1.0-RELESE
| 2.1.0-RELESE | ダウンロードページ |
OpenRTM@Github
OpenRTM-aist GitHubサイト
ROS
Robot Operating System
Choreonoid
モーションエディタ/シミュレータ
DAQ-Middleware
ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク
産総研が提供するRTC集
東京オープンソースロボティクス協会
| 2.1.0-RELESE | ダウンロードページ |
OpenRTM-aist GitHubサイト
Robot Operating System
モーションエディタ/シミュレータ
ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク
産総研が提供するRTC集
東京オープンソースロボティクス協会
rtctree는 Python으로 RT컴포넌트를 관리하기 위한 라이브러리입니다.
개요
rtctree는 간단한 API로 RT컴포넌트의 관리를하기 위한 Python용 라이브러리입니다. 개발자는 CORBA의 API를 몰라도 다른 프로그램으로부터, RT컴포넌트의 시스템을 관리할 수 있습니다. 컴포넌트를 activate 하거나 deactivate 하거나 컴포넌트의 사이의 접속을 실시하는 것 등이 가능합니다.
이 소프트웨어는 NEDO (독립 행정법인 신 에너지·산업기술 종합 개발 기구)의 차세대 로봇 지능화 기술개발 프로젝트의 지원에 의해, 독립 행정법인 산업기술 종합 연구소에 의해서 개발되고 있습니다.
필요 조건
인스톨
인스톨은 몇가지의 방법이 있습니다.
환경 변수
이하의 환경 변수가 사용됩니다.
보통의 경우 RTCTREE_ORB_ARGS를 설정하는 것은 필요하지 않습니다. RTCTREE_NAMESERVERS를 설정하면, rtctree를 사용할 때에 더 편리합니다. 예를 들면, Bash 셸이라면:
RTC 트리
라이브러리의 주요 부분은 RTC 트리입니다.
트리내의 각 디렉토리는, 통상의 네이밍 컨텍스트 또는 네임 서버의 루트 컨텍스트입니다. 네임 서버의 루트 컨텍스트는 NameServer클래스에서 나타냅니다. 또, 네이밍 컨텍스트는 Directory클래스에서 매니저는Manager클래스에서 나타냅니다.
네임 서버는 루트 디렉토리로부터의 디렉토리로서 다루어집니다. 그 아래는 파일과 서브 디렉토리입니다. 서브 디렉토리는 루트 컨텍스트아래의 네이밍 컨텍스트 및 매니저를 나타냅니다.
파일은 컴포넌트와 매니저입니다. 컴포넌트는 Component클래스에서 보여집니다.
컴포넌트 오브젝트가 나타내고 있는 컴포넌트에 관한 다양한 정보를 저장합니다. 컴포넌트의 activate, deactivate 컴포넌트의 포트 관리, 연결, 구성을 설정할 수 있습니다.
매니저로 새로운 컴포넌트 인스턴스를 만들거나 컴포넌트를 지울 수 있습니다.
트리내의 모든 노드에도 그것들이 나타내는 오브젝트에는 CORBA 오브젝트의 참조를 저장합니다. 이 오브젝트에 액세스 하는 것으로 IDL의 메소드를 호출할 수 있습니다. 만약 현재 rtctree로 실현 불가능한 기능이 있었다 해도, 이 CORBA 오브젝트를 이용해 IDL 메소드를 직접적으로 호출할 수 있습니다.
트리의 구축
트리의 팩토리 함수의 인수(create_tree())는 트리를 구축하기 위한 해석 대상이 되는 네임 서버를 지정합니다. 자세한 것은 해당 함수의 문서를 참조해 주십시오. 일반적으로, 네임 서버의 주소 리스트 또는 패스의 리스트를 건네주어 트리를 구축할 수 있습니다. 환경 변수 RTCTREE_NAMESERVERS도 체크됩니다.
패스
트리내의 노드는 패스로 지정됩니다. 패스는 스트링의 리스트입니다. 하나 오른쪽의 레벨은 왼쪽의 것보다 1 레벨 깊어집니다. 절대 패스는 트리 오브젝트를 지정하기 위해서 필요합니다. 만약 패스가 노드 이하에 존재하는 경우, 노드로부터의 상대 패스 지정도 가능합니다.
이러한 패스 문자열은 파일 시스템 패스 지정과 비슷합니다. 트리의 루트는/로 나타냅니다.(Windows의 경우는\). 최초의 레벨은 네임 서버의 주소입니다. 그 아래의 레벨은 컴포넌트, 매니저 및 네이밍 컨텍스트(디렉토리로서 나타냄)입니다.parse_path라고 하는 함수는 문자열의 패스를 RTC 트리용의 패스로 변경합니다.
예를 들면, 이하의 패스:
헬퍼 함수
이하는 RTCTree 클래스 및 다양한 노드 클래스를 위한 헬퍼 함수입니다. 여기서 설명하는 것이 모든 API를 나타내고 있는 것은 아닙니다. Doxygen로 기술된 API의 문서를 참조해 주십시오. 예는 rtcshell의 소스를 참조해 주십시오.
API의 스타일
rtctree는 Python의 표준 스타일에 따릅니다. PEP8을 참조해 주세요.
가장 중요한 점은 Private한 내부 API 함수는 언더 바(「_」)로 시작되는 것입니다. 언더 바로 시작되는 함수는 클래스 외부로부터 증명해야 하는 것이 아닙니다. 만약 사용했을 경우에는 미정의된 행동을 일으킬 가능성이 있습니다. 언더 바로 시작되지 않고 docstring가 있는 함수만을 사용해 주십시오.
리포지터리
최신판의 소스는github로 Git의 리포지터리(repository)에 있습니다.「Download source」를 클릭해 다운로드 할 수 있습니다.「git clone」를 사용할 수도 있습니다. 패치를 보내고 싶다면, 이 방법을 추천합니다.
보다 상세한 문서와 샘플
보다 상세한 문서는 Doxygen로 기술된 문서를 참조해 주십시오.
샘플은rtcshell의 소스를 참조해 주십시오. 이것들은 RTSystemEditor로 실현 가능한 것을 rtctree로 실시하는 방법의 거의 모두를 보이고 있습니다.
Changelog
3.0
2.0