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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

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

! N! R, r3 V- L/ F4 m1. 方案概述
6 i+ S+ l8 @, M1 M9 E6 j% ]2 g, k+ P
本文重点介绍低成本搭建ARM+ROS的硬件及底层实现。开发板选用HDG2L-IoT评估套件,默认配置为2G内存、8G存储,搭载可玩性极高的Ubuntu系统。
# S8 e* \9 D# |4 J& W' n
" O1 l+ E& [+ d% X+ J3 E- U3 W
开发套件默认的Ubuntu系统大概占用3.1G空间,剩余3.2G空间,在构建docker+ROS环境时可能会报eMMC空间不足的错误,所以需要调整HDG2L-IoT的启动参数,将启动参数改为引导到TF空间中。市面上常见的树莓派部署ROS方案也是如此操作。

1 j, C- H- Y+ Z, g8 s: j5 ?2. 方案准备
" O2 p/ t0 M  x  l! c7 z
首先,需要用到的硬件如下所示。

: R$ }% R$ M5 v1 A% |, g4 H1 A

6 L( y; D* m9 P" K8 L# j
; S5 R! o( Z0 X0 e# A3. TF卡挂载Ubuntu固件修改
2 w7 J# m9 \/ V/ D5 n9 o) Z
本小节将介绍如何实现HDG2L-IoT挂载TF卡内的文件系统,步骤如下:
1)制作启动卡;
2)解压目标文件系统到TF卡内;
3)修改uboot启动参数;

1 p6 f5 q* X- u2 }+ c5 F  v& B& v3.1制作启动卡
( q; |0 }% {. F! o' V
首先制作启动卡,格式化TF卡的操作可通过瑞萨提供的shell脚本实现,在PC端的Ubuntu开发环境下,执行以下命令来下载操作脚本。
8 h  p9 Q; b0 j

$ _+ m/ I/ t  I
将需要被用作启动卡的TF卡插入到PC机内,用虚拟机来操作,调整步骤如下。首先打开虚拟机的USB 3.1功能,以免TF卡读取失败。
# Q) F; Z0 U6 s" w3 V, A  W! ^
3 b& P' R8 @7 R
然后将TF卡导入Ubuntu虚拟机中,如下所示。
2 ]; l9 v- k: Q) M0 I( `* d
8 w- }5 x, G8 M/ P9 S
系统能识别后,执行刚才下载的usb_sd_partition.sh脚本,如下所示。

; a4 j3 g  j1 j
7 p! I6 b- Z+ U# z7 h
脚本执行成功后,TF卡将分为两个分区,分区1为fat32,分区2为ext4。

% Z# G4 ^2 S$ `8 t8 Z

1 w9 w$ N# Q, h) X% j8 Y  Q
(注:当前新版本的Windows系统比较少支持ext4格式的TF卡,所以在Windows环境下一般只看到分区1,分区2会提示需要格式才能识别,请忽略。)

' {# M) z4 `5 Z; J. i1 P3.2拷贝目标文件到TF中  {! w  Z4 d3 C: y/ m
将HDG2L-IoT配套的Ubuntu压缩包解压到ext4分区中,虚拟机内自动挂载到/media/${USER}/sdb2内。本机的解压命令如下所示。
/ ^& c! L& m4 i
+ s! M9 j8 L0 j# _
将HDG2L-IoT配套的内核镜像拷贝到Windows下识别的TF分区中(FAT32系统允许被Windows系统识别,ext4系统不被识别),拷贝后如下所示。

' ]! P5 ?9 d! u& k4 i* x/ g
3 m; p/ e9 x- \7 D! L/ x
% T# }) {2 \! c: w$ @
3.3修改uboot启动参数
- g1 G* i: Q$ w) l$ n/ F: c
最后需要调整HDG2L-IoT的uboot启动启动参数,引导其使用TF卡内的内核与文件系统,首先上电,在倒计时前进入uboot菜单,如下所示。
" F( F% a) {7 g# u  N

6 C8 y$ f" y3 }
将上一步中制作好的TF卡插入HDG2L-IoT板卡的TF卡槽中,在U-Boot提示符下设定以下变量,bootargs变量用于指定文件系统的载体,在系统内,TF卡槽占用的设备名为/dev/mmcblk1p2。

. D/ t, X; @, K- o/ ^, S4 U

" a; @5 p- k( I' E. b* P
然后设置从TF的分区1内获取内核镜像和内核设备树,命令如下所示。

. [. |( G  Y5 Z- S

# F  `$ ^2 g6 r: \, h% q3 I7 T/ g
设置完成后,通过以下命令保存uboot的环境变量,命令如下所示。
重新启动后,若TF卡正常,整体存储空间情况如下所示。
" l4 l$ F" q# S

' J- H5 [3 T7 j" W, X
若TF卡没插入,uboot的启动会报错误信息,错误信息如下所示。

; p2 Z2 s. g6 z8 K$ Z' T+ W, Y
; m; L# p3 S, k$ q0 W

8 f  e" ]9 V' d5 p4 H7 q4. 安装docker环境- p5 Q7 g6 w: ~$ j$ c. W+ b) s
正常启动之后,开始搭建docker环境。
9 K; A$ w$ s  L% v
4.1安装docker软件3 l% @; g% w4 e9 o' E5 h) s
首先,烧录后的第一次上电的板卡需要更新内部的软件版本,命令如下所示。update更新失败注意检测网络状态和date日期。部分软件可能体积过大,需要耐心等待。

" ]7 a( m9 f0 X8 j$ S' U9 f

: [$ J1 r) w3 C2 r- E4 \$ B
然后清除旧版本的docker软件,再重新安装docker.io。

; T$ T5 p5 s+ o2 b5 E7 |* h/ F
) Y; y, X) e4 V+ J* T! E" T; e: G
启动docker。
" t3 B( b6 C* f, p% E4 m# D3 e

" _. b+ e* ?4 L9 ~# C0 L
使能docker开机自启动。
- J( U  G- W# {4 k
5 {$ q5 \0 W: M& r& P: \
检查docker运行状态。
+ o& Y+ V& S: t7 j5 p, }& s
" h. e1 M2 p& `: ]. ]# S

, O" J5 L' _" S0 t( ^) d/ q) Q( z
4.2获取镜像( Z# S$ F) Q' r
运行此命令可以从Docker Hub上下载现成镜像。
" ^" ~* {- v& R  u5 n+ b: p
$ F2 l8 ?$ U' Y
查看本地的镜像文件命令如下所示。

/ }- E0 L" _9 X

( N) R  m5 h# {. u; ^8 c) v# h* A& o7 G
4.3创建容器
+ T$ i3 F8 k) G1 R3 h: ~
容器就是加载模板后运行的沙盒环境,具有运行时所需的可写文件层、应用程序也处于运行状态。概念上可能会与PC端常用的虚拟机混淆,虚拟机是包括内核、应用运行环境和其他系统环境的,而Docker容器就是独立运行的一个或一组应用以及他们必须的运行环境。
创建容器时,需要指定使用的镜像文件,这里使用上面用pull指令下载下来的镜像文件,创建命令如下所示。
* f# p# R- H- W4 n+ N3 ?( `- t9 d0 j

) Q- l, c$ u5 [9 o. Z2 w  B
查看容器状态,命令如下所示,每个容器都有自己的CONTAINER_ID与NAMES,供后面的命令操作使用(可使用docker rename命令修改容器名,便于简便使用)。

1 S1 [) [& a" g, G7 m# T9 r

0 H/ ?- Y4 e$ l! S% d2 T
6 i9 ~3 w) `, v. M$ K
4.4启动容器
% d3 C* G) p! a2 ^
容器创建后,通过CONTAINER_ID与NAMES来操作容器,启动命令如下所示。
, R# ~- F4 D2 C: Q7 C  K; e

" r, C; i: p4 j& M
上文所说,容器是运行一个或一组进程,docker ps命令里的COMMAND即为容器运行的进程,当前显示bash,即进入命令交互进程。通过以下命令进入容器内部。
8 F& m. S- j: c$ d0 I
3 ?2 z* e+ ]6 R3 S8 m! k8 u# K  P
进入后,可以操作容器内的命令,如下所示。

: a% s6 d# e4 L4 \
6 S; {9 m& E' Z2 L! B
通过exit命令,可退出容器,退出后容器就处于停止状态,如下所示。

9 C: w' N6 k0 U, \) w/ J

& j0 l) G7 M: h
通过以上操作,我们就完成了硬件与底层的搭建,为ROS运行在这套开发板上做好了准备,下一章节将为大家带来ROS的部署方法。
* x/ i3 w5 U6 j( m  e; v+ p" s

  P! C! G5 H- w4 l2 z
  • TA的每日心情
    开心
    2022-12-5 15:27
  • 签到天数: 1 天

    [LV.1]初来乍到

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-9-8 14:32 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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