找回密码
 注册
关于网站域名变更的通知
查看: 236|回复: 1
打印 上一主题 下一主题

实现ARM+ROS(机器人操作系统)之环境搭建!

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-9-28 11:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
    如何低成本搭建ARM+ROS的硬件载体?上文为大家介绍了实现的思路及原理,本文将为读者实际操作,展示ROS部署前的筹备工作及步骤分解。
- Y1 N  q: j+ z& ~# F
1. 方案概述. I& N0 K6 f- A4 G, P7 |- h4 S
本文重点介绍低成本搭建ARM+ROS的硬件及底层实现。开发板选用HDG2L-IoT评估套件,默认配置为2G内存、8G存储,搭载可玩性极高的Ubuntu系统。
$ ~3 ^  F- Q4 l/ g
- w5 M' @0 V+ }5 i! n( B- o
开发套件默认的Ubuntu系统大概占用3.1G空间,剩余3.2G空间,在构建docker+ROS环境时可能会报eMMC空间不足的错误,所以需要调整HDG2L-IoT的启动参数,将启动参数改为引导到TF空间中。市面上常见的树莓派部署ROS方案也是如此操作。

  s5 b  `1 z  }' }& ]: \3 e/ _2. 方案准备
6 Y0 x6 o9 k' {$ T
首先,需要用到的硬件如下所示。

$ ?# d) s+ S+ h* j& e/ R: g
) w& s% y+ c0 O8 W

$ P; X  R# U- M* }- G; T3. TF卡挂载Ubuntu固件修改) l5 q: L' s3 s) j% J
本小节将介绍如何实现HDG2L-IoT挂载TF卡内的文件系统,步骤如下:
1)制作启动卡;
2)解压目标文件系统到TF卡内;
3)修改uboot启动参数;

0 p. W1 D) x  a; l% c' x$ ?3.1制作启动卡
/ C7 Q. o$ G* |% M* a# m' y
首先制作启动卡,格式化TF卡的操作可通过瑞萨提供的shell脚本实现,在PC端的Ubuntu开发环境下,执行以下命令来下载操作脚本。
" K: G. k! f0 H. j; z
! O/ l& E- }+ z- d( z
将需要被用作启动卡的TF卡插入到PC机内,用虚拟机来操作,调整步骤如下。首先打开虚拟机的USB 3.1功能,以免TF卡读取失败。
" r# v! Z& d2 y. M6 g
) e9 V. ?. F+ K3 @0 K
然后将TF卡导入Ubuntu虚拟机中,如下所示。
* o6 @- B& S+ t- ^
9 K2 S/ q  i" Y
系统能识别后,执行刚才下载的usb_sd_partition.sh脚本,如下所示。

' x, u9 n6 j5 o6 e; b3 g, Y
% i  K  @# _0 {! a6 u
脚本执行成功后,TF卡将分为两个分区,分区1为fat32,分区2为ext4。

3 P$ z* K) m0 l+ v2 V, a
: _- \" |$ j. Z  w$ F# Q
(注:当前新版本的Windows系统比较少支持ext4格式的TF卡,所以在Windows环境下一般只看到分区1,分区2会提示需要格式才能识别,请忽略。)
8 M; H+ P# C! b) |4 b
3.2拷贝目标文件到TF中
% [5 e" c) o- m, o2 Q; @- M3 @
将HDG2L-IoT配套的Ubuntu压缩包解压到ext4分区中,虚拟机内自动挂载到/media/${USER}/sdb2内。本机的解压命令如下所示。

$ o# t' C) m5 M! u7 y% t' M

4 D) A% ]6 x0 ^
将HDG2L-IoT配套的内核镜像拷贝到Windows下识别的TF分区中(FAT32系统允许被Windows系统识别,ext4系统不被识别),拷贝后如下所示。

- Y; W" d  `4 N: k- X# T

- j+ v! `7 n; n9 B" S; X0 L( x$ Q7 I( H5 }! U' ^; r5 ^7 _' w
3.3修改uboot启动参数2 n1 \2 Y* V" w  ^( Z% `# `) G
最后需要调整HDG2L-IoT的uboot启动启动参数,引导其使用TF卡内的内核与文件系统,首先上电,在倒计时前进入uboot菜单,如下所示。

- ?$ E9 P6 V; k, f. {
- l& y* R/ f, v; F
将上一步中制作好的TF卡插入HDG2L-IoT板卡的TF卡槽中,在U-Boot提示符下设定以下变量,bootargs变量用于指定文件系统的载体,在系统内,TF卡槽占用的设备名为/dev/mmcblk1p2。
: C6 j" m( V) d: P. R9 ?
5 g8 b3 c9 N3 u. E0 D& L( `/ H0 K
然后设置从TF的分区1内获取内核镜像和内核设备树,命令如下所示。

8 a" L) e9 k1 M; V

6 O# H2 c2 Z$ L8 G6 E
设置完成后,通过以下命令保存uboot的环境变量,命令如下所示。
重新启动后,若TF卡正常,整体存储空间情况如下所示。
1 w$ M$ q  c# O
5 _/ p, i/ a3 e8 j4 S. a4 k
若TF卡没插入,uboot的启动会报错误信息,错误信息如下所示。
9 V9 h, p1 n: Q, J) x3 v

, J4 M8 g$ S( Y7 N$ g) R4 B% I4 ~% F! O, k! ]" {
4. 安装docker环境# W( E8 b% V3 n7 g/ T, g, ?( B  a
正常启动之后,开始搭建docker环境。

' [8 O" L9 ?% h" L4.1安装docker软件
' m: a2 K) Z/ |4 Y$ T1 `
首先,烧录后的第一次上电的板卡需要更新内部的软件版本,命令如下所示。update更新失败注意检测网络状态和date日期。部分软件可能体积过大,需要耐心等待。

8 P! f% V9 `5 _& {
" k( c% i; i! _6 p
然后清除旧版本的docker软件,再重新安装docker.io。

7 G0 n* }  s# ^; w) I1 L

! E* R" L& R& P& `4 V( C
启动docker。
. F4 ^: B; Z3 B; Q) H" R! [

; @6 g- L$ p! Q, c
使能docker开机自启动。

1 J) m! r$ Y. }6 T  T& V

" p1 h. O' q. g
检查docker运行状态。

( }! l7 ^3 }( o, v8 B2 _! ^% G& S$ z4 Q7 Y0 [* `: J6 A" z
0 [! M! `3 d, o2 z; U* w. b# D

/ s% H2 V( v: h- x3 {: m* [4.2获取镜像+ T) x1 |5 M4 T  l" t
运行此命令可以从Docker Hub上下载现成镜像。

- m) r0 R" Z  A8 h2 d( Z
' O7 z9 w0 L8 P& ]# n  w7 @
查看本地的镜像文件命令如下所示。
) e! ~7 d+ z8 y/ i/ }* o
- O. u1 E- @% x7 k0 }& j

" F, p; }$ S9 S6 U$ n* R) n4.3创建容器
: V5 }4 |" Q/ g9 Q1 |
容器就是加载模板后运行的沙盒环境,具有运行时所需的可写文件层、应用程序也处于运行状态。概念上可能会与PC端常用的虚拟机混淆,虚拟机是包括内核、应用运行环境和其他系统环境的,而Docker容器就是独立运行的一个或一组应用以及他们必须的运行环境。
创建容器时,需要指定使用的镜像文件,这里使用上面用pull指令下载下来的镜像文件,创建命令如下所示。
* B6 e+ M9 G$ @

4 F( @+ o: W' r& x
查看容器状态,命令如下所示,每个容器都有自己的CONTAINER_ID与NAMES,供后面的命令操作使用(可使用docker rename命令修改容器名,便于简便使用)。
8 E2 \! c! x$ @9 \/ q% K; l3 A$ o
7 \" R( r) L4 t; H( M$ d9 M

. R0 G% c+ |8 M+ K4.4启动容器
2 G, u' m; U5 e
容器创建后,通过CONTAINER_ID与NAMES来操作容器,启动命令如下所示。
  i, a3 n' h- G& N: N, ]- ~

, F# a) i* V1 d/ ~, m
上文所说,容器是运行一个或一组进程,docker ps命令里的COMMAND即为容器运行的进程,当前显示bash,即进入命令交互进程。通过以下命令进入容器内部。
; E' \/ e3 ]8 ^; S
- l  G; l: p, z2 ~
进入后,可以操作容器内的命令,如下所示。

- {' A- [$ m$ n4 x/ x# X

8 x/ _! B3 q: P; {
通过exit命令,可退出容器,退出后容器就处于停止状态,如下所示。

0 b- u% z& V9 z3 x

) D4 j7 l  ^8 K: }: |, v) b; T2 W
通过以上操作,我们就完成了硬件与底层的搭建,为ROS运行在这套开发板上做好了准备,下一章节将为大家带来ROS的部署方法。
! p4 d$ c$ G6 S1 f7 {5 _
. X) @# f$ ?3 H- U  p; s
  • TA的每日心情
    开心
    2022-12-5 15:27
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2022-9-28 16:24 | 只看该作者
    步骤太详细了,我去试试
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-6-17 06:39 , Processed in 0.078125 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表