SlideShare a Scribd company logo
Suche senden
Hochladen
181106 01
Melden
Teilen
O
openrtm
Folgen
•
0 gefällt mir
•
459 views
1
von
43
181106 01
•
0 gefällt mir
•
459 views
Melden
Teilen
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Bildung
高度ポリテクセンター「RTミドルウェアによるプログラミング技術」2018年11月6日 (1)
Mehr lesen
O
openrtm
Folgen
Recomendados
RTミドルウェアによるロボットプログラミング技術 4.ロボットの運動学と制御の基礎 von
RTミドルウェアによるロボットプログラミング技術 4.ロボットの運動学と制御の基礎
Noriaki Ando
1.6K views
•
20 Folien
RTミドルウェアによるロボットプログラミング技術 1.コース概要 von
RTミドルウェアによるロボットプログラミング技術 1.コース概要
Noriaki Ando
2.1K views
•
43 Folien
160608 02 von
160608 02
openrtm
1.3K views
•
56 Folien
160428 東工大「ロボット技術」授業資料 von
160428 東工大「ロボット技術」授業資料
openrtm
4.1K views
•
100 Folien
1.コース概要 von
1.コース概要
openrtm
126 views
•
40 Folien
131111 東工大授業「ロボット技術」資料 von
131111 東工大授業「ロボット技術」資料
openrtm
3.4K views
•
107 Folien
Más contenido relacionado
Was ist angesagt?
RTミドルウエア: OpenRTM-aist概要 von
RTミドルウエア: OpenRTM-aist概要
openrtm
1.5K views
•
44 Folien
160705-w01 RTミドルウエア講習会・早稲田大 von
160705-w01 RTミドルウエア講習会・早稲田大
openrtm
909 views
•
59 Folien
Japan Robot Week 2016 RTM講習会 第2部 von
Japan Robot Week 2016 RTM講習会 第2部
openrtm
2.2K views
•
110 Folien
1b2_5 von
1b2_5
瑞樹 藤間
3.7K views
•
14 Folien
131106 01 i-rex2013 von
131106 01 i-rex2013
openrtm
1.3K views
•
56 Folien
130522 01 von
130522 01
openrtm
2.2K views
•
54 Folien
Was ist angesagt?
(20)
RTミドルウエア: OpenRTM-aist概要 von openrtm
RTミドルウエア: OpenRTM-aist概要
openrtm
•
1.5K views
160705-w01 RTミドルウエア講習会・早稲田大 von openrtm
160705-w01 RTミドルウエア講習会・早稲田大
openrtm
•
909 views
Japan Robot Week 2016 RTM講習会 第2部 von openrtm
Japan Robot Week 2016 RTM講習会 第2部
openrtm
•
2.2K views
1b2_5 von 瑞樹 藤間
1b2_5
瑞樹 藤間
•
3.7K views
131106 01 i-rex2013 von openrtm
131106 01 i-rex2013
openrtm
•
1.3K views
130522 01 von openrtm
130522 01
openrtm
•
2.2K views
151026 東工大授業「ロボット技術」資料 von Noriaki Ando
151026 東工大授業「ロボット技術」資料
Noriaki Ando
•
1.1K views
130522 00 von openrtm
130522 00
openrtm
•
2.1K views
ROBOMECH2017 RTM講習会 第1部・その1 von openrtm
ROBOMECH2017 RTM講習会 第1部・その1
openrtm
•
1.4K views
20130329 rtm1 von openrtm
20130329 rtm1
openrtm
•
379 views
DSoC-RTCs von FujiokaT
DSoC-RTCs
FujiokaT
•
1.6K views
2015 summercamp 05 von openrtm
2015 summercamp 05
openrtm
•
4.2K views
130522 rt講習会(説明用) von openrtm
130522 rt講習会(説明用)
openrtm
•
4.3K views
2015RTミドルウエア講習会 von openrtm
2015RTミドルウエア講習会
openrtm
•
942 views
Rtミドルウェア講習会 第2部資料 von openrtm
Rtミドルウェア講習会 第2部資料
openrtm
•
249 views
Robomec2015講習会 150517 01 von openrtm
Robomec2015講習会 150517 01
openrtm
•
2.2K views
Robomec2014 rtm講習会第3部 von openrtm
Robomec2014 rtm講習会第3部
openrtm
•
1.1K views
RTミドルウエア講習会2015 von Yuki Suga
RTミドルウエア講習会2015
Yuki Suga
•
1.3K views
Japan Robot Week 2016 RTM講習会 第1部 von Noriaki Ando
Japan Robot Week 2016 RTM講習会 第1部
Noriaki Ando
•
1.5K views
130711 01 von openrtm
130711 01
openrtm
•
701 views
Similar a 181106 01
201110 01 Polytech Center 1 von
201110 01 Polytech Center 1
openrtm
306 views
•
40 Folien
Rtミドルウェア講習会 第1部資料 von
Rtミドルウェア講習会 第1部資料
openrtm
288 views
•
53 Folien
Rtミドルウェア講習会@名城大 20140624 1 von
Rtミドルウェア講習会@名城大 20140624 1
openrtm
1.4K views
•
45 Folien
130710 01 von
130710 01
openrtm
1.2K views
•
27 Folien
ROBOMECH2023 RTミドルウェア講習会 第1部 von
ROBOMECH2023 RTミドルウェア講習会 第1部
openrtm
18 views
•
49 Folien
Nedo講座・rtmセミナー von
Nedo講座・rtmセミナー
openrtm
624 views
•
32 Folien
Similar a 181106 01
(20)
201110 01 Polytech Center 1 von openrtm
201110 01 Polytech Center 1
openrtm
•
306 views
Rtミドルウェア講習会 第1部資料 von openrtm
Rtミドルウェア講習会 第1部資料
openrtm
•
288 views
Rtミドルウェア講習会@名城大 20140624 1 von openrtm
Rtミドルウェア講習会@名城大 20140624 1
openrtm
•
1.4K views
130710 01 von openrtm
130710 01
openrtm
•
1.2K views
ROBOMECH2023 RTミドルウェア講習会 第1部 von openrtm
ROBOMECH2023 RTミドルウェア講習会 第1部
openrtm
•
18 views
Nedo講座・rtmセミナー von openrtm
Nedo講座・rtmセミナー
openrtm
•
624 views
160705-01 RTミドルウエア講習会・名城大 von openrtm
160705-01 RTミドルウエア講習会・名城大
openrtm
•
405 views
20130329 rtm01 von openrtm
20130329 rtm01
openrtm
•
339 views
東京工業大学「ロボット技術・ロボットミドルウェア」 von NoriakiAndo
東京工業大学「ロボット技術・ロボットミドルウェア」
NoriakiAndo
•
577 views
150629 01 von openrtm
150629 01
openrtm
•
676 views
130329 01 von openrtm
130329 01
openrtm
•
720 views
Rtm講習会 140626 01 von openrtm
Rtm講習会 140626 01
openrtm
•
610 views
200520 ユビキタスロボティクス特論 von NoriakiAndo
200520 ユビキタスロボティクス特論
NoriakiAndo
•
87 views
Open lab2013パネル原稿集 von openrtm
Open lab2013パネル原稿集
openrtm
•
2.6K views
Using SysML in an RTC-based Robotics Application von Kenji Hiranabe
Using SysML in an RTC-based Robotics Application
Kenji Hiranabe
•
7.9K views
131017 cnr研究会 ando von openrtm
131017 cnr研究会 ando
openrtm
•
633 views
RTM on Androidの紹介 von openrtm
RTM on Androidの紹介
openrtm
•
2.4K views
130719 01 von openrtm
130719 01
openrtm
•
774 views
190418 titech robotics von NoriakiAndo
190418 titech robotics
NoriakiAndo
•
865 views
東京工業大学「ロボット技術」ロボットミドルウェア von NoriakiAndo
東京工業大学「ロボット技術」ロボットミドルウェア
NoriakiAndo
•
495 views
Más de openrtm
ピッキングシステム von
ピッキングシステム
openrtm
706 views
•
9 Folien
GNGを使った未知環境における経路計画 von
GNGを使った未知環境における経路計画
openrtm
713 views
•
10 Folien
まねっこロボット von
まねっこロボット
openrtm
719 views
•
15 Folien
商品自動補充ロボットシステム von
商品自動補充ロボットシステム
openrtm
712 views
•
13 Folien
RTサマーキャンプ2022最終発表_都立大.pptx von
RTサマーキャンプ2022最終発表_都立大.pptx
openrtm
715 views
•
15 Folien
SysML実習20220822SC_GA.pdf von
SysML実習20220822SC_GA.pdf
openrtm
822 views
•
10 Folien
Más de openrtm
(20)
ピッキングシステム von openrtm
ピッキングシステム
openrtm
•
706 views
GNGを使った未知環境における経路計画 von openrtm
GNGを使った未知環境における経路計画
openrtm
•
713 views
まねっこロボット von openrtm
まねっこロボット
openrtm
•
719 views
商品自動補充ロボットシステム von openrtm
商品自動補充ロボットシステム
openrtm
•
712 views
RTサマーキャンプ2022最終発表_都立大.pptx von openrtm
RTサマーキャンプ2022最終発表_都立大.pptx
openrtm
•
715 views
SysML実習20220822SC_GA.pdf von openrtm
SysML実習20220822SC_GA.pdf
openrtm
•
822 views
RTミドルウェアサマーキャンプ資料2022.pdf von openrtm
RTミドルウェアサマーキャンプ資料2022.pdf
openrtm
•
821 views
NEDO講座 MoveIt! チュートリアル 第1部 von openrtm
NEDO講座 MoveIt! チュートリアル 第1部
openrtm
•
817 views
5.総合演習(2) von openrtm
5.総合演習(2)
openrtm
•
138 views
4.総合演習(1) von openrtm
4.総合演習(1)
openrtm
•
134 views
3.RTCプログラミング演習 von openrtm
3.RTCプログラミング演習
openrtm
•
145 views
2.プログラミングの基礎 von openrtm
2.プログラミングの基礎
openrtm
•
122 views
OpenRTM概要 von openrtm
OpenRTM概要
openrtm
•
580 views
Slam実習 von openrtm
Slam実習
openrtm
•
495 views
Rtshell入門 von openrtm
Rtshell入門
openrtm
•
501 views
Rtコンポーネント作成入門 von openrtm
Rtコンポーネント作成入門
openrtm
•
471 views
Rtミドルウェアサマーキャンプ2021_宮本信彦 von openrtm
Rtミドルウェアサマーキャンプ2021_宮本信彦
openrtm
•
852 views
RTミドルウェアサマーキャンプ2021_坂本武志_1 von openrtm
RTミドルウェアサマーキャンプ2021_坂本武志_1
openrtm
•
794 views
Rtミドルウェアサマーキャンプ資料2021_坂本武志_2 von openrtm
Rtミドルウェアサマーキャンプ資料2021_坂本武志_2
openrtm
•
64 views
Rtミドルウェアサマーキャンプ資料2021_菅佑樹 von openrtm
Rtミドルウェアサマーキャンプ資料2021_菅佑樹
openrtm
•
794 views
Último
東京工業大学の新しい総合型・学校推薦型選抜(一般枠・女子枠)『環境・社会理工学院の変更点、出題のねらいと出題例』 von
東京工業大学の新しい総合型・学校推薦型選抜(一般枠・女子枠)『環境・社会理工学院の変更点、出題のねらいと出題例』
Tokyo Institute of Technology
329 views
•
7 Folien
東京工業大学の新しい総合型・学校推薦型選抜(一般枠・女子枠)『情報理工学院の変更点、出題のねらいと出題例』 von
東京工業大学の新しい総合型・学校推薦型選抜(一般枠・女子枠)『情報理工学院の変更点、出題のねらいと出題例』
Tokyo Institute of Technology
344 views
•
4 Folien
東京工業大学の新しい総合型・学校推薦型選抜(一般枠・女子枠)『工学院の変更点、出題のねらいと出題例』 von
東京工業大学の新しい総合型・学校推薦型選抜(一般枠・女子枠)『工学院の変更点、出題のねらいと出題例』
Tokyo Institute of Technology
358 views
•
3 Folien
GL09.pdf von
GL09.pdf
Masato FUKUHARA
28 views
•
18 Folien
東京工業大学の新しい総合型・学校推薦型選抜(一般枠・女子枠)『生命理工学院の変更点、出題のねらいと出題例』 von
東京工業大学の新しい総合型・学校推薦型選抜(一般枠・女子枠)『生命理工学院の変更点、出題のねらいと出題例』
Tokyo Institute of Technology
335 views
•
3 Folien
GP09.pdf von
GP09.pdf
Masato FUKUHARA
155 views
•
18 Folien
Último
(10)
東京工業大学の新しい総合型・学校推薦型選抜(一般枠・女子枠)『環境・社会理工学院の変更点、出題のねらいと出題例』 von Tokyo Institute of Technology
東京工業大学の新しい総合型・学校推薦型選抜(一般枠・女子枠)『環境・社会理工学院の変更点、出題のねらいと出題例』
Tokyo Institute of Technology
•
329 views
東京工業大学の新しい総合型・学校推薦型選抜(一般枠・女子枠)『情報理工学院の変更点、出題のねらいと出題例』 von Tokyo Institute of Technology
東京工業大学の新しい総合型・学校推薦型選抜(一般枠・女子枠)『情報理工学院の変更点、出題のねらいと出題例』
Tokyo Institute of Technology
•
344 views
東京工業大学の新しい総合型・学校推薦型選抜(一般枠・女子枠)『工学院の変更点、出題のねらいと出題例』 von Tokyo Institute of Technology
東京工業大学の新しい総合型・学校推薦型選抜(一般枠・女子枠)『工学院の変更点、出題のねらいと出題例』
Tokyo Institute of Technology
•
358 views
GL09.pdf von Masato FUKUHARA
GL09.pdf
Masato FUKUHARA
•
28 views
東京工業大学の新しい総合型・学校推薦型選抜(一般枠・女子枠)『生命理工学院の変更点、出題のねらいと出題例』 von Tokyo Institute of Technology
東京工業大学の新しい総合型・学校推薦型選抜(一般枠・女子枠)『生命理工学院の変更点、出題のねらいと出題例』
Tokyo Institute of Technology
•
335 views
GP09.pdf von Masato FUKUHARA
GP09.pdf
Masato FUKUHARA
•
155 views
GL10.pdf von Masato FUKUHARA
GL10.pdf
Masato FUKUHARA
•
18 views
東京工業大学の新しい総合型・学校推薦型選抜(一般枠・女子枠)『理学院の変更点、出題のねらいと出題例』 von Tokyo Institute of Technology
東京工業大学の新しい総合型・学校推薦型選抜(一般枠・女子枠)『理学院の変更点、出題のねらいと出題例』
Tokyo Institute of Technology
•
317 views
SPTR 3_Revised.pdf von スパトレ
SPTR 3_Revised.pdf
スパトレ
•
9 views
高校生起業家教育プログラム「エヌイチ道場」インパクトレポート2.pdf von Sunaba
高校生起業家教育プログラム「エヌイチ道場」インパクトレポート2.pdf
Sunaba
•
10 views
181106 01
1.
RTミドルウェアによるロボットプログラミング技術 1.コース概要
2.
ロボットを構成する要素 • センサ – エンコーダ –
⼒・磁気・加速度 など • アクチュエータ – モータなど • 機構(メカ) + • コンピュータ – ソフトウエア 2
3.
フィードバック制御 3 ⾓度 電圧 回転 ⽬標⾓度 ロータリーエンコーダ (⾓度を読むセンサ) モータ コンピュータ 制御理論 たいていはソフト ウェア(プログラ ム)で実現される リアルタイム実⾏ (リアルタイムOS上)
4.
運動学 4 運動学(kinematics)とは位置 の移動とその時間変化を対応さ せて考える学問であり、数理的 な⼿法であり、物理学の原理を 基礎としていない。⼀般的に物 体の状態は、移動と回転の運動 学の両⽅を兼ね合わせて記述す る。 ℓ1 ℓ2 θ1 θ2 ( x ,
y ) Dq vl vrv wl wr rl rr L ロボットアームの運動 学 移動ロボットの運動学 ロボットの機構(メカ)の運動を 数式で(プログラムとして)記述す る モータ モータ
5.
順運動学・逆運動学(2⾃由度の場合) • 順運動学 関節の⾓度がわかっている とき、XY座標を求めること ができる • 逆運動学 XY座標がわかっているとき 、関節の⾓度を求めること ができる ℓ1 ℓ2 θ1 θ2 (
x , y ) ℓ1 ℓ2 θ1 θ2 ℓd α φ β ( x , y ) 注︓どの場合も腕の⻑さははじめから与えられている 5 これらが分 かっている とき 関節角が 分かって いるとき 手先の位置 を求める 手先の位置 が分かって いるとき 関節角度 を求める 関節角度 を求める
6.
移動ロボットの制御 6 デッドレコニング (Dead Reckoning): ⾞輪のエンコーダや ジャイロ等内界センサのみ利⽤す る⾃⼰位置を推定⼿法。誤差が蓄 積するため⻑時間使⽤できない。 オドメトリ(Odometry)
と呼ばれ ることもある。 ナビゲーション(Navigation): 現 在位置を推定しながらロボットを⽬ 的地まで移動させること。 内界センサ︓⾞輪の⾓速度やジャ イロ等ロボットの内部の情報を計 測するセンサ 外界センサ︓レーザーや⾳波、カ メラ、GPS等ロボットの外部の情 報を取得するセンサ SLAM (スラムと読む、 Simultaneous Localization and Mapping) ︓外界センサを ⽤いて、ロボット周辺のマップを 作成しながら同時に⾃⼰位置も推 定する技術。センサには、レー ザー(2次元、3次元)やカメラ、 ⾳波などが⽤いられる。相対位置 を⽐較的安定的に推定できる。 パスプランニング (Path Planning) ︓与えられたマップ上 で、現在位置から⽬的地までの経路 を計画する⽅法。 ⾃⼰位置推定 (Localization, ローカリゼーション、ローカライ ゼーション) ︓種々のセンサを利 ⽤し、ロボットの現在の位置を推 定する技術。移動ロボットを制御 するために最も基本的かつ必要と される技術。
7.
ロボットアームの制御 7 プランニング: 現在位置から⽬的位 置まで(主に⼿先を)どのように アームを制御し動かすかを計画する こと、またはその⼿法。 ⾃由度 (Degree
of freedom): 制 御できる軸の数。3次元空間内で、 物体を任意の位置姿勢へ移動させる ためには、6⾃由度以上が必要。 ロボットアーム︓物体を把持するな どしてある位置からある位置まで移 動させることを⽬的としたロボット。 マニピュレータとも呼ばれる。 エンドエフェクタ (End-effecter 終端(or 末端、⼿先)効果器)︓ アームの先端に取り付けられた外界 に働きかける部分。≒ロボットハン ド、グリッパなどとも呼ばれる。 位置制御︓ ⼿先や関節を⽬的に 位置または⾓度まで動かす制御。 ほとんどのロボットアームは位置 制御で利⽤されている。 速度制御︓ ⼿先や関節を⽬的の 速度で制御する⽅法。 ⼒制御︓⼒センサやモータの電流 を利⽤することで、⼿先や関節に かかる⼒を制御する⽅法。主に接 触、倣い動作(コンプライアンス 制御)が必要な作業で利⽤される。 ティーチング・プレイバック︓ロ ボットにあらかじめ覚えさせた動 作を繰り返しさせること、またそ うした利⽤⽅法。 ティーチング︓ロボットに繰り返 し動作させるための動き(⼿先の 軌道)を覚えさせる作業。
8.
ロボットを構成する要素 8 メカ・アクチュエータ・センサ コンピュータ・ソフトウエア(プログラム) 制御 ⾃律移動 学習遠隔操作 計測・観測 対話 ⾏動⽣成 ・作業 これらのほとんどは ソフトウエア(プログラム)として 実現されコンピュータ上で実⾏される
9.
9 概要 1. ロボットシステムプログラミングの現状 2. ロボットOS・ミドルウェア 3.
RTミドルウェア(RTM)を⽤いたロボット 開発
10.
10 ロボットシステムプログラミング の現状
11.
コンピュータとソフトウエア パソコン、ロボット、組込みシステム 11 マイコン OS 無し、uITRON,etc… プログラム (C⾔語、アセンブリ) 組込みシステム パソコン OS Windows・Macなど プログラム (⾼級⾔語) PC・周辺機器 コンピュータ OS RTOS, 汎⽤OS (Windows・UNIX)・ 組込OS(uITRON)・OS無し,
etc… プログラム (⾼級⾔語、C・アセンブリ) ロボット ロボットのシステム構成: 組込機器と汎用OS(のヘッドレスシステム)的側面を持つ
12.
ロボットソフトウェア基盤(ロボットOS) • 現状 ROS,RT-Middleware,
OROCOS, OPRoS, NAOqi, etc. がある 12 音声合成 ンポーネントコ カメラ ンポーネントコ 力センサ ンポーネントコ アクチュエータ ンポーネントコ アクチュエータ ンポーネントコ レーサレンジ ァインダ ンポーネント フ コ アーム ンポーネントコ サービスロボット 認識・対話 ンポーネントコ 移動台車 ンポーネントコ モジュール(コンポーネント)指向でソフトウェ アを作成し組み合わせる⼿法が主流 • 再利⽤性 • 柔軟性 • 開発の容易さ • 信頼性 等の⾯から、こうしたミドルウェ ア・ロボットOSを利⽤しないこ とは、世界的潮流から⾒ても不利 である。
13.
ロボットソフトウェア開発の⽅向性 コンポーネント指向開発従来型開発 カメラ マイク 頭・腕駆動 ⾳声合成 ステレオビジョン
対話⾳声認識 顔認識 ミドルウェア ステレオビジョン 対話⾳声認識 顔認識 カメラ マイク 頭・腕駆動 ⾳声合成 様々な機能を融合的に設計 実⾏時効率は⾼いが、柔軟性に⽋ける 複雑化してくると開発が困難に ⼤規模複雑な機能の分割・統合 開発・保守効率化(機能の再利⽤等) システムの柔軟性向上 13
14.
14 ミドルウエア・コンポーネント等 • ミドルウエア – OSとアプリケーション層の中間に位置し、特定の⽤途に対して 利便性、抽象化向上のために種々の機能を提供するソフトウエ ア –
例︓RDBMS、ORB等。定義は結構曖昧 • 分散オブジェクト(ミドルウエア) – 分散環境において、リモートのオブジェクトに対して透過的ア クセスを提供する仕組み – 例︓DDS、CORBA、Ice、Java RMI、DCOM等 • コンポーネント – 再利⽤可能なソフトウエアの断⽚(例えばモジュール)であり、 内部の詳細機能にアクセスするための(シンタクス・セマン ティクスともにきちんと定義された)インターフェースセット をもち、外部に対してはそのインターフェースを介してある種 の機能を提供するモジュール。 • CBSD(Component Based Software Development) – ソフトウエア・システムを構築する際の基本構成要素をコン ポーネントとして構成するソフトウエア開発⼿法
15.
モジュール化のメリット • 再利⽤性の向上 – 同じモジュールを様々なシステムに使いまわせる •
選択肢の多様化 – 同じ機能を持つ多様なモジュールを利⽤可能 • 柔軟性の向上 – モジュールの接続構成を変えるだけで様々なシステ ムを構築可能 • 信頼性の向上 – モジュール単位でテスト可能なため信頼性の向上に つながる • 堅牢性の向上 – システムがモジュールで分割されているので、⼀つ の問題が全体に波及しにくい 15
16.
ロボットOS・ミドルウエアとは︖ • ロボットシステム構築を効率化するための共通機能を提 供する基盤ソフトウエア – 「ロボットOS」と呼ばれることもある –
インターフェース・プロトコルの共通化、標準化 – 例として • モジュール化・コンポーネント化フレームワークを提供 • モジュール間の通信をサポート • パラメータの設定、配置、起動、モジュールの複合化(結合)機能 を提供 • 抽象化により、OSや⾔語間連携・相互運⽤を実現 • 2000年ごろから開発が活発化 – 世界各国で様々なミドルウエアが開発・公開されている 16
17.
ミドルウェアを利⽤した開発の利点 17 ℓ1 ℓ2 θ2 ( x ,
y ) θ1 既存のものが 再利⽤可能 新規開発が必要 ライブラリなどを 利⽤して⾃作 3DカメラPoint Cloud 把持戦略 プランニング 逆運動学計算 ロボットアーム制御 グリッパ制御 ミドルウェアを利⽤する と、既存のモジュールが 利⽤できる 開発するときに新規に作 らなければならない部分 は少なくて済む ピッキングロボットの構築例 ※図は実際の構成ではありません。
18.
18 ロボットOS・ミドルウェア
19.
19 RTミドルウェア OpenRTM-aist
20.
2020 • RT =
Robot Technology cf. IT – ≠Real-time – 単体のロボットだけでなく、さまざまなロボット技術に基づく 機能要素をも含む (センサ、アクチュエータ, 制御スキーム、ア ルゴリズム、etc….) • RT-Middleware (RTM) – RT要素のインテグレーションのためのミドルウエア • RT-Component (RTC) – RT-Middlewareにおけるソフトウエアの基本単位 RT-Middleware + + + + + RTとは? 産総研版RTミドルウエア OpenRTM-aist
21.
ロボットシステムの構造 多くの機能要素(コンポーネント)から構成される ⾳声合成 ンポーネントコ カメラ ンポーネントコ カメラ ンポーネントコ 画像データ 画像データ ポート データ・コマンドの流れ 顔位置 合せ問 ⽂字データ ⾳声データ ⼈物データ カメラコントロール 表情データ ⽂字データ ジェスチャ 道データ軌 頭・腕駆動 ンポーネントコ マイク ンポーネントコ ステレオビジョン コンポーネント 対話 ンポーネントコ ⾳声認識 コンポーネント 顔認識 ンポーネントコ ロボット体内のコンポーネントによる構成例
22.
22 RTミドルウエアとRTコンポーネント 22 RT コンポーネント フレームワーク RT コンポーネント ロジック ロジックを箱(フレームワーク)に⼊れたもの=RTコンポーネント(RTC) RTミドルウエア RTC RTC RTC
RTC RTC RTC RTC RTC RTCの実⾏環境(OSのようなもの)=RTミドルウエア(RTM) ※RTCはネットワーク上に分散可能 ・デバイス制御 ・制御アルゴリズム ・アプリケーション etc…
23.
RTコンポーネント化のメリット モジュール化のメリットに加えて • ソフトウエアパターンを提供 – ロボットに特有のソフトウエアパターンを提供する ことで、体系的なシステム構築が可能 •
フレームワークの提供 – フレームワークが提供されているので、コアのロジ ックに集中できる • 分散ミドルウエア – ロボット体内LANやネットワークロボットなど、分 散システムを容易に構築可能
24.
Inactive Active Error アクティビティ・実⾏コンテキスト ライフサイクルの管理・コアロジックの実⾏ 共通の状態遷移 センサRTC 複合実⾏ 制御RTC アクチュエータRTC エンコーダ コンポーネント アクチュエータ コンポーネント 制御器 ンポーネントコ 1 TI s TDs Kp+ - ⽬標値 位置 位置 電圧 データポート •
データ指向ポート • 連続的なデータの送受信 • 動的な接続・切断 データ指向通信機能 サーボの例 • 定義可能なインターフェースを持つ • 内部の詳細な機能にアクセス – パラメータ取得・設定 – モード切替 – etc… サービスポート 画像 データ 3Dデプス データ ステレオビジョンの例 ステレオビジョン インターフェース ・モード設定関数 ・座標系設定関数 ・キャリブレーション ・etc… サービスポート ステレオビジョン コンポーネント データポート サービス指向相互作⽤機能 名前 値 セット名 名前 値 セット名 複数のセットを 動作時に 切り替えて 使⽤可能 コンフィギュレーション • パラメータを保持する仕組み • いくつかのセットを保持可能 • 実⾏時に動的に変更可能 RTコンポーネントの主な機能
25.
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同⼠の接続 は、プログラム 実⾏中に動的に ⾏うことが出来る。
26.
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とデータポート標準) 採択
27.
実⽤例・製品化例 災害対応ロボット操縦シミュレータ︓ 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(アールティ)
28.
ROS(Robot Operating System) •
⽬的︓ロボット研究を効率的にする • OSではない – Robot Operating System, Robot Open Source • UNIX哲学 – UNIX的なコンパクトなツール、ライブラリ群による 効率的なインテグレーション環境を提供する。 – モジュール性、柔軟性、再利⽤性、⾔語・OS⾮依存 、オープンソース • プラットフォームアーキテクチャ – 独⾃ミドルウエア(独⾃IDLからコード⽣成) – メッセージベース – pub/subモデル、RPCモデル 28
29.
/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独⾃プロトコル
30.
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.
リアルタイムシステムにおける違い 31 非リアルタイム EC リアルタイムEC 外部トリガEC 時間により駆動 デッドラインを守って駆動
外部からのトリガで駆動 ロジック ロジック ロジック RTC RTC RTC アタッチ アタッチ アタッチ 実行時に動的に入れ替え可能 外部トリガ スレッド リアルタイム スレッド 非リアルタイム スレッド 時間により駆動 デッドラインを守って駆動 外部からのトリガで駆動 ロジック ロジック ロジック ROS ROS ROS 実行形式はコンパイル時に決定され変更不可 RTMROS
32.
リアルタイム・複合化 • ROS: 1ノード1プロセス –
組合せて密結合(シーケンシャルにリアルタイム実行)は出来ない – roscontrol, realtime-tools といった3rd partyのツールを利用すると同様のこ とが可能 – 但し、ノードの作り方は全く異なる 32 1 TI s TDs Kp+ - センサRTC 制御器RTC アクチュエータRTC (リアルタイム)実行コンテキストEC ロジック ロジックロジック 実行 実行 実行 モータ等 ロータリー エンコーダ等 複数のRTCによる複合化、リアルタイム化が可能 EC・RTCにより実行ロジックが分離されており様々な実行形態を実現可能
33.
RTミドルウェア(RTM) を⽤いたロボット開発 33
34.
システム運⽤システム開発 システム開発の流れ RTCBuilder RTSystemEditor rtshell コンポーネント開発 設計 テス ト 実装 設計 テス ト 実装 システム開発のフェーズごとに様々なツールを利⽤
35.
RTCBUilderを⽤いたRTCの開発 35 コンポーネント の仕様 RTCBuilder コードの雛型 (C++のクラス) コアロジック RTC開発者が開 発したプログラ ム資産 .so or
DLL 雛型にコアロジッ クを埋め込む コンパイルコード⽣成 どのようなコンポーネントか︖ ・名前 ・データポート ・サービスポート ・コンフィギュレーション 実⾏ マネージャ (ミドルウエア)
36.
コンポーネント作成の流れ 36 RTBUilder CMake Visual
C++ コンポーネントの 仕様の⼊⼒ VCプロジェクトファイル またはMakefileの⽣成 実装およびコンパイル 実⾏ファイルの⽣成 RTBUilder CMake make + gcc (g++) Windows Linux 途中まで流れは同じ、コンパイラが異なる
37.
コード例 • 生成されたクラスのメン バー関数に必要な処理 を記述 • 主要な関数 –
onExecute (周期実行) • 処理 – InPortから読む – OutPortへ書く – サービスを呼ぶ – コンフィギュレーションを 読む 37 開発者が書く のはこの部分 だけ 大部分はツール (RTCBuilder)で 自動生成される
38.
コンポーネント内の状態遷移 ActiveDo/RTC::onExecuteはここに入る (DataFlow型のコンポーネントのとき) ユーザがあまり 意識しなくてよい部分 コンポーネント開発時に 必要な部分 Inactive Active Error
39.
コールバック関数 コールバック関数 処理 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
40.
InPort • InPortのテンプレート第2引数:バ ッファ – ユーザ定義のバッファが利用 可能 •
InPortのメソッド – read(): InPort バッファから バインドされた変数へ最新値 を読み込む – >> : ある変数へ最新値を読 み込む リングバッファ バインドされた変数 read() operator>> 最新値 InPort Robot Component Sensor Data 例 基本的にOutPortと対になる データポートの型を 同じにする必要あり
41.
OutPort • OutPortのテンプレート第2引数: バッファ – ユーザ定義のバッファが利用 可能 •
OutPortのメソッド – write(): OutPort バッファへ バインドされた変数の最新値 として書き込む – >> : ある変数の内容を最新 値としてリングバッファに書き 込む リングバッファ バインドされた変数 write() operator<< OutPort 最新値 Sensor Component Sensor Data 例基本的にInPortと対になる データポートの型を 同じにする必要あり
42.
動作シーケンス 42 ネームサーバ ① 参照を登録 ②
参照を登録 ③ 参照を取得 ④ ポートを接続
43.
まとめ 1. ロボットシステムプログラミングの現状 → コンポーネント指向、ミドルウエアの利⽤が主流に なりつつある 2.
ロボットOS・ミドルウェア → RTM、ROS等のミドルウエアがある → RTM︓国際標準、多様なOS・⾔語・リアルタイム制 御をサポート 3. RTミドルウェア(RTM)を⽤いたロボット開発 → RTC作成 → システム構築 → 運⽤ → ツールの利⽤で作業が容易に 43