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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
    如何低成本搭建ARM+ROS的硬件载体?上文为大家介绍了实现的思路及原理,本文将为读者实际操作,展示ROS部署前的筹备工作及步骤分解。

1 r8 i7 |. K) b: Y2 x; X( D1. 方案概述' C9 d" w1 @8 M$ s
本文重点介绍低成本搭建ARM+ROS的硬件及底层实现。开发板选用HDG2L-IoT评估套件,默认配置为2G内存、8G存储,搭载可玩性极高的Ubuntu系统。

$ v4 k# V$ V. t8 }

1 \$ R/ ~) x' @/ `: B6 e1 d
开发套件默认的Ubuntu系统大概占用3.1G空间,剩余3.2G空间,在构建docker+ROS环境时可能会报eMMC空间不足的错误,所以需要调整HDG2L-IoT的启动参数,将启动参数改为引导到TF空间中。市面上常见的树莓派部署ROS方案也是如此操作。
, h% N2 G! ?; l
2. 方案准备
+ D6 l" [) W0 s
首先,需要用到的硬件如下所示。
9 x8 I5 t+ w8 K6 S
1 r+ ?6 u3 _$ Z1 \  _; ?5 v

( z6 \) M& g$ n7 V: u# I% d. w3. TF卡挂载Ubuntu固件修改& {; ]7 W+ ^5 b2 J+ J9 t( j
本小节将介绍如何实现HDG2L-IoT挂载TF卡内的文件系统,步骤如下:
1)制作启动卡;
2)解压目标文件系统到TF卡内;
3)修改uboot启动参数;
! U) q1 p: ?: x9 ~. f
3.1制作启动卡
9 H* a# d7 s% E3 C; {, n8 h
首先制作启动卡,格式化TF卡的操作可通过瑞萨提供的shell脚本实现,在PC端的Ubuntu开发环境下,执行以下命令来下载操作脚本。

  h: H) y) y: i6 s( N
# N' i$ g" t3 T/ r
将需要被用作启动卡的TF卡插入到PC机内,用虚拟机来操作,调整步骤如下。首先打开虚拟机的USB 3.1功能,以免TF卡读取失败。

5 f& o. P, a- ~

6 V$ G  Y6 V1 M' [, r
然后将TF卡导入Ubuntu虚拟机中,如下所示。

7 ?- P( n5 \0 ?' g
0 S& ]0 k9 G# {6 Z; Y
系统能识别后,执行刚才下载的usb_sd_partition.sh脚本,如下所示。
6 c& O; ?: O% T, L% m* @
) @$ [' @' _5 g2 ~
脚本执行成功后,TF卡将分为两个分区,分区1为fat32,分区2为ext4。

8 w' V4 y. k7 m& I, Y
; @% j# c7 ?3 ]5 B
(注:当前新版本的Windows系统比较少支持ext4格式的TF卡,所以在Windows环境下一般只看到分区1,分区2会提示需要格式才能识别,请忽略。)
6 A3 s2 T2 _# R  ?& k4 c
3.2拷贝目标文件到TF中4 A6 [2 E1 T* v2 P1 e
将HDG2L-IoT配套的Ubuntu压缩包解压到ext4分区中,虚拟机内自动挂载到/media/${USER}/sdb2内。本机的解压命令如下所示。

# s) `/ {+ o; r" p( h" }6 d

+ a5 J& M) y( ~0 f. E$ ~4 [
将HDG2L-IoT配套的内核镜像拷贝到Windows下识别的TF分区中(FAT32系统允许被Windows系统识别,ext4系统不被识别),拷贝后如下所示。

- {  z" e4 [" V9 f& ~, n
$ ~$ ^* d, n, c
% x: M9 _0 j2 N
3.3修改uboot启动参数7 f; A+ S6 W# E% j& ?
最后需要调整HDG2L-IoT的uboot启动启动参数,引导其使用TF卡内的内核与文件系统,首先上电,在倒计时前进入uboot菜单,如下所示。

& b7 w/ _) i) P6 K
! s2 `6 e/ ^5 ^" ~% m
将上一步中制作好的TF卡插入HDG2L-IoT板卡的TF卡槽中,在U-Boot提示符下设定以下变量,bootargs变量用于指定文件系统的载体,在系统内,TF卡槽占用的设备名为/dev/mmcblk1p2。

+ W; L/ c/ {! L5 U( X/ T8 z8 u

" W# E+ t9 _; b; ?3 H1 U
然后设置从TF的分区1内获取内核镜像和内核设备树,命令如下所示。
0 h5 p' c0 m& w& |" d
7 h2 [! B6 B; t
设置完成后,通过以下命令保存uboot的环境变量,命令如下所示。
重新启动后,若TF卡正常,整体存储空间情况如下所示。
# k) V5 L+ o8 D) [! E$ d- n; B
: g9 U5 H+ B6 \; @. [# i9 u8 c7 ?
若TF卡没插入,uboot的启动会报错误信息,错误信息如下所示。

% V# T. V) S' i5 e
( O- w! j- V: X5 C0 n
. Q3 a; g$ p5 W" f8 Q& o
4. 安装docker环境, t5 I; b# M! [( u+ y
正常启动之后,开始搭建docker环境。

0 m. e# f: `7 ~  O! ?$ m7 t0 n4 b! K4.1安装docker软件! r0 n( A$ u' Q
首先,烧录后的第一次上电的板卡需要更新内部的软件版本,命令如下所示。update更新失败注意检测网络状态和date日期。部分软件可能体积过大,需要耐心等待。
- V) {" i+ V* ?% P: E

0 k6 q2 s: f* b/ f- L
然后清除旧版本的docker软件,再重新安装docker.io。

# o3 ~6 g2 n, ^( Y

( W  F. x- G! [: V7 _! u% e8 z
启动docker。

; D0 o! }& g! W' H6 ^8 [; z% q/ }
) Y: |/ A0 Z3 d/ M2 x( A/ m- o
使能docker开机自启动。

% O6 Q( U. q" ~& F( o9 |
9 I. l2 m* t/ U0 M8 l$ V6 c. n
检查docker运行状态。
/ ^$ v6 @) Z9 n1 b) g' |9 ~

- f' x+ B' S8 Q: w- C* y, d, F4 C

! ^( ]  _8 T. i8 e* K$ A4 z' b4 o3 [3 P+ U6 p4 t$ y
4.2获取镜像
8 D) i# [' L( w. a/ R7 o( I
运行此命令可以从Docker Hub上下载现成镜像。
: w* G( N# N" h8 l0 C5 [5 u; z
" o5 G; x. Q/ e$ c' O) K
查看本地的镜像文件命令如下所示。
& U2 l" o4 F7 q$ U7 v; `
" [& e. r- f, n, b

( x5 @8 v6 {# U. h5 b4.3创建容器
$ w* ~7 Y6 m7 j% |7 L; b: |; O
容器就是加载模板后运行的沙盒环境,具有运行时所需的可写文件层、应用程序也处于运行状态。概念上可能会与PC端常用的虚拟机混淆,虚拟机是包括内核、应用运行环境和其他系统环境的,而Docker容器就是独立运行的一个或一组应用以及他们必须的运行环境。
创建容器时,需要指定使用的镜像文件,这里使用上面用pull指令下载下来的镜像文件,创建命令如下所示。

) G" R, k8 @" _7 z2 E" }8 i
2 r9 f  c$ P8 z$ G
查看容器状态,命令如下所示,每个容器都有自己的CONTAINER_ID与NAMES,供后面的命令操作使用(可使用docker rename命令修改容器名,便于简便使用)。
+ W+ G+ z, h: P* P  e% g/ e5 x
9 C# r/ t; g9 o( Z4 I$ @
: @1 m; a8 J8 F+ o. g6 d, k- x) l
4.4启动容器
. s& i0 [* S- t; e3 l, x, G6 u+ R
容器创建后,通过CONTAINER_ID与NAMES来操作容器,启动命令如下所示。

9 ?* T6 H% @- A# m9 N+ p
! _- K8 |5 W9 e* ~- t
上文所说,容器是运行一个或一组进程,docker ps命令里的COMMAND即为容器运行的进程,当前显示bash,即进入命令交互进程。通过以下命令进入容器内部。
/ ]% b+ K6 Y1 \6 r' L! [" _. W
3 i* M: j) ?4 D2 H/ g
进入后,可以操作容器内的命令,如下所示。

4 |* ^) ?3 [# J( V0 k

! {* A, k) b/ r
通过exit命令,可退出容器,退出后容器就处于停止状态,如下所示。

; o' [& R9 y4 K& J& x, T- g

$ _8 U( I" p$ \0 \
通过以上操作,我们就完成了硬件与底层的搭建,为ROS运行在这套开发板上做好了准备,下一章节将为大家带来ROS的部署方法。

; t2 `1 X2 l' r6 D! M. Z. X' ^  I6 O* p# R0 t6 |
  • TA的每日心情
    开心
    2022-12-5 15:27
  • 签到天数: 1 天

    [LV.1]初来乍到

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-23 16:38 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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