Kinect vizsgálták az új kézi készülék, és megtanulják, hogy alkalmazásokat írni, hogy

  1. A látható tartományban a kamera - a szokásos, az RGB kamera, hasonló a fenti átlagos webkamera: 640 × 480 és 30 képkocka másodpercenként.
  2. Infravörös lézer projektor, amely létrehoz egy helyet egy rács pontok.
  3. Fényképezőgép, lőni az infravörös spektrumban, amely rögzíti a képet a rács.
  4. Sztereó mikrofon fejlett zajcsökkentő rendszer - megfelelő hangvezérlés.
  5. Motor helyzetét szabályozó érzékelő.
  6. Chip PrimeSensor - létrehoz egy jelentős része a mágia, a képfeldolgozás az infravörös kamera kimeneti - 3D-képet.

kapcsolat

Kinect'y eladott dobozok, már mindent meg kell dolgozni, akkor közvetlenül csatlakoztatható a számítógéphez. Ha az érzékelőt tartalmazza az új xbox'om, akkor neki igényel speciális adapter, valamint egy USB-csatlakozó van egy nem szabványos, opcionális 12 V (érzékelő gyenge áram a port nem elég). Az eredeti tápegység is megvásárolható Microsoft üzlet 34,99 $, és megmenti a rendelés kínai klón háromszor olcsóbb. Most már behajt a számítógéphez, és elkezd szórakozni a szoftver része.

De jobb lenne, ha veszi a másik vezető. Szív Kinect'a célja nem nagy és hatalmas Microsoft, egy fiatal cég PrimeSence. Számukra a Kinect - mindössze egy termék használatával a technológia NUI (természetes felhasználói felület) - a természetes felhasználói felület, amely lehetővé teszi a személy, hogy befolyásolja a rendszer vizuálisan útján gesztusok és hangutasítások használata. Azt szeretnék, mindenütt jelen alkotása, és aktívan segítse a nyílt forráskódú közösség. Ezek tárolók githabe a vezető számára a referencia szenzor. Közvetlenül kinektom ez nem működik, de a verzió dopilennuyu megbirkózni ezzel a feladattal tökéletesen!

Akkor töltse le, például Faast helyszínre. A telepítés után a betekintést az eszközkezelő - PrimeSensor részén kell három eszközök: Kinect kamera, Kinect Motor és Kinect hang. De eltekintve a vezető, akkor kell OpenNI és PrimeSense NITE könyvtárban.

OpenNI - egy non-profit szervezet, amelynek célja, hogy hozzon létre egy nyílt szabvány „természetes kölcsönhatás» (Natural interakciók). Azt is kidolgozott OpenNI - keretet az azonos nevű létrehozott kölcsönhatásba egyik oldalán nyílt - a berendezés, és a magasabb szintű szoftver rétegek - másrészt. Ez gyorsan fejlődik, és szüksége van a legújabb verzióját a bizonytalanság, ami letölthető itt.

NITE - jelentése middleware, amely megoldja a problémát a meghatározó gesztusok, hogy ellenőrizzék a számítógép és a játékok és működik együtt OpenNI. Bár ez egy kereskedelmi termék, hanem a fejlesztő, PrimeSence, oszt szabad kulcsot, amelyet használhat bárki. Itt a kulcs - 0KOIk2JeIBYClPWVnMoRKn5cdY4 =. Meg kell adni a telepítés során. Feltöltés NITE lehetséges kapcsolatot.

Miután, hogy változtatni kell a konfigurációs XML-fájlokat.

ezek eltérnek azoktól, amelyek már előre telepítve, csak a soros gombot. Az archívum kibontása és másolja a fájlokat SampleConfig.xml KinectXMLsOpenNI mappából a Data mappát belül OpenNI könyvtár (a legvalószínűbb, hogy a mappában C: Program Files), és a fájlokat a mappába KinectXMLsNITE - a C: Program FilesPrime SenseNITEData.

Kezeket fel a Psi póz!

Minden készen áll, akkor most próbálja kinekt az. Először is, hogy milyen kész programokat használhatja. Faast (rugalmas fellépés és Csuklós csontváz Toolkit) - ez egy olyan eszköz, amely lehetővé teszi, hogy döntetlen a felhasználó mozdulatait a különböző gombnyomás, az egér mozgását, vagy tevékenységét a joystickot. Így lehet felvenni egy sor olyan intézkedést, hogy nagyon valószínű, hogy játszani minden játékot a számítógépen. Letölthető a projects.ict.usc.edu/mxr/faast/ .Polzovatsya program nem nehéz. Az első dolog, amit le kell tölteni a konfigurációs fájl, amely írhat magad.

Például, akkor keresse meg a World of Warcraft:

# Csatlakoztatása bemeneti és kimeneti műveletek

10 left_arm_out gombot a
10 left_arm_across gombot d
15 lean_forwards gomb w
10 lean_backwards gombot s
20 left_arm_forwards gomb fület
20 right_arm_forwards kulcs 1
12 right_arm_up kulcs 4
15 right_arm_across 2 kulcs
15 right_arm_out gomb 3

Ezt követően, a felhasználónak kell kalibrálni a programot kitalálni, ahol a kéz és a láb hol. Ehhez állni abban a helyzetben Psi, és egyszerűen fogalmazva, álljon egyenesen, és emelje fel a kezét, a dolgokat a csomagtartóban, mint beteges kaliber. Miután azonosítás befejeződött - a tetején a test sematikus ember egyenes vonalak. Minden - most a számítógép kötelességtudóan nézése gesztusok.

Egy másik program az egyetemes kezelése. Out of the box lehetővé teszi, hogy ellenőrizzék a média center XBMC és egy egér. Kellemes az, hogy nem igényel kalibrálást, és lefordították az éber állapotban előre gesztus. Az új verziók rendszeresen feltölteni kinemote.net oldalon. És mivel az utolsó frissítés a készlet is van egy program, amely lehetővé teszi, hogy kezelni és nem az egész testet és az ujjak, de annak ellenére, minden kísérlet, van, és nem szerzett.

Ultraseven

Egy egészséges test - ép lélek

Először hozzon létre a Visual Studio WPF Application projektet, és adjunk hozzá egy hivatkozás a OpenNi.net.dll könyvtár (ez a mappa, ahová telepítette OpenNI) és Nui.Vision.dll (ez lehet helyezni a projekt mappa).

Most foglalkozik az érzékelő teljesítményét. Az alakját leíró MainWindow.xaml ki felbontás 662 × 520, és add meg a megjelenítendő kép a képben az érzékelő, és egy vászon, amelyen további információk jelennek meg:


Aztán a kód formájában MainWindow.xaml.cs nyilvánítja a használata a szükséges névterek:

használatával System.ComponentModel; // szükséges a feldolgozáshoz a háttérben
használatával Nui.Vision; // munka kinektom

Ezután nyilvánítja az új objektumot NuiUserTracker és inicializálja a kivitelező. Igen, ne felejtsük el, hogy másolja a fájlt SamplesConfig.xml OpenNI mappából a Debug mappában, és engedje el a projekt.

Az osztály formában nyilatkozni összes változó:

A kivitelező inicializálja az eseménykezelő:

// inicializálja az objektumot, és feltölteni configs kinekta
_skeleton = új NuiUserTracker ( "SamplesConfi g.xml");
// kijelentik, hogy a funkció fogja feldolgozni
// mozog felhasználói esemény
_skeleton.UsersUpdated + = új NuiUserTracker.UserListUpdatedHandler (Skeleton_UsersUpdated);

Most változó NuiUserListEventArgs.Users mutatja az összes felhasználó és találtam a koordinátákat az összes észlelt testrészei. Ezután írja be az eseménykezelő felhasználói koordináta műszakban. Amint megkapja a nem nulla értéket a függőleges koordinátáit a felhasználó nyakába - Azt hiszem, ő készen áll a guggolás. Ezután két sort. Az egyik éppen a nyak alatti, és a többi - egy kicsit a derék fölött. A zömök lenne tekinthető kettős átkelés a két sor: az első - felülről lefelé, majd - alulról felfelé. Lánctalpas kereszteződésénél a nyak vonal (bár vizuálisan ez valahol a mellkas). Ez a lehetőség nem ideális - lehet shalturit, hajlítás, vagy megközelítette a szenzor.

// nem minden manipuláció minden felhasználó számára
// (bár ezek guggol egy kaptafára)

foreach (var felhasználó e.Users) // ha az első alkalommal találtak egy nyak
if ((TOPY == 0) (User.Neck.Y! = 0))
// meghatározzák a helyzet a felső vonal
TOPY = user.Neck.Y + 20;
Vonal TOPLINE = új sor Y1 = TOPY, X1 = 0, Y 2 = TOPY, X2 = 662,
Stroke = új SolidColorBrush (Colors.Red),
StrokeThickness = 4>;
// felhívni a felső sorban a vásznon
LayoutRoot.Children.Add (TOPLINE);
// helyzetének meghatározására az alsó sorban
bottomY = user.Torso.Y + 20;
Vonal Bottomline = új sor Y1 = bottomY, X1 = 0, Y 2 = bottomY, X2 = 662,
Stroke = új SolidColorBrush (Colors.Blue),
StrokeThickness = 4>;
// felhívni az alsó sorban a vásznon
LayoutRoot.Children.Add (Bottomline);
// felhívni a nyak vászon
LayoutRoot.Children.Add (ellipszis);
>

Minden a koordináták is ellenőrizni kell, hogy a guggolás történt:

ellipse.Margin = új Vastagság (user.Neck.X, user.Neck.Y, 0, 0); // mozog a kör a nyak mögött
// set doboz felső pozícióban
ha (user.Neck.Y + 5 // jelölje alsó helyzetbe
ha (user.Neck.Y + 25> bottomY) bottomPosition = true;
if (topPosition bottomPosition)
numOfBobs ++; // fél guggolás a malacka bank
topPosition = false; // Reset zászlók
bottomPosition = false;
>
// ha poluprisedany felhalmozott húsz darab - minden eszközzel,
// kikapcsolni programot
ha (numOfBobs> = 20)
Application.Current.Shutdown (); // kilép a program
>

Továbbra is foglalkozni az időzítőt, és zárja le a billentyűzet és az egér. Először App.xaml.cs kell adnia egy másik névtérben:

// munka menedzselt kód, akkor meg kell
// A billentyűzet lezárásához
használatával System.Runtime.InteropServices;

Ezután állapítsa eljárás zár a billentyűzet és egér. Célszerű használni a funkciót a Windows API BlockInput:

állami részleges osztály NativeMethods
[System.Runtime.InteropServices.DllImportAttribute ( "user32.dll", BelépésiPont = "BlockInput")]
[Vissza: System.Runtime.InteropServices.MarshalAsAttribute (System.Runtime.InteropServices.UnmanagedType.Bool)]
public static extern int BlockInput (
[System.Runtime.InteropServices.MarshalAsAttribute (System.Runtime.InteropServices.UnmanagedType.Bool)]
bool fBlockIt);
>

Az időzítő, akkor létrehozhat egy külön lapon, és azt a App.xaml belépési pontként a programba. Ebben a formában a kódot meg kell adni neymspeys munka időzítő:

private static System.Timers.Timer TheTimer;

Majd futtatása, például egy gomb megnyomásával:

private void Button1_Click (tárgy feladó, RoutedEventArgs e)
// Az időmérő beállítása egy órát
TheTimer = új System.Timers.Timer (3600000);
// hogyan kell átadni - zárolja a számítógépet
TheTimer.Elapsed + = új ElapsedEventHandler (BlockPC);
TheTimer.Enabled = true;
>

void BlockPC (tárgy forrás, ElapsedEventArgs e)
App.NativeMethods.BlockInput (true); // zárja le a bemeneti
// létre egy példány a formában egy képet a szenzor
MainWindow w = új MainWindow ();
w.Show ();

> // és mutasd meg

Így is marad nem szabad elfelejteni, hogy adjunk a megszüntetése a zárat, mielőtt elhagyja a program:

// vissza a felhasználót a billentyűzet és az egér
App.NativeMethods.BlockInput (false);

Ha valami nem működik, a teljes kódot a projekt és az összes fájl futtatásához szükséges, megtalálható a lemezen.

Egy kis kinekta

Azonban kísérletek kinektom egy kinektom korlátozott! Ha az érzékelő, hogy adjunk egy projektor - kapsz egy rendszer kibővített valóság, azt szeretné, kiemelve az egyes tárgyak a szobában, felhívni a fény a falakon, vagy hozzon létre egy olyan rendszert, amely szellemileg kergeti a macska világító porszem. Egy kinekt mélységet ad térkép egyrészt, és ha elviszik a 3. vagy 4. hely és a sarkokban, akkor kap egy teljes háromdimenziós képet a belső tér. Ez a 3D-szkenner, hogy fut a valós időben!

De nem minden ember csak! Kinect még az íze és a robot - még mielőtt a háromdimenziós lézeres távolságmérő költsége több ezer dollárt, és ez az eszköz biztosítja az azonos esélyek mindenki számára kétszáz. Így lehetséges, hogy össze egy erős robot olcsó tömeggyártású komponenseket. Például: iRobot Create a futómű, a hagyományos notebook telepített Ubuntu és a ROS - az agy rendszer és a Kinect - az érzékelők. Úgy néz ki, és a Willow Garage Turtlebot. Igen, hasonló elrendezésű és Bilibot. amelyhez kapcsolódik egy szép egyenletes és vörös karom. Plus már elérhető rendelni 1200 $.

Általában kinekt - az első képviselője egy új osztályt a készülékek. Kész vagyok, és a versenytársa, amely eredetileg célja a munka és a PC - Asus WAVI Xtion. Valószínűleg el fog tartani egy kis ideig, és ez a verseny fog csatlakozni az új termelők, a könyvtár szerez csomagolást a különböző nyelvek és megoldások szerepelni fog a mindennapi életben, és az a fajta ember, hadonászva a számítógép előtt, mindennaposak lesznek.

Itt található az ezt a cikket egy ismerősének: