

V5 機器人競賽
這是我在 VEX 機器人競賽隊伍 2813B NOVA 兩年旅程的紀錄。這個專案詳細介紹了我們團隊在兩個賽季中的演進,突顯了我們在機械設計、程式複雜度上的成長,以及在工程實踐中學到的寶貴課題。
年份
2022-2024
角色
首席開發者與設計師
技術
C++ (PROS, LemLib), Fusion 360
在 2022 至 2024 年,我擔任 VEX V5 機器人競賽 2813B NOVA 的主要開發者與設計師。這個專案是對那段旅程的回顧,一個關於學習而非獎盃的故事。它記錄了我們從一支摸索基礎的新隊伍,成長為能夠建構複雜解決方案的團隊。這段橫跨「Over Under」與「High Stakes」兩個賽季的經歷,讓我深入體驗了設計、建造、測試與失敗的完整迭代循環。它教會了我,在工程領域,真正的成功是以成長、韌性,以及對更佳解決方案的不懈追求來衡量的。
我們的第一年是場火的考驗。那個賽季的比賽主題是「Over Under」,內容包含將形似粽子「Triball」移入得分區,並在比賽結束時將機器人懸掛在橫桿上。作為新隊伍,我們的重心放在實現最基本的功能。
我們從 H 型底盤著手,以追求更高的靈活性,並搭配簡單的滾輪進氣口來收集 Triball,以及一個用於得分的彈射機構。這個賽季也是我們首次接觸氣動系統,用來展開懸掛裝置。整合這個新系統是一大挑戰,我們花了無數小時處理漏氣問題與優化活塞推力。雖然設計尚可運作,但比賽經驗揭示了它在耐用性與效率上的不足。
當時我的程式開發方法,就和我們的機器人一樣基礎。我使用 VEX 官方的 C++ 環境,將所有程式碼都寫在單一個 main.cpp 檔案中。自動賽程式完全依賴「寫死」的指令——純粹透過馬達運轉時間和預設的角度來控制。
這個方法很快就顯現出它的不可靠性。電池電壓、場地摩擦力或機器人初始位置的微小差異,都會導致誤差累積,造成自動賽表現極不穩定。為此,我導入了基本的 P 控制(比例控制)來幫助機器人走直線,並使用 PD 控制來實現更穩定的轉彎。這些雖是顯著的改進,卻只是治標不治本的補救措施。
從「Over Under」賽季學到最重要的一課,是我們清楚意識到,一台「能動」的機器人,和一台能在壓力下「穩定發揮」的機器人之間,存在著巨大的差距。這份理解成為了我們第二年的藍圖。
憑藉著第一年賽季的經驗,我們以全新的理念來面對「High Stakes」——一個圍繞著收集圓環並將其套在移動目標上的比賽。我們的目標不再只是造出一台機器人,而是要設計一個穩定、可維護且可預測的系統。
最大的轉變,是我們對軟體開發流程的徹底更新。我將程式碼庫從 VEX 的標準環境,遷移到功能更強大、更靈活的 PROS (PROS for V5) 開發框架。
這個轉變帶來了三個關鍵的進步:
main.cpp 的結構,將程式碼重構成為獨立的模組化子系統(如 arm.cpp、intake.cpp、chassis.cpp)。這讓程式碼更清晰、更容易除錯,也方便團隊成員分工合作。我們機器人的設計也反映了這份新的成熟度。我們選擇了堅固的六馬達坦克式底盤,以獲得更強的防守能力。進氣口被重新設計成「雙滾輪」系統,以更有效地處理圓環。手臂則採用穩定的四連桿結構,並由精確調校的 PID 迴圈控制,確保快速且準確的移動。每一個機械上的決定,都是為了解決我們前一年遇到的問題。
雖然我們從未以冠軍的身份站上頒獎台,但我在 V5 2813B NOVA 的兩年時光,是一段無與倫比的成功經歷。這趟旅程教會我的,遠比任何勝利都來得多。它是一場親身實踐的工程教育——一個透過創意與團隊合作,不斷面對並解決問題的循環。
在技術上,我從撰寫簡單的腳本,成長到能夠設計並管理一個複雜的架構。我學到穩定的系統並非建立在巧妙的技巧上,而是基於模組化、回饋控制與版本管理等可靠的原則。
更深層的體會是,我學會了如何作為一個團隊的一份子來運作。我學會在挫折中尋找動力,在賽前幾分鐘內修復故障的機構,並與剛認識的盟友隊討論戰術。這段經歷是我工程之旅的起點,它為我裝備了持續解決問題的思維模式,我會將這份寶貴的經驗帶到未來的每一個專案中。
衷心感謝 2813B NOVA 團隊的每一位成員。我們共同的熱情與毅力,將挑戰轉化為成長的機會。我也非常感謝我們的導師與教練,他們的指導對於我們團隊的塑造,以及我個人的發展,都至關重要。