# 進度報告(2024/04/08) ## matlab 模擬環境建置 上週與老師討論後,決定先擱置path following的部分。於是我simulation中計畫建置的General Bicycle Model將會是一台理想情況下的robot。它能及時執行速度命令,但是會有一些基本的運動限制。此外,simulation中需要有一個程式監測GBMs有無碰撞。 ### structure ![basic simulation structure](https://hackmd.io/_uploads/SJltMkbxR.png) ### basic kinematic constraints 1. max front/rear velocity ($v_f\leq v_{f_{max}}\ ,v_r\leq \ v_{r_{max}}$) 2. max front/rear delta velocity within $\Delta t$ ($\Delta v_f\leq\Delta v_{f_{max}}\ ,\ \Delta v_r\leq\Delta_{r_{max}}$) 3. max frone/rear delta angle within $\Delta t$ ($\Delta\theta_f\leq\Delta\theta_{f_{max}}\ ,\ \Delta \theta_r\leq\Delta\theta_{r_{max}}$) 4. $v_f\cos{\theta_f}=v_r\cos{\theta_r}$ 前3條constraints在程式中設定為:如果速度命令超過上限,GBM便會用上限去執行。而第4條constraint則是GBM本身的限制,如果輪胎速度及轉向不符合這個限制,便會打滑或是鎖死。在程式裡我會把前後輪的速度和轉向用矩陣$\mathbf{M}$的pseudo inverse投射到$\begin{bmatrix}v_x&v_y&\omega\end{bmatrix}^T$的space中,然而這部分我不清楚真實情況下的General Bicycle究竟會如何表現,可能還要視輪胎摩擦係數等變因而訂。 ### 進度 我目前對實際執行VO演算法還有幾個疑點,可能需要再多讀幾篇論文釐清幾個不清楚的地方,所以目前還沒有開始動工。但是大致上將最基礎的模擬環境建好了,可以實作出幾台矩形的GBM,給予它們初始位置及狀態,便會自己在圖上動起來了,也可以給GBM一連串任意的速度命令,它會在不考慮控制的情況下執行一連串動作。另有一個程式可以監控兩台GBM間有無碰撞,如果有,會將兩輛GBM當下的狀態及軌跡印在圖上。 給定初始速度及位置後,便不再外加速度命令給兩台GBMs {%youtube reEN3jo3ZjA%} 因為VO演算法還沒寫好,所以先弄一個隨機給出速度命令給GBMs的simulation, {%youtube oG4HoeZBptw%} 接下來會試著照論文完成一個基本的VO或是RVO的演算法 ## 文獻閱讀 ### VO演算法疑惑 1. agent和obstacle非圓形時,要怎麼形成膨脹層 2. 將特定的robot model 之 kinematic constraints 套入演算法內 ### **Collision avoidance of multi unmanned aerial vehicles: A review**[^1] 這篇2019的review整理歸納了時下不同種類的動態避障法: * Path planning * Conflict resolution approach * MPC approach * Potential field function * Geometric guidance * Motion planing of teams of multi-UAVs 其中VO演算法被歸類在Geometric guidance,同屬Geometric guidance的還有collision cone(CC)。CC法同樣會形成一個碰撞錐,原文**Obstacle Avoidance in a Dynamic Environment: A Collision Cone Approach**[^2]甚至有提到各種幾何物間如何形成碰撞錐,然而整篇都有點稍難理解。雖然CC法形成的碰撞錐與VO法所需的碰撞錐好像不太一樣,但是我認為或許可以值得參考。另外,這篇review指出**Safe Maritime Navigation with COLREGS Using Velocity Obstacles**[^3]這篇文獻有提到長方形尺寸的agents形成VO的方法,然而我實際去瀏覽一遍後,發現該論文似乎並沒有詳細解釋其如何解決尺寸非圓形的問題。 ## 未來待辦 * 繼續查找VO相關的論文解決疑惑 * 建立一個基礎的VO演算法 ## Reference [^1]:Huang, Sunan, Rodney Swee Huat Teo, and Kok Kiong Tan. "Collision avoidance of multi unmanned aerial vehicles: A review." Annual Reviews in Control 48 (2019): 147-164. [^2]:Chakravarthy, Animesh, and Debasish Ghose. "Obstacle avoidance in a dynamic environment: A collision cone approach." IEEE Transactions on Systems, Man, and Cybernetics-Part A: Systems and Humans 28.5 (1998): 562-574. [^3]:Kuwata, Yoshiaki, et al. "Safe maritime navigation with COLREGS using velocity obstacles." 2011 IEEE/RSJ international conference on intelligent robots and systems. IEEE, 2011.