More Related Content
PDF
PDF
Robomec2014 rtm講習会第1部(その2) PDF
PDF
PDF
2016 summercamp RTコンポーネント開発のためのシステムモデリング講習会 PDF
PDF
PDF
Robomec2014 rtm講習会第1部(その1) What's hot
PDF
PDF
Portable RT-Middleware environment on a USB memory for the robot programing ... PDF
2016 summercamp RTM-ROS相互運用とJSKでの取り組み PDF
PDF
ROBOMECH2017 インターネットを利用したロボットサービスとRSiの取り組み2017 PDF
PDF
PDF
PDF
160705-03 RTミドルウエア講習会・名城大 PDF
PDF
Rtミドルウェア講習会@名城大 20140624 1 PDF
PPTX
Japan Robot Week 2016 RTM講習会 第1部 PDF
160705-w01 RTミドルウエア講習会・早稲田大 PDF
ROBOMECH2017 RTM講習会 第1部・その1 PDF
PDF
PDF
PDF
PDF
Viewers also liked
PDF
2016 summercamp 当研究室でのRTミドルウエアの取り組み PDF
2016 summercamp rtshell入門 PDF
PDF
PDF
2016 summercamp 効率よいRTシステム運用法 PDF
Japan Robot Week 2016 RTM講習会 第2部 PDF
Japan Robot Week 2016 RTM講習会 第3部 PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
Similar to 2013 summercamp 02
PDF
PDF
ROBOMECH2023 RTミドルウェア講習会 第1部 PDF
PDF
東京工業大学「ロボット技術・ロボットミドルウェア」 PDF
PDF
230420_東工大授業「ロボット技術」資料.pdf PDF
2024年度 東京工業大学「ロボット技術」 ロボットミドルウェア (2024年4月11日) PDF
PPTX
PDF
PPTX
PDF
PDF
PDF
PDF
PDF
ROBOMECH2021 RTMオンライン講習会 第1部 PDF
PPTX
200527 RTM Tutorial in ROBOMECH2020 PDF
PPT
More from openrtm
PDF
PDF
PDF
NEDO講座 MoveIt! チュートリアル 第1部 PDF
Rtミドルウェアサマーキャンプ資料2021_菅佑樹 PDF
PPTX
PDF
PDF
PDF
RTミドルウェアサマーキャンプ2021_坂本武志_1 PPTX
Rtミドルウェアサマーキャンプ資料2021_坂本武志_2 PPTX
PDF
PPTX
RTサマーキャンプ2022最終発表_都立大.pptx PDF
PDF
PDF
PDF
PPTX
PDF
RTミドルウェアサマーキャンプ資料2022.pdf PDF
2013 summercamp 02
- 1.
- 2.
Yuki Suga (ysuga@ysuga.net)
RTコンポーネントとは何か
•RT要素 = 「RTコンポーネント (Robotics Technology Component, RTC)」
– RTCは「ポート」を持ち,他のRTCと接続・通信可能
– RTCは「状態」を持ち,それらの遷移によってシステム管理
• CREATED (初期化前の状態), INACTIVE (非実行状態),ACTIVE (実行状態),ERROR (エラー)
– RTCは特定のタイミングで呼ばれるイベントハンドラを持つ
• onActivated ・・・ ACTIVE化の際に一度
• onDeactivated ・・・ INACTIVE化の際に一度
• onExecute ・・・ ACTIVE状態の場合に周期的に呼ばれる
– RTCのイベントハンドラは実行コンテキストによって呼ばれる
• リアルタイム周期実行可能な実行コンテキスト
• シミュレータに合わせて実行周期を同期する実行コンテキスト
• RTCの組合せによってロボットシステムを開発する
2012/7/11 2ROBOTECH2012 RTミドルウエア講習会
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
Yuki Suga (ysuga@ysuga.net)
対応RTコンポーネント付属
•共通インターフェース仕様書
– “コンポーネントの相互接続性や相互運用性を確保”
– http://openrtm.org/openrtm/ja/project/Recommendation_CommonIF
– 移動ロボット
– コミュニケーション機能
– ロボットアーム
– 双腕ロボット
– 作業系画像認識
– カメラ機能
2012/7/11 ROBOTECH2012 RTミドルウエア講習会 9
- 10.
- 11.
- 12.
- 13.
Yuki Suga (ysuga@ysuga.net)
中レベルインターフェース
•共通インターフェース
– 「ManiplatorCommonInterface_Common」
• 中レベル共通インターフェース
– 「ManiplatorCommonIterface_Middle」
• グリッパ開閉
• 手先位置フィードバック(順運動学)
• 直交座標系における直線起動での手先移動(CP制御)
• 関節座標系における直線起動での手先移動(PTP制御)
• 動作時の速度設定
2012/7/11 ROBOTECH2012 RTミドルウエア講習会 13
- 14.
- 15.
Yuki Suga (ysuga@ysuga.net)
ManipulatorCommonInterface_Middle
Level.idl(抜粋)
2012/7/11 ROBOTECH2012 RTミドルウエア講習会 15
interface ManipulatorCommonInterface_Middle {
RTC::RETURN_ID closeGripper();
RTC::RETURN_ID getFeedbackPosCartesian(out RTC::CarPosWithElbow pos);
RTC::RETURN_ID moveGripper(in RTC::ULONG angleRatio);
RTC::RETURN_ID moveLinearCartesianAbs(in RTC::CarPosWithElbow carPoint);
RTC::RETURN_ID movePTPJointAbs(in RTC::JointPos jointPoints);
RTC::RETURN_ID openGripper();
};
- 16.
- 17.
Yuki Suga (ysuga@ysuga.net)
RTCBuilder + ServicePort
• Add Interface – (インターフェースを作る)
– インターフェースがクラス的なもの
2012/7/11 ROBOTECH2012 RTミドルウエア講習会 17
インターフェース名はすべて,
下のインターフェースタイプと
同じにしておくと便利.
使う側は「Required」
Var Name はプログラム内の
変数名
IDLファイルを指定する
- 18.
Yuki Suga (ysuga@ysuga.net)
ManipulatorCommonInterface_Middle
Level.idl(抜粋)
2012/7/11 ROBOTECH2012 RTミドルウエア講習会 18
interface ManipulatorCommonInterface_Middle {
RTC::RETURN_ID closeGripper();
RTC::RETURN_ID getFeedbackPosCartesian(out RTC::CarPosWithElbow pos);
RTC::RETURN_ID moveGripper(in RTC::ULONG angleRatio);
RTC::RETURN_ID moveLinearCartesianAbs(in RTC::CarPosWithElbow carPoint);
RTC::RETURN_ID movePTPJointAbs(in RTC::JointPos jointPoints);
RTC::RETURN_ID openGripper();
};
- 19.
Yuki Suga (ysuga@ysuga.net)
ManipulatorCommonInterface_Middle
Level.idl(抜粋)
2012/7/11 ROBOTECH2012 RTミドルウエア講習会 19
interface ManipulatorCommonInterface_Middle {
RTC::RETURN_ID closeGripper();
RTC::RETURN_ID getFeedbackPosCartesian(out RTC::CarPosWithElbow pos);
RTC::RETURN_ID moveGripper(in RTC::ULONG angleRatio);
RTC::RETURN_ID moveLinearCartesianAbs(in RTC::CarPosWithElbow carPoint);
RTC::RETURN_ID movePTPJointAbs(in RTC::JointPos jointPoints);
RTC::RETURN_ID openGripper();
};
これらは呼べばいいだけ
- 20.
Yuki Suga (ysuga@ysuga.net)
ManipulatorCommonInterface_Middle
Level.idl(抜粋)
2012/7/11 ROBOTECH2012 RTミドルウエア講習会 20
interface ManipulatorCommonInterface_Middle {
RTC::RETURN_ID closeGripper();
RTC::RETURN_ID getFeedbackPosCartesian(out RTC::CarPosWithElbow pos);
RTC::RETURN_ID moveGripper(in RTC::ULONG angleRatio);
RTC::RETURN_ID moveLinearCartesianAbs(in RTC::CarPosWithElbow carPoint);
RTC::RETURN_ID movePTPJointAbs(in RTC::JointPos jointPoints);
RTC::RETURN_ID openGripper();
};
JointPos型の引数が必要になる(言語依存)
- 21.
- 22.
Yuki Suga (ysuga@ysuga.net)
ManipulatorCommonInterface_Middle
Level.idl(抜粋)
2012/7/11 ROBOTECH2012 RTミドルウエア講習会 22
interface ManipulatorCommonInterface_Middle {
RTC::RETURN_ID closeGripper();
RTC::RETURN_ID getFeedbackPosCartesian(out RTC::CarPosWithElbow pos);
RTC::RETURN_ID moveGripper(in RTC::ULONG angleRatio);
RTC::RETURN_ID moveLinearCartesianAbs(in RTC::CarPosWithElbow carPoint);
RTC::RETURN_ID movePTPJointAbs(in RTC::JointPos jointPoints);
RTC::RETURN_ID openGripper();
};
CarPosWithElbowは,変換行列の3x4部分
- 23.
- 24.
Yuki Suga (ysuga@ysuga.net)
2012/7/11ROBOTECH2012 RTミドルウエア講習会 24
RTC::ReturnCode_t ModuleName::onExecute(RTC::UniqueId ec_id)
{
m_commonMiddle->openGripper();
coil::usleep(5000*1000);
m_commonMiddle->closeGripper();
coil::usleep(5000*1000);
JointPos pos;
pos.length(6);
pos[0] = 0; pos[1] = 0.5;
pos[2] = 0; pos[3] = 0;
pos[4] = 0; pos[5] = 0;
m_commonMiddle->movePTPJointAbs(pos);
CarPosWithElbow carPos;
m_commonMiddle->getFeedbackPosCartesian(carPos);
std::cout << "X=" << carPos.carPos[0][3] << std::endl;
std::cout << "Y=" << carPos.carPos[1][3] << std::endl;
std::cout << "Z=" << carPos.carPos[2][3] << std::endl;
carPos.carPos[2][3] += 50; //[mm]
m_commonMiddle->moveLinearCartesianAbs(carPos);
return RTC::RTC_OK;
}
- 25.