web エンジニアのためのweb エンジニアのためのロボットアームの api...
TRANSCRIPT
Web エンジニアのためのロボットアームの API を考えてみる2016 年 11 月 30 日 ( 水 )
スマートファクトリーと Robotics API & CNTK ( html5j ロボット部 第 7 回勉強会)
有限会社 futomi 代表取締役
株式会社ニューフォリア 取締役 最高技術責任者
羽田野 太巳(はたの ふとみ)
@futomi futomi.hatano
自己紹介
2
マークアップ解説本 API 解説本 API チュートリアル本Windows 8API 解説本
有限会社 futomi 代表取締役株式会社ニューフォリア 取締役 最高技術責任者
日経 SYSTEMS 連載2015 年 4 月号~ 2016 年 3 月号:こんなに変わった Web 開発 /HTML5 の基本テクニック
3
4
日経 SYSTEMS コラム
• そろそろ IoT に触れてみませんか• マイコンボードを使って大気圧と気温を取得• Web ブラウザーから制御 MIDI でサーボを動かす• Node.js で家電を操作 赤外線を利用しよう• ECHONET Lite で家電をコントロール• スマホから機器を制御「デバイスコネクト WebAPI 」• 電池交換が不要に 無線技術「 EnOcean 」に注目• JavaScript で車載情報を取得「 OBD-II 」を使う• Node.js で電力情報を取得スマートメータを活用しよう• ...
IoT で火が付く IT エンジニア魂: 2016 年 4 月号~ 2017 年 3 月号 ( 予定 )
5
デバイス WebAPI コンソーシアム
• 2015 年 4 月 30 日に NTT ドコモとソフトバンクによって設立• デバイス連携がテーマ• アーキテクチャーの検討や業界動向などの共
有• GotAPI 対応アプリ「 DeviceConnect 」が
NTT ドコモから OSS として GitHub で公開• 通信キャリアやデバイスメーカーなど 110 社
以上が加盟
https://device-webapi.org/
6
7
GitHub と npm
https://www.npmjs.com/~futomihttps://github.com/futomi
8
公開中の node モジュール
9
公開中の node モジュール
ロボットアームに近いのは ...
10
公開中の node モジュール
ロボットアームに近いのは ...
11
ONVIF• Open Network Video Interface Forum• ウェブサイトからの引用
The ONVIF specification defines a common protocol for the exchange of information between network video devices including automatic device discovery, video streaming and intelligence metadata.
• 早い話、ネットワークカメラのプロトコルの標準• デバイス発見、ビデオストリーミン
グ、 PTZ 制御など
http://www.onvif.org/
12
PTZ とは
• Pan, Tilt, Zoom
• PTZ 対応製品は業務用監視カメラでも高級品の部類• 近年は安価な家庭向け監視カメラにも• 性能と機能はお値段次第(安かろう悪かろうがそのまま当てはまる)
• PTZ 機能はロボットアームに近い• ロボットアームの関節の一つとみなせば類似性がある• ロボットアームにカメラが付けばより ONVIF に類似• ロボットアームの API の開発に ONVIF は参考になる
13
14
ONVIF 仕様概要
• 用語• NVT (Network Video Transmitter) :ネットワークカメラのこと• NVC (Network Video Client) :カメラにアクセスするもの
• NVT 発見に WS-Discovery• UDP ポート 3702 によるマルチキャスト
• メッセージは SOAP ベース• HTTP プロトコルで SOAP を POST• 今どき SOAP?• でも ONVIF 策定当時は SOAP がナウい時代
15
ONVIF の PTZ コマンド
• ContinuousMove• 各軸の動作速度を指定• 止めるまで動き続ける
• AbsoluteMove• 各軸の動作速度と絶対位置を指定
• RelativeMove• 各軸の動作速度と現在位置からの相
対位置を指定
• Stop• 動作を止める
• GotoHomePosition• ホームポジションに移動
• SetPreset• 特定の位置をセット• 複数の位置を登録可能
• GotoPreset• プリセットした位置に移動
16
ONVIF のビデオストリーミング
• GetStreamUri• RTSP/RTP• H.264• G.726, G.711
• GetSnapshotUri• 静止画 (JPEG) を取得可能• このコマンドから URL を取得• 製品の性能が良ければ 1秒間
に 10 回くらい取得できる
17
デモ
18
ロボットアーム API こんなんはどう?
• やはり今どきの方式で• SOAP はやだ
• 機器発見• Bonjour (Zeroconf) はいかが?
• コマンド• JSON-RPC を HTTP POST で送るの
はいかが?• WebSocket のチャンネルも用意で
きるとベスト。
• セキュリティー• 最低でもユーザー認証は必要• Basic認証ではパスワードがダダ漏れ• Digest認証あたりが良い?
• TLS を使うのがベストだが暗号化だけならオレオレ認証でも OK か?
• でも機器に固定で秘密鍵を埋め込むのは危険?機器個体ごと違えばまだましか?
• 公開鍵方式で接続の都度、鍵ペアを作って公開鍵を交換してからデータ暗号化するのは?めんどくさいか?
• 今後さらなる検討が必要
ご清聴ありがとうございました
有限会社 futomi 代表取締役
株式会社ニューフォリア 取締役 最高技術責任者
羽田野 太巳(はたの ふとみ)
@futomi futomi.hatano