𝗥𝗼𝗯𝗼𝘁𝗶𝗰𝘀 𝟭𝟬𝟭 Robotyka polega na budowaniu maszyn, które potrafią postrzegać, decydować i działać w fizycznym świecie w warunkach niepewności. Powszechnie stosowany standard (ISO 8373) opisuje robota jako zaprogramowany, napędzany mechanizm z pewnym stopniem autonomii, poruszający się w swoim otoczeniu w celu wykonywania zamierzonych zadań. Wyobraź sobie robota jako pętlę, która działa tysiące razy na minutę: Zaczyna się od postrzegania. Kamery, LiDAR, radar, IMU, enkodery, każdy z nich dostarcza częściowy, hałaśliwy obraz świata i samego ciała robota. Robot następnie dokonuje estymacji stanu, co jest eleganckim sposobem na powiedzenie: „biorąc pod uwagę hałaśliwe pomiary, gdzie jestem, jak szybko się poruszam i jak bardzo jestem co do tego niepewny?” Bez estymacji każda decyzja podejmowana później opiera się na piasku. Gdy robot ma użyteczną estymację, dokonuje percepcji: wykrywa obiekty, wolną przestrzeń, przeszkody, a czasami etykiety semantyczne („to jest paleta”, „to jest człowiek”, „to jest drzwi”). Percepcja to miejsce, w którym nowoczesne ML bardzo pomaga, ale to także miejsce, w którym robotyka jest karana przez przypadki brzegowe: powierzchnie odbijające, kurz, deszcz, rozmycie ruchu, dziwna geometria. Następnie przychodzi planowanie. Planowanie jest zazwyczaj warstwowe: ➤ Planista na wysokim poziomie decyduje, co zrobić dalej (iść do alejki 7, wziąć przedmiot A, wrócić do stacji) ➤ Planista ruchu decyduje, jak się poruszać bez kolizji i w ramach ograniczeń fizycznych ➤ Generator trajektorii wygładza ruch, aby był rzeczywiście możliwy do wykonania (bez niemożliwych przyspieszeń czy szarpnięć) Kontrola przekształca ten plan w polecenia dla silników. To jest część, którą wiele osób niedocenia: robot nie „przemieszcza się do punktu”, musi nieustannie się korygować, podczas gdy świat stawia opór (poślizg kół, przesunięcia ładunku, zmiany tarcia, nagrzewanie się stawów). Pod tym wszystkim leży rzeczywistość sprzętowa: mechanika, napędy, zasilanie i ograniczenia termiczne. Robot z doskonałym oprogramowaniem, ale słabym napędem lub złym postrzeganiem staje się szybko niewiarygodny. Nowoczesne roboty rzadko są jedną monolityczną całością oprogramowania. Są systemami składającymi się z modułów, które publikują i subskrybują strumienie danych. To jeden z powodów, dla których ROS 2 jest szeroko stosowany jako ramy systemowe: zachęca do „grafu węzłów” wymieniających wiadomości na tematach, z regulowaną niezawodnością komunikacji za pomocą ustawień QoS.