Роботика

Как да планирате прост робот с помощта на Linux

Как да планирате прост робот с помощта на Linux
След като инсталирате ROS, може да искате да създадете робот. Един добър начин за успех в този проект е да планирате това, което искате да направите. В този случай ROS идва на помощ. С ROS можете да настроите изграденото и да визуализирате цялото нещо. Когато работите с роботи, ще има много сценарии, които може да се наложи да обмислите. Роботът трябва да взаимодейства с околната среда, като например да избягва дивана и да намери пътя обратно от кухнята. Роботът също трябва да има ръце и крака, ако вашите нужди го изискват. Можете да симулирате всичко това с помощта на ROS, а за кодиращата част можете да симулирате и вътрешните елементи на вашата система.

Как се изгражда ROS робот?

За да работи системата добре и за да можете да следите какво ще прави устройството в определени ситуации, се нуждаете от стандартни дефиниции за всяка част. В ROS тези компоненти са възли, услуги и теми. Накратко, създавате един възел за всяка основна нужда. Например движението е един възел, зрението е друг възел, а планирането е трети възел. Възлите съдържат услуги, които могат да изпращат информация до други възли, а услугите също могат да обработват заявки и отговори. Темата може да излъчва стойности на много други възли. Запознаването с тези термини и начина, по който трябва да ги използвате, е първият ключ към овладяването на разработката на ROS2.

Емулирайте навигацията с костенурка

Когато стартирате в ROS, вероятно ще си купите робот, който се разхожда или търкаля във вашата къща. За да направи това, роботът трябва да има оглед на района, в който се движи. За да направите това, можете да използвате подобно на карта приложение, за да тествате поведението на вашия робот. Дизайнерите зад Turtlebot са измислили приложение, наречено turtlesim, което може да направи това вместо вас. Както при всички други части на ROS2, можете да стартирате тези инструменти с подкоманда от командния ред. След това имате дейности за различни функции. Първата част е да стартирате прозореца, където можете да видите симулацията и това се нарича възел.

$ ros2 тичам turtlesim turtlesimnode

Ще се появи прозорец с костенурка в центъра. За да контролирате костенурката с клавиатурата, трябва да изпълните втора команда, която остава отворена и да продължите да натискате определени клавиши. Това е втори възел, който комуникира с първия.

$ ros2 тичам turtlesim turtleteleopkey

Сега можете да преместите костенурката наоколо и да видите как се движи. Можете също така да получите грешки, като например удряне в стената. Тези грешки се показват в терминала, където се изпълнява костенурката. Това е най-простото използване на симулационния модул. Можете също така да изпълнявате дадени фигури, осигурен е квадрат и да добавите още костенурки. За да добавите още костенурки, можете да използвате командата rqt.

Определете услугите с rqt

Програмата rqt предоставя услуги за симулация. Q означава Qt, което е за работа с интерфейса. В този пример вие създавате нова костенурка.

$ rqt

Интерфейсът rqt е дълъг списък от услуги за симулацията, която изпълнявате. За да създадете нова костенурка, изберете падащото меню „spawn“, дайте ново име на костенурката и кликнете „call“.- Веднага ще видите нова костенурка до първата. Ако щракнете върху падащото меню „spawn“, ще видите и нов куп записи, свързани с новородената костенурка.

Можете също да пренастроите команди, за да стартирате новата костенурка. Командата за това е следната:

$ ros2 тичам turtlesim turtleteleopkey -ros-args -remap turtle1 / cmdvel: = turtle2 / cmdvel

Задайте името „костенурка2“, според вашия по-ранен избор.

Разширено гледане с Rviz

За по-напреднало и 3D гледане използвайте rviz. Този пакет симулира всички възли във вашия дизайн.

$ ros2 стартирайте rviz2 rviz2

В графичния интерфейс имате три панела с изглед в центъра. Можете да създавате среди, като използвате панела „Показвания“. Можете да добавите стени, сили на вятъра и други физически свойства. Тук също добавяте вашите роботи.

Имайте предвид, че преди да стигнете до този момент, ще трябва да разберете как да използвате URDF формата. Форматът URDF дефинира робот, като ви позволява да зададете тялото, ръцете, краката и преди всичко зоните на сблъсък. Зоните на сблъсък са налице, така че симулацията може да реши дали роботът се е сблъскал.

Научаването за създаване на робот във формат URDF е голям проект, така че използвайте съществуващ код с отворен код, за да експериментирате с емулаторите.

Симулирайте физика с беседка

В Gazebo можете да симулирате физиката на околната среда около вашия робот. Gazebo е програма за допълване, която работи добре заедно с rviz. С Gazebo можете да видите какво всъщност се случва; с rviz следите какво открива роботът. Когато вашият софтуер открие стена, която не е там, Gazebo ще покаже празно и rviz ще покаже къде във вашия код е създадена стената.

Заключение

Симулирането на вашия робот и неговата среда е необходимо, за да се намерят грешки и да се осигурят необходимите подобрения в работата на вашия робот, преди да го изхвърлите в природата. Това е досаден процес, който продължава дълго след като започнете да тествате бота, както в контролирана среда, така и в реалния живот. С адекватни познания за инфраструктурата на вътрешните системи на вашия робот можете да разберете какво сте направили правилно и грешно. Научете се бързо да оценявате всички открити грешки, тъй като те могат да направят системата ви по-стабилна в дългосрочен план.

Как да използвам Xdotool за стимулиране на кликвания и натискания на мишката в Linux
Xdotool е безплатен инструмент с команден ред с отворен код за симулиране на щраквания и натискания на мишката. Тази статия ще обхване кратко ръководс...
Топ 5 продукти за ергономична компютърна мишка за Linux
Продължителната употреба на компютър причинява ли болка в китката или пръстите? Страдате ли от схванати стави и постоянно ли ви се налага да си ръкува...
Как да променяте настройките на мишката и тъчпада с помощта на Xinput в Linux
Повечето дистрибуции на Linux се доставят с библиотека “libinput” по подразбиране за обработка на входни събития в системата. Той може да обработва вх...