At first blush, this might seem like sort of a strange question. And in truth, it is somewhat of a trick question. To make it more clear and put it into context for this article, the question might be more like, “What is a robot in Robby’s world?”.
In our overview tutorial video, you’ll find the term, “Freeform Networks of Networks”. In this article, want to clarify what we mean by that term and to do that, defining what constitutes a “Robot” in Robby’s semantical universe might be a good place to start thinking about it.
The image above usually accompanies the networks of networks term. It’s somewhat simplistic, but this image does illustrate what we’re trying to illuminate with the question of what a robot is.
At its core, Robby is about building networks. Networks consist of JSON configurations built using the framework’s UI. They define a group of devices (and/or services) a robot will use in its operations. Once a robot’s maker has built up a network, they’ll create a “Master Control Program” (or MCP) which will access the network to control the robot’s functionality.
Part of what we’re hoping to convey with “Freeform Networks of Networks” as well as the above image, is the idea that what constitutes a Robot in the context of the framework's architecture is loosely defined. For example, there’s nothing to say a robot needs to include a single MCP talking to a single network.
In a more complex robotic (or in particular, IoT) project, it may be advantageous to have multiple MCP’s controlling different features of the overall robot (e.g. MCP for a robotic arm, one to control body movement and posing, etc...). All of these MCP's might then be controlled by a central MCP whose network simply views the other MCP’s as its devices.
In this example, does each of the MCP/network combinations constitute a robot; or is it that only the central, controlling MCP combined with its network is a robot? Our answer to this question is, “Yes”.
Consider, if the MCP’s controlled by the central MCP are actually housed in separate physical robots and the central MCP is on its own Windows device orchestrating the operations of the group of robots. Is this central MCP a robot now? These two examples illustrate what we mean by the “Freeform” part of the networks of networks term.
So, to finally answer the question of what a robot is in Robby’s world: it’s an intentionally amorphous construct. Robby is intended to support absolutely any combination of devices and services. And, other instances of Robby can simply be viewed as more devices.
Defining some combination of devices and services within a Robby landscape as a robot is largely an arbitrary distinction. What feels like a robot to you? Truth is, Robby doesn’t care.