Jak budować robot ROS?
Aby system działał dobrze i aby móc postępować zgodnie z tym, co urządzenie zrobi w niektórych sytuacjach, potrzebujesz standardowych definicji dla każdej części. W ROS te elementy to węzły, usługi i tematy. Krótko mówiąc, tworzysz jeden węzeł dla każdej głównej potrzeby. Na przykład ruch jest jednym węzłem, widzenie to inny węzeł, a planowanie to trzeci węzeł. Węzły zawierają usługi, które mogą wysyłać informacje do innych węzłów, a usługi mogą również obsługiwać żądania i odpowiedzi. Temat może nadawać wartości do wielu innych węzłów. Poradzenie sobie z tymi terminami i sposobem ich użycia jest pierwszym kluczem do opanowania rozwoju ROS2.
Naśladuj nawigację z Turtlesim
Zaczynając w ROS, prawdopodobnie kupisz robota, który spaceruje lub toczy się w domu. Aby to zrobić, robot musi mieć widok obszaru, w którym się porusza. Aby to zrobić, możesz użyć aplikacji podobnej do mapy, aby przetestować zachowanie robota. Projektanci Turtlebot wymyślili aplikację o nazwie Turtlesim, która może to zrobić za Ciebie. Podobnie jak w przypadku wszystkich innych części ROS2, możesz uruchomić te narzędzia od podkomandu z wiersza poleceń. Następnie masz czynności dla różnych funkcji. Pierwszą częścią jest uruchomienie okna, w którym możesz zobaczyć symulację, a to nazywa się węzłem.
$ ROS2 RUN TURTLESIM TURTLESIMNODE
Pojawi się okno z żółwem pośrodku. Aby kontrolować żółw za pomocą klawiatury, musisz uruchomić drugie polecenie, które pozostaje otwarte i naciskać niektóre klawisze. To drugi węzeł, który komunikuje się z pierwszym.
$ ROS2 RUN TURTLESIM TURTLELELEOPKEY
Teraz możesz poruszać żółwia i zobaczyć, jak się porusza. Możesz także uzyskać błędy, takie jak uderzenie w ścianę. Błędy te pojawiają się w terminalu, w którym działa TurtleSimnode. To najprostsze zastosowanie modułu symulacyjnego. Możesz także uruchomić podane kształty, dostarczany jest kwadrat i dodać więcej żółwi. Aby dodać więcej żółwi, możesz użyć polecenia RQT.
Zdefiniuj usługi z RQT
Program RQT świadczy usługi dla symulacji. Q oznacza QT, która służy do obsługi interfejsu. W tym przykładzie spawnujesz nowego żółwia.
$ rqt
Interfejs RQT to długa lista usług uruchomionej symulacji. Aby utworzyć nowego żółwia, wybierz menu rozwijane „Spawn”, nadaj żółwiowi nową nazwę i kliknij „Zadzwoń.„Natychmiast zobaczysz nowego żółwia obok pierwszego. Jeśli klikniesz menu rozwijane „Spawn”, zobaczysz także nową grupę wpisów związanych z nowo spawanym żółwia.
Możesz także remapować polecenia, aby uruchomić nowy żółw. Poleceniem jest to, że następuje:
$ ROS2 RUN TURTLESIM TURTLELELEPKEY -ROS -Args -ReMap Turtle1/cmdvel: = Turtle2/cmdvel
Ustaw nazwę „Turtle2”, zgodnie z wcześniejszym wyborem.
Zaawansowane oglądanie z RVIZ
Aby uzyskać bardziej zaawansowane i 3D, użyj RVIZ. Ten pakiet symuluje wszystkie węzły w Twoim projekcie.
$ ROS2 RUN RVIZ2 RVIZ2
W interfejsie graficznym masz trzy panele, z widokiem w środku. Możesz budować środowiska za pomocą panelu „Wyświetlacze”. Możesz dodawać ściany, siły wiatrowe i inne właściwości fizyczne. Tutaj dodajesz swoje roboty.
Pamiętaj, że zanim dojdziesz do tego punktu, musisz zrozumieć, jak użyć formatu URDF. Format URDF definiuje robota, umożliwiając ustawienie ciała, ramion, nóg, a przede wszystkim strefę kolizji. Strefy kolizji są tam, aby symulacja mogła zdecydować, czy robot zderzył się.
Uczenie się o tworzeniu robota w formacie URDF to duży projekt, więc użyj istniejącego kodu open source, aby eksperymentować z emulatorami.
Symuluj fizykę za pomocą altany
W altwie możesz symulować fizykę środowiska otaczającego robota. Gaza to program uzupełniający, który działa dobrze z RVIZ. Dzięki altwie możesz zobaczyć, co się naprawdę dzieje; Z RVIZ śledzisz, co wykrywa robot. Kiedy oprogramowanie wykryje ścianę, której nie ma, altana pokaże puste, a RVIZ pokaże, gdzie w kodzie utworzono ścianę.
Wniosek
Symulowanie robota i jego środowiska jest niezbędne do znalezienia błędów i zapewnienia potrzebnych ulepszeń działania robota, zanim go wydasz na wolność. Jest to żmudny proces, który trwa długo po rozpoczęciu testowania bota, zarówno w kontrolowanych środowiskach, jak i prawdziwym życiu. Dzięki odpowiedniej wiedzy na temat infrastruktury wewnętrznych systemów robota, możesz zrozumieć, co zrobiłeś dobrze i źle. Naucz się szybko, aby docenić wszystkie wady, które znajdziesz, ponieważ mogą uczynić Twój system bardziej solidny na dłuższą metę.