Uygun bir hedef pozisyon belirleme birçok durumda oldukça zor olabileceğinden, 2D doluluk ızgara haritalarına dayanan aşağıdaki yaklaşım dikkate alınmaya değer olabilir. Genel olarak "değer yinelemesi" olarak adlandırılır ve degrade iniş / çıkış ile birleştirildiğinde, basit ve oldukça verimli (uygulamaya bağlı olarak) yol planlama algoritması verir. Basitliği nedeniyle, mobil robotlarda, özellikle iç mekanlarda gezinen "basit robotlar" için iyi bilinmektedir. Yukarıda belirtildiği gibi, bu yaklaşım, açık bir şekilde bir hedef pozisyonu açıkça belirtmeden bir başlangıç konumundan uzakta bir yol bulmak için bir yol sağlar. Varsa isteğe bağlı olarak bir hedef konum belirtilebileceğini unutmayın. Ayrıca, yaklaşım / algoritma bir genişlik ilk arama oluşturur,
İkili durumda, 2B doluluk ızgara haritası, dolgulu ızgara hücreleri için bir tanedir ve başka bir yerde sıfırdır. Bu doluluk değerinin [0,1] aralığında da sürekli olabileceğine dikkat edin, aşağıdakine geri döneceğim. Belirli bir ızgara-hücresi değeri g i olan V (g i ) .
Temel Sürüm
- Bu ızgara hücresinin g 0 başlangıç konumunu içerdiğini varsayalım. V (g 0 ) = 0 olarak ayarlayın ve g 0'ı bir FIFO kuyruğuna koyun .
- Bir sonraki ızgara hücresi al g i sırasından.
- Tüm komşular için gr j ait g i :
- Eğer g j meşgul değilse ve daha önce ziyaret edilmediyse:
- V (g j ) = V (g i ) +1
- Mark g j ziyaret ettiği.
- FIFO kuyruğuna g j ekleyin .
- Belirli bir mesafe eşiğine henüz ulaşılmadıysa, (2) ile devam edin, aksi halde (5) ile devam edin.
- Yol, g 0 dan başlayarak en dik degrade tırmanışı izleyerek elde edilir .
4. Adımla ilgili notlar.
- Yukarıda verildiği gibi, adım (4.), yukarıda / açıklamada açıklık / kısalık nedenlerinden dolayı ihmal edilen kapsanan mesafenin izlenmesini gerektirir.
- Bir hedef pozisyon verilirse, hedef pozisyona ulaşır ulaşmaz yineleme durdurulur, yani 3. adımın bir parçası olarak işlenir / ziyaret edilir.
- Elbette, bütün grid haritasını basitçe işlemek, yani tüm (serbest) grid hücreleri işlenene / ziyaret edilene kadar devam etmek de mümkündür. Sınırlayıcı faktör, açıkça ızgara haritasının çözünürlüğü ile birlikte boyutudur.
Eklentiler ve Ek Yorumlar
V (g j ) = V (g i ) +1 güncelleme denklemi , aşağı veya aşağı ölçekleme V (g j ) ile her türlü ek sezgiselliği uygulamak için bol miktarda alan bırakırveya belirli yol seçeneklerinin değerini azaltmak için ilave bileşen. Çoğu olmasa da, bu tür değişiklikler, ilk, ikili ızgara haritasının bir ön-işlem aşamasını etkili bir şekilde oluşturan [0,1] 'den sürekli değerleri olan bir ızgara haritası kullanılarak güzel ve genel olarak dahil edilebilir. Örneğin, engel sınırları boyunca 1 ila 0 arasında bir geçiş eklemek, "aktör" ün tercihen engellerden uzak durmasına neden olur. Böyle bir ızgara haritası, örneğin ikili versiyondan bulanıklaştırma, ağırlıklandırılmış dilatasyon veya benzeri yöntemlerle üretilebilir. Tehditleri ve düşmanları büyük bulanıklaştırma yarıçapına sahip engeller olarak eklemek, bunlara yaklaşan yolları cezalandırır. Bir de şunun gibi genel harita üzerinde bir difüzyon işlemi kullanabilir:
V (g j ) = (1 / (N + 1)) × [V (g j ) + toplam (V (g i ))]]
burada " toplam ", tüm komşu ızgara hücrelerinin üzerindeki toplamı ifade eder. Örneğin, ikili bir harita oluşturmak yerine, başlangıç (tamsayı) değerleri, tehditlerin büyüklüğü ile orantılı olabilir ve "küçük" tehditler içeren engeller olabilir. Difüzyon işlemini uyguladıktan sonra ızgara değerleri [0,1] olarak ölçeklenmeli / ölçeklenmeli ve engeller, tehditler ve düşmanlar tarafından işgal edilen hücreler 1 olarak ayarlanmalı / zorlanmalıdır. Aksi halde güncelleme denklemindeki ölçeklendirme istediğiniz gibi çalışmaz.
Bu genel şema / yaklaşımda birçok değişiklik var. Engeller vb. Küçük değerlere sahip olabilirken, serbest ızgara hücreleri hedefe bağlı olarak son adımda gradyan inişini gerektirebilecek büyük değerlere sahip olabilir. Her durumda, yaklaşım, IMHO, şaşırtıcı biçimde çok yönlü, uygulanması oldukça kolay ve potansiyel olarak oldukça hızlıdır (ızgara haritası boyutuna / çözünürlüğüne tabi). Son olarak, belirli bir hedef pozisyonu kabul etmeyen birçok yol planlama algoritmasında olduğu gibi, çıkmazlara takılma riski de vardır. Bir dereceye kadar, bu riski azaltmak için son adımdan önce özel işlem sonrası adımları uygulamak mümkün olabilir.
Java-Script'te (?) Bir resim bulunan bir başka kısa açıklama da, çizim tarayıcımda çalışmadı :(
http://www.cs.ubc.ca/~poole/demos/mdp/vi.html
Planlama ile ilgili daha fazla ayrıntı aşağıdaki kitapta bulunabilir. Değer yinelemesi özellikle Bölüm 2, Bölüm 2.3.1 Optimal Sabit Uzunluk Planları bölümünde tartışılmaktadır.
http://planning.cs.uiuc.edu/
Yardımcı olur umarım, saygılarımla, Derik.