KINECT, hacknutý snímač v mobilnej robotike

13. Máj, 2011, Autor článku: Tölgyessy Michal, Elektrotechnika
Ročník 4, číslo 5 This page as PDF Pridať príspevok

Kinect je revolučné zariadenie od spoločnosti Microsoft, ktoré sa veľmi rýchlo presadilo. Už 10 dní po zavedení na trh (4. 11. 2010) bolo predaných viac ako milión kusov. Jeho primárnym účelom je slúžiť ako senzor k hernej konzole Xbox 360, no výskumníci a hackeri z celého sveta sa rozhodli preskúmať jeho možnosti aj v iných aplikáciách. Jediná možnosť ako senzor použiť bolo pomocou reverzného inžinierstva.

Spoločnosť Adafruit Industries ponúkla prvej osobe, ktorej sa podarí s Kinectom úspešne pracovať pod akýmkoľvek operačným systémom odmenu tisíc dolárov [1]. Po negatívnych reakciách spoločnosti Microsoft bola odmena postupne zvýšená na 3000 dolárov. Spoločnosť Adafruit poskytla komunikačné dáta medzi Kinectom a konzolou získané USB analyzátorom [2] a súťaž napokon vyhral Španiel, Héctor Martín, hacker, ktorému sa podarilo úspešne získať RGB a hĺbkové dáta a pracovať s nimi pod operačným systémom Linux s použitím OpenGL a OpenCV [4][5].

Len dva týždne potom hackeri vytvorili rôzne aplikácie, napr. ovládanie vianočných ozdôb pomocou gest, real-time morfovanie 3D obrazu človeka či vytvorenie svetelného meča známeho z filmu Star Wars. Vývoj pokračoval ďalej a v priebehu niekoľkých mesiacov internet zaplavili ďalšie a ďalšie hackerské aplikácie a centrom informácií sa stala wiki stránka projektu Open Kinect [3].


Viacerí hackeri vyjadrili presvedčenie, že Kinect má ako senzor veľký potenciál v robotických aplikáciách. Po pomerne krátkom čase existencie Kinectu vznikla pod vedením Garratta Gallaghera, inžiniera robotiky na MIT, platforma BiliBot [6] [7]. Cieľom projektu je poskytnúť kompletné cenovo dostupné open source riešenie, ktoré umožní experimentovanie a vývoj v oblasti robotiky prakticky komukoľvek, primárne je však určený do oblasti vzdelávania a pre hobby robotikov.

Systém robota beží pod operačným systémom Ubuntu Maverick Meerkat a všetky knižnice a softvér potrebný na beh robota sú open source. Hardvér robota je umiestnený na podvozku iRobot Create, ku ktorému je možné pristupovať cez Create Open Interface. Na vrchu celého zariadenia sa nachádza Kinect, ktorý autori považujú za najlepší senzor pre účely mobilnej robotiky v danej cenovej kategórii na trhu v pomere cena/výkon.

Okrem komerčne dostupnej platformy Bilibot vzniklo množstvo ďalších robotických aplikácií s využitím tohto senzora. Portál IEEE Spectrum vybral v marci 2011 10 najzaujímavejších projektov [8].


Ako samotný Kinect funguje?

Základom je 3D vnímanie okolitého sveta, ktoré sa dosahuje využitím hĺbkových senzorov a štandardnej RGB kamery. Kombináciou týchto technológií je možné získať RGBD obraz s rozlíšením 640×480 pixlov, pričom každý pixel má definovanú farbu a hĺbku, ktorá môže v ideálnych prípadoch dosiahnuť presnosť na milimetre [9] [10]. Kinect štandardne pracuje s frame rate rovnou 30 Hz pre hĺbkovú aj RGB kameru. Hĺbková kamera pracuje s presnosťou 11 bitov, čiže hĺbka jedného pixlu môže nadobúdať hodnoty od 0 po 2047. Základný pracovný rozsah je 1,2 – 3,5 metra. Údaje o hĺbke sa získavajú špeciálnou technológiou vyvinutou spoločnosťou PrimeSense. Väčšina technológií na 3D snímanie dosiaľ využívala metódu Time of Flight (ToF).

Podľa [11] však Kinect túto metódu nepoužíva. V ľavej časti senzora sa nachádza laserový generátor IR svetla s vlnovou dĺžkou 830 nm. Tento generátor kóduje informácie do svetelných vzorov, ktoré sa odrazom od objektov pred Kinectom deformujú. Odrazy IR svetla sú zachytené snímačom v pravej časti senzora a z deformácií Kinect vypočíta hĺbkovú mapu [11]. Okrem vizuálneho systému je na senzore pole mikrofónov na spracovanie zvuku a motorček na riadenie naklonenia. S počítačom Kinect komunikuje prostredníctvom USB kábla.


Dosiaľ boli všetky hackerské úspechy dosiahnuté bez asistencie spoločnosti Microsoft, ktorá snímač vyrába. Pôvodne začala s hrozbami právneho stíhania, no časom zmenila názor a už 16. Mája by mala byť k dispozícii oficiálna podpora a SDK pre prácu s Kinectom pod operačným systémom Windows [12].

Literatúra

  1. http://www.newscientist.com/article/dn19762-inside-the-race-to-hack-the-kinect.html?page=1
  2. http://ladyada.net/learn/diykinect/
  3. http://openkinect.org/wiki/Main_Page
  4. http://openkinect.org/wiki/User:Marcan
  5. http://www.adafruit.com/blog/2010/11/10/we-have-a-winner-open-kinect-drivers-released-winner-will-use-3k-for-more-hacking-plus-an-additional-2k-goes-to-the-eff/
  6. http://www.bilibot.com/
  7. http://kinecthacks.net/bilibot-open-source-kinect-based-affordable-robot-platform/
  8. http://spectrum.ieee.org/automaton/robotics/diy/top-10-robotic-kinect-hacks
  9. http://electronics.howstuffworks.com/microsoft-kinect2.htm
  10. http://en.wikipedia.org/wiki/Kinect
  11. http://www.joystiq.com/2010/06/19/kinect-how-it-works-from-the-company-behind-the-tech/
  12. http://www.techtree.com/India/News/Microsoft_Shows_Off_Kinect_for_Windows_SDK/551-115094-585.html

Napísať príspevok