ROBOWORKS-LOGO

ROBOWORKS Robofleet ÇOKLU AJAN ALGORİTMALARI

ROBOWORKS-Robofleet-ÇOKLU-AJAN-ALGORİTMALAR-ÜRÜN

Özellikler

  • Ürün Adı: ROBOWORKS
  • Sürüm: 20240501
  • Hazırlayan: Wayne Liu ve Janette Lin
  • Tarih: 1 Mayıs 2024

Ürün Bilgileri

ROBOWORKS, robot koordinasyonu ve iletişimi için çeşitli algoritmaların uygulanmasına olanak tanıyan çoklu ajan sistemidir.

SSS

S: Robot Wifi'a otomatik olarak bağlanamıyorsa ne yapmalıyım?

A: Eğer robot otomatik olarak bağlanamazsa, ağ kartını çıkarıp tekrar takmayı deneyin ve tekrar bağlanmayı deneyin.

ÖZET

Bu belgede temel olarak wheeltec_multi isimli çoklu robot oluşturma fonksiyon paketinin kullanımı açıklanmaktadır.

Bu belge dört bölüme ayrılmıştır:

  • Birinci bölümde esas olarak çoklu robot oluşum yönteminin tanıtımı yer almaktadır;
  • İkinci bölüm esas olarak ROS çoklu makine iletişim ayarlarını, ROS yapısı çoklu makine iletişimini ve ROS iletişimi sürecinde karşılaşılabilecek sorunları açıklamaktadır;
  • Üçüncü bölüm esas olarak çoklu makine zaman senkronizasyonunun çalışma adımlarını anlatmaktadır;
  • Dördüncü bölüm, çok makineli oluşum fonksiyon paketinin özel kullanımını açıklamaktadır.

Bu belgenin amacı, çoklu ajanlı robotik sistemlere giriş niteliğinde olup kullanıcıların çoklu robot formasyon projesine hızlı bir şekilde başlamalarını sağlamaktır.

ÇOK AJANLI ALGORİTMALARA GİRİŞ

Çoklu ajan oluşum algoritmaları

Bu ROS paketi, bir oluşum sürüşü sırasında işbirlikçi kontrolde çoklu ajanların tipik bir sorununu sunar. Bu eğitim, bu konu üzerinde gelecekteki geliştirmeler için bir temel oluşturur. Oluşum kontrol algoritması, bir görevi gerçekleştirmek için belirli bir oluşum oluşturmak üzere birden fazla ajanı kontrol eden bir algoritmayı ifade eder. İşbirliği, bir görevi tamamlamak için belirli bir kısıtlama ilişkisini kullanarak birden fazla ajan arasındaki işbirliğini ifade eder. Çoklu robot oluşum sürücüsünü bir örnek olarak ele alalımample, işbirliği, birden fazla robotun birlikte istenen bir oluşumu oluşturması anlamına gelir. Özü, her bir robotun pozisyonları arasında tatmin edilen belirli bir matematiksel ilişkidir. Oluşum yöntemleri esas olarak merkezi oluşum kontrolü ve dağıtılmış oluşum kontrolü olarak ayrılır. Merkezi oluşum kontrol yöntemleri esas olarak sanal yapı yöntemini, grafiksel teori yöntemini ve model tahmin yöntemini içerir. Dağıtılmış oluşum kontrol yöntemleri esas olarak bir lider-takipçi yöntemini, bir davranış tabanlı yöntemi ve bir sanal yapı yöntemini içerir.
Bu ROS paketi, çoklu robot formasyon sürüşünü yürütmek için dağıtılmış formasyon kontrol yönteminde lider-takipçi yöntemini uygular. Formasyondaki bir robot lider olarak belirlenir ve diğer robotlar lideri takip etmek için köle olarak belirlenir. Algoritma, takip eden robotların belirli bir yön ve hızla takip edeceği koordinatları ayarlamak için lider robotun hareket yörüngesini kullanır. Takip koordinatlarından konum sapmalarını düzelterek, takipçiler sonunda formasyon sürüşünün hedeflerine ulaşmak için takipçi ile beklenen takip koordinatları arasındaki sapmayı sıfıra indirecektir. Bu şekilde, algoritma nispeten daha az karmaşıktır.

Engellerden kaçınma algoritmaları

Yaygın bir engel önleme algoritması yapay potansiyel alan yöntemidir. Robotun fiziksel bir ortamda hareketi, sanal bir yapay kuvvet alanındaki bir hareket olarak kabul edilir. En yakın engel LiDAR tarafından belirlenir. Engel, robota itme kuvveti oluşturmak için itici bir kuvvet alanı sağlar ve hedef nokta, robota yerçekimi kuvveti oluşturmak için bir yerçekimi alanı sağlar. Bu şekilde, itme ve çekimin birleşik etkisi altında robotun hareketini kontrol eder.
Bu ROS paketi, yapay potansiyel alan yöntemine dayalı bir iyileştirmedir. İlk olarak, oluşum algoritması Slave takipçisinin doğrusal ve açısal hızını hesaplar. Daha sonra, doğrusal ve açısal hızı, engel kaçınma gereksinimlerine göre artırır veya azaltır. Slave takipçisi ile engel arasındaki mesafe daha yakın olduğunda, engelin Slave takipçisine itme kuvveti daha büyüktür. Bu arada, doğrusal hızdaki değişim ve açısal hız değişimleri daha büyüktür. Engel, Slave takipçisinin önüne yakın olduğunda, engelin Slave takipçisine itmesi daha büyük olur (ön itme en büyük ve yan itme en küçüktür). Sonuç olarak, doğrusal hız ve açısal hızdaki değişimler daha büyüktür. Yapay potansiyel alan yöntemi aracılığıyla, bir robotun bir engelin önünde tepki vermeyi durdurabileceği bir çözümü iyileştirir. Bu, daha iyi engel kaçınma amacına hizmet eder.

ÇOK AJANLI İLETİŞİM KURULUMU

Çoklu ajan iletişimi, çoklu robot oluşumunu tamamlamanın temel adımlarından biridir. Birden fazla robotun göreceli konumları bilinmediğinde, robotların bağlantıların kurulmasını kolaylaştırmak için iletişim yoluyla birbirlerinin bilgilerini paylaşmaları gerekir. ROS-dağıtılmış mimari ve ağ iletişimleri çok güçlüdür. Sadece işlem içi iletişim için değil, aynı zamanda farklı cihazlar arasındaki iletişim için de uygundur. Ağ iletişimi sayesinde, tüm düğümler herhangi bir bilgisayarda çalışabilir. Veri işleme gibi ana görevler ana bilgisayar tarafında tamamlanır. Köle makineler, çeşitli sensörler tarafından toplanan çevresel verileri almaktan sorumludur. Buradaki ana bilgisayar, ROS'taki Ana düğümü çalıştıran yöneticidir. Mevcut çoklu ajan iletişim çerçevesi, birden fazla robot arasındaki iletişimi yönetmek için bir düğüm yöneticisi ve bir parametre yöneticisi aracılığıyla yapılır.ROBOWORKS-Robofleet-ÇOKLU-AJAN-ALGORİTMALARI-ŞEKİL- (1)

Çoklu aracı iletişimlerini kurma adımları

  • Aynı ağda ROS Kontrollerini ayarlayın
    • Aynı ağ altında Master/Slave ROS Kontrollerini kurmanın 2 yolu vardır.

Seçenek 1:

Ana Bilgisayar, Ana düğüm yöneticisini çalıştırarak yerel bir wifi oluşturur. Genellikle, ana bilgisayar olarak belirlenen robotlardan biri bu wifi ağını oluşturur. Diğer robotlar veya sanal makineler bu wifi ağına köle olarak katılır.

Seçenekler 2:

Yerel wifi ağı, bir üçüncü taraf yönlendirici tarafından bilgi aktarma merkezi olarak sağlanır. Tüm robotlar aynı yönlendiriciye bağlıdır. Yönlendirici, internet bağlantısı olmadan da kullanılabilir. Robotlardan birini ana makine olarak seçin ve Ana düğüm yöneticisini çalıştırın. Diğer robotlar köle olarak atanır ve ana düğüm yöneticisini ana makineden çalıştırır.
Hangi seçeneğin seçileceğine karar vermek projenizin gereksinimlerine bağlıdır. İletişim kurması gereken robot sayısı çok fazla değilse, maliyet tasarrufu sağladığı ve kurulumu kolay olduğu için Seçenek 1 önerilir. Robot sayısı çok fazla olduğunda Seçenek 2 önerilir. ROS ana kontrolünün hesaplama gücündeki kısıtlama ve sınırlı yerleşik wifi bant genişliği kolayca gecikmelere ve ağ kesintilerine neden olabilir. Bir yönlendirici bu sorunları kolayca çözebilir. Çoklu aracı iletişimi gerçekleştirirken, sanal makine bir ROS kölesi olarak kullanılıyorsa, ağ modunun köprü moduna ayarlanması gerektiğini lütfen unutmayın.

Master/Slave ortam değişkenlerini yapılandırın

Tüm ROS ana bilgisayarları aynı ağda olduğunda, çoklu aracı iletişimi için ortam değişkenlerinin ayarlanması gerekir. Bu ortam değişkeni ana dizindeki .bashrc dosyasında yapılandırılır. Başlatmak için gedit ~/.bashrc komutunu çalıştırın. Çoklu aracı iletişimindeki hem ana bilgisayarın hem de köle bilgisayarın .bashrc dosyalarının yapılandırılması gerektiğini lütfen unutmayın. Değiştirilmesi gereken şey, dosyanın sonundaki IP adresleridir. Şekil 2-1-4'te gösterildiği gibi, iki satır ROS_MASTER_URI ve ROS_HOSTNAME'dir. ROS ana bilgisayarının ROS_MASTER_URI ve ROS_HOSTNAME'i yerel IP'lerdir. ROS köle .bashrc dosyasındaki ROS_MASTER_URI, ana bilgisayarın IP adresine değiştirilmeli, ROS_HOSTNAME ise yerel IP adresi olarak kalmalıdır.ROBOWORKS-Robofleet-ÇOKLU-AJAN-ALGORİTMALARI-ŞEKİL- (2)

ROS çoklu makine iletişimi ROS yayın sürümü tarafından kısıtlanmamıştır. Çoklu makine iletişimi sürecinde, aşağıdakilerin farkında olunmalıdır:

  1. ROS slave programının çalışması, ROS master cihazının ROS master programına bağlıdır. ROS master programı, slave cihazı üzerinde slave programını çalıştırmadan önce, öncelikle master cihazda başlatılmalıdır.
  2. Çoklu makine iletişiminde ana ve yardımcı makinelerin IP adreslerinin aynı ağda olması gerekir. Bu, IP adresinin ve alt ağ maskesinin aynı ağ altında olduğu anlamına gelir.
  3. Ortam yapılandırma dosyası .bashrc'deki ROS_HOSTNAME'in localhost kullanılması önerilmez. Belirli bir IP adresi kullanılması önerilir.
  4. Köle IP adresinin doğru şekilde ayarlanmaması durumunda, köle cihaz ROS ana cihazına erişebilir ancak kontrol bilgilerini giremez.
  5. Sanal makine çoklu aracı iletişimine katılıyorsa, ağ modunun köprü moduna ayarlanması gerekir. Ağ bağlantısı için Statik IP seçilemez.
  6. Çoklu makine iletişimi mümkün değildir view veya yerel olarak mevcut olmayan mesaj veri türündeki konulara abone olun.
  7. Robotlar arasındaki iletişimin başarılı olup olmadığını doğrulamak için Küçük Kaplumbağa simülasyon demosunu kullanabilirsiniz:
    • a. Ustadan kaçmak
      • #ROS hizmetlerini yeniden puanla
      • rostrum kaplumbağaları turtlesim_node #turpkaplumbağalar arayüzünü başlat
    • b. Köleden kaçmak
      • kaplumbağaları tekrar çalıştır turtle_teleop_key #turtles için klavye kontrol düğümünü başlat

Kaplumbağa hareketlerini köle üzerindeki klavyeden yönetebiliyorsanız, usta/bağımlı iletişim başarıyla kurulmuş demektir.

ROS'ta Otomatik Wifi bağlantısı

Aşağıdaki prosedürler, robotun ana bilgisayar ağına veya yönlendirici ağına otomatik olarak bağlanacak şekilde nasıl yapılandırılacağını açıklamaktadır.

Jetson Nano için Otomatik Wifi bağlantı kurulumu

  1. Jetson Nano'yu VNC uzaktan aracıyla veya doğrudan bilgisayar ekranına bağlayın. Sağ üst köşedeki wifi simgesine tıklayın ve ardından “Bağlantıları Düzenle..” öğesine tıklayın.ROBOWORKS-Robofleet-ÇOKLU-AJAN-ALGORİTMALARI-ŞEKİL- (3)
  2. Ağ Bağlantıları'ndaki + düğmesine tıklayın:ROBOWORKS-Robofleet-ÇOKLU-AJAN-ALGORİTMALARI-ŞEKİL- (4)
  3. “Bağlantı Türünü Seçin” penceresinde, açılır menüyü tıklayın ve “Oluştur…” düğmesine tıklayın:ROBOWORKS-Robofleet-ÇOKLU-AJAN-ALGORİTMALARI-ŞEKİL- (5)
  4. Denetim Masası'nda, Wifi seçeneğine tıklayın. Bağlanılacak Wifi adını "Bağlantı Adı" ve SSID alanlarına girin. "Mod" açılır menüsünden "İstemci"yi seçin ve "Aygıt" açılır menüsünden "wlan0"ı seçin.ROBOWORKS-Robofleet-ÇOKLU-AJAN-ALGORİTMALARI-ŞEKİL- (6)
  5. Denetim Masası'nda, "Genel" seçeneğine tıklayın ve "Bu ağa otomatik olarak bağlan..." seçeneğini işaretleyin. "Otomatik etkinleştirme için bağlantı önceliği" seçeneğinde bağlantı önceliğini 1 olarak ayarlayın. "Tüm kullanıcılar bu ağa bağlanabilir" seçeneğini işaretleyin. Diğer wi-fi için "Otomatik etkinleştirme için bağlantı önceliği" seçeneği 0 olarak ayarlandığında, bu geçmişte tercih edilen wi-fi ağı olduğu anlamına gelir.ROBOWORKS-Robofleet-ÇOKLU-AJAN-ALGORİTMALARI-ŞEKİL- (7)
  6. Denetim Masası'ndaki "Wi-Fi Güvenliği" seçeneğine tıklayın. "Güvenlik" alanında "WPA ve WPA2 Kişisel"i seçin. Ardından "Parola" alanına Wi-Fi parolasını girin.ROBOWORKS-Robofleet-ÇOKLU-AJAN-ALGORİTMALARI-ŞEKİL- (8)

Not: Robot, wifi önceliği 0 olarak ayarlandığında önyüklemeden sonra wifi ağına otomatik olarak bağlanamıyorsa, bunun nedeni zayıf bir wifi sinyali sorunu olabilir. Bu sorunu önlemek için, geçmişte bağlanmış olan tüm wifi seçeneklerini silmeyi seçebilirsiniz. Yalnızca ana bilgisayar veya yönlendirici tarafından oluşturulan wifi ağını tutun. Ağ ayarları denetim masasında “IPv4 Ayarları” seçeneğine tıklayın. “Yöntem” alanında “Manuel” seçeneğini seçin. Ardından “Ekle”ye tıklayın, “Adres” alanına slave makinenin IP adresini girin. “Ağ Maskesi” alanına “24”ü girin. “Ağ Geçidi” alanına IP ağ segmentini girin. IP ağ segmentinin son üç hanesini “1” olarak değiştirin. Bu adımın temel amacı IP adresini düzeltmektir. Bu işlem ilk defa yapıldıktan sonra aynı WİFİ’ye daha sonra bağlanıldığında IP adresi değişmeden kalacaktır.ROBOWORKS-Robofleet-ÇOKLU-AJAN-ALGORİTMALARI-ŞEKİL- (9)

Tüm ayarlar yapılandırıldıktan sonra, ayarları kaydetmek için "kaydet"e tıklayın. Kaydetme başarılı olduktan sonra, robot açıldığında otomatik olarak ana bilgisayarın veya yönlendiricinin ağına bağlanacaktır.

Not:

  1. Burada ayarlanan IP adresinin, Bölüm 2.1'deki .bashrc dosyasında ayarlanan IP adresiyle aynı olması gerekir.
  2. Master ve her slave'in IP adresi benzersiz olmalıdır.
  3. Master ve slave IP adreslerinin aynı ağ segmentinde olması gerekir.
  4. Bağımlı robotun açılıp otomatik olarak WiFi ağına bağlanabilmesi için ana bilgisayar veya yönlendiricinin WiFi sinyali göndermesini beklemelisiniz.
  5. Ayarlar yapılandırıldıktan sonra, robot açıldığında WiFi'ye otomatik olarak bağlanamıyorsa, lütfen ağ kartını takıp çıkarın ve tekrar bağlanmayı deneyin.

Raspberry Pi için Otomatik Wifi bağlantı kurulumu

Raspberry Pi için prosedür Jetson Nano ile aynıdır.

Jetson TX1 için Otomatik Wifi bağlantı kurulumu

Jetson TX1'deki kurulum Jetson Nano'dakiyle hemen hemen aynıdır, tek fark Jetson TX1'in ağ ayarları kontrol panelindeki "Aygıt" kısmında "wlan1" aygıtını seçmesi gerektiğidir.ROBOWORKS-Robofleet-ÇOKLU-AJAN-ALGORİTMALARI-ŞEKİL- (10)

ÇOKLU AJAN SENKRONİZASYON KURULUMU

Çoklu ajan oluşturma projesinde, çoklu ajan zaman senkronizasyonu ayarı kritik bir adımdır. Oluşturma sürecinde, her robotun asenkron sistem zamanı nedeniyle birçok sorun ortaya çıkacaktır. Çoklu ajan zaman senkronizasyonu, hem ana hem de köle robotların ağa bağlı olduğu durum ve her ikisinin de ağdan bağlantısı kesildiği durum olmak üzere iki duruma ayrılır.

Başarılı ana/köle ağ bağlantısı

Çoklu aracı iletişimi yapılandırıldıktan sonra, ana ve yardımcı makineler ağa başarıyla bağlanabilirse, ağ saatini otomatik olarak senkronize ederler. Bu durumda, zaman senkronizasyonunu sağlamak için başka bir işlem gerekmez.

Ağ bağlantı kesintilerinin giderilmesi

Çoklu ajan iletişimi yapılandırıldıktan sonra, ana ve bağımlı aygıtlar ağa başarıyla bağlanamıyorsa, zamanı manuel olarak senkronize etmek gerekir. Zaman ayarını tamamlamak için date komutunu kullanacağız.

İlk önce sonlandırıcı aracını yükleyin. Sonlandırıcı aracından, ana ve bağımlı makinenin kontrol terminallerini aynı terminal penceresine yerleştirmek için pencere bölme aracını kullanın (bölünmüş bir pencere ayarlamak için sağ tıklayın ve ana ve bağımlı makinelerde farklı pencerelerde ssh ile oturum açın) .

  • sudo apt-get install terminator # Terminal penceresini bölmek için terminator'ı indirin

Sol üstteki butona tıklayın, [Herkese yayınla]/[Herkese yayınla] seçeneğini seçin ve aşağıdaki komutu girin. Ardından sonlandırıcı aracını kullanarak ana ve yardımcı için aynı zamanı ayarlayın.ROBOWORKS-Robofleet-ÇOKLU-AJAN-ALGORİTMALARI-ŞEKİL- (11)

  • sudo date -s “2022-01-30 15:15:00” # Manuel zaman ayarı

ÇOK AJANLI ROS PAKETİ

ROS Paket Tanıtımı

Köle adını ayarlayın

wheeltec_multi fonksiyon paketinde, hatalardan kaçınmak için her bir köle robot için benzersiz bir ad belirlemek gerekir. Örneğinample, slave1 için No. 1 ve slave2 için No. 2, vb. Farklı isimler belirlemenin amacı, çalışan düğümleri gruplamak ve bunları farklı ad alanlarına göre ayırt etmektir. ÖrneğinampÖrneğin, slave 1'in radar konusu is/slave1/scan ve slave 1'in LiDAR düğümü is/slave1/laser.

Köle koordinatlarını ayarlayın

wheeltec_multi paketi özel formasyonlar uygulayabilir. Farklı formasyonlar gerektiğinde, sadece slave robotların istenen koordinatlarını değiştirin. Slave_x ve slave_y, master'ın orijinal referans noktası olduğu slave'in x ve y koordinatlarıdır. Master'ın önü x koordinatının pozitif yönüdür ve sol tarafı y koordinatının pozitif yönüdür. Ayarlama tamamlandıktan sonra, slave'in beklenen koordinatı olarak bir TF koordinatı slave1 verilecektir. Bir master ve iki slave varsa, aşağıdaki formasyon ayarlanabilir:

  1. Yatay oluşum: Soldaki kölenin koordinatlarını slave_x:0, slave_y: 0.8, sağdaki kölenin koordinatlarını ise slave_x:0, slave_y:-0.8 olarak ayarlayabilirsiniz.
  2. Sütun oluşumu: Bir kölenin koordinatları şu şekilde ayarlanabilir: slave_x:-0.8, slave_y:0 ​​ve diğer kölenin koordinatları şu şekilde ayarlanabilir: slave_x:-1.8, slave_y:0.
  3. Üçgen oluşumu: Bir kölenin koordinatları şu şekilde ayarlanabilir: slave_x:-0.8, slave_y: 0.8 ve diğer kölenin koordinatları şu şekilde ayarlanabilir: slave_x:-0.8, slave_y:-0.8.

Diğer oluşumlar ihtiyaca göre özelleştirilebilir.

Not:

  • İki robot arasındaki önerilen mesafe 0.8 olarak ayarlanmıştır ve 0.6'dan düşük olmaması önerilir. Köleler ile ana robot arasındaki mesafenin 2.0'ın altına ayarlanması önerilir. Ana robottan ne kadar uzaksa, ana robot dönerken kölenin doğrusal hızı o kadar büyük olur. Maksimum hızın sınırlandırılması nedeniyle, kölenin hızı gereksinimleri karşılamazsa sapacaktır. Robot formasyonu kaotik hale gelecektir.

Köle pozisyonunun başlatılması

  1. Kölenin başlangıç ​​konumu varsayılan olarak beklenen koordinatlardadır. Programı çalıştırmadan önce, başlatmayı tamamlamak için köle robotu beklenen koordinatlarına yakın bir yere yerleştirin. Bu işlev, Şekil 4-1-3'te gösterildiği gibi wheeltec_multi paketindeki turn_on_wheeltec_robot.launch adlı dosyadaki pose_setter düğümü tarafından uygulanır.ROBOWORKS-Robofleet-ÇOKLU-AJAN-ALGORİTMALARI-ŞEKİL- (12)

Kullanıcı slave'in başlangıç ​​pozisyonunu özelleştirmek isterse, wheeltec_slave.launch'ta Şekil 4-1-4'te gösterildiği gibi yalnızca slave_x ve slave_y değerlerini ayarlaması gerekir. Slave_x ve slave_y değerleri turn_on_wheeltec_robot.launch'a geçirilecek ve pose_setter düğümüne atanacaktır. Programı çalıştırmadan önce robotu yalnızca özel bir pozisyona yerleştirin.ROBOWORKS-Robofleet-ÇOKLU-AJAN-ALGORİTMALARI-ŞEKİL- (13)

Pozisyon Yapılandırması

Çoklu ajan oluşumunda, çözülmesi gereken ilk sorun ana ve kölenin konumlandırılmasıdır. Ana önce 2B harita oluşturacaktır. Haritayı oluşturup kaydettikten sonra, 2B navigasyon paketini çalıştırın ve ana konumlandırmayı yapılandırmak için 2B navigasyon paketindeki uyarlanabilir Monte Carlo konumlandırma algoritmasını (amcl konumlandırma) kullanın. Ana ve köleler aynı ağda olduğundan ve aynı düğüm yöneticisini paylaştığından, ana haritayı 2B navigasyon paketinden başlatmıştır, tüm köleler aynı düğüm yöneticisi altında aynı haritayı kullanabilir. Bu nedenle, kölenin bir harita oluşturmasına gerek yoktur. wheeltec_slave.launch'ta, Monte Carlo konumlandırmayı (amcl konumlandırma) çalıştırın, köleler ana tarafından oluşturulan haritayı kullanarak konumlarını yapılandırabilirler.ROBOWORKS-Robofleet-ÇOKLU-AJAN-ALGORİTMALARI-ŞEKİL- (14)

Formasyon nasıl oluşturulur ve formasyon nasıl korunur

Formasyon hareketi sürecinde, ana hareket Rviz, klavye, uzaktan kumanda ve diğer yöntemlerle kontrol edilebilir. Köle, hareketini kontrol etmek ve formasyonun amacına ulaşmak için hızını slave_tf_listener düğümü aracılığıyla hesaplar. Slave_tf_listener düğümü, düğüm hesaplamasıyla aşırı hızdan kaçınmak için köle hızını sınırlar ve bu da bir dizi etkiye neden olur. Belirli değer wheeltec_slave.launch'ta değiştirilebilir.ROBOWORKS-Robofleet-ÇOKLU-AJAN-ALGORİTMALARI-ŞEKİL- (15)

Oluşum algoritmasının ilgili parametreleri şu şekildedir: ROBOWORKS-Robofleet-ÇOKLU-AJAN-ALGORİTMALARI-ŞEKİL- (16)

Engellerden kaçınma bilgisi

Çoklu ajan oluşumunda, ana engel kaçınmayı tamamlamak için move_base düğümünü kullanabilir. Ancak, kölenin başlatılması move_base düğümünü kullanmaz. Bu noktada, köle programında multi_avoidance düğümünün çağrılması gerekir. Engel kaçınma düğümü pakette varsayılan olarak etkindir. Gerekirse, engel kaçınma düğümünü devre dışı bırakmak için kaçınma "false" olarak ayarlanabilir. ROBOWORKS-Robofleet-ÇOKLU-AJAN-ALGORİTMALARI-ŞEKİL- (17)

Engel kaçınma düğümünün bazı ilgili parametreleri aşağıdaki şekilde gösterilmiştir, burada safe_distance engelin güvenli mesafe sınırı ve danger_distance engelin tehlikeli mesafe sınırıdır. Engel güvenli mesafe ve tehlike mesafesi içinde olduğunda, slave engeli önlemek için konumunu ayarlar. Engel tehlike içinde olduğunda, slave engelden uzaklaşır.ROBOWORKS-Robofleet-ÇOKLU-AJAN-ALGORİTMALARI-ŞEKİL- (18)

İşlem Prosedürü

Yürütme komutunu girin

Çoklu ajan oluşumuna başlamadan önceki hazırlıklar:

  • Ana ve yardımcı aynı ağa bağlanır ve çoklu aracı iletişimini doğru şekilde kurar
  • Usta önceden 2 boyutlu bir harita oluşturur ve onu kaydeder
  • Ana birim haritanın başlangıç ​​noktasına yerleştirilir ve köle, başlatma pozisyonunun (varsayılan köle oluşum pozisyonu) yakınına yerleştirilir
  • Jetson Nano/Raspberry Pi'ye uzaktan giriş yaptıktan sonra zaman senkronizasyonunu gerçekleştirin.

sudo tarihi -s “2022-04-01 15:15:00”

  • Adım 1: Master'dan 2 boyutlu bir harita açın.

roslaunch turn_on_wheeltec_robot navigasyon.launch

  • Adım 2: Formasyon programını tüm slave'lerden çalıştır.

roslaunch wheeltec_multi wheeltec_slave.launch

  • Adım 3: Master'dan klavye kontrol düğümünü açın veya joystick'i kullanarak master hareketini uzaktan kontrol edin.

wheeltec_robot_rc keyboard_teleop.launch'ı yeniden başlatın

  • Adım 4: (Opsiyonel) Robotun hareketlerini Rviz'den izleyin.

rviz

Not: 

  1. Programı çalıştırmadan önce zaman senkronizasyon işlemini tamamladığınızdan emin olun.
  2. Çoklu ajan oluşumunun ana aracını kontrol ederken, açısal hız çok hızlı olmamalıdır. Önerilen doğrusal hız 0.2 m/s'dir, açısal hız derecesi 0.3 rad/s'nin altındadır. Ana araç dönüş yaparken, köle ana araçtan ne kadar uzaksa, o kadar fazla doğrusal hız gerekir. Paketteki doğrusal hız ve açısal hızdaki sınır nedeniyle, köle araç gerekli hıza ulaşamadığında, oluşum kaotik olacaktır. Genel olarak, aşırı doğrusal hız robota kolayca zarar verebilir.
  3. Köle sayısı birden fazla olduğunda, ROS ana bilgisayarının sınırlı yerleşik wifi bant genişliği nedeniyle, çoklu ajan iletişiminin önemli gecikmelere ve bağlantısının kesilmesine neden olmak kolaydır. Bir yönlendirici kullanmak bu sorunu iyi bir şekilde çözebilir.
  4. Çoklu robot oluşumunun (2 köle) TF ağacı şudur: rqt_tf_tree
  5. Çoklu robot oluşumunun (2 köle) düğüm ilişkisi diyagramı şudur: rqt_graph

Belgeler / Kaynaklar

ROBOWORKS Robofleet ÇOKLU AJAN ALGORİTMALARI [pdf] Kullanıcı Kılavuzu
Robofleet Çoklu Ajan Algoritmaları, Robofleet, Çoklu Ajan Algoritmaları, Ajan Algoritmaları, Algoritmalar

Referanslar

Yorum bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar işaretlenmiştir *