# VO 文獻記事 ## 順序 ``` graphviz digraph flow{ node[shape=Mrecord] VO [label="VO | 1998 "] RVO [label="RVO | 2008"] ClearPath [label="ClearPath\n (FVO) | 2009"] HRVO [label="HRVO | 2011"] ORCA [label="ORCA | 2011"] {rank=same; HRVO,ORCA} VO -> RVO; RVO -> ClearPath; RVO -> ORCA [nodesep=10] ClearPath -> HRVO } ``` ## 速度障礙區塊 | VO | RVO |ClearPath(FVO)|HRVO|ORCA| | -------------------------------------------------- | -------------------------------------------------- | -------- | --- | --- | | ![image](https://hackmd.io/_uploads/HygoLTQFp.png) | ![image](https://hackmd.io/_uploads/Sk0RL6QY6.png) |![image](https://hackmd.io/_uploads/rke_vaXFp.png)|![image](https://hackmd.io/_uploads/ryeIdaXt6.png)|![image](https://hackmd.io/_uploads/BJOuKaQtp.png)| * 1998年的VO文獻中其實有提到,可以設立一個time horizon ($\tau$),僅考慮這個時間範圍內,自己與其他agents會不會發生碰撞。如此便可以在速度space中,修剪掉一些碰撞追靠近自己的部分,讓VO的領域縮小,增加更多的可行速度選擇。但是VO和RVO的論文中,實驗裡似乎都沒有加進這項考慮,會直接避開整個錐形的速度障礙。而ClearPath提出的FVO以及ORCA都有設立($\tau$),擴大可行解範圍。 geogebra展示速度障礙區塊: https://www.geogebra.org/calculator/xbq5svsp ## 論文重點 ### VO * 只適合回避定速動態障礙 * 依照kinematic constrain & dynamic constrain 提出 feasible velocity區間概念 * 三種選擇速度的策略: TG(to goal)、MV(maximum velocity)、ST(structure) * 設立 time horizon ($\tau$)概念 * <font color="#f00">僅有simulations,假設agent可以完美偵測動態障礙的速度與相對座標(上帝視角)</font> ### RVO * 依據責任($\alpha$)移動VO形成RVO * 選擇RVO外距離$\mathbf{v_A^{pref}}$最近的向量 * 僅考慮距離自己一定範圍內(neighbor region)的節點 * 在擁擠情況下允許agent選擇RVO內的速度向量,但是會依TTC、與$\mathbf{v_A^{pref}}$的距離,建立penalty。 * <font color="#f00">僅有simulations,假設agents之間沒有溝通,但可以完美偵測彼此的速度與相對座標(上帝視角)</font> ### ClearPath * 以RVO為基礎,僅考慮 time horizon ($\tau$)時間範圍內的碰撞,增加可行解(FVO) * 若沒有可行解,移除最遠的FVO,直到出現feasible velocity區間 * 選擇FVO外距離$\mathbf{v_A^{curr}}$最近的向量 ![image](https://hackmd.io/_uploads/HJ76rzIFT.png) * <font color="#f00">僅有simulations,各agents早就知道彼此的位置及速度並建立KD-tree(上帝視角)</font> ### HRVO * 改進RVO可能發生的"reciprocal dancing",結合RVO與VO的邊界形成HRVO * 使用ClearPath演算法搜尋下一刻的速度向量 * 5篇paper中唯一一篇將不確定性納入速度障礙區塊進行考慮(較為偏向實用) * 有稍微加入RRT以避開擋住目標的大塊障礙物 * <font color="#f00">有experiments與simulations,再experiments中,由於機器人尚無法靠感測器知道自身的確切座標與朝向,所以有一個中控系統用相機感應每個robots的位置與朝向,回傳給robots,再用Kalman filter推斷速度,論文稱是"有限度的溝通"(類上帝視角)</font> ### ORCA * 以VO的概念做延伸,考慮time horizon ($\tau$)時間範圍內的碰撞 * 將原本錐形的速度障礙演變成二為空間中的半平面,將複雜的最佳化問題簡化為線性規劃,降低運算時間 * 透過改變理想的$\mathbf{v_A^{opt}}$,找出最佳速度向量。 * <font color="#f00">僅有simulation,假設各agents之間沒有溝通,但可以完美偵測彼此的速度與相對座標(上帝視角)</font> ## 心得(可能會再更新) 個人覺得,無果要將VO避障用在現實中的robot上,需要如HRVO那篇文獻一樣,將資訊的不準確性考慮進來,除此之外,如果不允許robots有溝通的話,也不能設置中控系統,不能有上帝視角,這樣子感測誤差可能會無法被校正。 我覺得,VO的最初的避障原理,是參考動態障礙物的當下位置座標,建立出一個現實的碰撞錐範圍,未來的下一刻,只要自己與障礙物的相對速度落在這個碰撞錐範圍內,便有可能發生碰撞。 為了更直觀判斷$\mathbf{v_A}$是否會導致碰撞,因此進入速度space中,依障礙物的未來速度,移動那個碰撞錐,形成速度障礙VO。如此便可以直接得出,未來的下一刻,$\mathbf{v_A}$是不是安全的。 由於以上,VO的避障法,需要的參數是當下自己與障礙物的相對或絕對座標,以及障礙物未來的下一刻之速度向量。藉由這些參數推斷下一刻自己的$\mathbf{v_A}$是否安全。在假設自己與障礙物的當下位置為已知的情況下,用VO法來閃避一個定速的障礙物很容易達成,畢竟障礙物的未來速度與當下速度一模一樣。然而,當人們用VO法來閃避一個會改變移動速度的障礙物時,會讓情況變得有點困難。困難點在於:「我們怎麼知道障礙物的未來速度?」。如果是一個規則運動的障礙物,我們可以套用kimematic公式,甚至是dynamic公式來預測出障礙物的未來速度,再用VO法避障。然而,如今我們面對的障礙物,是一個和自己一樣,會依照環境變化自由改變其速度的agent,預測障礙物的未來速度似乎不可行,那該如何用VO法來閃避障礙物?我個人認為,RVO和HRVO以及ORCA等避障方法其實並沒有真正去預測對方agent的未來速度,然後建立出速度障礙來避開。以上那些避障法所做的,其實是再agents之間建立「默契」,例如:只要angent A 採用RVO策略選擇速度,agent B 也如是,基本上他們便不會撞到。 ## Reference Fiorini, Paolo, and Zvi Shiller. "Motion planning in dynamic environments using velocity obstacles." The international journal of robotics research 17.7 (1998): 760-772. Van den Berg, Jur, Ming Lin, and Dinesh Manocha. "Reciprocal velocity obstacles for real-time multi-agent navigation." 2008 IEEE international conference on robotics and automation. Ieee, 2008. Guy, S. J., Chhugani, J., Kim, C., Satish, N., Lin, M., Manocha, D., & Dubey, P. (2009, August). Clearpath: highly parallel collision avoidance for multi-agent simulation. In Proceedings of the 2009 ACM SIGGRAPH/Eurographics Symposium on Computer Animation (pp. 177-187). Snape, J., Van Den Berg, J., Guy, S. J., & Manocha, D. (2011). The hybrid reciprocal velocity obstacle. IEEE Transactions on Robotics, 27(4), 696-706. Van Den Berg, J., Guy, S. J., Lin, M., & Manocha, D. (2011, August). Reciprocal n-body collision avoidance. In Robotics Research: The 14th International Symposium ISRR (pp. 3-19). Berlin, Heidelberg: Springer Berlin Heidelberg.