html5jロボット部

html5jロボット部の活動レポート、ロボットに関する情報発信(気づく限り)を行うブログです。

RTミドルウェアの講習会を受けてきたので復習(2)

昨日に続いて、AdventCalendar4日目はRTミドルウェア講習会の復習です。

RTミドルウエアとRTコンポーネントの関係について

まずはここにつまづくのだがRTミドルウエアとRTコンポーネントとは具体的には どういうものなんだろう。

デバイス制御や、制御アルゴリズム、アプリケーションなどロジック箱(フレームワーク)に入れたもの、 これをRTコンポーネント(RTC)と言います。

そしてRTCの実行環境(OSのようなもの)としてRTミドルウェアがあるという訳です。

RTコンポーネントの主な機能

ここは後日追記します。 

RTCの分割と連携

ここは後日追記します。

(モジュール)情報の隠蔽と公開のルールが重要

RTミドルウエアによる分散システム

例えば以下のような条件でネットワーク上に分散しているとします。

  • ロボットA:RTCを2つ利用したRTM、OSはSolaris
  • ロボットB:RTCを2つ利用したRTM、OSはFreeBSD
  • ロボットC:RTCを3つ利用したRTM、OSはARTLinux
  • アプリケーション:RTCを2つ利用したRTM、OSはLinux
  • 操作デバイス:RTCを2つ利用したRTM、OSはWindows
  • センサ:RTCを2つ利用したRTM、OSはTRON

こうした条件でもRTMにより、 ネットワーク上に分散するRTCを OS・言語の壁を越えて接続することができ、 また、RTC同士の接続は、プログラム実行中に動的に行うことが出来ます。

RTMの国際標準化

このRTM、RTCは日本で一人歩きしているわけではありません。 以下の流れでOMG RTCの標準化されています。

  • 2005年9月:RFP: Robot Technology Components (RTCs) 公開。
  • 2006年2月:Initial Response : PIM and PSM for RTComponent を執筆し提出。提案者:AIST(日)、RTI(米)
  • 2006年4月:両者の提案を統合した仕様を提案
  • 2006年9月:ABにて承認、事実上の国際標準獲得 FTFが組織され最終文書化開始
  • 2007年8月:FTFの最後の投票が終了
  • 2007年9月:ABにてFTFの結果を報告、承認
  • 2008年4月:OMG RTC標準仕様 ver.1.0公式リリース
  • 2010年1月:OpenRTM-aist-1.0リリース
  • 2012年9月:ver. 1.1改定
  • 2014年12月:FSM4RTC(FSM型RTCとデータポート標準) Beta1

OMG RTC ファミリについて

表にするのが大変なので後日追記します。

応用例

RTMは以下のような応用例があります。

研究用プラットフォーム

  • HRP-2(川田工業)
  • HRP-4(川田工業)
  • HIRO(川田工業)
  • ビュートローバーRTC/RTC-BT(VSTONE)
  • OROCHI(アールティ)

その他

RT-Middleware関連プロジェクトとRTミドルウエアの広がり

ここは面倒なので後日追記します。

知見について

RTMのウェブサイトには以下のコンテンツがあるので一度見てみることをお勧めします。

  • プロジェクトページ:ユーザが自分の作品を登録することができ、他のユーザの作った RTCを探すことができます。
  • ハードウエア集:OpenRTMで利用可能なハードウエアのリストで、ハードウエアを利用するために利用できるコンポーネントがリスト化されています。
  • NEDO RTコンポーネント集:NEDO知能化PJ成果物の特別ページを設置しています(ツール/作業知能モジュール/移動知能モジュール/対話知能モジュール /商用ライセンスモジュール)。

イベントについて

またRTMは以下のイベントをやったりしています。

  • サマーキャンプ
  • RTミドルウエアコンテスト

AISTからの提言

最後に以下のことをAISTは提言しています。

自前主義はやめよう!!

  • 書きたてのコードより、いろいろな人に何万回も実行されたコードの ほうが動くコードである!!
  • 自分にとって本質的でない部分は任せて、本当にやりたい部分・やる べき部分のコードを書こう!!
  • 誰かがリリースしたプログラムは一度は動いたことがあるプログラム である!!
  • 人のコードを読むのが面倒だからと捨ててしまうのはもったいない! !

オープンソースにコミットしよう!!

  • 臆せずMLやフォーラムで質問しよう!!
  • どんなに初歩的な質問でも他の人にとっては価値ある情報である。 – 要望を積極的にあげよう!!
  • できればデバッグしてパッチを送ろう!

という訳で次回は実際のRTMに触った部分を書きますが、 Advent Calendarの当番は12/7以降になるので、その日まで^ ^

RTミドルウェアの講習会を受けてきたので復習(1)

12/2は国際ロボット展の初日でしたが、 この日産総研にてRTミドルウェアの講習会がありましたので参加してきました。

その復習&備忘録を含めてAdventCalendarの3日目、4日目はこれをテーマにすることにしました。

RT-ミドルウェアとは

RT-ミドルウェア (RTM)とは、RT要素のインテグレーションのためのミドルウエアのことで、 RTはRobot Technologyの略になります。RTは具体的には、単体のロボットだけでなく、さまざまなロボット技術に基づく機能要素 (センサ、アクチュエータ, 制御スキーム、アルゴリズム、 etc....)も含んでいます。

このRT-ミドルウェアにおけるソフトウエアの基本単位をRT-Component (RTC)と言います。 ここでもRTCということになります。

これからのWebエンジニアはRTCという言葉に出会ったとき - webRTC - RealTime Clock - RT-Component の3つの可能性があるということに気をつけてくださいw

さてなぜこの概念が必要かというと従来のシステムでは、 例えばジョイスティックでロボットのアームを動かしたい時、ジョイスティック側のソフトウェアとアーム側のコントロールのソフトウェアが必要です。

しかし、現実的にはロボットはたくさんありインターフェースは色々で、互換性が無ければつながりません。 ですのでRTミドルウエアというもので別々に作られたソフトウエアモジュール同士を繋ぐための共通インターフェース をつくることで ソフトウェアの汎用性、再利用性の向上し、システム構築が容易になるという思想のもとにつくられています。

モジュール化のメリットとRTコンポーネント化のメリット

モジュール化のメリットは以下のとおりです。

  • 再利用性の向上:同じコンポーネントをいろいろなシステムに使いまわせる
  • 選択肢の多様化:同じ機能を持つ複数のモジュールを試すことができる
  • 柔軟性の向上:モジュール接続構成かえるだけで様々なシステムを構築 できる
  • 信頼性の向上:モジュール単位でテスト可能なため信頼性が向上する
  • 堅牢性の向上:システムがモジュールで分割されているので、一つの問 題が全体に波及しにくい

また、それに加えてコンポーネント化すると以下のメリットが生まれます。

  • ソフトウエアパターンを提供:ロボットに特有のソフトウエアパターンを提供することで、体系的なシステム構築が可能
  • フレームワークの提供:フレームワークが提供されているので、コアのロジックに 集中できる
  • 分散ミドルウエア:ロボット体内LANやネットワークロボットなど、分散システ ムを容易に構築可能

モジュール化によっていろんな問題が解決!

モジュール化によってどのような問題が解決されるでしょうか?

モジュール化により、再利用可能になるのでロボットの開発が低コスト化され「コストの問題」の解決されます。
次に、システム開発者にとって常にコンポーネント化された最新の理論・ アルゴリズムといった最新技術を利用可能することができるので「技術の問題」の解決されます。 そして、これらはカスタマイズが容易なので多様なユーザによる多様なニーズに対応できるという「ニーズの問題」が解決されます。

こういった問題を解決することでロボットシステムインテグレーションによるイノベーションが可能になるのです。

長くなったので、続きはまた明日。

gortについて調べてみた

JavaScript for Robotics or Hardwareの初日担当ということで記事を書きます。

qiita.com

今回はGortというRobotOps(OpsはOperationの略で「運用」という意味)のコマンドラインツール についてちょっとだけ触れてみます。

続きを読む

Sotaに直接ログインしてみた。【Intel Edison版】

ロボットのAdvent Calrendar初日ということで何をやろうか考えましたが、 何も思い浮かばず、、、

というわけでちょうどSotaに直接ログインする機会があったので
その内容を最初の記事としたいと思います。

続きを読む

COCOROBOアプリコンテストにノミネートしました【投票お願いします!】

シャープ株式会社により開催されているCOCOROBOアプリコンテストに html5jロボット部が応募して、なんとノミネート(入賞)されました!

f:id:j_s_machine:20151120170607p:plain

現在みなさまからの優秀作品の投票中ですが、 今回応募した作品はCOCOROBO×Palmi「COCOROBOとテレパシー」というアプリです。

続きを読む

AIコミュニケーションロボット「Musio」の発表会に参加しました

f:id:j_s_machine:20151119064006j:plain

11/18に東京21cクラブ(新丸ビル)で人工知能コミュニケーションロボット「Musio」の発表会に参加しました。 Musio(ミュージオ)は機械学習自然言語処理を行うテクノロジー企業「AKA」により開発されまして、 「MUSE」というAIエンジンが搭載されています。

以前にIndiegogoでクラウドファンディングしていました。ちなみに私もこちらでポチっています。

続きを読む

PalmiのVisual Studioの開発環境を公開

本日より DMM.make ROBOTSのラインナップ「Palmi」の開発環境で Visual Studio版が公開されたのでさっそく使ってみました。

そのレビューを以下、書いてみました。

続きを読む