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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
    如何低成本搭建ARM+ROS的硬件载体?上文为大家介绍了实现的思路及原理,本文将为读者实际操作,展示ROS部署前的筹备工作及步骤分解。
1 }# K9 w! ]  o  n+ O% v4 @1 \9 d
1. 方案概述+ I' A9 F8 }: |: \9 A) }
本文重点介绍低成本搭建ARM+ROS的硬件及底层实现。开发板选用HDG2L-IoT评估套件,默认配置为2G内存、8G存储,搭载可玩性极高的Ubuntu系统。

# n0 M. ], x! t" b( t4 S
3 R& q2 ^2 [. K# F# |+ B/ {
开发套件默认的Ubuntu系统大概占用3.1G空间,剩余3.2G空间,在构建docker+ROS环境时可能会报eMMC空间不足的错误,所以需要调整HDG2L-IoT的启动参数,将启动参数改为引导到TF空间中。市面上常见的树莓派部署ROS方案也是如此操作。
0 j  f, B1 J* B* ~
2. 方案准备* G7 d- M- n" Z4 a% G
首先,需要用到的硬件如下所示。

  c$ Q* q- O) K! y5 o- `& R

6 C3 e1 {! o+ y$ q$ f
! |: A+ j$ K! g9 S% Z! h, }3. TF卡挂载Ubuntu固件修改; |, W- w" w. Z+ y) t! L
本小节将介绍如何实现HDG2L-IoT挂载TF卡内的文件系统,步骤如下:
1)制作启动卡;
2)解压目标文件系统到TF卡内;
3)修改uboot启动参数;

6 t7 T+ K1 i7 N3.1制作启动卡
9 V% d3 M2 O  ^/ [
首先制作启动卡,格式化TF卡的操作可通过瑞萨提供的shell脚本实现,在PC端的Ubuntu开发环境下,执行以下命令来下载操作脚本。

0 m+ m: P" F8 k4 O/ o: @
: w. K0 }7 _$ `+ e- q
将需要被用作启动卡的TF卡插入到PC机内,用虚拟机来操作,调整步骤如下。首先打开虚拟机的USB 3.1功能,以免TF卡读取失败。

. [& J, z/ D8 F+ }8 F. ?
" A! e( ~! S& ]) w
然后将TF卡导入Ubuntu虚拟机中,如下所示。

( R1 r5 t$ H/ J  ~! r1 m2 B! u6 h

: n1 w1 m. Q$ }3 A
系统能识别后,执行刚才下载的usb_sd_partition.sh脚本,如下所示。

5 X: F- T$ G- {( c" d
% X. |- G* I: M' t
脚本执行成功后,TF卡将分为两个分区,分区1为fat32,分区2为ext4。
* H3 v+ n5 ]4 O; d. M0 C

8 |% o0 p" T) O1 \
(注:当前新版本的Windows系统比较少支持ext4格式的TF卡,所以在Windows环境下一般只看到分区1,分区2会提示需要格式才能识别,请忽略。)

& n  E  y5 `4 f: m5 m0 L3.2拷贝目标文件到TF中
" w' B! P8 x1 J6 r* a
将HDG2L-IoT配套的Ubuntu压缩包解压到ext4分区中,虚拟机内自动挂载到/media/${USER}/sdb2内。本机的解压命令如下所示。
4 u; H( v: N) @0 d- {4 h

1 N/ Q( @0 m9 I, @0 Z' L
将HDG2L-IoT配套的内核镜像拷贝到Windows下识别的TF分区中(FAT32系统允许被Windows系统识别,ext4系统不被识别),拷贝后如下所示。

+ ^: u  h# p+ ^4 E

! R6 `6 |# X# \: f: a$ u8 O6 L' v
3.3修改uboot启动参数2 b9 h) f6 c/ V, C& o3 d0 G& [
最后需要调整HDG2L-IoT的uboot启动启动参数,引导其使用TF卡内的内核与文件系统,首先上电,在倒计时前进入uboot菜单,如下所示。
( |. ^2 F# F6 Z& r6 g/ G# H

; s3 f. f' p4 q( L; h- s6 L
将上一步中制作好的TF卡插入HDG2L-IoT板卡的TF卡槽中,在U-Boot提示符下设定以下变量,bootargs变量用于指定文件系统的载体,在系统内,TF卡槽占用的设备名为/dev/mmcblk1p2。
/ j/ D  _1 o/ w3 U( K4 d
: g. B) ^: g* F
然后设置从TF的分区1内获取内核镜像和内核设备树,命令如下所示。

. X0 ?( T* i, v1 j
' }1 R5 R3 W$ K/ s1 ^. A
设置完成后,通过以下命令保存uboot的环境变量,命令如下所示。
重新启动后,若TF卡正常,整体存储空间情况如下所示。
9 r  y6 I3 C) T+ n

3 `  j7 L( R" z7 c6 x/ u
若TF卡没插入,uboot的启动会报错误信息,错误信息如下所示。

- i. ^* J1 V1 E. `  |
9 [, V% O5 o/ E) t4 g
6 W0 [$ `5 _9 ~7 D, G- w( A- ^) K
4. 安装docker环境6 p7 X, t3 S) H' X- a
正常启动之后,开始搭建docker环境。
" t) M3 C5 o* b2 E
4.1安装docker软件
3 G1 l2 L3 U) a2 G# m( i% ^
首先,烧录后的第一次上电的板卡需要更新内部的软件版本,命令如下所示。update更新失败注意检测网络状态和date日期。部分软件可能体积过大,需要耐心等待。
4 F" s3 G: F4 {) ]( ^

' j: s, e& A+ f
然后清除旧版本的docker软件,再重新安装docker.io。

, z6 g: ~+ Y4 w$ a

, N; p7 W, X5 I- J) Y0 f
启动docker。
: g3 u2 t6 p6 c2 j; I3 W& S* l
6 `3 q6 A* p6 ]$ L1 l: X2 f
使能docker开机自启动。

- M* A1 I) Y: W. ^8 j
& N% i- C$ Y% w. x4 y$ c& @4 r
检查docker运行状态。

8 h! v$ T9 E) N. J$ T; O* A9 g+ X6 ~! F$ q, u, G
: X2 g2 R8 E/ b& q
6 R) `7 z' n( _/ S, h6 h
4.2获取镜像# Z( P1 v5 l- T5 Z
运行此命令可以从Docker Hub上下载现成镜像。
7 M3 W( x/ U: p& C0 Y/ n2 k
$ ^; d8 S4 y6 D. x2 f1 z: j/ Q2 y
查看本地的镜像文件命令如下所示。
% Q( ~2 C; r- A

( p2 P# q+ l- U8 ^7 D3 ]. G
% S4 G: E3 I) p) y" y4.3创建容器1 [) g9 ]3 Z$ J) d
容器就是加载模板后运行的沙盒环境,具有运行时所需的可写文件层、应用程序也处于运行状态。概念上可能会与PC端常用的虚拟机混淆,虚拟机是包括内核、应用运行环境和其他系统环境的,而Docker容器就是独立运行的一个或一组应用以及他们必须的运行环境。
创建容器时,需要指定使用的镜像文件,这里使用上面用pull指令下载下来的镜像文件,创建命令如下所示。

) I) m- }5 a3 a0 x7 }* s
( I) a! n) `: A$ m# ~& t* r
查看容器状态,命令如下所示,每个容器都有自己的CONTAINER_ID与NAMES,供后面的命令操作使用(可使用docker rename命令修改容器名,便于简便使用)。
. @+ q5 u: Y* O! T
8 j! [  Z8 M' F! @% t

, n! U% C+ o' O4 N1 v4.4启动容器
6 Q/ R  ^; b: L8 @0 T0 z! N3 c
容器创建后,通过CONTAINER_ID与NAMES来操作容器,启动命令如下所示。

( A) z, K  E0 a: h0 s

3 y  ~7 Z3 l* r5 ^* I2 G" A
上文所说,容器是运行一个或一组进程,docker ps命令里的COMMAND即为容器运行的进程,当前显示bash,即进入命令交互进程。通过以下命令进入容器内部。
% ]" d' M# z# Q2 y, H
! T- T% h6 X* J8 Z% f4 h" v* y  B) @( _
进入后,可以操作容器内的命令,如下所示。
# r( J; L! @- `4 x8 N, ?; u

, n! n* y* M% m: j( m
通过exit命令,可退出容器,退出后容器就处于停止状态,如下所示。
! d8 p3 H% U6 h+ L$ B2 h$ d
3 p7 a8 W# ]6 p
通过以上操作,我们就完成了硬件与底层的搭建,为ROS运行在这套开发板上做好了准备,下一章节将为大家带来ROS的部署方法。

6 h/ K4 [6 k/ \5 l) n* U$ a/ e. m: W: ^' @& k3 h$ X
  • 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 20:25 , Processed in 0.140625 second(s), 24 queries , Gzip On.

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

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

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