  In order for a robot to perform a task, several algorithms need to be
executed, sometimes, simultaneously. Algorithms can be run either on the robot
itself or, upon request, be performed on cloud infrastructure. The term cloud
infrastructure is used to describe hardware, storage, abstracted resources, and
network resources related to cloud computing. Depending on the decisions on
where to execute the algorithms, the overall execution time and necessary
memory space for the robot will change accordingly. The price of a robot
depends, among other things, on its memory capacity and computational power. We
answer the question of how to keep a given performance and use a cheaper robot
(lower resources) by assigning computational tasks to the cloud infrastructure,
depending on memory, computational power, and communication constraints. Also,
for a fixed robot, our model provides a way to have optimal overall
performance. We provide a general model for the optimal decision of algorithm
allocation under certain constraints. We exemplify the model with simulation
results. The main advantage of our model is that it provides an optimal task
allocation simultaneously for memory and time.
