The Future Past and Leaving a Legacy

I really feel for robotics book authors, robotics tutorial writers, and robotics platform developers. When Java was first introduced the phrase “write once, run everywhere” was bandied about, but developers knew that every application would need maintenance to keep existing functionality working and to repair issues.

Maintaining a feature set atop a changing language, on top of an (or more than one) changing operating system using a variable set of other-companies’ sensors that will be changing their features and API, is a future task (and future expense) that cannot be easily estimated when business plans are first being prepared.

Tutorial writers in their eagerness to help others come up to speed, often do not commit to “own” the maintenance of their artful creation as all the dependancies change.

Robotics book authors (and robot manufacturers) invest immense effort to create examples to demonstrate basics combined to create a complete autonomous mobile robot, only to see language and operating systems changes cause readers and users to complain “I followed your instructions, but it doesn’t work!”

The reason I bring this up is due to the confluence of my love for the GoPiGo3 and deciding to use the GoPiGo3 to provide input to a book author/publishing company in the planning for a third edition of their excellent product “Learn Robotics Programming”, Danny Staple, Packt Publishing 2021.

It was relatively easy to build a virtual Raspi_MotorHAT controller over the GoPiGo3, and relatively easy to create simulated left and right 45 degree angled distance sensors using the GoPiGo3 servo kit and the DI ToF sensor, so that the robot behavior examples of the book could run without change.

Then come to the chapters that introduce using the Pi Camera and OpenCV. Should I recommend the new edition rely on the “Legacy PiOS”, or the current PiOS with “Legacy Camera”, or the current PiOS with the current libcamera applications and the now “public beta” picamera2 interface?

My software career was always on the bleeding edge and it felt good to retire. I thought I could lower my stress by following rather than leading all the time. My tendency is still to surf the edge, like following the “Hands-on ROS For Robotics Programming” (with GoPiGo3) book but using bleeding ROS2. I learned a lot but stressed even more.

The Raspberry Pi foundation only promised the “Legacy Camera” for Buster, but it still exists on Bullseye. From the Raspberry Pi blogs, it would seem that the foundation is attempting to minimize the maintenance effort to support new operating system releases, and has been maximizing their attention on the Pico and RP2040 chip.

These continual earthquake tremors present challenges to ModRobotics as well. We have seen Raspbian For Robots become semi-deprecated, and combine its features with DexterOS with additional new features to become GoPiGo OS. Of course the years of tutorials and web collateral cannot all be updated, and I get a little sad about the arrested emergence of new GoPiGo3 examples.

Part of me wants to relax and follow, while part of me is always pushing to go over the edges. Today, part of me still wants to relax, and the other part just wants to complain about that other part of me.