Playing the long game in the open-source framework/middleware league
Originally published as FIMA blog post 28.11.2022 (fima.fi)
Introducing a full-blooded Field & Service robot is not for the faint-hearted. The machine consists of a big bunch of SW and HW modules. A vast array of different sensor modalities provides, often incomplete, information not only from the machine’s internal issues but even more importantly from external circumstances and events. Likewise, different types of actuators provide the required actions, be those platform mobility or work system (e.g., boom) manipulation related, based on task planner’s objectives and low-level control rules. Everything is based on bits and bytes (data and commands) flowing from one source to another in a controlled, safe, and coherent manner. Not an easy task even in some simple use cases. Additionally, one has to secure man-machine, machine-infra and sometimes even machine-machine interactions and ways to handle those also in locations where the communication media is far from being well-suited for fast and reliable connections.
The GIMNET story
GIM Robotics knows the above all too well for doing just that since the dawn of autonomous mobile robotics in Finland. Based on Professor Aarne Halme’s pioneering work at Helsinki University of Technology’s Automation Technology Laboratory since 1985, GIM Robotics has its roots deep in the mobile robotics worldwide evolution. Group’s early decades were filled with all sorts of machines, including 6-, 4- and 2-legged walking machines, ball-shaped robots, multi-robot systems, underwater robotics, self-driving cars, All-Terrain-Vehicles and some robotized versions of modern working machines.
When the new millennium started, it had become painfully evident that we were getting close to our limits in creating full software stacks for different types of machines. Although we were naturally re-using components as much as possible, every machine and every project required a substantial amount of coding and fine-tuning operations. Jari Saarinen (later GIM Robotics’ first CEO), together with a few other equally brilliant guys like Antti Maula, began to create something which could be used to help in our diverse research projects. The first paper (Saarinen et al., 2007) presented a software infrastructure designed for the distributed control of generic intelligent machines. The developed framework was named as GIMnet to honor our Institute for Generic Intelligent Machine jointly established already in 2005 together with our colleagues from Tampere University of Technology’s Institute of Hydraulics and Automation (IHA) led by Professor Matti Vilenius.
Centre of excellence period
That Institute later got the Academy of Finland’s Centre of Excellence status (CoE-GIM) for the period of 2008-2013. The original GIMnet development work was mostly done in the INTEGRATOR project. It was funded by TEKES (later Business Finland) and partly by FIMA. The main objective of the project was to provide a mutual testbed for the two above-mentioned laboratories situated some 200 km apart. The outcome served CoE-GIM throughout its lifespan. Any interested party can find further information about GIMnet from the net including for example the introduction of GIMnet 2.0 (Maula et al., 2012).
ROS arrives
During the last few years at the university, it had become evident that out of all GIMnet-like middleware (the term used here very loosely) implementations, Robot Operating Systems (ROS) by Willow Garage (based on Stanford’s duo Keenan Wyrobek and Eric Berger, funded by Scott Hassan) had become a clear winner. It was greatly benefiting from a huge community of robotics researchers and fans. The benefits – mostly due to the whole ecosystem with a mind–blowing selection of tools, algorithms, software and more – were just so overwhelming when compared to our in–house solution and to other alternatives.
Challenges with ROS
GIM Robotics was founded in 2014. When the company dug deeper into the heart and soul of ROS, we clearly saw the benefits of the solution, but also became aware of some of its problems, or should I say inherent features. Being developed mainly for R&D testing and piloting operations, with a strong bias towards university projects, real industrial environment ROS powered projects with large, sometimes fast, machines operating, sometimes even in shared, environments were in trouble when rules, regulations, standards, and laws were applied to them. Single point of failure structure (in the form of the roscore running basically the show), the hard real-time system no-goes, and its lack of platform interoperability and the problems with security issues and with embedded solutions where the main drivers slowing its transformation from the academic institutions and start-ups into Fortune 500 companies needed for the real worldwide revolution. Something needed to be done. And that something was ROS2 by Open Source Robotics Foundation (later named as Open Robotics led by Brian Gerkey).
Adopting ROS2
Due to the above challenges related to the original ROS, GIM Robotics has been actively following the introduction of ROS2 into the world of robotics. We have already used something, which might be called as a “full solution” for controlled navigation tasks. Similarly, we have used bits and pieces of ROS2 as parts of our existing ROS solutions. We have witnessed some clear improvements in the generic ROS approach as expected, especially on the real-time (mainly due to the introduction of Data Distribution Service aka DDS) and reliability (mainly thanks to getting rid of roscore, the Master node) related issues, but, likewise, we have detected some clear work-in-progress features craving some further refinements and clarifications – and maybe even some heroes (individuals and key companies) taking bigger roles driving the development work. If those challenges are not taken care of in a timely manner, there is a risk that some other solutions, mainly coming from the car industry, might prevail in this long and continuous battle for the open-source frameworks for mobile machines.
PEAMS project
To be in the forefront of that development process, GIM Robotics is extremely happy to be a partner in Business Finland funded FIMA led Platform Economy for Autonomous Mobile Machines Software Development (PEAMS) project. We are especially thrilled to participate in the project’s real-world demos (indoor and outdoor) with our robots and our software modules. We are just dying to see how easy it will be to plug our solutions into others’ solutions and robots. Based on some marketing material flying around it shouldn’t be more than a mere plug-and-play operation. However, our nearly 20 years long experience with several open-source frameworks and middleware concepts suggests that there might be a few bumps ahead.
Regardless, we feel that ROS and especially ROS 2 are the most prominent candidates for enabling the bright future in the coming years, when autonomous Field & Service robots and modern working machines, with high levels of autonomy, will finally break free from confined/constrained areas into our everyday life. To do that, they must be safe, efficient, and economically viable.
We are betting our money on ROS2 – at least now.
References
Saarinen, J, Maula, A, Nissinen, R, Kukkonen, H, Suomela, J & Halme, A. (2007). GIMnet – Infrastructure for distributed control of Generic Intelligent Machines, In Proceedings of the 13th IASTED International Conference on Robotics and Applications, pp. 525–530.
Maula, A., Myrsky, M., and Saarinen, J. (2012). GIMnet 2.0 – enhanced communication framework for distributed control of generic intelligent machines. In Proceedings of the 1st IFAC Conference on Embedded Systems, Computational Intelligence and Telematics in Control, pp. 62-67.