ROBOWORKS Robofleet Orin Nano x3 ROS робот
РЕЗИМЕ
Овој документ главно ја објаснува употребата на функционалниот пакет за формирање на повеќе роботи наречен wheeltec_multi.
Овој документ е поделен на четири дела:
- Првиот дел главно се однесува на воведувањето на методот на формирање на повеќе роботи;
- вториот дел главно ги опишува поставките за повеќе-машинска комуникација на ROS, вклучително и ROS конструкција на повеќе-машинска комуникација и проблемите што може да се сретнат во процесот на комуникација со ROS;
- третиот дел главно ги опишува оперативните чекори на повеќе-машинската временска синхронизација;
- четвртиот дел ја објаснува специфичната употреба на пакетот функции за формирање повеќе машини.
Целта на овој документ е вовед во мулти-агентен роботски систем и му овозможува на корисникот брзо да го започне проектот за формирање на повеќе роботи.
ВОВЕД ВО МУЛТИ-АГЕНТСКИТЕ АЛГОРИТМИ
Алгоритми за формирање на повеќе агенси
Овој ROS пакет претставува типичен проблем на мулти-агенти во колаборативната контрола за време на формирањето на погон. Овој туторијал поставува основа за иден развој на оваа тема. Алгоритам за контрола на формирање се однесува на алгоритам кој контролира повеќе агенти за да формира специфична формација за извршување на задача. Соработката се однесува на соработка помеѓу повеќе агенти кои користат одредена врска со ограничувања за да се заврши задачата. Земете го погонот за формирање повеќе роботи како ексampЛе, соработката значи дека повеќе роботи заедно формираат посакувана формација. Нејзината суштина е одредена математичка врска е задоволена помеѓу позициите на секој робот. Методите на формирање главно се поделени на централизирана контрола на формацијата и дистрибуирана контрола на формацијата. Методите за контрола на централизираните формации главно вклучуваат метод на виртуелна структура, метод на графичка теорија и метод на предвидување на модели. Методите за контрола на дистрибуирани формации главно вклучуваат метод лидер-следбеник, метод базиран на однесување и метод на виртуелна структура.
Овој ROS пакет го применува методот лидер-следбеник во методот за контрола на дистрибуирани формации за да се изврши погонот за формирање повеќе роботи. Еден робот во формацијата е назначен како водач, а другите роботи се назначени како робови кои ќе го следат лидерот. Алгоритмот ја користи траекторијата на движење на водечкиот робот за да ги постави координатите што треба да ги следат следните роботи со одредена насока и брзина. Со коригирање на отстапувањата на позицијата од координатите за следење, следбениците на крајот ќе го намалат отстапувањето помеѓу следбеникот и очекуваните координати за следење на нула за да ги постигнат целите на формацискиот погон. На овој начин, алгоритмот е релативно помалку комплициран.
Алгоритми за избегнување пречки
Вообичаен алгоритам за избегнување пречки е методот на вештачко потенцијално поле. Движењето на роботот во физичка средина се смета како движење во виртуелно вештачко поле на сила. Најблиската пречка е идентификувана од LiDAR. Пречката обезбедува поле на одбивна сила за генерирање одбивност на роботот, а целната точка обезбедува гравитациско поле за генерирање на гравитациона сила на роботот. На овој начин го контролира движењето на роботот под комбинирано дејство на одбивност и привлечност.
Овој ROS пакет е подобрување засновано на методот на вештачко потенцијално поле. Прво, алгоритмот за формирање ја пресметува линеарната и аголната брзина на следбеникот на Slave. Потоа ја зголемува или намалува линеарната и аголната брзина според барањата за избегнување препреки. Кога растојанието помеѓу Slave-следбеникот и пречката е поблиску, силата на одбивање на пречката до Slave-следбеникот е поголема. Во меѓувреме промената на линеарната брзина и варијациите на аголната брзина се поголеми. Кога пречката е поблиску до предниот дел на следбеникот Slave, одбивноста на пречката до следбеникот Slave станува поголема (предното одбивање е најголемо, а страничното е најмало). Како резултат на тоа, варијациите на линеарната брзина и аголната брзина се поголеми. Преку методот на вештачко потенцијално поле, го подобрува решението
кога робот може да престане да реагира пред пречка. Ова служи за подобро избегнување на препреките.
ПОСТАВУВАЊЕ НА ПОВЕЌЕ АГЕНТСКА КОМУНИКАЦИЈА
Комуникацијата со повеќе агенти е еден од клучните чекори за завршување на формирањето на повеќе роботи. Кога релативните позиции на повеќе роботи се непознати, роботите треба да ги споделуваат информациите меѓусебно преку комуникација за да го олеснат воспоставувањето врски. ROS дистрибуирана архитектура и мрежни комуникации се многу моќни. Тоа не е само погодно за меѓупроцесна комуникација, туку и за комуникација помеѓу различни уреди. Преку мрежна комуникација, сите јазли можат да работат на кој било компјутер. Главните задачи како што е обработката на податоците се завршени на страната на домаќинот. Slave машините се одговорни за примање податоци за животната средина собрани од различни сензори. Домаќинот овде е менаџерот што го води Master јазолот во ROS. Тековната рамка за комуникација со повеќе агенти е преку менаџер на јазли и менаџер на параметри за справување со комуникациите помеѓу повеќе роботи.
Чекорите за поставување мулти-агентски комуникации
Поставете ги контролите на ROS во истата мрежа
Постојат 2 начини за поставување на Master/Slave ROS контроли под истата мрежа.
Опција 1:
Главниот домаќин создава локален Wi-Fi со вклучување на управувачот со главниот јазол. Општо земено, еден од роботите што е назначен како господар ја создава оваа Wi-Fi мрежа. Други роботи или виртуелни машини се придружуваат на оваа Wi-Fi мрежа како робови.
Опции 2:
Локалната wifi мрежа е обезбедена од рутер од трета страна како центар за релеирање информации. Сите роботи се поврзани на истиот рутер. Рутерот може да се користи и без интернет конекција. Изберете еден од роботите како главен и стартувајте го Управувачот со главниот јазол. Останатите роботи се означени како робови и управуваат со главниот менаџер на јазли од господарот.
Одлуката за тоа која опција да се избере зависи од вашите барања на проектот. Ако бројот на роботи што треба да комуницираат не е голем, се препорачува опција 1 бидејќи заштедува цена и лесно се поставува. Кога бројот на роботи е во голема количина, се препорачува опција 2. Ограничувањето на компјутерската моќ на главната контрола на ROS и ограничениот пропусен опсег на Wi-Fi на одборот може лесно да предизвикаат одложувања и прекини на мрежата. Рутерот може лесно да ги реши овие проблеми.
Ве молиме имајте предвид дека кога вршите комуникација со повеќе агенти, ако виртуелната машина се користи како роб на ROS, нејзиниот мрежен режим треба да се постави на режим на мост.
Конфигурирајте ги променливите на околината Master/Slave
Откако сите ROS господари се сите во иста мрежа, треба да се постават променливите на околината за комуникација со повеќе агенти. Оваа променлива на околината е конфигурирана во .bashrc file во главниот директориум. Извршете ја командата gedit ~/.bashrc за да ја стартувате. Ве молиме имајте предвид дека и .bashrc files на господарот и на slave во комуникацијата со повеќе агенти треба да се конфигурираат. Она што треба да се промени се IP адресите на крајот од file. Двете линии на се ROS_MASTER_URI и ROS_HOSTNAME, како што е прикажано на Слика 2-1-4. ROS_MASTER_URI и ROS_HOSTNAME на ROS-домаќинот се и локални IP-адреси. ROS_MASTER_URI во робот ROS .bashrc file треба да се смени во IP адресата на домаќинот додека ROS_HOSTNAME останува како локална IP адреса.
ROS-мулти-машинската комуникација не е ограничена од верзијата за издавање на ROS. Во процесот на мултимашинска комуникација, треба да се има предвид следново:
- Работата на ROS slave програмата зависи од главната програма ROS на главниот уред ROS.
Главна програма ROS мора прво да се стартува на главниот уред пред да ја изврши slave програмата на slave уредот. - IP-адресите на главните и slave машините во комуникацијата со повеќе машини треба да бидат во иста мрежа. Ова значи дека IP адресата и маската на подмрежата се под иста мрежа.
- ROS_HOSTNAME во конфигурацијата на околината file .bashrc не се препорачува да се користи localhost. Се препорачува да користите одредена IP адреса.
- Во случај slave IP-адресата да не е правилно поставена, slave-уредот сè уште може да пристапи до главниот ROS, но не може да внесе информации за контрола.
- Ако виртуелната машина учествува во комуникацијата со повеќе агенти, нејзиниот мрежен режим треба да се постави во режим на мост. Статичката IP адреса не може да се избере за мрежната врска.
- Повеќе-машинската комуникација не може view или претплатете се на теми од типот на податоци за пораки кои не постојат локално.
- Можете да го користите демото за симулација на малата желка за да потврдите дали комуникацијата помеѓу роботите е успешна:
a. Бегај од господарот
roscore # лансирање ROS услуги
rosrun turtlesim turtlesim_node #launch turtlesim интерфејс
b. Бегај од робот
rosrun turtlesim turtle_teleop_key #launch control јазол на тастатура за turtlesim
Ако можете да манипулирате со движењата на желката од тастатурата на робот, тоа значи дека комуникацијата господар/роб е успешно воспоставена.
Автоматско Wifi конекција во ROS
Процедурите подолу објаснуваат како да го конфигурирате роботот за автоматско поврзување на мрежата домаќин или мрежата на рутерот.
Автоматско поставување Wi-Fi конекција за Jetson Nano
- Поврзете го Jetson Nano преку далечинска алатка VNC или директно на екранот на компјутерот. Кликнете на иконата за Wi-Fi во горниот десен агол, а потоа кликнете на „Уреди врски.“
- Кликнете на копчето + во Мрежни врски:
- Под прозорецот „Изберете тип на врска“, кликнете на опаѓачкото мени и кликнете на копчето „Креирај…“:
- Во контролниот панел, кликнете на опцијата Wifi. Внесете го името на Wifi за поврзување во полињата „Име на конекција“ и SSID. Изберете „Client“ во паѓачкото мени „Mode“ и изберете „wlan0“ во паѓачкото мени „Device“.
- Во контролниот панел, кликнете на опцијата „Општо“ и проверете „Автоматско поврзување со оваа мрежа…“. Поставете го приоритетот за поврзување на 1 во опцијата „Приоритет на поврзување за автоматско активирање“. Проверете ја опцијата „Сите корисници можат да се поврзат на оваа мрежа“. Кога опцијата е поставена на 0 во „Приоритет на конекција за автоматско активирање“ за друга Wi-Fi, тоа значи дека ова е претпочитаната Wi-Fi мрежа во минатото.
- Кликнете на опцијата „Wi-Fi Security“ во Контролниот панел. Изберете „WPA & WPA2 Personal“ во полето „Безбедност“. Потоа внесете ја лозинката за Wifi
Забелешка:
Ако роботот не може автоматски да се поврзе со Wi-Fi мрежата по подигнувањето кога приоритетот на Wi-Fi е поставен на 0, тоа може да биде предизвикано од проблем со слаб Wi-Fi сигнал. За да го избегнете овој проблем, можете да изберете да ги избришете сите опции за Wi-Fi што биле поврзани во минатото. Чувајте ја само Wi-Fi мрежата создадена од домаќинот или рутерот.
Кликнете на опцијата „IPv4 Settings“ во контролната табла за мрежните поставки. Изберете ја опцијата „Рачно“ во полето „Метод“. Потоа кликнете „Додај“, во полето „Адреса“ пополнете ја IP адресата на slave-машината. Пополнете „24“ во полето „Мрежна маска“. Пополнете го сегментот на IP мрежата во „Gateway“. Променете ги последните три цифри од сегментот на IP мрежата во „1“. Главната цел на овој чекор е да се поправи IP адресата. Откако ова ќе се заврши за прв пат, IP адресата ќе остане непроменета кога последователно ќе се поврзете на истиот WIFI.
Откако ќе се конфигурираат сите поставки, кликнете „зачувај“ за да ги зачувате поставките. Откако зачувувањето е успешно, роботот автоматски ќе се поврзе со мрежата на домаќинот или рутерот кога ќе се вклучи.
Забелешка:
- IP адресата поставена овде треба да биде иста како IP адресата поставена во .bashrc file во Дел 2.1.
- IP адресата на господарот и секој slave мора да биде единствена.
- Главните и slave IP-адресите треба да бидат во истиот мрежен сегмент.
- Мора да почекате домаќинот или рутерот да испратат сигнал за WiFi пред да може да се вклучи робот-робот и автоматски да се поврзе на мрежата WiFi.
- Откако ќе се конфигурира поставката, ако роботот не може автоматски да се поврзе со WiFi кога е вклучен, приклучете ја и исклучете ја мрежната картичка и обидете се повторно да се поврзете.
Автоматско поставување Wifi конекција за Raspberry Pi
Постапката за Raspberry Pi е иста како и Jetson Nano.
Автоматско поставување Wifi конекција за Jetson TX1
Поставувањето во Jetson TX1 е речиси исто како и во Jetson Nano со еден исклучок што Jetson TX1 треба да го избере уредот „wlan1“ во „Уред“ во контролната табла за мрежните поставки.
ПОСТАВУВАЊЕ НА ПОВЕЌЕ АГЕНТСКА СИНХРОНИЗАЦИЈА
Во проектот за формирање на повеќе агенти, поставката за синхронизација на време со повеќе агенти е клучен чекор. Во процесот на формирање ќе бидат предизвикани многу проблеми поради асинхроното системско време на секој робот. Синхронизацијата на времето со повеќе агенти е поделена на две ситуации, имено, ситуација кога и главниот и робот робот се поврзани на мрежата и ситуација кога и двата се исклучени од мрежата.
Успешна мрежна конекција на господар/слеј
Откако ќе се конфигурира комуникацијата со повеќе агенти, ако главните и slave машините можат успешно да се поврзат на мрежата, тие автоматски ќе го синхронизираат мрежното време. Во овој случај, не се потребни дополнителни активности за да се постигне временска синхронизација.
Решавање проблеми со мрежните исклучувања
Откако ќе се конфигурира комуникацијата со повеќе агенти, ако главните и slave уредите не можат успешно да се поврзат на мрежата, потребно е рачно да се синхронизира времето. Ќе ја користиме командата датум за да го завршиме поставувањето на времето.
Прво, инсталирајте ја алатката терминатор. Од алатката терминатор, користете ја алатката за разделување на прозорци за да ги поставите контролните терминали на главниот и slave во истиот терминален прозорец (кликнете со десното копче за да поставите поделен прозорец и најавете се на главните и slave машините со ssh во различни прозорци) .
sudo apt-get install terminator # Преземете терминатор за да го поделите терминалниот прозорец
Кликнете на копчето горе лево, изберете ја опцијата [Емитува на сите]/[Емитува сè], внесете ја следнава команда. Потоа користете ја алатката терминатор за да поставите исто време за господарот и робот.
sudo date -s „2022-01-30 15:15:00“ # Рачно поставување на времето
МУЛТИ-АГЕНТСКИ РОС ПАКЕТ
Вовед во пакет ROS
Поставете име на роб
Во пакетот на функции wheeltec_multi, неопходно е да се постави уникатно име за секој робот-роб за да се избегнат грешки. За прample, бр.1 за роб1 и бр.2 за роб2 итн.
Целта на поставувањето на различни имиња е да се групираат тековните јазли и да се разликуваат по различни именски простори. За прample, радарската тема на slave 1 е: /slave1/scan, а LiDAR јазолот на slave 1 е: / slave1/laser.
Поставете робови координати
Пакетот wheeltec_multi може да имплементира сопствени формации. Кога се потребни различни формации, само изменете ги саканите координати на роботите-робови. Slave_x и slave_y се x и y координатите на slave со master како оригинална референтна точка. Предниот дел на главниот е позитивната насока на координатата x, а левата страна е позитивната насока на координатата y. Откако ќе се заврши поставувањето, ќе се издаде TF координатен slave1 како очекувана координата на slave.
Ако има еден господар и два робови, може да се постави следната формација:
- Хоризонтална формација: Координатите на slave лево можете да ги поставите на: slave_x:0, slave_y: 0.8, а координатите на slave од десната страна на: slave_x:0, slave_y:-0.8.
- Формирање колона: Координатите на еден slave може да се постават на: slave_x:-0.8, slave_y:0, а координатите на другиот slave може да се постават на: slave_x:-1.8, slave_y:0.
- Формирање на триаголник: Координатите на едниот роб може да се постават на: slave_x:-0.8, slave_y: 0.8, а координатите на другиот slave може да се постават на: slave_x:-0.8, slave_y:-0.8.
Други формации може да се прилагодат по потреба.
Забелешка
Препорачаното растојание помеѓу двата роботи е поставено на 0.8, а се препорачува да не биде пониско од 0.6. Растојанието помеѓу робовите и господарот се препорачува да се постави под 2.0. Колку е подалеку од господарот, толку е поголема линеарната брзина на slave кога господарот се врти. Поради ограничувањето на максималната брзина, брзината на slave ќе отстапи доколку не ги исполнува барањата. Формацијата на роботот ќе стане хаотична.
Иницијализирање на позицијата роб
Почетната позиција на робот е стандардно на очекуваните координати. Пред да ја стартувате програмата, само поставете го роботот блиску до очекуваните координати за да ја завршите иницијализацијата.
Оваа функција е имплементирана од јазолот pose_setter во file со име turn_on_wheeltec_robot.launch во пакетот wheeltec_multi, како што е прикажано на слика 4-1-3.
Ако корисникот сака да ја приспособи почетната позиција на slave, тој или таа треба само да ги постави вредностите slave_x и slave_y како што е прикажано на Слика 4-1-4 во wheeltec_slave.launch. Вредностите slave_x и slave_y ќе бидат предадени на turn_on_wheeltec_robot.launch и доделени на јазолот pose_setter. Само поставете го роботот во сопствена положба пред да ја стартувате програмата.
Конфигурација на позиција
Во формацијата со повеќе агенти, првиот проблем што треба да се реши е позиционирањето на господарот и робот. Мајсторот прво ќе конструира 2Д мапа. Откако ќе ја креирате и зачувате мапата, стартувајте го пакетот за 2D навигација и користете го адаптивниот алгоритам за позиционирање на Монте Карло (позиционирање amcl) во пакетот за навигација 2D за да го конфигурирате позиционирањето на главниот.
Бидејќи господарот и робовите се во иста мрежа и го делат истиот менаџер на јазли, господарот ја лансираше мапата од пакетот за навигација 2D, сите робови можат да ја користат истата карта под истиот менаџер на јазли. Затоа, робот нема потреба да креира карта. Во wheeltec_slave.launch, извршете го позиционирањето во Монте Карло (позиционирање amcl), робовите можат да ги конфигурираат своите позиции користејќи ја мапата создадена од господарот.
Како да се создаде формација и да се одржи формацијата
Во процесот на формирање движење, главното движење може да се контролира со Rviz, тастатура, далечински управувач и други методи. Slave ја пресметува својата брзина преку јазолот slave_tf_listener со цел да го контролира неговото движење и да ја постигне целта на формацијата.
Јазолот slave_tf_listener ја ограничува slave брзината за да се избегне прекумерната брзина од пресметката на јазолот, што ќе предизвика низа влијанија. Специфичната вредност може да се измени во wheeltec_slave.launch.
Релевантните параметри на алгоритмот за формирање се како што следува:
Избегнување на пречки во формирањето
Во формација со повеќе агенти, господарот може да го користи јазолот move_base за да го комплетира избегнувањето на пречките. Сепак, иницијализацијата на slave не користи move_base јазол. Во овој момент, јазолот multi_avoidance треба да се повика во slave програмата. Јазолот за избегнување пречки е стандардно овозможен во пакетот. Доколку е потребно, избегнувањето може да се постави на „неточно“ за да се оневозможи јазолот за избегнување пречки.
Некои релевантни параметри на јазолот за избегнување препреки се прикажани на сликата подолу, каде што safe_distance е ограничување на безбедното растојание на препреката, а danger_distance е ограничување на опасно растојание за пречка. Кога пречката е на безбедно_растојание и опасност_растојание, робот ја прилагодува својата позиција за да ја избегне пречката. Кога пречката е во опасност_растојание, робот ќе се оддалечи од пречката.
Процедура за работа
Внесете команда за извршување
Подготовки пред да се започне со формирање на повеќе агенси:
- Master и slave се поврзуваат на истата мрежа и правилно ја поставуваат комуникацијата со повеќе агенти
- Мајсторот однапред создава 2Д мапа и ја зачувува
- Господарот е поставен на почетната точка на картата, а робот е поставен во близина на позицијата за иницијализација (стандардна позиција за формирање роб)
- Откако ќе се најавите на Jetson Nano/Raspberry Pi од далечина, извршете синхронизација на времето.
sudo date -s „2022-04-01 15:15:00“
Чекор 1: Отворете 2D карта од главниот.
roslaunch turn_on_wheeltec_robot navigation.launch
Чекор 2: Извршете ја програмата за формирање од сите робови.
roslaunch wheeltec_multi wheeltec_slave.лансирање
Чекор 3: Отворете го контролниот јазол на тастатурата од главниот или користете џојстик за далечинско управување со главното движење.
roslaunch wheeltec_robot_rc keyboard_teleop.launch
Чекор 4: (Изборно) Набљудувајте ги движењата на роботот од Rviz.
rviz
Забелешка
- Погрижете се да ја завршите операцијата за синхронизација на времето пред да ја извршите програмата.
- Кога се контролира господарот на формација со повеќе агенси, аголната брзина не треба да биде пребрза. Препорачана линеарна брзина е 0.2 m/s, аголна брзина под 0.3 rad/s. Кога господарот прави вртење, колку подалеку е робот од господарот, толку е потребна поголема линеарна брзина. Поради ограничувањето на линеарната брзина и аголната брзина во пакетот, кога робот автомобил не може да ја достигне потребната брзина, формацијата ќе биде хаотична. Генерално, прекумерната линеарна брзина лесно може да го оштети роботот.
- Кога бројот на slave е повеќе од еден, поради ограничениот пропусен опсег на Wi-Fi на ROS хостот, лесно е да се предизвикаат значителни одложувања и исклучување на комуникацијата со повеќе агенти. Користењето на рутер може добро да го реши овој проблем.
- TF дрвото на формацијата со повеќе роботи (2 роботи) е: rqt_tf_tree
- Дијаграмот за врска со јазлите на формацијата со повеќе роботи (2 роботи) е: rqt_graph
Документи / ресурси
![]() |
ROBOWORKS Robofleet Orin Nano x3 ROS робот [pdf] Упатство за користење Orin Nano x3, Robofleet ROS робот, Robofleet ROS, Robo, Robofleet Orin Nano x3 ROS робот, Robofleet Orin Nano x3, Orin Nano x3 ROS робот, Orin Nano x3 |