Cloud robotics needs very stringent QoS guarantees and in certain cases is highly reliant on location to satisfy some of the requirements.
So, I was thinking a while back that maybe a bounty hunting based cloud robotics system could work like:
The robot registers with the bounty hunting service the bondsman (highly distributed might have multiple bondsmen, the robot could be the bondsman, this could be explored). The service then posts bounties out describing the tasks requested by the robot, its location/ip, QoS reqs. Then as the bounty rises the different cloud services will tell the bounty hunting service that they will go after the particular bounty. The cloud service will then contact the robot for the information required to complete the task (there could be a few bounty hunters and the bondsman could limit them etc.). If the robot replies with the needed info the bounty hunter will then proceed to complete the task. If they are able to complete the task before other bounty hunters then they will get the reward. If they do not then they learn not to go after the task (exactly how the current bounty hunters learn). These tasks are repeated and there are particular task classes due to the attributes of the types of tasks the robot needs processed (from control to high level planning).
The other neat thing is that many of the tasks are repeating. So, the tasks could be to provide a plan to get to a particular location along with a standard performance metric. Quality of the solution should also matter. That is something that bounty hunting did not consider at first. However, this is something that could be integrated. What if there was a metric that was included in the solution that the bounty hunter provides that is standard across the bounty hunters and is quickly verifiable. The winner would be the one that is able to produce a solution in the time requirements and has the highest quality.
So, the robot sort of acts as an arbiter. So, if the robot put a bounty out on control level task (like give me low level actuator commands for doing this particular thing for the next 5 seconds) then there are a two options:
1. whoever starts giving the commands first is the winner
2. there are multiple winners as they are able to produce parts of the task. Basically this is the case where it is good that you are getting commands from multiple sources and if the current winner for some reason looses connection then you have the other bounty hunter who is providing an equivalent solution but is faster or exists or whatnot.
The bounty seems like a good fit due to the variety of price structures and what not of different cloud services. The different cloud services can decide if it is worth their time to go after the particular bounty or not. The bondsman would also be able to learn how to adjust the base bounty and the rate of bounty increase based on the type of problem and its interaction with the different cloud providers. Another reason that the bounty model is good is due to the fact that most likely the different cloud providers will complete the tasks using temporary resources where the prices are highly elastic. So, having the bounty would work due to the nature of the pricing structures on the bounty hunters end.
I don’t know who to compare against. Just show that the QoS guarantees were met/exceeded on the tasks even in a dynamic environment, the cost was kept within an acceptable range, the cloud providers and bondsmen could adapt to scale to large numbers of robots etc..
This could be used for autonomous vehicles (millions of cars) for example by putting out a bounty for the fastest/scenic/etc route, parking spot, charging location (for EVs), down to the most low level control of the car itself. And of course for other robots. Would be interesting if co-located robots This seems very interesting and exciting.
Some other ideas related to cloud robotics. One is the ability for modular robotics to really stand-out. You have the case here where the robot itself could modify its physical structure and abilities and instantly be able to adjust its behavior due to all the modules being in the “cloud”.