发布v1.0版本基于Stretch的ROS Kinetic完整版树莓派3B+镜像

0x00 树莓派3B+介绍

一直听闻树莓派3B+发布了,性能比树莓派3B有所提升。但是大家都反馈说用着跟3B好像没什么不一样的,所以就没什么兴趣买来玩。最近正好有空,就采购了一块3B+来测试看看效果。下面还是先上几张图,让大家对3B+有个初步认识:

发布v1.0版本基于Stretch的ROS Kinetic完整版树莓派3B+镜像 - 第1张

发布v1.0版本基于Stretch的ROS Kinetic完整版树莓派3B+镜像 - 第2张

发布v1.0版本基于Stretch的ROS Kinetic完整版树莓派3B+镜像 - 第3张

发布v1.0版本基于Stretch的ROS Kinetic完整版树莓派3B+镜像 - 第4张发布v1.0版本基于Stretch的ROS Kinetic完整版树莓派3B+镜像 - 第5张

发布v1.0版本基于Stretch的ROS Kinetic完整版树莓派3B+镜像 - 第6张发布v1.0版本基于Stretch的ROS Kinetic完整版树莓派3B+镜像 - 第7张


0x01 系统镜像简介

目前为止在树莓派3B+上只能使用官方提供的raspbian系统,该系统是基于Debian9.4 Stretch来开发的。在该系统上目前只能通过源码来编译ROS系统,由于ROS Indigo到2019年4月份就停止维护了,所以在这里我编译的是ROS Kinetic系统。Kinetic系统要到2021年才停止维护,还有很长的时间可以使用。

我把ROS中常用的一些软件包都给编译了,总共有253个软件包。包括了rqt相关的工具,rviz也给编译了,当然SLAM相关的软件包都给编译了。如果大家在使用过程中发现还有常用的软件包没编译,可以给我留言,我会在下一个版本中编译进去。所有的这些软件包的编译也是经过了不少的报错,都被我给解决了。最终经过一夜的编译,所有的软件包都编译通过了。最终编译压缩后的镜像大小有1.13G,后面会根据需要来不断优化镜像大小。

我还编译了可以创建AP热点的软件包,这样大家还可以把树莓派当作一个无线路由器来使用,只要插上可以上网的网线即可。而且当我们在调试ROS时,我们还可以使用这个功能连接到树莓派上,具体的使用方法后面会介绍。另外我在树莓派上也安装了Arduino IDE,这样大家还可以在上面开发arduino。

在这里系统制作好以后,我就把桌面的默认背景图片给换成了ROS小课堂的logo。这算是唯一的一个植入性广告了,仅仅是为我的辛苦留个纪念而已。如果大家不喜欢的话,可以自行更换桌面背景。

发布v1.0版本基于Stretch的ROS Kinetic完整版树莓派3B+镜像 - 第8张


0x02 镜像下载

镜像目前已经上传至百度网盘和ROS小课堂的ftp服务器,由于小课堂服务器下载网络带宽只有2Mbps。为了保证ROS小课堂网站、SVN服务器、gerrit系统和项目管理系统的正常访问,我就限制了ftp的下载链接。只允许同时有10个人连接ftp服务器,这样就可以限制ftp的下载带宽。所以建议大家优先选择百度网盘下载,下面分别介绍两种下载方式:

1.百度网盘下载

百度网盘下载链接:https://pan.baidu.com/s/1nIankz8xg6xLrqIhGdWZLA

在下载该镜像时,我建议大家使用百度提供的百度网盘下载软件来下载。因为如果使用网页来下载的话可能会下载失败。当大家下载完镜像后的第一件事就是来验证镜像的完整性,该镜像是否被非法篡改或下载过程中导致镜像不完整而无法解压。这里我使用MD5校验和来保证镜像的完整性,正确的MD5校验和如下:

c798267f74a4cf7990e6a7ab4861673c

大家可以在终端中使用如下命令来验证镜像的MD5码是否跟上述的相同,如果一样的话,说明下载的镜像是完整的:

发布v1.0版本基于Stretch的ROS Kinetic完整版树莓派3B+镜像 - 第9张

2.ROS小课堂ftp服务器下载

发布v1.0版本基于Stretch的ROS Kinetic完整版树莓派3B+镜像 - 第10张


0x03 镜像安装

树莓派的系统需要安装在microSD卡中,安装了ROS kinetic系统的镜像会比较大,因此就要求microSD卡至少为16GB才能正常使用该新版本的系统镜像,若用8G的microSD卡可能会导致空间不足,安装失败。下面来介绍安装过程,由于下载的镜像是经过xz压缩的,所以首先需要解压镜像才能进行安装,解压命令如下:

xz -dkv stretch_ros_kinetic_desktop_full_v1_0.img.xz

发布v1.0版本基于Stretch的ROS Kinetic完整版树莓派3B+镜像 - 第11张

在解压完成后就可以得到安装镜像stretch_ros_kinetic_desktop_full_v1_0.img,然后我们就可以使用ddrescue工具来将此镜像安装至microSD卡中。但是我们要先确保已经安装好了相关软件,安装命令如下:

sudo apt-get install gddrescue xz-utils

最后就需要将准备好的microSD卡插到卡托内再接到电脑上,开始将stretch_ros_kinetic_desktop_full_v1_0.img安装至microSD卡中。但是在安装前,需要先卸载microSD卡的挂载点,然后才能安装,最终的安装镜像命令如下,整个安装过程大概有10分钟时间,大家耐心等待即可:

sudo ddrescue -d --force stretch_ros_kinetic_desktop_full_v1_0.img /dev/sdb

具体的操作步骤,如下图所示,供大家参考:

发布v1.0版本基于Stretch的ROS Kinetic完整版树莓派3B+镜像 - 第12张


0x04 镜像使用

当镜像安装好后,大家就可以加电启动系统了。启动时间感觉还是很快的,大概需要15秒钟即可启动完成。接下来大家要做一件事就是扩展文件系统。因为刚安装好系统后,系统无法识别microSD卡的所有分区。例如你的microSD卡本来有16G,但是刚烧写好系统开机后发现只有6.9G:

发布v1.0版本基于Stretch的ROS Kinetic完整版树莓派3B+镜像 - 第13张

对于这种情况,我们可以使用系统自带的树莓派配置系统来扩展文件系统,如上图所示,可以输入以下命令:

sudo raspi-config

发布v1.0版本基于Stretch的ROS Kinetic完整版树莓派3B+镜像 - 第14张发布v1.0版本基于Stretch的ROS Kinetic完整版树莓派3B+镜像 - 第15张

发布v1.0版本基于Stretch的ROS Kinetic完整版树莓派3B+镜像 - 第16张发布v1.0版本基于Stretch的ROS Kinetic完整版树莓派3B+镜像 - 第17张

当我们重启后,再次查看文件系统的磁盘使用情况,就可以发现已经可以正常的识别microSD卡的所有空间了:

发布v1.0版本基于Stretch的ROS Kinetic完整版树莓派3B+镜像 - 第18张

接下来我们就可以来看看ROS kinetic是否可以正常工作了:

发布v1.0版本基于Stretch的ROS Kinetic完整版树莓派3B+镜像 - 第19张

发布v1.0版本基于Stretch的ROS Kinetic完整版树莓派3B+镜像 - 第20张

对于如何使用create_ap来创建AP热点,可以参考以前发布的树莓派3B的镜像教程。里面有详细的介绍使用方法,这里就不再复述一遍了,大家可以参考该教程:

http://www.corvin.cn/490.html


0x05 注意事项

[1].系统默认的用户名是corvin,默认的密码也是corvin。对于root用户的密码也是corvin。

[2].系统已经默认开启了ssh-server和vnc-server,这样大家就可以很方便的进行ssh终端连接和vnc远程桌面连接了。

[3].在使用create_ap创建AP热点时,需要先断开当前的wifi连接,这样才能使用create_ap创建AP热点供其他设备来连接。

[4].当前系统中无法使用apt来直接安装kinetic相关的ROS软件包,所有的ROS软件包都需要使用源码来编译。

[5].理论上stretch的系统可以向下兼容,所以该kinetic镜像也可以在树莓派3B上运行,但是目前没有经过完整的详细测试,稳定性不敢保证。


0x06 References

[1].树莓派官方系统raspbian下载. https://www.raspberrypi.org/downloads/raspbian/

[2].ROS wiki上提供的在树莓派上源码编译kinetic系统的操作过程. http://wiki.ros.org/ROSberryPi/Installing%20ROS%20Kinetic%20on%20the%20Raspberry%20Pi

[3].树莓派RaspberryPi系统备份Image的制作. http://conanwhf.github.io/2016/08/25/rpi-cloneimg/

[4].linux下xz压缩解压命令. https://www.cnblogs.com/sunmmi/articles/9149414.html

[5].创建AP热点. https://github.com/oblique/create_ap


0x07 Feedback

大家在按照教程操作过程中有任何问题,可以直接在文章末尾给我留言,或者关注ROS小课堂的官方微信公众号,在公众号中给我发消息反馈问题也行。我基本上每天都会处理公众号中的留言!当然如果你要是顺便给ROS小课堂打个赏,我也会感激不尽的,打赏30块还会被邀请进ROS小课堂的微信群,与更多志同道合的小伙伴一起学习和交流!

本文原创,作者:corvin_zhang,其版权均为ROS小课堂所有。
如需转载,请注明出处:https://www.corvin.cn/948.html