---
# System prepended metadata

title: 進度報告(2024/04/08)
tags: [Velocity Obstical, path planing, 進度報告]

---

# 進度報告(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.