LoginSignup
6
2

More than 5 years have passed since last update.

PostgreSQL + Hololens

Last updated at Posted at 2017-12-14

PostgreSQL Advent Calendar 2017の15日目の記事です。
今年のはじめに購入したHololens(ホロレンズ)からPostgreSQLを操作した話をまとめます。

背景

ちょうど一年前に酔っ払った勢いでHololensを購入しました。$3,000(約33万円)しましたが、なんか未来感がハンパナイのでお気に入りです!!
家で焚火も楽しめます。
図1

Hololens

マイクロソフトのMRデバイス。
https://www.microsoft.com/ja-jp/hololens

以下の流れでHologramを利用した開発ができます。
Unity(C# script)⇒Visual Studio(C# source)⇒Hololens

さっそくチュートリアルをやったりしてました。
チュートリアルを実装するだけでも、ジェスチャーによる操作や、音声による操作ができます。

図2

チュートリアルを実装すると「Drop sphere」と発音することで球体を落下させ、「Reset world」と発音することで初期状態に戻すことができます。

図3
しかし、ひとつ問題が。。。音声認識が英語オンリーだYO!orz


わたし「ドロップ スフィア!」
HOLOLENS(球体落下)
わたし「リセット ワールド!」
HOLOLENS(......)反応なし
わたし「リセット ワーウドゥ!」
HOLOLENS(......)反応なし
わたし「リィセトゥ ワァウド!」
HOLOLENS(......)反応なし
わたし「ムキーーーーーーーーー!!!」
よめ「うるさい!」


と、このようにかなりネイティブな発音をしないと認識してくれない問題がわたしを苦しめました。
リセットだけとか、ワールドだけとか単語のみにすると認識するので、フレーズの発音がダメなんだと思う。が、単語で登録するのは負けた気がするのでちょっと悪あがきを試みました。

【悪あがき】
「ヘルプ!」って発音すると、PostgreSQLに接続してテーブルの情報(TEXT列に"Drop sphere"もしくは"Reset world"をあらかじめ登録しておく)を引っ張ってくる。その内容に応じて、上記「Drop sphere」or「Reset world」と同じ挙動を取らせよう、と。

C#なんだし、Npgsql使えば楽勝だろ。かつる!!と。

Npgsql

ということで、久しぶりにNpgsqlを使ってみることに。

昔はdll持ってきて使うってイメージだったけど、最近はNuGetで管理されてるんですね。より楽勝じゃねーか!かつる!!と。

想定した構成は「Hololens⇒Npgsql⇒PostgreSQL」。

挫折

挫折1

さっそくNuGetでNpgsqlをインストール!

> Install-Package Npgsql -Version 3.2.6

おや?エラーが。。。
図3(エラー)

どうやら、VisualStudioとNpgsqlで利用しているRunTimeライブラリ(?)が異なるためインストールできないみたい。オワタ(;_;)

と泣いてたら、こんな情報が。VisualStudio2017にしてnetstandard20使えば動くらしい!かつる!!

挫折2

ということで、もろもろ最新化(VisualStudioも2015から2017に)して、リトライ!
無事にNpgsqlはインストールされました!!が、今度はHololensへのデプロイで似たようなエラーが。。。今度はHololensのOSバージョンが古いって(16299 vs 14393)。
やっぱりオワタ(;_;)

ここで心は折れたYO!orz

結局

「Hololensから直接クエリ投げなくてよくね?」って考えて、いったんHTTPリクエストをnode.jsで受けてPostgreSQLに問合せする形に変更しました。。。

結局の構成は、「Hololens⇒HTTP⇒node.js⇒PostgreSQL」に。

こうすることで無事に「ヘルプ!」ということで初期状態に戻すことができるようになったとさ。めでたし、めでたし。

まとめ

いまだに結局、直クエリでの実行はできませんでした。
まぁ、そのうちHololensのほうもバージョンアップしていってなんとかなるのかな。

ということで15日目でした。明日16日目はfujii_masaoさんの登場です!

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2