# 進度報告(2023/10/23) ## 文獻閱讀 上週昱霖學長推薦了**Path Continuity for Multi-Wheeled AGVs**[^1]這篇論文,主要探討multi-wheeled automated guided vehicles (MW-AGV)的路徑需要i階連續(G~i~),能夠確保車輛運動是平滑的,甚至在路徑追蹤上不會產生誤差。 * G~0~連續:機器人位置在路徑上是連續的 * G~1~連續:路徑的一階微分(切線)是連續的 * G~2~連續:路徑的二階微分(曲率)是連續的 * G~3~連續:路徑的三階微分(曲率的微分)是連續的 這篇文獻將MW-AGV大致上分成三種不同的標準運動模型,我覺得MW-AGV基本上也涵蓋輪型機器人: 1. tangential 機器人對於全域座標的朝向Orientation (θ),與當下的路徑微分Heading (ζ)夾固定角度α,基本上設為0°或180° 3. crab 無論(ζ)怎麼變化,機器人的(θ)從頭到尾都不變 5. differential 差速式輪型機器人 本篇文章一共探討了三種測試情境,來證明路徑的連續程度是如何影響MW-AGV的運動: * ( A )Failure to Satisfy the Continuity Conditions: 使用tangential,α=0°的模型,測試的路徑僅有G1連續。![](https://hackmd.io/_uploads/BJvpddmMa.png) 結果顯示車輛沒辦法準確地做到路徑追蹤,轉向也有最大約2.5°的誤差。 * ( B )Achieving tangent motion continuity: 使用tangential,α=0°的模型,測試的路徑G3連續。![](https://hackmd.io/_uploads/BJ8yFdmGa.png) 結果顯示車輛的路徑偏移和轉向誤差都極小,代表G3連續的路徑可以確保讓MW-AGV在保持軌跡的同時還有平滑的運動。 * ( C )Achieving differential to crab mode continuity: 使用G2連續的路徑,讓車輛模型在過程中從differential模式轉換成crab模式。![](https://hackmd.io/_uploads/By1ft_mGa.png) 結果顯示G2連續的路徑可以讓MW-AGV順暢的切換運動模式。 結論:路徑連續程度會影響車輛的運動表現,若要讓MW-AGV有能力保持平滑的運動,G2連續的路徑是必要的。 ## ROS學習 這周主要延續上次做的turtle_controller這個節點做一些改動,主要是學習如何寫一個service的client,讓這個節點同時是subscriber、publisher外,同時又是client。在ROS裡,server不像publisher一樣不斷的在Topic裡發送訊息,反之,server提供的service只在有cilent呼叫他的時候才會啟動,並且回傳一組訊息。如果server一直處於被呼叫的狀態,具教學所說,整個程式會跑得非常當。所以,使用service時要設定條件,需要的時候再呼叫server。 上上週提到的ROS2內建的turtlesim_node這個節點不僅能在複數個Topic上發布或接收訊息,其本身也是非常多的service功能server,其中一個service能更改其路徑顏色及寬度。由於自己寫的turtle_controller這個節點會依照烏龜當前靠近視窗邊界的程度決定其速度,越靠近便越慢。所以打算讓烏龜的路徑軌跡隨當下的速度改變顏色,速度最快為白色,再來便依照彩虹做分級。此外,再讓烏龜在不靠牆的情況下能一定程度地隨機轉向。這是開啟turtlesim_node後,執行turtle_controller數分鐘後的結果: ![](https://hackmd.io/_uploads/Hk934s7za.png) ![](https://hackmd.io/_uploads/Hy3kSoXGp.png) ## 日後方向 1. 繼續學習ROS2 2. 涉略多機器人協作方面的論文 ## Reference [^1]:M. Kokot, D. Miklić and T. Petrović, "Path Continuity for Multi-Wheeled AGVs," in IEEE Robotics and Automation Letters, vol. 6, no. 4, pp. 7437-7444, Oct. 2021, doi: 10.1109/LRA.2021.3099086.https://ieeexplore.ieee.org/abstract/document/9495197/citations#citations