Writing and writing C++ code for the servers and the clients that allow to MyzharBot to move I had always in mind the possibility to migrate toward ROS. ROS is something similar to an operating system written to control every kind of robot, but it is not a real operating system, is a framework that runs beside the operating system.
ROS is an open-source, meta-operating system for your robot. It provides the services you would expect from an operating system, including hardware abstraction, low-level device control, implementation of commonly used functionality, message passing between processes, and package management. It also provides tools and libraries for obtaining, building, writing, and running code across multiple computers.
I know about the existence of ROS since it was born in late 2007, but I never went deeply into its functionalities postponing my study to “the next month”. In the last days I finally started reading a few documentation about ROS and I noticed that its structure is really similar to what I am doing for the SDK of MyzharBot and I figured out that I am really reinventing the wheel!
I know that ROS runs without any problem on NVidia Jetson TK1 and on Beagle Bone Black, this will allow to distribute the tasks on the two boards without too many work. The heaviest work to make is to transform the RoboController-Server into a rosnode to provide interface between RoboController board and ROS and to study the new system configuration to create the rostopics to post information about the status of the robot between the various subsystems.
It will not be a “no cost” work, but the final result will allow to dedicate every second of the time spent on MyzharBot on the tasks that will make it more and more autonomous.
Stay tuned… and come to meet MyzharBot at MakerFaire 2014 in Rome next October if you are curious to know more about it.