Artikel top billede

(Foto: Computerworld)

Hack Kinect

Microsofts motioncontroller er lige til at hente.

Af Redaktionen, Alt om Data

Denne artikel er oprindeligt bragt på Alt om Data. Computerworld overtog i november 2022 Alt om Data. Du kan læse mere om overtagelsen her.

Hvis man splitter Kinect ad i dets enkeltdele, er programmet faktisk ikke særlig revolutionerende. Det indeholder et motoriseret webcam, et sæt mikrofoner, en dybdesensor og et infrarødt kamera – almindeligt udstyr for entusiasten. Men når man samler alle disse elementer, får man et godt bud på, hvordan vi alle kommer til at interagere med vores computere i fremtiden, hvis man skal tro på science fiction-idealerne.

Glem tastatur og mus – vi skal til at vifte med armene ligesom Tom Cruise.
Det forrygende ved Kinect er prisen. Man kan nemt finde et sæt til under 800 kroner, og nogle standard-webcams er allerede oppe at kradse i det leje.

Bevares, outputtet er ikke fantastisk – kameraet er lidt kornet, og opløsningen er begrænset – men disse kombinerede sensorer betyder, at det kan gøre nogle ret specielle ting. Det kan skille folk ud fra komplekse baggrunde med et minimum af kalibrering. Med den rette software kan det spore knoglerne i et menneskes skelet. Det kan følge en rundt i rummet og se i mørke. Kinect er bemærkelsesværdigt.

Kom selv i gang

I skrivende stund bliver Kinect desværre ikke understøttet på pc’en. Microsoft er på vej med sit eget sdk, men lige nu henvender det sig (teknisk) kun til en Xbox-enhed. Heldigvis brød nogle energiske hackere, der satsede på rigdom og berømmelse, ind i udstyret kort efter lanceringen i slutningen af sidste år. Siden da har en række åbne frameworks og eksisterende projekter udviklet Kinect til en flyvefærdig pc-enhed. Det er endda tæt på at være nyttigt.

Vi siger ”tæt på”, fordi der stadig mangler noget. Der er endnu ikke fuld funktionalitet, men det vil Microsofts sdk gøre noget ved. Det betyder, at du ikke skal forvente fuldstændig perfektion; selv i konsoludgaven er Kinect ret sippet, når det kommer til positionering og belysning. Du skal være forberedt på at flytte rundt på nogle ting. For at få den fulde oplevelse skal du have plads til at bevæge dig – 3-4 meter synes at være normen – og undgå direkte sollys, hvis du kan.

Installer driverne

Der er ingen officielle drivere, og du skal derfor begynde med at installere en tredjepartssuite, der kan genkende og interagere med Kinect-sensoren. Der er flere muligheder, men vi begynder med at downloade den seneste ustabile version af frameworket OpenNI.

OpenNI står for Open Natural Interaction, og det er en nonprofitorganisation, der arbejder for at forbedre support til naturlige interaktionsenheder som Kinect; applikationer, der bruger dem; og den middleware, der er imellem de to.

OpenNi gør alt det hårde arbejde med at tolke dine håndbevægelser og spore, hvad din krop gør. De fleste Kinect-kompatible applikationer bruger det på dette stade. Begynd med at gennemgå installationsprogrammet for at få det ind i dit system.

Under installation bliver du spurgt, om du vil installere en driver fra PrimeSense. Det er den virksomhed, der lavede Kinect-sensoren til Microsoft, og som samarbejder med OpenNI. Det er derfor sikkert nok. PrimeSenses driver er dog ikke Kinect-specifik.

For at få rigtig kompatibilitet skal du bruge SensorKinect, der er udviklet af en flittig hacker, som går under navnet Avin2. Når installationen af OpenNI er færdig, skal du hente den seneste udgave fra Avin2’s site (https://github.com/avin2/SensorKinect) og installere den.

Den sidste del af Kinect-trojkaen er Nite, der også kommer fra OpenNI. Det er den middlewarekomponent, der leverer de forskellige praktiske værktøjer til gestusinteraktion, som bruges af de fleste Kinect-kompatible applikationer.

Download den seneste ustabile version fra OpenNI. Du skal angive en gratis licensnøgle, før du kan bruge den med Kinect. Nøglen er oKOIk2JeIBYClPWVnMoRKn5cdY4=. For at undgå fejl nævner vi de potentielt forvirrende tegn her i rækkefølge: nul, stort O, stort I, stort I, lille L, lille O. Genstart din maskine, og slut Kinect til. Nu bør det blive genkendt og installeret uden problemer.

En rigtig applikation

Når det gælder om at teste Kinects funktionalitet, bør Nicolas Burrus’ Kinect REG-demo være dit første valg. Den er glimrende til at demonstrere enhedens imponerende evner. Uddrag mappen fra det arkiv, du har downloadet, og kig ind. Du bør se en række eksekverbare filer. Glem i øjeblikket dem, der er mærket med ”Calibration” (du behøver ikke at kalibrere enheden for at bruge den), og gå til RGBD-viewer.exe.

Første gang du kører applikationen, får du en meddelelse i et kommandopromptvindue. Her står, at kameraet er sat til vga-opløsning. Xbox bruger kun qvga, så du har allerede udpakket mere fra dit Kinect, end konsolbrugere kan. Det kan gå videre endnu. Hvis du kører vieweren fra en kommandoprompt med ”-highres” tilføjet, kan du få hele 1.280×1.024 fra kameraet, men dog med en noget lavere framerate.

Applikationens hovedvindue viser et dybdesepareret billede i hoveddelen med et kig fra webcam’et i en separat boks øverst til højre. Hovedbilledets technicolor-look repræsenterer forskellige dybder. Hold musen over en bestemt pixel for at se, hvor langt den er fra Kinects sensor.

Det er imidlertid ikke den bedste måde at repræsentere Kinects dybdesøgende evner. Brug menuen i ’Show | Filters’ til at slå kantgenkendelse til (klik i den boks, der hedder ’Edges’). Luk vinduet, klik ’Show | 3D view’ for at få et vindue, der blander dybde- og webcam-sensorerne sammen.

Klik og træk for at flytte det uhyggelige tredimensionale syn, som Kinect kan se. Som standard har det form af en punktvisning. Klik på ’Triangles’ for at udfylde pladsen mellem punkterne med polygonerne. Det ser mere massivt ud. Klik på ’SaveMesh’ for at gemme 3D-visningen i en ply-fil, der kan bruges i MeshLab eller Blender.

Arbejde, ikke leg

RGBD giver en udmærket demonstration af Kinects evner, men tiden er inde til at sætte sensoren i arbejde. I den forbindelse skal vi bruge FAAST, Flexible Action and Articulated Skeleton Toolkit. FAAST er udviklet af et hold på University of Southern California Institute for Creative Technologies og tiltrak sig opmærksomhed tidligere på året, da det blev brugt til at gøre Googles aprilsnar ”gesture controlled Gmail” til virkelighed. Ved at bruge OpenNI og Nite til at aflæse et skelet kan FAAST oversætte ens bevægelser til tastaturinput.

Du begynder naturligvis med at downloade den nyeste version af FAAST (http://projects.ict.usc.edu/mxr/faast). Pak den ud, og kør den eksekverbare fil, der er indeni. Hvis du allerede har installeret den nyeste version af OpenNI og Nite, burde den køre uden problemer.

Sørg for, at din Kinect-sensor er sluttet til, vælg ’Upper body’ under ’Skeleton mode’ (vi antager, at du sidder ned. Hvis du ikke gør det, skal du vælge ’Full body’), indstil ’Smoothing’ til 0,4, og klik på ’Connect’ for at få gang i sagerne. FAAST starter en netværksserver og prøver derefter at opfange en krop. Vink ad sensoren. Nu burde du kunne se din kontur i vinduet.

Nu er tiden inde til en kalibreringsgestus, så FAAST kan få en forestilling om dit skelets proportioner. I dette tilfælde skal du indtage en klassisk bodybuilding-positur – armene bøjet ved albuerne og vendende udad, hænderne knyttet og pegende opad. Efter et par sekunder bør FAAST have overblik over din statur og kunne skitsere et simpelt skelet.

Oversatte bevægelser

FAAST er som standard indstillet til at oversætte din krops hældning til aktivering af tasterne [W], [A], [S] og [D]. Klik ’Start emulator’ for at iværksætte denne tilstand. Du kan afprøve den i dit foretrukne førstepersonsspil. Du vil sikkert konstatere, at det ikke oversætter særlig godt, men det viser, at systemet fungerer.

For at få bedre resultater kan du prøve at lukke og genåbne applikationen og derefter justere smoothness-værdien på den første knap – den går fra 0 til 1, så du skal bruge 0,x. Enhver værdi over 1 vil få FAAST til at gå i stå. Då må eksperimentere med det for at finde den ideelle værdi til din afstand fra kameraet og til rummets lys.

Det er imponerende, men FAAST kan gøre meget mere, hvis du indstiller det rigtigt. Du kan vinke med venstre hånd og bruge den som mus for eksempel. Stop emulatoren, gå til knappen ’Mouse’ og klik på ’Enable’ for at aktivere musestyringen.

Dine personlige indstillinger afviger sandsynligvis fra vores, men vi har fundet det mest bekvemt at bruge ’Absolute control’ centreret på skulderleddet, med hver af kanterne indstillet til en afstand på 8" og bevægelsestærsklen til 5. Start emulatoren igen, og prøv den. Når du bevæger venstre hånd rundt, bør musemarkøren følge med, som om du styrede den med jedi-kraften.

Du vil dog bemærke, at du er lidt hæmmet. FAAST har i realiteten overtaget din mus, og da du ikke har defineret nogen museknapper, kan du ikke klikke for at stoppe emulatoren. Tryk på mellemrumstasten, så fungerer start/stop-knappen forhåbentlig igen. Gå nu til knappen på højre hånd og skriv en ny gestus, der skal bindes til den venstre museknap.

Vi har konstateret, at noget i retning af left_arm_up 20 mouse_clik left_button virker forrygende, men som med mange andre ting i Kinect vil det øge dine armes flagren og i endnu højere grad få dig til at se ud, som om du har fået et anfald foran pc’en. Kinect er ret upraktisk, indrømmet, men med toolkittet
FAAST burde du kunne få det til at virke på en masse forskellige måder.

Installer en anden driver

Der findes i øjeblikket to drivere, der understøtter Kinect. Vi har valgt den, der er nemmest og bredest understøttet, nemlig kombinationen af OpenNI og Nite.

Men den har en ret alvorlig fejl, som du måske har bemærket, hvis du har prøvet RGBD – der mangler adskillige funktioner. I skrivende stund er der ingen support til Kinect-motoren, og sensoren kan derfor ikke aktivt spore din placering i rummet. Og der er ingen direkte support til Kinects infrarøde kamera.

Hvis du vil have fat i disse funktioner, skal du installere libfreenect, som du finder på www.openkinect.org. Den fås ikke som en prækompileret fil på Windows, og du skal derfor opbygge den fra kilden. Der er dog udførlige instruktioner. Ubuntu-brugere er lidt mere heldige, idet der er adgang til et arkiv fuldt af drivere.

Microsoft arbejder på det. Det er i øjeblikket stort set, hvad vi ved. Kinect bliver snart rigtigt pc-kompatibel, og antallet af applikationer – plus nøjagtigheden, når det gælder sporing af legemsdele – vil stige markant.

Under en udviklerkonference i Indien demonstrerede Microsoft-ansatte et bevis på, at en Kinect-enhed blev brugt til at styre PowerPoint, idet armbevægelser skiftede slides.

Det ser ud til, at fyrene i Redmond har planlagt nogle meget praktiske forretningsapplikationer, men vi vil blive overraskede – sågar chokerede – hvis

Kinect ikke bliver integreret med Skype for at vise lidt næstegenerations-webkonference. Dets mikrofonsæt virker ideelt til konference uden hovedtelefoner med god stemmegenkendelse, men uden at den modtagne lyd bliver sendt tilbage. Hold øje med sagerne. Microsoft siger foråret 2012, så det kan næppe vare længe.

[themepacific_accordion]
[themepacific_accordion_section title="Fakta"]

Det skal du bruge:

[/themepacific_accordion_section]
[/themepacific_accordion]