Transitive, the open-source framework for full-stack robotics, is built on three core concepts: full-stack packages, real-time data-synchronization with full-stack reactivity, and topic-based access control. In this post, as part of a mini-series exploring these concepts, we will describe the former.
Software package managers serve three high-level functions: they define a standard format for packages incl. versioning, they provide dependency resolution, and they (typically) provide a mechanism for the distribution and installation of these packages. There exist a good many package managers, typically tied to a specific context, e.g. apt, yum, snap, npm, yarn, pip, uv, and cargo, to name just a few. It would seem plausible that at least one of these existing package managers would be suitable for managing robotic software as well, but they are not and that is due to a very specific need in robotics: cross-device dependency management.
Robotics companies with fleets of more than a handful of robots need web dashboards to monitor and operate their fleets. They enable non-engineers to monitor, triage and sometimes fix issues in the field, which is required for operational efficiency and to free engineers from daily interruptions. This is particularly important with a RaaS business model. But who builds these dashboards? Engineers are already spread thin due to the large number of aspects of robotics they need to attend to (hardware, firmware, drivers, robotics stack, cloud, web) so building their own web dashboards from scratch is challenging, especially since the skills required for web development are quite different from the rest of the robotics software stack.
It is an exciting time! You have successfully completed several customer pilots and are deploying your next batch of five to ten robots to the field. This is the moment of truth you have been working towards, through all the hardship of starting a robotics company. The moment where you can see market fit and start to grow. From here it will be all downhill, right? Not so fast! The difference between building and deploying a small number of prototypes and scaling to tens, hundreds, and thousands of fielded robots is vast. The name of the game in Robotics-as-a-Service and related vertically integrated business models is "operational excellence". You need to be able to deploy, monitor, and manage that fleet as it grows and your cost must not grow proportionately. You and your team need to get ever more efficient at operating that fleet, just like the mean time between failure of your hardware needs to increase.
Of course, as with virtually any challenge in robotics, we can call technology to the rescue. Software to be exact. Putting the right software tooling in place will allow you to more efficiently perform all tasks of fleet management, enable non-roboticists to triage and resolve issues, and reduce the number of times engineers are called to the scene (literally or remotely). This is key in reducing your cost and allows you to tap more resources. Furthermore, software is what will allow you to visualize to your customers the value you generate for them, providing them dashboards and reports that answer the question: "what have those robots done for us lately?" This is important, not only before contract renewal, but also every time a stakeholder at your customer changes or you want to increase the number of robots deployed at your customers.
The only problem: building a fleet management system from scratch is hard!
It is hence natural, and prudent, to consider using a third party fleet management solution rather than building your own. Why reinvent the wheel if someone has already done it? As it turns out, neither buy nor make are good options.
Three ways to set up a robot fleet management system: comparing amount of work and degree of completeness over time. The area in dark blue represents the amount of work and time required to make your own. The larger the area, the more work it is.
We are thrilled to announce the self-hosted version of Transitive, the open-source framework for full-stack robotic software.
Transitive has been used in production every day by many robotics startups for over a year now but until today the only way to use it was via the hosted version on transitiverobotics.com. The hosted version is ideal for any robotics company that wants to add new capabilities to its fleet quickly, such as low-latency video-streaming or configuration management. But Transitive's vision has always been to create and support an ecosystem of developers who want to develop and share their own full-stack robotic capabilities. We believe this has the potential to accelerate the development of new and exciting robotic applications similar to how ROS has advanced this industry before. Before ROS, developing your own robotics product meant you also had to develop your own robotics communication middle-ware and a lot of the necessary software modules, incl. SLAM and navigation. With the advent of ROS and its ecosystem of packages, startups could not only move faster, they could also get to market with a lot less capital and reach profitability sooner. We aspire to give robotics startups another boost of this kind by creating a framework that makes it easy to connect robots to the cloud and web front-ends, provides the same level of openness as ROS, and supports sharing of packages, which we call capabilities.