「かわロボ/かわロボ技術賞 テクノ・クエスト」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
*かわロボ技術賞 テクノクエスト
2017/3/25に実機審査が行われた、センサを活かしたロボットの大会です。
大会のポイントとしては以下となります。
-別室からロボットを操作
-配置物の位置を把握
-ペットボトル内の温度を確認
まず一番大きな点は、別室でロボットを操作することです。
ロボットを直接見ることができないので、カメラを搭載して操縦することが基本となります。
今後使えるアイテムをまとめていきたいと思います。
*かわロボ技術賞 テクノクエスト
2017/3/25に実機審査が行われた、センサを活かしたロボットの大会です。
大会のポイントとしては以下となります。
-別室からロボットを操作
-配置物の位置を把握
-ペットボトル内の温度を確認
まず一番大きな点は、別室でロボットを操作することです。
ロボットを直接見ることができないので、カメラを搭載して操縦することが基本となります。
今後使えるアイテムをまとめていきたいと思います。
**アクションカムの映像をパソコンで表示する。
アクションカムの優位点は、やはり画像処理(手ぶれ補正)でしょう。
ロボットの移動の振動くらいでは映像がぶれません。
しかし弱点として、アンドロイド用アプリは公式で公開されていますが、
PC用ライブビューソフトは公開されていません。
そこで、ソフトを作って動かしてみました。(開発言語C#)
参考になったURL
[[http://ryuchan.hatenablog.com/entry/2014/01/12/231755]]
[[http://qiita.com/kota65535/items/a9afbeb28afd2c2ec0bb]]
ソースが汚いので全公開はできませんが、手順を説明していきます。
-ポイント1 無線LANアンテナを選ぶ
アクションカムの無線LANはどの規格に対応しているかですが、付属の説明書には書いてないので、
公式サポートの仕様を確認する必要があります。
[[http://helpguide.sony.net/cam/1410/v1/ja/contents/TP0000544115.html]]
HDR-AZ1はIEEE 802.11b/g/nに対応しているという事なので、
特にn規格対応の無線LANは通信速度が早いので、安定して映像を送るのは向いています。
よってn規格対応のもので、アンテナの長いものを選ぶといいでしょう。
ちなみに2.4GHzの半波長は光速/2.4GHz/2=62.5mmになりますので、最大利得を持ったアンテナは62.5mmのものになります。
-ポイント2 アクションカムのAPI
API:アプリケーションインターフェースが、公式より公開されています。
残念ながらサンプルはAndoroid又はiOS向けとなっており、Windows環境では使用できませんが、
付属している仕様のPDFが重要になります。
-ポイント3 ネットワーク上のアクションカムを探す
アクションカムはSSDPに対応しているため、URLを検索することができます。>参考URL
そこで、機器の情報がまとまったdd.xmlを取得するのが1歩目になります。
ただし、PCには複数のネットワークアダプタが接続されていることがあります。
違うネットワークでSSDPを使った検索を行っても、正常な回答はありません。
dd.xmlには、APIを使用するURLが記載されています。
SSDPはUDPで送受信可能です。
送信IPアドレスを239.255.255.250とし、ポート1900を使用するのが特徴です。
この辺りは参考URLを見るといいでしょう。
-ポイント3 ライブビューの開始
ライブビューやほかの操作を行うためには、APIを使用するURL、アプリケーションURLに対して、
JSON形式のデータを送る必要があります。
JSON形式とは、ある変数と値のセットをやり取りするための形式です。
主にmethod,params,id,versionの情報を送る必要があります。(仕様のPDFに書いてあります)
JSON形式のデータは、HTTPで送ります。
C#であれば、httpClientクラスが使用できます。
DefaultRequestHeaderでJSON形式を指定し、dd.xmlで取得したアプリケーションURLに対して送受信を行います。
ライブビュー開始コマンドstartLiveviewが通れば、ライブビュー画像のURLが取得できます。
-ポイント4 JPEG画像の取得と表示
ライブビューを開始できると取得できるURLに対して、WebRequest及びStreamコマンドでbyte形式のデータを取得します。
byteデータは、画像情報とJPEGのデータが入っています。
注意点としては、一度のStreamのreadで、画像情報だけだったり、JPEGのデータだけだったり、JPEGのデータが分割されていることがあります。
画像情報は136バイト固定です。
JPEGのデータは可変長ですが、画像情報にバイト数が入っています。
画像情報は頭のデータが、0xFF,0x01か0x00と決まっているのに対して、
JPEGのデータは、0xFF,0xD8と決まっています。
この辺りを使って、バッファに取り込んだ後、JPEGの識別などを行う必要があります。
正しいJPEGのデータが取得できれば、あとは表示するだけです。
Visual Studioであれば、フォームアプリケーションのイメージボックスあたりを使うといいです。
#image(https://img.atwikiimg.com/www37.atwiki.jp/kisarazu_maicon/attach/137/185/img1.jpg)
UDP,SSDP,XML,HTTP,JSON,JPEGといろいろな形式や規格を扱わないといけないため、
ちょっと勉強するのも大変ですが、API発見から実装まで2週間弱でできましたので、頑張ってください。
**Raspberry Piを使用した映像転送
現在検討中。
用意するもの
Windows 10のPC
Raspberry Pi 3
microSDカード 16G(PC用のリーダライタも必要)
カメラモジュール
画面(HDMI対応または専用ディスプレイ)
OSにはWindows 10 IoT Coreを使用したいと思います。
まずはmicroSDカードにOSを準備します。
Windows10のPCで、
Raspberry Piの公式HPから、Downloadを選び、
THIRD PARTY OPERATING SYSTEM IMAGESの中からWindwos 10 IoT Coreを選びます。
[[Raspberry PI公式HP>>https://www.raspberrypi.org/]]
Microsoftのページに飛びますので、ハードウェア(Raspberry Pi 3)と、
インストールメディア、OSを選びます。
&font(l){今回はNOOBSを使わず直接BlankSDを使用したいと思います。}
IoT CoreとIoT Core Insider Previewが選べますが、
IoT Coreが安定版、Insider Previewが最新ビルドになっています。
次のページで、Windows 10 IoT Dashboardのダウンロードができます。
このソフトは確かWindows 10しかインストールできなかったと思いますので、Windows 10のPCが必要となります。
間違っていたら情報をください。
&font(l){このソフトでSDカードにWindows 10 Iot CoreのOSのデータを準備します。}
&font(l){microSDを認識すると、ドライブでSDカードが選択できます。}
&font(l){Raspberry Pi3に設定したいデバイス名とパスワードを入力して、SDカードにインストールしてください。}
&font(l){設定がない場合は有線接続となります。}
この方法を試した後、再起動するとエラーで停止したので、NOOBSを入れた後、OSでWindows 10 Iot Coreを選びましょう。
これでRaspberry Pi 3の起動が可能となります。
SDカードをRasspbery Piに挿入し、電源を入れ起動すると初期設定が始まります。
NOOBSの場合、インターネットに接続する必要があります。
接続後、OSを選ぶとダウンロードが始まり、自動的にインストールされます。
結構長いです。使ったのはClass10のmicroSDでしたが、それでも10分以上です。
設定が終わると、簡単な情報が表示され、USBのマウスやキーボードが使えます。
歯車のマークからWiFiの設定ができます。
PCを接続しているネットワークに接続しましょう。
PCのWindows 10 IoT Dashboardから、自分のデバイスでアクセスできます。
Rasspbery Piを選んで右クリックすると選択肢が出ますので、Device Portalで開くを選びます。
ブラウザが開きログイン画面が表示されるので、名前はadministrator、パスワードは先ほど設定したものを使用します。設定してなければ「p@ssw0rd」になります。
するとDevice Portalが開きますので、いろいろな設定が可能です。
例えばデバイス名やパスワードの変更が可能です。
好きな名前に変更した後は、ソフトの開発を行います。
個人であれば無償で使用できる、visual Studio Communityが便利です。
ダウンロードしてインストールするときに、Iot Core関連のチェックマークを入れておきます。
特に、ユニバーサルWindowsアプリに関するツールは選択してインストールしてください。
インストール後(要再起動、ログイン)、Windows 10 IoT Dashboardをダウンロードしたページから進み、
Visual Studio GalleryでIot Core Project templateをダウンロードします。(visual studio 2015用もあるようですので、間違えないように)
この後visual Studioを起動して、ファイルから新規作成、プロジェクトを選ぶと、ユニバーサルWindowsとバッググラウンドのソフトのテンプレートを選ぶことができます。
まずはここまで。