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

如何低成本搭建arm+ros的硬件载体?上文为大家介绍了实现的思路及原理,本文将为读者实际操作,展示ros部署前的筹备工作及步骤分解。
1. 方案概述 
本文重点介绍低成本搭建arm+ros的硬件及底层实现。开发板选用hdg2l-iot评估套件,默认配置为2g内存、8g存储,搭载可玩性极高的ubuntu系统。
开发套件默认的ubuntu系统大概占用3.1g空间,剩余3.2g空间,在构建docker+ros环境时可能会报emmc空间不足的错误,所以需要调整hdg2l-iot的启动参数,将启动参数改为引导到tf空间中。市面上常见的树莓派部署ros方案也是如此操作。
2. 方案准备 
首先,需要用到的硬件如下所示。
3. tf卡挂载ubuntu固件修改 
本小节将介绍如何实现hdg2l-iot挂载tf卡内的文件系统,步骤如下:
1)制作启动卡;
2)解压目标文件系统到tf卡内;
3)修改uboot启动参数;
3.1制作启动卡 
首先制作启动卡,格式化tf卡的操作可通过瑞萨提供的shell脚本实现,在pc端的ubuntu开发环境下,执行以下命令来下载操作脚本。
将需要被用作启动卡的tf卡插入到pc机内,用虚拟机来操作,调整步骤如下。首先打开虚拟机的usb 3.1功能,以免tf卡读取失败。
然后将tf卡导入ubuntu虚拟机中,如下所示。
系统能识别后,执行刚才下载的usb_sd_partition.sh脚本,如下所示。
脚本执行成功后,tf卡将分为两个分区,分区1为fat32,分区2为ext4。
(注:当前新版本的windows系统比较少支持ext4格式的tf卡,所以在windows环境下一般只看到分区1,分区2会提示需要格式才能识别,请忽略。)
3.2拷贝目标文件到tf中 
将hdg2l-iot配套的ubuntu压缩包解压到ext4分区中,虚拟机内自动挂载到/media/${user}/sdb2内。本机的解压命令如下所示。
将hdg2l-iot配套的内核镜像拷贝到windows下识别的tf分区中(fat32系统允许被windows系统识别,ext4系统不被识别),拷贝后如下所示。
3.3修改uboot启动参数 
最后需要调整hdg2l-iot的uboot启动启动参数,引导其使用tf卡内的内核与文件系统,首先上电,在倒计时前进入uboot菜单,如下所示。
将上一步中制作好的tf卡插入hdg2l-iot板卡的tf卡槽中,在u-boot提示符下设定以下变量,bootargs变量用于指定文件系统的载体,在系统内,tf卡槽占用的设备名为/dev/mmcblk1p2。
然后设置从tf的分区1内获取内核镜像和内核设备树,命令如下所示。
设置完成后,通过以下命令保存uboot的环境变量,命令如下所示。
重新启动后,若tf卡正常,整体存储空间情况如下所示。
若tf卡没插入,uboot的启动会报错误信息,错误信息如下所示。
4. 安装docker环境 
正常启动之后,开始搭建docker环境。
4.1安装docker软件 
首先,烧录后的第一次上电的板卡需要更新内部的软件版本,命令如下所示。update更新失败注意检测网络状态和date日期。部分软件可能体积过大,需要耐心等待。
然后清除旧版本的docker软件,再重新安装docker.io。
启动docker。
使能docker开机自启动。
检查docker运行状态。
4.2获取镜像 
运行此命令可以从docker hub上下载现成镜像。
查看本地的镜像文件命令如下所示。
4.3创建容器 
容器就是加载模板后运行的沙盒环境,具有运行时所需的可写文件层、应用程序也处于运行状态。概念上可能会与pc端常用的虚拟机混淆,虚拟机是包括内核、应用运行环境和其他系统环境的,而docker容器就是独立运行的一个或一组应用以及他们必须的运行环境。
创建容器时,需要指定使用的镜像文件,这里使用上面用pull指令下载下来的镜像文件,创建命令如下所示。
查看容器状态,命令如下所示,每个容器都有自己的container_id与names,供后面的命令操作使用(可使用docker rename命令修改容器名,便于简便使用)。
4.4启动容器 
容器创建后,通过container_id与names来操作容器,启动命令如下所示。
上文所说,容器是运行一个或一组进程,docker ps命令里的command即为容器运行的进程,当前显示bash,即进入命令交互进程。通过以下命令进入容器内部。
进入后,可以操作容器内的命令,如下所示。
通过exit命令,可退出容器,退出后容器就处于停止状态,如下所示。
通过以上操作,我们就完成了硬件与底层的搭建,为ros运行在这套开发板上做好了准备,下一章节将为大家带来ros的部署方法。

IR推出智能电源开关AUIPS7111S
气动V型球阀是什么,它的优点有哪些
360智能门锁M1青春版评测 同价位里品质最高的产品
简要介绍汽车功能安全及相关示例
Wishbone总线的异步周期结束路径
实现ARM+ROS(机器人操作系统)之环境搭建!
电路设计布局布线经验与技巧总结
魅族pro7什么时候上市?魅族pro7概念图流出:除了后置指纹和全面屏,你还期待魅族pro7给我们带来什么惊喜?
把握数学启蒙黄金期,阿尔法蛋大蛋2.0帮助提升数学思维能力
勒索病毒Petya在乌克兰肆意横行 乌克兰称俄罗斯是Petya的幕后黑手
汽车雷达与激光雷达市场的变革
大坝科技成为百度AI生态合作伙伴,数千名开发者聚焦于AI技术
薄膜电容的寿命等级
日月光投控推出覆晶天线封装和扇出型天线封装产品
三星推出全新110英寸MicroLED面板电视,完美取代不烧屏、99.99%屏占比
TI推出16位800MSPS内插数模转换器DAC3283
为避免家人走丢,如何快速制作一款蓝牙防丢器
无脑推荐的轻量应用服务器有没有?华为云是最佳选择
金立或将重组公司,只因被重金融资
智能离子风棒联网监控静电消除器的主要特点和功能