Projekt robota kroczącego - układ sterowania

Nasze koło naukowe realizuje projekt robota kroczącego. Zaprojektowaliśmy konstrukcję robota, która wykorzystuje serwomechanizmy. W każdej nodze są po 3 serwomechanizmy, co daje w sumie 12 serwomechanizmów. Pierwszy serwomechanizm w nodze odpowiedzialny jest za ruch biodrem robota, drugi za ruch udem a trzeci za ruch łydką robota. W tym poście opiszemy układ sterowania robota.

Głównym urządzeniem sterującym w projekcie jest mikrokonroler STM32 na płytce Nucleo F429ZI. Za pośrednictwem magistrali UART komunikuje się z mikrokontrolerem ESP32, który przekazuje mu komendy otrzymane z aplikacji na komputer, przeznaczonej do sterowania robotem. Mikrokontroler ESP32 wymienia natomiast dane z komputerem za pośrednictwem WiFi.

Do mikrokontrolera STM32 podłączone są serwomechanizmy, które sterowane są za pośrednictwem magistrali UART. Czujnik odległości wskazuje odległość od przeszkody, natomiast czujnik IMU mierzy przyśpieszenia kątowe, które w mikrokontrolerze przeliczane są na nachylenie kątowe robota.

Dane otrzymane od mikrokontrolera ESP32 przetwarzane są i odczytywana jest z nich komenda ruchu przesłana przez aplikację. Następnie algorytm odpowiedzialny za kontrolę ruchu uruchamia generator trajektorii nóg robota. Wygenerowana trajektoria służy do obliczenia zadanych kątów serwomechanizmów za pomocą równań kinematyki ciała robota oraz równań kinematyki nóg robota.

Aplikacja sterująca robotem wykonana została w silniku do gier Godot, który pozwolił na stworzenie wizualizacji robota oraz interfejsu. Interfejs pozwala nie tylko na wydawanie komendy chodu do przodu, ale również sterowanie poszczególnymi osiami robota, co przydatne może być na etapie testowania układu sterowania.

Uwaga: w aplikacji widoczny jest pierwszy model robota (dlatego rożni się tak od tego na zdjęciu)

Projekt jest cały czas rozwijany. Czekajcie na nasze kolejne posty, a na pewno dowiecie się z nich więcej o projekcie 🙂