【自造DIARY】Jetson Nano的開源應用 ─ Jetbot小車

作者:創客萊吧

Nvidia Jetson Nano 發行了幾個月,大家應該都操作的差不多了,基本效能大致都摸透,那 Jetson Nano 還能做什麼呢?本篇文章將教你製作 Jetbot 開源程式碼的小車 ─「Jet-falcon 千年鷹 」。

Jetson Nano 從 2019 年 4 月初開始發行到現在,也經過了幾個月的時間,相信大家也快要把 Jetson Nano 各種基本效能都測試得差不多了。那麼接下來,Jetson Nano 可以做什麼應用呢?

在 Nvidia 官方開源出的各種 Jetson Nano 應用中,有個很經典的應用─「Jetbot」,讓更多人能夠更方便地學習如何在 Jetson Nano 上訓練、推論神經網路技術,以實現各種關於自駕車技術的應用。那麼,到底應該從哪裡取得 Nvidia 開源的 Jetbot 零件呢?

Jetbot 的零件清單:https://github.com/NVIDIA-AI-IOT/jetbot/wiki/Bill-of-Materials

Jetbot 的零件清單部份截圖(圖片來源:GitHub

相信大家一定都非常開心 Nvidia 分享了 Jetbot 的零件清單,不過零件清單中每個零件的取得,有些須從  Amazon 找尋、有些要從 Adafruit 下單、而有些則要從 Sparkfun 購買。等到把 Jetbot 上需要的所有零件都下單完畢後,還要再等一陣子海運時間。漫長的等待時間,急性子的人等不及啦!

於是一台可以完整使用 Jetbot 開源程式碼的小車─「Jet-falcon 千年鷹 」,就這樣誕生啦!

Jet – falcon:https://www.icshop.com.tw/product_info.php/products_id/27367

Jet-falcon 鋰電池版本(圖片來源:iCshop

接下來,我們就來介紹如何使用 Jetbot 開源程式碼,與自行測試的人臉辨識,在 Jet-falcon 上實現吧!

電源

首先,因為目前世界各地的網友們在測試時,有發現到 Jetson Nano 對於電源供給的要求較為嚴苛,因此在開始實現各種應用前,我們先來看一下 Jet-falcon 的電源部份。

在一開始製作 Jet-falcon 時,為了考慮到後續能夠更新 「JetPack」(Nvidia 為了建立人工智慧應用程式,所開發的軟體 ,請參考 https://developer.nvidia.com/embedded/jetpack ) ,因此特別設計了兩種電源版本:

  1. 行動電源版本:輕巧方便、易於隨時使用

  2. 鋰電池版本:車體擴展性強韌、模型推論效率佳、方便後續更新 JetPack 軟體

其中,行動電源版本部份,官方建議雙孔輸出共 3A 的規格使用。但經實測,即使是擁有雙孔輸出 3A 的行動電源,若是 MicroUSB 電源線長度超過大約「45 公分 」的長度(目前測試結果,實際長度仍需要再多加測試),也一樣容易因為壓降過多,導致 Jetson-nano 無法正常執行。

過長的 Micro USB線將無法正常啟動 Jetson Nano(圖片來源:創客萊吧提供)

因此,在使用一般行動電源,或是一般電源供應器的電源(如樹莓派的專用電源供應器:https://www.icshop.com.tw/product_info.php/products_id/26946 ),皆需要特別注意電源線的長度。

相反地,只要線材的長度短於目前測試的「45 公分」MicroUSB 電源線,且能夠承受 2A  以上的電流,即使是一般行動電源(需雙孔輸出共 2A 規格),也能夠正常使用 Jetson Nano 喔!不過要記得將 Jetson Nano 的「功率模式」,調整成「5W」喔!

本次實測之行動電源規格(圖片來源:創客萊吧提供)

利用 5V/2A 行動電源執行 Jet-falcon,並開啟網頁瀏覽器(圖片來源:創客萊吧提供)

另外很重要的一點,目前也有非常多朋友們在使用部份 HDMI 轉 VGA 的轉接頭時,Jetson Nano 會無法出現畫面。經過實測,使用可外接 Micro USB 電源的轉接器較佳,因可額外供給電源給予轉接器,讓螢幕畫面正常輸出。

下兩圖為使用可外接 Micro USB 電源的 HDMI 轉 VGA 轉接器,與是否接入 MicroUSB 電源的實測結果。

測試使用的 HDMI 轉 VGA 轉接器:https://www.icshop.com.tw/product_info.php/products_id/11673

「有」使用外接 MicroUSB 外接電源的 HDMI轉 VGA轉接器測試結果(圖片來源:創客萊吧提供)

「無」使用外接 MicroUSB 外接電源的 HDMI轉 VGA轉接器測試結果(圖片來源:創客萊吧提供)

透過此次實測結果,目前認為 Jetson Nano 使用轉接器無法輸出畫面的原因之一,或許與 Jetson Nano developer kit 上的 HDMI 接口有做相關保護,導致供給轉接器的電壓不足有關,讓螢幕無法輸出畫面。

至於鋰電池版本的 Jet -falcon,則是採用 2S 的鋰電池,規格為 5200 mah、25C,搭配一組可限制電流輸出量的直流降壓器,並配有一個鋰電池專用警報器,提醒您注意電池的電量。

需要限制電流的主要原因,是防止 Jetson Nano 在功率全開時,某些執行動作(像是使用 cuda 推論神經網路),讓通過 Jetson Nano developer kit 的瞬間電流過大,自動啟動保護裝置,形成「死機」的狀態。

可限制電流的直流穩壓器(圖片來源:創客萊吧提供)

平台設計

Jet-falcon 的壓克力平台(圖片來源:創客萊吧提供)

在設計 Jet-falcon 時,為了降低讓大家尋找安裝機構平台的時間,便在壓克力板材上裁切出了許多孔位。讓使用者可以依照自己的喜好,彈性地調整 Jet-falcon 上的電子零件位置。

您可以

  • 自行旋轉 Jetson Nano 四個方位角度安裝
  • 自行調整鏡頭架於平台的相對位置,也可自行設計相對應的 3D 列印機構裝置
  • 較大的圓形孔位讓您放置線材

也可以在不拆除整個 Jet-falcon 平台下,執行下列動作

  • 查看 Jetson Nano 的 GPIO 腳位
  • 調整馬達控制版的母座螺絲
  • 調整直流供應器的電壓與電流

另外,為了幫助 Jetson Nano 降低溫度,也特別為他搭配了一組風扇,並且為了之後能夠方便的安裝 M2 網路卡,也在安裝風扇的壓克力材料上,預留了兩根天線的孔位。

Jet-falcon 的風扇組裝示意圖(圖片來源:創客萊吧提供)

風扇的轉速與風量規格如下

  • 轉速(Speed):9000RPM±10%
  • 風量(Airflow):3.24CFM

使用這一組風扇後,Jetson-nano 上的散熱片溫度變大幅下降,即使是在執行推論神經網路模型時,溫度也能夠維持在手指能夠觸碰的溫度範圍內。

了解 Jet -falcon 硬體的部分後,下面我們就來實測看看 JetBot 的開源程式碼吧!

NVIDIA – AI – IOT , Jetbot:https://github.com/NVIDIA-AI-IOT/jetbot

基本移動

不論是使用行動電源版、或是鋰電池版本的 Jet-falcon,其實都建議以遠端連線的方式,操作 Jetson Nano,主要是為了增加 Jetson Nano 的使用效率。畢竟外接螢幕時,Jetson Nano 會為了將影像輸出至螢幕,而占用些許運算資源。

根據 Jetbot 的開源程式碼,可成功地透過 Jupyter Notebook ,遠端連線至 Jet-falcon 上,並執行了關於 Jetbot 中,「Basic Motion」程式碼,結果顯示於下方的 gif 動畫圖。

使用 Basic Motion 程式碼移動的 Jet-falcon(圖片來源:創客萊吧提供)

影像擷取

Jetson Nano 支援使用樹莓派的鏡頭設備,來擷取影像畫面。因此目前在Jet- falcon 上,我們安裝的是樹莓派鏡頭。使用的是「collision_avoidance」中的「live_demo」部份程式碼,實測的結果在下方的 gif 動畫圖。

使用 「 collision_avoidance 」 中的 「 live_demo 」部份程式碼,測試影像畫面(圖片來源:創客萊吧提供)

避免碰撞

Jetbot 的經典使用方法,便是避免碰撞障礙物的實驗。在「collision_avoidance」範例程式中,使用遷移式學習(transfer learning),搭配知名的預模型(pre-trained model),來完成避免碰撞障礙物的實驗。下方的影片,便是 Jet-falcon 使用此種方法,完成避免掉落於桌面的實驗。

人臉辨識

測試完 Jetbot 的開源程式碼後,也測試了「人臉辨識」的功能應用,相關的實驗結果在下方影片中。

本次的 Jet-falcon 與 Jetbot 實驗到這裡就告一段落。接下來,仍舊會持續測試 Jetson Nano 的許多應用,包含如何在 Jetson Nano 上,使用「 ROS 系統喔」!

另外,大家有沒有發現,在測試影像擷取的實驗中,測試的影像是什呢?其實是 「 Jetson Nano 壓克力外殼 」喔!

Jetson Nano 壓克力外殼:https://www.icshop.com.tw/product_info.php/products_id/27373

Jet-falcon:https://www.icshop.com.tw/product_info.php/products_id/27367

(本文轉載自創客萊吧原文連結;責任編輯:楊子嫻)

創客萊吧MakerLab

分享有趣的創作與教學,提供Maker們創作的軍火庫,DIY 零件 | 套件| 工具。
創客萊吧MakerLab

Author: 創客萊吧MakerLab

分享有趣的創作與教學,提供Maker們創作的軍火庫,DIY 零件 | 套件| 工具。

Share This Post On
468 ad

1 Comment

  1. 請問一下, 我在icshop買了Jetbto進行組裝, 卻發現沒有說明書.因為沒有PiOLED display, 所以無法照nvidia網站教學組裝, 其中icshop進電機雙直流驅動器控制板 DC-Stepper-Motor PCA9685+TB6612的3v3, GND, SCL, SDA如何接到jetson nano的哪個位置上 ? 可否提供建議, 謝謝.

    Post a Reply

Submit a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *