ROS Japan UG #10 勉強会 に参加した #rosjp - ReDo

2017年5月20日

ROS Japan UG #10 勉強会 に参加した #rosjp

rosjp-ug-10.jpg

ROS Japan UG #10 勉強会
https://rosjp.connpass.com/event/55125/

昨年度末にROSとコンニチハしたのですが、その勢いでuArm Swiftをbackしました。
じゃあせっかくだしROSをもう少し覗いてみてもいいのでは、というふんわりしたトリガでROSの勉強会に参加してみました。

○はじめに

発表を聞きながら発表資料URLを検索していましたが、資料はconnpassのイベントページにアップロードされており、そちらが正規ルートです。
このエントリにもリンクを張っていますが、最新状態ではないかもしれないことをあしからずご了承ください。

○わからなかったのでその場でぐぐった単語

MISUMI
LiDAR(ライダー)
ROS 2
ベロダイン社のライダー
crazyflieドローン

以下、発表内容ととくに整理していないメモです。
メモ量の変動が激しいのは面白かった/よくわからなかったという話ではなくて、気まぐれです。適当申し訳ない。

@fukkun_chan ITとRT(ネットワーク技術と時々、仮想化)

・「僕をROS沼に入れてくれた良書だと思います」<ROSではじめるロボットプログラミング
・VRゴーグル連動ロボットなどを作ったりしている
・「ROS」「Turtlebot」「3Dプリンタ」「MISUMI」があればなんでもできる(とイキっていた)
・IT屋の観点の話
・ROSの欠点:大量のノード・大量のプロセスの統合監視の仕組みや、時刻同期・名前解決・アドレッシングまわりが弱いと感じる
・「RDBOX」というものをつくりました
・Robotを扱うためのネットワークデバイス、WiFiマルチホップでフレキシブルなネットワークを構築を可能、単機能ロボット・メカにつないで1システム
・IoT機器→パンチルト機構つきカメラ→RasPiマウスのように、IoTからRT(Robot Technology)
・NTP、DHCP・DNSまわりの解決に対応
・WiFiマルチホップで920MHz帯のやつと比較して大容量
・Docker Swarmを採用、ロボットが動く環境をクラスタとして捉える。
・Dockerに手を入れてホストネットワークと仮想ネットワークを同一IPになるようにした
・Dockerについて(改めての)説明、ビルド環境まるごと、catkin_makeが怖くなくなる(失敗しない)
・Docker Swarmについての説明:複数のDockerおhスト(ロボットのコンピュータ)を束ねてクラスタ的に扱う
・欲しい人がいたらRasPiのイメージとか構築手順とか
・セキュリティがまだ甘いかもしれないが、ネットワーク分離・VPNでカバーは可能だろう

Q. ホスト側のUSBデバイス、例えばKinect等はホスト側への設定で動かしているのか?
A. Docker側への設定でいける、Kinectは動作することを確認している

@otl Rustのススメとrosrustの紹介

・「Rust歴2ヶ月ぐらいです、Rust知ってる人ー?」(挙手)「半分ぐらい」
・helloworld、"!"はマクロ。C++に近い印象
・新しい言語を試す際に、ROSのクライアントをつくってみる
・XML-RPCによるroscoreの通信、メッセージのシリアライズ、socket、文字列操作、スレッドの扱いなどどのような言語か理解するのに便利
・ROSそのものにも詳しくなる
・すでにやってる人がいないかググったほうがいいよ
・ROSでrustやってる人いないだろう
・三人もいた
・一人以外挫折
・rosrust
https://github.com/adnanademovic/rosrust
・"rust install"でググる
・rust自体はOS問わずだけど、rosrustはすでにROSが入っている必要がある(ので、MacやUbuntuじゃないと動かない、ということのはず)
Q. cargo build(コマンド)って何?
A. Rust(ほぼ)標準のビルドツール、catkin_makeとかrosrunみたいな位置づけ
・みんなもやってみよう
https://github.com/OTL/rosrust_tutorial
・rosrustを作ってRustを勉強するつもりが、(すでに作られていて)作らなかったのでこれでは勉強にならない、関連するものをつくってみよう
https://github.com/OTL/rust_learning_sandbox
・URDFのパーサ作ったりビジュアライザつくったり
https://github.com/OTL/urdf-rs
・おまけ:ripgrep:Rustで書かれた世界最速のgrep

@s_kajita Choreonoid+ROS
・HRP-4C 未夢(ミーム)つくってた人です
・Choreonoid(コレオノイド)
・Gazeboとの違い:起動が早い・シミュレータにもロボット操作端末にもなる・開発者が僕の隣に座っている
# 職場(産総研)
・戦車で遊ぶためのコードを追加
・catkin config --merge-devel
Build products from each catkin package into a single merged devel spaces.
・rosrun turtlesim turtle_telop_keyで戦車を動かす、image_viewで戦車視点のカメラ映像が見える
・rqt_ez_publisherで戦車の砲塔を・・・回るはずなんだけど回らず→再起動して成功
・yawとpitchを直した、球はでないけどライトはつけられるよ
・今後の課題:戦車が弾を出せるようにする

○@NoriakiNakagawa ラズパイマウスの紹介

2017/03/30に「Raspberry Piで学ぶ ROSロボット入門」発売決定!
http://products.rt-net.jp/micromouse/raspberry-pi-mouse
Q. 動く実物ないの?
A. 動かないけど実物はあるよ
・Rasberry Pi Gibbon(ギボン:テナガザル)もあるよ

○@youtalk ROS2はじめました
・前半:10分でわかるROS 2
・ROSCon 2016 in SEOUL
・ROSCon 2017がカナダ(バンクーバー)がもってった、2018はJapanでやりたいので求む協力者
・ROSはそのままメンテナンスを継続して、ROS 2とはコンバーターを介して通信できるような形を考えてる
・rcl(ROS client library)ライブラリ層にNames & namespaces, Time, Parameters, Console
・プロトコルにDDSを使う。UDPベースでQoSに対応、到達保証でTCPライクに(ROS)としては使える。
・DDSはマルチホップで中継されつつノード間通信が可能、ROS 2ではmasterがいない
・「ROS 2 on "small" embedded systems」とあるが、ROSが組み込みデバイスにまるっとのるようになるわけではなくて、RTPSが喋れればROS 2システムに結合することができるの意。組込向けのFreeRTPSなどのライブラリで可能。
・(下の層がrclでくるまれているので)topic データをアドレス渡しでいける、同一マシンメモリ上でのコピーが発生しない、ノード間通信速い

・後半:ROS 2 on Docker
・docker pull osrf/ros2 ←6ヶ月前からビルド失敗、PRは出してるけど未マージ
・docker pull youtalk/ros2-ja ←自前で最新追従したものを公開してる
・ROS 2の話をしているけど、ROS 1 kineticも動く、Macネイティブで動く
・dockerはプロセスが1つなのでrosnode1つで1コンテナみたいな富豪的な感じで、roslaunch(ROS 2にroslaunchがいまのところない)の代わりにdocker-composeでいける
・ROS 2とDockerの相性抜群:単一障害点(roscore)がない

Q. ROS 1との通信は試した?
A. ROS 2にコンバータがあって相互に変換してるだけ、難しくない、RViz可視化もうごいた

@YukiKitsukawa,@yukky_saito Autowareの紹介
・名古屋からきました。自動運転用ソフトウェアの紹介。
・ROSをベースにしている。開発中。名古屋大を中心に2014年から開発して、OSSにしている。GitHub見てね
https://github.com/CPFL/Autoware
・高精度3次元測定、測定結果はPointCloud、自動運転路上試験もやってる。(プロモビデオや実証実験の映像を再生)
・実際に公道で撮られたrosbagデータを用いて走行デモ
・地図情報、ベクターデータ(白線マップ)、スキャンマッチングで位置を推定している
# すげー高精度
・1回走っておいて、経路を記憶しておいて、自動運転することができる
・座標・向き・速度(40.0って表示されてたのでkm/hかな)
・画像認識:SSD(ディープラーニングを用いている)のデモ、車載正面カメラ画像とライダーの測定結果から環境認識をしている(carって表示された)

Q. めっちゃstarとかついてるけどどんな人に注目されているのか
A. いろいろ、自動運転自体が注目されているからなのでは
Q. 類似のものはあるのか?
A. 自動運転特化のOSSなプラットフォームはないんじゃないかと
ZMPのRobocarを使っている

※発表内容の技術的補足としてはこれがわかりやすかったです
Autowareの紹介と課題(1/2) - Qiita http://qiita.com/yukkysaito/items/21a70ec6b07f1ca559cb

@vivitter ロボットサービス開発の現場から〜SIerから見たロボットサービス開発の難しさ〜
# NTTD 技開本
・クラウドロボティクス基盤の紹介
・「NTTDがロボットやってるって知ってる人」→それなりに挙手
# Sota君ぐらいしか知らない(他をやってると言ってるのか知らない、の意)
・NTTデータにおけるROSの活用事例:プロトタイピング環境として活用しています!
・ショールーム顧客アテンドシステム:でturtlebotの上にタブレットを(譜面台みたいな感じの上に)置いたアテンド案内ロボットの紹介
・ロボットサービス開発に潜む難しさ
1. 高度な業務知識をどのように仕様に落とし込むか?
2. 仕様変更に強いシステムをどう設計・構築するか?
・Context Awareness:Entity-Content-When,Where,Who,What,How much
想定したコンテキストに対してどういうサービスを提供するかというモデル化
・例)高齢者見守りサービスの場合:高齢者さん実際にどういう動きをするのか、ヒアリングなどをしてコンテキストのモデルを組んで、それに対して介護スタッフさんがどういう対応をしているのか、というサービスのモデルを組む。
・マルチデバイスインタラクションエンジンR-env(エンブ):遠隔操作

Q. 発表資料アップできそう?
A. します→拍手
# NTTDテンプレートのオーラ><

○@yoneken ROSの通信速度について
# 体調不良で欠席されてた

@nnn112358 OpenPose de ROS
・OpenPoseがGW終わりにマイブームに
・DeepLearningを使った単眼カメラでのスケルトン検出ライブラリ、画像・動画が入力にできる。姿勢・手の位置・足の位置がとれる。
・CUDA環境(新し目の要求)があれば、インストールは簡単
・すごいGPUな動くノートPCは(私の家庭では購入でき)ない
・ROSでnodeが複数PCでまたいでやれば分散できるのでは
・ROSはcamkeだけど、Makefile構成のままROSに対応させるpkg-configというものがあって、OpenPoseのopenPoseTutorialPose1をこれでビルドしてみた
・ところが
https://github.com/tue-robotics/openpose_ros
ラッパがすでにあった。昨晩時点ではmakeこけたけど、直ったらこっちがいいかも

@potix2 realsenseを使ってcrazyflieを自律飛行させてみた
crazyflieドローン
ROS Robotics By Exampleの9章Flying a Mission with Crazyflie
・RealSense R200を使った感想:USB給電が嬉しい、小さくて軽い、インストールが楽(16.04であればapt-getだけ)、USBカメラとして認識される
・Indigo-Ubuntu14.04環境だとRealSenseの環境構築がつらかったのでKineticにしたけど、今度はROS側がIndigoより情報が少なく苦労した。また、画角が狭くてトラックアウトが起きやすい。

Q. crazyflieはマニアックなドローンという印象だけどなぜ採用したのか?
A. 参考にした本に載ってた、ROSに関しては情報が揃ってた

@morikentiger 1ヶ月で4足歩行ロボットをラピッドプロトしてみた
・1ヶ月で4足歩行ロボットをラピッドプロトしてみた・・・つもりだった
・社会人的な忙しさを見積もりを誤った
・「この1ヶ月的に3Dプリンタの話をしたほうがいいのかもしれない」「すればいいのでは」
・「UbuntuをアップデートするとWiFiが使えなくなる問題について(2017年5月6日)」を紹介しにきました
https://github.com/ryuichiueda/raspimouse_book_info/blob/master/trouble_reports/wifiproblem.md
・CNC[KitMill Qt100]、3Dプリンタ[Raise3D N2]の導入、カーボンフィラメント反らない

@RyodoTanaka Moveit!を用いたアプリケーションの紹介
・「北九州から来ました」「10回でキリがいいので」
・ROS歴4年ぐらい、つくばチャレンジとか
・豆:九工大とY電機をつくった人は一緒
・MoveIt!+Kinect+Y電機の産業用のロボット
・ネガティブな面:設定のための資料が圧倒的に少ない(設定が終わったあとにrospyするような情報は結構ある)
・Trajectory start doesn't match Current Position, when using plan/executeというMotomanコントローラからのエラーの回避にプランニング完了後、実行後に1秒sleepしてる
・GazeboでGraspingをやってみる:平行チャックじゃないとうまくいかない
・ROS勉強会を九州でやりませんか。冬だともつ鍋、あと焼き鳥がおいしいです。

○@DeanKH gazeboで力覚センサプラグインを使う
・力覚センサ(どの方向にどれだけ力がかかっているか測定するセンサ)をGazeboで動かしてみた
https://github.com/DeanKH/ft_sensor_gazebo_sample

@shiba_8ro Turtlebot3の紹介
TurtleBot3 Official Wiki
http://turtlebot3.readthedocs.io/en/latest/
・open robotics(元OSRF)とROBOTISが中心になって開発
・テーブルトップで学生さんがカバンに入れて持ち運べて、ROSとSLAMの勉強できる
・できることその1:SLAM
・できることその2:Manipulation and Mobility
・turtlebot3 BURGER(ちっこい)とturtlebot3 WAFFLE(でっかい)の2種類+マニュピレータがある
・Intel Joule, Raspberry Pi, Jetsonとか、Intel Compute Stick(?)とかが脳みそに使える
・OpenCR Cortex-M7搭載のArduino互換マイコン、ROS Emmbeded
・DYNAMIXEL
・Onshape
・日本でROS Conを開くには?

○感想

「ROS知識不足でわからない話ばっかりだったらつらいなぁ」とか不安に思っていたのですが、意外となんとかなった気がします。
ROSそのものの知識不足よりは、ROSが主にターゲットとしている分野の知識の不足を感じました。
それでも「知ってる話の隣の知らない話を聞く」というのは基本的に楽しかったです。お疲れ様でした。
uArm Swiftで遊ぶところまではがんばりたい...!

コメントする