SlideShare uma empresa Scribd logo
1 de 77
Baixar para ler offline
つながるロボット
分散協調ロボットの開発を
加速化するROSの紹介
⾼瀬 英希
京都⼤学/JSTさきがけ
takase@i.kyoto-u.ac.jp
SlideShare仕様に
対応するための無駄スライドです
P.4以降の下線と枠付き画像には
ハイパーリングが付いています
SlideShare仕様に
対応するための無駄スライドです
P.4以降の下線と枠付き画像には
ハイパーリングが付いています
@takasehideki
­ 京都⼤学 情報学研究科 助教
­ JSTさきがけ 兼任研究者
­ SWEST プログラム委員⻑
­ IPSJ-SIGEMB 運営幹事
­ TOPPERSプロジェクト 特別会員
­ ROS Japan Users Group
ü 関⻄勉強会 主催
ü ROSCon JP 2019 実⾏委員
­ IoTあるじゃん(ALGYAN) 運営委員
­ Elixir: NervesJP fukuoka.ex
主な研究開発プロジェクト
­ SWORDS: SW志向の協調設計環境
­ mROS: 組込み向けROS軽量実⾏環境
⾃⼰紹介
4
ROS Japan Users Group
• Discourse: https://discourse.ros.org/c/local/japan
• connpass: https://rosjp.connpass.com
­ 勉強会・講習会など 初⼼者から歴戦の猛者まで︕
­ 関⻄や瀬⼾内でも開催︕
­ メンバー数1,488名
• Slack: rosjp
• Twitter: #rosjp
ros.xrea.jp
10/13(⼟) ⾹川
11/20(⽔)
東京本郷
ROS Japan Users Group
• けいはんなロボット技術センターでも
開催しました︕ありがとうございました︕︕
­ 開催レポート | イベントページ
6
Agenda
• Robot Operating Systemのご紹介
­ IoT時代とロボットシステム開発の課題
­ ROSの特徴︓Plumbing, Tools, Capabilities, Ecosystem
­ ROS 2への移⾏と version/distribution の⽐較
­ ROSは商⽤展開に利⽤できるか︖
• ROS関連の研究紹介
­ mROS︓組込みデバイス向けROSノード軽量実⾏環境
­ ZytleBot︓ROSxFPGA の統合プラットフォーム
­ 箱庭︓IoT/⾃動運転時代の仮想シミュレーション環境
• おわりに
7
Robot Operating System
• IoT時代とロボットシステム開発の課題
• ROSの特徴︓Plumbing, Tools, Capabilities, Ecosystem
• ROS 2への移⾏とversion/distributionの⽐較
• ROSは商⽤展開に利⽤できるか︖
IoT時代のコンピューティング
9
AI/ML技術との
密接な統合 あらゆるモノ・コトの
ネットワーク化によって
新たな社会的価値を創造
各構成要素における
計算機特性の結集
⼤量のデバイスとデータ
「デバイスレベル並列化」
による最適化の時代へ︕
IoTコンピューティングは
情報科学の総合格闘技︕
ロボット開発を取り巻く背景
• 様々な状況に対応する複雑な制御
­ 姿勢制御,情報処理,⾃動化,
プランニング,⼈⼯知能,など,,,
• AI/ML処理を実現する処理性能
­ 実世界との膨⼤なデータの
密接なやり取りと統計処理
• 限定された計算資源と電⼒量
• 多品種少量⽣産の展開への対応
10
Ø⾼性能・多機能化
Ø省電⼒化
Ø設計柔軟性
統⼀化された開発フレームワークによる
ロボットシステム設計開発の加速化に期待
ロボットSWの開発フレームワーク
• 開発の加速化のためには,,,
­ モジュールの再利⽤性の促進
­ プロセス間/システム間通信の効率的な管理
11
CORBA-based architecture
http://openrtm.org/
Transport-neutral communication
http://www.yarp.it/
Mainly for kinematics and dynamics
http://www.orocos.org/
de-fact around the world!!
http://www.ros.org/
ROSとは︖
(Robot Operating System)
12
http://www.ros.org/about-ros/
ROS is not just framework,
but design platform for robots!!
• Plumbing: 出版購読型の通信モデルとミドルウェア
• Tools: プロジェクト管理,デバッグ,可視化,等
• Capabilities: 膨⼤なライブラリ・パッケージ
• Ecosystem: 世界規模の強⼒なOSSコミュニティ
Plumbing
• Publish / Subscribe messaging infrastructure
­ ROSノード︓ロボットシステムを構成する機能単位
üノードの登録・変更・削除が容易に実現できる
­ トピックを介した⾮同期型の通信⽅式
ü同期通信のserviceも提供されている
13
:
:
:
:
Tools
• catkin_tools: プロジェクト構成/ビルドシステム
• rqt: Qtベースのデバッグフレームワーク
• gazebo: 3D物理シミュレーションツール
• rviz: 可視化ツール
­ 他にもroslaunch, rosbagなど,,,
14
Capabilities
• ROSパッケージ
­ ロボットの有⽤な機能がまとめられたライブラリの集合
ümobility, manipulation, perception, etc.,,,
­ 2,000以上のパッケージが公開されている
ühttps://index.ros.org/packages/
• パッケージ活⽤の利点
­ 既存資産として活⽤できる
­ コンポーネント指向開発を実現できる
• 公式サポートの⾔語(ROS 1)︓C++, Python, LISP
­ 他にも,C#, Java, Lua, Go, ruby, ,,,
15
Ecosystem
• オンラインのコミュニティ
­ ROS Wiki: 各種⽂書の公開,パッケージ配布
­ ROS Answers: Q&Aページ
­ ROS Discourse: リリースやイベントのアナウンス
• オフラインのコミュニティ
­ ROSCon: 世界規模の開発者会議(最近はlocal confも)
­ SIG meetups, tutorial/workshop, local events, etc.,,,
16
ROS around the world!!
17
http://download.ros.org/downloads/
metrics/metrics-report-2018-07.pdf
ROS準拠のロボット
18https://robots.ros.org
Aerial Marine
Component Sensor
Ground Manipulator
Motor
学習⽤ロボット︓TurtleBot3
• ROS公式の研究・教育⽤ロボット組⽴キット
­ テーブルトップでROSやSLAMの学習が出来る
­ OSRF (Open Robotics)からのリクエストで誕⽣
­ 改造の⾃由度が⾼く、ROS対応ロボット作成が容易
19
ROSの歴史
2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019
20
1st commit to SourceForge (Nov. 2007)
https://sourceforge.net/p/ros/code/1/log/?path=
http://www.ros.org/news/
2017/11/ros-turns-10.html
ROS 1.0 released
http://wiki.ros.org
ROS 2 Alpha released
ROSのユースケースの変遷
• 単体ロボット
• ワークステーション級の
計算資源
• ⾮リアルタイムな制御
• 理想的かつ安定的な
ネットワーク環境
• 研究⽤途
21
• 複数ロボット(協調動作)
• 組込み規模での
動作実現の要求
• リアルタイム制御
• 不安定なネットワーク環境
(遅延や損失への対応)
• 実製品への適⽤
ROSをver.2として
フルスクラッチから
開発し直す︕
ROS 2の新機能
• DDS (Data Distribution Service)
• Quality of service
• Lifecycle state machine
• Actions
• Intra-process communication
• ros1bridge
• Multi platform support
• colcon build tool
• Python launch system
22
DDSとソフトウェア構造の変更
• Data Distribution Service
­ (ROSに似た) pub/sub通信プロトコル
ümasterが不要となる
­ OMG標準仕様として規定されている
23
https://speakerdeck.com/youtalk/dds?slide=12
http://4c281b16296b2ab02a4e0b2e3f75446d.cdn
ext.stream.ne.jp/randc/mirai/2-3_ros2_LP.pdf
DDS Support
I/F Library Provider License Support
Level
Plat
form
Arch.
rmw_fastrtps_cpp eProsima
Fast-RTPS
Apache-2.0 Tier 1 All All
rmw_connext_cpp RTI
Connext
Commercial
/ Research
Tier 1 Debian
以外
amd64
のみ
rmw_opensplice_
cpp
ADLink
OpenSplice
Commercial
/ LGPL (v6.4)
Tier 2 Debian
以外
All
rmw_fastrtps_
dynamic_cpp
eProsima
Fast-RTPS
Apache-2.0 Tier 2 All All
25
http://www.ros.org/reps/rep-2000.html#dashing-diademata-may-2019-may-2021
• 複数のベンダ/ライセンス形態からDDSの通信層を選択できる
QoS Control
• QoS profile for each topic
­ History: Keep last (N samples) or Keep all
­ Depth: Size of the queue
­ Reliability: Best effort or Reliable
­ Durability: Transient local or Volatile
26
https://index.ros.org/doc/ros2/
Tutorials/Quality-of-Service/
Profile Reliability History policy Durability
Default Reliable Keep last Volatile
Services Reliable Keep last 10 Volatile
Sensor data Best effort keep last 5 Volatile
Parameters Reliable keep last 1000 Volatile
Lifecycle
27
http://design.ros2.org/
articles/node_lifecycle.html
4 primary states
6 transition states
7 transition via topic
Actions
• ⾮同期送信/同期受信の組合せ
­ Entities: action server / client
­ Interface Definition: Goal / Result / Feedback
üTopicとServiceの名前空間は分離できる
28
http://design.ros2.org/articles/actions.html
Intra-Process Comm.
• 複数ノードを1プロセスとして動作させること
­ プロセス内のPub/Sub通信が⾼速かつ軽量に
­ ROS 2プログラミングスタイルのベストプラクティス
üSingleThreadedExecutor によるノード登録と実⾏
­ std::unique_ptr によるゼロコピーと所有権移譲ができる
üROS 1のnodeletにあった潜在的バグも解消
29
ros1bridge
• ROS 1とROS 2のノードを共存させる仕組み
• bridgeノードがtopicの“橋渡し”をする
30
Multi Platform Support
31
Arch. Ubuntu Bionic
(18.04)
MacOS
Sierra
(10.12)
Windows
10
(VS20129)
Debian
Stretch
(9)
amd64 Tier 1 [d][a][s] Tier 1 [a][s] Tier 1 [a][s] Tier 3 [s]
arm64 Tier 1 [d][a][s] Tier 3 [s]
arm32 Tier 2 [a][s] Tier 3 [s]
• Tier 1: Open Robotics公式の⼿厚いサポート
• Tier 2: 公式だが限定的なサポート
­ [d]: Debianパッケージとして配布
­ [a]: 必要パッケージが含まれたアーカイブとして配布
­ [s]: ソースからビルドが必要
• Tier 3: コミュニティお任せのサポート
• 組込み環境の対応も進⾏中
colcon build tool
• collective construction
• colcon = ament + catkin
­ ament: build for ROS 2 pkgs $ ament build --isolated
­ catkin: build for ROS 1 pkgs $ catkin_make_isolated --install
32
$ mkdir -p /tmp/workspace/src # Make a workspace directory with a src subdirectory
$ cd /tmp/workspace # Change directory to the workspace root
$ <...> # Populate the `src` directory with packages
$ colcon list -g # List all packages in the workspace and their dependencies
$ colcon build # Build all packages in the workspace
$ colcon test # Test all packages in the workspace
$ colcon test-result --all # Enumerate all test results
$ . install/local_setup.bash # Setup the environment to use the built packages
$ <...> # Use the built packages
TL;DR
Python launch system
33
$ ros2 launch demo_nodes_cpp add_two_ints.launch.py
最新のROS 2 distribution
• ROS 2 Dashing Diademata
­ code name: dashing
­ 2019/05/31に正式リリース
­ EOLは2021年5⽉まで
üこれまでのものは半年だった
ü次期Eloquent@2019/11は
Supported for 1 yearの予定
• 主なUpdate
­ componentスタイルの推奨
­ Actionsの仕様変更
­ rosidl, parameters機能の更新
34
ROS versionとdistribution
distribution Release EOL date Ubuntu
Indigo Igloo 2014/07/22 April, 2019 Trusty (14.04)
Kinetic Kame 2016/05/23 April, 2021 Xenial (16.04)
Melodic Morenia 2018/05/23 May, 2023 Bionic (18.04)
Ardent Apalone 2017/12/08 Dec. 2018 Xenial (16.04)
Bouncy Bolson 2018/07/02 July 2019 Xenial (16.04)
Crystal Clemmys 2018/12/14 Dec. 2019 Bionic (18.04)
Dashing Diademate 2019/05/31 2 years Bionic (18.04)
Eloquent Elusor 2019/11/22 1 years
35
http://wiki.ros.org/Distributions
• 追記︓Gazebo 11 (3D sim tool)は2020年で最終リリース
­ 2025年1⽉までのLTS release
­ 次世代版の Ignition Acropolis が開発進⾏中
https://index.ros.org/doc/ros2/Releases/
ROS 1 vs. ROS 2
• ROS 2はまだまだ発展途上
­ Dashingは決定版になる可能性が⾼い
• 既存パッケージを使いたいならROS 1
これからスクラッチ開発ならROS 2
­ あとは,今後の強みとしたいなら当然ながらROS 2
• 使いたい機能が熟れてきたらROS 2移⾏すべき
­ rosbag,MoveIt,リアルタイム制御,セキュリティ,,,
• ROS 1の寿命はあと1~2年と⾔って差し⽀えない
­ Python 2/3問題も考慮すべき (ROS 1はPython 2)
Python 2.7 will not be maintained past 2020.
https://pythonclock.org
36
distributionの選択
• ROS 1については,パッケージの充実度による
­ 使いたいパッケージがあるか︖
依然としてKineticが充実
­ Melodicはまだまだこれから
(Ubuntu 18への追従も⼤変)
• ROS 2については,
新しいほうが当然良い
­ コア機能の安定度が
どんどん向上してきている
­ アプリ設計に直結する⼤きな
仕様変更が発⽣することも
37
ROSのライセンス
• コアモジュール・コンポーネント
­ ROS1︓BSD # 修正・再利⽤・再配布可
­ ROS2︓Apache 2.0 # より商⽤利⽤向き
• 個別パッケージ
­ OSI認証のものがそれぞれ独⾃に設定可能
­ GPL, LGPLの可能性もあり
­ http://wiki.ros.org/DevelopersGuide#Licensing
• DDSもライセンス形態が幾つかあり(P.25)
• [ros-japan-users] Software License Introspection in ROS
package dependency chain by 130s (Isaac I.Y. Saito)
https://www.youtube.com/watch?v=i40tsh2e6P8
38
version/distributionの選択
• https://metrics.ros.org/answers_rosdistro.html
39
ユーザレベルでは
まだまだ︖︖
ROSの商⽤展開
• ROSのライセンス形態
­ コアモジュール・コンポーネント
üROS1: BSD # 修正・再利⽤・再配布可
üROS2: Apache 2.0 # より商⽤利⽤向き
­ 個別パッケージ︓
OSI認証のものを独⾃に設定可能 (GPL, LGPLもあり)
• ROSは商⽤製品に利⽤できるか︖
­ Yes!! ROS 1での採⽤事例もあり
­ ROS-Industrial が商⽤利⽤を牽引
­ ROS 2は通信層がOMG標準
­ 機能安全対応や開発プロセス認証も加速中
40
http://aibo.sony.jp/
ROS関連の研究紹介
• mROS︓組込みデバイス向けROSノード軽量実⾏環境
• ZytleBot︓ROSxFPGA の統合プラットフォーム
• 箱庭︓IoT/⾃動運転時代の仮想シミュレーション環境
Motivation
42
• 豊富なOSS資産
• Linux/Ubuntuの駆動が必要
• マルチプラットフォーム対応
(組込み環境を含む︖)
• OSS資産はまだ潤沢ではない
• 組込み技術は省電⼒化とリアルタイム性向上に貢献できる
• ただし,ROS 1とROS 2の間に互換性が無い
­ APIレベルで異なる
­ プログラミングスタイルも異なる
ROS 1の課題と我々の狙い
43
ROS 1ノードを組込み環境で
駆動するための
軽量な実⾏環境
• 豊富なOSS資産
• Linux/Ubuntuの駆動が必要
• マルチプラットフォーム対応
(組込み環境を含む︖)
• OSS資産はまだ潤沢ではない
. / - .
mROSの全体像
44
-
- -
-
-
-
-
- -
mROSの貢献
ü ROS 1パッケージの組込み環境への移植性の提供
ü 分散ロボット環境のエッジにおける省電⼒化とリアルタイム性の向上
. / - .
mROSのソフトウェア構造
• mROSタスクはROS APIで設計可能
­ mbedによるデバイスプログラミングも実現可能
­ マルチタスク(マルチノード)化は
ITRONプログラミングで実現可能
45
&/
A E
A
A
C C
A
A
)(
& A
. / - .
mROSのシステムタスク構成
. / - .
inter-task communication
TCP/IP communication
mROS comm. lib
46
TCPROS
XMLRPC
データ購読フロー
• subscribe()呼び出し
­ (1)-(3)︓xmlマスタによるROSマスタへのノード登録
­ (4)︓サブスクライブタスクによるmROSサブスクライバ初期化
­ (5)-(7)︓ROSパブリッシャノードへのトピック購読リクエスト送信
• 周期実⾏によるデータ購読
­ (8)-(9)︓コールバック関数実⾏と結果取得
47. / - .
データ出版フロー
• データ出版︓advertise()によるROSマスタへの登録後
­ publish()呼び出しによりデータ出版可能
­ (1)︓共有メモリに出版データ書き込み
­ (2)︓パブリッシュタスクへの出版通知
­ (3)︓出版データ読み込み
­ (4)︓対応するTCPソケットからデータ出版
48. / - .
デバイス内ノード間通信
49. / - .
• タスク間の購読通知にはデータキューを使⽤
• publish()がサブスクライバタスクへと購読通知
publish()が
出版相⼿を判断して
メッセージIDを⽣成
トピックの購読
リクエストは
⾏わない
現在の開発対象
• Renesas GR-PEACH
­ mbedライブラリ対応
üオンラインコンパイラ有り
­ Arduino互換ピン
­ 純正カメラシールドあり
üOpenCVも使える︕
50
http://gadget.renesas.com/ja/product/peach.html
搭載マイコン RZ/A1H
ROM/RAM 外部FLASH 8MB
内蔵10MB
動作周波数 400MHz
動作電圧 3.3V/1.18V
画像認識ROSノードが
きびきび動く︕︕︖
. / - .
mROSの活⽤事例
• 特徴点抽出を⾏うROSパッケージ*1を対象
• エッジデバイス上でシステムの⼀部を実⾏
• 2種類のシステムを構築
51*1:宇都宮⼤学の⼤川猛先⽣からご提供
画像データの圧縮
処理を⾏うノード
カメラのデバイス
ドライバノード
デバイス内通信は
提案⼿法を⽤いる
. / - .
Case Study:
distributed edge detection system
52. / - .
1
1 !
1 1
!
1
1
1 1 1 !
1 1
- . - /- -
プロセッサ vs. ASIC
53
設計容易性・柔軟性
開発製造コスト
省電⼒性
性能・並列性プロセッサ
&
ソフトウェア
ASIC
(専⽤回路)
ハードウェア
FPGA
- . - /- -
FPGAとは︖
54
•Field Programmable Gate Array
­中⾝を改変可能なLSI
­ハードウェアそのものの
振る舞いを変えられる
­独⾃のデジタル回路を
⾃由に何回でも形成できる
­GPUよりも電⼒効率や
リアルタイム性に優れる
IOB
SB
CB LB
IOB
IOB
SB
IOB LB
SB
CB CB
SB
CB
SB SB
CB CBLB IOBIOB LB
SB SB SB
IOB IOB
CB
CB
CB
CB
CB
CB
⼊出⼒ブロック
コネクションブロックLB 論理ブロック
IOBSB スイッチブロック
CB
- . - /- -
プログラマブルSoC
55
• プロセッサとFPGAを
1チップに収めたSoC
­Xilinx Zynq / Intel SoC FPGA
• プロセッサ上ではLinuxや
リアルタイムOSを稼働できる
• もちろんROSも稼働可能︕
• デバイスドライバを介して
FPGA上のHW回路を
デバイスとして扱える
­処理後データを直接受け取れる
­FPGAの回路の再書き換えを
Linuxから⾏うことも可能︕
(Linux kernel 4.10以降)
Processor
FPGA
Ubuntu 18.04
IP CoreIP Core
Sensor
/dev/video0
Config
画像処理
IP Core
- . - /- -
ROS対応ロボットへのFPGAの適⽤
56
• 書換・再構成可能な回路を設計
• 省電⼒性・並列性能の向上
• CPUとの密結合による柔軟な構成
• 開発⽣産性の向上への期待
• 豊富なOSSパッケージ
• 分散システム・マルチスケール対応
Ø ROSとFPGAの双⽅で
⾼度な開発知識が求められる
Ø ロボット技術者がFPGAを
導⼊する敷居は⾼い (逆も)
- . - /- -
ROS対応ロボットへのFPGAの適⽤
57
• 書換・再構成可能な回路を設計
• 省電⼒性・並列性能の向上
• CPUとの密結合による柔軟な設計
• 開発⽣産性の向上への期待
• 豊富なOSSパッケージ
• 分散システム・マルチスケール対応
ZytleBot
ROSxFPGAの統合プラットフォーム
⾃律移動ロボット開発における
FPGA開発技術の習得を容易化
- . - /- -
ZytleBot
58
現在はDashingに対応
Robot TurtleBot3
SBC Ultra96
OS Ubuntu 18.04
ROS Crystal Clemmys
Robot TurtleBot3
SBC Zybo Z7-20
OS Ubuntu 16.04
ROS Kinetic Kame
- . - /- -
ZytleBot におけるFPGAの活⽤⽅式
59
(1) センサデータをFPGAで直接処理して
プロセッサの負荷を軽減
(2) プロセッサからFPGAにデータを送信して
処理を⾼速化
) (
2 0 2 1
- . - /- -
FPGAの活⽤︓⾚信号検出
60
•スライディングウィンドウ法+SVM
­⼊⼒:320pix*240pixフレーム画像
­出⼒:891個のウインドウの推定結果
•実装結果
­SWのみ ︓1700 ms (0.58 fps)
­HW使⽤時︓6.22 ms (160 fps)
SVM Classification
!
"#$
%
𝑤" 𝑥" + 𝑏
Feature Extraction
8x8 BGR 8x8 HSV HOG
275倍の⾼速化︕
https://github.com/lp6m/ImageDetectionHW2
- . - /- -
ROSツールの活⽤
61
• シミュレーションデータを
FPGAに送信して処理を確認
• FPGAモジュールのテストや
結果⽐較をrosbagで容易化
開発・検証コストの
⼯数削減に貢献
- . - /- -
ZytleBot の活⽤事例
62
連続優勝!!
Driving System
•FPGA関係の国際会議の併設コンテストに参加
­FPT2018 FPGA Design Competition
­HEART2019 FPGA Design Competition
『箱庭』とは︖
63
箱 庭
『箱庭』の⽬指すところ
• IoT/⾃動運転時代のシステム全体を
検証するためのシミュレーション環境
­ 各機器がネットワーク接続されたアーキテクチャを想定
• 箱庭の利⽤者
­ システム開発者
­ サービス提供者
­ 箱庭アセット開発者/提供者
ü=システム構成要素
• ⽬指す強みと新しさ
­ IoTの各要素を連携させて任意の精度で検証可能
­ 検証の対象/抽象度/レベルを任意に変更できる
64
箱 庭
)(
全体像
65
b
m
E m
/
m
m
m W U
O
R E S
R m
m
P be
be
C
m
R
箱 庭
利⽤イメージ
66
箱 庭
複数の抽象レベルと利⽤者
67
-
2
2
)
(
3
箱 庭
現状のデモのご紹介
• Athrill/mROSで
Unity仮想⾞両の
制御を机上で
デバッグします
• Athrill
­ CPU命令セット
シミュレータ
üV850/RH850
­ リアルタイムOS
とROS/mROSの
対応版も
68
O A A E R
RP R
)
/
P R
/ P
A
/
A
/ P
A
/
A
Athrill
箱 庭
仮想⾞両/ROS通信/マイコンの机上デバッグ
69
協⼒者募集中︕
• でっかく語って,少しずつ育てております︕︕
• 『箱庭』の狙い・趣旨にご賛同いただける⽅の
参画をお待ちしております︕︕
­ まずはSlackでの議論,活動内容へのご要望,
コア技術や各アセットの開発,などに参加したい⽅
­ 箱庭の活動で期待される技術成果を
活⽤・展開してみたい⽅
• 現在はTOPPERSプロジェクト傘下の
ワーキンググループにて活動中
問合せ先︓ secretariat@toppers.jp
70
箱 庭
おわりに
まとめ
• ROS is not just framework,
but design platform for robots!!
­ ロボットシステムの開発と“つながる”を加速化
­ ROS 2の開発が鋭意進⾏中 Letʼs contribute!!
• 組込み/IoT関係の研究紹介
­ mROS︓ROSノード軽量実⾏環境
­ ZytleBot︓ROSxFPGA 統合PF
­ 箱庭︓IoT/⾃動運転時代の
仮想シミュレーション環境
72
お気軽にご連絡ください︕
takase@i.kyoto-u.ac.jp
Twitter: @TAKASEhideki
ROS Japan Users Group
• Discourse: https://discourse.ros.org/c/local/japan
• connpass: https://rosjp.connpass.com
­ 勉強会・講習会など 初⼼者から歴戦の猛者まで︕
­ 関⻄や瀬⼾内でも開催︕
­ メンバー数1,488名
• Slack: rosjp
• Twitter: #rosjp
ros.xrea.jp
10/13(⼟) ⾹川
11/20(⽔)
東京本郷
参考情報︓書籍
• ⼩倉 崇︓ROSではじめるロボットプログラミング
­ まずはじめに読むべき書籍︕バージョンと情報は古いので注意
• 表 允皙 ほか︓ROSロボットプログラミングバイブル
­ TurtleBot3を⽚⼿に進める場合の良書
• 上⽥ 隆⼀︓Raspberry Piで学ぶROSロボット⼊⾨
­ ラズパイマウスを⽚⼿に進める場合の良書
• ⻄⽥ 健 ほか︓実⽤ロボット開発のための
ROSプログラミング
­ 中級向け ロボット開発をなにか実践して
から読むのが有⽤
• 近藤 豊︓ROS2ではじめよう
次世代ロボットプログラミング
­ 世界初 && 最も充実したROS 2の解説本︕
74
参考情報︓Web解説
• ROS Tutorials
http://wiki.ros.org/ROS/Tutorials
• ROS 2 Tutorials
https://index.ros.org/doc/ros2/Tutorials/
• ROS講座 (on Qiita)
https://qiita.com/srs/items/5f44440afea0eb616b4a
• Yutaka Kondo: Getting Started with ROS 2 / DDS,
ROS Japan User Group #27, Dec 2018. https://speakerdeck.com/youtalk/dds
• Geoffrey Biggs: 次世代ロボットフレームワークROS2の紹介, 第20回
組込みシステム技術に関するサマーワークショップ (SWEST20), 2018年8⽉.
https://swest.toppers.jp/SWEST20/program/s2a.html#s2
• Geoffrey Biggs: ROS Japan ユーザグループ 講習会 〜 ROS 2 の紹介 〜
https://gbiggs.github.io/rosjp_ros2_intro/index.html
https://github.com/gbiggs/rosjp_ros2_basics
• TIER IV ACADEMY ⾃動運転システム構築塾 Day 2 ROS演習
ROS演習3︓ROS 2.0の最新動向について
http://4c281b16296b2ab02a4e0b2e3f75446d.cdnext.stream.ne.jp/randc/mirai/2-
3_ros2_LP.pdf
75
参考情報︓引⽤
• Tully Foote: ROS Community Metrics Report, Jul 2018.
http://download.ros.org/downloads/metrics/metrics-report-2018-
07.pdf
• Dirk Thomas, Mikael Arguedas: The ROS 2 Vision -For Advancing
the Future of Robotics Development-, ROSCon 2017, Sep 2017.
https://roscon.ros.org/2017/presentations/ROSCon%202017%20RO
S2%20Vision.pdf
• Dirk Thomas, Esteve Fernandez, William Woodall: State of ROS 2 -
demos and the technology behind, ROSCon 2015, Oct 2015.
https://roscon.ros.org/2015/presentations/state-of-ros2.pdf
• ROS 2.0 Design, https://design.ros2.org
• ROS 2 Overview, https://index.ros.org/doc/ros2/
76
参考情報︓論⽂
• Hideki Takase, Tomoya Mori, et al.: Work-in-Progress: Design Concept
of a Lightweight Runtime Environment for Robot Software Components
Onto Embedded Devices, Proc. of EMSOFT, Oct 2018.
https://ieeexplore.ieee.org/document/8537199
• Hideki Takase, Tomoya Mori, et al.: mROS: A Lightweight Runtime
Environment for Robot Software Components onto Embedded Devices,
Proc. of HEART, Jun 2019.
https://dl.acm.org/citation.cfm?id=3337815
• 森智也,⾼瀬英希,他: mROS︓組込みデバイス向けROSノード軽量実⾏環境,
情報処理学会研究報告, Vol. 2017-EMB-46, No. 42, pp. 1-6, 2017年11⽉.
• Yasuhiro Nitta, Sou Tamura, Hideki Takase: A Study on Introducing
FPGA to ROS Based Autonomous Driving System, Proc. of FPT, Dec 2018.
https://ieeexplore.ieee.org/document/8742257
77

Mais conteúdo relacionado

Mais procurados

STMとROSをシリアル通信させて移動ロボットを作る
STMとROSをシリアル通信させて移動ロボットを作るSTMとROSをシリアル通信させて移動ロボットを作る
STMとROSをシリアル通信させて移動ロボットを作る
mozyanari
 
Autoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォーム
Autoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォームAutoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォーム
Autoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォーム
Takuya Azumi
 

Mais procurados (20)

Cartographer を用いた 3D SLAM
Cartographer を用いた 3D SLAMCartographer を用いた 3D SLAM
Cartographer を用いた 3D SLAM
 
ROS2勉強会 4章前半
ROS2勉強会 4章前半ROS2勉強会 4章前半
ROS2勉強会 4章前半
 
ROS を用いた自律移動ロボットのシステム構築
ROS を用いた自律移動ロボットのシステム構築ROS を用いた自律移動ロボットのシステム構築
ROS を用いた自律移動ロボットのシステム構築
 
ROS2勉強会@別府 第7章Pythonクライアントライブラリrclpy
ROS2勉強会@別府 第7章PythonクライアントライブラリrclpyROS2勉強会@別府 第7章Pythonクライアントライブラリrclpy
ROS2勉強会@別府 第7章Pythonクライアントライブラリrclpy
 
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
 
ロボティクスにおける SLAM 手法と実用化例
ロボティクスにおける SLAM 手法と実用化例ロボティクスにおける SLAM 手法と実用化例
ロボティクスにおける SLAM 手法と実用化例
 
WindowsではじめるROSプログラミング
WindowsではじめるROSプログラミングWindowsではじめるROSプログラミング
WindowsではじめるROSプログラミング
 
STMとROSをシリアル通信させて移動ロボットを作る
STMとROSをシリアル通信させて移動ロボットを作るSTMとROSをシリアル通信させて移動ロボットを作る
STMとROSをシリアル通信させて移動ロボットを作る
 
ROSによる今後のロボティクスのあり方
ROSによる今後のロボティクスのあり方ROSによる今後のロボティクスのあり方
ROSによる今後のロボティクスのあり方
 
FPGAをロボット(ROS)で「やわらかく」使うには
FPGAをロボット(ROS)で「やわらかく」使うにはFPGAをロボット(ROS)で「やわらかく」使うには
FPGAをロボット(ROS)で「やわらかく」使うには
 
ROS の活用による屋外の歩行者空間に適応した自律移動ロボットの開発
ROS の活用による屋外の歩行者空間に適応した自律移動ロボットの開発ROS の活用による屋外の歩行者空間に適応した自律移動ロボットの開発
ROS の活用による屋外の歩行者空間に適応した自律移動ロボットの開発
 
Autoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォーム
Autoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォームAutoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォーム
Autoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォーム
 
ros_whillとROS2対応(ROS勉強会第28回LT大会)
ros_whillとROS2対応(ROS勉強会第28回LT大会)ros_whillとROS2対応(ROS勉強会第28回LT大会)
ros_whillとROS2対応(ROS勉強会第28回LT大会)
 
03 第3.6節-第3.8節 ROS2の基本機能(2/2)
03 第3.6節-第3.8節 ROS2の基本機能(2/2)03 第3.6節-第3.8節 ROS2の基本機能(2/2)
03 第3.6節-第3.8節 ROS2の基本機能(2/2)
 
リンク機構を有するロボットをGazeboで動かす
リンク機構を有するロボットをGazeboで動かすリンク機構を有するロボットをGazeboで動かす
リンク機構を有するロボットをGazeboで動かす
 
オープンソース SLAM の分類
オープンソース SLAM の分類オープンソース SLAM の分類
オープンソース SLAM の分類
 
WebSocketでカメラの映像を共有してみた
WebSocketでカメラの映像を共有してみたWebSocketでカメラの映像を共有してみた
WebSocketでカメラの映像を共有してみた
 
myCobotがある生活
myCobotがある生活myCobotがある生活
myCobotがある生活
 
mcl_3dl: amcl並に軽量な3-D/6-DoFローカリゼーションパッケージ
mcl_3dl: amcl並に軽量な3-D/6-DoFローカリゼーションパッケージmcl_3dl: amcl並に軽量な3-D/6-DoFローカリゼーションパッケージ
mcl_3dl: amcl並に軽量な3-D/6-DoFローカリゼーションパッケージ
 
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
 

Semelhante a つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜

IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
Hideki Takase
 
2012/03/31 Apacheスタートスクリプト読書会発表資料
2012/03/31 Apacheスタートスクリプト読書会発表資料2012/03/31 Apacheスタートスクリプト読書会発表資料
2012/03/31 Apacheスタートスクリプト読書会発表資料
Yasutaka Hamada
 

Semelhante a つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜 (20)

Rclex: ElixirでROS!!
Rclex: ElixirでROS!!Rclex: ElixirでROS!!
Rclex: ElixirでROS!!
 
Cell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始めCell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始め
 
ROBOMECH2017 RTM講習会 第1部・その1
ROBOMECH2017 RTM講習会 第1部・その1ROBOMECH2017 RTM講習会 第1部・その1
ROBOMECH2017 RTM講習会 第1部・その1
 
2014 0228 OSC-Spring Tokyo NETMF
2014 0228 OSC-Spring Tokyo NETMF2014 0228 OSC-Spring Tokyo NETMF
2014 0228 OSC-Spring Tokyo NETMF
 
runC概要と使い方
runC概要と使い方runC概要と使い方
runC概要と使い方
 
2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF
 
Raspberry pi三分クッキング(さいたま開発勉強会 Vol 9)
Raspberry pi三分クッキング(さいたま開発勉強会 Vol 9)Raspberry pi三分クッキング(さいたま開発勉強会 Vol 9)
Raspberry pi三分クッキング(さいたま開発勉強会 Vol 9)
 
Getting Started .NET Core
Getting Started .NET CoreGetting Started .NET Core
Getting Started .NET Core
 
福岡市LoRawan(TM)実証実験
福岡市LoRawan(TM)実証実験福岡市LoRawan(TM)実証実験
福岡市LoRawan(TM)実証実験
 
TurtleBot3でROSを始めよう
TurtleBot3でROSを始めようTurtleBot3でROSを始めよう
TurtleBot3でROSを始めよう
 
LibreOfficeをビルドしてみよう(Windows)
LibreOfficeをビルドしてみよう(Windows)LibreOfficeをビルドしてみよう(Windows)
LibreOfficeをビルドしてみよう(Windows)
 
190605 01
190605 01190605 01
190605 01
 
Pdp11 on-fpga
Pdp11 on-fpgaPdp11 on-fpga
Pdp11 on-fpga
 
How to run P4 BMv2
How to run P4 BMv2How to run P4 BMv2
How to run P4 BMv2
 
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
 
ZytleBot:ROS対応自動走行ロボットへのFPGA活用を加速化する統合開発プラットフォーム
ZytleBot:ROS対応自動走行ロボットへのFPGA活用を加速化する統合開発プラットフォームZytleBot:ROS対応自動走行ロボットへのFPGA活用を加速化する統合開発プラットフォーム
ZytleBot:ROS対応自動走行ロボットへのFPGA活用を加速化する統合開発プラットフォーム
 
Rubyで創るOpenFlowネットワーク - LLまつり
Rubyで創るOpenFlowネットワーク - LLまつりRubyで創るOpenFlowネットワーク - LLまつり
Rubyで創るOpenFlowネットワーク - LLまつり
 
短絡的に作るRuby DSL 公開版
短絡的に作るRuby DSL 公開版短絡的に作るRuby DSL 公開版
短絡的に作るRuby DSL 公開版
 
2012/03/31 Apacheスタートスクリプト読書会発表資料
2012/03/31 Apacheスタートスクリプト読書会発表資料2012/03/31 Apacheスタートスクリプト読書会発表資料
2012/03/31 Apacheスタートスクリプト読書会発表資料
 
ROSCon2019 参加報告:オーバビュー+α
ROSCon2019 参加報告:オーバビュー+αROSCon2019 参加報告:オーバビュー+α
ROSCon2019 参加報告:オーバビュー+α
 

Mais de Hideki Takase

関数型言語ElixirのIoTシステム開発への展開
関数型言語ElixirのIoTシステム開発への展開関数型言語ElixirのIoTシステム開発への展開
関数型言語ElixirのIoTシステム開発への展開
Hideki Takase
 
Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界
Hideki Takase
 

Mais de Hideki Takase (20)

Rclex: A Library for Robotics meet Elixir
Rclex: A Library for Robotics meet ElixirRclex: A Library for Robotics meet Elixir
Rclex: A Library for Robotics meet Elixir
 
高い並列性能と耐障害性を持つElixirとNervesでIoTの新しいカタチを切り拓く
高い並列性能と耐障害性を持つElixirとNervesでIoTの新しいカタチを切り拓く高い並列性能と耐障害性を持つElixirとNervesでIoTの新しいカタチを切り拓く
高い並列性能と耐障害性を持つElixirとNervesでIoTの新しいカタチを切り拓く
 
関数型っぽくROSロボットプログラミング
関数型っぽくROSロボットプログラミング関数型っぽくROSロボットプログラミング
関数型っぽくROSロボットプログラミング
 
ROS 2 Client Library for E^2
ROS 2 Client Library for E^2ROS 2 Client Library for E^2
ROS 2 Client Library for E^2
 
Elixir/Nervesはナウでヤングなcoolなすごいやつ
Elixir/NervesはナウでヤングなcoolなすごいやつElixir/Nervesはナウでヤングなcoolなすごいやつ
Elixir/Nervesはナウでヤングなcoolなすごいやつ
 
関数型言語ElixirのIoTシステム開発への展開
関数型言語ElixirのIoTシステム開発への展開関数型言語ElixirのIoTシステム開発への展開
関数型言語ElixirのIoTシステム開発への展開
 
ElixirでIoT!?ナウでヤングでcoolなNervesフレームワーク
ElixirでIoT!?ナウでヤングでcoolなNervesフレームワークElixirでIoT!?ナウでヤングでcoolなNervesフレームワーク
ElixirでIoT!?ナウでヤングでcoolなNervesフレームワーク
 
Nerves!? Elixir!?? 関数型言語でれっつIoT開発!!
Nerves!? Elixir!?? 関数型言語でれっつIoT開発!!Nerves!? Elixir!?? 関数型言語でれっつIoT開発!!
Nerves!? Elixir!?? 関数型言語でれっつIoT開発!!
 
ElixirでFPGAを設計する
ElixirでFPGAを設計するElixirでFPGAを設計する
ElixirでFPGAを設計する
 
ZytleBot: ROSベースの自律移動ロボットへのFPGAの統合に向けて
ZytleBot: ROSベースの自律移動ロボットへのFPGAの統合に向けてZytleBot: ROSベースの自律移動ロボットへのFPGAの統合に向けて
ZytleBot: ROSベースの自律移動ロボットへのFPGAの統合に向けて
 
Cockatrice: A Hardware Design Environment with Elixir
Cockatrice: A Hardware Design Environment with ElixirCockatrice: A Hardware Design Environment with Elixir
Cockatrice: A Hardware Design Environment with Elixir
 
TOPPERSプロジェクトのご紹介@IoT ALGYAN
TOPPERSプロジェクトのご紹介@IoT ALGYANTOPPERSプロジェクトのご紹介@IoT ALGYAN
TOPPERSプロジェクトのご紹介@IoT ALGYAN
 
ElixirでFPGAハードウェアが作れちゃう,かも!!?
ElixirでFPGAハードウェアが作れちゃう,かも!!?ElixirでFPGAハードウェアが作れちゃう,かも!!?
ElixirでFPGAハードウェアが作れちゃう,かも!!?
 
Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界
 
オースティンから見えてきた「ElixirでIoT」の世界  ~「Nerves」が拓くElixirでのデバイスコントロールを総レビュー~
オースティンから見えてきた「ElixirでIoT」の世界  ~「Nerves」が拓くElixirでのデバイスコントロールを総レビュー~オースティンから見えてきた「ElixirでIoT」の世界  ~「Nerves」が拓くElixirでのデバイスコントロールを総レビュー~
オースティンから見えてきた「ElixirでIoT」の世界  ~「Nerves」が拓くElixirでのデバイスコントロールを総レビュー~
 
mROSをクラウド/仮想環境に連携させてみる
mROSをクラウド/仮想環境に連携させてみるmROSをクラウド/仮想環境に連携させてみる
mROSをクラウド/仮想環境に連携させてみる
 
Elixirでハードウェアが作れちゃう,かも!!? データフロー型ハードウェア設計環境Cockatriceのご紹介
Elixirでハードウェアが作れちゃう,かも!!?データフロー型ハードウェア設計環境Cockatriceのご紹介Elixirでハードウェアが作れちゃう,かも!!?データフロー型ハードウェア設計環境Cockatriceのご紹介
Elixirでハードウェアが作れちゃう,かも!!? データフロー型ハードウェア設計環境Cockatriceのご紹介
 
Design Concept of a Lightweight Runtime Environment for Robot Software Compo...
Design Concept of a LightweightRuntime Environment for Robot SoftwareCompo...Design Concept of a LightweightRuntime Environment for Robot SoftwareCompo...
Design Concept of a Lightweight Runtime Environment for Robot Software Compo...
 
mROS:組込みデバイス向けのROS1ノード軽量実行環境
mROS:組込みデバイス向けのROS1ノード軽量実行環境mROS:組込みデバイス向けのROS1ノード軽量実行環境
mROS:組込みデバイス向けのROS1ノード軽量実行環境
 
TOPPERSプロジェクトの紹介&GR-PEACH on TOPPERS高速デモ@OSC2018 Kyoto
TOPPERSプロジェクトの紹介&GR-PEACH on TOPPERS高速デモ@OSC2018 KyotoTOPPERSプロジェクトの紹介&GR-PEACH on TOPPERS高速デモ@OSC2018 Kyoto
TOPPERSプロジェクトの紹介&GR-PEACH on TOPPERS高速デモ@OSC2018 Kyoto
 

つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜

  • 4. @takasehideki ­ 京都⼤学 情報学研究科 助教 ­ JSTさきがけ 兼任研究者 ­ SWEST プログラム委員⻑ ­ IPSJ-SIGEMB 運営幹事 ­ TOPPERSプロジェクト 特別会員 ­ ROS Japan Users Group ü 関⻄勉強会 主催 ü ROSCon JP 2019 実⾏委員 ­ IoTあるじゃん(ALGYAN) 運営委員 ­ Elixir: NervesJP fukuoka.ex 主な研究開発プロジェクト ­ SWORDS: SW志向の協調設計環境 ­ mROS: 組込み向けROS軽量実⾏環境 ⾃⼰紹介 4
  • 5. ROS Japan Users Group • Discourse: https://discourse.ros.org/c/local/japan • connpass: https://rosjp.connpass.com ­ 勉強会・講習会など 初⼼者から歴戦の猛者まで︕ ­ 関⻄や瀬⼾内でも開催︕ ­ メンバー数1,488名 • Slack: rosjp • Twitter: #rosjp ros.xrea.jp 10/13(⼟) ⾹川 11/20(⽔) 東京本郷
  • 6. ROS Japan Users Group • けいはんなロボット技術センターでも 開催しました︕ありがとうございました︕︕ ­ 開催レポート | イベントページ 6
  • 7. Agenda • Robot Operating Systemのご紹介 ­ IoT時代とロボットシステム開発の課題 ­ ROSの特徴︓Plumbing, Tools, Capabilities, Ecosystem ­ ROS 2への移⾏と version/distribution の⽐較 ­ ROSは商⽤展開に利⽤できるか︖ • ROS関連の研究紹介 ­ mROS︓組込みデバイス向けROSノード軽量実⾏環境 ­ ZytleBot︓ROSxFPGA の統合プラットフォーム ­ 箱庭︓IoT/⾃動運転時代の仮想シミュレーション環境 • おわりに 7
  • 8. Robot Operating System • IoT時代とロボットシステム開発の課題 • ROSの特徴︓Plumbing, Tools, Capabilities, Ecosystem • ROS 2への移⾏とversion/distributionの⽐較 • ROSは商⽤展開に利⽤できるか︖
  • 10. ロボット開発を取り巻く背景 • 様々な状況に対応する複雑な制御 ­ 姿勢制御,情報処理,⾃動化, プランニング,⼈⼯知能,など,,, • AI/ML処理を実現する処理性能 ­ 実世界との膨⼤なデータの 密接なやり取りと統計処理 • 限定された計算資源と電⼒量 • 多品種少量⽣産の展開への対応 10 Ø⾼性能・多機能化 Ø省電⼒化 Ø設計柔軟性 統⼀化された開発フレームワークによる ロボットシステム設計開発の加速化に期待
  • 11. ロボットSWの開発フレームワーク • 開発の加速化のためには,,, ­ モジュールの再利⽤性の促進 ­ プロセス間/システム間通信の効率的な管理 11 CORBA-based architecture http://openrtm.org/ Transport-neutral communication http://www.yarp.it/ Mainly for kinematics and dynamics http://www.orocos.org/ de-fact around the world!! http://www.ros.org/
  • 12. ROSとは︖ (Robot Operating System) 12 http://www.ros.org/about-ros/ ROS is not just framework, but design platform for robots!! • Plumbing: 出版購読型の通信モデルとミドルウェア • Tools: プロジェクト管理,デバッグ,可視化,等 • Capabilities: 膨⼤なライブラリ・パッケージ • Ecosystem: 世界規模の強⼒なOSSコミュニティ
  • 13. Plumbing • Publish / Subscribe messaging infrastructure ­ ROSノード︓ロボットシステムを構成する機能単位 üノードの登録・変更・削除が容易に実現できる ­ トピックを介した⾮同期型の通信⽅式 ü同期通信のserviceも提供されている 13 : : : :
  • 14. Tools • catkin_tools: プロジェクト構成/ビルドシステム • rqt: Qtベースのデバッグフレームワーク • gazebo: 3D物理シミュレーションツール • rviz: 可視化ツール ­ 他にもroslaunch, rosbagなど,,, 14
  • 15. Capabilities • ROSパッケージ ­ ロボットの有⽤な機能がまとめられたライブラリの集合 ümobility, manipulation, perception, etc.,,, ­ 2,000以上のパッケージが公開されている ühttps://index.ros.org/packages/ • パッケージ活⽤の利点 ­ 既存資産として活⽤できる ­ コンポーネント指向開発を実現できる • 公式サポートの⾔語(ROS 1)︓C++, Python, LISP ­ 他にも,C#, Java, Lua, Go, ruby, ,,, 15
  • 16. Ecosystem • オンラインのコミュニティ ­ ROS Wiki: 各種⽂書の公開,パッケージ配布 ­ ROS Answers: Q&Aページ ­ ROS Discourse: リリースやイベントのアナウンス • オフラインのコミュニティ ­ ROSCon: 世界規模の開発者会議(最近はlocal confも) ­ SIG meetups, tutorial/workshop, local events, etc.,,, 16
  • 17. ROS around the world!! 17 http://download.ros.org/downloads/ metrics/metrics-report-2018-07.pdf
  • 19. 学習⽤ロボット︓TurtleBot3 • ROS公式の研究・教育⽤ロボット組⽴キット ­ テーブルトップでROSやSLAMの学習が出来る ­ OSRF (Open Robotics)からのリクエストで誕⽣ ­ 改造の⾃由度が⾼く、ROS対応ロボット作成が容易 19
  • 20. ROSの歴史 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 20 1st commit to SourceForge (Nov. 2007) https://sourceforge.net/p/ros/code/1/log/?path= http://www.ros.org/news/ 2017/11/ros-turns-10.html ROS 1.0 released http://wiki.ros.org ROS 2 Alpha released
  • 21. ROSのユースケースの変遷 • 単体ロボット • ワークステーション級の 計算資源 • ⾮リアルタイムな制御 • 理想的かつ安定的な ネットワーク環境 • 研究⽤途 21 • 複数ロボット(協調動作) • 組込み規模での 動作実現の要求 • リアルタイム制御 • 不安定なネットワーク環境 (遅延や損失への対応) • 実製品への適⽤ ROSをver.2として フルスクラッチから 開発し直す︕
  • 22. ROS 2の新機能 • DDS (Data Distribution Service) • Quality of service • Lifecycle state machine • Actions • Intra-process communication • ros1bridge • Multi platform support • colcon build tool • Python launch system 22
  • 23. DDSとソフトウェア構造の変更 • Data Distribution Service ­ (ROSに似た) pub/sub通信プロトコル ümasterが不要となる ­ OMG標準仕様として規定されている 23 https://speakerdeck.com/youtalk/dds?slide=12
  • 25. DDS Support I/F Library Provider License Support Level Plat form Arch. rmw_fastrtps_cpp eProsima Fast-RTPS Apache-2.0 Tier 1 All All rmw_connext_cpp RTI Connext Commercial / Research Tier 1 Debian 以外 amd64 のみ rmw_opensplice_ cpp ADLink OpenSplice Commercial / LGPL (v6.4) Tier 2 Debian 以外 All rmw_fastrtps_ dynamic_cpp eProsima Fast-RTPS Apache-2.0 Tier 2 All All 25 http://www.ros.org/reps/rep-2000.html#dashing-diademata-may-2019-may-2021 • 複数のベンダ/ライセンス形態からDDSの通信層を選択できる
  • 26. QoS Control • QoS profile for each topic ­ History: Keep last (N samples) or Keep all ­ Depth: Size of the queue ­ Reliability: Best effort or Reliable ­ Durability: Transient local or Volatile 26 https://index.ros.org/doc/ros2/ Tutorials/Quality-of-Service/ Profile Reliability History policy Durability Default Reliable Keep last Volatile Services Reliable Keep last 10 Volatile Sensor data Best effort keep last 5 Volatile Parameters Reliable keep last 1000 Volatile
  • 28. Actions • ⾮同期送信/同期受信の組合せ ­ Entities: action server / client ­ Interface Definition: Goal / Result / Feedback üTopicとServiceの名前空間は分離できる 28 http://design.ros2.org/articles/actions.html
  • 29. Intra-Process Comm. • 複数ノードを1プロセスとして動作させること ­ プロセス内のPub/Sub通信が⾼速かつ軽量に ­ ROS 2プログラミングスタイルのベストプラクティス üSingleThreadedExecutor によるノード登録と実⾏ ­ std::unique_ptr によるゼロコピーと所有権移譲ができる üROS 1のnodeletにあった潜在的バグも解消 29
  • 30. ros1bridge • ROS 1とROS 2のノードを共存させる仕組み • bridgeノードがtopicの“橋渡し”をする 30
  • 31. Multi Platform Support 31 Arch. Ubuntu Bionic (18.04) MacOS Sierra (10.12) Windows 10 (VS20129) Debian Stretch (9) amd64 Tier 1 [d][a][s] Tier 1 [a][s] Tier 1 [a][s] Tier 3 [s] arm64 Tier 1 [d][a][s] Tier 3 [s] arm32 Tier 2 [a][s] Tier 3 [s] • Tier 1: Open Robotics公式の⼿厚いサポート • Tier 2: 公式だが限定的なサポート ­ [d]: Debianパッケージとして配布 ­ [a]: 必要パッケージが含まれたアーカイブとして配布 ­ [s]: ソースからビルドが必要 • Tier 3: コミュニティお任せのサポート • 組込み環境の対応も進⾏中
  • 32. colcon build tool • collective construction • colcon = ament + catkin ­ ament: build for ROS 2 pkgs $ ament build --isolated ­ catkin: build for ROS 1 pkgs $ catkin_make_isolated --install 32 $ mkdir -p /tmp/workspace/src # Make a workspace directory with a src subdirectory $ cd /tmp/workspace # Change directory to the workspace root $ <...> # Populate the `src` directory with packages $ colcon list -g # List all packages in the workspace and their dependencies $ colcon build # Build all packages in the workspace $ colcon test # Test all packages in the workspace $ colcon test-result --all # Enumerate all test results $ . install/local_setup.bash # Setup the environment to use the built packages $ <...> # Use the built packages TL;DR
  • 33. Python launch system 33 $ ros2 launch demo_nodes_cpp add_two_ints.launch.py
  • 34. 最新のROS 2 distribution • ROS 2 Dashing Diademata ­ code name: dashing ­ 2019/05/31に正式リリース ­ EOLは2021年5⽉まで üこれまでのものは半年だった ü次期Eloquent@2019/11は Supported for 1 yearの予定 • 主なUpdate ­ componentスタイルの推奨 ­ Actionsの仕様変更 ­ rosidl, parameters機能の更新 34
  • 35. ROS versionとdistribution distribution Release EOL date Ubuntu Indigo Igloo 2014/07/22 April, 2019 Trusty (14.04) Kinetic Kame 2016/05/23 April, 2021 Xenial (16.04) Melodic Morenia 2018/05/23 May, 2023 Bionic (18.04) Ardent Apalone 2017/12/08 Dec. 2018 Xenial (16.04) Bouncy Bolson 2018/07/02 July 2019 Xenial (16.04) Crystal Clemmys 2018/12/14 Dec. 2019 Bionic (18.04) Dashing Diademate 2019/05/31 2 years Bionic (18.04) Eloquent Elusor 2019/11/22 1 years 35 http://wiki.ros.org/Distributions • 追記︓Gazebo 11 (3D sim tool)は2020年で最終リリース ­ 2025年1⽉までのLTS release ­ 次世代版の Ignition Acropolis が開発進⾏中 https://index.ros.org/doc/ros2/Releases/
  • 36. ROS 1 vs. ROS 2 • ROS 2はまだまだ発展途上 ­ Dashingは決定版になる可能性が⾼い • 既存パッケージを使いたいならROS 1 これからスクラッチ開発ならROS 2 ­ あとは,今後の強みとしたいなら当然ながらROS 2 • 使いたい機能が熟れてきたらROS 2移⾏すべき ­ rosbag,MoveIt,リアルタイム制御,セキュリティ,,, • ROS 1の寿命はあと1~2年と⾔って差し⽀えない ­ Python 2/3問題も考慮すべき (ROS 1はPython 2) Python 2.7 will not be maintained past 2020. https://pythonclock.org 36
  • 37. distributionの選択 • ROS 1については,パッケージの充実度による ­ 使いたいパッケージがあるか︖ 依然としてKineticが充実 ­ Melodicはまだまだこれから (Ubuntu 18への追従も⼤変) • ROS 2については, 新しいほうが当然良い ­ コア機能の安定度が どんどん向上してきている ­ アプリ設計に直結する⼤きな 仕様変更が発⽣することも 37
  • 38. ROSのライセンス • コアモジュール・コンポーネント ­ ROS1︓BSD # 修正・再利⽤・再配布可 ­ ROS2︓Apache 2.0 # より商⽤利⽤向き • 個別パッケージ ­ OSI認証のものがそれぞれ独⾃に設定可能 ­ GPL, LGPLの可能性もあり ­ http://wiki.ros.org/DevelopersGuide#Licensing • DDSもライセンス形態が幾つかあり(P.25) • [ros-japan-users] Software License Introspection in ROS package dependency chain by 130s (Isaac I.Y. Saito) https://www.youtube.com/watch?v=i40tsh2e6P8 38
  • 40. ROSの商⽤展開 • ROSのライセンス形態 ­ コアモジュール・コンポーネント üROS1: BSD # 修正・再利⽤・再配布可 üROS2: Apache 2.0 # より商⽤利⽤向き ­ 個別パッケージ︓ OSI認証のものを独⾃に設定可能 (GPL, LGPLもあり) • ROSは商⽤製品に利⽤できるか︖ ­ Yes!! ROS 1での採⽤事例もあり ­ ROS-Industrial が商⽤利⽤を牽引 ­ ROS 2は通信層がOMG標準 ­ 機能安全対応や開発プロセス認証も加速中 40 http://aibo.sony.jp/
  • 41. ROS関連の研究紹介 • mROS︓組込みデバイス向けROSノード軽量実⾏環境 • ZytleBot︓ROSxFPGA の統合プラットフォーム • 箱庭︓IoT/⾃動運転時代の仮想シミュレーション環境
  • 42. Motivation 42 • 豊富なOSS資産 • Linux/Ubuntuの駆動が必要 • マルチプラットフォーム対応 (組込み環境を含む︖) • OSS資産はまだ潤沢ではない • 組込み技術は省電⼒化とリアルタイム性向上に貢献できる • ただし,ROS 1とROS 2の間に互換性が無い ­ APIレベルで異なる ­ プログラミングスタイルも異なる
  • 43. ROS 1の課題と我々の狙い 43 ROS 1ノードを組込み環境で 駆動するための 軽量な実⾏環境 • 豊富なOSS資産 • Linux/Ubuntuの駆動が必要 • マルチプラットフォーム対応 (組込み環境を含む︖) • OSS資産はまだ潤沢ではない . / - .
  • 44. mROSの全体像 44 - - - - - - - - - mROSの貢献 ü ROS 1パッケージの組込み環境への移植性の提供 ü 分散ロボット環境のエッジにおける省電⼒化とリアルタイム性の向上 . / - .
  • 45. mROSのソフトウェア構造 • mROSタスクはROS APIで設計可能 ­ mbedによるデバイスプログラミングも実現可能 ­ マルチタスク(マルチノード)化は ITRONプログラミングで実現可能 45 &/ A E A A C C A A )( & A . / - .
  • 46. mROSのシステムタスク構成 . / - . inter-task communication TCP/IP communication mROS comm. lib 46 TCPROS XMLRPC
  • 47. データ購読フロー • subscribe()呼び出し ­ (1)-(3)︓xmlマスタによるROSマスタへのノード登録 ­ (4)︓サブスクライブタスクによるmROSサブスクライバ初期化 ­ (5)-(7)︓ROSパブリッシャノードへのトピック購読リクエスト送信 • 周期実⾏によるデータ購読 ­ (8)-(9)︓コールバック関数実⾏と結果取得 47. / - .
  • 48. データ出版フロー • データ出版︓advertise()によるROSマスタへの登録後 ­ publish()呼び出しによりデータ出版可能 ­ (1)︓共有メモリに出版データ書き込み ­ (2)︓パブリッシュタスクへの出版通知 ­ (3)︓出版データ読み込み ­ (4)︓対応するTCPソケットからデータ出版 48. / - .
  • 49. デバイス内ノード間通信 49. / - . • タスク間の購読通知にはデータキューを使⽤ • publish()がサブスクライバタスクへと購読通知 publish()が 出版相⼿を判断して メッセージIDを⽣成 トピックの購読 リクエストは ⾏わない
  • 50. 現在の開発対象 • Renesas GR-PEACH ­ mbedライブラリ対応 üオンラインコンパイラ有り ­ Arduino互換ピン ­ 純正カメラシールドあり üOpenCVも使える︕ 50 http://gadget.renesas.com/ja/product/peach.html 搭載マイコン RZ/A1H ROM/RAM 外部FLASH 8MB 内蔵10MB 動作周波数 400MHz 動作電圧 3.3V/1.18V 画像認識ROSノードが きびきび動く︕︕︖ . / - .
  • 51. mROSの活⽤事例 • 特徴点抽出を⾏うROSパッケージ*1を対象 • エッジデバイス上でシステムの⼀部を実⾏ • 2種類のシステムを構築 51*1:宇都宮⼤学の⼤川猛先⽣からご提供 画像データの圧縮 処理を⾏うノード カメラのデバイス ドライバノード デバイス内通信は 提案⼿法を⽤いる . / - .
  • 52. Case Study: distributed edge detection system 52. / - . 1 1 ! 1 1 ! 1 1 1 1 1 ! 1 1
  • 53. - . - /- - プロセッサ vs. ASIC 53 設計容易性・柔軟性 開発製造コスト 省電⼒性 性能・並列性プロセッサ & ソフトウェア ASIC (専⽤回路) ハードウェア FPGA
  • 54. - . - /- - FPGAとは︖ 54 •Field Programmable Gate Array ­中⾝を改変可能なLSI ­ハードウェアそのものの 振る舞いを変えられる ­独⾃のデジタル回路を ⾃由に何回でも形成できる ­GPUよりも電⼒効率や リアルタイム性に優れる IOB SB CB LB IOB IOB SB IOB LB SB CB CB SB CB SB SB CB CBLB IOBIOB LB SB SB SB IOB IOB CB CB CB CB CB CB ⼊出⼒ブロック コネクションブロックLB 論理ブロック IOBSB スイッチブロック CB
  • 55. - . - /- - プログラマブルSoC 55 • プロセッサとFPGAを 1チップに収めたSoC ­Xilinx Zynq / Intel SoC FPGA • プロセッサ上ではLinuxや リアルタイムOSを稼働できる • もちろんROSも稼働可能︕ • デバイスドライバを介して FPGA上のHW回路を デバイスとして扱える ­処理後データを直接受け取れる ­FPGAの回路の再書き換えを Linuxから⾏うことも可能︕ (Linux kernel 4.10以降) Processor FPGA Ubuntu 18.04 IP CoreIP Core Sensor /dev/video0 Config 画像処理 IP Core
  • 56. - . - /- - ROS対応ロボットへのFPGAの適⽤ 56 • 書換・再構成可能な回路を設計 • 省電⼒性・並列性能の向上 • CPUとの密結合による柔軟な構成 • 開発⽣産性の向上への期待 • 豊富なOSSパッケージ • 分散システム・マルチスケール対応 Ø ROSとFPGAの双⽅で ⾼度な開発知識が求められる Ø ロボット技術者がFPGAを 導⼊する敷居は⾼い (逆も)
  • 57. - . - /- - ROS対応ロボットへのFPGAの適⽤ 57 • 書換・再構成可能な回路を設計 • 省電⼒性・並列性能の向上 • CPUとの密結合による柔軟な設計 • 開発⽣産性の向上への期待 • 豊富なOSSパッケージ • 分散システム・マルチスケール対応 ZytleBot ROSxFPGAの統合プラットフォーム ⾃律移動ロボット開発における FPGA開発技術の習得を容易化
  • 58. - . - /- - ZytleBot 58 現在はDashingに対応 Robot TurtleBot3 SBC Ultra96 OS Ubuntu 18.04 ROS Crystal Clemmys Robot TurtleBot3 SBC Zybo Z7-20 OS Ubuntu 16.04 ROS Kinetic Kame
  • 59. - . - /- - ZytleBot におけるFPGAの活⽤⽅式 59 (1) センサデータをFPGAで直接処理して プロセッサの負荷を軽減 (2) プロセッサからFPGAにデータを送信して 処理を⾼速化 ) ( 2 0 2 1
  • 60. - . - /- - FPGAの活⽤︓⾚信号検出 60 •スライディングウィンドウ法+SVM ­⼊⼒:320pix*240pixフレーム画像 ­出⼒:891個のウインドウの推定結果 •実装結果 ­SWのみ ︓1700 ms (0.58 fps) ­HW使⽤時︓6.22 ms (160 fps) SVM Classification ! "#$ % 𝑤" 𝑥" + 𝑏 Feature Extraction 8x8 BGR 8x8 HSV HOG 275倍の⾼速化︕ https://github.com/lp6m/ImageDetectionHW2
  • 61. - . - /- - ROSツールの活⽤ 61 • シミュレーションデータを FPGAに送信して処理を確認 • FPGAモジュールのテストや 結果⽐較をrosbagで容易化 開発・検証コストの ⼯数削減に貢献
  • 62. - . - /- - ZytleBot の活⽤事例 62 連続優勝!! Driving System •FPGA関係の国際会議の併設コンテストに参加 ­FPT2018 FPGA Design Competition ­HEART2019 FPGA Design Competition
  • 64. 『箱庭』の⽬指すところ • IoT/⾃動運転時代のシステム全体を 検証するためのシミュレーション環境 ­ 各機器がネットワーク接続されたアーキテクチャを想定 • 箱庭の利⽤者 ­ システム開発者 ­ サービス提供者 ­ 箱庭アセット開発者/提供者 ü=システム構成要素 • ⽬指す強みと新しさ ­ IoTの各要素を連携させて任意の精度で検証可能 ­ 検証の対象/抽象度/レベルを任意に変更できる 64 箱 庭 )(
  • 65. 全体像 65 b m E m / m m m W U O R E S R m m P be be C m R 箱 庭
  • 68. 現状のデモのご紹介 • Athrill/mROSで Unity仮想⾞両の 制御を机上で デバッグします • Athrill ­ CPU命令セット シミュレータ üV850/RH850 ­ リアルタイムOS とROS/mROSの 対応版も 68 O A A E R RP R ) / P R / P A / A / P A / A Athrill 箱 庭
  • 70. 協⼒者募集中︕ • でっかく語って,少しずつ育てております︕︕ • 『箱庭』の狙い・趣旨にご賛同いただける⽅の 参画をお待ちしております︕︕ ­ まずはSlackでの議論,活動内容へのご要望, コア技術や各アセットの開発,などに参加したい⽅ ­ 箱庭の活動で期待される技術成果を 活⽤・展開してみたい⽅ • 現在はTOPPERSプロジェクト傘下の ワーキンググループにて活動中 問合せ先︓ secretariat@toppers.jp 70 箱 庭
  • 72. まとめ • ROS is not just framework, but design platform for robots!! ­ ロボットシステムの開発と“つながる”を加速化 ­ ROS 2の開発が鋭意進⾏中 Letʼs contribute!! • 組込み/IoT関係の研究紹介 ­ mROS︓ROSノード軽量実⾏環境 ­ ZytleBot︓ROSxFPGA 統合PF ­ 箱庭︓IoT/⾃動運転時代の 仮想シミュレーション環境 72 お気軽にご連絡ください︕ takase@i.kyoto-u.ac.jp Twitter: @TAKASEhideki
  • 73. ROS Japan Users Group • Discourse: https://discourse.ros.org/c/local/japan • connpass: https://rosjp.connpass.com ­ 勉強会・講習会など 初⼼者から歴戦の猛者まで︕ ­ 関⻄や瀬⼾内でも開催︕ ­ メンバー数1,488名 • Slack: rosjp • Twitter: #rosjp ros.xrea.jp 10/13(⼟) ⾹川 11/20(⽔) 東京本郷
  • 74. 参考情報︓書籍 • ⼩倉 崇︓ROSではじめるロボットプログラミング ­ まずはじめに読むべき書籍︕バージョンと情報は古いので注意 • 表 允皙 ほか︓ROSロボットプログラミングバイブル ­ TurtleBot3を⽚⼿に進める場合の良書 • 上⽥ 隆⼀︓Raspberry Piで学ぶROSロボット⼊⾨ ­ ラズパイマウスを⽚⼿に進める場合の良書 • ⻄⽥ 健 ほか︓実⽤ロボット開発のための ROSプログラミング ­ 中級向け ロボット開発をなにか実践して から読むのが有⽤ • 近藤 豊︓ROS2ではじめよう 次世代ロボットプログラミング ­ 世界初 && 最も充実したROS 2の解説本︕ 74
  • 75. 参考情報︓Web解説 • ROS Tutorials http://wiki.ros.org/ROS/Tutorials • ROS 2 Tutorials https://index.ros.org/doc/ros2/Tutorials/ • ROS講座 (on Qiita) https://qiita.com/srs/items/5f44440afea0eb616b4a • Yutaka Kondo: Getting Started with ROS 2 / DDS, ROS Japan User Group #27, Dec 2018. https://speakerdeck.com/youtalk/dds • Geoffrey Biggs: 次世代ロボットフレームワークROS2の紹介, 第20回 組込みシステム技術に関するサマーワークショップ (SWEST20), 2018年8⽉. https://swest.toppers.jp/SWEST20/program/s2a.html#s2 • Geoffrey Biggs: ROS Japan ユーザグループ 講習会 〜 ROS 2 の紹介 〜 https://gbiggs.github.io/rosjp_ros2_intro/index.html https://github.com/gbiggs/rosjp_ros2_basics • TIER IV ACADEMY ⾃動運転システム構築塾 Day 2 ROS演習 ROS演習3︓ROS 2.0の最新動向について http://4c281b16296b2ab02a4e0b2e3f75446d.cdnext.stream.ne.jp/randc/mirai/2- 3_ros2_LP.pdf 75
  • 76. 参考情報︓引⽤ • Tully Foote: ROS Community Metrics Report, Jul 2018. http://download.ros.org/downloads/metrics/metrics-report-2018- 07.pdf • Dirk Thomas, Mikael Arguedas: The ROS 2 Vision -For Advancing the Future of Robotics Development-, ROSCon 2017, Sep 2017. https://roscon.ros.org/2017/presentations/ROSCon%202017%20RO S2%20Vision.pdf • Dirk Thomas, Esteve Fernandez, William Woodall: State of ROS 2 - demos and the technology behind, ROSCon 2015, Oct 2015. https://roscon.ros.org/2015/presentations/state-of-ros2.pdf • ROS 2.0 Design, https://design.ros2.org • ROS 2 Overview, https://index.ros.org/doc/ros2/ 76
  • 77. 参考情報︓論⽂ • Hideki Takase, Tomoya Mori, et al.: Work-in-Progress: Design Concept of a Lightweight Runtime Environment for Robot Software Components Onto Embedded Devices, Proc. of EMSOFT, Oct 2018. https://ieeexplore.ieee.org/document/8537199 • Hideki Takase, Tomoya Mori, et al.: mROS: A Lightweight Runtime Environment for Robot Software Components onto Embedded Devices, Proc. of HEART, Jun 2019. https://dl.acm.org/citation.cfm?id=3337815 • 森智也,⾼瀬英希,他: mROS︓組込みデバイス向けROSノード軽量実⾏環境, 情報処理学会研究報告, Vol. 2017-EMB-46, No. 42, pp. 1-6, 2017年11⽉. • Yasuhiro Nitta, Sou Tamura, Hideki Takase: A Study on Introducing FPGA to ROS Based Autonomous Driving System, Proc. of FPT, Dec 2018. https://ieeexplore.ieee.org/document/8742257 77