Kinect for Windows Sensor + SDK – その6 Skeleton Tracking

さて、漸くSkeleton Trachingを解説します。これもかなり興味深い機能です。 Skeletonの機能をおさらいしておきましょう。Kinectセンサーで取得できる人体の部位は、以下の20点です。 頭 – Head 肩中央 – ShoulderCenter 左肩 – ShoulderLeft 右肩 – ShoulderRight 鳩尾(背骨) – Spine 左肘 – ElbowLeft 右肘 – ElbowRight 左手首 – WristLeft 右手首 – WristRight 左手のひら – HandLeft 右手のひら – HandRight おしり中心 – HipCenter おしりの左 – HipLeft おしりの右 – HipRight 左膝 – KneeLeft 右膝 – KneeRight 左足首 – AnkleLeft 右足首…

0

Robotics Developer StudioのCCR/DSS紹介

そういえば、このブログで説明していなかったなと気づき、解説しようかなと。Robotics Developer StudioのCCRとDSSを紹介します。 先ず、Robotics Developer Studio自体知らないという方にちょっとだけ解説。 Robotics Developer Studioは、マイクロソフトが提供する、ロボット制御向けミドルウェアと開発環境一式です。ロボット制御向けというか、沢山のコンピュータノードがネットワークで繋がって連携して分散動作する為の基盤として位置づけられています。最初のバージョンがリリースされてから既に4年以上たっていて、今一番新しいのはRDS 4.0のBeta版です。最新版はKinectやSilverlightにも対応しています。 以下長いのでRDSと約します。 RDSは、主に3つの要素から成り立っています。 ネットワークで繋がっている分散並行処理を行う為の基盤ミドルウェア - CCR/DSS 各ノードに配置されて動作する単位(サービス)を組合わせ&ノードの配置を記述するオーサリングツール – Visual Modeling ToolとDSS Editor ロボットの動作をしミューレートする為の物理シミュレーター RDSを試すには、 http://www.microsoft.com/robotics (※全て英語でごめんなさい)からSDKをダウンロード&インストールすればOKです。SDKには、上の3つと、各種ドキュメント、サンプルコード、チュートリアルなどが入っています。 さて、CCR/DSSの説明に移ります。この二つの用語はそれぞれ、 Concurrency and Coordination Runtime Decentralized Software Services の略です。実はETロボコンの計測システムのミドルウェアとして2年前まで実際に使っていたりします。 Robotics Studioは、ネットワーク上に分散して配置された状態を持ったサービス(コンポーネントと考えてよい)群が、必要な他のサービスとメッセージを非同期に送受信しあってシステムの動作を実現することを想定しています。メッセージを受信したサービスは、そのメッセージと自分の状態に応じて処理を行い、必要に応じて他のサービスにメッセージを送ります。全てが非同期かつ並行に動作し、各サービスが協調してシステムの責務を達成していきます。 CCRは、その基盤となる非同期メッセージの送受信を.NET上で実現する為のManaged Code ライブラリです。http://msdn.microsoft.com/en-us/library/bb905457.aspxこのランタイムを使えば、それぞれのサービスは、送信したメッセージの状態や、送られてきたメッセージの順序や複数サービスから送信されてくるメッセージを受信する為のスレッド制御などを一切関知することなく、状態モデルとして、そのサービスが行うべきことに注力して開発することが可能です。CCRライブラリを使ってRDSで動作可能なサービス(コンポーネント)部品を、C#やVBでVisual Studioを使って開発することができます。 ※RDSが昔初めてリリースされた直後は、まだマルチコアは珍しく、並行処理に関するプログラミング言語の進歩も未熟だった為、かなり面白いテクノロジーではあったのですが、現在はC#やVC++でもParallel & Concurrentに関する技術が追加されたため、ちょっと特殊かなと思われますが、RDS全体としては完成度が上がってきたので、RDSの機能を使いたい場合にはそれなりに便利なライブラリセットではあります。 - う~ん微妙な説明 DSSは、CCRのライブラリ群の上に構築された、複数のサービス間でメッセージを非同期に送受信する状態を持ったサービスを、ネットワーク上で連動させるシステム基盤です。http://msdn.microsoft.com/en-us/library/bb905470.aspxサービスのインスタンスを所望のノードに配置したり、サービスインスタンスの状態を監視したり、ノードに配置されたサービスインスタンスを連携させたりするシステムです。サービスの配置や状態監視もまたCCRで記述されたサービスとして用意されています。サービス間の通信には、DSS Protocolと呼ばれる、SOAPの上に今クラウド系で流行のRESTスタイルのAPIを定義したプロトコルを使います。 ※既にここ2、3年でクラウド技術の進展により、HTTP上でのRESTスタイルのAPIが主流になったのと、加えてWorkflow Foundationも成熟してきたので、こちらも現時点ではちょっと特殊かなと。※DSSPの仕様書は、http://download.microsoft.com/download/5/6/B/56B49917-65E8-494A-BB8C-3D49850DAAC1/DSSP.pdf からダウンロード可能です。RESTとは何かの理解にもつながるので、ご一読を。ちなみにこのドキュメントの作者のHenrik Frystyk Nielsen は、Wikipediaにも載っていて、1pp6年に出版されたHTTP仕様書の著者の一人らしい 説明は以上にしておきますが、多分「何のことやらさっぱりわからん」という方のほうが多いかなと思います。論より証拠、Robotics StudioのサイトからSDKをダウンロードしてインストールし、実際に使ってみて見てください。サンプルも豊富にあるので、RDSのインストールディレクトリ(ユーザーディレクトリ直下)のDocumentation Folderに用意されている、RDSUserGuideのTutorialを参考に色々試してみてください。とても綺麗な物理シミュレーターや、DFDに近いモデルエディター上でメッセージの流れとサービスの実行状況をステップ実行できるVisual Programming…

0

YAYAYA! KINECT for Windows SDK

皆さん、永らくお待たせしました!! Microsoft ResearchからKINECT for Windows SDKが公開されました。早速ダウンロードして、インストールしてお試しください!!インストールが完了したら、XBOX360からKINECTセンサーを引っこ抜いて、Windows 7 PCにつなげば、準備は完了です。 Windowsマークから全てのプログラムで、Microsoft KINECT for Windows SDK BETAフォルダーを選択すると、直ぐ試せる“Sample Skelton Viewer”と“Sample Shape Game”という2つのアプリが入っています。前者は、私の同僚エバの川西のブログから紹介されているはずなので、後者を紹介します。 起動すると、図の様にセンサーの前に立った二人のスケルトンを表示し、落ちてくる2次元図形に触ると跳ねたり、割れたりします。 このソースコードは、C:\Users\Public\Documents\Microsoft Research KinectSDK Samples フォルダーに入っています。このコードを参考にして、皆さんのアイデアを形にしてみてくださいね。ちょっとしたアイデアでも実際に作って試してみると凄く面白いですよ~。KINECTを使ったアプリは、ManagedでもNativeでも作成できます。Managedで開発する場合は、プロジェクトの参照設定に、64Bit OSの場合は、C:\Program Files (x86)\Microsoft Research KinectSDK\Microsoft.Research.Kinect.dll32Bit OSの場合は、C:\Program Files\Microsoft Research KinectSDK\Microsoft.Research.Kinect.dllのアッセンブリーを追加するのを忘れずにね。 ※KINECT for Windows SDKは、今のところ、商用利用は禁止されています。評価や次世代に向けた取り組みのコンセプト作りなどにご活用ください。 近々セミナーも企画しているので、是非、ご参加ください!!  

1