Skip to main content
Home >> Projects >> RT-Component >> RTミドルウエアの産業応用を目的としたエンジニアリングサンプル

RTミドルウエアの産業応用を目的としたエンジニアリングサンプル

RTミドルウエアの産業応用を目的としたエンジニアリングサンプル



問合先(メールアドレス): 
openrtm@design.mech.saitama-u.ac.jp

発表

  • 2013国際ロボット展NEDOブース展示作品「RTミドルウエアを用いたエンジニアリングサンプル」
  • SI2013&RTミドルウエアコンテスト2013応募作品「RTミドルウエアの産業応用を目的としたエンジニアリングサンプルの開発」

概要

  • RTミドルウエアの産業応用の可能性を評価するために,産業用ロボットで必要とされる基本的な動作を簡単に再現できるサンプル
  • カメラ機能とティーチング機能を利用し,産業用ロボットがベルトコンベア上を流れるワークに対しピック&プレースを行うシステム
  • RTミドルウエアの再利用性を活用したラピッドプロトタイピングのためのテンプレートとして利用可能

特徴

  • 実際の産業機器をRTミドルウエアで制御
  • 再利用性を高めるためのRTCカテゴライズ手法を開発&利用
  • ハードウエアは約51万円+6軸垂直多関節ロボットで構築
  • 可能なものはすべて無償&オープンソースで公開,他は入手先を明示
  • Choreonoidを使用することで,実機なしでエンジニアリングサンプルを体験可能

環境

コンポーネント群

【再利用RTC】

  • ACT_MELFA:三菱電機株式会社製産業用ロボット「MELFA RV-3SD」を制御(三菱電機株式会社製)
  • PartialEdgeComp:USBカメラで物体の部分的な曲線を検出し,その物体の図心位置(単位:pixel)を出力(株式会社東芝製)
  • PartialEdgeConsumerComp:PartialEdgeCompのテスト用(株式会社東芝製)

【新規開発RTC】

  • RobotOperationCommandRTC:ロボットアーム共通I/F中レベルコマンドと共通コマンドを送信
  • ChoreonoidRV3SDControllerRTC:Choreonoid上のRV-3SDを制御
  • ChoreonoidRV3SDRTC:Choreonoid上のRV-3SDのBodyRTCであり,RV-3SDの関節角度を入出力
  • DIOInterfaceModuleRTC:株式会社インタフェース製デジタルI/Oインタフェースモジュール「PCI-2826CV」を制御
  • TimedBooleanSeqOutRTC:コンフィギュレーション上で入力された10進数の数値を2進数に変換しTimedBooleanSeq形式で出力
  • CenteroidViewerRTC:PartialEdgeCompから入力された図心位置(単位:pixel)をコンソール上に表示
  • IntegratedControlRTC:システムの入力情報を統括し,ロボットへの指令値を出力

ダウンロード

本Webページ下部「View all releases」にて,2013国際ロボット展NEDOブースにて配布したCD-ROMと同様の内容を公開しております.
このzipファイルダウンロードURL(ver1.1.0,サイズ74.04MB)から,直接ダウンロードも可能です.
以下に,主な公開情報を示します.

【ドキュメント】

  • 必要なソフトウエア・ハードウエアの導入手順を示した「導入マニュアル」
  • 導入した環境を動作させるための操作手順を示した「操作マニュアル」
  • 全体のシステム構成から個々のハードウエア,ソフトウエア構成までを解説した「解説ドキュメント」
  • その他リーフレット,実機動作動画,解説スライド,ライセンスファイル等

【ソフトウエア】

  • 新規開発RTCのソースコード
  • 新規開発RTCのバイナリファイル
  • rtshellを用いたスクリプトファイル

また,本システムの概要を簡潔に説明したスライドと,SI2013にて使用した発表スライドを以下からダウンロードできます.

動画

本システムの動画を以下のURLでご覧いただけます.(2013年12月18日アップデート
埼玉大学設計工学研究室Webサイト >> アーカイブ >> 動画 >> RTミドルウエア

ライセンス(公開条件)

MITライセンスに基づき配布致します.
なお,参考としてMITライセンスの日本語訳を示します.
詳細は,ダウンロードしたフォルダ内のLICENSE.txtをご覧ください.

謝辞

本研究は,独立行政法人新エネルギー・産業技術総合開発機構「NEDOプロジェクトを核とした人材育成,産学連携等の総合的展開
国富を担うロボット共通基盤技術の社会普及に関する体系的研究・活動」の支援を受けて実施されました.
記して感謝の意を表します.

また,三菱電機株式会社 主席研究員 野田哲男様をはじめ三菱電機株式会社様には多大なるご協力を頂きました.
記して感謝の意を表します.

連絡先

E-Mail:openrtm@design.mech.saitama-u.ac.jp

埼玉大学 設計工学研究室
〒338-8570
埼玉県さいたま市桜区下大久保255
URL:埼玉大学設計工学研究室

Downloads



OS:  Windows
言語:  C++
OpenRTM ver.:  1.1
5
Your rating: None Average: 5 (1 vote)
更新履歴:2013/12/20

RTミドルウエアの産業応用を目的としたエンジニアリングサン

マニュアルが充実しているのが非常に良いと思いました。 産業分野への導入を後押しするアピールポイントがもっと明確であればよいと思いました。 実現された機能だけを見れば、従来の開発方法でも実現可能かと思いますが、 そうではなく敢えてRTMを使ってシステム開発をするメリットは具体的に何でしょうか? システム構築の容易性、デバッグの容易性、システム変更の柔軟性、開発日数・コストの削減などなど、 より具体的なメリットを多く示せれば、もっと産業界への売り込みがしやすいのではと感じました。

RTミドルウエアの産業応用を目的としたエンジニアリングサン

tmsimiz様

開発者の埼玉大学 高橋です.
コメントいただき誠にありがとうございます.

RTミドルウエアを使って産業用ロボットシステムを開発するメリットとしては,
・規格準拠によりソフトウエアの再利用性が高い
・自分では作れないような高度な知能化モジュールが使える
というRTミドルウエアの利点を活かし,高度な知能化システムを短時間で開発できるという点がございます.
これはRTミドルウエアやROBOSSAを使用するシステム共通の利点であり本エンジニアリングサンプル特有の利点ではないため,誤解を招かないようあまり詳細に触れませんでした.
しかしおっしゃる通り,具体的なメリットを多く示すことで産業界への売り込みがしやすくなりますため,今後解説ドキュメントなどにてRTミドルウエアを使用して開発することのメリットも示していきたいと考えております.

また,マニュアルに関しましても,分かりづらい点,追加してほしい情報などございましたら,教えていただければ幸いです.
以上,よろしくお願いいたします.

2進数への変換にpow(2.0,i)を使っていますが、非効

2進数への変換にpow(2.0,i)を使っていますが、非効率だと思います。

(1 << i) というシフト演算子を使えば、極めて高速に処理ができます。

したがって、TimedBooleanSeqOutRTC::onExecute()内の、

inportValue = inportValue + (unsigned long)(pow(2.0,i));

は、

inportValue |= (1 << i);

とすると計算量が激減すると思います。

2進数への変換にpow(2.0,i)を使っていますが、非効

tmsimiz様

開発者の埼玉大学 高橋です.
コメントいただき誠にありがとうございます.

シフト演算子による2進数への変換は,不勉強で存じ上げませんでした.
ぜひ次のバージョンでは取り入れさせていただきます.

以上,よろしくお願いいたします.

RTミドルウエアの産業応用を目的としたエンジニアリングサン

IntegratedControlRTC::onExecute()内に、while(1)というループがありますが、 onExecute()を長時間ブロックする可能性のある実装は、よろしくないように思います (それとも、最大ブロック時間が決まっているのでしょうか?)。

このコンポーネントはPERIODICタイプですので、処理をブロックできる最大時間は、 実行コンテキストの周期までとなります。

RTミドルウエアの産業応用を目的としたエンジニアリングサン

tmsimiz様

開発者の埼玉大学 高橋です.
コメントいただき誠にありがとうございます.

現状最大ブロック時間は設定していないため,ご指摘の通りwhile(1)というループでonExecute()を長時間ブロックする可能性がございます.
PERIODICタイプのRTCとして望ましいふるまいでなく,申し訳ございません.
そのため周期実行が保障されるよう,onExecute内で実行コンテキストの周期を超えた場合ループを抜ける(場合によってはエラー遷移)といったようにRTCを改良しようと考えております.

デバッグが終了し次第,公開させていただきます.
以上,よろしくお願いいたします.