*本文由RS components 贊助發表
作者/攝影 | 郭俊廷 |
一、JetBot專案介紹
JetBot是基於NVIDIA Jetson Nano的一款開源機器人,JetBot使用NVIDIA Jetson Nano做為運算核心。使用無線搖桿控制器或網頁控制JetBot小車,透過攝影機拍照收集資料,在Jetson Nano裡面訓練、實現避免碰撞、物件跟隨、道路跟隨等效果。
以下是JetBot官方的介紹
JetBot是基於NVIDIA Jetson Nano的開源機器人,特點有以下幾點:
- 經濟實惠-不到150美元的Jetson Nano A02以及附加產品
- 教學-從基本移動到基於人工智慧的避免碰撞的教學
- 好玩!-通過瀏覽器進行互動程式編輯
- 建立和使用JetBot可提供創建全新AI項目所需的體驗。
本篇文章將帶大家一步一步從Github安裝JetBot專案相關的套件,您也可以直接從附件下載我們安裝好的系統備份檔案。
首先來看我們JetBot小車的實體圖跟範例成果影片吧!
JetBot小車的實體圖
二、硬體介紹
我們先來看看JetBot官方建議的硬體清單跟我們使用的材料清單
https://github.com/NVIDIA-AI-IOT/jetbot/wiki/bill-of-materials
JetBot官方建議的硬體清單 | 我們所使用的材料清單 |
|
|
組裝前車體材料清單圖
硬體上我們做以下這些變動:
- 使用了自己設計的壓克力車身
- 上海DFRobot製作的馬達驅動板,把馬達驅動板接上Jetson Nano上的GPIO即可使用。
- 給Jetson Nano裝載了風扇,當Jetson Nano過熱時風扇即會自動啟動,也可以下指令讓風扇啟動。
- 使用USB的無線網卡不用另外接線插入Jetson Nano USB中即可使用。
- 電源的部份我們使用有Type C跟Micro USB雙輸出的行動電源,Type C可以供電給Jetson Nano、Micro USB可以供電給馬達驅動板使用。
各位可以依照自己的需求和設計更換符合自己的零件,如使用官網建議的馬達驅動板,部分軟體安裝過程請不用更新,使用官方的預設程式即可。其他如行動電源及輪胎等材料可以依據您的車身大小來更換適合的零件。
車體結構介紹
組裝完成車體後,我們將JetBot分成以下13個項目
(1)Jetson Nano開發板、(2)DFRobot馬達驅動板、(3)TT馬達、(4)輪胎
(5)攝影機、(6)攝影機支架、(7)全向輪、(8)車殼
(9)Jetson Nano風扇、(10)WiFi dongle、(11)Jetson Nano電源線、(12)馬達驅動板電源線、(13)行動電源
三、軟體安裝介紹
這一部分我們將開始介紹如何燒錄Jetobot映像檔,如何連上WiFi設定Jetobot相關軟體,下載Jetobot馬達驅動板相關程式。
Step1 如何安裝JetBot專案軟體並且燒入映像檔
首先我們要重新燒錄映像檔,JetBot專案所使用的映像檔跟之前Jetson Nano官方的映像檔不同,請使用Nvidia Github JetBot專案提供的檔案,映像檔連結:jetbot_image_v0p3p0.zip
下載映像檔後,並解壓縮檔案。
(下載後解壓縮的映像檔大小為59.6GB,記憶卡請準備64G之記憶卡),登陸的帳號密碼為jetbot。(如使用balenaEtcher軟體燒錄可不用解壓縮,可直接燒錄ZIP檔)。
使用balenaEtcher軟體工具燒錄映像檔
balenaEtcher在Windows、MAC的作業系統都可以安裝,您也可以使用另一套常用的Win32Diskimager(教學文章可參考[第一次用Jetson Nano 就上手]硬體介紹、開機步驟、遠端連線(繁體))。本篇文章使用的是Windows x64系統環境安裝,請按照您電腦使用的作業系統安裝匹配版本的軟體。
開啟軟體後,先點擊”Select image“,選擇剛剛下載的JetBot專案提供的檔案。
將SD卡插入讀卡機,在軟體中點擊”Select drive“,選擇SD卡的磁碟機編號,點擊”Continue“後,再點擊”Flash“就開始在SD卡安裝作業系統。
燒錄完成進度條會顯示100%,並且檢查錯誤,檢查完成後即燒錄完成。
Step2 Jetson Nano開機檢查映像檔有無燒錄成功
有兩種方法檢查映像檔有無燒錄成功:
- 第一種是連接螢幕、鍵盤、滑鼠來開機查看系統可否正常開機啟動。
- 第二種是使用MicroUSB線與JetsonNano進行遠端連線,確認系統是否正常執行。
首先使用DC接頭供應JetsonNano電源:
請將跨接器(jumper)接在下圖標示的J48腳位上(不接跨接器(jumper),JetsonNano則改由MicroUSB接頭供應電源)。
使用DC接頭變壓器,將JetsonNano接上電源。
使用USB傳輸線,一邊接上電腦,另一邊接上JetsonNano的MicroUSB接頭。(如下圖)
跨接器(jumper)接在J48腳位
JetsonNano開機成功時,電腦裡即會新增一個L4T-README的磁區。
電腦可透過Jetson Nano新增的虛擬區域網路與IP位置連線溝通,
Jetson Nano的IP是固定的,192.168.55.1。電腦開啟瀏覽器後,輸入
192.168.55.1:8888連上Jetbot。
開機成功時,電腦新增一個L4T-README的磁區
透過192.168.55.1:8888來連上JetBot
電腦端的瀏覽器畫面:第一次登入會要求輸入密碼,密碼是jetbot
Step3 將JetBot連上Wi-Fi
將JetBot連上Wi-Fi是為了我們能順利讓JetBot小車實際在地上移動,訓練等等用途。這裡介紹如何將JetBot連上Wi-Fi。
有兩種方法,第一種是之前介紹過的連接螢幕、鍵盤、滑鼠來連上Wi-Fi。
另一種就是透過JupyterLab的Terminal來操作連線至Wi-Fi。
以下是透過JupyterLab的Terminal來操作連線至Wi-Fi之步驟。
首先透過192.168.55.1:8888來連上JupyterLab。
接著使用JupyterLab內建的Terminal來設定要連線的Wi-Fi(位置如下圖紅框處)
JupyterLab內建的Terminal位置
輸入執行以下指令(如需要輸入密碼時請輸入jetbot)
在JupyterLab內建的Terminal使用複製貼上指令的方法是按CTRL+SHIFT+V
會看到一個網路管理員的控制介面,選擇第二個啟用連線(如下圖)
進入之後選擇想要連線的Wi-Fi,連線後輸入密碼即可連線
連線成功之後選<Back>後回選單
接著回選單後按離開即可離開此介面
接著輸入
查看是否有連上我們想連的Wi-Fi,成功連線即會顯示下圖畫面
使用指令
查看自己的Wi-Fi(wlan0)的IP是多少(<jetbot_ip_address>),即可確認成功連線至Wi-Fi並使用此IP透過JupyterLab連線至Jetbot。
進入JupyterLab的網址是http://<jetbot_ip_address>:8888
Step4 將JetBot配置電源模式
為確保Jetson Nano消耗的電流不會超過行動電源可以提供的電流,請使用以下命令將Jetson Nano配置於5W模式。
可以使用USB連線或是http://<jetbot_ip_address>:8888進入JupyterLab。作者測試時連線的IP熱點為192.168.137.155。
一樣使用JupyterLab內建的Terminal來設定電源模式
使用以下指令改變電源模式至5W
使用以下指令查看電源模式是否調整至5W
Step5 安裝DFrobot馬達驅動板修改程式
本篇使用的DFRobot馬達驅動板需要更動馬達驅動板的函式庫,請輸入以下指令來下載我們修改過後的JetBot程式。
下載完之後,移動到jetbot資料夾並請輸入以下指令安裝必要的套件。
安裝完套件就可以開始操作JetBot了
四、基礎操作介紹
我們操作JetBot範例的介面都是在JupyterLab上執行,JupyterLab是甚麼呢?首先我們先介紹一下JupyterLab。
JupyterLab是Jupyter團隊為Jupyter專案開發的下一代基於 Web的介面。相對於Jupyter Notebook,它的整合性更強,更靈活並且更易擴充套件。它支援100種多種語言,支援多種文件相互整合,實現了互動式計算的新工作流程。如果說 Jupyter Notebook 像是一個互動式的筆記本,那麼 Jupyter Lab 更像是一個互動式的 VSCode。另外,JupyterLab 非常強大的一點是,你可以將它部署在雲伺服器,不管是電腦、平板還是手機,都只需一個瀏覽器,即可遠端訪問使用。使用JupyterLab,你可以進行資料分析相關的工作,可以進行互動式程式設計,可以學習社群中豐富的Notebook資料。
下圖是JupyterLab的操作介面,依序介紹我們常用的功能。
- 選單欄:主要的功能選單都在這上面:文件、編輯、視窗、運行、內核、分頁、設置、幫助
- 左側邊欄:左側邊欄包含許多常用的功能,由上而下是文件瀏覽器、正在運行的內核和終端的列表、命令面板以及正在工作區中的分頁列表
- 主要的工作區域
- Terminal:我們的終端機在這裡開啟,可以在這操作各種Linux指令
JupyterLab操作介面
以上是我們在Jetson Nano上執行JetBot專案Part1基礎安裝篇之介紹,大家有沒有成功登入JupyterLab呢?未來我們將會推出更多豐富的內容。下一篇我們將介紹讓車子移動並且介紹如何在網頁上控制車子的前後左右移動,當然也有JetBot專案更進階的功能介紹,有興趣歡迎關注我們。
*本文由RS components 贊助發表