はつねの日記

Kinect, Windows 10 UWP, Windows Azure, IoT, 電子工作

Windows女子部 第72回勉強会 「Microsoft HoloLens アプリケーション開発」はじめの一歩に登壇します。

「はじめの一歩」といってもボクシングの話じゃないです。

もし「はじめの一歩」という検索キーワードでこのページに来ちゃった方がいたらごめんなさい。 

 

www.kokuchpro.com

2018年9月13日の夜に、HoloLensというマイクロソフトがだしている複合現実感が味わえるデバイスを使ったアプリの開発ってどうやるんだろうというお話をさせていただくという告知です。

 

それってどんなの?というと最近やったやつだと次のようなものがあります。

www.moguravr.com

あとはこのコードからForkしてCEDEC 2018にも展示しました。

 

今回のセミナーを受講していただけると、上記のアプリを作成するのに必要な基礎知識を学んでいただくことができる構成になっています。

今から登壇が楽しみです。

 

最後に告知じゃないですが、登壇依頼はいつでもウェルカムです!

Azrue Cognitive Serviceのセキュリティ

Cognitive Serviceのセキュリティを調べるために検索すると下記の様な記事がヒットします。

ascii.jp

ここの記事の中で

「顧客データを広告やマーケティング目的でマイニングしない」、「マイクロソフト社員であっても顧客データへのアクセスは制限される」、「サービス利用終了時には顧客データを削除する」

というAzureにおける方針に対して、Coginitive Serviceは除外されるとあります。

この記事は、2017年8月の記事ですが、確かにその当時は、Translator Text APIなどはは有料プランでno traceを指定しないとサービスの向上のためにデータの再利用(もちろん利用終了後も残る)していました。

 

しかしながら、最近は、無料プランであってもno traceがデフォルトに変わっています。最新の状況がどこかに記載されていないかと探してみると、以下のURLを発見しました。

Microsoft Trust Center |Microsoft Cognitive Services

上記のURLには次のような記載があります。

 

「Cognitive Services で一般提供されている多くのサービスは、Azure サービスに即しており、Computer Vision、Face、Content Moderator、Text Analytics、Bing Speech、Translator Speech、Translator Text API v3、Language Understanding の各サービスは、そのような移行を果たしています。これらのサービスについては、セキュリティ センターの Microsoft Azure のセクションをご確認ください。」

2018年8月現在では、Bing Search Services以外のほぼすべての

Cognitive ServiceがAzure自体のセキュリティに準拠ととなっています。

どのようなことかといえば、Bing Search Servicesが準拠していない部分をみるとわわかりやすいでしょう。同様に上記のURLにある説明を引用してみましょう。

マイクロソフトの製品とサービスを改善するために、Bing Search Services データを使用する場合があります。たとえば、基礎となるアルゴリズムとモデルを、時間をかけて改善するために、お客様が Bing Search Services に提供した検索クエリを使用する場合があります。

つまり、入力したデータはサービスの改善に再利用され、また、利用終了後も保持されるということになります。最初に紹介した記事の内容と一致しますね。つまり、検索クエリという特性上、Bing Search Serviceだけは新しい方針に移行できなかったということになります。

 

なお、マイクロソフトの翻訳アプリや音声認識アプリなどは、データ再利用すると記載されている場合があります。つまり、APIとして利用した場合はデータ再利用なし、アプリとしてマイクロソフト内部的にAPIを使うときはデータ再利用ありでサービス向上という2方針になっているようですね。

 

 

HoloLensでピン止めされたときにもアプリ名を表示する

HoloLensアプリでタイル表示にしたときにアプリ名が表示されないということでお悩みの貴兄に。

image

きちんと設定すればタイル表示の時にもアプリ名は表示できます。

 

UnityでHoloLensアプリを作成する場合、最終的にはUnityからUWPプロジェクトを生成して、そのUWPプロジェクトをビルドして実行モジュールを作成します。

このUWPプロジェクトのPackage.appxmanifestで、短い名前の表示で「普通サイズのタイル」にチェックをいれておきます。

image

たったこれだけでこの問題は解決です。

 

ファイルの内容的にはDefaultTileのShowNameOnTilesのところの記述になります。

image

Microsoft MVP for Windows Developmentを再受賞しました。

2008年の初受賞から11年目10回連続での受賞となります。

途中、審査時期の変更により有効期間が2年近い時期がありましたので、受賞回数と年数に差異がありますが、仕事内容や生活パターンが変わって、アウトプットも「雑誌/書籍執筆」→「blog/サンプルコード公開/アプリ公開」→「Blog/Web記事執筆」→「blog/コミュニティ活動」と変化してきましたが、その都度、周りの方に助けられながら活動してこれた成果だと思います。

特に今回は自分の満足が行く濃度のアウトプットができていなかった時期とかなさっていたため、再受賞は厳しいかもと内心思っておりましたので、再受賞できてよかったと思うと同時に、Microsoft MVPとしての期待値に答えられるように一層精進していこう思いを新たにしております。

今後とも、本ブログを始めとしたさまざまな活動へのご協力をよろしくお願いいたします・

MAVIC AIRにも使えるDJI SDKを入手しよう

SDKの入手

現在のSDKはいろいろな種類がでていますが、MAVIC AIRで使うのであればMobile SDKに注目です。

https://github.com/dji-sdk/Mobile-SDK-Android

https://github.com/dji-sdk/Mobile-SDK-iOS

SDK自体はどこにあるかといえば、Mobile-SDK-Android-master\Sample Code\gradle\wrapper\gradle-wrapper.jarがSDKになります。

Xamarin.AndroidSDKを利用する

jarファイルをXamarinから呼び出すためには、バインディングライブラリを作成してjarファイルをまるっとXamarinのクラスライブラリでラッピングしてあげる必要があります。

image

jarファイルの追加

プロジェクトが生成できたら、Jarsフォルダを右クリックして[追加]-[既存の項目]メニューを選択します。

image

ダイアログが開いたらgradle-wrapper.jarを指定して、Jarsフォルダにgradle-wrapper.jarを追加します。

jarファイルのプロパティ指定

image

jarファイルに対するビルドアクションとして「EmbeddedJar」をしてしてdllにjarファイルを埋め込むようにします。

バインディングライブラリのビルドエラー対策

この状態でバインディングライブラリをビルドしてあげてエラーなくビルドできれば、バインディングライブラリのdllが完成します。

しかしながら、ここでエラーが出ないもののほうが少なく、gradle-wrapper.jarも当然のようにビルドエラーが発生します。

ビルドエラーは3件、すべてCS0535「〇〇はインターフェイスメンバー△△△を実装しません」です。

image

解決方法はいくつかありますが、今回出ているエラーは、「AbstractCommandLineConverter」、「AbstractCommandLineConverterInvoke」、「DownLoad」なので、主要な部分ではなさそうで使わないでもアプリ作れそうですから、とりあえずはなかったことにしてしまって、後日、必要だったらまた考えることにしたいと思います。

そのためには、Metadata.xmlに次の定義を入れておきます。

<remove-node path="/api/package[@name='org.gradle.wrapper']/class[@name='Download']" />
<remove-node path="/api/package[@name='org.gradle.cli']/class[@name='AbstractCommandLineConverter']" />

 

次回に続きます。

MAVIC AIRのコントロールアプリについて

自動代替テキスト��り��ん。

MAVIC AIRの大きさですがA4サイズのノートPCと比較するとこんな感じです。

プロペラのアーム部分が畳めるので格納時はほぼ本体と同じくらいのサイズになります。

 

DJI GO 4

MAVIC AIRのコントロール用アプリはDJI GO 4になります。App StoreGoogle Playから入手可能です。

DJI GO 4

DJI GO 4

  • DJI
  • 写真/ビデオ
  • 無料

play.google.com

 

MAVIC AIR付属のコントローラと接続して使うこともできますし、スマホ単体でも使えます。

スマホ単体で使った場合の画面はこんな感じです。

画����れ��る�能性��るも�:画�

MAVIC AIRの場合、前方や下方だけではなく後方にも衝突回避センサーがついています。

上記の画面では、前方50cmと後方1mに障害物があると表示されています。

MAVIC AIR

DJIのドローンは、業務用シリーズがPHANTOM 4、一般向けなシリーズがMAVICとブランドが分かれています。一般向けにはもっと小型のSPARKもありますが、本格的に使うならばMAVICを選択したいものです。

www.dji.com

 

現在、MAVICには、「PRO」と「AIR」に2つのタイプがあります。名前からするとPROの方が上位機種のように思えますが、2018年1月に発売されたばかりのAIRはPROに勝るとも劣らない機体であるといわれています。

スペック比較

それでは基本的なスペックで両者を比べてみましょう。

項目 MAVIC PRO MAVIC AIR
価格 129,800円 104,000円
重量 743g 430g
最大飛行時間 27分 21分
最大速度 65km/h (Sモード)
36km/h (Pモード)
68.4km/h (Sモード)
28.8km/h (Pモード)
最大伝送距離 モバイルデバイス:80m
送信機:4000m~7000m
モバイルデバイス:80m
送信機:500m~4000m
カメラ 3軸ジンバル付き
1200万画素 1/2.3インチCMOS
3軸ジンバル付き
1200万画素 1/2.3インチCMOS
最大動画解像度 4K 30fps 4K 30fps
ビデオビットレート 60Mbps 100Mbps
動画伝送方式 OcuSync 拡張Wi-Fi
動画遅延 160~170ms 170~240ms
SDK あり あり

 

両社の大きな違いは、最大伝送距離と動画遅延になります。MAVIC PROはドローンを視界にとらえて操縦するだけではなくドローンが見えないくらいの距離であっても映像を見ながら操縦することを想定したスペックになっています。一方のMAVIC AIRはそこの部分は少しライトな仕上がりになっていますが、全体的な基本性能はMAVIC PROと同等といえるでしょう。

つまり、ドローンを視界にとらえられる範囲で楽しむならば、AIRというのは最善の選択になるかもしれません。

SDK

開発者ならば自分で飛ばすだけではなくプログラムにより操作してみたいと思うと思います。

https://developer.dji.com/mobile-sdk/

PROもAIRSDKが用意されています。

SDKでできる機能としては

  • 上昇下降
  • 各種センサーデータの取得
  • 障害回避
  • カメラとジンバルのコントロール
  • ライブビデオストリーミング
  • 画像ストレージのアクセス
  • ウェイポイント、ホットポイント、フォローミー機能
  • バッテリーとリモートコントローラーのステータス表示と制御

 

SDKにはiOS用とAndroid用があるので、次回は、ダウンロードしたSDKをXamarinから使う方法を紹介したいと思います。