如题所示,本人在虚拟机上安装ubuntu1804,可以很容易安装,并且更换系统apt源和ros源,然后安装ros,非常顺利,但是在树莓派4B上安装raspiberry系统就遇到了好多问题。
树莓派我烧录的是这个镜像:ubuntu-18.04.5-preinstalled-server-arm64+raspi4.img,推荐大家使用华为云的镜像地址,我以前一直以为清华云镜像会很快,但是这次我下载镜像,发现华为云镜像要快很多。
首先烧录系统,我们要烧录的是img结尾的镜像系统,而不是我们在网上下载的zip,xz压缩包,虽然使用DiskImage工具可以将任何文件烧录成功,但是只有img镜像烧录之后,才能被树莓派加载。
再一个就是虽然烧录成功,插入TF卡到树莓派卡槽里,通电,树莓派4B会提示start4.elf is not compatible,也就是不兼容,意思是固件需要升级,解决办法就是去github上下载GitHub - raspberrypi/rpi-firmware: Firmware files for the Raspberry Pi。找到我们烧录成功之后的一个系统引导文件夹boot或者叫system-boot,并不是全部替换,只替换fixup*.dat和start*.elf总共16个文件。
我试着全部替换,还是进不去系统,所以慎重替换。
进入系统之后,又有问题了,系统连不上wifi,因为这个系统不带桌面,所以即使我们连接了显示屏,仍然是命令行,按照有的资料说是可以通过raspi-config命令设置无线,我的那个系统连raspi-config命令都没有。也有的说,在boot里面加入wpa_supplicant.conf文件,让系统启动之后,自动连接wifi,试了也不行,最后的办法就是直接使用网线连接,然后安装桌面。
apt install xubuntu-desktop
这个安装就是不更换系统源,好像也很快。
进入系统之后,可以通过桌面来手动连接wifi,和windows类似,只不过raspiberry系统的网络设置在屏幕右上角。
根据个人的经历,最好连接显示屏幕,这样有什么问题可以直接就发现了,而不用盲目等待,像系统烧录不正确的问题,固件不兼容,需要升级的问题,都可以很直观的看到。有的资料里面提到通过串口进入系统,然后各种设置安装,其实那是在系统顺利安装的前提下才可以进入,否则系统安装遇到问题,串口也无法进入系统,还是需要显示器。
两个安装,都会遇到同一个问题就是,rosdep init 和 rosdep update会因为网络问题而失败,解决办法就是安装rosdepc,这个是一个叫 小鱼的博主开发的专门针对中国用户的工具,他使用国内的源,最终能达到rosdep update一样的效果。
apt install rosdepc
rosdepc init
rosdepc update
在安装rosdepc的时候,可能会缺失其他库,根据提示,安装上缺失的库即可。
我在虚拟机和树莓派里面安装的都是ros-melodic-desktop-full,设置好了源,安装都很快,而且不会出现失败的情况。
最后在虚拟机下运行小乌龟的示例:
开启三个终端,分别运行如下命令:
1、
roscore
2、
rosrun turtlesim turtlesim_node
3、
rosrun turtlesim turtle_teleop_key
运行截图动画:
树莓派连上屏幕,运行也是类似的效果。