OpenRTM-aist

OpenRTM-aist
開発者産業技術総合研究所
安定版リリース
1.2.1 / 2019年11月25日 ( 2019-11-25 )
書かれたC++JavaPython
プラットフォームWindowsLinuxmacOSVxWorksTOPPERSITRON)、QNX
タイプ図書館
ライセンスLGPL
Webサイトwww.openrtm.org

OpenRTM-aistは、 RTミドルウェア標準規格に基づいて開発されたソフトウェアプラットフォームです。[ 1 ] OpenRTM-aistは、産業技術総合研究所によって開発されており、同研究所はRTミドルウェア標準規格の策定にも貢献しています。

抽象的な

RTミドルウェアでは、アクチュエータセンサーといったロボット技術要素はすべてRTコンポーネント(RTC)として扱われます。各RTCは他のRTCと通信するためのポートを備えており、開発者は独自のロボット技術(RT)システムをRTCとして実装することができます。このように、RTミドルウェアは分散制御アーキテクチャとみなすことができます。[ 2 ]

RTミドルウェアは、本来プラットフォーム非依存モデル(PIM)です。このモデルの実装には、CORBAEnterprise JavaBean(EJB)、. NET Frameworkなどがあります。OpenRTM-aistはCORBA技術をベースとし、拡張RTC仕様を実装しています。OpenRTM-aistで得られた知見は、RTミドルウェアの標準化プロセスにフィードバックされます。

特徴

OpenRTM-aistは、RTCの拡張機能を実装しており、RTCの操作を支援するマネージャコンポーネントも含まれています。OpenRTM-aistのRTCは様々なプログラミング言語で実装でき、異なる言語でプログラミングされたRTC同士が通信することも可能です。また、産業技術総合研究所とその協力者によって、RTCの操作を容易にするツールも多数公開されています(厳密には、OpenRTM-aist自体はライブラリであり、これらのツールは含まれていません)。

RTコンポーネント

RTコンポーネントは、OMGが定めるRTコンポーネント仕様に準拠した機能単位です。OpenRTM-aistでは、RTCはデータポート、サービスポート、そしてRTCの状態を制御する実行コンテキストを持ちます。

ステートマシン

RTコンポーネントの標準規格では、RTCはCREATED、INACTIVE、ACTIVE、ERRORの4つの状態を持つ必要があります。状態が変化すると、RTCの状態マシンを管理する実行コンテキストによって、対応するイベントハンドラが呼び出されます。

例えば、RTCがアクティブになったとき(INACTIVE状態からACTIVE状態になったとき)に、「on_activated」コールバック関数が呼び出されます。on_activatedコールバックには初期化コードが実装されています。

一方、「on_deactivated」コールバック関数は、RTCが非アクティブ状態(ACTIVE状態からINACTIVE状態)になったときに呼び出されます。このコールバック関数には、終了処理のコードが実装されています。

"on_execute" は、RTC が ACTIVE 状態のときに定期的に呼び出されます。ここでは、制御関数やデバイス管理関数(例:ポーリング)が呼び出されます。

これらのコールバックは「実行コンテキスト」オブジェクトによって呼び出されます。RTCに特別な実行コンテキストがアタッチされている場合、呼び出しメソッドまたはポリシーが変更されます(実行コンテキストのセクションを参照)。

データポート

データポートは、他のRTCと通信するためのエンドポイントです。データポートにはタイプがあり、同じタイプのポート同士は接続可能です。

OpenRTM-aistでは、基本的なデータ型(「TimedLong」、「TimedDouble」など)が実装されています。さらに、OpenRTM-aistバージョン1.0からは、ロボットシステムで一般的に利用されることが予想される追加のデータ型(「TimedVelocity2D」、「TimedPose2D」など)がExtendedDataTypeとしてリリースされました[ 3 ] 。

開発者はIDLファイルを記述することで独自のデータ型を定義できます。ツールはIDLファイルを解析し、元のデータ型のスケルトンファイルとスタブファイルを自動生成します。

サービスポート

サービスポートはデータポートよりもはるかに柔軟な通信を可能にします。開発者はIDLファイルを作成してサービスポートインターフェースを定義する必要があります。

実行コンテキスト

実行コンテキストは、RTコンポーネントのステートマシン操作を司ります。OpenRTM-aistでは、いくつかの種類の実行コンテキストが提供されています。例えば、

  • 最も一般的に使用されるものの 1 つである定期的な実行コンテキストは、「on_execute」イベント ハンドラの定期的な呼び出しを提供します (センサーの取得またはアクチュエータの制御は通常、そこで実装されます)。
  • Linuxのプリエンプティブカーネル機能を利用したリアルタイム実行コンテキスト、RTCのリアルタイム動作をサポートする。[ 4 ]
  • 追加のトリガー実行コンテキストはOpenRTM-aistの重要な特徴です。OpenHRP -3などのダイナミクスシミュレータとの同期機能を提供します。

構成

設定は、実行時にRTCのパラメータを動的に変更する機能です。設定は数値または文字列で指定できます。

サポートされているオペレーティングシステム

OpenRTM-aistはWindowsLinuxmacOSで動作します。[ 5 ]さらに、VxWorksも試験的にサポートされています。[ 6 ]

サポートされているプログラミング言語

OpenRTM-aist はCORBAテクノロジーをベースとしているため、 C++JavaPythonErlang (非公式) などのさまざまなプログラミング言語をサポートしています。

ツール

RTCビルダー

RTCビルダー

RTC Builderは、Eclipse開発環境から起動するスケルトンコード生成ツールです。OpenRTM-aistは、コマンドライン型のスケルトンコード生成ツールであるRTC-templateもサポートしています。

RT システムエディター

RT システムエディター

RT システム エディターは、R​​TC を操作するためのツールです。RT システム エディターは以下のサービスを提供します。

  • RTCの状態を参照する
  • RTCのポート接続
  • RTC の設定
  • RTCの有効化/無効化/リセット
  • RTシステムを保存/復元する

rtshell

rtshellは以下のサービスを提供するコマンドラインツールである: [ 7 ]

  • RTCの状態を参照する
  • RTCのポート接続
  • RTC の設定
  • RTCの有効化/無効化/リセット
  • RTシステムを復元する
  • DataPortsのログ出力
  • データポートのログを再生する

RTCデバッガー

RTCデバッガーはRTC用のデバッグツールです。RTCデバッガーはEclipseプラグインです。[ 8 ]

ライセンス

OpenRTM-aist は、GNU Lesser General Public License (LGPL) に基づいてライセンスされています。

参照

参考文献

  1. ^ OpenRTM-aist 公式サイト、 http://www.openrtm.org
  2. ^ロボティクス技術コンポーネント仕様バージョン1.0、オブジェクト管理グループ(OMG)
  3. ^ 「OpenRTM-aist公式サイト: インターフェースガイドライン」 . 2011年4月23日閲覧
  4. ^産業技術総合研究所、プレスリリース、作業型ヒューマノイドロボット研究開発プラットフォーム「HRP-4」の開発、 http://www.aist.go.jp/aist_e/latest_research/2010/20101108/20101108.html
  5. ^ OpenRTM-aist 公式サイト -- サポートされているプラ​​ットフォーム、 http://www.openrtm.org/openrtm/en/content/supported-platforms-0
  6. ^池添昭博、中本裕之、永瀬正幸、「OpenRT Platform / RT-middleware for VxWorks」、ROBOMEC2010
  7. ^ OpenRTM-aist 公式サイト: [rtshell http://www.openrtm.org/openrtm/en/content/rtshell-download ]
  8. ^株式会社セック、[RTCデバッガhttp://www.sec.co.jp/robot/download_tool.html ]