CodeZine(コードジン)

特集ページ一覧

ラズパイで動くロボット「GoPiGo」をつかって遠隔見守りロボットを作ろう(3)スマホ連携編

ROSとRaspberry Piで遠隔みまもりロボットを作ろう 第3回(「Tech-Sketch」出張所/番外編)

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2017/04/13 14:00
目次

実行

 ではさっそくカメラ映像をブラウザで見てみましょう。まずは、カメラノードを起動するところまで行います。

 まずは、いつものようにROSマスターを起動します。

ROSマスターの起動
$ roscore

 次に、カメラ画像を取得するためにカメラノードを起動します。

USBカメラノードを起動
$ rosrun libuvc_camera camera_node

 前回解説したように、コマンドラインでノード名の一覧を表示しましょう。カメラノード名を確認します。

ノード名の一覧表示
$ rosnode list
/libuvc_camera
/rosout

 カメラノード名は/libuvc_cameraだと分かりました。次に、/libuvc_cameraノードに関する情報を確認します。

/libuvc_cameraノードの情報を表示
$ rosnode info /libuvc_camera
--------------------------------------------------------------------------------
Node [/libuvc_camera]
Publications:
 * /libuvc_camera/parameter_updates [dynamic_reconfigure/Config]
 * /camera_info [sensor_msgs/CameraInfo]
 * /image_raw [sensor_msgs/Image]
 * /rosout [rosgraph_msgs/Log]
 * /libuvc_camera/parameter_descriptions [dynamic_reconfigure/ConfigDescription]

Subscriptions: None
~以下略~

 上記のPublicationsを見ると、/image_rawという名前のトピックをsensor_msgs/Imageというメッセージ型で発行していることが分かります。Imageというメッセージ型の名前からも分かる通り、これはROSで画像を扱う際に標準的に用いられる型です。

 では、/image_rawトピックをスマホなどのブラウザに表示させるにはどうしたらよいでしょうか。ここで、web_video_serverパッケージを利用します。このパッケージは、ROSの画像トピックを、Webで扱うことができるmjpegなどの形式にエンコードして配信する、HTTPストリーミングサーバの役割を持ちます。

 データの流れのイメージは下図になります。まずカメラノードによって/image_rawトピックが発行されます。ブラウザ上でHTTPリクエストが発行されるとストリーミングサーバを経由してブラウザ側に動画が配信されます。

カメラ映像のストリーミングイメージ
カメラ映像のストリーミングイメージ

 では、ストリーミングサーバを実行してみましょう。このサーバは、デフォルトで8080番ポートをクライアント接続用に解放します。

動画ストリーミングサーバ起動
$ rosrun web_video_server web_video_server
[ INFO] [1490083960.186788634]: Waiting For connections on 0.0.0.0:8080

 最後に、カメラ映像を確認しましょう。下記にブラウザ(パソコンやスマホ)でアクセスしてみましょう。?topic=以下に表示したい画像のトピック名を入力します。今回は、/image_rawです。

http://GoPiGoのIPアドレス:8080/stream_viewer?topic=/image_raw

 下図のようにカメラ映像が見えましたか?

ブラウザに表示されたカメラ映像
ブラウザに表示されたカメラ映像

 これで、USBカメラから画像を取得して、その画像をストリームとしてブラウザで表示できるようになりました。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:ROSとRaspberryPiで遠隔みまもりロボットを作ろう(「Tech-Sketch」出張所/番外編)

著者プロフィール

  • 古賀 勇多(TIS株式会社)(コガ ユウタ)

    TIS株式会社 AIサービス事業部AIサービス企画開発部所属。2015年入社後、自律移動ロボットの研究開発に従事。ロボット・クラウド・機械学習を活用した、人と共生できるロボットシステムの開発を目標にしている。最近興味がある技術は電子工作や3D CAD、DIY。

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5