Successful new robotic Mycroft integration with Ubuntu 20.04 Server on Pi3B+

Yay! My newest little invention works. So uhhh…now what? I could honestly use some advice on setting up a modern infrastructure for users and developers. Github is working, but I haven’t started a Wiki. There’s also a Youtube channel and website in the works. I would definitely like to host my Pi image for all of you to use. It was easy to build with available apt and snap packages. I’m working on polishing the image up a little before releasing it so the compressed file is smaller. You should be able to DL the image and unzip it on a formatted 32GB card, a familiar process to some of us.

Some of you may or may not know that there is a new Ubuntu 20.04 image for Raspberry Pi. The ease of integration onto this OS image is what makes it so wonderful to use. Mycroft plugged right in just like anything else. No muss. No fuss. This new image from Canonical opens the door for using the rest of the AI toolbox with things like ROS, ROS2, Tensorflow, and even easier bluetooth capability. All the Ubuntu toys are now available–and stable–to the best of my knowledge and ability.

Let’s first rewind to 2 years ago. I was introduced to ROS and Mycroft at the same time as an avid Linux user. My first experiments with ROS were to integrate it onto my Linux laptop. The little ROS Kinetic Kame turtlesim demo program could accept voice skill input from Mycroft after some typical repository tweaking to find the right libs. This more regular PC setup integrated without any real issues. The Pi3B+ was another story. That had to be built from scratch with cmake and all the proper libraries in place on the build machine. I pulled it off using the pre-Raspbian Debian Stretch Lite that Mycroft was built on. My little ROS demos worked on the Pi, but the ground was shifting underneath. Python 2 was being deprecated, and some libraries were a bit old. In short, it worked, but was a little ugly getting there. You couldn’t build it yourself very easily at all. I didn’t want a new and good thing to be a house of cards. All of that has changed for the better with a little patience.

Fast forward to now—ALLLLLLL of that debugging is now no longer needed. Lucky you! But, what does that really mean to us? It means Mycroft can play with virtually anything else in the Ubuntu toolbox, but on a Pi3B+. This means you can get real interplay with AI build tools like Kubernetes, Tensorflow, Docker, Yocto, and even ROS1 AND ROS2! The GPIO pins work. I can even run a bluetooth gamepad. All are currently installed and running on my image. It honestly has more tools than I can use at the moment. I just know they all fit and don’t use much memory.

I haven’t tried it on the Pi4 just yet, but I don’t anticipate any issues. The Pi 1 + 2 are not supported by Canonical. I stuck with the 3B+ due to power requirements on my robot. The 3B+ only requires 2.5A @ 5v. The Pi4 requires 3.5A at 5V. My onboard battery is spec’d for the B+.

The Pi3B+ image itself is around 12GB so far, so I’d aim for at least a 32GB memory card. This will also allow extra room for AI training.

Some things remain consistent with Ubuntu on the Pi from Mycroft’s perspective. It still doesn’t work with X11, so I had to use the Ubuntu 20.04 Server Edition to make this work.

Headset usage was seamless. I’m using an older USB H600 headset, still. It plugged right in and worked.

The GPIO pins all work. The classic WiringPi library works along with familiar GPIO Python usage.

No need to up the swap space, so far. That might be needed for more intense AI work but it remains to be seen.

Bluetooth gets a special mention here. I am using a bluetooth enabled PS4 clone gamepad. It was a pretty seamless integration once I found the right libraries.

I have not done much with ROS on this image yet, quite frankly. We might have an open door for training Mycroft as well as autonomous driving capability.

The real breakthrough here is what Canonical did with releasing a Pi image. I tried it out and didn’t have any real problems. This is something that’s only slightly more advanced because it relies so heavily on the command line to get everything done. For someone looking to learn more about Linux, ROS, AI, and robotics, then everything fell into place using this.

Github repo

Rocket City Dynamics Youtube Channel

3 Likes

To do list:

-List installed apt packages
-make compressed image under 3GB for DL
-Start Wiki
-Host compressed image
-More vids + pics
-More functions

Very cool project!

Also worth noting that we use Ubuntu 20.04 as the base for the Mark II mycroft container so you could get the mycroft-gui running on there if you wanted :smiley: