Bu, tarihteki en eksiksiz Python algoritmaları kümesi olabilir (önerilen koleksiyon)

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:

  • Pratikte yaygın olarak kullanılan bir algoritma seçin;
  • En az bağımlı
  • Okuması kolay, her algoritmanın temel fikrini anlamak kolay.

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

  • Genişletilmiş Kalman filtresi yerelleştirmesi
  • Kayıpsız Kalman filtre yerelleştirmesi
  • Partikül filtresi lokalizasyonu
  • Histogram filtreleme yerelleştirmesi

Haritalama

  • Gauss ızgara eşleme
  • Işın döküm ızgara haritalama
  • k-nesne kümeleme anlamına gelir
  • Dairesel uyan nesne şekli tanıma

SLAM

  • Yinelemeli en yakın nokta eşleştirme
  • EKF SLAM
  • FastSLAM 1.0
  • FastSLAM 2.0
  • Grafik tabanlı SLAM

güzergah planı

  • Dinamik pencere
  • Izgara tabanlı arama
  • Dijkstra algoritması
  • A * algoritması
  • Potansiyel alan algoritması
  • Model tahmin yolu oluşturma
  • Yol optimizasyonu örneği
  • Arama tablosu oluşturma örneği
  • Devlet kafes planlaması
  • Düzgün polar örnekleme
  • Önyargılı polar örnekleme
  • Şerit örnekleme
  • Rastgele Yol Haritası (PRM) planlaması
  • Voronoi yol haritası planlaması
  • Hızlı Arama Rastgele Ağaç (RRT)
  • Temel RRT
  • RRT *
  • Dubins yoluna dayalı RRT
  • Dubins yoluna dayalı RRT *
  • Sazlık-shepp yoluna dayalı RRT *
  • Bilgilendirilmiş RRT *
  • Toplu Bilgilendirilmiş RRT *
  • Kübik spline planlama
  • B-spline planlama
  • Bezier Yol Planlama
  • Beşli polinom programlama
  • Dubins yol planlaması
  • Reeds Shepp yol planlaması
  • LQR'ye dayalı yol planlama
  • Frenet Frame'de optimum yol

Yol takibi

  • Saf izleme
  • Stanley Kontrolü
  • Arka tekerlek geribildirim kontrolü
  • Doğrusal kuadratik regülatör (LQR) direksiyon kontrolü
  • Doğrusal kuadratik regülatör (LQR) direksiyon ve hız kontrolü

proje desteği

01 Çevre gereksinimleri

  • Python 3.6.x
  • dizi
  • scipy
  • matplotlib
  • pandalar
  • cvxpy 0.4.x

02 Nasıl kullanılır

  • Gerekli kitaplıkları kurun;
  • Bu kod deposunu klonlayın;
  • Her dizinde python komut dosyalarını çalıştırın;
  • İsterseniz, bu kod tabanını işaretleyin :)
  • 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.)

    On güzel Tang şiiri, kışın sevimli, nasıl sevemezsin
    önceki
    Lan Kwai Fong, Hong Kong'daki tek gece hayatı değil
    Sonraki
    Mobike: 180 gündür popüler değil ve önümüzdeki 1800 gün içinde de popüler olmayacak
    Pazarlama güç aktarımı, tüketicilere tamamen hakim, şirketiniz sosyal pazarlamayı öğrendi mi?
    Dünyanın en pahalı elektronik çipi TOP 5, bir ev satın alınabilir
    Dongfeng Fengshen'in yeni amiral gemisi AX7 tanıtıldı, Jaguar Land Rover servis yükseltmesi
    Renminbi'nin kılıçta üç büyük hareketi olabilir, dünya çapında 1.900'den fazla kurum ödeme para birimi olarak renminbi kullanıyor
    2018'deki büyük iniş çıkışlar, hahaha izledikten sonra kahkahalarla boğuldum ...
    İçerik Girişimciliği Derin su alanına giren çeşitli iş modelleri
    Sokakta çekiçle saldıran gangsterler! Öğrencilerin güvenliğini korumak için, iki sivil polisin kan akışı sadece kilometrelerce kovalamak değil
    Temmuz ayının yeni enerji araç satış listesinde, aslında listenin başında yer aldı
    Büyük Veri | Tsinghua Lisansüstü Öğrencisi Uyku Kalitesi Raporu: Gençler Bütün Gece Ayakta Kalmıyor
    "Wu Xiaobo'yu Her Hafta Görmek" Çinli ve Amerikalılar farklı yönlere yürüyor
    Hong Kong Yüksek Hızlı Tren biletleri bugün satışta! Bu 44 istasyon doğrudan Hong Kong'a ulaşacak Memleketiniz var mı?
    To Top