幾乎完美安裝! NVIDIA Jetson Nano B01 Ubuntu 18.04.3 LTS 的 ROS 安裝和小白的踩坑記錄【會繼續完善】


NVIDIA Jetson Nano B01技術規格

在這里插入圖片描述

GPU:128 核心 Maxwell
CPU:4 Core ARM A57 @1.43 GHz
RAM:4 GB LPDDR4
儲存:Micro SD 至少16GB (我使用的是32GB TF卡)
接口:MIPI CSI-2 DPHY x2;千兆以太網接口;M.2 Key E(我這里用於安裝無線網卡);
顯示:HDMI和DP
USB:USB 3.0 x4;USB 2.0 Micro-USB x1
GPIO接口


Ubuntu 定制系統的安裝

先下載Ubuntu 18.04.3 LTS 操作系統
操作系統下載地址:百度網盤鏈接 密碼: tun3
燒錄工具下載地址:百度網盤鏈接 密碼: qhll

下載完成之后,解壓,是一個img文件解壓完的鏡像
使用下載完的燒錄工具:win32diskimager 一路確定就好,等待安裝完成之后,從開始菜單打開即可。

軟件界面
打開軟件之后,在映像文件那一欄選擇你解壓過后的鏡像文件,右側設備選擇你要燒錄鏡像的SD卡。SD卡的命名務必是英文命名,我第一次燒錄的時候就因為是中文命名而燒錄失敗。在這之后選擇完成之后,就可以點擊寫入了。

燒錄時的踩坑記錄

SD卡格式

這個時候就要注意了,有的人可以直接開始燒錄,而有的人就不能開始燒錄,出現這個問題,很有可能就是你的SD卡的文件格式不正確,是默認的FAT格式。這個時候你就需要將SD格式化為exFAT格式,格式化完成之后你就可以嘗試燒錄了。

SD卡安全信息

注意!!!這一點非常重要!!!你所選擇的這個磁盤會被完全抹掉,請在燒錄之前一定要備份該SD卡內的全部文件!!!

燒錄過程中的注意事項

這一點也很重要!!!在燒錄的過程中,請不要向電腦插入任何新的外接設備也千萬不要拔出任何的外接設備!!!否則會導致燒錄失敗!!!


開始安裝Ubuntu

在這里插入圖片描述
將SD卡片插入到NVIDIA的卡槽中,在操作這步之前一定要斷電操作!!!(我第一次燒錄失敗后,重新燒錄完,裝卡片的時候沒有斷電,結果機子的燈突然不亮了,嚇死我了【恐怖臉】,立馬斷電,還好斷電及時,不然我新買的板子就沒了,笑)
SD卡插入之后,插電,開機,五安大電牛(不是)

屏幕順利點亮!我當場老淚縱橫。

順利進安裝界面了。我這里沒拍下來這一歷史性時刻,簡直是一個遺憾,我后面再裝系統的時候一定要拍下來(笑)

人生就在於玩命折騰 ——魯迅
魯迅:不,我不知道,我沒說過,不要問我

安裝的時候和正常的Ubuntu安裝幾乎一致,就那樣安裝就可以了。整個過程不會超過10分鍾。
這里要提示一點,我安裝的時候中間有一個要選擇應用大小的那個界面(我沒拍下來,總之就是選最大的那個就好了,應該是默認的那個)

太棒了,安裝完成了!小伙伴們一定要記住自己的用戶名和密碼哦。阿拉,還有設置密碼的時候一定要注意大小寫喲~


進入Ubuntu系統之后的一通折騰

首先,我個人明確表示不想在這個定制的Ubuntu里面裝中文輸入法和中文界面,不是我不想裝,是太煩了!!!為了裝這個中文輸入法和中文界面,我重裝了兩次系統,希望有大佬在評論區能幫我解答一下這個問題。

再其次,我非常不推薦接分辨率低於1280x720的屏幕,因為有的窗口顯示不全,甚至無法打開,所以在這里我想跟各位朋友說一下,如果你想使用樹莓派的屏幕,我直接建議你放棄,最好是買一塊新的屏幕,這一點對於后續的開發非常友好。

默認的NVIDIA的桌面非常酷,但是太花哨了,我就給換了個我喜歡的山水背景。

切記,一定要把屏幕自動休眠給關掉!!!不然就會像我好不容易裝完了ROS要測試的時候,提示我需要讓屏幕點亮,應該是這個提示,總之就一定要把屏幕自動休眠關掉啦~

另外,要是想接VNC的話,我目前只在有線網的環境下連接成功過,希望有大佬能幫我解決這個問題!!!


SSH的配置

可能有人要問了,為嘛不直接在Jetson Nano上安裝,非得搞一個SSH?

答案很簡單,我T*D是在受不了那種無法愉快地復制粘貼的感覺,我在Mac里面可以直接從terminal里面愉快的復制粘貼代碼,同時還能看《輝夜》(手動狗頭)

SSH的服務端配置

首先,得要安裝服務端

sudo apt-get install openssh-server

接着,你得看看你的這個服務端有沒有工作

ps -e | grep ssh

如果出現了如下這種sshd,就說明:恭喜,你安裝成功了!!!

在這里插入圖片描述
什么鬼??我這咋這么多sshd?????不管了,反正能用(哼)

好啦好啦,還差最后一步就完成啦

sudo apt install openssh-client

這步之后就OK了!

來看看你的主機能不能連接到Jetson 開發板吧!
我這里使用的是macOS Big Sur Beta操作系統 (蘋果你還我編譯器!!!還我虛擬機!!!)

SSH的客戶端連接(Mac)

第一步,在launchpad里面輸入terminal並打開在這里插入圖片描述
在這里插入圖片描述
第二步,在terminal里面輸入

ssh User_Name@target-computer-IP

我這里是:

ssh william@192.168.0.109

各位小伙伴們,這個User_Name是你開發板上Ubuntu系統用戶的用戶名,這個target-computer-IP是你開發板的IP地址

什么??你說你不知道你的開發板的IP地址???放心,這也好辦,在你的開發板上打開terminal(前提是你的開發板有一個能夠正常顯示內容的屏幕)在terminal里面輸入

ifconfig

我這里偷個懶,直接在ssh里面輸入查詢了
在這里插入圖片描述
大家可以看到這個wlan0這一欄,顯示的是192.168.0.109,這個就是我的開發板的IP地址了,同理你也可以查詢到你的開發板的IP地址了。

這里建議大家,登錄路由器的后台,把你的這個開發板的IP地址給固定下來,這樣子就避免了每次SSH鏈接之前要查詢一遍IP的痛苦了。(我反正覺得挺歡樂的,笑)

SSH客戶端的連接(IBM兼容機)

由於我手頭沒有IBM兼容機,所以我這(zhei第四音)里轉發了一下我認為還不錯的其他博主的連接教程(請多多包涵啦)

https://www.cnblogs.com/tansuoxinweilai/p/11617797.html


ROS的安裝教程與若干問題的解決方法

初步認識 ROS

ROS是嘛呢?我替你們百度了一下:

ROS是用於編寫機器人軟件程序的一種具有高度靈活性的軟件架構。它包含了大量工具軟件、庫代碼和約定協議,旨在簡化跨機器人平台創建復雜、魯棒的機器人行為這一過程的難度與復雜度。

ROS設計者將ROS表述為“ROS = Plumbing + Tools + Capabilities + Ecosystem”,即ROS是通訊機制、工具軟件包、機器人高層技能以及機器人生態系統的集合體

ROS 各版本對應支持的Ubuntu版本:
在這里插入圖片描述
各位安裝的時候千萬別裝錯了!!!沒事,裝錯了也沒關系,反正裝不上(哭,我這里裝了不下十次,各位千萬千萬要看對版本!!!少走彎路!!!


開始安裝ROS

我是在Mac上用SSH連接開發板來安裝的。連接方法在上面^^

第一步,更換默認源(這個不是必須的,看你的網絡情況,我本人就沒換,用的熱點(哭))

在更換之前,你需要備份你的source.list文件,當然了,我頭鐵,沒備份就上了,各位千萬別學我。

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak    
#為防止誤操作后無法恢復,先備份原文件sources.list

之后使用vim來對文件進行編輯,刪掉原先的內容,再把下面的文件復制進去

sudo vim /etc/apt/sources.list

復制進去如下內容,記得保存啊,vim的這個保存方法自己查咯

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main multiverse restricted universe

接着,在terminal里面更新一下

sudo apt-get update

就好了

如果在update這里遇見類似這樣的情況

Reading package lists... Done
E: Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)
E: Unable to lock directory /var/lib/apt/lists/

可以使用下面的這種方法應該就可以解決無法update的問題了,造成這個問題的原因可能是由於上一個更新被強行終止但是后台還保留了進程,所以kill掉所有的相關進程就可以了

sudo killall apt
sudo killall apt-get
sudo killall synaptic

如果沒有問題,之后,添加源

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

添加密鑰

sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

接着,再在terminal里面更新一下

sudo apt-get update

非常重要的一步,正式安裝ROS!!!

sudo apt install ros-melodic-desktop-full

這個過程極其漫長,具體的時間取決於你的網絡質量,如果能使用比較科學的方法上網的話,應該能快許多

ROS 初始化

sudo rosdep init
rosdep update

如果這個時候未能初始化,或者說是安裝失敗,推薦你看看下面這個文檔,我是按照這個文檔解決的:

https://blog.csdn.net/qq_42127861/article/details/106998969?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.add_param_isCf&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.add_param_isCf

或者我根據我遇到的問題給轉載一下(沒問題的直接跳過這段):

第一步

sudo vim /etc/resolv.conf

第二步,將原有的nameserver注釋掉,並添加如下兩行

nameserver 8.8.8.8 #google域名服務器
nameserver 8.8.4.4 #google域名服務器

第三步,保存,執行如下命令:

sudo  apt-get update

第四步,執行如下命令

rosdep update

就OK了

這個時候再ROS 初始化嘗試一下,應該就能解決了

sudo rosdep init
rosdep update

假若還未解決,那還請Google一下咯

這里假裝已經初始化完成
沒問題的跳到這兒)緊接着執行如下命令:

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc

最后,再執行如下命令:

sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential

安裝ROS時我踩過的坑

1.換源問題

我相信有很多的朋友在安裝各種各樣的東西時,都遇到過換源的問題,很多人都說要換到國內的源,這個因人而異,也因網而異。我個人感覺,在聯通的網絡環境下,不用換源也沒啥問題,我就是用聯通網的(我沒打廣告!!!我也沒恰飯!!!),感覺還不錯,但也是偶爾抽風。

要是非得換成國內的源的話,我還是首推清華的,畢竟速度啥的都還不錯,就是依賴問題沒辦法解決。
備用的源的話,像是騰訊還有阿里的源也都還不錯,網易的也還湊合。這個看個人的喜好吧。

2.ROS的初始化

假如說,你都按照我的步驟安裝,沒啥問題,就是初始化死活都不行,第一先考慮是不是源的問題;第二,再考慮一下是不是版本沒對上,具體的版本之間的兼容問題,看上文的介紹。

3.是否要一次性安裝完成

必須一次性安裝完成!!!切忌安裝一半,說我想出去玩玩,關機休眠啥的,等回來再接着安裝。千萬不要這樣做,等於前功盡棄。特別的要命,我第三次重裝系統就是這個問題導致的(可能是這個問題導致的),就是安裝到一半,回宿舍了,然后接着搞,結果不行,那就重頭安裝吧,裝一半,您才怎着?熄燈斷電!(倒吸一口氣並流下了悔恨的淚水)結果第二天系統崩了,就重裝了(哭)。
一定要一次性裝完!!!

4.網絡環境

你所處的網絡環境一定要穩定,這里的穩定是指內網的穩定,不然會出現裝一半的時候SSH掉線的這種狀態,那個時候真就沒地方哭去了。

我記起來的就這些坑,對於各位大佬來講,我犯的這些都是些非常低級的錯誤,但是對於新入手NVIDIA Jetson Nano的朋友或者是剛剛接觸Ubuntu/Linux的朋友,興許能幫的上忙。如果大家有啥踩坑經歷,一定要在評論區留言交流哦,沒准你的經歷就能夠幫助在Ubuntu中迷失方向的一位朋友找到前進的方向(好多定語啊......)


測試ROS

前面費了這么大勁,咋樣才能知道有沒有安裝成功了呢?
測試一下唄
最簡單的就是小烏龜程序,我相信很多人在初學Python的時候,一定都接觸過小烏龜程序吧

首先,不管你是使用SSH還是直接在開發板上運行,都要先打開一個terminal來啟動ROS的核心程序

roscore 

記住,這個terminal不要關,打開一個新的terminal,運行如下程序,你會發現一個可愛的烏龜在屏幕中央(記住,這一步必須有屏幕連接着開發板,不然會報錯,vnc我試過不行,如果有不連屏幕就能顯示小烏龜的方法的話,請在評論區幫幫我這個孩子吧哈哈哈哈(泣極而喜,不是))

rosrun turtlesim turtlesim_node 

記住,這個terminal也不要關,咱再開一個terminal,運行如下命令

rosrun turtlesim turtle_teleop_key 

您再猜猜怎着,你可以用方向鍵來控制小烏龜移動了!!!如果不能移動的話,就請將這個命令行窗口保持在最前端,再試試就好了。(啊我好了)

玩了一會兒烏龜畫線之后,再再再再新開一個terminal
運行如下命令

rosrun rqt_graph rqt_graph 

就能看到ROS的圖形化界面了,在這里你可以看到各個節點之間的關系了。這個感覺簡直愛了。就仿佛看到了網戀女友的真面容一樣(咱可是面向對象編程啊,笑)

感慨

那么,至此,你的ROS就安裝完了,要再安裝其他的模組的話網上查查咯。Ubuntu對於我這種從初中就開始使用Mac的人來講,還算是非常有好的,畢竟操作方式都差不多,能夠很快適應。這個很快適應也跟我從初中開始就在各種折騰系統有關系。對於常年使用IBM兼容機的朋友來說,可能上手的困難不少,畢竟操作方式、圖形界面以及各種軟件的安裝方式全和Windows不同,所以建議大家買一本書看看,了解了解這個操作系統。當有了初步的了解與實踐之后,你會發現macOS還有Linux及其發行版使用起來要比Windows簡單的多。

所以,寫到這,我希望我的個人的安裝以及踩坑經歷能夠幫助到你。

如果我有步驟寫錯了或者是我解釋的地方說錯了,請直接在評論區尖銳的指出,畢竟我的這個安裝經歷能用下圖解釋:
在這里插入圖片描述
哈哈哈,碼了一天的字,找資料,回憶安裝過程,還是挺費精力的,希望能幫到你喔。
搞程序的人真的是可愛啊(笑)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM