Submit Search
NEDO講座 MoveIt! チュートリアル 第1部
0 likes
1,126 views
O
openrtm
NEDO講座 MoveIt! チュートリアル 第1部
Education
Read more
1 of 35
Download now
Download to read offline
1
2
3
4
Most read
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Most read
31
32
33
34
Most read
35
More Related Content
PDF
tf,tf2完全理解
Koji Terada
PDF
WindowsではじめるROSプログラミング
Takayuki Goto
PDF
02 第3.1節-第3.5節 ROS2の基本機能(1/2) ROS2勉強合宿 @別府温泉
Mori Ken
PPTX
Turtlebot3とrealsenseで作るお手軽移動ロボットros japan ug #23 関西勉強会
Hiroaki Kaneda
PDF
ROSによる今後のロボティクスのあり方
Mori Ken
PDF
MoveItの新機能、 pilz industrial motion を試してみた
Ryo Kabutan
PDF
オープンソース SLAM の分類
Yoshitaka HARA
PDF
ROS を用いた自律移動ロボットのシステム構築
Yoshitaka HARA
tf,tf2完全理解
Koji Terada
WindowsではじめるROSプログラミング
Takayuki Goto
02 第3.1節-第3.5節 ROS2の基本機能(1/2) ROS2勉強合宿 @別府温泉
Mori Ken
Turtlebot3とrealsenseで作るお手軽移動ロボットros japan ug #23 関西勉強会
Hiroaki Kaneda
ROSによる今後のロボティクスのあり方
Mori Ken
MoveItの新機能、 pilz industrial motion を試してみた
Ryo Kabutan
オープンソース SLAM の分類
Yoshitaka HARA
ROS を用いた自律移動ロボットのシステム構築
Yoshitaka HARA
What's hot
(20)
PDF
SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜
SSII
PDF
つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜
Hideki Takase
PDF
01 ROS2 実用化に関するサーベイ ROS2勉強合宿 @別府温泉
Mori Ken
PDF
複数のGNSSを用いたポーズグラフ最適化
TaroSuzuki15
PDF
ROS の活用による屋外の歩行者空間に適応した自律移動ロボットの開発
Yoshitaka HARA
PDF
Jetson活用セミナー ROS2自律走行実現に向けて
Fixstars Corporation
PDF
UnityとROSの連携について
UnityTechnologiesJapan002
PDF
SLAM開発における課題と対策の一例の紹介
miyanegi
PDF
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
Kitsukawa Yuki
PPTX
mcl_3dl: amcl並に軽量な3-D/6-DoFローカリゼーションパッケージ
Atsushi Watanabe
PDF
三次元点群処理ライブラリPCLと 統合ロボットシステム研究での 利用例の紹介
Ryohei Ueda
PDF
Moveitを使ったアプリケーションの紹介
Ryodo Tanaka
PPTX
3次元SLAMは誰でもできるよ。そう、TX2とTurtleBot3ならね。
ROBOTIS Japan
PPTX
ORB-SLAMの手法解説
Masaya Kaneko
PDF
03 第3.6節-第3.8節 ROS2の基本機能(2/2)
Mori Ken
PDF
Cartographer と Autoware を用いた自律走行
Yoshitaka HARA
PDF
Cartographer を用いた 3D SLAM
Yoshitaka HARA
PDF
SSII2019企画: 画像および LiDAR を用いた自動走行に関する動向
SSII
PDF
3次元レジストレーション(PCLデモとコード付き)
Toru Tamaki
PDF
ロボティクスにおける SLAM 手法と実用化例
Yoshitaka HARA
SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜
SSII
つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜
Hideki Takase
01 ROS2 実用化に関するサーベイ ROS2勉強合宿 @別府温泉
Mori Ken
複数のGNSSを用いたポーズグラフ最適化
TaroSuzuki15
ROS の活用による屋外の歩行者空間に適応した自律移動ロボットの開発
Yoshitaka HARA
Jetson活用セミナー ROS2自律走行実現に向けて
Fixstars Corporation
UnityとROSの連携について
UnityTechnologiesJapan002
SLAM開発における課題と対策の一例の紹介
miyanegi
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
Kitsukawa Yuki
mcl_3dl: amcl並に軽量な3-D/6-DoFローカリゼーションパッケージ
Atsushi Watanabe
三次元点群処理ライブラリPCLと 統合ロボットシステム研究での 利用例の紹介
Ryohei Ueda
Moveitを使ったアプリケーションの紹介
Ryodo Tanaka
3次元SLAMは誰でもできるよ。そう、TX2とTurtleBot3ならね。
ROBOTIS Japan
ORB-SLAMの手法解説
Masaya Kaneko
03 第3.6節-第3.8節 ROS2の基本機能(2/2)
Mori Ken
Cartographer と Autoware を用いた自律走行
Yoshitaka HARA
Cartographer を用いた 3D SLAM
Yoshitaka HARA
SSII2019企画: 画像および LiDAR を用いた自動走行に関する動向
SSII
3次元レジストレーション(PCLデモとコード付き)
Toru Tamaki
ロボティクスにおける SLAM 手法と実用化例
Yoshitaka HARA
Ad
Similar to NEDO講座 MoveIt! チュートリアル 第1部
(20)
PPTX
WebDB Forum 2012 基調講演資料
Recruit Technologies
PPTX
Mbed祭り 2017@春の新横浜 20170225 竹之下
Koyo Takenoshita
PPTX
Relationship betweenddd and mvc
Takao Tetsuro
PPTX
ビッグデータ活用支援フォーラム
Recruit Technologies
PPTX
Hardware control by .NET Core 3.1
Atomu Hidaka
PDF
ROBOMECH2023 RTミドルウェア講習会 第1部
openrtm
PDF
オープンソース統合運用管理ツール『Hinemos』 --- その利便性及びインシデント管理について ---
Open Source Software Association of Japan
PPTX
20160115nodered design patterns
BMXUG
PDF
アドテク×Scala×パフォーマンスチューニング
Yosuke Mizutani
PDF
NEDO特別講座 ロボット共通プラットフォーム講習会 (1)
NoriakiAndo
PDF
第5回iocj情報交換会 info scoop三菱重工業様社内活用事例
infoScoop
PDF
1.コース概要
openrtm
PDF
201110 01 Polytech Center 1
openrtm
PPTX
ビッグデータ&データマネジメント展
Recruit Technologies
PDF
ToolChainを使った次世代DevOps環境の作り方
Harada Kazuki
PDF
131111 東工大授業「ロボット技術」資料
openrtm
PDF
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
Developers Summit
PPTX
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1
近藤 繁延
PPTX
SaaS運用での大障害の思い出と対策の共有(中噴火編)【WESEEK Tech Conf #4】
WESEEKWESEEK
PDF
組込エンジニアにも役立つ!Node-RED活用術(for Node-RED Con. Osaka)
ShigekiInatama
WebDB Forum 2012 基調講演資料
Recruit Technologies
Mbed祭り 2017@春の新横浜 20170225 竹之下
Koyo Takenoshita
Relationship betweenddd and mvc
Takao Tetsuro
ビッグデータ活用支援フォーラム
Recruit Technologies
Hardware control by .NET Core 3.1
Atomu Hidaka
ROBOMECH2023 RTミドルウェア講習会 第1部
openrtm
オープンソース統合運用管理ツール『Hinemos』 --- その利便性及びインシデント管理について ---
Open Source Software Association of Japan
20160115nodered design patterns
BMXUG
アドテク×Scala×パフォーマンスチューニング
Yosuke Mizutani
NEDO特別講座 ロボット共通プラットフォーム講習会 (1)
NoriakiAndo
第5回iocj情報交換会 info scoop三菱重工業様社内活用事例
infoScoop
1.コース概要
openrtm
201110 01 Polytech Center 1
openrtm
ビッグデータ&データマネジメント展
Recruit Technologies
ToolChainを使った次世代DevOps環境の作り方
Harada Kazuki
131111 東工大授業「ロボット技術」資料
openrtm
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
Developers Summit
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1
近藤 繁延
SaaS運用での大障害の思い出と対策の共有(中噴火編)【WESEEK Tech Conf #4】
WESEEKWESEEK
組込エンジニアにも役立つ!Node-RED活用術(for Node-RED Con. Osaka)
ShigekiInatama
Ad
More from openrtm
(20)
PPTX
ピッキングシステム
openrtm
PPTX
GNGを使った未知環境における経路計画
openrtm
PPTX
まねっこロボット
openrtm
PDF
商品自動補充ロボットシステム
openrtm
PPTX
RTサマーキャンプ2022最終発表_都立大.pptx
openrtm
PDF
SysML実習20220822SC_GA.pdf
openrtm
PDF
RTミドルウェアサマーキャンプ資料2022.pdf
openrtm
PDF
5.総合演習(2)
openrtm
PDF
4.総合演習(1)
openrtm
PDF
3.RTCプログラミング演習
openrtm
PDF
2.プログラミングの基礎
openrtm
PDF
OpenRTM概要
openrtm
PDF
Slam実習
openrtm
PDF
Rtshell入門
openrtm
PDF
Rtコンポーネント作成入門
openrtm
PDF
Rtミドルウェアサマーキャンプ2021_宮本信彦
openrtm
PDF
RTミドルウェアサマーキャンプ2021_坂本武志_1
openrtm
PPTX
Rtミドルウェアサマーキャンプ資料2021_坂本武志_2
openrtm
PDF
Rtミドルウェアサマーキャンプ資料2021_菅佑樹
openrtm
PDF
ROBOMECH2021 RTMオンライン講習会 第1部
openrtm
ピッキングシステム
openrtm
GNGを使った未知環境における経路計画
openrtm
まねっこロボット
openrtm
商品自動補充ロボットシステム
openrtm
RTサマーキャンプ2022最終発表_都立大.pptx
openrtm
SysML実習20220822SC_GA.pdf
openrtm
RTミドルウェアサマーキャンプ資料2022.pdf
openrtm
5.総合演習(2)
openrtm
4.総合演習(1)
openrtm
3.RTCプログラミング演習
openrtm
2.プログラミングの基礎
openrtm
OpenRTM概要
openrtm
Slam実習
openrtm
Rtshell入門
openrtm
Rtコンポーネント作成入門
openrtm
Rtミドルウェアサマーキャンプ2021_宮本信彦
openrtm
RTミドルウェアサマーキャンプ2021_坂本武志_1
openrtm
Rtミドルウェアサマーキャンプ資料2021_坂本武志_2
openrtm
Rtミドルウェアサマーキャンプ資料2021_菅佑樹
openrtm
ROBOMECH2021 RTMオンライン講習会 第1部
openrtm
NEDO講座 MoveIt! チュートリアル 第1部
1.
第1部︓NEDO特別講座 およびROSの概要 国⽴研究開発法⼈産業技術総合研究所 インダストリアルCPS研究センター ソフトウェアプラットフォーム研究チーム⻑ 安藤 慶昭 1 2021年12⽉18⽇(⼟) NEDO特別講座 講習会
2.
はじめに • NEDO特別講座について • ROS概要 •
ROSの基礎 2
3.
NEDO特別講座について 3
4.
ロボット活⽤型市場化適⽤技術開発プロジェクト 4 中⼩・中堅企業 社外SIerが開発 プラットフォーム化 Easy to develop化 ロボットのプラットフォーム化により 需要を束ねることでコスト的に⾒合う ビジネスに転換 中⼩・中堅企業 現場作業者が操作 プラットフォーム化 Easy
to use化 未活⽤領域 || 多様で⼩規模な需要 既活⽤領域 || 少数の⼤規模な需要 伝 統 的 市 場 ロングテール ロボット数・システム数 需要種別 未活⽤領域へのロボット導⼊拡⼤ ⼤企業 社内SIerを擁する企業 社内SIer 保守要員 ⼩品種⼤量⽣産 モノづくり・三品産業 対物サービス ⽣活⽀援… 本プロジェクト
5.
5 ソフトウェアコンソーシアム 市場化プロジェクト実施体制 カワダ ロボティクス 富⼠ソフト ⽇本電産 ライフ ロボティクス セック・THK 名城⼤ 川崎重⼯ YOODS パナソニック 東芝 ハードウェアコンソーシアム RRI(ロボット⾰命イニシア ティブ協議会)WG3におけ る議論を経て2017年度から 開始 事業期間 •
2017〜2019年度 2017年度公募・採択 ハード開発事業者(7事業 者) • カワダロボティクス • 富⼠ソフト・⽇本電産 • 東芝 • セック・THK・名城⼤ • 川崎重⼯ • YOODS • パナソニック ソフト開発事業者(5事業 者) • 産総研 • 東⼤ • TORK • イーソル • JQA
6.
ロボットのプラットフォーム化とは 6 ⾷品 ハンドリング 組⽴作業 パーソナル モビリティ 店舗在庫監視 共通基本機能層 =共通利⽤が可能な 基盤ソフトウェア層 移動系基本機能群 地図 作成 位置 推定 経路 ⽣成 障害物 回避 経路追 従制御 アーム系基本機能 ジョグ 制御 ティー チング 衝突 回避 プラン ニング 指定経 路追従 共通基本機能群 から組み込み ビジョン系基本機能 3次元 点群 物体 認識 画像 処理 プラットフォーム SI部分 川崎重⼯ 富⼠ソフト ⽇本電産 東芝 パナソニック 移動系 基本機能 移動系 基本機能 アーム 系 基本機 能 移動系 基本機 能 アーム 系 基本機 能 ビジョ ン系 基本機 能 ソフトウェアコンソーシアムにて新規開発または既存モジュールを拡張 POS 連携 配⾞ 管理 安全 機能 配⾞ 管理 移動・ 腕連携 持ち替 制御 移動・ 腕連携 持ち替 制御 アプリケーション実証 試験⽤検証SW ハード事業者が開発 (競争領域) ソフト事業者が開発 (協調領域) 共通基本機能を活⽤し 個別アプリ部分を開発 共通部分はPF化 (ソフト事業者が開発) 適合性検証 ソフト・ハードともに 「ベース機能」+「オプション機能」+「個別開発」 でアプリケーション開発可能にすることで、SIコスト削減、分業促進
7.
7 OS ミドルウェア ナビゲーション マニピュレーショ ン ビジョン アプリケーション 品質保証済み パッケージ 品質保証済み パッケージ 品質保証済み パッケージ 構成管理 機能 運⽤ メンテナンス 機能 安全監視 機能 (未実現) セキュリティ 機能 (未実現) AIクラ ウド連携 機能 分野⾮依存の共通機能 品質保証済み パッケージ 機能要件 ⾮機能要件 ・テスト・検証に関するエビデンス ・モジュールの性能指標 ・ドキュメンテーション ・共通インターフェース仕様 ・教育・コミュニティー ・安全規格とのマッチングに関するガイドライン ・ライセンス・特許に関するガイドライン ・⻑期的な保守・運⽤体制 プラットフォーム領域 組込み対応 ROS1/ROS2 ソフトウェアコンソーシアムの取り組み eMCOS POSIX ツールチェーン 機能 安全 ROS2 ROS1 s 安全対策⽀援 ROSコード解析・品質改善 保守・維持管理体制検討 • ロボット安全設計開発 •
ロボットソフトウェア特許・ライセンス • ロボットソフトウェアアーキテクチャ • ロボットシステム開発プロセス・品質管理 • 次世代ロボット実装⼿法 • 移動ロボット評価指標 調査検討6委員会
8.
(成果物)詳細ドキュメント 8 MoveIt! 詳細ドキュメント https://robo-marc.github.io/moveit_documents/ Navigation Stack
詳細ドキュメント https://robo-marc.github.io/navigation_documents/ システム・ノードの仕様レベルまで解説することで、詳 細を知らないソフトエンジニアでも利⽤可能に。 ROSコード改善プロジェクト https://github.com/robo-marc/ros_comm ROS、MoveIt!, NavigationStack等のコードを静的解析 ツールで解析、バグ、記述上の問題点を調査し、改善、 本家へフィードバック RobotWebTool拡張 https://github.com/robo-marc/visualization_rwt ブラウザからROSシステムの操作・モニタなどを⾏う RobotWebToolsを拡張、GUI部品等を追加。Webベース でのシステム構築効率を向上させた。 https://github.com/robo-marc をぜひご覧ください。
9.
(成果物)簡単に試せる NEDO講座 ROS
セット 9 USBメモリ ROS Kinetic +川崎重⼯、富⼠ソフト、カワダロボティクス、THKのロボットモデルを動かせます︕︕ Melodicへアップデート
10.
iRex2019成果デモンストレーション 10 多数のロボットをROSおよび共通IFで制御
11.
ROS概要 11
12.
ロボットミドルウエアについて • ロボットシステム構築を効率化するための共通機 能を提供する基盤ソフトウエア – 「ロボットOS」と呼ばれることもある –
インターフェース・プロトコルの共通化、標準化 – 例として • モジュール化・コンポーネント化フレームワークを提供 • モジュール間の通信をサポート • パラメータの設定、配置、起動、モジュールの複合化(結合 )機能を提供 • 抽象化により、OSや⾔語間連携・相互運⽤を実現 • 2000年ごろから開発が活発化 – 世界各国で様々なミドルウエアが開発・公開されて いる 12
13.
13 ROS(Robot Operating System)
14.
• Willow Garage –
2007年設⽴のロボットベンチャー(⽶、Menlo Park) – 2014年事業停⽌ – Scott Hassanが出資 • googleの初期エンジンの作者の⼀⼈ – ビジネスモデル • ソフト︓ROS(無償)+ハード︓PR2 を販売 • PR2を10台無償で⼤学などに配布 • スピンアウト創出を狙う 14 Willow Garage Industrial Perception, Inc.
15.
15 ROS(Robot Operating System) 概要︓ Ø
⽶国ベンチャー Willow Garageが開発したロボット⽤OS。 Ø 2007年から開発開始。 Ø オープンソースとして広くソースコードを公開。 Ø 現在はOpen Roboticsが管理。 Ø ロボット機能要素(センサ、モータ、アーム、移動機能)をモジュール化。個別に動くプ ログラムを連携する通信部分を提供。(RTMとコンセプトは同じだが、リアルタイム・密結合機能はない) Ø Linuxのソフトウェア管理機構を活⽤し(Linuxに慣れた⼈なら)インストールが容易。 ユーザ︓ Ø Savioke、Fetchロボティクス、Clearpath Robotics、トヨタなどがロボット⽤OSとして 採⽤。 Ø 学術分野ではデファクトスタンダードとなっている 特徴︓ Ø Ubuntu Linux†上で動作(コマンド⼊⼒による操作が基本)。 Ø 他のOSは公式にはサポートしていない Ø キラーアプリケーションにより⼈気獲得 Ø rviz:ロボットの様々な状態を3Dで表⽰ Ø MoveIT!: アームの軌道計画 Ø Navigation Stack: 地図作成・経路計画 Ø 現在次バージョン︓ROS2に移⾏中 Ø RTM同様の密結合・リアルタイム機能含む Ø 通信はOMGのDDS標準を利⽤(RTMと互換性有) rviz MoveIT!
16.
• aibo – 新AiboではOpen-RではなくROSを 利⽤している模様 •
ROS kinetic(バージョン) を利⽤ – 約500以上のオープンソースソフト ウェア(ROS含む)を利⽤している • ライセンスをWebサイト上で明記 • ROSに対して⼿を加えている – 通信効率化の追加モジュール開発 • SDK(ソフトウェア開発キット ) – 将来的にユーザに提供 – ROSベースSDKの予定 16 http://oss.sony.net/License/ERS-1000/ aiboにおける利⽤
17.
ROSに関連する情報は以下の場所にまとまっています。 • ROS Wiki:
http://wiki.ros.org/ja – 様々な情報がwiki上に集約されている • ROS Discourse: https://discourse.ros.org/ – 掲⽰板、メールでも読むことができる • Qiita: https://qiita.com/search?q=ROS – 様々な⼈が解説、導⼊記録等をあげている。体系的ではないが、⾃分と同じ トラブルの場合にはたいへん役に⽴つ。 • Slack: ROS Community, ROS Japan UG などがあります。 • その他、検索すると様々な情報がでてきます。特に、エラーが起こった 場合は、まず エラーメッセージ をそのまま検索窓に⼊れて検索してみ ましょう。 17 ROSの情報を得るには︖
18.
ROS リリース履歴 • DISTRO
(=Distribution) – 配布パッケージのこと – バージョンごとに名前がついている。(⻲に関係がある) – DISTRO nameは覚えておいた⽅がよい。 現⾏Distro: http://wiki.ros.org/Distributions • Kinetic (Kinetic-Kame) – Ubuntu 16.04対応版 – 現⾏で⼀番古いが、まだユーザが多い – 2021年4⽉まで • (Lunar Loggerhead) – 2019年5⽉サポート終了 • Melodic (Melodic Morenia (ビルマメダマガメ)) – Ubuntu 18.04対応版 – 次第にこちらに移りつつある – 2023年5⽉まで • Noetic (Noetic Ninjemys (メイオラン科のカメ)) – 推奨版 – Ubuntu 20.04対応版 – 2025年3⽉まで 18 カメにまつわるコードネーム 頭⽂字はアルファベット順
19.
ROS2 【ユースケースの変化】 • 複数のロボット • 組込みCPU •
リアルタイム • 理想的でない通信環境 • 製品向け使⽤ • あらかじめ規定されたパター ンにのっとった構造化したシ ステム構成 【新たな技術】 • Zeroconf (avahi, bonjour, UPnP等) • Protocol Buffers • ZeroMQ (and the other MQs) • Redis(次世代⾼速key-valueデータストア) • WebSockets • DDS (Data Distribution Service). 19 http://design.ros2.org/articles/why_ros2.html 【ROS1では】 • 単体のロボット • 強⼒なCPU • ⾮リアルタイム • 途切れない通信環境 • 研究向け • ⾃由な枠組み(main関数) ROSを⼤幅に改良したROS2への移⾏を発表 (ROSとの互換性はない)
20.
ROS2 • 通信︓DDS(OMG標準のpub/sub通信ミドルウエア) – ミドルウェア層を作製し複数のDDS実装(製品も含む)を使え るように –
単⼀障害点がない(ROS1ではmasterが落ちると×) – QoS制御が可能に(History, Depth, Reliability, Durability) • コンポーネントモデルを導⼊ • 複数のOSに対応(Windows、MacOS) • ROS1とはブリッジで通信 – 直接は通信できない、互換性なし • セキュリティ対応(DDSセキュリティを利⽤) • リアルタイム実⾏可能(Linuxのみ) • 組込み対応 20 http://design.ros2.org/articles/ros_middleware_interface.html
21.
ROS1→ROS2へ • NASAの仕事を請け負った時に、独⾃形式のROS messageはNASAでは使えないから、プロトタイプを ROSで実装後にすべて作り直した • NASAでは何らかの標準に準拠したものでないと使えな い。その時は結局DDSを使⽤した。 •
それ以外にもROS1では、1ノード1プロセス、コンポー ネントモデルがないので、モデルベース開発にならない 、ROS masterがSPOFになっているなど不都合な点が 多々ある • それ故、ROS2ではこれらの問題点を克服するため全く 新しい実装にする予定。 21
22.
• OMG(Object Management Group)で標準化されたpub- sub型データバスミドルウェア •
Pub/sub型通信 – トピックが同じ送受信者間でデー タが配信される仕組み • SPOF(単⼀障害点)がない discoveryメカニズム • OMGのミドルウェアTF(MARS) で最もアクティブに活動してい るTFで策定 – 関連標準仕様は10程度 22 DDS (Data Distribution Service)
23.
ROS2ノードライフサイクル 23 Inactive Active Finalized CleaningUp do / onCleanup() Unconfigured Configuring do
/ onConfigure() Deactivating do / onDeactivate() Activating do / onActivate() ErrorProcessing do / onError() ShuttingDown do / onShutdown() create() configure() onCleanup: [SUCCESS] onConfigure: [SUCCESS] cleanup() onConfigure: [FAILURE] activate() deactivate() onActivate: [SUCCESS] onDeactivate: [SUCCESS] onActivate: [FAILURE] shutdown() shutdown() shutdown() onShutdown: [SUCCESS] desstroy() onError: [SUCCESS] onError: [FAILURE] Error Raised Error Raised Error Raised Error Raised Error Raised Error Raised 過渡状態を状態とみなしている以外はRTCをほぼ同じ エラー処理が明確に、終了処理が⼀体になっている 外部からのトリガによる遷移 処理結果による遷移 動作状態 待機状態 終了状態 初期状態
24.
ROS1とROS2のロジック実⾏⽅法の違い 24 1 TI s TDs Kp + - センサRTC 制御器RTC
アクチュエータRTC ロジック ロジック ロジック main() モータ等 ロータリー エンコーダ等 ROS1 ROS2 1 TI s TDs Kp + - センサRTC 制御器RTC アクチュエータRTC Executor ロジック ロジック ロジック 実⾏ 実⾏ 実⾏ モータ等 ロータリー エンコーダ等 ノードの実⾏タイミング・順序は制御できない 複数のノードを密結合してリアルタイムシステムを構成できない ノードの実⾏タイミング・順序をExecutorで決定できる 複数のノードを密結合してリアルタイムシステム化可能 main() main() モジュール (ノード) の粒度 ⼤ モジュール (ノード) の粒度 ⼩
25.
ROS2 リリース履歴 • Ardent
Apalone (2017.12) – コードネーム︓Ardent(熱烈) Apalone (アパロンカメ、北⽶原産のスッポン科のカメ) • Bouncy Bolson (2018.6) – コードネーム︓ Bouncy(弾む) Bolson (メキシコゴファーガメ、Bolson tortoise) • Crystal Clemmys (2018.12) – コードネーム︓ Crystal(透明な) Clemmys (キボシイシガメ Clemmys guttata) • Dashing Diamemata (2019.5→2021.5) – Dashing(⾛る) Diademata (カンムリヤマガメ(Rhinoclemmys diademata)) – Componentノードの推奨、OMG IDL 4.2利⽤開始, MoveIt!2 alpha • Eloquent Elusor • Rolling Ridley: スナップショット開発版 • Foxy Fitzroy (2020.6→2023.5) – Foxy (狐のような) Fitzroy (ハヤセガメ (Fitzroy River turtle)) – バグ修正、雑多なAPI改善, Security Enclave機能(同⼀IDのノードのみのアクセス制御) • Galactic Geochelone (2021.5→2022.11) – Galactic (銀河の) Geochelone (ゾウガメ) – デフォルトのDDSがGalactic Geochelone(ADLINK社製)へ変更 – Nav2 (navigation stack for ROS2)の強化 • Humble Hawksbill (2022.5?) 25 ROS1同様にカメにまつわるコードネーム
26.
ROSの基礎 26
27.
• ノード – モジュールプログラム、通常は実⾏可能な⼀つのプログラムとして、ソース およびバイナリが提供される •
パッケージ – ノードや設定ファイル、コンパイル⽅法などをまとめたもの • メッセージ – ノード間でやりとりするデータ • トピック – ノード間でやりとりするデータのラベル、同じトピック名を持つ出⼒と⼊⼒はデータ がやり取りされる 27 ROS⽤語 ROS ノード 同⼀トピック間の ポートは⾃動で接続 ROS ノード ROS ノード ROS ノード トピック velocity トピック velocity トピック velocity トピック position
28.
/rosout パラメータ サーバ • マスター︓ノードの参照やトピッ クを保持するネームサービス – システム全体で原則⼀つ→SPOF (Single
Point of Failure) – 他のノードより先に起動しなけ ればならない • パラメータサーバ︓ノードの パラメータを保持するデータ ベース – マスター内で動作、ノードから はXMLRPCでアクセス • rosout: ノードに対してstdout, stderrのような役割を果たす 28 ROS ノード ROS マスター Node0:… Node1:… Node2:… : Topic0:… Topic1:… Topic2:… : ROS ノード ノード参照・ トピックを登録 原則マスターは1つ 他のノードより先に起動 しなければならない #拡張機能でマルチマスターも可 同⼀トピック間の ポートは⾃動で接続 XMLRPCで通信 ROS独⾃プロトコル ROSの仕組み
29.
• ワークスペース作成︓ – ⾃作パッケージを置く場所 –
通常ホームdir直下の “~/catkin_ws” とすることが多い – ⾃分で作る必要あり • mkdir catkin_ws • cd catkin_ws ; catkin build ← WS初期化 • パッケージ作成︓ – ワークスペースいかにパッケージを作 成する • catkin create pkg my_pkg <opt> – パッケージ名は⼩⽂字と”_”のみ • ビルド: – catkin build でビルド • cd ~/catkin_ws • catkin build <package name> 29 ROSによるノード開発の流れ ~/catkin_ws/ ←このディレクトリでビルド + .catkin_workspace + build/ + devel/ + src/ + CMakeLists.txt ←最上位のcmake file + PackageA/ + CMakeLists.txt + package.xml ←マニュフェスト + include + パッケージ名 + インクルードファイル + src/ ← ソースファイルディレクトリ + ソースファイル Catkinのワークスペース構成
30.
• グラフリソース名 – ノード名、トピック名、メッセージタイプ名、サービス名などに付与するユニークな名前 –
“/” から始まり、”/”で区切られて階層化される – /<name0>/<name1>/<name2>/… • 相対名 – デフォルトの名前空間が指定されている場合 <名前空間名>/<リソース名> で指定可能 – 先頭に”/” がつかないことで区別される – 環境変数 ROS_NAMESPACE で指定したり、launchファイルで <node ns=“名前空間” /> で指定することができる • プライベート名 – “~” から始まる名前、ノード内でプライベートな名前空間 • アノニマス名 – 多数のノード名を⾃動でつけたい時などに使⽤ – Ros::init()の引数にinit_options::AnonymousName を指定することで、⾃動的にノード type名+時刻で⼀意な名前を⾃動でつけてくれる 30 グラフリソース名 rxgraphの出⼒例
31.
• ROSノードをビルドするツール – ROSは独⾃のビルド・パッケージツールを提供している。ROSの特徴の⼀つ 。様々なソフトウェアを効率よく管理・ビルド・配布することができる。 •
rosbuild – 廃⽌された最初のROS⽤ビルドツール • catkin (ヤナギなどの尾状花序) – 現⾏のROS⽤ビルドツール ROS2以降 • ament (ヤナギなどの尾状花序) – 最初のROS2⽤ビルドツール – 現在は表向きは次のcolconが利⽤されているが、内部的にはamentが使われている模 様 • colcon (collective construction) – ROS2⽤ビルドツール – メタビルドツール、内部的に⽤途ごとに適切なビルドツールを呼び出す – https://colcon.readthedocs.io/en/released/ 31 ROSのビルドツール (catkin)
32.
• ROSノード(群)を起動するツール – ROSは独⾃のビルド・パッケージツールを提供している。ROS の特徴の⼀つ。様々なソフトウェアを効率よく管理・ビルド・配 布することができる。 •
rosrun – ROSノード(1個)を起動するコマンド • roslaunch – ROSノード群(複数)を起動するコマンド – Roslaunch <package> <launch_file> 32 ROSの起動ツール (rosrun/roslaunch)
33.
• XMLファイルとして記述 – <launch>タグで囲む •
<node>タグ︓起動するノードを指定 – Name: インスタンス名、同⼀ノード名でも別名をつけて複数起動させることができる – Pkg: パッケージ名 – Type: ノード名 – Output: 出⼒先、screen で標準出⼒に出⼒される、複数のノードの出⼒を標準出⼒に出⼒可能 • <remap>タグ: トピック名を変更 from, toで改名前後のトピック名指定 • <arg>タグ︓roslaunch起動時にとる引数を宣⾔可能 – nameで引数名、defaultでデフォルト値を指定 • <group>タグ︓グルーピング – If⽂でargの引数をとることができる – 上の例では、mode=falseを指定すると“インスタンス名1”のノードは起動しない – Ex. roslaunch <パッケージ名> <launchファイル>.launch mode:=false ← インスタンス名1を起動させない • <param >タグ︓パラメータ指定 – コード内であらかじめ定義されているパラメータを起動時に指定する – Ex. contentという名前のパラメータ(string型) に “hogehoge” を代⼊ 33 roslaunch launch file <launch> <arg name=“mode” default=“true”> <group if=“$(arg mode)”> <node name=“インスタンス1” pkg=“パッケージ名” type=“ノード名” output=“出力先”/> </group> <node name=“インスタンス名2” pkg=“パッケージ名” type=“ノード名” output=“出力先”> <remap from=“改名前トピック名” to=“改名後トピック名"/> <param name="content" value=“hogehoge"/> </node> </launch> ROS launchファイル例
34.
• MoveIt! – マニピュレータ(ロボットアーム)のためのモ ーションプラニングのフレームワーク・ライブ ラリ –
⽬的の⼿先位置・姿勢を与えると、マニピュレ ータの⼿先の現在位置・姿勢から⽬的位置・姿 勢までの経路を⾃動的に計算する – 計算結果に基づき、実際にマニピュレータを制 御し移動させる – 障害物の情報があらかじめ与えられている場合 、それらにぶつからない経路を計算することが できる。 • ROS、rviz – MoveIt!には、ROSでMoveIt!利⽤するのに便 利なパッケージ・ノード群っが提供されている 。 – ROSの可視化ツールrvizと連携し、ロボットの 実機がなくても、プランニング結果をアニメー ションで表⽰することが可能 – rviz上からGUIでMoveIt!でロボットの操作が 可能 • MoveIt! Commander – MoveIt!をコマンドラインから使⽤するインタ ーフェース MoveIt!とは︖ ros pkg MoveIt! pkg プランニングIF 衝突検出 プランニング シーン
35.
提⾔ • ⾃前主義はやめよう︕︕ – 書きたてのコードより、いろいろな⼈に何万回も実⾏されたコ ードのほうが動くコードである︕︕ –
⾃分にとって本質的でない部分は任せて、本当にやりたい部分 ・やるべき部分のコードを書こう︕︕ – 誰かがリリースしたプログラムは⼀度は動いたことがあるプロ グラムである︕︕ – ⼈のコードを読むのが⾯倒だからと捨ててしまうのはもったい ない︕︕ • オープンソースにコミットしよう︕︕ – 臆せずMLやフォーラムで質問しよう︕︕ – どんなに初歩的な質問でも他の⼈にとっては価値ある情報であ る。 – 要望を積極的にあげよう︕︕ – できればデバッグしてパッチを送ろう︕ 35
Download