Giriş: Bu makale, bazı robotik algoritmalar (özellikle otomatik gezinme algoritmaları) için Python kodlarının bir koleksiyonudur.
Başlıca özellikleri aşağıdaki gibidir:
Umarım bu makaleyi okumanız size yardımcı olur.
Ön sıra dostça hatırlatma, makale daha uzun, topladıktan sonra okumanız tavsiye edilir.
Bu makale resmi CSDN hesabından (ID: CSDNnews) aktarılmaya yetkilidir, çevirmen: Meniscus
00 dizini
Çevresel Gereklilikler
nasıl kullanılır
Yerelleştirme
Haritalama
SLAM
güzergah planı
Yol takibi
proje desteği
01 Çevre gereksinimleri
02 Nasıl kullanılır
03 yerelleştirme
1. Genişletilmiş Kalman filtresi yerelleştirmesi
Algoritma, sensör hibrit lokalizasyonu elde etmek için Genişletilmiş Kalman Filtresi (EKF) kullanır.
Mavi çizgi gerçek yoldur, siyah çizgi ölü hesaplama yörüngesidir, yeşil nokta konum gözlemidir (GPS gibi) ve kırmızı çizgi EKF tarafından tahmin edilen yoldur.
Kırmızı elips, EKF tarafından tahmin edilen kovaryanstır.
İlgili Okuma:
Olasılıksal Robotik
2. Kayıpsız Kalman filtre yerelleştirmesi
Algoritma, sensörlerin hibrit lokalizasyonunu elde etmek için Kokusuz Kalman Filtresini (UKF) kullanır.
Çizgilerin ve noktaların anlamları EKF simülasyon örneği ile aynıdır.
İlgili Okuma:
Kayıtsız eğitimli kayıpsız Kalman filtresi kullanılarak robot hareketinin yerelleştirilmesi
https://www.researchgate.net/publication/267963417_Discriminately_Trained_Unscented_Kalman_Filter_for_Mobile_Robot_Localization
3. Partikül filtresi lokalizasyonu
Algoritma, sensör hibrit lokalizasyonunu elde etmek için partikül filtreleri (Particle Filter, PF) kullanır.
Mavi çizgi gerçek yoldur, siyah çizgi ölü hesaplama yörüngesidir, yeşil nokta konum gözlemidir (GPS gibi) ve kırmızı çizgi PF tarafından tahmin edilen yoldur.
Algoritma, robotun yer işaretine (RFID) olan mesafeyi ölçebileceğini varsayar.
PF lokalizasyonu bu ölçüm sonucunu kullanacaktır.
İlgili Okuma:
Olasılıksal Robotik
4. Histogram filtreleme yerelleştirmesi
Bu algoritma, histogram filtresi (Histogram filtresi) kullanan iki boyutlu yerelleştirme örneğidir.
Kırmızı çarpı, gerçek konumdur ve siyah nokta, RFID'nin konumudur.
Mavi ızgara, histogram filtresinin olasılık konumudur.
Bu simülasyonda, x ve y bilinmemektedir ve sapma bilinmektedir.
Filtre, yerelleştirme için RFID'den elde edilen hız girişi ve mesafe gözlem verilerini birleştirir.
Başlangıç pozisyonu gerekli değildir.
İlgili Okuma:
Olasılıksal Robotik
04 haritalama
1. Gauss ızgara eşleme
Bu algoritma, iki boyutlu Gauss ızgara haritalamasının bir örneğidir.
2. Ray döküm ızgara haritalama
Bu algoritma, iki boyutlu ışın döküm ızgara haritasına bir örnektir.
3. k-nesne kümeleme anlamına gelir
Bu algoritma, k-ortalamalı algoritmanın kullanıldığı iki boyutlu nesne kümelemesinin bir örneğidir.
4. Dairesel uyan nesne şekli tanıma
Bu algoritma, daire uydurma kullanan bir nesne şekli tanıma örneğidir.
Mavi daire, gerçek nesne şeklidir.
Kırmızı çarpı, mesafe sensörünün gözlemlediği noktadır.
Kırmızı daire, dairesel uydurma kullanan tahmini nesne şeklidir.
05 SLAM
Eşzamanlı Yerelleştirme ve Haritalama (SLAM) örneği.
1. Yinelemeli en yakın nokta eşleştirme
Bu algoritma, iki boyutlu yinelemeli en yakın nokta (ICP) eşleşmesi için tek değerli yapısızlaştırma kullanımına bir örnektir.
Dönme matrisini ve öteleme matrisini bazı noktalardan diğer noktalara hesaplayabilir.
İlgili Okuma:
Robot Hareketine Giriş: Yinelemeli En Yakın Nokta Algoritması
https://cs.gmu.edu/~kosecka/cs685/cs685-icp.pdf
2. EKF SLAM
Bu, genişletilmiş Kalman filtrelemesine dayalı bir SLAM örneğidir.
Mavi çizgi doğru yoldur, siyah çizgi tahmini navigasyon yoludur ve kırmızı çizgi EKF SLAM tarafından tahmin edilen yoldur.
Yeşil haç tahmini bir dönüm noktasıdır.
İlgili Okuma:
Olasılıksal Robotik
3. FastSLAM 1.0
Bu, FastSLAM 1.0 ile özellik tabanlı bir SLAM örneğidir.
Mavi çizgi gerçek yoldur, siyah çizgi gezinme tahminidir ve kırmızı çizgi, FastSLAM'ın tahmini yoludur.
Kırmızı noktalar, FastSLAM'daki parçacıklardır.
Siyah noktalar yer işaretleridir ve mavi çarpı, FastLSAM tarafından tahmin edilen yer işaretinin konumudur.
İlgili Okuma:
Olasılıksal Robotik
4. FastSLAM 2.0
Bu, FastSLAM 2.0 ile özellik tabanlı bir SLAM örneğidir.
Animasyonun anlamı FastSLAM 1.0 ile aynıdır.
İlgili Okuma:
Olasılıksal Robotik
Tim Bailey'nin SLAM simülasyonu
5. Grafik tabanlı SLAM
Bu, grafik tabanlı SLAM örneğidir.
Mavi çizgi gerçek yoldur.
Siyah çizgi, gezinme tahmin yoludur.
Kırmızı çizgi, grafiğe dayalı olarak SLAM tarafından tahmin edilen yoldur.
Siyah yıldızlar, grafiğin kenarlarını oluşturmak için kullanılan yer işaretleridir.
İlgili Okuma:
Grafik tabanlı SLAM ile başlarken
06 Yol planlama
1. Dinamik pencere modu
Bu, Dinamik Pencere Yaklaşımı (Dinamik Pencere Yaklaşımı) kullanılarak iki boyutlu gezinme için örnek bir koddur.
İlgili Okuma:
Dinamik pencerelerle çarpışmalardan kaçının
https://www.ri.cmu.edu/pub_files/pub1/fox_dieter_1997_1/fox_dieter_1997_1.pdf
2. Kılavuz tabanlı arama
2.1 Dijkstra algoritması
Bu, Dijkstra algoritmasını kullanan iki boyutlu bir ızgaraya dayalı en kısa yol planlamasıdır.
Animasyondaki mavi noktalar, aranan düğümlerdir.
2.2 A * algoritması
Aşağıdaki, A yıldız algoritmasını kullanan iki boyutlu ızgaraya dayalı en kısa yol planlamasıdır.
Animasyondaki mavi noktalar, aranan düğümlerdir.
Sezgisel algoritma, iki boyutlu Öklid mesafesidir.
2.3 Potansiyel alan algoritması
Aşağıda, potansiyel alan algoritmasını kullanan iki boyutlu ızgaraya dayalı yol planlaması verilmiştir.
Animasyondaki mavi sıcak bölge haritası, her bir ızgaranın potansiyel enerjisini gösterir.
İlgili Okuma:
Robot hareket planlaması: potansiyel enerji işlevi
https://www.cs.cmu.edu/~motionplanning/lecture/Chap4-Potential-Field_howie.pdf
3. Model tahmin yolu oluşturma
Aşağıda, model öngörülen yol tarafından oluşturulan bir yol optimizasyonu örneği verilmiştir.
Durum kafes planlamasında algoritmalar kullanılır.
3.1 Yol optimizasyonu örneği
3.2 Arama tablosu oluşturma örneği
İlgili Okuma:
Tekerlekli robotlar için optimum engebeli arazi yolu oluşturma
4. Durum kafes planlaması
Bu komut dosyası, yol planlamasını uygulamak için durum kafes planlamasını kullanır.
Bu kod, sınır problemini çözmek için model tahmin yolu oluşturmayı kullanır.
İlgili Okuma:
Tekerlekli robotlar için optimum engebeli arazi yolu oluşturma
Karmaşık ortamlarda yüksek performanslı mobil robot navigasyonu için uygun hareketin durum alanı örneklemesi
4.1 Düzgün kutupsal örnekleme
4.2 Önyargılı polar örnekleme
4.3 Şerit örnekleme
5. Rastgele yol haritası (PRM) planlaması
Olasılıklı Yol Haritası (PRM) planlama algoritması, grafik aramada Dijkstra'nın yöntemini kullanır.
Animasyondaki mavi noktalar örnekleme noktalarıdır.
Camgöbeği çarpı Dijkstra yöntemi ile aranan noktadır.
Kırmızı çizgi PRM'nin son yoludur.
İlgili Okuma:
Rastgele yol grafiği
https://en.wikipedia.org/wiki/Probabilistic_roadmap
6. Voronoi yol haritası planlaması
Bu Voronoi yol haritası (Olasılıklı Yol Haritası, PRM) planlama algoritması, harita araması için Dijkstra yöntemini kullanır.
Animasyondaki mavi nokta Voronoi noktasıdır.
Camgöbeği çarpı Dijkstra yöntemi ile aranan noktadır.
Kırmızı çizgi, Voronoi yol diyagramının son yoludur.
İlgili Okuma:
Robot hareket planlaması
https://www.cs.cmu.edu/~motionplanning/lecture/Chap5-RoadMap-Methods_howie.pdf
7. Hızlı Arama Rastgele Ağaç (RRT)
7.1 Temel RRT
Bu, Rapidly-Exploring Random Trees (RRT) kullanan basit bir yol planlama kodudur.
Siyah daire engeldir, yeşil çizgi arama ağacıdır ve kırmızı çarpı da başlangıç konumu ve hedef konumdur.
7.2 RRT *
Bu, RRT * kullanan yol planlama kodudur.
Siyah daire engeldir, yeşil çizgi arama ağacıdır ve kırmızı çarpı da başlangıç konumu ve hedef konumdur.
İlgili Okuma:
Optimum hareket planlaması için artımlı örneklemeye dayalı algoritma
https://arxiv.org/abs/1005.0416
Optimum hareket planlaması için örneklemeye dayalı algoritma
7.3 Dubins yoluna dayalı RRT
RRT kullanan bir yol planlama algoritması ve araba şeklindeki robotlar için yol planlamayı dubins.
7.4 Dubins yoluna dayalı RRT *
RRT * kullanan bir yol planlama algoritması ve araba şeklindeki robotlar için yol planlamasını gerçekleştirir.
7.5 RRT * sazlık-shepp yoluna göre
RRT * kullanan bir yol planlama algoritması ve araba şeklindeki robotlar için yol planlaması.
7.6 Bilgilendirilmiş RRT *
Bu, Bilgilendirilmiş RRT * kullanan yol planlama kodudur.
Camgöbeği elips, Informed RRT * 'nin esinlenen örnekleme alanıdır.
İlgili Okuma:
Bilgilendirilmiş RRT *: Kabul edilebilir elipsoidlerden esinlenen doğrudan örnekleme yoluyla optimum örneklemeye dayalı yol planlamasını gerçekleştirin
https://arxiv.org/pdf/1404.2334.pdf
7.7 Toplu Bilgilendirilmiş RRT *
Bu, toplu Bilgilendirilmiş RRT * kullanan yol planlama kodudur.
İlgili Okuma:
Toplu Bilgilendirilmiş Ağaç (BIT *): Örtülü rastgele geometrik şekillerin sezgisel araması yoluyla örneklemeye dayalı optimum planlama elde edin
https://arxiv.org/abs/1405.5848
7.8 Kapalı döngü RRT *
Araç modeline göre yol planlamasını gerçekleştirmek için kapalı döngü RRT * (Kapalı döngü RRT *) kullanın.
Bu kodda, direksiyon kontrolü saf takip algoritması kullanır.
PID, hız kontrolü için kullanılır.
İlgili Okuma:
Karmaşık ortamlarda hareket planlaması elde etmek için kapalı döngü tahminini kullanın
Otonom şehir sürüşüne uygulanan gerçek zamanlı hareket planlama
Kapalı döngü tahminini kullanarak optimum hareket planlaması için örneklemeye dayalı algoritma
https://arxiv.org/abs/1601.06326
7.9 LQR-RRT *
Bu, LQR-RRT * kullanan bir yol planlama simülasyonudur.
LQR yerel planlaması, çift katlı bir hareket modeli kullanır.
İlgili Okuma:
LQR-RRT *: Optimum örneklemeye dayalı hareket planlaması elde etmek için otomatik türetme genişletme buluşsal yöntemini kullanın
MahanFathi / LQR-RRTstar: Basit bir sarkaç aşamasında rastgele hareket planlaması için LQR-RRT * yöntemi
https://github.com/MahanFathi/LQR-RRTstar
8. Kübik Spline Planlama
Bu, üç boyutlu bir yol planlaması için örnek bir koddur.
Bu kod, x-y yol noktalarına göre sürekli eğriliğe sahip bir yol oluşturmak için kübik eğriler kullanır.
Her noktanın işaret açısı analitik olarak da hesaplanabilir.
9. B-spline planlaması
Bu, B-spline eğrilerinin kullanıldığı bir planlama örneğidir.
Yol noktasını girin ve yumuşak bir yol oluşturmak için B-spline'ı kullanacaktır.
İlk ve son ara noktalar son yoldadır.
İlgili Okuma:
B-spline
https://en.wikipedia.org/wiki/B-spline
10. Eta ^ 3 spline yol planlaması
Bu, Eta ^ 3 spline eğrisi kullanan bir yol planlamasıdır.
İlgili Okuma:
\ eta ^ 3-Tekerlekli Mobil Robotların Düzgün Yol Üretimi için Spline'lar
https://ieeexplore.ieee.org/document/4339545/
11. Bezier Yol Planlama
Bézier yol planlaması için örnek kod.
Bézier yolu, dört kontrol noktasına göre oluşturulur.
Başlangıç ve bitiş noktaları arasındaki ofset mesafesini değiştirerek farklı Bezier yolları oluşturulabilir:
İlgili Okuma:
Bézier eğrisine göre otonom araçlar için sürekli bir eğrilik yolu oluşturun
12. Beşinci derece polinom programlama
Yol planlaması için beşinci derece polinomları kullanın.
Beşinci derece polinomu temel alarak iki boyutlu yolu, hızı ve ivmeyi hesaplayabilir.
İlgili Okuma:
Agv In konumlandırma için yerel yol planlama ve hareket kontrolü
13. Dubins yol planlaması
Dubins yol planlaması için örnek kod.
İlgili Okuma:
Dubins yolu
https://en.wikipedia.org/wiki/Dubins_path
14. Reeds Shepp Yol Planlaması
Reeds Shepp yol planlaması için örnek kod.
İlgili Okuma:
15.3.2 Reeds-Shepp eğrisi
İleri ve geri hareket edebilen otomobiller için en uygun yol
https://pdfs.semanticscholar.org/932e/c495b1d0018fd59dee12a0bf74434fac7af4.pdf
ghliu / pyReedsShepp: Reeds Shepp eğrisinin farkına varın
https://github.com/ghliu/pyReedsShepp
15. LQR'ye dayalı yol planlama
Çift katlı model için LQR tabanlı yol planlamasının örnek kodunu kullanın.
16. Frenet Frame'de optimum yol
Bu kod, Frenet Frame'de en uygun yolu oluşturur.
Camgöbeği çizgi hedef yoldur ve siyah çarpı engeldir.
Kırmızı çizgi tahmin edilen yoldur.
İlgili Okuma:
Sahnede optimum yol üretimi için Frenet Frame'de dinamik bağlantı
https://www.researchgate.net/profile/Moritz_Werling/publication/224156269_Optimal_Trajectory_Generation_for_Dynamic_Street_Scenarios_in_a_Frenet_Frame/links/54f749df0cf210398e9277af.pdf
Sahnede optimum yol üretimi için Frenet Frame'de dinamik bağlantı
https://www.youtube.com/watch?v=Cj6tAQe7UCY
07 Yol izleme
1. Duruş kontrolü takibi
Bu, duruş kontrol takibinin bir simülasyonudur.
İlgili Okuma:
MATLAB® İkinci, Tamamen Revize Edilmiş, Genişletilmiş ve Güncellenmiş Baskıda Robotik, Görme ve Kontrol-Temel Algoritmalar | Peter Corke | Springer
https://www.springer.com/us/book/9783319544120
2. Saf parça takibi
Saf takip direksiyon kontrolü ve PID hız kontrolü kullanan yol izleme simülasyonu.
Kırmızı çizgi hedef rotadır, yeşil çarpı saf izleme kontrolü için hedef noktadır ve mavi çizgi ise izleme rotasıdır.
İlgili Okuma:
Şehirlerde otonom araçların hareket planlama ve kontrol teknolojisinin araştırılması
https://arxiv.org/abs/1604.07446
3. Stanley Kontrolü
Stanley direksiyon kontrolü ve PID hız kontrolünü kullanarak simülasyonu takip eden yol.
İlgili Okuma:
STANLEY: DARPA Grand Prix'sini kazanan robot
Otomatik sürüş motorlu taşıt yolu takibi için otomatik direksiyon yöntemi
https://www.ri.cmu.edu/pub_files/2009/2/Automatic_Steering_Methods_for_Autonomous_Automobile_Path_Tracking.pdf
4. Arka tekerlek geribildirim kontrolü
Arka tekerlek geri beslemeli direksiyon kontrolü ve PID hız kontrolü kullanan yol izleme simülasyonu.
İlgili Okuma:
Şehirlerde otonom araçların hareket planlama ve kontrol teknolojisinin araştırılması
https://arxiv.org/abs/1604.07446
5. Doğrusal kuadratik regülatör (LQR) direksiyon kontrolü
LQR direksiyon kontrolü ve PID hız kontrolü kullanan yol izleme simülasyonu.
İlgili Okuma:
ApolloAuto / apollo: açık kaynak otonom sürüş platformu
https://github.com/ApolloAuto/apollo
6. Doğrusal kuadratik regülatör (LQR) direksiyon ve hız kontrolü
LQR direksiyon ve hız kontrolü kullanarak simülasyonu takip eden yol.
İlgili Okuma:
Tam Otonom Sürüş: Sistemler ve Algoritmalar-IEEE Konferansı Yayını
7. Model, hızı ve direksiyon kontrolünü tahmin eder
Yönlendirme ve hız kontrolünü tahmin etmek için yinelemeli doğrusal modeller kullanan simülasyonu takip eden yol.
Bu kod, en uygun modelleme aracı olarak cxvxpy kullanır.
İlgili Okuma:
Araç Dinamikleri ve Kontrolü | Rajesh Rajamani | Springer
MPC Kurs Malzemeleri-MPC Lab @ UC-Berkeley
08 proje desteği
Patreon aracılığıyla:
https://www.patreon.com/myenigma
Proje için mali destek sağlayın.
Projeyi Patreon'da destekliyorsanız, proje kodu hakkında e-posta teknik desteği alabilirsiniz.
Kaynak: Wukong Intelligent Technology
(Bu makale bir ağ alıntı veya yeniden basımdır, telif hakkı orijinal yazara veya yayın medyasına aittir. Çalışmanın telif hakkına dahilseniz, lütfen bizimle iletişime geçin.)