扒一扒磁条导航和Slam导航的AGV交管思路
趁著今天調休回家,閑著沒啥事,就發表下隨筆博客,此文就不上代碼了,需要了解的筒子們可以先了解下具體的概念,回頭再回來上代碼。其實對于AGV來說,我們可以把AGV當成公共汽車去理解,只不過他們是自主導航的,按照一定的導航方式去計算需要所運行的軌跡0.0
交管思路
3.1 跟隨交管
跟隨交管說明,我們先定義兩臺車A和B,比如A車的剩余的運動路線時1,2,3,4,5,6,7,8,9,10,11,12,18,19;B車的剩余的運動路線是 5,6,7,8,9,10,11,13,15,17;那么此時根據計算的路徑的重疊部分就是5,6,7,8,9,10,11。此時說明A車是跟隨在B車之后的,如下所示:
如上圖,我們就可以定義一個跟隨鎖定的交管距離值,比如上圖紅色文字的4,當B車運動到5的時候,我們重疊部分的路徑的取第一個值(5)所處B車的剩余運動路徑(5,6,7,8,9,10,11,13,15,17)的索引就是0,那個重疊部分的路徑的取第一個值(5)所處A車的剩余運動路徑(1,2,3,4,5,6,7,8,9,10,11,12,18,19)的索引就是4,當此值小于或者等于配置的跟隨交管的距離值4時,我們將距離大的值的車鎖住,將距離小的車就放行。此時就實現了跟隨交管。此交管的現象就是A車和B車一直保持著一個曖昧的跟隨交管距離值運動,會出現B車先動,然后A車跟隨著動。
此交管我們在之前的博客二維碼的交管思路里面已經介紹過了,它不僅適用于二維碼的交管,對于磁條和Slam的交管也是適用的,但是他只能保證是同一方向上的管制!!!
3.2 區域交管
我們以下圖這個區域為例:
假定此區域內有多輛車需要通過,我們在跟隨鎖定的基礎上需要做區域管控,保證此區域同一時刻只能通過一臺或者另外一臺同方向的AGV可以跟隨通過此區域。這種區域我們給他定義成路口,就是類似我們公交車在路上走的時候,我們要防止其他車輛從路口竄出來,出現撞車的情況,于是就需要加上交通管制(就相當于公交車司機踩下剎車停止,等其他的車/自己通過時,依次放行車輛)。 假定現在有輛AGV在右邊地標160處,我們先給AGV發暫停指令,等待接收到了AGV的暫停運動狀態后,判定當前路口有沒被其他車占用?
1、如果沒有其他的AGV占用此路口,我們將配置的路口當前占用AGV字段標記為當前的AGV編號,然后給AGV放行;
2、如果有被其他AGV占用此路口;我們再判定此AGV和占用路口的AGV的運行路線是不是同方向,是的話進行跟隨鎖定放行;如果不同,則等待占用的AGV通過此路口之后,將當前路口占用的AGV標志是其他AGV的標志信號清除,然后重復1的步驟;
以上兩個步驟是迭代輪詢進行查詢控制的。需要結合使用。
以上,隨便扒一扒磁條和Slam的交管的思路,歡迎各路大神指正和相互探討,如有侵權,請告知刪除。
總結
以上是生活随笔為你收集整理的扒一扒磁条导航和Slam导航的AGV交管思路的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Scrapy框架爬取数据
- 下一篇: [经典]数据产品需求文档怎么写?