In terms of multi-robot systems, how do we think about coordination in terms of how robots communicate with each other and learn together?
When we talk about multi-robot exploration and teams of robots working together, we're thinking about how those individual robots make decisions and how those decisions impact other systems. As these coordinated teams of robots deploy and explore an environment, some robots will be able to explore the environment better than others. They will be able to more efficiently acquire more information faster. Sometimes this ability relates to the nature of the environment and the location of the robots within it, but it can also relate to other factors such as the type or quality of sensors that the robot is equipped with, how quickly the robot can move, or what kind of capabilities the robot has.
As the multi-robot system is exploring, the robots can each take into account their efficacy and performance characteristics to modify the distributed exploration strategy. This comes down to how they coordinate together. The system’s ability to coordinate enables the robots to make decisions of who should go where and when, and to assess the reason why a particular robot is better suited for the task. That is what we would call resource allocation or assignment.
Can you elaborate on this concept of resource allocation? How do teams of robots make decisions and allocate resources in an optimal manner?
If a multi-robot system is comprised of homogenous robots, then each robot is similarly equipped for exploration. But even though each robot has the ability to explore a particular location, it may be the case that only one of them should really do so for optimal exploration. Therefore, the choice of which robot should be assigned to explore the region will be related to factors such as proximity or battery life.
In the case of heterogeneous teams of robots, the system is comprised of different classes of robots that bring different capabilities to the deployment. For instance, one class of robot may have better sensing while another has better processing. These factors are taken into account in the decision of which systems -- which resources -- need to be allocated in order to effectively impact and improve exploration.
All of these factors essentially translate to a cost measure, or a utility measure, of that robot's ability to contribute meaningfully to that particular part of the exploration problem. And so the system is constantly asking this question of who is better suited to be assigned a given task across all of the different robots. It’s modeling each robot’s ability to contribute through this notion of the utility that they bring to the problem, and solving this problem of which robots should do what in order to maximize or minimize costs, depending on the type of problem that it’s solving.
From there, the problem can be expanded upon to consider deployment. This elevates the problem to consider resource allocation, scheduling, task assignment, and deployments of systems. Here, the system is asking the question of which robots can bring the most value at which times, based on their on-board constraints, their limitations, and their advantages and how that is composed with the current state of the system, in terms of where the robots are, as well as what the environment looks like at that particular instance in time.
Can you elaborate on the learning aspect of this resource allocation problem?
In both the single robot case and the multi-robot case, the resource allocation problem requires the system to make decisions of what is the better solution for an individual robot or a team of robots to do at that instance. This decision relates to how much information the system expects that the particular robot or robotic team will be able to acquire. And that comes down to the ability of the system to anticipate and predict how much information that single robot -- or team of robots -- can acquire given different performance characteristics over different time horizons.
That ability to predict is where the learning aspect is evident. The system is learning which of its predictions allow it to acquire the most information and improve upon that in order to operate better. As these systems are deploying, either as individuals or as a group, the robots are learning, they're sharing that learned information, and over time the group is able to work together more effectively.