Buckaroo Bonzai: Adventures in ROS ARM64 Land
We all were excited by the prospect of getting our ROS 1 robots working with the newer releases of small form factor GPU enabled ARM architecture computers like the Raspberry PI 4 and the Jetson Nano. The small size and considerable power of these systems mean difficult issues like visual slam, obstacle avoidance, facial recognition should be obtainable on even small robots. Unfortunately, building these systems is not simply a matter of burning an SD image and a sudo apt install.
Part 1: The Rpi 4
The first problem you encounter is which OS to install if you want to run the RPI at 64 bit. There are several to choose from, and so far none of them support the raspicam MMAL interface. I’ve tried several and the ubuntu-mate-20.04.1-beta2-desktop-arm64+raspi.img.xz seemed to work the best. This along with a Noetic full desktop install seemed to work, the raspicam could be accessed via usb_cam, but cheese wouldn’t work, and raspistill could not be built. As of this writing there is no ARM64 Userland, and several attempts to build via script have failed, even with the Raspian version. I heard there is a new ubuntuunity release for the Pi 4, but after 3 different OS attempts, I am reluctant to bother.
Part 2 The Jetson Nano 4Gig
The stable release via Jetpack is still Ubuntu 18.04, So Melodic (based on Python 2.7) is the ROS version. This causes many headaches since all the AI (CUDA, YOLO) is based on Python3, OpenCV4.
Once you get Yolo and OpenCV4 working, ROS Melodic cv_bridge and vision_opencv fail. I am not sure when a stable release on Ubuntu 20.04 will be finalized, and if it will fix these issues. Also though the raspicam is recognized by the Jetson (following the online Jetsonhacks tutorial) the usb_cam launch fails with a missing V4L error 25 message.
The woods are lovely, dark and deep,
but I have miles to go before I sleep,
miles to go before I sleep