如何低成本搭建ARM+ROS的硬件載體?上文為大家介紹了實現(xiàn)的思路及原理,本文將為讀者實際操作,展示ROS部署前的籌備工作及步驟分解。
1.方案概述
本文重點介紹低成本搭建ARM+ROS的硬件及底層實現(xiàn)。開發(fā)板選用HDG2L-IoT評估套件,默認配置為2G內存、8G存儲,搭載可玩性極高的Ubuntu系統(tǒng)。
![搭建ARM+ROS](https://file.elecfans.com/web2/M00/6D/81/pYYBAGMzvcWAYo8aAACgBX6IRhc141.jpg)
開發(fā)套件默認的Ubuntu系統(tǒng)大概占用3.1G空間,剩余3.2G空間,在構建docker+ROS環(huán)境時可能會報eMMC空間不足的錯誤,所以需要調整HDG2L-IoT的啟動參數(shù),將啟動參數(shù)改為引導到TF空間中。市面上常見的樹莓派部署ROS方案也是如此操作。
2.方案準備
首先,需要用到的硬件如下所示。
![搭建ARM+ROS硬件準備](https://file.elecfans.com/web2/M00/6C/EB/poYBAGMzvcaAQj0XAAKY3MYMb38167.jpg)
![硬件參數(shù)](https://file.elecfans.com/web2/M00/6D/81/pYYBAGMzvcWAewxYAABsBW8wHkA849.jpg)
3.TF卡掛載Ubuntu固件修改
本小節(jié)將介紹如何實現(xiàn)HDG2L-IoT掛載TF卡內的文件系統(tǒng),步驟如下:
1)制作啟動卡;
2)解壓目標文件系統(tǒng)到TF卡內;
3)修改uboot啟動參數(shù);
3.1制作啟動卡
首先制作啟動卡,格式化TF卡的操作可通過瑞薩提供的shell腳本實現(xiàn),在PC端的Ubuntu開發(fā)環(huán)境下,執(zhí)行以下命令來下載操作腳本。
![Ubuntu開發(fā)環(huán)境](https://file.elecfans.com/web2/M00/6C/EB/poYBAGMzvcWAWCfzAAAhq0k27a4575.jpg)
將需要被用作啟動卡的TF卡插入到PC機內,用虛擬機來操作,調整步驟如下。首先打開虛擬機的USB3.1功能,以免TF卡讀取失敗。
![Ubuntu開發(fā)環(huán)境](https://file.elecfans.com/web2/M00/6C/EB/poYBAGMzvcaAC5AHAAFPE-kAwDg576.jpg)
然后將TF卡導入Ubuntu虛擬機中,如下所示。
![TF卡導入Ubuntu虛擬機](https://file.elecfans.com/web2/M00/6D/82/pYYBAGMzvcaAHAr1AAESTiP1td8905.jpg)
系統(tǒng)能識別后,執(zhí)行剛才下載的usb_sd_partition.sh腳本,如下所示。
![7.jpg](https://file.elecfans.com/web2/M00/6C/EB/poYBAGMzvcaAQVL3AAAca_eO8vs417.jpg)
腳本執(zhí)行成功后,TF卡將分為兩個分區(qū),分區(qū)1為fat32,分區(qū)2為ext4。
![8.jpg](https://file.elecfans.com/web2/M00/6C/EB/poYBAGMzvcaAIlJtAAApOBahly8978.jpg)
(注:當前新版本的Windows系統(tǒng)比較少支持ext4格式的TF卡,所以在Windows環(huán)境下一般只看到分區(qū)1,分區(qū)2會提示需要格式才能識別,請忽略。)
3.2拷貝目標文件到TF中
將HDG2L-IoT配套的Ubuntu壓縮包解壓到ext4分區(qū)中,虛擬機內自動掛載到/media/${USER}/sdb2內。本機的解壓命令如下所示。
![9.jpg](https://file.elecfans.com/web2/M00/6D/82/pYYBAGMzvcaASOCtAAAQhWbM2Yo200.jpg)
將HDG2L-IoT配套的內核鏡像拷貝到Windows下識別的TF分區(qū)中(FAT32系統(tǒng)允許被Windows系統(tǒng)識別,ext4系統(tǒng)不被識別),拷貝后如下所示。
![10.jpg](https://file.elecfans.com/web2/M00/6C/EB/poYBAGMzvcaAcgLRAAB6GknQlfw315.jpg)
3.3修改uboot啟動參數(shù)
最后需要調整HDG2L-IoT的uboot啟動啟動參數(shù),引導其使用TF卡內的內核與文件系統(tǒng),首先上電,在倒計時前進入uboot菜單,如下所示。
![11 (2).jpg](https://file.elecfans.com/web2/M00/6D/82/pYYBAGMzvcaAF1AuAABmCozRG6k977.jpg)
將上一步中制作好的TF卡插入HDG2L-IoT板卡的TF卡槽中,在U-Boot提示符下設定以下變量,bootargs變量用于指定文件系統(tǒng)的載體,在系統(tǒng)內,TF卡槽占用的設備名為/dev/mmcblk1p2。
![12.jpg](https://file.elecfans.com/web2/M00/6C/EB/poYBAGMzvceAQownAAAT4QMmxgk678.jpg)
然后設置從TF的分區(qū)1內獲取內核鏡像和內核設備樹,命令如下所示。
![13.jpg](https://file.elecfans.com/web2/M00/6D/82/pYYBAGMzvceAETPsAAAvVsyPyQ8631.jpg)
設置完成后,通過以下命令保存uboot的環(huán)境變量,命令如下所示。
![14.jpg](https://file.elecfans.com/web2/M00/6C/EB/poYBAGMzvceAV0GeAAAJd_5fHd8289.jpg)
重新啟動后,若TF卡正常,整體存儲空間情況如下所示。
![15.jpg](https://file.elecfans.com/web2/M00/6D/82/pYYBAGMzvceALXh7AADyq58lZIE443.jpg)
若TF卡沒插入,uboot的啟動會報錯誤信息,錯誤信息如下所示。
![16.jpg](https://file.elecfans.com/web2/M00/6C/EB/poYBAGMzvceAQfmEAAEKFf7OkgU373.jpg)
4.安裝docker環(huán)境
正常啟動之后,開始搭建docker環(huán)境。
4.1安裝docker軟件
首先,燒錄后的第一次上電的板卡需要更新內部的軟件版本,命令如下所示。update更新失敗注意檢測網絡狀態(tài)和date日期。部分軟件可能體積過大,需要耐心等待。
![17.jpg](https://file.elecfans.com/web2/M00/6D/82/pYYBAGMzvceAIlA4AAAJF5HqwJM267.jpg)
然后清除舊版本的docker軟件,再重新安裝docker.io。
![18.jpg](https://file.elecfans.com/web2/M00/6C/EB/poYBAGMzvceATrx7AAAYYp7mQVw064.jpg)
啟動docker。
![19.jpg](https://file.elecfans.com/web2/M00/6D/82/pYYBAGMzvceAO_eAAAALXPB3e8g641.jpg)
使能docker開機自啟動。
![20.jpg](https://file.elecfans.com/web2/M00/6C/EB/poYBAGMzvciAQxDhAAAMsLAM8TA753.jpg)
檢查docker運行狀態(tài)。
![21.jpg](https://file.elecfans.com/web2/M00/6C/EB/poYBAGMzvciAS-8AAAAKfvo4D2s908.jpg)
![22.jpg](https://file.elecfans.com/web2/M00/6D/82/pYYBAGMzvciAPeQxAAJKUq0ZlNQ657.jpg)
4.2獲取鏡像
運行此命令可以從DockerHub上下載現(xiàn)成鏡像。
![23.jpg](https://file.elecfans.com/web2/M00/6D/82/pYYBAGMzvciADlc0AAANaNjr6LM644.jpg)
查看本地的鏡像文件命令如下所示。
![24.jpg](https://file.elecfans.com/web2/M00/6C/EB/poYBAGMzvciAKOCDAAAI_RmpX8s141.jpg)
![25.jpg](https://file.elecfans.com/web2/M00/6C/EB/poYBAGMzvciARi-XAABAtyjDrWA195.jpg)
4.3創(chuàng)建容器
容器就是加載模板后運行的沙盒環(huán)境,具有運行時所需的可寫文件層、應用程序也處于運行狀態(tài)。概念上可能會與PC端常用的虛擬機混淆,虛擬機是包括內核、應用運行環(huán)境和其他系統(tǒng)環(huán)境的,而Docker容器就是獨立運行的一個或一組應用以及他們必須的運行環(huán)境。
創(chuàng)建容器時,需要指定使用的鏡像文件,這里使用上面用pull指令下載下來的鏡像文件,創(chuàng)建命令如下所示。
![26.jpg](https://file.elecfans.com/web2/M00/6D/82/pYYBAGMzvciAJdkYAAAMv7bF6vg334.jpg)
查看容器狀態(tài),命令如下所示,每個容器都有自己的CONTAINER_ID與NAMES,供后面的命令操作使用(可使用dockerrename命令修改容器名,便于簡便使用)。
![27.jpg](https://file.elecfans.com/web2/M00/6D/82/pYYBAGMzvciATfxQAAAKhrabUaU405.jpg)
![28.jpg](https://file.elecfans.com/web2/M00/6C/EB/poYBAGMzvciAOjhFAABEXc0tIwQ825.jpg)
4.4啟動容器
容器創(chuàng)建后,通過CONTAINER_ID與NAMES來操作容器,啟動命令如下所示。
![29.jpg](https://file.elecfans.com/web2/M00/6C/EB/poYBAGMzvcmAJC0FAAAXEt5JuM0960.jpg)
上文所說,容器是運行一個或一組進程,dockerps命令里的COMMAND即為容器運行的進程,當前顯示bash,即進入命令交互進程。通過以下命令進入容器內部。
![30.jpg](https://file.elecfans.com/web2/M00/6D/82/pYYBAGMzvcmAKl9JAAALNPbXmZs184.jpg)
進入后,可以操作容器內的命令,如下所示。
![31.jpg](https://file.elecfans.com/web2/M00/6C/EB/poYBAGMzvcmADkEYAAC_Y_6ct48218.jpg)
通過exit命令,可退出容器,退出后容器就處于停止狀態(tài),如下所示。
![32.jpg](https://file.elecfans.com/web2/M00/6D/82/pYYBAGMzvcmAMLOCAAB1s-WyxZ4297.jpg)
通過以上操作,我們就完成了硬件與底層的搭建,為ROS運行在這套開發(fā)板上做好了準備,下一章節(jié)將為大家?guī)鞷OS的部署方法。
-
ARM
+關注
關注
134文章
9172瀏覽量
369267 -
開發(fā)板
+關注
關注
25文章
5123瀏覽量
98237 -
ROS
+關注
關注
1文章
280瀏覽量
17104
發(fā)布評論請先 登錄
相關推薦
【「具身智能機器人系統(tǒng)」閱讀體驗】2.具身智能機器人的基礎模塊
《具身智能機器人系統(tǒng)》第10-13章閱讀心得之具身智能機器人計算挑戰(zhàn)
【「具身智能機器人系統(tǒng)」閱讀體驗】+兩本互為支持的書
【「具身智能機器人系統(tǒng)」閱讀體驗】2.具身智能機器人大模型
【「具身智能機器人系統(tǒng)」閱讀體驗】1.初步理解具身智能
【「具身智能機器人系統(tǒng)」閱讀體驗】+初品的體驗
《具身智能機器人系統(tǒng)》第1-6章閱讀心得之具身智能機器人系統(tǒng)背景知識與基礎模塊
ROSCon China 2024 | RDK第一本教材來了!地瓜機器人與古月居發(fā)布新書《ROS 2智能機器人開發(fā)實踐》
![ROSCon China 2024 | RDK第一本教材來了!地瓜<b class='flag-5'>機器人</b>與古月居發(fā)布新書《<b class='flag-5'>ROS</b> 2智能<b class='flag-5'>機器人</b>開發(fā)實踐》](https://file1.elecfans.com/web3/M00/01/CC/wKgZO2dYG-KAHW2XAAC8Z6fkJnk561.png)
ROS讓機器人開發(fā)更便捷,基于RK3568J+Debian系統(tǒng)發(fā)布!
國產Cortex-A55人工智能教學實驗箱_基于Python機械臂跳舞實驗案例分享
基于飛凌嵌入式RK3568J核心板的工業(yè)機器人控制器應用方案
基于鴻道(Intewell?)操作系統(tǒng)研發(fā)的農業(yè)機器人操作系統(tǒng)
技術融合與創(chuàng)新大象機器人水星Mercury X1人形機器人案例研究!
![技術融合與創(chuàng)新大象<b class='flag-5'>機器人</b>水星Mercury X1<b class='flag-5'>人</b>形<b class='flag-5'>機器人</b>案例研究!](https://file1.elecfans.com/web2/M00/DF/0D/wKgaomYt55mAOKkVAAgINhZXgIs297.png)
實現(xiàn)機器人操作系統(tǒng)——ADI Trinamic電機控制器ROS1驅動程序簡介
工業(yè)控制:鴻道(Intewell)操作系統(tǒng)工業(yè)機器人控制解決方案
![工業(yè)控制:鴻道(Intewell)<b class='flag-5'>操作系統(tǒng)</b>工業(yè)<b class='flag-5'>機器人</b>控制解決方案](https://file1.elecfans.com/web2/M00/C5/2E/wKgaomXyXfSAZwFaAACOVl_Ez0E827.png)
評論