RoboMaster視覺教程(2)妙算(Nvidia Tegra K1)系統配置

概覽

這裏所說的妙算是大疆的第一代妙算,核心處理器爲 Tegra K1 ,很輕顏值很高,現在已經停產了。

在實際應用中可以明顯的感覺到妙算的性能不夠。妙算主要是給 M100 設計的,對 M100 的 X3 攝像頭做了優化,即可以通過 GPU 讀取 X3 攝像頭的數據。但對於比賽來說基本沒用,而且我也從來沒有成功用它讀取過 X3 攝像頭數據 (T_T) 。妙算的 GPU 只有在進行深度學習類的任務時纔有用武之地,而在識別裝甲板之類的任務時基本上是擺設,儘管有 zero copy 的特性,但是很不好用。

在這裏吐槽了半天妙算,可能你會說:既然妙算這麼垃圾,爲啥還要用它?因爲窮啊,當初買妙算的時候也是割了肉買的,還買了5個……

妙算資料鏈接彙總

妙算系統重置/克隆/恢復

妙算系統的安裝在說明書中寫的非常詳細了,這裏我說一下流程。

  1. 首先要有一臺裝了 Ubuntu 的電腦,將需要的鏡像和軟件包都下載好。

  2. 將鏡像解壓縮到某一個目錄,我推薦在用戶目錄下解壓。這裏要強調一點在解壓縮的時候千萬不要右鍵提取到此處,而一定要按照說明書中的命令來操作即:

    sudo tar -xvpzf <your path>/manifold_image_v1.0.tar.gz
    

    如果不這樣解壓將會破壞各個文件之間的用戶權限關係,在裝好系統後會出現奇奇怪怪的bug。

  3. 妙算進入恢復模式(就是刷機模式)

    有兩種方法我推薦使用說明書中的方法2,方法2只要按一個按鈕而方法1要同時按兩個按鈕。

  4. 製作系統默認鏡像,在說明書中製作系統鏡像恢復系統鏡像這兩個標題容易誤導。我解釋一下:

    如果你想恢復到系統的默認鏡像只要運行

    sudo ./flash.shjetson-tk1 mmcblk0p1
    

    就可以了。

    而如果你想將現有妙算的系統備份則需要用到製作系統鏡像中的內容。

    這裏我推薦一種批量刷機的方法,在比賽中需要用到多個妙算,如果每個妙算都要從零開始配置工作量是巨大的。當我們在一臺妙算上把所有的配置搞定之後就可以通過製作系統鏡像功能來備份該妙算的系統,然後通過恢復系統鏡像的功能來刷機。

    #系統鏡像備份代碼
    sudo ./nvflash --read APP system.img --bl ardbeg/fastboot.bin --go
    #將鏡像中的系統恢復到妙算
    sudo ./flash.sh –r jetson-tk1 mmcblk0p1
    

    有關刷機的部分可以參考https://elinux.org/Jetson/Cloning

妙算安裝系統後要做的事

妙算通過網線直連電腦並共享電腦網絡

在 Ubuntu 18.04 之前使用的網絡管理器是 Network Manager,但是在 18.04 後換了,可能是爲了符合 Gnome3 的審美吧,不過這樣就缺失了一個超級好用的功能 網絡共享 通過這個功能可以實現將電腦作爲路由器將網絡通過網線共享給妙算。

由於我沒有怎麼用過 Ubuntu 18.04 主要都在用 16.04 ,所以我不是很清楚怎樣在 18.04 上安裝 Network Manager 可以參考官方的這篇文章來安裝 https://help.ubuntu.com/community/NetworkManager

下面進入正題:

  1. 首先找到系統托盤中的 網絡圖標 ,右鍵單擊後再左鍵點擊 編輯連接
    network

  2. 在出現的網絡連接界面中點擊 增加
    在這裏插入圖片描述

  3. 選擇 以太網 後點擊 新建
    在這裏插入圖片描述

  4. 點擊 ipv4 設置,在 方法 上選擇 「與其他計算機共享」,然後保存。
    在這裏插入圖片描述

  5. 之後在終端輸入arp -a就可以查看妙算對應的 ip 了。10.42.0.1 是電腦的 ip ,10.42.0.xx 是妙算的 ip 。

妙算遠程調試

妙算可以直接接上顯示器鍵盤鼠標當成正常電腦來用,但是如果手頭沒有多餘的顯示器鍵盤鼠標怎麼辦呢?可以通過 ssh 實現遠程調試。

可能大家對 ssh 的印象只是停留在命令行中,其實 ssh 可以通過 X11 forwarding 來實現在本機中運行遠程計算機中的圖形界面程序,超級方便有沒有,只要你輸入 qtcreator 立刻一個編輯器的界面就彈出來了就像在運行你自己電腦中的程序一樣。當然放視頻會很卡。

ssh -XC [email protected] #後面的是妙算的ip

與一般 ssh 命令不同的地方就是多了 -XC 選項,X 是啓用 X11 forwarding ,C 是用來通過壓縮傳輸所有信息。

妙算安裝 FTP

如果需要經常在妙算與電腦之間傳輸數據,最方便的方式不是優盤而是通過 FTP ,鑑於網上安裝 ftp 的資料非常多,這裏就不給出了(允許我偷下懶 (^-^*) )。

妙算配置軟件源

妙算用的 Ubuntu 與我們在桌面級電腦用的 Ubuntu 是不一樣的,如果按照常規的桌面系統配置軟件源的化一定無法使用。官方源的地址是 http://ports.ubuntu.com/ 而由於國內網絡劫持嚴重使用官方源有大概率會下載失敗,所以推薦使用清華或者中科大的軟件源,軟件源的修改方式可以參看中科大的幫助鏈接 https://mirrors.ustc.edu.cn/help/ubuntu-ports.html 需要注意的是在更改軟件源的時候一定要選擇對應於自己系統版本的軟件源,妙算系統是 14.04 的所以需要用 14.04 的源。

默認妙算是官方源,手動修改時只需要在 /etc/apt/sources.list 文件中,將軟件源的地址改爲 http://mirrors.ustc.edu.cn/ubuntu-ports即可。

妙算系統標題欄一跳一跳解決方案

官方的默認系統是存在 bug 的,就是系統標題欄會一跳一跳,具體原因不清楚,不過很好修復,只要將系統更新即可。

sudo apt update
sudo apt upgrade

妙算安裝 OpenCV / CUDA

妙算最好安裝官方的 OpenCV4tegra ,因爲 OpenCV4tegra 是專門針對妙算優化過的。在我實際應用中跑裝甲檢測程序用官方的 OpenCV 可以跑到 6ms 一幀,而自己編譯的最快跑到 8ms 。

CUDA 也直接按照說明書安裝即可,不過 TK1 只能使用 CUDA6.5 再往上不支持了,所以很多新的深度學習框架就不能用了,我安裝成功的只有 caffe1 的 rc5 版本再往上就有軟件包依賴性問題無解,可以到 GitHub 上找到源碼自行編譯。

妙算安裝 GCC5

由於我們用的視覺程序主框架是參考東南大學開源的程序,而他們使用了 C++14 中的新特性 unique_ptr 需要 GCC5 的支持,妙算由於使用的 Ubuntu 14.04 系統只提供 GCC 4.8 所以需要安裝 GCC5 ,GCC5 的安裝過程我忘了,當時可能參考了 https://blkstone.github.io/2016/05/25/ubuntu-1404-gcc-5/ 。如果有誤請留言或私信告訴我。

妙算安裝配置Qt Creator

Qt Creator 應該是 linux 上最好用的 IDE 了。有人可能不服, Vim 也很牛逼啊加上插件吊打一切, Emacs 的快捷鍵用着多爽,但是 Qt Creator 是學習成本最少界面最友好的,而且 qmake 的編譯管理做的非常棒,寥寥幾句就可以描述一個完整的項目與 cmake 對比爽太多了。

妙算的 cpu 由於是 Arm 架構的而且系統爲 Ubuntu 14.04 ,所以無法安裝最新的 Qt Creator ,不過不要緊源中的 Qt Creator 已經足夠用了。

sudo apt install qtcreator

安裝完 Qt Creator 後編譯器 Qt 環境什麼的都是裝好的,但是如果需要使用 GCC5 的化需要自行配置編譯器,由於手頭沒有妙算,我就在自己電腦上截圖憑印象說了,可能會與實際情況有出入。

首先點擊:工具–>選項,之後彈出選項界面。
在這裏插入圖片描述

在選項界面找到 構建和運行中編譯器 可以在這裏更改編譯器路徑,將他們都改成 GCC5 對應的路徑就可以啦。

在這裏插入圖片描述
申請了一個自己的公衆號江達小記,打算將自己的學習研究的經驗總結下來幫助他人也方便自己。感興趣的朋友可以關注一下。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章