# 20210628~20210704 程式組 暑期計畫 ###### tags: `工作筆記 程式組` ## 陳伯豪 這一個禮拜我看完了原本計畫在第一個禮拜看完的影片,這部影片讓我更了解Arcade drive這樣個模式(?),然後影片中還有介紹到如何設定時間來控制機器人行走的速度...等,也知道如何自己用程式碼下去寫了(●'◡'●) ## 魏仁祥 這部影片是以要讓車子走 10 feet 為目標,理論上來講如果是以 5 feet/sec 走兩秒是可以成功的,但因為外在因素例如空氣阻力和路面的粗糙程度而會無法抵達 10 feet ,而因此開始介紹 PID 這個控制機器人馬達速度的方法。 $$ Motor Output = kp × error $$ 一開始是使用 PID 中的 P (proportional) (比例) 控制,目標是要找到 kp 這個變數的值,而馬達的輸出會等於是機器人與 10 feet 的距離(error) 乘上 kp。接著他教導如何大概猜測 kp 的值,要利用自己一開始的 error 值和馬達假設初始速度(50%)去猜測。在第一次測試中,他的 encorder 和馬達反邊了,所以當機器人往前時,encorder 會想叫馬達往後,但是 PID 並不知道機器人是否在正確方向,所以 error 繼續變大,motor output 就也會一直變大,最後一直向前衝,所以確定 encorder 方向是很重要的。接著在一連串的測試後,得到了不錯的 kp 值。 ![](https://i.imgur.com/UqdhrRs.png) 可是,當 error 值過小時,馬達的速度會過小甚至無法克服地面磨擦力而停在原地,因此這就要用到下一次會講道的 I 和 D 了。 ![](https://i.imgur.com/ijGFZ1O.png) ## 林俊彥 這周的影片 有提到PID 可以偵測離setpoint的距離 讓機器人可以精準的停止在目的地 並且快速完成移動作業 且PID能在接近setpoint時減速 在PID的proportional term 中 KP(在程式運作時是不變的) 會影響引擎的輸出量。後面有做一個將KP由0.05提高到20的測驗 雖然速度提高不少 但到達setpoint時卻因為過快的速度以及過遲的停止 導致並沒有精準的停在點上 而是做起擺盪 因此要進行許多測試 ## 謝亞諺 HMM 我的影片觀看順序好像顛倒了,變成3->2->1,然後這次的內容是學長教過的ARCARDE DRIVE,但他的寫法比較不同,雖然學會了另一種寫法,還是學長教得比較好理解,我發現他使用的是time Skeleton,但我們是使用time robot,然後我去爬了一下文,如果沒理解錯,我們的是萌新用的,但其實沒差多少,Skeleton的就是少了幾個預寫程式。(應該是這樣吧) ## 黃冠穎 這周的影片主要在講自動時間的程式碼撰寫,分成兩個部分,part 1 是這周的進度。是在講PID controller的,藉由encoder的位置和預定目標的位置(10 feets)的差(error)去調整整體馬達的運轉速度,到最後他有提出一個很常犯的問題是在設定encoder那裡方向寫反,導致在運行中機器人以為error越來越大導致速度越來越快。在整個影片結束後,雖然不是完完整整的停在10feets的地方,但下周的影片會再補上更多的方法去讓他準確地停在10feets。 ## 吳玠廷 我發現我第一周的時候看的影片的是第三周的東西,所以這份工筆是在講我看第一周影片學到的東西。前面講的是學長第一周教的介紹VS Code,再來是宣告馬達雖然他用Spark來宣告馬達但寫法其實跟我們學的大同小異,之後是教arcade drive,最後則是讓機器人自動跑三秒。