Image
11.5.2017 1 Comments

Linux súkromne i pracovne v2.0 (19. časť): NXT-ROS

Táto časť seriálu bude v porovnaní s predošlými v mnohom odlišná. Nebudeme v nej písať o tom, ako veci fungujú, ale ako nefungujú. Naším cieľom je maximalizovať rozsah ponúkaného know-how. Budeme pokračovať v téme ROS/NXT-ROS, pričom rozoberieme inštaláciu oboch balíkov.

NXT

V predchádzajúcej časti seriálu sme vám skrátenou formou predstavili vzťah Linuxu a robotiky. Menovali sme konkrétny balík ROS, ktorého nástroje sú určené na prácu s robotmi. Na domovskej stránke balíka možno nájsť rozsiahly zoznam ním podporovaných robotov. Nájdeme medzi nimi množstvo atraktívnych robotov, ktorých programovanie by bolo istotne zaujímavé a najmä zábavné. Výrazný problém, s ktorým sa však v tomto momente stretneme, je cena hardvéru, bez ktorého nemá naše softvérové úsilie význam. Cena mnohých robotov nás určite nepríjemne prekvapí a v mnohom nás môže odradiť. V zozname sa však okrem iných nachádza aj jeden zaujímavý model s pomerne slušnou cenou. Ide o programovateľný robot (stavebnicu) firmy Lego s názvom Mindstorms NXT 2.0.

Lego NXT 2.0 (č. setu 8547) obsahuje tzv. tehličku, resp. stavebnicovú kocku (NXT 2.0 brick), ktorá sa vyrábala od roku 2009 do roku 2013. Stavebnica Mindstorms NXT 2.0 okrem kocky NXT obsahuje ďalších 612 súčiastok Lego, 3 motory, 1 ultrazvukový (ultrasonic) senzor, 2 dotykové (touch) senzory, 1 senzor farieb (color), prepojovacie káble a príslušnú dokumentáciu.


Obr. 1 Kocka NXT 2.0 s motormi a senzormi; základný model robota stavebnice Lego Mindstorms NXT 2.0

Kocka NXT obsahuje 32-bitový CPU Atmel ARM AT91SAM7S256 48 MHz (256 KB flash, 64 KB RAM), 8-bitový koprocesor Atmel AVR ATmega48 8 MHz (4 KB flash, 512 B RAM), 100 × 64-pixelový LCD displej, 4 vstupné porty, 3 výstupné porty, 1 port USB, integrovaný bluetooth a reproduktor. Kocku napája 6 batérií typu AA a možno ju primárne ovládať pomocou softvéru určeného pre OS Windows, resp. Mac OS. V našom prípade je nepodstatné, že štandardný softvér nie je určený pre OS Linux, pretože na programovanie plánujeme použiť balík ROS. Najdôležitejší je fakt, že stavebnicu Lego Mindstorms NXT 2.0 možno ešte stále kúpiť, a to za pomerne nízku cenu v porovnaní s inými robotmi.

NXT-ROS

Na ovládanie kocky NXT boli do balíka ROS doplnené softvérové nástroje nxt_ros. Ich základom je softvérová knižnica NXT_Python, vytvorená Douglasom P Lauom. Knižnicu v roku 2013 použil Marcus Wanner, ktorý pripravil balík určený na kontrolu kocky s veľmi podobným názvom NXT-Python. Mimoriadne dôležité je to, že uvedené knižnice sú určené na prácu s firmvérom kocky verzie 1.28 a vyššej.

Inštalácia nástrojov nxt_ros a balíka ROS je detailne opísaná na internete. Na prvý pohľad sa zdá jednoduchá a priamočiara. Žiaľ, nie je to tak, a preto si ju rozoberieme krok po kroku.

Peripetie inštalácie

Prv ako sa pustíme do akejkoľvek práce, musíme si uvedomiť, že firma Lego vyrábala kocku NXT v rokoch 2009 až 2013. V tom čase bol vývoj balíka ROS ešte „v plienkach“. Postupne boli vydané tri distribúcie: C Turtle (v poradí 2. verzia), Diamondback (3. verzia) a Electric Emys (4. verzia). Každému iste hneď napadne, že nástroje nxt_ros boli pripravené práve pre tieto distribúcie, a pretože sa v ďalšom vývoji nepokračovalo, nasledujúce distribúcie ROS už neobsahovali potrebné balíčky. Do úvahy by pripadala inštalácia cestou kompilácie zdrojového kódu vo vyšších verziách, no pretože vývoj niektorých závislých balíčkov sa dávno skončil, bolo by nesmierne obťažné dosiahnuť úspech.


Obr. 2 ROS Electric Emys

Ak si vyberieme najvyššiu z možných verzií ROS Electric Emys (wiki.ros.org/electric) a túto verziu plánujeme nainštalovať na OS Linux Ubuntu, zistíme, že na výber máme distribúcie Ubuntu 10.04 (Lucid) až 11.10 (Oneiric).

Ďalej môžeme postupovať dvoma spôsobmi: Použijeme voľný PC (fyzický hardvér) alebo využijeme napr. nám známe virtualizačné prostredie VirtualBox. Ak sa rozhodneme nainštalovať „staršie“ Ubuntu na nový počítač, určite sa stretneme s nepríjemnosťou, a síce s neexistenciou ovládačov. Tento fakt je samozrejmý. Je jasné, že v roku 2011, keď bola vydaná distribúcia Oneiric, neexistovali ovládače zariadení, ktoré sa montujú do súčasných moderných PC. Takmer s určitosťou budeme mať problém s ovládačmi portov USB a sieťovej karty.

Preto odporúčame inštaláciu vo virtuálnom prostredí. Inštalácia nami vybranej distribúcie Oneiric vrátane inštalácie všetkých potrebných ovládačov sa vykonala bez problémov.

Ďalší krok je inštalácia balíka ROS. Prvé konfiguračné kroky inštalačného procesu uskutočníme bez problémov. Pri pokuse o inštaláciu softvéru z internetu (apt-get update) však narazíme na ďalší problém. Pretože pracujeme v zastaranej verzii Linuxu, bežné repozitáre neobsahujú potrebné balíčky na vyriešenie všetkých závislostí. Tento problém vyriešime úpravou súboru /etc/apt/sources.list, kde text „archive.ubuntu.com“ zmeníme za „old-releases.ubuntu.com“. Následne dokončíme inštaláciu balíka ROS (apt-get install ros-electric-desktop-full) a veľmi podobným spôsobom nainštalujeme balík nxt-ros (apt-get install ros-electric-nxtall). Ostatné kroky oboch inštalácií nie sú ničím zvláštne ani problematické.


Obr. 3 Originálny softvér LEGO MINDSTORMS NXT – aktualizácia firmvéru

Upgrade firmvéru

Po úspešnej inštalácii oboch balíkov môžeme pristúpiť k testu funkčnosti nainštalovaného prostredia. Žiaľ, v tomto momente sme znovu narazili na problém – nekorektnú komunikáciu softvéru s používanou kockou. Mnohé neúspešné pokusy nás priviedli až ku krajnému riešeniu, a to inštalácii originálneho softvéru v OS Windows. Okamžite sme pritom zistili príčinu problémov – originálny softvér takisto nekomunikoval s kockou tak, ako by mal, a informoval nás o nekompatibilnom firmvéri, ktorý obsahovala nami používaná kocka. Po aktualizácii firmvéru sa realizoval test funkčnosti v OS Windows bez problémov. Okamžite sa tým vyriešili aj všetky problémy v rámci OS Linux a mohli sme sa pustiť do plnohodnotnej práce.

Zobrazit Galériu
Autor: Marek Sopko

Nechajte si posielať prehľad najdôležitejších správ emailom

Mohlo by Vás zaujímať

ITPro

Linux súkromne i pracovne v2.0 : Nové verzie unikátnych distribúcií

19.02.2018 00:10

V poslednom mesiaci roku 2017 boli vydané nové verzie linuxových distribúcií ReactOS a Puppy. Ide o dve unikátne distribúcie vymykajúce sa zo štandardu, ktorý predstavujú ostatné bežne používané distr ...

ITPro

Linux súkromne i pracovne v2.0 (25. časť): Okruhy siete Tor

12.12.2017 14:22

V tejto časti seriálu sa poslednýkrát vrátime k sieti Tor, pričom detailnejšie opíšeme spôsob fungovania jej okruhov. Na začiatku článku vám v stručnosti predstavíme postup vytvárania okruhov. Následn ...

ITPro 2

Geografické informačné systémy a virtuálna realita

11.12.2017 14:14

Geografický informačný systém (GIS), počítačový systém pracujúci s údajmi opisujúcimi miesta na zemskom povrchu, je už zo svojej podstaty predurčený na využitie nástrojmi virtuálnej reality. Virtuálna ...

1 Comments

  1. preco nie EV3 reakcia na: Linux súkromne i pracovne v2.0 (19. časť): NXT-ROS
    13.5.2017 19:05
    preco sa nevenujete novsej EV3 verzii? nxt2 uz nieje v predaji

    palo
    Reagovať

Vyhľadávanie

PC forum button

Najnovšie videá