Projekty/

Głowa robota InMoov

Od kiedy zacząłem interesować się robotyką, zawsze fascynował mnie robot InMoov. Jest to robot humanoidalny, którego stworzył francuski rzeźbiarz i projektant Gael Langevin. Szczegółowy opis budowy robota znajduje się na stronie https://www.inmoov.frBudowa całego robota jest dosyć kosztowna oraz czasochłonna, dlatego w pierwszej kolejności zbudowałem jego głowę i zaprojektowałem dla niej stojak. W głowie robota dodatkowo umieściłem komputer Raspberry Pi Zero 2, sterownik serwomechanizmów, kartę dźwiękową USB, wzmacniacz audio, głośnik, mikrofon oraz czujnik temperatury. Dzięki takiemu rozwiązaniu od razu mogłem przystąpić do pisania programu sterującego dla robota i poznawać jego niesamowite możliwości.

Pracę rozpocząłem od dokładnej analizy opisu budowy głowy robota InMoov zamieszczonego na stronie https://www.inmoov.fr. Następnie z tej samej strony pobrałem wszystkie potrzebne pliki STL. Części wydrukowałem na drukarce Creality Ender 5 z wykorzystaniem filamentu PLA. Po skompletowaniu potrzebnych elementów montażowych oraz podzespołów elektronicznych zacząłem montaż.

Aby zmieścić komputer Raspberry Pi oraz sterownik serwomechanizmów w głowie robota, konieczna była zamiana serwomechanizmu HS 805BB na serwomechanizm Feetech FI7635M. Żeby to zrobić, zaprojektowałem specjalny adapter, który można pobrać na stronie https://github.com/ZW-Robotics/Glowa_robota_InMoov_STL

Mając zbudowaną głowę robota, skompletowałem również dodatkowe elementy montażowe oraz podzespoły elektroniczne które dodałem do projektu. 

Podzespoły te przymocowałem do głowy robota oraz stojaka. Pliki STL do wydrukowania zaprojektowanych przeze mnie dodatkowych uchwytów oraz stojaka dostępne są na stronie https://github.com/ZW-Robotics/Glowa_robota_InMoov_STL . Natomiast uchwyt do przymocowania kamery dla komputera Raspberry Pi pobrałem ze strony https://www.thingiverse.com/thing:2197719/files .

W odpowiedni sposób połączyłem ze sobą wszystkie podzespoły elektroniczne. 

Kolejnym krokiem była instalacja na karcie microSD systemu operacyjnego dla komputera Raspberry Pi. Wykorzystałem do tego celu program Raspberry Pi Imager, którego pobrałem ze strony https://www.raspberrypi.com/software/ . Zainstalowałem wersję systemu Raspberry Pi OS (Legancy).

Po zakończeniu instalacji systemu operacyjnego, w oknie konfiguracyjnym włączyłem niezbędne interfejsy.   

Żeby ułatwić sobie pracę, połączyłem się zdalnie z komputerem Raspberry Pi za pomocą protokołu VNC. Do obsługi tego protokołu wykorzystałem programu VNC Viewer

Przed rozpoczęciem pisania programu sterującego, za pomocą terminala zainstalowałem potrzebne biblioteki języka Python:

pi@raspberrypi:~ $ sudo pip3 install adafruit-circuitpython-servokit

pi@raspberrypi:~ $ pip3 install w1thermsensor

pi@raspberrypi:~ $ sudo pip3 install SpeechRecognition==3.9.0

pi@raspberrypi:~ $ sudo apt install python3-pyaudio

pi@raspberrypi:~ $ sudo apt-get install flac

pi@raspberrypi:~ $ sudo apt-get install espeak

Aby syntezator mowy prawidłowo wymawiał polskie litery, otworzyłem plik, w którym zapisane są odpowiednie ustawienia:

pi@raspberrypi:~ $ sudo nano /usr/lib/arm-linux-gnueabihf/espeak-data/voices/default

Następnie zmodyfikowałem jego treść:

name default
language pl
gender male
intonation 2 

Aby nie uszkodzić ruchomych części głowy robota, napisałem program, dzięki któremu określiłem maksymalne dopuszczalne pozycje serwomechanizmów. Otrzymane dane wykorzystałem w trakcie pisania programu sterującego. Program można pobrać za pomocą terminala wpisując polecenie:

pi@raspberrypi: ~ $ git clone https://github.com/ZW-Robotics/Sterowanie_serwomechanizmami_InMoov.git

Program sterujący jest na bieżąco przeze mnie aktualizowany. Staram się zamieszczać w nim dużo komentarzy, aby łatwiej było zrozumieć jego działanie. Najnowszą wersję programu sterującego również można pobrać za pomocą terminala wpisując polecenie: 

pi@raspberrypi:~ $ git clone https://github.com/ZW-Robotics/Program_sterujacy_InMoov.git

Aby program działał poprawnie, komputer Raspberry Pi musi posiadać aktywne połączenie z internetem. W powłoce języka Python można obserwować, w jaki sposób program interpretuje wypowiedziane przez użytkownika słowa. 

Opis budowy głowy robota InMoov został opublikowany także w czasopiśmie Elektronika Praktyczna 08/2023.

Mam nadzieję, że mój opis budowy głowy robota InMoov cię zainspirował i też postanowisz ją zbudować według mojego sposobu. W razie jakichkolwiek pytań napisz do mnie na adres e-mail zygmunt.wypich@zw-robotics.pl