加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 1.方案概述
    • 2.方案準(zhǔn)備
    • 3.TF卡掛載Ubuntu固件修改
    • 4.安裝docker環(huán)境
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

實(shí)現(xiàn)ARM+ROS(機(jī)器人操作系統(tǒng))之環(huán)境搭建!

2022/09/28
997
閱讀需 7 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

如何低成本搭建ARM+ROS的硬件載體?上文為大家介紹了實(shí)現(xiàn)的思路及原理,本文將為讀者實(shí)際操作,展示ROS部署前的籌備工作及步驟分解。

1.方案概述

本文重點(diǎn)介紹低成本搭建ARM+ROS的硬件及底層實(shí)現(xiàn)。開發(fā)板選用HDG2L-IoT評估套件,默認(rèn)配置為2G內(nèi)存、8G存儲,搭載可玩性極高的Ubuntu系統(tǒng)。

       

開發(fā)套件默認(rèn)的Ubuntu系統(tǒng)大概占用3.1G空間,剩余3.2G空間,在構(gòu)建docker+ROS環(huán)境時(shí)可能會報(bào)eMMC空間不足的錯(cuò)誤,所以需要調(diào)整HDG2L-IoT的啟動參數(shù),將啟動參數(shù)改為引導(dǎo)到TF空間中。市面上常見的樹莓派部署ROS方案也是如此操作。

2.方案準(zhǔn)備

首先,需要用到的硬件如下所示。

      

      

3.TF卡掛載Ubuntu固件修改

本小節(jié)將介紹如何實(shí)現(xiàn)HDG2L-IoT掛載TF卡內(nèi)的文件系統(tǒng),步驟如下:

1)制作啟動卡;

2)解壓目標(biāo)文件系統(tǒng)到TF卡內(nèi);

3)修改uboot啟動參數(shù);

3.1制作啟動卡

首先制作啟動卡,格式化TF卡的操作可通過瑞薩提供的shell腳本實(shí)現(xiàn),在PC端的Ubuntu開發(fā)環(huán)境下,執(zhí)行以下命令來下載操作腳本。

將需要被用作啟動卡的TF卡插入到PC機(jī)內(nèi),用虛擬機(jī)來操作,調(diào)整步驟如下。首先打開虛擬機(jī)的USB 3.1功能,以免TF卡讀取失敗。

       

然后將TF卡導(dǎo)入U(xiǎn)buntu虛擬機(jī)中,如下所示。

       

系統(tǒng)能識別后,執(zhí)行剛才下載的usb_sd_partition.sh腳本,如下所示。

       

腳本執(zhí)行成功后,TF卡將分為兩個(gè)分區(qū),分區(qū)1為fat32,分區(qū)2為ext4。

(注:當(dāng)前新版本的Windows系統(tǒng)比較少支持ext4格式的TF卡,所以在Windows環(huán)境下一般只看到分區(qū)1,分區(qū)2會提示需要格式才能識別,請忽略。)

3.2拷貝目標(biāo)文件到TF中

將HDG2L-IoT配套的Ubuntu壓縮包解壓到ext4分區(qū)中,虛擬機(jī)內(nèi)自動掛載到/media/${USER}/sdb2內(nèi)。本機(jī)的解壓命令如下所示。

將HDG2L-IoT配套的內(nèi)核鏡像拷貝到Windows下識別的TF分區(qū)中(FAT32系統(tǒng)允許被Windows系統(tǒng)識別,ext4系統(tǒng)不被識別),拷貝后如下所示。

3.3修改uboot啟動參數(shù)

最后需要調(diào)整HDG2L-IoT的uboot啟動啟動參數(shù),引導(dǎo)其使用TF卡內(nèi)的內(nèi)核與文件系統(tǒng),首先上電,在倒計(jì)時(shí)前進(jìn)入uboot菜單,如下所示。

將上一步中制作好的TF卡插入HDG2L-IoT板卡的TF卡槽中,在U-Boot提示符下設(shè)定以下變量,bootargs變量用于指定文件系統(tǒng)的載體,在系統(tǒng)內(nèi),TF卡槽占用的設(shè)備名為/dev/mmcblk1p2。

       

然后設(shè)置從TF的分區(qū)1內(nèi)獲取內(nèi)核鏡像和內(nèi)核設(shè)備樹,命令如下所示。

設(shè)置完成后,通過以下命令保存uboot的環(huán)境變量,命令如下所示。

       

重新啟動后,若TF卡正常,整體存儲空間情況如下所示。

       

若TF卡沒插入,uboot的啟動會報(bào)錯(cuò)誤信息,錯(cuò)誤信息如下所示。

4.安裝docker環(huán)境

正常啟動之后,開始搭建docker環(huán)境。

4.1安裝docker軟件

首先,燒錄后的第一次上電的板卡需要更新內(nèi)部的軟件版本,命令如下所示。update更新失敗注意檢測網(wǎng)絡(luò)狀態(tài)和date日期。部分軟件可能體積過大,需要耐心等待。

       

然后清除舊版本的docker軟件,再重新安裝docker.io。

啟動docker。

       

使能docker開機(jī)自啟動。

       

檢查docker運(yùn)行狀態(tài)。

4.2獲取鏡像

運(yùn)行此命令可以從Docker Hub上下載現(xiàn)成鏡像。

       

查看本地的鏡像文件命令如下所示。

4.3創(chuàng)建容器

容器就是加載模板后運(yùn)行的沙盒環(huán)境,具有運(yùn)行時(shí)所需的可寫文件層、應(yīng)用程序也處于運(yùn)行狀態(tài)。概念上可能會與PC端常用的虛擬機(jī)混淆,虛擬機(jī)是包括內(nèi)核、應(yīng)用運(yùn)行環(huán)境和其他系統(tǒng)環(huán)境的,而Docker容器就是獨(dú)立運(yùn)行的一個(gè)或一組應(yīng)用以及他們必須的運(yùn)行環(huán)境。

       

創(chuàng)建容器時(shí),需要指定使用的鏡像文件,這里使用上面用pull指令下載下來的鏡像文件,創(chuàng)建命令如下所示。

       

查看容器狀態(tài),命令如下所示,每個(gè)容器都有自己的CONTAINER_ID與NAMES,供后面的命令操作使用(可使用docker rename命令修改容器名,便于簡便使用)。

4.4啟動容器

容器創(chuàng)建后,通過CONTAINER_ID與NAMES來操作容器,啟動命令如下所示。

       

上文所說,容器是運(yùn)行一個(gè)或一組進(jìn)程,docker ps命令里的COMMAND即為容器運(yùn)行的進(jìn)程,當(dāng)前顯示bash,即進(jìn)入命令交互進(jìn)程。通過以下命令進(jìn)入容器內(nèi)部。

       

進(jìn)入后,可以操作容器內(nèi)的命令,如下所示。

       

通過exit命令,可退出容器,退出后容器就處于停止?fàn)顟B(tài),如下所示。

通過以上操作,我們就完成了硬件與底層的搭建,為ROS運(yùn)行在這套開發(fā)板上做好了準(zhǔn)備,下一章節(jié)將為大家?guī)鞷OS的部署方法。

Arm

Arm

ARM公司是一家知識產(chǎn)權(quán)(IP)供應(yīng)商,主要為國際上其他的電子公司提供高性能RISC處理器、外設(shè)和系統(tǒng)芯片技術(shù)授權(quán)。目前,ARM公司的處理器內(nèi)核已經(jīng)成為便攜通訊、手持計(jì)算設(shè)備、多媒體數(shù)字消費(fèi)品等方案的RISC標(biāo)準(zhǔn)。公司1990年11月由Acorn、Apple和VLSI合并而成。

ARM公司是一家知識產(chǎn)權(quán)(IP)供應(yīng)商,主要為國際上其他的電子公司提供高性能RISC處理器、外設(shè)和系統(tǒng)芯片技術(shù)授權(quán)。目前,ARM公司的處理器內(nèi)核已經(jīng)成為便攜通訊、手持計(jì)算設(shè)備、多媒體數(shù)字消費(fèi)品等方案的RISC標(biāo)準(zhǔn)。公司1990年11月由Acorn、Apple和VLSI合并而成。收起

查看更多

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

以博士后為核心的嵌入式團(tuán)隊(duì),專注于為企業(yè)客戶提供嵌入式核心模塊、 邊緣計(jì)算網(wǎng)關(guān)、 嵌入式網(wǎng)關(guān)模塊、 PASS軟件等產(chǎn)品。