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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

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

$ b& m7 R7 P9 J1 l4 H1. 方案概述( ?; m# s2 i" a" ~
本文重点介绍低成本搭建ARM+ROS的硬件及底层实现。开发板选用HDG2L-IoT评估套件,默认配置为2G内存、8G存储,搭载可玩性极高的Ubuntu系统。
* R9 |- U% b( o* O4 ~
/ a9 W, ]* W7 K1 w5 S- X. w
开发套件默认的Ubuntu系统大概占用3.1G空间,剩余3.2G空间,在构建docker+ROS环境时可能会报eMMC空间不足的错误,所以需要调整HDG2L-IoT的启动参数,将启动参数改为引导到TF空间中。市面上常见的树莓派部署ROS方案也是如此操作。

. E4 x0 R" R- s; @( ]* W2. 方案准备- u$ a3 x! P( C1 g2 W3 a6 z- j
首先,需要用到的硬件如下所示。
# _4 K9 J5 X4 \

, L# k, G/ F9 M+ Q: d2 U! g# @# U4 e" g2 B
3. TF卡挂载Ubuntu固件修改- F7 p3 N6 f8 U" E
本小节将介绍如何实现HDG2L-IoT挂载TF卡内的文件系统,步骤如下:
1)制作启动卡;
2)解压目标文件系统到TF卡内;
3)修改uboot启动参数;

/ `+ [5 M; _2 }  c3.1制作启动卡
( C( z, }/ Y$ ]9 ]; M, r6 q, w
首先制作启动卡,格式化TF卡的操作可通过瑞萨提供的shell脚本实现,在PC端的Ubuntu开发环境下,执行以下命令来下载操作脚本。

5 r% j8 P6 M% A$ f3 p$ ^) L) M9 u
# ]/ A. f& v- R
将需要被用作启动卡的TF卡插入到PC机内,用虚拟机来操作,调整步骤如下。首先打开虚拟机的USB 3.1功能,以免TF卡读取失败。

( M7 i1 D. G3 ]  \) J; j" j2 `

: J" ~, Z4 g3 p. m
然后将TF卡导入Ubuntu虚拟机中,如下所示。

; v* X+ {- a2 u: ]& U

# c# `: k$ Z' o3 B/ J4 l" h
系统能识别后,执行刚才下载的usb_sd_partition.sh脚本,如下所示。

) E2 O, B6 k8 T# _
. W+ n% R; L; c5 o5 C) D9 y
脚本执行成功后,TF卡将分为两个分区,分区1为fat32,分区2为ext4。
0 K8 r# V2 N% C  [) J
' b. W/ D+ `. [) y$ N6 x
(注:当前新版本的Windows系统比较少支持ext4格式的TF卡,所以在Windows环境下一般只看到分区1,分区2会提示需要格式才能识别,请忽略。)

2 T3 K0 m+ v& F$ ?; g3.2拷贝目标文件到TF中
+ {- H  v- O: @3 z; B
将HDG2L-IoT配套的Ubuntu压缩包解压到ext4分区中,虚拟机内自动挂载到/media/${USER}/sdb2内。本机的解压命令如下所示。

" a& I8 c7 [* _% u  }4 G* J3 X

& B6 \5 J5 r2 y9 T4 N
将HDG2L-IoT配套的内核镜像拷贝到Windows下识别的TF分区中(FAT32系统允许被Windows系统识别,ext4系统不被识别),拷贝后如下所示。

( O( d% s4 F2 \
/ Z- i5 w! c- [7 {1 L) q
0 |% Q- O: N3 c
3.3修改uboot启动参数
, X0 R4 d* d3 k8 Y/ V/ R
最后需要调整HDG2L-IoT的uboot启动启动参数,引导其使用TF卡内的内核与文件系统,首先上电,在倒计时前进入uboot菜单,如下所示。

/ S3 U' o% ]# k1 t" z5 A% u- q+ d
2 |5 J* y& p& b# T8 R, c7 o% k3 v* L2 P
将上一步中制作好的TF卡插入HDG2L-IoT板卡的TF卡槽中,在U-Boot提示符下设定以下变量,bootargs变量用于指定文件系统的载体,在系统内,TF卡槽占用的设备名为/dev/mmcblk1p2。
/ o/ E8 G5 `; E: u) }( m, H
1 z+ i* x- B6 h* S' x
然后设置从TF的分区1内获取内核镜像和内核设备树,命令如下所示。

5 W- k1 V! O8 @" u

) V+ b0 r% \+ m: D! X- p
设置完成后,通过以下命令保存uboot的环境变量,命令如下所示。
重新启动后,若TF卡正常,整体存储空间情况如下所示。
8 v& S2 V3 i- b8 L- }' @

$ w- b$ d3 s9 G" C" D: x& _
若TF卡没插入,uboot的启动会报错误信息,错误信息如下所示。

; W  b. H3 P# e+ e8 \# E

' D7 w. X8 b1 P5 t8 S& T. T1 v" \; d* V+ l, w: C
4. 安装docker环境
0 h& d! [  h; S# ~6 G
正常启动之后,开始搭建docker环境。
6 o! i5 x3 n6 L8 E6 @* k2 O
4.1安装docker软件! i. K7 ]; W) i$ n/ n
首先,烧录后的第一次上电的板卡需要更新内部的软件版本,命令如下所示。update更新失败注意检测网络状态和date日期。部分软件可能体积过大,需要耐心等待。

2 _1 r! m) J2 @6 Y3 m2 @
0 c/ B, O2 ~% r. ?, a& |
然后清除旧版本的docker软件,再重新安装docker.io。
1 k) v9 m" Z% Y! Z+ p. a

# O! q+ Q. @7 k7 S  t9 }! f6 d! {
启动docker。

# b$ {3 E5 a7 y; M$ Z! ], d
2 h& u2 E( G/ Z, {' j0 t( J7 Z
使能docker开机自启动。
% n5 M5 ]6 l3 D) N. k

+ g: L1 P; s8 h, m: l
检查docker运行状态。
; w8 h* e: N$ R% a

+ Z2 z' [. }. x2 R" V

% i4 g- c! v: L+ f' v4 Q
' N, }2 L6 Y" `4.2获取镜像' q4 p: E4 G1 ?; u) w
运行此命令可以从Docker Hub上下载现成镜像。
8 T0 ]- B: _. z: `7 f
. c$ p+ o! ?. R, }- [
查看本地的镜像文件命令如下所示。

( I" |% X1 v5 J

0 S7 B8 V* W+ `1 q: K
* A3 c- o' K+ |& X4.3创建容器
  [4 R7 f  ~) o# F" K
容器就是加载模板后运行的沙盒环境,具有运行时所需的可写文件层、应用程序也处于运行状态。概念上可能会与PC端常用的虚拟机混淆,虚拟机是包括内核、应用运行环境和其他系统环境的,而Docker容器就是独立运行的一个或一组应用以及他们必须的运行环境。
创建容器时,需要指定使用的镜像文件,这里使用上面用pull指令下载下来的镜像文件,创建命令如下所示。

# J1 b& F- @6 W2 @  {# g/ e9 T

' Z4 r1 L. ~# \: l0 r$ e7 y& o
查看容器状态,命令如下所示,每个容器都有自己的CONTAINER_ID与NAMES,供后面的命令操作使用(可使用docker rename命令修改容器名,便于简便使用)。

# \% q1 Q& s/ G; b/ {! T

  j9 Z0 _! s6 [/ h( Y* M

3 P& y4 M: Z7 _% x4.4启动容器! s0 G3 p7 A4 Q2 c- p  Z. t
容器创建后,通过CONTAINER_ID与NAMES来操作容器,启动命令如下所示。
5 \- Y- P3 ]8 G% s  |

; [" m+ p8 @! ^  Q- [  G# P/ f, B
上文所说,容器是运行一个或一组进程,docker ps命令里的COMMAND即为容器运行的进程,当前显示bash,即进入命令交互进程。通过以下命令进入容器内部。
! a0 i1 c, A# S6 T; H! m/ v

8 I0 t9 Y% d3 M- M
进入后,可以操作容器内的命令,如下所示。

& |/ H# l7 d; n: N$ C
0 _) k8 P! d: ?4 O1 u) A8 f" I
通过exit命令,可退出容器,退出后容器就处于停止状态,如下所示。
1 C5 u- `! z& R$ Y% @& d

! \# y" r! Q% P- O) a
通过以上操作,我们就完成了硬件与底层的搭建,为ROS运行在这套开发板上做好了准备,下一章节将为大家带来ROS的部署方法。
! P  s( B" K8 C6 ?% s
0 k! F. I0 G1 H* {% ^- 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-11-23 17:30 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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