ラズパイで動くロボット「GoPiGo」をつかって遠隔見守りロボットを作ろう(3)スマホ連携編
ROSとRaspberry Piで遠隔みまもりロボットを作ろう 第3回(「Tech-Sketch」出張所/番外編)
ダウンロード サンプルファイル (4.9 KB)
実行
ではさっそくカメラ映像をブラウザで見てみましょう。まずは、カメラノードを起動するところまで行います。
まずは、いつものようにROSマスターを起動します。
$ roscore
次に、カメラ画像を取得するためにカメラノードを起動します。
$ rosrun libuvc_camera camera_node
前回解説したように、コマンドラインでノード名の一覧を表示しましょう。カメラノード名を確認します。
$ rosnode list /libuvc_camera /rosout
カメラノード名は/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カメラから画像を取得して、その画像をストリームとしてブラウザで表示できるようになりました。
この記事は参考になりましたか?
- ROSとRaspberryPiで遠隔みまもりロボットを作ろう(「Tech-Sketch」出張所/番外編)連載記事一覧
-
- ラズパイで動くロボット「GoPiGo」をつかって遠隔見守りロボットを作ろう(4)インターネ...
- ラズパイで動くロボット「GoPiGo」をつかって遠隔見守りロボットを作ろう(3)スマホ連携...
- ラズパイで動くロボット「GoPiGo」をつかって遠隔見守りロボットを作ろう(2)ROS基礎...
- この記事の著者
-
古賀 勇多(TIS株式会社)(コガ ユウタ)
TIS株式会社 AIサービス事業部AIサービス企画開発部所属。2015年入社後、自律移動ロボットの研究開発に従事。ロボット・クラウド・機械学習を活用した、人と共生できるロボットシステムの開発を目標にしている。最近興味がある技術は電子工作や3D CAD、DIY。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
