ロボットを使った物体認識アプリのハンズオン
Tech-Circleは4月初旬に、ソフトバンクロボティクスのPepperを使い、ROS(Robot Operating System)と呼ばれるロボット開発フレームワークを利用した物体認識アプリを作るハンズオンを開催しました。このハンズオンでは、参加者が実際に手を動かしながら、Pepperにマンガ本やおもちゃなどを見せると、それが何であるかを判断してPepperが声で教えてくれるアプリを作っていきます。
(ソフトバンクロボティクスのPepperを活用し、Tech-Circleが独自に実施しているものです)
勉強会は、Pepperの開発を体験できるスペースであり、ソフトバンクロボティクスが運営する「アトリエ秋葉原」で行いました。
「アトリエ秋葉原」では、デベロッパーやクリエーターの方がロボアプリ開発のために利用できるPepperが常設しており、事前に登録さえすれば無料でロボアプリの動作確認ができます。
勉強会では、まずロボット開発フレームワークROSの概要と、ROSのPub/Sub通信のしくみ、ROSが提供するGUIの可視化ツールの説明が15分ほどありました。
次に、物体認識アプリのハンズオンを行いました。PepperはNAOqiと呼ばれるOSが動作しますが、ROSを使うときは、NAOqi-ROSブリッジノードを使ってアクセスします。開発はあらかじめ参加者のノートPCに環境をセットアップした状態で行います。ROSはUbuntuでの動作がサポートされていますので、WindowsおよびMac OS Xの場合は、Docker Toolboxを使って開発環境を構築します。これは勉強会の事前準備になりますが、あらかじめ詳細な手順が公開されていたため、特に手間取ることはありませんでした。
ハンズオンその1では、まずROSコマンドの動作確認を行いました。ROSコマンドを使うと、Pepperの頭部のタッチセンサーやソナーで取得した値を表示できます。さらにカメラの画像を取得したり、ROSコマンドを実行することで、Pepperに発話させたり、任意の方向に移動させたりができることを確認しました。
ハンズオンその2では、Pepperに物体を見せ、それがなにであるかを発話させるというアプリケーションを作成しました。
(ソフトバンクロボティクスのPepperを活用し、Tech-Circleが独自に実施しているものです)
Pepperのカメラから取得した画像を認識するため、ROSが提供するfind_object_2dというパッケージを使用し、画像の特徴点や特徴量を基に画像認識を行います。Pythonで認識した画像オブジェクトと、それに対応する発話データをコーディングしていきます。実装コードは60行ほどですが、きちんとPepperによる物体認識アプリが完成しました。
筆者は、LinuxやDockerの基本およびPythonの文法程度の知識のみで、ロボット開発や画像認識などの知識は全くありませんでしたが、取材で実際にPepperに触れてコードを動かすことで、開発の大まかな流れやROSフレームワークの概要などを2時間半足らずで学ぶことが出来ました。
Tech-Circleの勉強会の多くはハンズオン形式で、勉強会の参加者に「手を動かして、実際に技術に触れてもらう」というスタイルをとっています。ただしハンズオンのため、勉強会本番に機器トラブルや環境構築の不備により動かないケースも想定されます。さらに、Tech-Circleが勉強会で取り扱う技術はメインテーマ以外も多岐にわたります。今回もROSだけでなく、DockerコンテナやPython/Ubuntuなどの知識が必要になります。そのため、毎回勉強会のリハーサルを行うそうです。リハーサルでは、ハンズオンの内容について事前に不具合が出そうなポイントや、参加者が躓きそうな箇所をメンバーが入念にチェックしていくそうです。
Tech-Circle久保氏(TIS株式会社)はこう言います。「自分たちが人におすすめしたい技術をシェアし、これまで知らなかった技術に触れる機会を提供することにとことんこだわっています。技術に何らか触れるきっかけを作れる場にしたいという思いから、参加者が技術を楽しめるようハンズオンの要素を盛り込んでいきたいと常に考えています。」
(ソフトバンクロボティクスのPepperを活用し、Tech-Circleが独自に実施しているものです)
先端技術の勉強会、というと優秀なエンジニアが、流行りの言語を使って、話題のツールでの開発手法を、綺麗なスライドで紹介するものとイメージしがちです。
しかしながら、彼らの勉強会では、ハンズオンの準備、プレゼン資料やサンプルアプリケーションなど目に見える部分の準備だけでなく、事前テストやインフラの準備など、目に見えない細部にまでこだわり、メンバー全員でチームを形成して、参加者と一緒に進めるというスタイルをとっているのが大きな特徴でした。
なおアトリエ秋葉原では、Tech-Circleが作成したハンズオン資料も用意されていますので、チュートリアルを見ながら1人で開発をすすめることもできます。
