Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
openrtm
PDF, PPTX
1,149 views
NEDO講座 MoveIt! チュートリアル 第1部
NEDO講座 MoveIt! チュートリアル 第1部
Education
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 35
2
/ 35
3
/ 35
4
/ 35
5
/ 35
6
/ 35
7
/ 35
Most read
8
/ 35
9
/ 35
10
/ 35
11
/ 35
12
/ 35
13
/ 35
14
/ 35
Most read
15
/ 35
16
/ 35
17
/ 35
18
/ 35
19
/ 35
20
/ 35
21
/ 35
22
/ 35
23
/ 35
24
/ 35
Most read
25
/ 35
26
/ 35
27
/ 35
28
/ 35
29
/ 35
30
/ 35
31
/ 35
32
/ 35
33
/ 35
34
/ 35
35
/ 35
More Related Content
PDF
UnityとROSの連携について
by
UnityTechnologiesJapan002
PDF
ROSによる今後のロボティクスのあり方
by
Mori Ken
PDF
Cartographer と Autoware を用いた自律走行
by
Yoshitaka HARA
PDF
ROS2勉強会 4章前半
by
tomohiro kuwano
PDF
MoveItの新機能、 pilz industrial motion を試してみた
by
Ryo Kabutan
PDF
ROS を用いた自律移動ロボットのシステム構築
by
Yoshitaka HARA
PDF
06 第5.1節-第5.7節 ROS2に対応したツール/パッケージ
by
Mori Ken
PDF
MoveItの新機能、 OMPL Constrained Planningを試してみた
by
Ryo Kabutan
UnityとROSの連携について
by
UnityTechnologiesJapan002
ROSによる今後のロボティクスのあり方
by
Mori Ken
Cartographer と Autoware を用いた自律走行
by
Yoshitaka HARA
ROS2勉強会 4章前半
by
tomohiro kuwano
MoveItの新機能、 pilz industrial motion を試してみた
by
Ryo Kabutan
ROS を用いた自律移動ロボットのシステム構築
by
Yoshitaka HARA
06 第5.1節-第5.7節 ROS2に対応したツール/パッケージ
by
Mori Ken
MoveItの新機能、 OMPL Constrained Planningを試してみた
by
Ryo Kabutan
What's hot
PDF
Moveitを使ったアプリケーションの紹介
by
Ryodo Tanaka
PDF
tf,tf2完全理解
by
Koji Terada
PDF
建設シミュレータOCSの開発 / OCS・VTC on Unity におけるROS対応機能について
by
UnityTechnologiesJapan002
PDF
【CVPR 2020 メタサーベイ】Neural Generative Models
by
cvpaper. challenge
PDF
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
by
akio19937
PDF
リンク機構を有するロボットをGazeboで動かす
by
tomohiro kuwano
PDF
Cartographer を用いた 3D SLAM
by
Yoshitaka HARA
PDF
オープンソース SLAM の分類
by
Yoshitaka HARA
PPTX
3次元SLAMは誰でもできるよ。そう、TX2とTurtleBot3ならね。
by
ROBOTIS Japan
PDF
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)
by
Toshihiko Yamakami
PDF
SSII2021 [TS1] Visual SLAM ~カメラ幾何の基礎から最近の技術動向まで~
by
SSII
PDF
Visual slam
by
Takuya Minagawa
PDF
Jetson活用セミナー ROS2自律走行実現に向けて
by
Fixstars Corporation
PPTX
近年のHierarchical Vision Transformer
by
Yusuke Uchida
PDF
2018/12/28 LiDARで取得した道路上点群に対するsemantic segmentation
by
Takuya Minagawa
PPTX
mcl_3dl: amcl並に軽量な3-D/6-DoFローカリゼーションパッケージ
by
Atsushi Watanabe
PDF
Autoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォーム
by
Takuya Azumi
PDF
02 第3.1節-第3.5節 ROS2の基本機能(1/2) ROS2勉強合宿 @別府温泉
by
Mori Ken
PDF
ROS の活用による屋外の歩行者空間に適応した自律移動ロボットの開発
by
Yoshitaka HARA
PDF
03 第3.6節-第3.8節 ROS2の基本機能(2/2)
by
Mori Ken
Moveitを使ったアプリケーションの紹介
by
Ryodo Tanaka
tf,tf2完全理解
by
Koji Terada
建設シミュレータOCSの開発 / OCS・VTC on Unity におけるROS対応機能について
by
UnityTechnologiesJapan002
【CVPR 2020 メタサーベイ】Neural Generative Models
by
cvpaper. challenge
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
by
akio19937
リンク機構を有するロボットをGazeboで動かす
by
tomohiro kuwano
Cartographer を用いた 3D SLAM
by
Yoshitaka HARA
オープンソース SLAM の分類
by
Yoshitaka HARA
3次元SLAMは誰でもできるよ。そう、TX2とTurtleBot3ならね。
by
ROBOTIS Japan
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)
by
Toshihiko Yamakami
SSII2021 [TS1] Visual SLAM ~カメラ幾何の基礎から最近の技術動向まで~
by
SSII
Visual slam
by
Takuya Minagawa
Jetson活用セミナー ROS2自律走行実現に向けて
by
Fixstars Corporation
近年のHierarchical Vision Transformer
by
Yusuke Uchida
2018/12/28 LiDARで取得した道路上点群に対するsemantic segmentation
by
Takuya Minagawa
mcl_3dl: amcl並に軽量な3-D/6-DoFローカリゼーションパッケージ
by
Atsushi Watanabe
Autoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォーム
by
Takuya Azumi
02 第3.1節-第3.5節 ROS2の基本機能(1/2) ROS2勉強合宿 @別府温泉
by
Mori Ken
ROS の活用による屋外の歩行者空間に適応した自律移動ロボットの開発
by
Yoshitaka HARA
03 第3.6節-第3.8節 ROS2の基本機能(2/2)
by
Mori Ken
Similar to NEDO講座 MoveIt! チュートリアル 第1部
PDF
NEDO特別講座 ロボット共通プラットフォーム講習会 (1)
by
NoriakiAndo
PDF
つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜
by
Hideki Takase
PPTX
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
by
Hideki Takase
PDF
01 ROS2 実用化に関するサーベイ ROS2勉強合宿 @別府温泉
by
Mori Ken
PPTX
Japan Robot Week 2016 RTM講習会 第1部
by
Noriaki Ando
PDF
2013 summercamp 05
by
openrtm
PDF
RTミドルウェア強化月間2017 in 東京都立産業技術研究センター・RTミドルウェア講習会
by
Noriaki Ando
PPTX
Real-Time Workshop Recap
by
Tomoya Fujita
PDF
ロボットサービス開発の現場から
by
Kohei Kojima
PDF
OpenRTM-aistおよび RTコンポーネントプログラミングの概要
by
openrtm
PDF
OpenEL for Robot(Japanese)
by
Upwind Technology Inc.
PDF
ROS 2 Client Library for E^2
by
Hideki Takase
PDF
TERAS Conference
by
Keiju Anada
PDF
Rtm・ros相互運用プログラミング環境
by
openrtm
PDF
190605 01
by
openrtm
PPTX
mROS:組込みデバイス向けのROS1ノード軽量実行環境
by
Hideki Takase
PPTX
Robot Simulation_Unity × ROS2_OpenShift.pptx
by
TakagiYoshinori
PDF
ROS2のリアルタイム化に挑む WG初参加
by
Atsushi Hasegawa
PDF
200923 01jp
by
openrtm
PDF
FPGAをロボット(ROS)で「やわらかく」使うには
by
Hideki Takase
NEDO特別講座 ロボット共通プラットフォーム講習会 (1)
by
NoriakiAndo
つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜
by
Hideki Takase
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
by
Hideki Takase
01 ROS2 実用化に関するサーベイ ROS2勉強合宿 @別府温泉
by
Mori Ken
Japan Robot Week 2016 RTM講習会 第1部
by
Noriaki Ando
2013 summercamp 05
by
openrtm
RTミドルウェア強化月間2017 in 東京都立産業技術研究センター・RTミドルウェア講習会
by
Noriaki Ando
Real-Time Workshop Recap
by
Tomoya Fujita
ロボットサービス開発の現場から
by
Kohei Kojima
OpenRTM-aistおよび RTコンポーネントプログラミングの概要
by
openrtm
OpenEL for Robot(Japanese)
by
Upwind Technology Inc.
ROS 2 Client Library for E^2
by
Hideki Takase
TERAS Conference
by
Keiju Anada
Rtm・ros相互運用プログラミング環境
by
openrtm
190605 01
by
openrtm
mROS:組込みデバイス向けのROS1ノード軽量実行環境
by
Hideki Takase
Robot Simulation_Unity × ROS2_OpenShift.pptx
by
TakagiYoshinori
ROS2のリアルタイム化に挑む WG初参加
by
Atsushi Hasegawa
200923 01jp
by
openrtm
FPGAをロボット(ROS)で「やわらかく」使うには
by
Hideki Takase
More from openrtm
PDF
ROBOMECH2023 RTミドルウェア講習会 第1部
by
openrtm
PPTX
ピッキングシステム
by
openrtm
PPTX
GNGを使った未知環境における経路計画
by
openrtm
PPTX
まねっこロボット
by
openrtm
PDF
商品自動補充ロボットシステム
by
openrtm
PPTX
RTサマーキャンプ2022最終発表_都立大.pptx
by
openrtm
PDF
SysML実習20220822SC_GA.pdf
by
openrtm
PDF
RTミドルウェアサマーキャンプ資料2022.pdf
by
openrtm
PDF
5.総合演習(2)
by
openrtm
PDF
4.総合演習(1)
by
openrtm
PDF
3.RTCプログラミング演習
by
openrtm
PDF
2.プログラミングの基礎
by
openrtm
PDF
1.コース概要
by
openrtm
PDF
OpenRTM概要
by
openrtm
PDF
Slam実習
by
openrtm
PDF
Rtshell入門
by
openrtm
PDF
Rtコンポーネント作成入門
by
openrtm
PDF
Rtミドルウェアサマーキャンプ2021_宮本信彦
by
openrtm
PDF
RTミドルウェアサマーキャンプ2021_坂本武志_1
by
openrtm
PPTX
Rtミドルウェアサマーキャンプ資料2021_坂本武志_2
by
openrtm
ROBOMECH2023 RTミドルウェア講習会 第1部
by
openrtm
ピッキングシステム
by
openrtm
GNGを使った未知環境における経路計画
by
openrtm
まねっこロボット
by
openrtm
商品自動補充ロボットシステム
by
openrtm
RTサマーキャンプ2022最終発表_都立大.pptx
by
openrtm
SysML実習20220822SC_GA.pdf
by
openrtm
RTミドルウェアサマーキャンプ資料2022.pdf
by
openrtm
5.総合演習(2)
by
openrtm
4.総合演習(1)
by
openrtm
3.RTCプログラミング演習
by
openrtm
2.プログラミングの基礎
by
openrtm
1.コース概要
by
openrtm
OpenRTM概要
by
openrtm
Slam実習
by
openrtm
Rtshell入門
by
openrtm
Rtコンポーネント作成入門
by
openrtm
Rtミドルウェアサマーキャンプ2021_宮本信彦
by
openrtm
RTミドルウェアサマーキャンプ2021_坂本武志_1
by
openrtm
Rtミドルウェアサマーキャンプ資料2021_坂本武志_2
by
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