ORiNとの連携によるRTMの産業機器用ハードウエアRTCの拡充/CRDプロバイダを用いたロボット固有情報のXML化による産業用ロボット汎用RTCの開発
ORiNとの連携によるRTMの産業機器用ハードウエアRTCの拡充/CRDプロバイダを用いたロボット固有情報のXML化による産業用ロボット汎用RTCの開発
投稿日時:
金, 2014-10-24 18:29
発表
- SI2014&RTミドルウエアコンテスト2014応募作品
「ORiNとの連携によるRTMの産業機器用ハードウエアRTCの拡充/CRDプロバイダを用いたロボット固有情報のXML化による産業用ロボット汎用RTCの開発」
概要
RTMとORiNの連携によって産業用ロボット汎用RTCを開発し、RTMの産業機器用ハードウエアRTCを拡充した.
特徴
- ORiNのロボットプロバイダを利用することで種々のメーカの産業用ロボットに対応
- 産業用ロボットの固有情報をXMLファイルに記述することで、再コンパイルレスに使用する産業用ロボットの変更が可能
開発環境
- OS:Windows7 Professional SP1
- 開発言語:C++
- コンパイラ:Visual Studio 2010 Professional
- RTミドルウエア(C++):OpenRTM-aist-1.1.0-RELEASE
- RTミドルウエア(Python):OpenRTM-aist-1.1.0-RC1
- rtshell-3.1.0に利用
- ORiN2 SDK ver2.1.17
コンポーネント群
- 再利用
- PartialEdge:USBカメラで物体の部分的な曲線を検出し,その物体の図心位置(単位:pixel)を出力(株式会社東芝製)
- PartialEdgeConsumer:PartialEdgeのテスト用(株式会社東芝製)
- DIOInterfaceModuleRTC:株式会社インタフェース製デジタルI/Oインタフェースモジュール「PCI-2826CV」を制御(埼玉大学製)
- TimeBooleanSeqOutRTC:コンフィギュレーション上で入力された10進数の数値を2進数に変換しTimedBooleanSeq形式で出力(埼玉大学製)
- OperationCommandRTC:ロボットアーム共通I/F(SI単位系準拠 第1.0版)の低・中レベル共通コマンドと中レベルモーションコマンドを送信(埼玉大学製)
- 新規開発
- RTM_ORiN_Converter_CRD:ORiNのCRDプロバイダを用いた産業用ロボット汎用RTC
※本RTCの実行には、株式会社デンソーウェーブから販売されているORiN2 SDKのORiNランタイムカーネルライセンスの購入が必要になります. - CameraPositionCorrectionRTC:PartialEdgeから出力されたワークの図心位置を基準位置からの変位に変換して出力
- IntegratedControlRTC:システムの入力情報を統括し,ロボットへの指令値を出力
- RTM_ORiN_Converter_CRD:ORiNのCRDプロバイダを用いた産業用ロボット汎用RTC
ダウンロード
XML Sampleファイルのダウンロードはこちらから(2015/08/06更新)zipファイル(ver 1.1)のダウンロードはこちらから(2014/11/21更新)
zipファイル(ver 1.0)のダウンロードはこちらから(2014/10/24更新)
- ドキュメント
- 産業用ロボット汎用RTC 操作マニュアル_ver_1_1.pdf
- ORiNとの連携によるRTMの産業機器用ハードウエアRTCの拡充_解説ドキュメント_ver_1_1.pdf
- ORiNとの連携によるRTMの産業機器用ハードウエアRTCの拡充_操作マニュアル_ver_1_1.pdf
- ORiNとの連携によるRTMの産業機器用ハードウエアRTCの拡充_導入マニュアル_ver_1_1.pdf
- ソフトウエア
- ソースファイル
- バイナリファイル
- スクリプトファイル
- ムービー
- 動作検証実験動画(DENSO製ロボット).mp4
- 動作検証実験動画(YAMAHA製ロボット).mp4
ライセンス
- 本ソフトはMITライセンスのもとで公開されています.ダウンロードしたフォルダ内のLICENSE.txtをお読みください.
- また,著作権は埼玉大学設計工学研究室が保有しています.
謝辞
本研究は,独立行政法人新エネルギー・産業技術総合開発機構「NEDOプロジェクトを核とした人材育成,産学連携等の総合的展開/RTミドルウェアの実践的展開/RTMによる人材育成・産学提携の社会実装者を核とした総合的研究開発」の支援によって得られた成果です.記して感謝の意を表します.
独立行政法人東京都立産業技術研究センター ロボット開発セクター長 坂下和広 様をはじめ東京都立産業技術研究センターの皆様には多大なるご協力をいただきました.ここに感謝の意を表します.
株式会社デンソーウェーブ 犬飼利宏 様にも,本研究にあたって,様々なご意見をいただきました.感謝致します.
連絡先
- 埼玉大学 工学部 機械工学科
- 設計工学研究室
- 〒338-8570
- 埼玉県さいたま市桜区下大久保255
- URL:http://design.mech.saitama-u.ac.jp/index.html
- E-mail:openrtm<at>design.mech.saitama-u.ac.jp
問合先(メールアドレス):
openrtm<at>design.mech.saitama-u.ac.jp
最終更新日時:
木, 2015-08-06 13:46
コメント
とても使えそうなRTCだと思いますし、マニュアルが詳しく書いてあるのが良いと思います。
埼玉大学の藤間です。
コメントをいただき、ありがとうございます。
まず、moveLinearCartesianAbs,moveLinearCartesianRel,movePTPCartesianAbs等でのコードの重複部分についてですが、
ご指摘いただいた通り、関数としてまとめたものを次のバージョンで公開させていただきたいと思います。
次に、pSPEED、pVar、pEng等の部分ですが、ORiNを利用するために必要な変数としてまとめて定義を行う方がわかりやすいと考え、
グローバル変数で定義しております。良い方法がございましたらご教授いただけると幸いです。
以上、よろしくお願い致します。
返信ありがとうございます。
useORiN.cppで定義した変数、関数をクラスにまとめてRTM_ORiN_Converter_CRDのm_ManipulatorCommonInterface_Common、m_ManipulatorCommonInterface_Middleの初期化時に引数で渡せばグローバル変数を多用せずに済むとは思います。 まあどちらの方が良いかはわかりませんけど。
それからついでなので他に気になったことを書いておきます。
埼玉大学の藤間です。
先日、ご指摘いただいた
・コード重複部分の関数化
・useORiN.cppとdefcommand.cppのCMakeListへの追加
を修正したバージョンを公開させていただきました。
また、useORiN.cppで定義した変数、関数をクラスにまとめる方法ですが、上手く実装できなかったため
今回はグローバル変数を使用する方法をとらせていただきたいと思います。
続いて、ご質問の件についてご回答致します。
1つ目の産業用ロボットの逆運動学ですが、Robot Controllerで自動的に計算されます。
2つ目のJHomePoint等の配列の数ですが、ロボットアーム共通インターフェース仕様書
(SI単位系準拠 第1.0版)で対象としている最大の軸数が7軸であるため、それに合わせて
指定しております。
3つ目のmoveCircularCartesianRelの件ですが、相対位置を絶対位置に変換しているのは、
ORiNでの動作指令に相対位置での円弧補間動作が定義されていないためです。
M31_CommandではなくM32_Commandで判定を行っているのは、絶対位置指定と相対位置指定で
別々にNOT_IMPLEMENTEDを定義できるようにするためです。
以上、よろしくお願い致します。