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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

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

8 Y0 Z: ]* x) J1 c" m7 X5 B. x" H- R1. 方案概述, p  ~9 h/ E7 @) S4 j. g
本文重点介绍低成本搭建ARM+ROS的硬件及底层实现。开发板选用HDG2L-IoT评估套件,默认配置为2G内存、8G存储,搭载可玩性极高的Ubuntu系统。
9 E* b  [- O4 U6 F4 r% C

0 v( i# M* }% J( B$ a
开发套件默认的Ubuntu系统大概占用3.1G空间,剩余3.2G空间,在构建docker+ROS环境时可能会报eMMC空间不足的错误,所以需要调整HDG2L-IoT的启动参数,将启动参数改为引导到TF空间中。市面上常见的树莓派部署ROS方案也是如此操作。

9 I) O* S1 u" S, ]7 F6 C; }2. 方案准备& }6 |$ _+ m7 v1 E: m8 e
首先,需要用到的硬件如下所示。
' I# t  |' [" U0 O$ ~
0 A  F( O( H# K; u, N
$ ~7 l* g( ~( h
3. TF卡挂载Ubuntu固件修改
+ a0 M; Q! I1 }$ U7 D# O* d+ k5 ?
本小节将介绍如何实现HDG2L-IoT挂载TF卡内的文件系统,步骤如下:
1)制作启动卡;
2)解压目标文件系统到TF卡内;
3)修改uboot启动参数;

9 t% F+ L' ~( N+ X/ T3.1制作启动卡. z7 q) ?0 T& F: o
首先制作启动卡,格式化TF卡的操作可通过瑞萨提供的shell脚本实现,在PC端的Ubuntu开发环境下,执行以下命令来下载操作脚本。

; n$ e. O- p- e' |  @+ F

0 l7 ^7 n* m0 V% G! h
将需要被用作启动卡的TF卡插入到PC机内,用虚拟机来操作,调整步骤如下。首先打开虚拟机的USB 3.1功能,以免TF卡读取失败。

3 I  L$ u) R7 O. _
& O4 S0 ~# h+ t0 y. p
然后将TF卡导入Ubuntu虚拟机中,如下所示。
! U/ p, C9 g, m. }

9 g8 Z0 t7 {2 G% Z( k6 d5 Y
系统能识别后,执行刚才下载的usb_sd_partition.sh脚本,如下所示。
0 j( B1 d8 e. a( g+ e

* R1 ?* A6 I2 K) Z- \
脚本执行成功后,TF卡将分为两个分区,分区1为fat32,分区2为ext4。
& n) ~, H- ^5 W/ ^! Z: Y7 W

% |; O& e9 ~. f' \" r; D3 G
(注:当前新版本的Windows系统比较少支持ext4格式的TF卡,所以在Windows环境下一般只看到分区1,分区2会提示需要格式才能识别,请忽略。)
: F" u# y+ o9 Q, u% T
3.2拷贝目标文件到TF中
; O. X# ~8 w- E/ W5 Y& f* ~( U5 R
将HDG2L-IoT配套的Ubuntu压缩包解压到ext4分区中,虚拟机内自动挂载到/media/${USER}/sdb2内。本机的解压命令如下所示。

- v# R6 Q# O' X$ I& P: B
. Y# m) w: b# T8 K  b5 A
将HDG2L-IoT配套的内核镜像拷贝到Windows下识别的TF分区中(FAT32系统允许被Windows系统识别,ext4系统不被识别),拷贝后如下所示。
/ k. k7 e6 D+ m9 [4 F# l6 ^
" Z1 P, ?* ^! `1 x9 ]! T4 e; J

5 n- j, Q6 h( h3 J5 Q; p" V6 o3.3修改uboot启动参数
  A, m* n6 i" F7 Y: g6 m1 ?5 y
最后需要调整HDG2L-IoT的uboot启动启动参数,引导其使用TF卡内的内核与文件系统,首先上电,在倒计时前进入uboot菜单,如下所示。

. `$ i+ E2 g" y
4 v2 i2 `! r5 S
将上一步中制作好的TF卡插入HDG2L-IoT板卡的TF卡槽中,在U-Boot提示符下设定以下变量,bootargs变量用于指定文件系统的载体,在系统内,TF卡槽占用的设备名为/dev/mmcblk1p2。

9 x% x. A2 `  o1 x4 f

7 {% A! [( ?" K7 F
然后设置从TF的分区1内获取内核镜像和内核设备树,命令如下所示。
7 J9 @; q3 C; t2 b
6 w0 |. y1 T5 }, y* o
设置完成后,通过以下命令保存uboot的环境变量,命令如下所示。
重新启动后,若TF卡正常,整体存储空间情况如下所示。
8 J/ B' S+ ]! a6 c5 |% J
, Q& a8 f; p8 T) J: t5 x
若TF卡没插入,uboot的启动会报错误信息,错误信息如下所示。

3 [3 N$ v0 {1 x/ w
7 I' @3 H, h; j: q

: c5 P% Z& C5 |+ W4. 安装docker环境- i( _1 `% t/ W5 j; s
正常启动之后,开始搭建docker环境。
' i8 a% p! q* ^- B2 Z3 N) m
4.1安装docker软件
+ I. ]- S8 [. v& v: d, }. S
首先,烧录后的第一次上电的板卡需要更新内部的软件版本,命令如下所示。update更新失败注意检测网络状态和date日期。部分软件可能体积过大,需要耐心等待。
/ m' I, Y! `/ z& K" ]7 \" j1 u

; @( i+ y% R6 D9 w
然后清除旧版本的docker软件,再重新安装docker.io。
/ a, g( t4 P) ^: @" c
  m0 @3 Z, y8 `% l9 `" D6 B
启动docker。

8 o: h& T  T  w3 b7 R1 O

6 ~% i. A- z- d5 t1 ]. S- A
使能docker开机自启动。

0 n. Y/ L' H, O; k! @% o

" d' l) o! E9 L5 e: p7 ]2 X- m
检查docker运行状态。

6 n# b5 ^0 E* A# y- Z/ Q$ o
" Y7 ]8 ?, I! z1 Y! {

  ]5 g" R, U& c& E% X0 J+ x
: A7 {/ z  U9 R1 a4.2获取镜像0 W7 r# u1 U1 s8 b
运行此命令可以从Docker Hub上下载现成镜像。
; }0 v6 `& u1 r7 J" `* L
- C6 i+ T6 T, [) w$ p
查看本地的镜像文件命令如下所示。

: M' P  R# @: M$ U( c7 \* z
3 \* `! f* ~$ q) c8 m+ T6 H" y& Q) D

0 A7 b* [% j6 q4 i4.3创建容器
, \: o, w& x; U. u2 G2 [
容器就是加载模板后运行的沙盒环境,具有运行时所需的可写文件层、应用程序也处于运行状态。概念上可能会与PC端常用的虚拟机混淆,虚拟机是包括内核、应用运行环境和其他系统环境的,而Docker容器就是独立运行的一个或一组应用以及他们必须的运行环境。
创建容器时,需要指定使用的镜像文件,这里使用上面用pull指令下载下来的镜像文件,创建命令如下所示。

! g4 k' s- n$ ^0 E5 Y5 w

! q0 R7 |  s; q6 O* X
查看容器状态,命令如下所示,每个容器都有自己的CONTAINER_ID与NAMES,供后面的命令操作使用(可使用docker rename命令修改容器名,便于简便使用)。

! Z  _7 t2 r9 l5 H6 A& W" @( u
6 H3 f8 u$ O4 k9 v

5 ~; P% D" m5 F% ?" i4.4启动容器. z# U6 l2 d& a& c' I+ U
容器创建后,通过CONTAINER_ID与NAMES来操作容器,启动命令如下所示。

' n/ B/ r2 J: |* P# B8 |

8 l# C. X% Y* T- \  B+ s
上文所说,容器是运行一个或一组进程,docker ps命令里的COMMAND即为容器运行的进程,当前显示bash,即进入命令交互进程。通过以下命令进入容器内部。
% V% i' t; w; I! y# u) R( V" U3 f

  J; ^) ~1 l1 ^9 t
进入后,可以操作容器内的命令,如下所示。

6 z3 w  N+ J% r
  O7 U' x1 e* m' U* o7 y% _
通过exit命令,可退出容器,退出后容器就处于停止状态,如下所示。
0 P! X( \- O" `6 ], V2 P
- W" @5 z2 E2 c( k- N) h
通过以上操作,我们就完成了硬件与底层的搭建,为ROS运行在这套开发板上做好了准备,下一章节将为大家带来ROS的部署方法。
# I: e( q' X% H9 \2 U
* f6 C' I5 h- A* F
  • 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 21:48 , Processed in 0.156250 second(s), 24 queries , Gzip On.

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

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

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