BioloBrain BioloBrainS1 Rozszerzenie możliwości robotów BIOLOID firmy ROBOTIS Instrukcja użytkownika wersja 1.0
Spis treści 1. Wstęp...3 2. Elementy zestawu...3 3. Montaż zestawu...4 3.1. Montaż zestawu na humanoidzie...5 3.2. Montaż zestawu na Hexapodzie...10 3.3. Jednostka sterująca zestawu BioloBrain...11 4. Konfiguracja systemu i sieci...13 4.1. System operacyjny...13 4.2. Sieć komputerowa...13 4.3. Oprogramowanie przykładowe...14 4.4. Konfiguracja kamery i przechwytywanie obrazu...14 7. Bieżąca praca z BioloBrain em...16 7.1. Efektywna komunikacja z serwomechanizmami AX-12...16 7.2. Akumulatory...16 7.3. Włączanie i wyłączanie elektroniki BioloBrain...17 BioloBrain/BioloBrainS1 rozszerzenie możliwości robotów BIOLOID firmy ROBOTIS 2
1. Wstęp BioloBrain stanowi zespół elementów pozwalających rozszerzyć możliwości wykorzystania edukacyjnego zestawu BIOLOID firmy ROBOTIS. Jest to zestaw o funkcjonalności małego komputera PC z systemem operacyjnym Linux i modułem WiFi, noszony przez robota i sterujący nim. BioloBrainS1 jest dodatkowo wyposażony w czujnik inercyjny ADIS16365BLMZ będący zintegrowanym akcelerometrem i żyroskopem. 2. Elementy zestawu Zestaw BioloBrain obejmuje: 1.Jednostkę sterującą zbudowaną jako kompletny komputer PC z systemem operacyjnym Linux, modułem sieci bezprzewodowej WiFi, zamknięty w obudowie dostosowanej do konstrukcji robota BIOLOID, parametry jednostki sterującej zostały przedstawione w Tabeli 1, 2.Podwójny rozdzielacz sygnału TTL umożliwiający podłączenie serwomechanizmów BIOLOID a poprzez dwie niezależne szyny. jednostki sterującej do 3.Dwa pakiety akumulatorów po 4 sztuki, 4.Elementy montażowe wykonane z poliamidu umożliwiające trwałe mocowanie jednostki sterującej na plecach oryginalnego robota BIOLOID zbudowanego jako humanoid, 5.Elementy montażowe wykonane j.w. umożliwiające mocowanie jednostki sterującej do BIOLOIDA zbudowanego jako hexapod. Tabela 1. Parametry techniczne jednostki sterującej CPU OMAP3530 produkcji Texas Instruments, zegar 500MHz Rozmiar i typ pamięci stałej 4 GB karta pamięci formatu MicroSD umieszczona w złączu z wykorzystaniem adaptera MicroSD na MiniSD Rozmiar pamięci RAM 256 MB System operacyjny Linux / Debian Złącze do podłączenia monitora HDMI x1 Liczba dostępnych złącz USB 3 zewnętrzne, 1 wewnętrzne wykorzystywane na potrzeby interfejsu WLAN Złącza audio 1 wyjściowe + 1 wejściowe BioloBrain/BioloBrainS1 rozszerzenie dla BIOLOID firmy Robotis 3
Liczba linii do niezależnej komunikacji z serwomechanizmami 2 Pobór energii jednostki sterującej <= 2.5 W Wymiary obudowy 12 x 9 x 5 cm Jednostka sterująca zawiera moduł WiFi. Jednostka sterująca modelu BioloBrainS1 jest dodatkowo wyposażona w czujnik inercyjny ADIS16365BLMZ firmy Analog Devices. Został on wybrany do tego zestawu jako jeden z najdokładniejszych czujników o rozmiarach pozwalających na jego montaż na niewielkim robocie humanoidalnym. Główne parametry czujnika zostały przedstawione w Tabeli 2. Tabela 2. Parametry czujnika inercyjnego ADIS16365BLMZ Wymiary odczytu przyspieszenia 3 Zakres odczytu przyspieszenia +/- 12 g Dokładność odczytu przyspieszenia 0,333% g Wymiary odczytu prędkości kątowej 3 Zakres odczytu prędkości kątowej +/- 300 /s Dokładność odczytu prędkości kątowej <= 0.05 /s dla zakresu +/- 300 /s <= 0.0125 /s dla zakresu +/- 75 /s Zestaw akumulatorów składa się z ośmiu wymienialnych ogniw AA o pojemności 2500 mah połączonych szeregowo. 3. Montaż zestawu Montaż oryginalnej konstrukcji robota BIOLOID powinien być przeprowadzony zgodnie z wytycznymi zawartymi w instrukcji montażu dostarczonej przez producenta robota BIOLOID. Elementy składowe zestawu BioloBrain zostały przygotowane w taki sposób, aby w jak najmniejszym stopniu ingerować w oryginalną konstrukcję. Przeprowadzając montaż całego robota należy zwrócić uwagę na prowadzenie przewodów w taki sposób, aby nie zostały one zbyt mocno zagięte ani przycięte przez pozostałe elementy konstrukcyjne. Szczególną uwagę należy zwrócić na przewody łączące koszyki akumulatorów z centralką ze względu na to, iż zapewniają one zasilanie całej konstrukcji. BioloBrain/BioloBrainS1 rozszerzenie możliwości robotów BIOLOID firmy ROBOTIS 4
3.1. Montaż zestawu na humanoidzie W niniejszej sekcji zawarto rysunki montażowe przedstawiające elementy konstrukcji robota wraz z numerycznym wskazaniem kolejności montażu poszczególnych części. W skład zestawu BioloBrain wchodzą 2 elementy konstrukcyjne umożliwiające montaż jednostki sterującej BioloBrain do ciała robota BIOLOID. Rysunek 1. przedstawia montaż pierwszego z nich uchwytu biodrowego. Zgodnie z kolejnością przedstawioną na Rysunku 1. należy rozpocząć od połączenia uchwytu biodrowego (2) z uchwytem serwomechanizmów (1) umieszczając między nimi, w odpowiednich otworach śruby M2x8 umożliwiające połączenie z pozostałymi elementami. Oba elementy (1 i 2) skręcić ze sobą przy użyciu śrub M2x12. Następnie od spodu (połączonych elementów 1 i 2) należy przykręcić oba serwomechanizmy (3) za pomocą wystających śrub M2x8. Pomiędzy serwomechanizmami (3) umieścić koszyk 2x2 wraz z akumulatorami, zwracając uwagę, aby prowadzić przewody koszyka bez zagięć i załamań. Koszyk akumulatorów od spodu osłonić łącząc dolne krawędzie serwomechanizmów (3) elementem łączeniowym (5) przy użyciu czterech śrub M2x8. Zamontowany koszyk 2x2 widoczny jest na Rysunku 4. pod zamontowanym uchwytem biodrowym. Element biodrowy (2) za pomocą wystających śrub M2x8 połączyć od góry z dolną częścią korpusu (5), w którym osadzone zostaną serwomechanizmy barków robota. Orczyki serwomechanizmów należy skierować przeciwstawnie na zewnątrz korpusu mocując serwomechanizmy za pomocą śrub. BioloBrain/BioloBrainS1 rozszerzenie dla BIOLOID firmy Robotis 5
Rysunek 1. Montaż elementu biodrowego Montaż drugiego z uchwytów jednostki centralnej BioloBrain (elementu mocowania karku oznaczonego jako 1) widoczny jest na Rysunku 2. BioloBrain/BioloBrainS1 rozszerzenie możliwości robotów BIOLOID firmy ROBOTIS 6
Do górnej powierzchni elementu mocowania karku (1) przytwierdzić 3 nakrętki za pomocą naklejki montażowej dostarczonej z zestawem BIOLOID. Następnie mocowanie karku (1) przykręcić do głowy robota (2) za pomocą 3 śrub. Połączone ze sobą elementy 1 i 2 oraz podkładkę z laminatu (3) skręcić z górną częścią korpusu (4) zgodnie z Rysunkiem 2. wykorzystując w tym celu 3 śruby wkręcone w uprzednio unieruchomione nakrętki. Rysunek 2. Kolejność montażu elementu mocowania karku BioloBrain/BioloBrainS1 rozszerzenie dla BIOLOID firmy Robotis 7
Dolną część korpusu (4) zamocowaną zgodnie z Rysunkiem 1. oraz górną część korpusu (4) zamocowaną zgodnie Rysunkiem 2. połączyć ze sobą zgodnie z tym co przedstawia Rysunek 3. Rysunek 3. Połączenie obu części korpusu robota BioloBrain/BioloBrainS1 rozszerzenie możliwości robotów BIOLOID firmy ROBOTIS 8
Po połączeniu w całość korpusu robota utworzona zostanie wnęka widoczna od strony tylnej korpusu, co przedstawia Rysunek 4. Na samym dnie powstałej wnęki powinien zostać zamontowany rozdzielacz sygnałów łączący serwomechanizmy prawej i lewej strony ciała robota do odpowiednich magistral komunikacyjnych. Następnie we wnęce tej należy umieścić koszyk 4x1 wraz z akumulatorami. Wtyki łączeniowe koszyków akumulatorów oraz centralki połączyć ze sobą. Rysunek 4. Tułów robota BIOLOID. Widok tylnej części z zamontowanymi uchwytami jednostki sterującej Po umieszczeniu koszyka akumulatorów we wnętrzu korpusu należy dokonać montażu jednostki sterującej BioloBrain za pomocą 4 śrub zgodnie z tym, co przedstawia Rysunek 5. Z obudowy jednstki sterującej wystają dwie trójżyłowe wiązki przewodów. Wiązka zawierająca kabel czerwony powinna być podłączona do lewej strony rozdzielacza sygnałów TTL. Z tej strony powinny być także dołączone wiązki komunikujące sterownik z serwomechanizmami po lewej stronie robota, a z czujnikiem AX-S1. Druga trójżyłowa wiązka wychodząca ze sterownika powinna być wpięta po prawej stronie rozdzielacza sygnałów TTL. BioloBrain/BioloBrainS1 rozszerzenie dla BIOLOID firmy Robotis 9
Rysunek 5. Montaż jednostki sterującej BioloBrain 3.2. Montaż zestawu na Hexapodzie Zestaw BioloBrain może być zainstalowany na hexapodzie. W tym celu należy wykonać następujące czynności: 1.Wymontowanie z korpusu robota jego oryginalnego sterownika (CM5) i baterii. 2.Przykręcenie do korpusu robota elementów montażowych zgodnie z Rysunkiem 6. 3.Przykręcenie do tych elementów montażowych jednostki sterującej BioloBrain. BioloBrain/BioloBrainS1 rozszerzenie możliwości robotów BIOLOID firmy ROBOTIS 10
Rysunek 6. Hexapod z elementami montażowymi jednostki sterującej BioloBrain 3.3. Jednostka sterująca zestawu BioloBrain Jednostka sterująca (sterownik) BioloBrain stosowana jest w miejsce oryginalnej jednostki sterującej oznaczonej CM5. Konstrukcja robota jest nieznacznie zmodyfikowana z użyciem dodatkowych elementów w celu osadzenia na plecach robota jednostki sterującej BioloBrain. W odróżnieniu od CM5, sterownik BioloBrain posiada 2 niezależne kanały transmisyjne, które wykorzystywane są do niezależnego sterowania np. jedną i drugą połową ciała robota. Na Rysunku 7. oznaczone zostały złącza jednostki sterującej BioloBrain dostępne z zewnątrz jak i po zdjęciu pokrywy. BioloBrain/BioloBrainS1 rozszerzenie dla BIOLOID firmy Robotis 11
Rysunek 7. Opis złącz elektroniki sterującej BioloBrain Do złącz Bus A i Bus B magistral komunikacyjnych wpięte są wiązki i wyprowadzone na zewnątrz obudowy w taki sposób, aby umożliwić podłączenie elementów wykonawczych. Magistrala Bus A steruję prawą stroną ciała robota (nieparzyste numery ID), natomiast magistrala Bus B steruje lewą stroną (parzyste numery ID). Wiązki umożliwiające podłączenie akumulatorów są na stałe przylutowane do płytki elektroniki BioloBrain i również wyprowadzone na zewnątrz. Umożliwiają one zasilenie jednostki sterującej BioloBrain z zewnętrznych 2 zestawów koszyków akumulatorów, które wewnątrz sterownika BioloBrain połączone są szeregowo. Złącza koncentratora USB osadzono w taki sposób, aby po zamknięciu odbudowy umożliwić podłączenie innych urządzeń np. klawiatury, czy też kamery. Z zewnątrz centrali dostępne są 3 złącza USB. Dodatkowo jedno wewnętrzne złącze wykorzystywane jest na potrzeby interfejsu WLAN. BioloBrain/BioloBrainS1 rozszerzenie możliwości robotów BIOLOID firmy ROBOTIS 12
4. Konfiguracja systemu i sieci 4.1. System operacyjny Elektronika BioloBrain jest przygotowana do współpracy z uniwersalnym systemem operacyjnym Linux Debian, którego kopia znajduje się na karcie pamięci SD. Włączenie zasilania jednostki sterującej powoduje start systemu. W przygotowanym systemie operacyjnym jednostki sterującej BioloBrain dostępne są następujące konta, na które można się zalogować: administrator login: root, hasło: 123456 użytkownik login: bbuser, hasło: bbuser123456 Użytkownik jest zachęcany do dostosowania systemu do własnych potrzeb. W tym celu należy podłączyć do monitora, poprzez złącze HDMI, klawiatury, poprzez złącze USB i włączyć zasilanie jednostki sterującej. Pliki systemowe mogą być modyfikowane przez użytkownika root przy pomocy dowolnego edytora dostarczonego z systemem Linux, np. pico. 4.2. Sieć komputerowa Kopia systemu operacyjnego dostarczana na karcie pamięci została przygotowana do współpracy z zabudowanym interfejsem WiFi. Pozwala to uruchomić robota BIOLOID wyposażonego w zestaw BioloBrain w sieci komputerowej korzystającej ze standardowych protokołów IP (TCP-IP oraz inne). Dzięki temu możliwe jest w szczególności: Zdalne logowania się na jednostkę sterującą BioloBrain przez protokół SSH i np. terminal PuTTY. Transfer plików między BioloBrain'em a innym komputerem, np. z użyciem programu WinSCP. Zdalne sterowanie robotem w następujący sposób: użytkownik komunikuje się bezpośrednio z aplikacją na komputerze biurkowym; aplikacja, poprzez WiFi, komunikuje się z programem działającym na jednostce sterującej BioloBrain, która steruje bezpośrednio silnikami robota. Przykładowe oprogramowanie tego rodzaju jest dołączone do zestawu BioloBrain, o czym poniżej. Zestaw BioloBrain jest przystosowany do komunikacji z siecią WiFi o następujących parametrach: Nazwa sieci (SSID): bbnetwork Klucz sieciowy: 1234567890 Szyfrowanie: WPA2 Personal (PSK) + AES Konfiguracja sieci znajduje się w pliku /etc/network/interfaces, który określa sieć WiFi jako wlan0. BioloBrain/BioloBrainS1 rozszerzenie dla BIOLOID firmy Robotis 13
BioloBrain może być także podłączony do sieci przewodowej. Kabel sieciowy należy podłączyć do portu USB jednostki sterującej poprzez adapter USB/Ethernet. Interfejs sieci przewodowej nie jest uruchamiany na BioloBrain'ie wraz z systemem operacyjnym i należy go uruchomić komendą: ifup eth0 4.3. Oprogramowanie przykładowe Prekonfigurowane środowisko systemu operacyjnego zastosowanego w BioloBrain pozwala w łatwy sposób przygotowywać własne programy komunikujące się z elementami wykonawczymi i czujnikami robota BIOLOID. Przykładowe oprogramowanie demonstrujące zdalne sterowanie robotem znajduje się na karcie pamięci SD w folderze /home/bbuser/bbsoft Jest ono opisane w osobnej dokumentacji. Korzysta ono z biblioteki języka C++ bbdev oferującej łatwy dostęp do peryferiów robota BIOLOID takich jak silniki i czujniki, w tym także do czujnika inercyjnego znajdującego się w zestawie BioloBrainS1. Kompilat biblioteki bbdev znajduje się w pliku /usr/local/lib/libbbdev.a zaś jej nagłówek w pliku /usr/local/include/bbdev.h 4.4. Konfiguracja kamery i przechwytywanie obrazu Zestaw BioloBrain może być wyposażony w kamerę video podłączaną do jednego z zewnętrznych gniazd koncentratora UBS jednostki sterującej BioloBrain. Poniżej opisano w jaki sposób obraz z kamery zamontowanej podłączonej do BioloBrain'a może być transmitowany, poprzez WiFi, do komputera PC z systemem operacyjnym Windows. W analogiczny sposób można także skonfigurować transmisję video do komputera z innym systemem operacyjnym. W celu nadania i przechwycenia obrazu pochodzącego z kamery robota należy określić adresy IP zarówno jednostki sterującej BioloBrain jak i komputera, na którym odtwarzana będzie transmisja. Nr IP jednostki sterującej BioloBrain można określić wpisując w linię komend terminala systemu Linux polecenie ifconfig, a następnie w wyświetlonym zestawieniu dla wlan0 odnaleźć wpis inet addr po który podany jest 4-członowy numer IP, np.: 192.168.1.149. Nr IP komputera, na który odtwarzana będzie transmisja można sprawdzić uruchamiając windowsowy wiersz poleceń poprzez kliknięcie na przycisk Start -> Uruchom a następnie wpisując cmd i klikając OK. W wierszu poleceń należy wpisać: ipconfig /all, zatwierdzić klawiszem Enter, a następnie z wyświetlonego zestawienia odczytać nr IP przypisany karcie sieciowej komputera, np.: 192.168.1.145. Na potrzeby niniejszego przykładu przyjęto następujące nr IP: 192.168.1.149 - Nr IP karty sieciowej sterownika BioloBrain, BioloBrain/BioloBrainS1 rozszerzenie możliwości robotów BIOLOID firmy ROBOTIS 14
192.168.1.145 - Nr IP karty sieciowej komputera, na którym odtwarzana będzie transmisja. Należy pamiętać, że podane powyżej numery są jedynie przykładowe i w środowisku, gdzie będzie uruchamiana sterownika BioloBrain numery te będą miały inne wartości. Aby zapobiec dynamicznemu przydzielaniu tych numerów przez ruter gdzie skonfigurowana jest sieć bbnetwork (parametry podane w pkt. 2 niniejszej instrukcji) można skonfigurować router, aby przypisywał powyższe numery IP do adresów MAC kart sieciowych komputera i sterownika BioloBrain za każdym razem, gdy któraś z tych kart połączy się z ruterem. Znając oba numery IP kart sieciowych należy jeszcze umożliwić komputerowi pracującemu na zewnątrz sieci bbnetwork, na którym odtwarzany będzie obraz z kamery łączenie się ze sterownikiem BioloBrain pracująca wewnątrz sieci bbnetwork. W tym celu należy na ruterze udostępniającym połączenie sieciowe dla sterownika BioloBrain skonfigurować przekierowanie (forwarding) przychodzących pakietów po protokole UDP na port 5000 dla IP karty sieciowej sterownika BioloBrain (dla omawianego przykładu nr IP to: 192.168.1.149). Posiadając skonfigurowane w powyższy sposób połączenia sieciowe można przygotować skrypty realizujące transmisje sygnału video. Na komputerze, gdzie odtwarzany będzie obraz należy zainstalować darmową aplikację VLC Media Player i przygotować dla niej skrypt SDP. Skrypt ten można wykonać w najprostszym edytorze tekstu (np. windowsowym programie Notatnik) nadając mu dowolną nazwę z rozszerzeniem *.sdp, np. bbvideo.sdp. Przygotowany skrypt SPD powinien zawierać poniższą zawartość, gdzie wytłuszczonym drukiem zaznaczono nr IP karty sieciowej sterownika BioloBrain: v=0 m=video 5000 RTP/AVP 96 c=in IP4 192.168.1.149 a=rtpmap:96 MP4V-ES/90000 Po stronie sterownika BioloBrain należy przygotować skrypt, który strumień video będzie udostępniał. W tym celu należy utworzyć plik videostream o następującej zawartości: #!/bin/sh gst-launch-0.10 v v412src device=/dev/video0 always-copy=false! video/xraw-yuv,width=640,height=480! dspmp4venc! rtpmp4vpay send-config=true! udpsink host=192.168.1.145 port=5000 Wytłuszczony nr IP podany w powyższym skrypcie to nr karty sieciowej komputera, do którego strumień video będzie przesyłany. Na karcie microsd dostarczonej z zestawem BioloBrain w katalogu /home/bbuser/video/ powinien znajdować się powyższy skrypt, który będzie wymagał edycji w celu zmiany nr IP na właściwy. Kolejność operacji w celu przechwycenia obrazu z kamery jest następująca: BioloBrain/BioloBrainS1 rozszerzenie dla BIOLOID firmy Robotis 15
Uruchomić skrypt bbvideo.sdp (np. korzystając z programu VLC Media Player) na komputerze, gdzie ma być przechwycony obraz, Poleceniem./videostream uruchomić skrypt videostream znajdujący się w katalogu /home/bbuser/video bądź w innej wybranej przez siebie lokalizacji na karcie SD sterownika BioloBrain, Po chwili obraz z kamery powinien się pojawić na ekranie komputera. 7. Bieżąca praca z BioloBrain em 7.1. Efektywna komunikacja z serwomechanizmami AX-12 Komunikacja z serwomechanizmami, w które wyposażony jest robot Bioloid powinna być bezbłędna i szybka. Istotny wpływ na obie te charakterystyki ma zawartość pozycji nr 5 (0x05) tablicy kontrolnej serwomechanizmu. Zawartość tej pozycji to Return Delay Time czyli opóźnienie między odczytaniem instrukcji przez serwomechanizm a nadaniem przez niego odpowiedzi. Faktyczny czas tego opóźnienia jest wyznaczony jako zawartość bajtu nr 5 przemnożona przez 2 mikrosekundy. Zbyt krótki czas może powodować zlepianie się pakietów i błędy w ich interpretacji przez urządzenia podłączone do szyny. Długi czas oznacza powolność komunikacji z serwomechanizmami. Wartości fabrycznie wpisywane do pozycji nr 5 (0x05) tablicy kontrolnej serwomechanizmu to albo 0, co oznacza pojawianie się błędów, albo 250, co oznacza powolną komunikację. Polecaną wartością jest 25. Można ją ustawić posługując się przykładowym programem działającym w trybie serwisowym. Jest on uruchamiany w tym trybie przez wywołanie./bbres -s wykonane w folderze /home/bbuser/bbsoft/bbres 7.2. Akumulatory Podstawowa konstrukcja robota BIOLOID wykorzystuje pojedynczy pakiet 8-miu ogniw. W zestawie BioloBrain, akumulatory umieszczone są w 2-ch pakietach w celu wyrównania rozłożenia masy (2x2 oraz 4x1 ogniw rozmiaru AA). Każdy z pakietów ma własną wiązkę łączącą go bezpośrednio z płytą elektroniki BioloBrain. Na płycie pakiety te łączą się szeregowo. Układ ładowania akumulatorów został zintegrowany z płytą elektroniki BioloBrain z uwagi na możliwe duże obciążenie termiczne serwomechanizmów, nie zaleca się ładowania akumulatorów w trakcie intensywnej pracy (gwałtowne i szybkie ruchy serwomechanizmów robota). Do zasilania BioloBrain, a co za tym idzie do ładowania akumulatorów należy skorzystać z zasilacza dostarczanego wraz z zestawem robota BIOLOID. BioloBrain/BioloBrainS1 rozszerzenie możliwości robotów BIOLOID firmy ROBOTIS 16
W przypadku braku oryginalnego zasilacza wykorzystać można dowolny zasilacz z kompatybilnym wtykiem (polaryzacja: + w środku, na zewnątrz wtyku) o napięciu 12V i prądzie 5A. W celu szybkiego naładowania akumulatorów zaleca się ich ładowanie poza urządzeniem z wykorzystaniem ładowarki do ogniw typu AA 1.2V. 7.3. Włączanie i wyłączanie elektroniki BioloBrain Wyłączając elektronikę BioloBrain należy przed odłączeniem napięcia zasilającego zamknąć programowo system operacyjny. Służy do tego komenda systemowa shutdown -h now Wyłączenie zasilania bez zamknięcia systemu może doprowadzić do uszkodzenia systemu plików. W skrajnych przypadkach konieczne może być wyjęcie karty pamięci z urządzenia i przywrócenie jej systemu plików z użyciem komputera PC. W przypadku uszkodzenia niemożliwego do naprawy należy przywrócić zawartość karty do stanu początkowego z użyciem dostarczanych przez producenta BioloBrain plików obrazów partycji. BioloBrain/BioloBrainS1 rozszerzenie dla BIOLOID firmy Robotis 17