Início
Conheça mais
Enviar pesquisa
Carregar
Entrar
Cadastre-se
Anúncio
Check these out next
131111 東工大授業「ロボット技術」資料
openrtm
151026 東工大授業「ロボット技術」資料
Noriaki Ando
1.コース概要
openrtm
ROBOMECH2017 RTM講習会 第1部・その1
openrtm
RTミドルウエア: OpenRTM-aist概要
openrtm
Rtミドルウェア講習会 第2部資料
openrtm
iREX2015 RTM講習会
openrtm
130522 rt講習会(説明用)
openrtm
1
de
43
Top clipped slide
RTミドルウェアによるロボットプログラミング技術 1.コース概要
9 de Nov de 2016
•
0 gostou
0 gostaram
×
Seja o primeiro a gostar disto
mostrar mais
•
2,033 visualizações
visualizações
×
Vistos totais
0
No Slideshare
0
De incorporações
0
Número de incorporações
0
Baixar agora
Baixar para ler offline
Denunciar
Educação
2016年11月10日 高度ポリテクセンター「RTミドルウェアによるロボットプログラミング技術」コース
Noriaki Ando
Seguir
主任研究員 em 独立行政法人 産業技術総合研究所
Anúncio
Anúncio
Anúncio
Recomendados
160428 東工大「ロボット技術」授業資料
openrtm
4.1K visualizações
•
100 slides
170420 東工大授業「ロボット技術」資料
openrtm
2.4K visualizações
•
93 slides
RTミドルウェアによるロボットプログラミング技術 4.ロボットの運動学と制御の基礎
Noriaki Ando
1.6K visualizações
•
20 slides
160608 02
openrtm
1.3K visualizações
•
56 slides
RTミドルウェアによるロボットプログラミング技術 3. RTMによるプログラミング
Noriaki Ando
1.6K visualizações
•
110 slides
Japan Robot Week 2016 RTM講習会 第2部
openrtm
2.2K visualizações
•
110 slides
Mais conteúdo relacionado
Apresentações para você
(20)
131111 東工大授業「ロボット技術」資料
openrtm
•
3.4K visualizações
151026 東工大授業「ロボット技術」資料
Noriaki Ando
•
1.1K visualizações
1.コース概要
openrtm
•
121 visualizações
ROBOMECH2017 RTM講習会 第1部・その1
openrtm
•
1.4K visualizações
RTミドルウエア: OpenRTM-aist概要
openrtm
•
1.5K visualizações
Rtミドルウェア講習会 第2部資料
openrtm
•
245 visualizações
iREX2015 RTM講習会
openrtm
•
1.8K visualizações
130522 rt講習会(説明用)
openrtm
•
4.3K visualizações
Japan Robot Week 2016 RTM講習会 第1部
Noriaki Ando
•
1.5K visualizações
130522 01
openrtm
•
2.2K visualizações
170622-01
openrtm
•
502 visualizações
プログラミング実習
openrtm
•
955 visualizações
2015 summercamp 05
openrtm
•
4.1K visualizações
OpenRTM-aist入門
Yuki Suga
•
4.9K visualizações
201111 04
openrtm
•
267 visualizações
160705-w02 RTミドルウエア講習会・早稲田大
openrtm
•
853 visualizações
Robomec2014 rtm講習会第3部
openrtm
•
1.1K visualizações
Rtミドルウェア講習会 第1部資料
openrtm
•
286 visualizações
1b2_5
瑞樹 藤間
•
3.7K visualizações
Robomec2014 rtm講習会第2部
openrtm
•
1.3K visualizações
Destaque
(12)
2016 summercamp rtshell入門
openrtm
•
2K visualizações
グループ2 Gprese
openrtm
•
1.9K visualizações
RTミドルウェアによるロボットプログラミング技術 2.プログラミングの基礎
Noriaki Ando
•
1.3K visualizações
2016 summercamp RTM-ROS相互運用とJSKでの取り組み
openrtm
•
2.8K visualizações
2016 summercamp SysML講習会
openrtm
•
2.1K visualizações
グループ4 ロボットで福笑い
openrtm
•
1.9K visualizações
2016 summercamp 当研究室でのRTミドルウエアの取り組み
openrtm
•
2.2K visualizações
2016 summercamp RTコンポーネント開発のためのシステムモデリング講習会
openrtm
•
2.4K visualizações
RTミドルウェアによるロボットプログラミング技術 4.ロボットの運動学と制御の基礎(解答)
Noriaki Ando
•
1.4K visualizações
グループ5 ひとりでもだるまさんが転んだ
openrtm
•
1.7K visualizações
2016 summercamp 効率よいRTシステム運用法
openrtm
•
2.4K visualizações
グループ1最終プレゼン資料
openrtm
•
1.8K visualizações
Anúncio
Similar a RTミドルウェアによるロボットプログラミング技術 1.コース概要
(20)
201110 01 Polytech Center 1
openrtm
•
229 visualizações
Robomec2015講習会 150517 01
openrtm
•
2.2K visualizações
Rtミドルウェア講習会@名城大 20140624 1
openrtm
•
1.4K visualizações
130710 01
openrtm
•
1.2K visualizações
Nedo講座・rtmセミナー
openrtm
•
620 visualizações
130711 01
openrtm
•
699 visualizações
2015RTミドルウエア講習会
openrtm
•
939 visualizações
160705-01 RTミドルウエア講習会・名城大
openrtm
•
404 visualizações
20130329 rtm1
openrtm
•
379 visualizações
20130329 rtm01
openrtm
•
338 visualizações
東京工業大学「ロボット技術・ロボットミドルウェア」
NoriakiAndo
•
546 visualizações
150629 01
openrtm
•
675 visualizações
130329 01
openrtm
•
720 visualizações
Rtm講習会 140626 01
openrtm
•
607 visualizações
131106 01 i-rex2013
openrtm
•
1.3K visualizações
200520 ユビキタスロボティクス特論
NoriakiAndo
•
85 visualizações
Open lab2013パネル原稿集
openrtm
•
2.6K visualizações
Using SysML in an RTC-based Robotics Application
Kenji Hiranabe
•
7.9K visualizações
131017 cnr研究会 ando
openrtm
•
630 visualizações
RTM on Androidの紹介
openrtm
•
2.4K visualizações
Último
(20)
Camosun毕业证成绩单,办卡莫森学院假毕业证成绩单QQ/WeChat:819 4343,办Camosun本科毕业证,办Camosun假文凭硕士证书,办...
BonnieLaymon
•
3 visualizações
40霍华德大学.pdf
dsadasd17
•
2 visualizações
QQ微信819 4343办uWinnipeg假毕业证成绩单,办温尼伯大学本科毕业证书,办uWinnipeg硕士假文凭,办uWinnipeg研究生学位证书,...
ColumbiaDiplomaColum
•
5 visualizações
2023パーフェクトなレポート執筆のための引用の書きかた
Yoshida-South Library, Kyoto University
•
132 visualizações
#学位证靠谱办梅西大学文凭证书全套
qghfsvkwiqiubridge
•
2 visualizações
firefly.pptx
Ryuji Dohaku
•
18 visualizações
57德保罗大学.pdf
dsadasd17
•
2 visualizações
★可查可存档〖制作西伊利诺伊大学文凭证书毕业证〗
vvvvv24
•
2 visualizações
澳洲USQ高仿毕业证,办南昆士兰大学毕业证书,QQ/WeChat:819 4343,办USQ毕业证成绩单,办USQ本科/硕士假文凭,办USQ学历认证,办南...
MaggieSU14
•
12 visualizações
#专业办证《圣汤玛斯毕业证学位证原版精仿》
sarotex825pgobom
•
2 visualizações
10南十字星大学.pdf
dsadasd17
•
6 visualizações
Fordham毕业证成绩单,办福特汉姆大学毕业证书,QQ/WeChat:819 4343,办Fordham本科毕业证,办Fordham假文凭硕士证书,办F...
BonnieLaymon
•
3 visualizações
QQ微信819 4343办Queen's假毕业证成绩单,办皇后大学本科毕业证书,办Queen's硕士假文凭,办Queen's研究生学位证书,办Queen'...
ColumbiaDiplomaColum
•
5 visualizações
#专业办证《UH毕业证学位证原版精仿》
sarotex825pgobom
•
2 visualizações
#学位证靠谱办奥克兰大学文凭证书全套
qghfsvkwiqiubridge
•
2 visualizações
★可查可存档〖制作圣劳伦斯学院文凭证书毕业证〗
tujjj
•
2 visualizações
schematic baofeng uv-5r.pdf
ivan ion
•
2 visualizações
购买毕业证:赫尔大学文凭证书
tvescev
•
0 visão
★可查可存档〖制作梅西大学文凭证书毕业证〗
tujjj
•
2 visualizações
90加州尔湾分校.pdf
dsadasd17
•
2 visualizações
Anúncio
RTミドルウェアによるロボットプログラミング技術 1.コース概要
RTミドルウェアによるロボットプログラミング技術 1.コース概要
ロボットを構成する要素 • センサ – エンコーダ –
⼒・磁気・加速度 など • アクチュエータ – モータなど • 機構(メカ) + • コンピュータ – ソフトウエア 2
フィードバック制御 3 ⾓度 電圧 回転 ⽬標⾓度 ロータリーエンコーダ (⾓度を読むセンサ) モータ コンピュータ 制御理論 たいていはソフト ウェア(プログラ ム)で実現される リアルタイム実⾏ (リアルタイムOS上)
運動学 4 運動学(kinematics)とは位置 の移動とその時間変化を対応さ せて考える学問であり、数理的 な⼿法であり、物理学の原理を 基礎としていない。⼀般的に物 体の状態は、移動と回転の運動 学の両⽅を兼ね合わせて記述す る。 ℓ1 ℓ2 θ1 θ2 ( x ,
y ) Dq vl vrv wl wr rl rr L ロボットアームの運動 学 移動ロボットの運動学 ロボットの機構(メカ)の運動を 数式で(プログラムとして)記述す る モータ モータ
順運動学・逆運動学(2⾃由度の場合) • 順運動学 関節の⾓度がわかっている とき、XY座標を求めること ができる • 逆運動学 XY座標がわかっているとき 、関節の⾓度を求めること ができる ℓ1 ℓ2 θ1 θ2 (
x , y ) ℓ1 ℓ2 θ1 θ2 ℓd α φ β ( x , y ) 注︓どの場合も腕の⻑さははじめから与えられている 5 これらが分 かっている とき 関節角が 分かって いるとき 手先の位置 を求める 手先の位置 が分かって いるとき 関節角度 を求める 関節角度 を求める
移動ロボットの制御 6 デッドレコニング (Dead Reckoning): ⾞輪のエンコーダや ジャイロ等内界センサのみ利⽤す る⾃⼰位置を推定⼿法。誤差が蓄 積するため⻑時間使⽤できない。 オドメトリ(Odometry)
と呼ばれ ることもある。 ナビゲーション(Navigation): 現 在位置を推定しながらロボットを⽬ 的地まで移動させること。 内界センサ︓⾞輪の⾓速度やジャ イロ等ロボットの内部の情報を計 測するセンサ 外界センサ︓レーザーや⾳波、カ メラ、GPS等ロボットの外部の情 報を取得するセンサ SLAM (スラムと読む、 Simultaneous Localization and Mapping) ︓外界センサを ⽤いて、ロボット周辺のマップを 作成しながら同時に⾃⼰位置も推 定する技術。センサには、レー ザー(2次元、3次元)やカメラ、 ⾳波などが⽤いられる。相対位置 を⽐較的安定的に推定できる。 パスプランニング (Path Planning) ︓与えられたマップ上 で、現在位置から⽬的地までの経路 を計画する⽅法。 ⾃⼰位置推定 (Localization, ローカリゼーション、ローカライ ゼーション) ︓種々のセンサを利 ⽤し、ロボットの現在の位置を推 定する技術。移動ロボットを制御 するために最も基本的かつ必要と される技術。
ロボットアームの制御 7 プランニング: 現在位置から⽬的位 置まで(主に⼿先を)どのように アームを制御し動かすかを計画する こと、またはその⼿法。 ⾃由度 (Degree
of freedom): 制 御できる軸の数。3次元空間内で、 物体を任意の位置姿勢へ移動させる ためには、6⾃由度以上が必要。 ロボットアーム︓物体を把持するな どしてある位置からある位置まで移 動させることを⽬的としたロボット。 マニピュレータとも呼ばれる。 エンドエフェクタ (End-effecter 終端(or 末端、⼿先)効果器)︓ アームの先端に取り付けられた外界 に働きかける部分。≒ロボットハン ド、グリッパなどとも呼ばれる。 位置制御︓ ⼿先や関節を⽬的に 位置または⾓度まで動かす制御。 ほとんどのロボットアームは位置 制御で利⽤されている。 速度制御︓ ⼿先や関節を⽬的の 速度で制御する⽅法。 ⼒制御︓⼒センサやモータの電流 を利⽤することで、⼿先や関節に かかる⼒を制御する⽅法。主に接 触、倣い動作(コンプライアンス 制御)が必要な作業で利⽤される。 ティーチング・プレイバック︓ロ ボットにあらかじめ覚えさせた動 作を繰り返しさせること、またそ うした利⽤⽅法。 ティーチング︓ロボットに繰り返 し動作させるための動き(⼿先の 軌道)を覚えさせる作業。
ロボットを構成する要素 8 メカ・アクチュエータ・センサ コンピュータ・ソフトウエア(プログラム) 制御 ⾃律移動 学習遠隔操作 計測・観測 対話 ⾏動⽣成 ・作業 これらのほとんどは ソフトウエア(プログラム)として 実現されコンピュータ上で実⾏される
9 概要 1. ロボットシステムプログラミングの現状 2. ロボットOS・ミドルウェア 3.
RTミドルウェア(RTM)を⽤いたロボット 開発
10 ロボットシステムプログラミング の現状
コンピュータとソフトウエア パソコン、ロボット、組込みシステム 11 マイコン OS 無し、uITRON,etc… プログラム (C⾔語、アセンブリ) 組込みシステム パソコン OS Windows・Macなど プログラム (⾼級⾔語) PC・周辺機器 コンピュータ OS RTOS, 汎⽤OS (Windows・UNIX)・ 組込OS(uITRON)・OS無し,
etc… プログラム (⾼級⾔語、C・アセンブリ) ロボット ロボットのシステム構成: 組込機器と汎用OS(のヘッドレスシステム)的側面を持つ
ロボットソフトウェア基盤(ロボットOS) • 現状 ROS,RT-Middleware,
OROCOS, OPRoS, NAOqi, etc. がある 12 音声合成 ンポーネントコ カメラ ンポーネントコ 力センサ ンポーネントコ アクチュエータ ンポーネントコ アクチュエータ ンポーネントコ レーサレンジ ァインダ ンポーネント フ コ アーム ンポーネントコ サービスロボット 認識・対話 ンポーネントコ 移動台車 ンポーネントコ モジュール(コンポーネント)指向でソフトウェ アを作成し組み合わせる⼿法が主流 • 再利⽤性 • 柔軟性 • 開発の容易さ • 信頼性 等の⾯から、こうしたミドルウェ ア・ロボットOSを利⽤しないこ とは、世界的潮流から⾒ても不利 である。
ロボットソフトウェア開発の⽅向性 コンポーネント指向開発従来型開発 カメラ マイク 頭・腕駆動 ⾳声合成 ステレオビジョン
対話⾳声認識 顔認識 ミドルウェア ステレオビジョン 対話⾳声認識 顔認識 カメラ マイク 頭・腕駆動 ⾳声合成 様々な機能を融合的に設計 実⾏時効率は⾼いが、柔軟性に⽋ける 複雑化してくると開発が困難に ⼤規模複雑な機能の分割・統合 開発・保守効率化(機能の再利⽤等) システムの柔軟性向上 13
14 ミドルウエア・コンポーネント等 • ミドルウエア – OSとアプリケーション層の中間に位置し、特定の⽤途に対して 利便性、抽象化向上のために種々の機能を提供するソフトウエ ア –
例︓RDBMS、ORB等。定義は結構曖昧 • 分散オブジェクト(ミドルウエア) – 分散環境において、リモートのオブジェクトに対して透過的ア クセスを提供する仕組み – 例︓DDS、CORBA、Ice、Java RMI、DCOM等 • コンポーネント – 再利⽤可能なソフトウエアの断⽚(例えばモジュール)であり、 内部の詳細機能にアクセスするための(シンタクス・セマン ティクスともにきちんと定義された)インターフェースセット をもち、外部に対してはそのインターフェースを介してある種 の機能を提供するモジュール。 • CBSD(Component Based Software Development) – ソフトウエア・システムを構築する際の基本構成要素をコン ポーネントとして構成するソフトウエア開発⼿法
モジュール化のメリット • 再利⽤性の向上 – 同じモジュールを様々なシステムに使いまわせる •
選択肢の多様化 – 同じ機能を持つ多様なモジュールを利⽤可能 • 柔軟性の向上 – モジュールの接続構成を変えるだけで様々なシステ ムを構築可能 • 信頼性の向上 – モジュール単位でテスト可能なため信頼性の向上に つながる • 堅牢性の向上 – システムがモジュールで分割されているので、⼀つ の問題が全体に波及しにくい 15
ロボットOS・ミドルウエアとは︖ • ロボットシステム構築を効率化するための共通機能を提 供する基盤ソフトウエア – 「ロボットOS」と呼ばれることもある –
インターフェース・プロトコルの共通化、標準化 – 例として • モジュール化・コンポーネント化フレームワークを提供 • モジュール間の通信をサポート • パラメータの設定、配置、起動、モジュールの複合化(結合)機能 を提供 • 抽象化により、OSや⾔語間連携・相互運⽤を実現 • 2000年ごろから開発が活発化 – 世界各国で様々なミドルウエアが開発・公開されている 16
ミドルウェアを利⽤した開発の利点 17 ℓ1 ℓ2 θ2 ( x ,
y ) θ1 既存のものが 再利⽤可能 新規開発が必要 ライブラリなどを 利⽤して⾃作 3DカメラPoint Cloud 把持戦略 プランニング 逆運動学計算 ロボットアーム制御 グリッパ制御 ミドルウェアを利⽤する と、既存のモジュールが 利⽤できる 開発するときに新規に作 らなければならない部分 は少なくて済む ピッキングロボットの構築例 ※図は実際の構成ではありません。
18 ロボットOS・ミドルウェア
19 RTミドルウェア OpenRTM-aist
2020 • RT =
Robot Technology cf. IT – ≠Real-time – 単体のロボットだけでなく、さまざまなロボット技術に基づく 機能要素をも含む (センサ、アクチュエータ, 制御スキーム、ア ルゴリズム、etc….) • RT-Middleware (RTM) – RT要素のインテグレーションのためのミドルウエア • RT-Component (RTC) – RT-Middlewareにおけるソフトウエアの基本単位 RT-Middleware + + + + + RTとは? 産総研版RTミドルウエア OpenRTM-aist
ロボットシステムの構造 多くの機能要素(コンポーネント)から構成される ⾳声合成 ンポーネントコ カメラ ンポーネントコ カメラ ンポーネントコ 画像データ 画像データ ポート データ・コマンドの流れ 顔位置 合せ問 ⽂字データ ⾳声データ ⼈物データ カメラコントロール 表情データ ⽂字データ ジェスチャ 道データ軌 頭・腕駆動 ンポーネントコ マイク ンポーネントコ ステレオビジョン コンポーネント 対話 ンポーネントコ ⾳声認識 コンポーネント 顔認識 ンポーネントコ ロボット体内のコンポーネントによる構成例
22 RTミドルウエアとRTコンポーネント 22 RT コンポーネント フレームワーク RT コンポーネント ロジック ロジックを箱(フレームワーク)に⼊れたもの=RTコンポーネント(RTC) RTミドルウエア RTC RTC RTC
RTC RTC RTC RTC RTC RTCの実⾏環境(OSのようなもの)=RTミドルウエア(RTM) ※RTCはネットワーク上に分散可能 ・デバイス制御 ・制御アルゴリズム ・アプリケーション etc…
RTコンポーネント化のメリット モジュール化のメリットに加えて • ソフトウエアパターンを提供 – ロボットに特有のソフトウエアパターンを提供する ことで、体系的なシステム構築が可能 •
フレームワークの提供 – フレームワークが提供されているので、コアのロジ ックに集中できる • 分散ミドルウエア – ロボット体内LANやネットワークロボットなど、分 散システムを容易に構築可能
Inactive Active Error アクティビティ・実⾏コンテキスト ライフサイクルの管理・コアロジックの実⾏ 共通の状態遷移 センサRTC 複合実⾏ 制御RTC アクチュエータRTC エンコーダ コンポーネント アクチュエータ コンポーネント 制御器 ンポーネントコ 1 TI s TDs Kp+ - ⽬標値 位置 位置 電圧 データポート •
データ指向ポート • 連続的なデータの送受信 • 動的な接続・切断 データ指向通信機能 サーボの例 • 定義可能なインターフェースを持つ • 内部の詳細な機能にアクセス – パラメータ取得・設定 – モード切替 – etc… サービスポート 画像 データ 3Dデプス データ ステレオビジョンの例 ステレオビジョン インターフェース ・モード設定関数 ・座標系設定関数 ・キャリブレーション ・etc… サービスポート ステレオビジョン コンポーネント データポート サービス指向相互作⽤機能 名前 値 セット名 名前 値 セット名 複数のセットを 動作時に 切り替えて 使⽤可能 コンフィギュレーション • パラメータを保持する仕組み • いくつかのセットを保持可能 • 実⾏時に動的に変更可能 RTコンポーネントの主な機能
RTミドルウエアによる分散システム RTCRTC RTM Windows RTCRTC RTM uITRON RTCRTC RTM Linux RTCRTC RTM VxWorks RTCRTC RTM QNX RTCRTC RTM Real Time Linux RTC アプリケーション
操作デバイス センサ ロボットA ロボットB ロボットC ネットワーク RTMにより、 ネットワーク上に 分散するRTCを OS・⾔語の壁を 越えて接続する ことができる。 RTC同⼠の接続 は、プログラム 実⾏中に動的に ⾏うことが出来る。
RTミドルウェアの国際標準化 名称 ベンダ 特徴
互換性 OpenRTM-aist 産総研 NEDO PJで開発。参照実装。 --- HRTM ホンダ アシモはHRTMへ移行中 ◎ OpenRTM.NET セック .NET(C#,VB,C++/CLI, F#, etc..) ◎ RTM on Android セック Android版RTミドルウエア ◎ RTC-Lite 産総研 PIC, dsPIC上の実装 〇 Mini/MicorRTC SEC NEDOオープンイノベーションPJで開発 〇 RTMSafety SEC/AIST NEDO知能化PJで開発・機能安全認証取 得 〇 RTC CANOpen SIT, CiA CAN業界RTM標準 〇 PALRO 富士ソフト 小型ヒューマノイドのためのC++ PSM 実 装 × OPRoS ETRI 韓国国家プロジェクトでの実装 × GostaiRTC GOSTAI, THALES ロボット言語上で動作するC++ PSM実装 × 標準化組織で⼿続きに沿って策定 → 1組織では勝⼿に改変できない安⼼感 → 多くの互換実装ができつつある → 競争と相互運⽤性が促進される OMG国際標準 特定のベンダが撤退しても ユーザは使い続けることが可能 RTミドルウエア互換実装は10種類以上 標準化履歴 • 2005年9⽉ Request for Proposal 発⾏(標準化開始) • 2006年9⽉ OMGで承認、事実上の国際標準獲得 • 2008年4⽉ OMG RTC標準仕様 ver.1.0公式リリース • 2012年9⽉ ver. 1.1改定 • 2015年9⽉ FSM4RTC(FSM型RTCとデータポート標準) 採択
実⽤例・製品化例 災害対応ロボット操縦シミュレータ︓ NEDO/千葉⼯⼤ S-ONE︓SCHAFT DAQ-Middleware: KEK/J-PARC KEK: High
Energy Accelerator Research Organization J-PARC: Japan Proton Accelerator Research Complex HIRO, NEXTAGE open: Kawada Robotics 新⽇本電⼯他: Mobile SEM HRPシリーズ: 川⽥⼯業、AIST RAPUDA︓Life Robotics ビュートローバーRTC/RTC-BT(VSTONE) OROCHI(アールティ)
ROS(Robot Operating System) •
⽬的︓ロボット研究を効率的にする • OSではない – Robot Operating System, Robot Open Source • UNIX哲学 – UNIX的なコンパクトなツール、ライブラリ群による 効率的なインテグレーション環境を提供する。 – モジュール性、柔軟性、再利⽤性、⾔語・OS⾮依存 、オープンソース • プラットフォームアーキテクチャ – 独⾃ミドルウエア(独⾃IDLからコード⽣成) – メッセージベース – pub/subモデル、RPCモデル 28
/rosout パラメータ サーバ ROSの仕組み • ノード︓ROSのモジュール化単 位 – 1ノード=1プロセス •
マスター︓ノードの参照やトピッ クを保持するネームサービス – システム全体で原則⼀つ→SPOF (Single Point of Failure) – 他のノードより先に起動しなけ ればならない • パラメータサーバ︓ノードの パラメータを保持するデータ ベース – マスター内で動作、ノードから はXMLRPCでアクセス • rosout: ノードに対してstdout, stderrのような役割を果たす 29 ROS ノード ROS マスター Node0:… Node1:… Node2:… : Topic0:… Topic1:… Topic2:… : ROS ノード ノード参照・ トピックを登録 原則マスターは1つ 他のノードより先に起動 しなければならない #拡張機能でマルチマスターも可 同⼀トピック間の ポートは⾃動で接続 XMLRPCで通信 ROS独⾃プロトコル
RTMとROSの比較 ROS • UNIXユーザに受けるツール(特に CUI)が豊富 – →基本はLinuxのみサポート •
独自のパッケージ管理システムを持 つ • 実装方法が比較的自由 – コア部分の使用が固まっていない – コンポーネントモデルがない • ノード(コンポーネント)の質、量とも に十分 – WGが直接品質を管理しているノード が多数 • ユーザ数が多い • メーリングリストなどの議論がオープ ンで活発 • 英語のドキュメントが豊富 RTM 第三者による比較: http://ysuga.net/?p=146 • 対応OS・言語の種類が多い – Windows、UNIX、uITRON、T-Kernel、 VxWorks、QNX – Windowsでネイティブ動作する • 日本製 – 国外のユーザが少ない – 英語ドキュメントが少ない • GUIツールがあるので初心者向き • 仕様が標準化されている – OMGに参加すればだれでも変更可 – サードパーティー実装が作りやすい – すでに10程度の実装あり • コンポーネントモデルが明確 – オブジェクト指向、UML・SysMLとの相 性が良い – モデルベース開発 • IEC61508機能安全認証取得 – RTMSafety
リアルタイムシステムにおける違い 31 非リアルタイム EC リアルタイムEC 外部トリガEC 時間により駆動 デッドラインを守って駆動
外部からのトリガで駆動 ロジック ロジック ロジック RTC RTC RTC アタッチ アタッチ アタッチ 実行時に動的に入れ替え可能 外部トリガ スレッド リアルタイム スレッド 非リアルタイム スレッド 時間により駆動 デッドラインを守って駆動 外部からのトリガで駆動 ロジック ロジック ロジック ROS ROS ROS 実行形式はコンパイル時に決定され変更不可 RTMROS
リアルタイム・複合化 • ROS: 1ノード1プロセス –
組合せて密結合(シーケンシャルにリアルタイム実行)は出来ない – roscontrol, realtime-tools といった3rd partyのツールを利用すると同様のこ とが可能 – 但し、ノードの作り方は全く異なる 32 1 TI s TDs Kp+ - センサRTC 制御器RTC アクチュエータRTC (リアルタイム)実行コンテキストEC ロジック ロジックロジック 実行 実行 実行 モータ等 ロータリー エンコーダ等 複数のRTCによる複合化、リアルタイム化が可能 EC・RTCにより実行ロジックが分離されており様々な実行形態を実現可能
RTミドルウェア(RTM) を⽤いたロボット開発 33
システム運⽤システム開発 システム開発の流れ RTCBuilder RTSystemEditor rtshell コンポーネント開発 設計 テス ト 実装 設計 テス ト 実装 システム開発のフェーズごとに様々なツールを利⽤
RTCBUilderを⽤いたRTCの開発 35 コンポーネント の仕様 RTCBuilder コードの雛型 (C++のクラス) コアロジック RTC開発者が開 発したプログラ ム資産 .so or
DLL 雛型にコアロジッ クを埋め込む コンパイルコード⽣成 どのようなコンポーネントか︖ ・名前 ・データポート ・サービスポート ・コンフィギュレーション 実⾏ マネージャ (ミドルウエア)
コンポーネント作成の流れ 36 RTBUilder CMake Visual
C++ コンポーネントの 仕様の⼊⼒ VCプロジェクトファイル またはMakefileの⽣成 実装およびコンパイル 実⾏ファイルの⽣成 RTBUilder CMake make + gcc (g++) Windows Linux 途中まで流れは同じ、コンパイラが異なる
コード例 • 生成されたクラスのメン バー関数に必要な処理 を記述 • 主要な関数 –
onExecute (周期実行) • 処理 – InPortから読む – OutPortへ書く – サービスを呼ぶ – コンフィギュレーションを 読む 37 開発者が書く のはこの部分 だけ 大部分はツール (RTCBuilder)で 自動生成される
コンポーネント内の状態遷移 ActiveDo/RTC::onExecuteはここに入る (DataFlow型のコンポーネントのとき) ユーザがあまり 意識しなくてよい部分 コンポーネント開発時に 必要な部分 Inactive Active Error
コールバック関数 コールバック関数 処理 onInitialize 初期化処理 onActivated
アクティブ化されるとき1度だけ呼ばれる onExecute アクティブ状態時に周期的に呼ばれる onDeactivated 非アクティブ化されるとき1度だけ呼ばれる onAborting ERROR状態に入る前に1度だけ呼ばれる onReset resetされる時に1度だけ呼ばれる onError ERROR状態のときに周期的に呼ばれる onFinalize 終了時に1度だけ呼ばれる onStateUpdate onExecuteの後毎回呼ばれる onRateChanged ExecutionContextのrateが変更されたとき1度だけ呼ばれる onStartup ExecutionContextが実行を開始するとき1度だけ呼ばれる onShutdown ExecutionContextが実行を停止するとき1度だけ呼ばれる RTCの作成=コールバック関数に処理を埋め込む とりあえずは この5つの関数 を押さえて おけばOK
InPort • InPortのテンプレート第2引数:バ ッファ – ユーザ定義のバッファが利用 可能 •
InPortのメソッド – read(): InPort バッファから バインドされた変数へ最新値 を読み込む – >> : ある変数へ最新値を読 み込む リングバッファ バインドされた変数 read() operator>> 最新値 InPort Robot Component Sensor Data 例 基本的にOutPortと対になる データポートの型を 同じにする必要あり
OutPort • OutPortのテンプレート第2引数: バッファ – ユーザ定義のバッファが利用 可能 •
OutPortのメソッド – write(): OutPort バッファへ バインドされた変数の最新値 として書き込む – >> : ある変数の内容を最新 値としてリングバッファに書き 込む リングバッファ バインドされた変数 write() operator<< OutPort 最新値 Sensor Component Sensor Data 例基本的にInPortと対になる データポートの型を 同じにする必要あり
動作シーケンス 42 ネームサーバ ① 参照を登録 ②
参照を登録 ③ 参照を取得 ④ ポートを接続
まとめ 1. ロボットシステムプログラミングの現状 → コンポーネント指向、ミドルウエアの利⽤が主流に なりつつある 2.
ロボットOS・ミドルウェア → RTM、ROS等のミドルウエアがある → RTM︓国際標準、多様なOS・⾔語・リアルタイム制 御をサポート 3. RTミドルウェア(RTM)を⽤いたロボット開発 → RTC作成 → システム構築 → 運⽤ → ツールの利⽤で作業が容易に 43
Anúncio