Kinect SDK – Wprowadzenie  Udostępnij na: Facebook

Autor: Tomasz Kowalczyk

Opublikowano: 2011-09-05

Artykuł ten stanowi wstęp do serii artykułów na temat wykorzystania sensora Kinect w środowisku Windows 7, z wykorzystaniem SDK, który pochodzi od grupy Microsoft Research.

W artykule tym, jak i we wszystkich z tej serii, założono, że czytający posiada podstawową wiedzę z zakresu systemu Windows 7 oraz obsługi środowiska Visual Studio 2010.

Po przeczytaniu tego artykułu będziesz wiedział:

  • co to jest Kinect,
  • w jaki sposób działa oraz z czego się składa,
  • jak poprawnie zainstalować sensor Kinect na swoim komputerze wyposażonym w system operacyjny Windows 7,
  • jakie są wymagania sprzętowe oraz programowe sensora Kinect,
  • jak skonfigurować środowisko Visual Studio, aby uruchomić pierwszy projekt, który będzie korzystał z sensora Kinect.

Opis sensora Kinect

Kinect został początkowo zaprojektowany jako sensor dla konsoli XBOX 360, który pozwala na interaktywną rozrywkę bez potrzeby wykorzystywania dodatkowych kontrolerów. Takie nowatorskie rozwiązanie pozwala użytkownikom grać w gry (i nie tylko) bez potrzeby używania padów i innych powszechnie do tej pory stosowanych urządzeń manipulacyjnych.

Architektura sprzętowa urządzenia jest dość skomplikowana, nie mniej jednak, w tym artykule przedstawiono główne cechy sensora Kinect w sposób umożliwiający jego późniejsze wykorzystanie we własnych aplikacjach.

Rys. 1. Budowa sensora Kinect.

Źródło: http://www.wired.com/magazine/wp-content/images/19-07/mf_kinect2_f.jpg.

Tab. 1. Opis architektury Kinect.

1. Zestaw mikrofonów Zestaw składa się z 4 mikrofonów, które wykorzystywane są przez funkcje rozpoznawania mowy. Mikrofony te posiadają funkcję filtrującą zakłócenia.
2. Emiter podczerwieni Emituje wiązkę promieni podczerwonych, które odbijając się od powierzchni zniekształcają się i następnie są odczytywane przez kamerę głębokości.
3. Kamera głębokości Analizuje zniekształconą przez obiekt wiązkę promieni podczerwonych, tworząc model 3D pomieszczenia i obiektów znajdujących się w nim.
4. Automatyczny kontroler nachylenia Dostosowuje położenie sensora w sposób automatyczny w zależności od rozmiarów śledzonych obiektów.
5. Kabel połączeniowy Nie jest to zwykły kabel z gniazdem USB. Z tego względu do połączenia sensora Kinect z komputerem potrzebny jest dodatkowy zasilacz z kablem USB.
6. Kolorowa kamera RGB Działa podobnie jak kamera internetowa, przesyła serie obrazów do komputera z prędkością 30 klatek na sekundę.

Przed rozpoczęciem prac z sensorem Kinect w środowisku Windows 7 należy pamiętać, że jest to wielofunkcjonalne urządzenie, które nie jest standardowo zaopatrzone w możliwości, które są zaimplementowane w powszechnie stosowanych sprzętach USB tj.:

  • funkcjonalność związana z Windows Plug & Play,
  • Windows Power Management.

Instalacja

Przed instalacją sensora Kinect warto pamiętać, że udostępnione SDK jest jeszcze w fazie Beta, więc nie jest to ostateczna wersja, zarówno sterowników jak i bibliotek, wykorzystywanych w procesie wytwarzania oprogramowania. Warto również zapoznać się z FAQ, udostępnionym przez Microsoft, gdzie znajduje się między innymi licencja na korzystanie z Kinect.

Kinect for Windows SDK

Sprawdź, co zawiera Kinect for Windows SDK:

  • sterowniki, pozwalające na użycie sensora Kinect w środowisku systemu Windows 7,
  • API wraz z dokumentacją dla programistów,
  • przykładowe kody źródłowe.

Warto zapamiętać że, aby uruchamiać oprogramowanie korzystające z Kinect jedynie bezpośrednio w systemie Windows 7, wszelkie próby uruchomienia oprogramowania na maszynach wirtualnych skończą się niepowodzeniem.

Wymagania sprzętowe

Sprawdź, jakie sprzęty wymagane są do instalacji sensora Kinect:

  • Windows 7 (x86 lub x64),
  • procesor dwurdzeniowy 2,66 GHz lub szybszy,
  • karta graficzna kompatybilna z DirectX 9.0c,
  • 2GB pamięci RAM.
Informacja
Jeśli sensor Kinect nie został zakupiony jako oddzielne urządzenie, tylko wraz z konsolą XBOX 360, należy zaopatrzyć się w specjalny kabel zasilający.

Wymagane oprogramowanie

Udostępnione SDK pozwala wykorzystywać Kinect zarówno w środowisku C++ jak i C#:

Informacja
Przed instalacją SDK oraz innego wymaganego oprogramowania należy usunąć wszelkie sterowniki, pochodzące z różnych źródeł, które pozwalały korzystać z Kinect na komputerze. Ponadto, nie powinno się podłączać sensora Kinect do komputera przed instalacją oprogramowania.

Warto również zwrócić uwagę na fakt, iż chcąc uruchomić własny program na innym komputerze, do którego podłączono sensor Kinect, należy również zainstalować na nim Kinect SDK Beta dla Windows 7.

Podłączenie sensora

W celu poprawnej instalacji sensora Kinect należy postępować zgodnie z poniższymi instrukcjami:

  1. upewnić się, czy komputer spełnia wymienione wyżej wymagania sprzętowe,

  2. zainstalować, wg kolejności, oprogramowanie wymienione wyżej,

  3. podłączyć sensor Kinect do gniazda zasilania,

  4. podłączyć sensor Kinect do portu USB komputera,

    Informacja
    Powinno się również podłączać sensor Kinect bezpośrednio do gniazda USB w komputerze. Nie zaleca się wykorzystywania hubów USB, gdyż mogą one spowodować nieprawidłowe działanie.
  5. z menu Start należy wybrać Komputer, następnie prawym przyciskiem myszy Zarządzaj,

  6. otworzyć zakładkę Menedżer urządzeń,

  7. poprawna instalacja została przedstawiona na poniższym rysunku:

Rys.. 2. Wynik poprawnej instalacji sensora Kinect.

  1. na sensorze Kinect mruga zielona dioda, co świadczy o poprawnej instalacji.

W celu szybkiego skontrolowania poprawnej instalacji, bez potrzeby pisania kawałka kodu, można użyć sensora Kinect jako mikrofonu. Należy wybrać go w Urządzeniach do nagrywania i nagrać przykładowy dźwięk.

Konfiguracja środowiska

Poniżej przedstawiono, w jaki sposób przygotować pierwszy projekt, który będzie korzystał z Kinect SDK.

  1. Po uruchomieniu Visual Studio 2010, należy założyć nowy projekt dla Windows typu WPF Application.

  2. W projekcie wyszukać grupę References, kliknąć prawym klawiszem myszy i wybrać Add Reference . W zakładce .NET należy znaleźć Microsoft.Research.Kinect i kliknąć Add.

  3. Następnie w zakładce Properties głównego pliku .xaml należy wybrać Events.

  4. Potem kolejno odnaleźć metody Closed i Loaded i kliknąć dwukrotnie każdą z nich w pliku źródłowym. Wówczas pojawią się dwie metody zdarzeniowe Window_Loaded i Window_Closed.

  5. Następnie należy przejść do kodu źródłowego tworzonej aplikacji czyli pliku *.xaml.cs i dodać wymagane usingi:

    using Microsoft.Research.Kinect.Audio;

    using Microsoft.Research.Kinect.Nui;
  6. Następnie należy utworzyć obiekt nui klasy Runtime i zainicjować go w metodzie Window_Loaded oraz zwolnić w metodzie Window_Closed. Poniższy kod prezentuje opisane czynności, w metodzie Window_Loaded inicjujemy sensor, by korzystał z kamery RGB oraz kamery głębokości, natomiast w metodzie Window_Closed należy wyczyścić bufor.

 

public partial class MainWindow : Window

    {

        public MainWindow()

        {

            InitializeComponent();

        }

        Runtime nui = new Runtime();

        private void Window_Loaded(object sender, RoutedEventArgs e)

        {

            nui.Initialize(RuntimeOptions.UseColor | RuntimeOptions.UseDepth);

        }

        private void Window_Closed(object sender, EventArgs e)

        {

            nui.Uninitialize();

        }

    }
Informacja
Wszystkie kody źródłowe projektów, utworzonych w ramach artykułów, będą dostępne na tej stronie.

Podsumowanie

W tym artykule przedstawiono możliwości, jakie oferuje sensor Kinect. Zaprezentowano również, jak działa i w jaki sposób należy poprawnie podłączyć urządzenie do komputera. Pokazano także, jak skonfigurować środowisko Visual Studio 2010 do współpracy z Kinect.

W następnym artykule zostanie omówiony NUI (Natural User Interface) oraz sposób na korzystanie z kamery RGB i kamery głębokości Kinect. Będzie to również okazja do nauczenia się sterowania kontrolerem nachylenia w swoich programach.