9月7日(月)に開催された第4回 html5jロボット部 勉強会に行ってきました。今回のテーマは「ROS / ROS.jsについて学ぼう」です。
HTML5j ロボット部
https://www.facebook.com/html5j.robot
今回の勉強会のテーマはこちら。
ロボット・アプリケーション作成を支援するライブラリとツールを提供するオープンソースミドルウエアであり、Pepperでも正式対応したとされるROS。今回はROS.jsテーマにその前提としたROSについて概要と初歩的な部分を学んでいただければと思います。
会場は渋谷dots.
開放感のあるレイアウトに、おしゃれなソファーなどもあり、いい雰囲気の空間です。
イベント&コミュニティスペースということで、通常はワーキングスペースとして一時間から使用することができ、今回のようなイベントとしての利用も行われているそうです。
スケジュールを見てみると、html5jロボット部ありました。
勉強会のスタートです。
最初に会場スタッフの小沢さんから、渋谷dots.について。
普段はワーキングスペースとして運営しているそうなので、みなさまからのご利用もお待ちしているそうです。
渋谷dots.
https://eventdots.jp/space
ここから勉強会本編です。
最初に html5j ロボット部の egozilla さんからの発表「ROSを勉強してみて」です。
ROSとは、Robot Operating Systemの略で、ロボット開発のためのソフトウェアの集合体です。基本的にはオープンソースで開発されています。ロボット工学分野の研究・開発におけるコードの再利用することが目的です。
ROSの特徴は、「通信ライブラリ」「機能群」「ツール群」「エコシステム」「ディストリビューション」です。
「基本用語/通信方法」についてです。
「シミュレーター/可視化ツール」です。
ROSの導入方法です。
ここからはデモになります。
こちらは、PCキーボードのコマンドでロボットを操作してみるというデモです。
次は、分散画像処理のデモです。具体的には、カメラに赤いものを見せた時にはロボットを前に進ませて、青いものを見せた時には後ろに進ませるというものです。
試しに赤い椅子をカメラに見せると、バーチャルロボットが前に進みました。
最後にegozillaさんによるまとめです。思ったほど時間的な学習コストはかからず、アップデートが早いので思い立ったらすぐに始めた方がいいそうです。
推薦図書は『ROSではじめるロボットプログラミング』です。
次は、masapさんからの「ROS.jsについてとROS.jsをつかったデモンストレーション」。WebSocket経由でルンバを動かしてみるというものです。
ソフトウェア構成図はこちらです。
Rosbridgeについての説明です。ROSをJavascriptから使用できるようにするパッチでなので、Web開発者にやさしいです。
で、ROSは必要なのか?と疑問の方への説明です。人間がルンバを操縦するならROS無しでも可能ですが、自立移動をするためにROSが必要です。
SLAMについてです。Simultaneous Localization and Mapping の略で、自動的に地図を作成して、自分の現在位置を推定するものです。ROSを使うとSLAMが可能になります。
SLAMをするためには、周囲の状況を手探りするためのレーザースキャナが必要となります。
ROSにはレーザースキャナのデータを計測して自動マッピングする機能があり、マップ上の場所を指定してロボットを移動させることができます。
今回の会場である渋谷dots.のマッピングをしてみたのがこちらです。
ROSを使い、WebSocket経由で実際にルンバを動かしてみます。
窓際を指定して動作スタート!ルンバが健気に移動していきます。皆で無事たどり着くか固唾を飲んで見守ると、指定場所で無事ストップしました。成功です!パチパチパチ!
ちなみに500番台のルンバだと改造すればUSB接続ができるので、ROSで動かすのにオススメだそうです。また、研究用のiRobot Create 2もROSで動かすにはオススメですが、まだ日本未発売だそうです。
今回のスライドはこちらにあります。
続いて、若狭さんから「web標準技術だけでロボ」です。
まず、この動画を見てみましょう。
続いて、若狭さんから「web標準技術だけでロボ」です。
まず、この動画を見てみましょう。
Androidタブレットを使い、web標準技術だけで動くロボットです。顔はブラウザ(chrome)で描いていて、ChromeにはMIDIを認識する機能がついたのでそれを使っています。こちら、Maker Faire Tokyo 2015にいたロボットじゃないですか。
秀丸に書かれた code の量はそう多くないです。
このロボットは、Chromeが動いてUSB端子があるものです。Operaも対応していて、Firefoxも対応しそうです。
MIDIとロボット制御です。MIDIを使うといろんな特徴があります。キーボードのイベントと違って段階があったり、レイテンシが非常に少なかったり、物理的なコントローラが大量に存在していたり。音楽で使われているゆえの特徴ですね。
ブラウザでロボットを制御すると、OS標準のメモ帳でロボット開発が行えます。環境も開発環境もインストールなしで出来ちゃうんです!
まとめです。とりあえず、ROS.jsやる前に、MIDIでロボット作ろうぜ!
今回のスライドはこちらにあります。
発表は以上で終了です。
勉強会のあとは、懇親会です。みなさまお疲れ様でしたー。
(おまけ)渋谷dots.が素敵な空間で気に入りました。みんなも一回行ってみるといいと思います。
ABOUT THE AUTHOR /
北構 武憲本業はコミュニケーションロボットやVUI(Voice User Interface)デバイスに関するコンサルティング。主にハッカソン・アイデアソンやロボットが導入された現場への取材を行います。コミュニケーションロボットやVUIデバイスなどがどのように社会に浸透していくかに注目しています。