ROSCon JP2019 PM1めも

# 概要
この記事は2019年9月25日に行われたROSCon JP2019についての個人的なメモです。
そのため、不親切な表記と多分に間違いがあることをご了承下さい。

なおこの記事では午後の前半ライトニングトークまでを記します。
午前と午後の後半の内容については以下
[ROSConJP2019 AMめも](https://qiita.com/code_440/items/eb954584c60a8e8963fc)
[ROSCon JP2019 PM2めも](https://qiita.com/code_440/items/a97c19188c7016cc2e86)

# 内容
## 基調講演２: これからのGazebo: ROSのシミュレーションの次世代
13:30	Louise Poubel (Open Robotics)	
>GazeboはROSエコシステムのシミュレータの中では最も人気なツールの一つです。本発表では、物理シミュレーションの抽象レイヤーの話やカメラやLiDARからIMUやGPSといったセンサーシミュレーション、モデル作成GUIツール、ROSとROS 2のインターフェースの話などGazeboの最新の機能についてお話します。また聴講者は本発表により、抽象化、コード品質の向上、クラウド利用のサポートをしながら、よりモダンなライブラリを使用するGazeboのignitionへの移行（マイグレーション）をするためにOpen Roboticsが関わっているプロジェクトの中身についても学ぶことができます。	 

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">Open Robotics Louiseさんの基調講演が始まりした。ROSCon本家でお馴染みのGazeboを使ったライブスライドです。 <a href="https://twitter.com/hashtag/ROSConJP2019?src=hash&amp;ref_src=twsrc%5Etfw">#ROSConJP2019</a> <a href="https://t.co/BHtbxk02P7">pic.twitter.com/BHtbxk02P7</a></p>&mdash; ROSCon JP (@rosconjp) <a href="https://twitter.com/rosconjp/status/1176716068766642181?ref_src=twsrc%5Etfw">September 25, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

[ストリーミング](https://youtu.be/qdOZh1Gq4mA?t=16353)

### 自己紹介
- 千葉大電子工学出身

### 羊ロボットドーリー
- 差動輪ロボット
- 実機無し、Hello　Worldのような例として存在
- ドーリーの中ではROS2を実行

### Openrobotics
- Openroboticsで働いている
- Openroboticsの参加者は世界に39人

### Gazebo
- シミュレータの用途：プロトタイプ、開発、教育、競技、機械学習、CI
　メリット：高速イテレーション、費用、安全
- パーツ：物理、センサー、GUI、ハード・ソフトインターフェイス、クラウド

### Ignition
- 最近はGazeboじゃなくIgnitionの開発
- IgnitionはGazeboに比べライブラリが豊富
物理シミュレーションがしたい人は物理エンジン、レンダリングのみでいい人はレンダリングエンジンと使い分け

- SDF（Simulation Description Format）
タグを変えるだけでパラメータを変更可能

### 物理エンジン
- GazeboはSDFで4種の物理エンジンを切り替え可能だが4種だけ
- Ignitionではプラグインとして選択。自分のエンジンを使える

### センサー
- Gazeboは18以上用意。自分でも作れる。

### レンダリング
- GazeboはレンダリングにOGRE1のみ
- Ignitionはプラグインで変更可能。例えばNVIDIAのOPTIX

### GUI
- インタラクティブ：マウスでオブジェクトを動かしたり、パラメータで外力を加えたり
- 透明にして中を見たり、コリジョンの範囲を可視化、重心の可視化
- シミュレーションの作成：オブジェクトの配置などをマウス操作でコピペなど。
- GazeboはQtだったがIgnitionはQMLでより設定できる。

### クラウド
- Ignitionでは様々なモデルを用意
- CloudSim：AWSのクラウドなどでシミュレーションサーバーを実行可能
- GzWeb：シミュレーションを可視化するウェブクライアント

### おわりに
- Gazeboのロングタームサポートは9．来年最後となる11をリリース
- IGNITION BLUEPRINTをリリース。今年中にCitadelをリリース
これはROS1と同じ期間サポート
- 安定な環境はGazeboだが、多機能を要すればIgnition

### 質疑応答
- ティアフォー　片岡氏：Jenkinsと連携するパッケージがサポートされているか？
A:Openroboticsでは自分たちで作っているが難しい。使いたければリンクを教える。

- Q:Gazeboからの移行コスト、手順はある？大変？
A:ガイドを作っているところで今はない。
　名前がすごく変わっている。将来的には簡単にできるようになる。

- Q:？GazeboはROS2のブリッジある？
A:？ない？

- 近藤氏:IgnitionとROSのメッセージ通信の違いは？
A:ROSは大きいがシミュレータの中では小さくていいと思い、Ignitionトランスポートを使っている。

- Q:SDFでコンバートできる？これまでのGazeboはSDFで使える
A:同じもの使えるが、プラグインを使うときは変更いる。
　全部できていないが将来は全て使えるようにする。
　今でも単純なロボットはできる。

- Q:力・トルクセンサはあるか？
A:Gazeboはあるが、Ignitionはまだ。

- 近藤氏:なんて呼べば？
A:Ignitionはプロジェクトの名前。
　IgnitionGazeboがコンポーネントシステムを指す。

- Q:カメラのみなどダイナミクスの無い環境はできるか？
A:プラグインでできる。

- Q:Ignitionを使うために必要なスペックは？
A:パワフルなGPUと新しいUbuntu。一つ二つのロボットであればノートPCでも。

- Q:使用者やコントリビュータの数で多いのは？
A:それは答えられない。Ignitionはまだコンペの人くらい。

## グローサ形状と路面摩擦を陽に考慮したクローラの実時間シミュレーション	
14:20	岡田佳都 (理研AIPセンター／東北大学)	
>Gazebo7 (ROSKinetic) と9 (Melodic) 向けに開発したクローラ用プラグインを紹介します。発表者が知る限り、グローサ形状と路面摩擦を実時間で考慮できる世界初のGazeboシミュレーションです。更には、ラグ付き車輪やベルトコンベア、一定軌道を周回する車両・人などもシミュレートできるため、幅広い分野で応用可能です。開発を通じて体得したGazeboを使いこなすポイントも紹介します。	 

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">理研 岡田先生によるGazeboプラグイン開発のベストプラクティスの発表です。 <a href="https://twitter.com/hashtag/ROSConJP2019?src=hash&amp;ref_src=twsrc%5Etfw">#ROSConJP2019</a> <a href="https://t.co/aLWsVS9q9a">pic.twitter.com/aLWsVS9q9a</a></p>&mdash; ROSCon JP (@rosconjp) <a href="https://twitter.com/rosconjp/status/1176728385382273024?ref_src=twsrc%5Etfw">September 25, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

[ストリーミング](https://youtu.be/qdOZh1Gq4mA?t=19313)

### クローラのメリット
- 多種多様な環境で使える。
　→テストのために環境作るの大変
- 今回の対象は非変形クローラ

### 内容
- グローサ：クローラについている山
- 任意の移動体に使える。

### いままで
- 路面とクローラ接触点検出、拘束条件の設定、挙動計算
- 近似が不十分

### 1セグメント＝1関節
- 少ない関節で表現
- 実測2.79倍でシミュレーション可能
- Gazebo7、9でサポート。物理エンジンはODEのみ

### ベストプラクティス
- Gazeboのページにある構成
- ロボット間にリンクを入れればロボット同しを合体するなどできる
- バグがあるのでROSについてくるGazeboをOSRFのものにした方がよい

### 質疑応答
- ティアフォー　片岡氏:URDFだとRviｚでおかしくならない？
A:URDFではできない。

- 京都大学　高瀬氏:パブリッシュのベストプラクティスは？
A:なんか言われるとか馬鹿にされるを恐れずに。意外とみんな見てない。。

## Virtual RobotX Challenge 2019への取り組み	
14:35	田中良道、増岡伸哉、片岡大哉、和田翠星 (筑波大学、兵庫県立大学)
発表は片岡氏

>OUXT PolarisはMaritime RobotX Challengeに日本から有志で参加しているチームである。2018年大会ではタスクをROSを用いてOSSの自律航行システムを構築し、大会ではタスクを1つクリアした。今年は、シミュレーターによる大会Virtual RobotX Challengeが開催される。ROSCon JP 2019では、昨年の反省を踏まえたソフトウェアアーキテクチャの改良と、成果物によるROSコミュニティへの貢献について発表を行う。	 

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">OUXT Polaris片岡さんによる走行船のオープンソース自動航行システムの発表です。 <a href="https://twitter.com/hashtag/ROSConJP2019?src=hash&amp;ref_src=twsrc%5Etfw">#ROSConJP2019</a> <a href="https://t.co/Sd5zxeYljX">pic.twitter.com/Sd5zxeYljX</a></p>&mdash; ROSCon JP (@rosconjp) <a href="https://twitter.com/rosconjp/status/1176732568764346368?ref_src=twsrc%5Etfw">September 25, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

[ストリーミング](https://youtu.be/qdOZh1Gq4mA?t=20293)

### 大会、チーム紹介
- ハワイで行われる完全自律航行船のコンテスト
- 潜水艇での海底物体の回収タスクも

### 開発方針
- 成果物をOSSとしてROSコミュニティに返す。
- 7個くらいリリース
- 自律航行以外にも使えるものに。

### 昨年の問題点
- ２つだけのパッケージ
- コンパイルに時間かかる

### 今大会では
- ワークスペースの構成を管理
- ローカライゼーション、パーセプション、ビヘイビア、
- ある程度自律航行できるようになってきた。

### 成果物
- GPSプラグイン
- データバッファー：タイムスタンプ付き
- パーティクルフィルタによるローカライゼーション
- vision_msgsにコミット：トラッキングId
- ダークネット学習ツール
　などなど

### メリット
- ビルド時間短縮
- 再利用を意識したコーディングとなる
- 再利用しやすい

### ROS と MATLAB を活用した産業用ロボットのピッキングシステムの導入検証
14:50	森田賢 (安川電機)	
>MATLABRの製品ファミリの一つRobotics System Toolbox?には、ロボット開発に必須の関数群やROSとの連携機能がある。本Toolboxの活用により、ROSが有するロボットシステム構築の効率化という特長を活かしながら、MATLABの提供する広分野に渡る高品質な機能を加えた組合せ評価も可能になる上、稟議の面でもROS導入が促される可能性もある。本講演では弊社製MotoMINIを題材とし、MATLABによる深層学習（画像／音声認識）等の機能とROSを組合せた産業用ロボットシステムを紹介する。	 

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">安川電機 森田さんによるROSとMATLABを使った産業用ロボットシステムの発表です。 <a href="https://twitter.com/hashtag/ROSConJP2019?src=hash&amp;ref_src=twsrc%5Etfw">#ROSConJP2019</a> <a href="https://t.co/xPntALiAeo">pic.twitter.com/xPntALiAeo</a></p>&mdash; ROSCon JP (@rosconjp) <a href="https://twitter.com/rosconjp/status/1176736000518737921?ref_src=twsrc%5Etfw">September 25, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

[ストリーミング](https://youtu.be/qdOZh1Gq4mA?t=21113)

### 自己紹介
- ROSは完全に趣味
- 仕事、社会人博士だが関係ないテーマ

### ROS本
- ROSとMATLAB連携について担当
- 最近増刷
- 商品化を推進する本をみんなで作りたい

### モチベーション
- OSSの利用はハードル高い
- MATLABは様々な利用実績
　プログラムに自信なくもMATLABに自信ある人も多い

### MATLABとROS
- 2019ｂからロボットツールボックスが細分化
- 1970年代～、400万人以上のユーザ資産

### ROS-Industrial (ROS-I)
- Motomanを公開
- 実機と接続するMotoPlusはブラックボックス

### デモ
- 音声認識からピックアンドプレース
- MATLABの得意な状態制御
- ROSでセンサ情報を取得、MATLABのDeepLearningで物体検出、軌道計画
　ROS　Gazeboでシミュレーション
- 部分部分のシミュレーションはMATLABが楽

### Tips
・MATLABは遅い？→Coderを使うと高速化

###　所感
- 良かった点：色々な機能連携がよい
- 気になった点：変換可能な機能に制約がある

##　15:20 全員 ライトニングトーク
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">一人3分のライトニングトークが始まりました。1時間分すべて埋まりました。 <a href="https://twitter.com/hashtag/ROSConJP2019?src=hash&amp;ref_src=twsrc%5Etfw">#ROSConJP2019</a> <a href="https://t.co/82cFZ4TAWj">pic.twitter.com/82cFZ4TAWj</a></p>&mdash; ROSCon JP (@rosconjp) <a href="https://twitter.com/rosconjp/status/1176743822836977665?ref_src=twsrc%5Etfw">September 25, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

### 瀬戸内ROS勉強会
Onomichi　Hirokazu
[ストリーミング](https://youtu.be/qdOZh1Gq4mA?t=22991)
- 香川はうどんがおいいしいがROSを勉強する環境がない
- 今年から初めて３回開催
- 瀬戸内では共通課題としてビーズ並べ

### ROSを使ってIoTしてみた
ミヤケヤスヒロ
[ストリーミング](https://youtu.be/qdOZh1Gq4mA?t=23185)
- データ収集を助けるロボット
- いわゆる盤を現場の加工機に取り付け
- シグナルタワーの点灯状態など検知
- グローブを使ってラズパイとセンサ接続

### 深層学習のROSロボットへの適用事例
丹羽雄一郎(防衛装備庁)
[ストリーミング](https://youtu.be/qdOZh1Gq4mA?t=23455)
- 遠赤外線画像のセグメンテーションで人がいたら避ける
- DNNフレームワークとしてBonnet

### ROS2:Type Checked Python
Ted Kern (Ubuntu Robotics)
[ストリーミング](https://youtu.be/qdOZh1Gq4mA?t=23646)
- Typeの情報が重要
- Pythonで型情報を明示的に使えるようになり、mypyのような評価をできるようになった
- 問題としてmypyはオプションである
- ament_lintを紹介

### ROSで自律飛行ドローン
西本晋也、項錦先(株式会社センシンロボティクス)
[ストリーミング](https://youtu.be/qdOZh1Gq4mA?t=23861)
- 産業用ドローンを活用した業務用システム
- トンネル点検システム：ROS＋SLAMで自律飛行

### ROBOTIS製ROSフレームワーク
田中義丸 (株式会社ロボティズ日本支店)
[ストリーミング](https://youtu.be/qdOZh1Gq4mA?t=24065)
- 2種類のフレームワークを提供
- ヒューマノイドとアームを制御するコンポーネント

### ROSではじめるホビードローン
片岡大哉
[ストリーミング](https://youtu.be/qdOZh1Gq4mA?t=24244)
- QiitaにAPIの情報が出てきたのでROSドライバー作った。
- 今のところテレオペのみ
- 昨日一晩で書ききれた

### ROS初学者向けロボットプラットフォーム
Tatuya Ishikawa
[ストリーミング](https://youtu.be/qdOZh1Gq4mA?t=24359)
- DJIのRoboMasterS1をROS対応
- 動かすところはできたが、人センサと銃を撃つところができなかった

### 食品工場向け人型協働ロボットFoodly
野村弘行(株式会社アールティ)
[ストリーミング](https://youtu.be/qdOZh1Gq4mA?t=24542)
- 宣伝：アールティのRasPi MouseがROS2に対応
- 食品を扱う双腕ロボ：ROSの強みを生かし、苦手なところは独自実装

### Let's taste ROS
但馬竜介(TechMagic株式会社)
[ストリーミング](https://youtu.be/qdOZh1Gq4mA?t=24728)
- 調理ロボット：顧客ありのため詳細は見せられない
- 来年ランチでみせられればいいなと
- エンジニア募集

### MATLABとROS ToolBoxではじめるROS1/ROS2
木川田亘(MathWorks Japan)
[ストリーミング](https://youtu.be/qdOZh1Gq4mA?t=24912)
- ROSのToolBoxとして独立
- ROS2に対応

### ROSノード軽量実行環境mROS　update報告
祐源英俊、高瀬英希、高木一義、高木直史(京都大学)
[ストリーミング](https://youtu.be/qdOZh1Gq4mA?t=25110)
- ROSシステムの一部に組み込み機器を活用可能
- これまでメッセージは文字列型に限定されていたがほぼ解消

### 箱庭
高瀬英希(京都大学)、森崇（永和システムマネジメント）、高田光隆、庭野正義(名古屋大学)、細合晋太郎(チェンジビジョン)、田邉友、山田昌幸（永和システムマネジメント）
[ストリーミング](https://youtu.be/qdOZh1Gq4mA?t=25300)
- Athrill：組み込みマイコンシミュレータ
- ｍROSとこれでマイコン込みのシミュレーション環境「箱庭」ができる
- mROS/Athrill Unityで仮想環境
- 現在はTOPPERSプロジェクト傘下

### AWS Robomakerとcplcn bundle
河田卓志(アマゾン ウェブ サービス ジャパン株式会社)
[ストリーミング](https://youtu.be/qdOZh1Gq4mA?t=25504)
- AWS Robomaker：ROSのクラウド拡張、開発環境、シミュレーション、フリート管理
- 開発環境で開発したものを一つのバンドルとして別環境へ

### Fast-RTPS Shared Memory Extension Project
Tomoya Fujita(ソニー株式会社)
[ストリーミング](https://youtu.be/qdOZh1Gq4mA?t=25710)
- DDSの実装に最適化を加える
- SONYのフレームワークをROS2 RMWに接続
- eProsimaとともに開発

### NHK学生ロボコンにおけるROS
溝口裕介(京都工芸繊維大学)
[ストリーミング](https://youtu.be/qdOZh1Gq4mA?t=25827)
- NHK2015にてバトミントンロボット
- 普段はマイコンだが2DLRFを使いたい
- NHK2019は4足歩行タスク
- PCLで地面検出

### ROS Robotsにロボットを登録する方法
青木翔雷(株式会社アールティ)
[ストリーミング](https://youtu.be/qdOZh1Gq4mA?t=26024)
- ガイドを読む→画像用意→リポジトリフォーク＆クローン
　→作成スクリプト→テストスクリプト実行→コミット＆プッシュ＆プルリク

### ブラウザでのROS msgの可視化
オカモト(Rapyuta Robotics株式会社)
[ストリーミング](https://youtu.be/qdOZh1Gq4mA?t=26231)
- 日本郵便とのプロジェクト：アームで小包をパレットロボット上へ
- ROSCon 2019でROS in the Jupyter Notebookを講演

### ROSのWEB開発環境
ゴトウ(九州大学)
[ストリーミング](https://youtu.be/qdOZh1Gq4mA?t=26389)
- より簡単に扱いたい→Webだけで開発できる環境を構築中
- GUIでワイヤーを接続してプロセスを構築
- 試行錯誤しながらパッケージを構築できる

### ds4_driver
水野直希(三菱重工)　
[ストリーミング](https://youtu.be/qdOZh1Gq4mA?t=26542)
- ゲームパッドのDualShock4はいろいろな機能を持つ
- このドライバーを構築

###　WorldMoveIt! Day2019 
- さっき日付間違えたので
- 11月20日＠OMRON SINIC X(本郷3丁目)