めもりすずこ

めもりすずことは、僕に関する出来事を記録することにより記憶を助ける文書である。

オープンキャンパスのネタ 技術編

概要

www.facebook.com

ソースコード

github.com

流れ

担当した部分で頑張ったところを書く.

  1. Server (Raspbian): Raspberry Pi Zero Wにカメラモジュールを取り付け,mjpg-streamerを使い,カメラからの映像をストリーミングする
  2. Client (macOS): 映像を取得し,現在のフレームにマーカがあるか判別する https://github.com/mimorisuzuko/oc2017/blob/master/detect-ar-marker.js
    • 現在のフレームをnode-canvasで描画する
    • 画質が悪いせいか認識率が照明に左右されることが分かったので,先にCanvasを2値化する
    • js-aruco に2値後のcontext.getImageDataを渡し判別する
    • (もっと賢いやり方があったかもしれない)
  3. Client: マーカがあればドローンに動きを送信する https://github.com/mimorisuzuko/oc2017/blob/master/drone.js https://github.com/mimorisuzuko/oc2017/blob/master/index.js#L19-L20
    • ドローンの制御はnode-rolling-spiderを使用した
    • node-rolling-spiderで行われる本来の処理は,「(事前にnoble でドローンのuuidを調べる) => 既知のuuidを渡し,インスタンスを生成する => nobleで目的のuuidを持つperipheralを探す(二度手間やん)」
    • これを周囲のドローン(uuidが未知)に自動的に接続したかったため,「nobleでドローンのperipheralを探し,インスタンスperipheralをぶっこむ」と書き換えた