0x00 Introduction to V1.4 Version ImageThe upgrade of this version image is mainly to adapt to the newly released Raspberry Pi 4 motherboard, as the last released v1.3 version kinetic image could not run on Raspberry Pi 4. The image released this time can run on all models of Raspberry Pi motherboards in the entire series. In the future, the titles of the released images will not include specific models of Raspberry Pi motherboards, as the images released now support all Raspberry Pi models.This upgrade also updates to the latest version of the kinetic source code, and the source code of cartographer has been compiled, so we can run cartographer on Raspberry Pi. After testing with datasets, it was found that it is possible to create a map of 12,000 square meters on Raspberry Pi 4 (though it is a bit laggy due to CPU overload).Moreover, we often do not connect a screen to Raspberry Pi, so obtaining the IP address for remote connection can be a bit “troublesome”. I developed a small feature that actively announces its IP address via voice as soon as the Raspberry Pi connects to the network.Note that when your Raspberry Pi does not have an IP address, it will keep waiting, and when it detects an IP, it will automatically announce it. This announcement will only be made once, and of course, your Raspberry Pi must be connected to a speaker to hear this voice announcement feature.
0x01 Image DownloadSince compiling and testing can be very time-consuming and labor-intensive, to support my ongoing maintenance of the Raspberry Pi ROS image releases, downloading the image requires a fee. However, if you are a VIP user of our website, downloading the image is free.
You can go to the official ROS classroom website to download:
https://www.corvin.cn/1747.html
The first thing after downloading the image is to check the integrity of the file, using the md5 checksum. The correct md5sum is:63dfe34a8881d8de654d6e5fb222372eObtaining this checksum is very simple. After downloading, just execute the following command in the terminal to get the checksum:md5sum raspi_buster_ros_kinetic_desktop_full_v1_4.img.xzIf the checksum is different, it may be a network issue causing the downloaded file to be incomplete, and you will need to download it again. When the obtained checksum matches the above, it indicates that the image is complete. Next, you can decompress it, with the complete decompression command as follows:xz -dkv raspi_buster_ros_kinetic_desktop_full_v1_4.img.xz
Once decompressed, you will obtain an image file ending in .img. Finally, using the Etcher writing software, you can write the image to the SD card. If you don’t know how to operate it, you can refer to the previous articles on how to use this software to write the image, which is very simple to use.
0x02 Boot Testing
After writing the image, insert it into the Raspberry Pi. Then we can power it on. If you do not connect a screen, the feature of automatically announcing the Raspberry Pi’s IP address after booting and connecting to the network will be very practical, of course, a speaker is needed to hear the announced IP address.Before connecting to the network, we need to configure our Ubuntu system to share the IP address via wired network. This way, we can use a single network cable to connect our computer and Raspberry Pi, and then we will hear the announced IP address. Once we know the IP address, we can use VNC for remote desktop connection, with the specific operation process shown in the following video:Boot announcement of IP addressNext, we can test the newly installed cartographer, but before testing, we need to download a dataset. We will use a dataset to see how Google’s cartographer performs in mapping.The download link for the dataset can be found in the references at the end of the article. Note that I am choosing a 2D mapping dataset; there are many datasets available, and you can choose as you like, as shown in the image below:
I am choosing to download the last datasetb2-2016-04-27-12-31-41.bag ,which is 234MB in size. After downloading it to the local computer, we can upload it to the Raspberry Pi. The command to send the file is also very simple, the complete command is as follows:scp b2-2016-04-27-12-31-41.bag [email protected]:~/Note that you need to modify the IP address here according to your Raspberry Pi’s IP address. The specific operation is shown in the following image:
Once the dataset is ready, we can start cartographer to see how it performs in mapping on Raspberry Pi. The startup command is as follows:roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/b2-2016-04-27-12-31-41.bagNext, we will watch a video to see the mapping effect of running cartographer on Raspberry Pi 4:Running cartographer mapping on Raspberry Pi
0x03 Using the Voice Board
In the released image system, I have configured the development environment for using the voice board. You just need to plug the voice board into the Raspberry Pi board and download the code to use it directly. We have a complete set of learning courses for the voice board, which can be viewed at the link below:https://www.corvin.cn/voice-interactive-system/raspberrypi-ai-soundboardThe source code for the voice board has been placed in the code repository, and you can modify it as needed. The repository link is as follows:https://code.corvin.cn:3000/corvin_zhang/AIVoiceSystem
0x04 Precautions
[1]. After the system starts, the default username is corvin, and the password is also corvin. The password for the root user of the system is also corvin. You can modify it as needed.[2]. The system has already enabled the ssh-server on port 22 and the vnc-server on port 5900 by default, allowing for easy ssh and vnc remote desktop connections.[3]. The apt command cannot be used in the system to install ROS kinetic related software packages because all ROS packages in this system have been compiled and installed from the corresponding ROS source code.[4]. The system image can run on various models of Raspberry Pi boards, such as Raspberry Pi 4, Raspberry Pi 3B+, Raspberry Pi 3B, etc.[5]. The system image has already installed the voice board drivers, so you can directly use the voice board by purchasing our voice board and plugging it into the Raspberry Pi.
0x05 References
[1]. Official documentation for Cartographer ROS. https://google-cartographer-ros.readthedocs.io/en/latest/[2]. Download of test datasets for Cartographer. https://google-cartographer-ros.readthedocs.io/en/latest/data.html
0x06 Feedback
If you have any questions while learning according to the tutorial, you can leave a message at the end of the article or follow the official WeChat account of ROS Classroom to send me a message for feedback. I basically handle the messages in the WeChat account every day! Of course, if you want to give a reward to ROS Classroom, I would be very grateful. If you donate 30 yuan, you will also be invited into the ROS Classroom WeChat group to learn and communicate with more like-minded partners!