0x00 V1.4版本镜像简介 本次版本的镜像升级主要是为了适配新发布树莓派4主板,因为上次发布的v1.3版本kinetic镜像是不能在树莓派4上运行的。这次发布的镜像可以在全系列所有型号的树莓派主板上运行,以后就发布镜像时标题就不带树莓派主板的具体型号了,因为现在发布的镜像是所有树莓派都支持。 这次的升级还更新到最新版本的kinetic源码,而且还把cartographer的源码编译了,这样我们就可以在树莓派上跑cartographer了。经过测试跑数据集,发现竟然可以在树莓派4上建立1.2万平方米的地图(当然有点卡顿,因为cpu爆满)。 还有就是树莓派我们是经常不接屏幕的,所以要想远程连接的时候,获取IP地址就是一个比较“麻烦”的事。我开发了一个小功能,就是在树莓派一连接上网络就主动语音播报自己的IP地址。 注意当你的树莓派没有IP地址的时候,会一直等待,当检测到有IP的时候会自动播报,这里是只播报一次IP地址,当然前提是你的树莓派要接上喇叭才能听到这个语音播报功能。
0x01 镜像下载 由于编译、测试会非常消耗时间和精力,所以为了支持我能够不断的维护发布树莓派ROS镜像。这里下载镜像是需要收费的,当然你要是我们网站的VIP用户的话,下载镜像是免费的。
大家可以去ROS小课堂官网进行下载即可:
https://www.corvin.cn/1747.html
下载好镜像后的第一件事情就是校验文件的完整性,这里使用md5校验和。正确的md5sum是: 63dfe34a8881d8de654d6e5fb222372e 得到该校验码的方式很简单,当下载好后,直接在终端中执行如下命令就可以得到该校验码: md5sum raspi_buster_ros_kinetic_desktop_full_v1_4.img.xz 如果校验和不同,那就可能是网络问题,导致下载的文件不完整,需要重新下载了。当得到的校验和跟上述的相同时,就说明镜像是完整的。接下来就可以解压了,完整的解压命令如下: xz -dkv raspi_buster_ros_kinetic_desktop_full_v1_4.img.xz
当解压完毕后,我们就可以得到一个.img结尾的镜像了。最后我们使用Etcher这个烧写软件,就可以将镜像烧写进SD卡中了。如果不知道怎么操作的,可以看一下前面发布版本时候的文章就知道如何使用这个软件来烧写镜像了,它使用起来非常的简单。
0x02 开机测试
当镜像烧写完毕后,将其插入到树莓派中。然后我们就可以加电启动了,这时候如果你没有接屏幕的话。那这个开机联网后自动语音播报树莓派IP地址的功能就很实用了,当然需要有喇叭才能听到播报的IP地址。 在进行联网之前,我们需要配置下自己的ubuntu系统,将有线网络配置成共享IP的方式。这样我们就可以使用一根网线将我们的电脑和树莓派连接起来了,这样就会听到播报的IP地址了。当知道IP地址后,我们就可以使用VNC来远程桌面连接了,具体的操作流程如下视频所示: 开机播报IP地址 接下来就可以测试新安装的cartographer了,但是在测试前我们需要下载一个数据集。我们这里使用数据集来跑起来,看看谷歌出品的cartographer建图效果怎么样了。 数据集的下载链接可以从文章后面的参考资料中获取到,注意这里我选择的是2D建图的数据集,这里的数据集很多,大家可以自行选择即可,如下图所示:
我这里选择下载的是最后一个数据集 b2-2016-04-27-12-31-41.bag , 这个数据集有234MB大小,我们在本地电脑下载好之后就可以将其上传到树莓派中。这里的发送文件命令也很简单,完整命令如下: scp b2-2016-04-27-12-31-41.bag corvi[email protected]:~/ 需要注意的是这里的IP地址,大家需要根据自己的树莓派IP地址来修改即可。具体操作如下图所示:
当准备好数据集后,我们就可以来启动cartographer,看看在树莓派上建图的效果了,启动命令如下: roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/b2-2016-04-27-12-31-41.bag 下面我们通过视频来查看下在树莓派4上跑cartographer建图的效果: 树莓派中跑cartographer建图
0x03 语音板的使用
在发布的镜像系统中,我已经配置好语音板使用的开发环境。大家只需要将语音板直接插到树莓派板上,下载好代码就可以直接使用了。语音板我们有完整的配套学习课程,可以从下面链接中看到: https://www.corvin.cn/voice-interactive-system/raspberrypi-ai-soundboard 语音板配套的源码已经放到代码仓库中,大家可以根据需要来修改,仓库链接如下: https://code.corvin.cn:3000/corvin_zhang/AIVoiceSystem
0x04 注意事项
[1].系统启动后,默认的用户名是corvin,密码也是corvin。对于系统的root用户,密码也是corvin。大家可以根据需要自行修改即可。 [2].系统已经默认开启了22端口的ssh-server和5900端口的vnc-server,这样大家就可以很方便的ssh连接和vnc远程桌面连接了。 [3].在系统中无法使用apt命令来安装ros kinetic相关的软件包。这是因为该系统中所有的ros软件包,都是我使用相应ROS软件包源码编译安装的。 [4].系统镜像可以在树莓派各型号的板子上启动运行起来。例如树莓派4、树莓派3B+、树莓派3B等。 [5].该系统镜像已经将语音板驱动都安装好了,因此只要购买我们的语音板就可以直接将语音板插在树莓派上直接使用了。
0x05 参考资料
[1].Cartographer ROS官方文档. https://google-cartographer-ros.readthedocs.io/en/latest/ [2].Cartographer的测试数据集下载. https://google-cartographer-ros.readthedocs.io/en/latest/data.html
0x06 问题反馈
大家在按照教程学习过程中有任何问题,可以直接在文章末尾给我留言,或者关注ROS小课堂的官方微信公众号,在公众号中给我发消息反馈问题也行。我基本上每天都会处理公众号中的留言!当然如果你要是顺便给ROS小课堂打个赏,我也会感激不尽的,打赏30块还会被邀请进ROS小课堂的微信群,与更多志同道合的小伙伴一起学习和交流!