1. 接續前一篇「Jetson Nano安裝運作YOLOv3 Tiny+視訊鏡頭辨識自訂物體」。
2. 撰寫及修訂總花費時長大約37.5小時。
※公開版因為版權疑慮,不附上整合包,請見諒。
1. 結果展示加入圖片
2. Capstone表單:專題課外花費204小時(11.3小時/週),課堂及會議花費93.58小時(5.2小時/週)
1. 根據楊大哥建議,在標題加入一些空格。
「機器人結合影像辨識-基於YOLO實時物體偵測」
改成
「機器人 結合影像辨識-基於 YOLO 實時物體偵測」
1. “You can plug the UART into another TTL type of device by just wiring the two directly together, but note the 3.3V signal. Many serial devices, such as some Arduinos, use 5V. The Jetson Nano is not tolerant of 5V, and if you connect directly bad things can happen. If you are using a 5V device with the Jetson Nano, you will need to do some level shifting to get the levels to match.” - 引用自Jetson Nano – UART
2. 查閱兩個板子的說明書,確認兩端電壓不同,若直接接線可能會導致Jetson Nano接腳燒毀,所以需要購買3.3v to 5v電平轉換零件,但我們覺得太麻煩了,所以還是去大洋電料行再買一條直角USB線來連接就好(如下圖紅色USB線)。
3. 因為改採用USB線連接,所以會占用Jetson Nano至少3個USB孔(無線網卡、鏡頭、USB連接至機器人),但是原本的鏡頭角度會擋到上排的2個USB孔,因此決定在鏡頭下面多墊2層塑膠瓦楞板以空出空間,但是鏡頭與箱子的最遠、最近距離就要重新量測了。
1. 因為篇幅過長,索性寫成一篇pdf檔教學了。
2. 撰寫及修訂總花費時長大約200小時。
1. 這個教學適用於70802教室的電腦(i7-8700k+1080ti)的Ubuntu 16.04系統。
2. YOLO的模型可以只使用CPU訓練(只需安裝darknet),也可以用GPU訓練(需安裝darknet, cuda和cudnn),但是CPU訓練太慢了,所以強烈建議一定要使用GPU訓練,以下教學是我上網查很多資料,安裝失敗很多次之後,歸納出來的方法。
3. 主要是依照下面"網址1"的步驟來安裝,其他網址只是附屬的參考資料或安裝包下載連結,雖然這個教學寫的是Ubuntu 18.04,顯卡也不同,但是實測可以成功裝在70802教室的電腦上,完全照著做就可以了。
4. 70802教室電腦的顯卡是1080ti,對應到的cuda版本是9.0、cudnn版本是cuDNN v7.1.4 (May 16, 2018), for CUDA 9.0。
5. 網址1裡面提到的"/home/qrt/Downloads"等等路徑相關的指令,裡面的"qrt"是文章作者的Ubuntu系統的"使用者名稱",每個人的"使用者名稱"大都是不一樣的。
例如:70802大部分電腦的使用者名稱都是預設的"user",那麼上面那行指令就要相對應地改成"/home/user/Downloads"。
所以這部分不要直接從網站複製貼上就執行,系統會找不到這個路徑而跳出錯誤,記得要改成自己系統的使用者名稱再執行指令。
6. 網址1"安裝補丁"步驟裡面的"sudo vim ~/.bashrc"建議改成 "sudo gedit ~/.bashrc",vim與gedit都是文件編輯器,但是個人覺得gedit比較方便修改文件內容。
7. 網址1建議做到Makefile文件修改的"make clean"步驟就好,然後再自己執行一行"make"即可完成darknet編譯,"make -j8"以下不建議繼續執行,我執行"make -j8"之後就開始跳出錯誤了。
8. 若任何安裝過程中有遇到dpkg11錯誤,原因大概是系統在背後更新導致我們不能裝套件,解決方法請參考Meeting 2的簡報第2頁。
dpkg錯誤可能很常會遇到,雖然關閉系統更新就可以解決,但是又會導致下面的第9項錯誤,所以建議不要關閉系統更新(之前GPU環境一直沒裝成功就是因為這個問題,花了很多時間、查了很多網站才解決)。
9. 若任何安裝過程中有遇到"但它卻將不會被安裝"、"未能滿足相依關係"錯誤,原因大概是重要系統更新被關閉了,解決方法請參考"網址4"。
網址1 主要教學 (原文標題:ubuntu18.04环境下的darknet+yolov3搭建及程序演示)
網址2 cuda安裝包下載網址 (原文標題:CUDA Toolkit 9.0 Downloads)
網址3 cudnn安裝包下載網址(要註冊及登入NVIDIA帳號才能下載) (原文標題:cuDNN Archive)
網址4 遇到"但它卻將不會被安裝"、"未能滿足相依關係"錯誤的解決方法 (原文標題:解决libgtk2.0-dev依赖包的问题)
1. 相關網站:https://blog.cavedu.com/2020/02/11/jetson-nano-realsensed435-setup/
2. 因為之前把Real Sense鏡頭還給老師了,第一次上課再跟老師拿一個。
3. 課程簡報因為版權疑慮,所以不放在這裡。
1. 交互參照這兩個網頁來安裝:
https://pjreddie.com/darknet/yolo/
https://pysource.com/2019/08/29/yolo-v3-install-and-run-yolo-on-nvidia-jetson-nano-with-gpu/
2. 感謝蔡承翰 學長幫忙debug,以下為log:
https://docs.google.com/document/d/1F1VZnl6Nv2ZxomJ0FeJ6MW9D29apjOrnJBBTCrgNZqs/edit?usp=sharing
無法訓練主要原因為:cfg資料夾內的所有文件(obj.names, obj.data, train.txt, test.txt)格式應轉為unix格式,ubuntu才能使用。
解決方法:在ubuntu安裝dos2unix,並使用dos2unix將文件轉檔。
YOLOv3 Tiny - 範例圖片辨識
YOLOv3 Tiny - 視訊鏡頭辨識(fps大約都維持在11)
1. 底部仍然使用木板,其他面則改用塑膠瓦楞板+泡棉膠固定,固定及防撞效果良好。
2. 正面開孔仍須改進,需改成:不開蓋即可為行動電源充電、nano使用變壓器供電。
3. 使用的行動電源型號為ASUS Zenpower 10050,產品尺寸:90.5 x 59 x 22 mm,可穩定供電Jetson Nano,續航力大約數小時,很足夠。
4. 製作耗時約6小時(1人獨自完成)。
5. 2020/4/14更新:因為盒子空間狹窄,供電用的USB線過度彎曲、每次開關機頻繁插拔導致接觸不良,因此去大洋電料行買了一條直角USB線,詳細接頭方向可參考下面圖片。
組裝完成圖片(2020/2/26~2020/5/7)
組裝盒+機器人移動測試影片
組裝盒設計圖
1. 木板太薄且沒有伸縮性,造成螺絲無法穩固地鎖入(木板裂開),故放棄使用此方法。
1. 機器人揮手動作編號為(1, 59, 57, ..., 1), 若持續按著三角形則重複(59, 57)。
1. 輸出custom程式碼的時候,馬達都一直沒反應,經過多次測試之後,找到原因在於Serial1不需要取代成Serial。上次上課時其煒老師說的:輸出程式碼遇到Serial錯誤的時候,把Serial1全部取代成Serial,但這次還沒輸出測試是否正常運作,就先取代了,所以才花了很多時間才解決這個問題,因此沒有機會測試測試馬達的運動時間與延遲時間關係項目。
2. 校準馬達時,發現左右手臂的橘色金屬板裝反了,因此拆下來左右對調再鎖回去,今天感謝其煒老師全程陪同校準馬達,機器人才得以順利地運作。
3. 順便和老師說了,之後的Meeting都先暫停,有需要再和老師約時間,組裝微型電腦、視訊鏡頭和行動電源需要設計一個盒子來裝,盒子需要用雷射切割機組裝,切割機使用方法日後再向老師、蔡學長或是學弟請教。
4. D435i深度鏡頭今天先還給老師了,因為深度鏡頭比較難安裝在機器人上,而且Humanoid比賽只允許使用一般鏡頭。
1. 今天的進度是接上所有馬達線及使用Arduino輸出程式碼至機器人。
2. 這次上課不小心燒掉了左腳腳底板的馬達線,原因是沒有用束帶固定馬達線位置,導致機器人蹲下時擠壓到馬達線造成短路起火,感謝學弟提供多餘的線,我們這組才能繼續測試,下課前已經將所有馬達線固定好了。
3. 馬達線的種類名稱是「杜邦線」,如果之後還有需要,可以到中壢前站的大洋電料行購買,不過那裡只有賣短線,所以如果需要長線的話,要買公端和母端來延長。
4. 下次上課要測試左腳腳底板馬達是否正常。
1. 在 徐靖憲 和 劉力元 同學的幫助下,齊格飛機器人順利地組裝完成。
2. 組裝完成後,第一次使用需先將所有馬達設定編號,使用「CAS_Servo_Management190102.exe」軟體設定,並參考「CASM tool手冊 - CASM X1.pdf」教材。
3. 7號(右腳)馬達在設定編號時,無法正常運作,經過測試之後確定是馬達問題,將16號(頭部)馬達更換至7號馬達即正常。
1. 恭喜我們這組榮獲 教程組 特優 及 機器人格鬥組 佳作!
1. 組裝說明書請參考教材「創造者科技CPR-0組裝說明V5_20190430.pdf」。
1. 教程組這次將會採用線上審核,同學無須簡報。
2. 所有同學請於11:30-12:00到七館四樓平台報到及領取餐盒。12:30開幕結束後再到各組場地進行決賽。
3. 自走車組及格鬥機器人組同學則依照裁判指示進行。
1. 上課內容:OpenCV - 開啟檔案、灰階、二值化
2. 補充筆記 by 黃貞皓
1. 上課內容:PixyCam, Python和OpenCV的安裝與使用
2. 相關連結:PixyCam
相關連結:
黃貞皓:
1. 使用者名稱暫定為YZURobot647
2. 這些都是按照老師給的網頁教學一步一步做的,除了第4點之外,過程中沒有遇到任何錯誤
3. 增加Swap RAM的部分,系統似乎已經預設了2GB(這部分和教學影片不一樣),按照教學增加6GB之後變成了8GB,這點在Meeting的時候可以和老師討論
4. 我另外裝了注音輸入法、Chrome插件,方便我們之後在這些微型電腦上快速存取資料
黃貞皓:這是林惟敏和呂懿峯他們那組的成果,可以參考一下,後面移動和打鬥的動作是使用放在桌面資料夾的原廠程式碼。
黃貞皓:和兩位說一下,今天我們這組和黃荃鋐那組的機器人部分馬達都壞了,和他們合作,經過一整天的拼湊及互換馬達之後,終於可以正常運作了。
因為對面組的機器人壞的馬達比較多,所以基本上變成了零件機來修補我們這組的機器人,所以下次上課我們暫時會和對面那組共用。
機器人也暫時放在系窩了,這樣我就不用帶來帶去。