The visionary story teller Isaac Asimov told the world about the future era of robots and automatons in 1950’s through his works, and inspired them to make robotics a reality. Even though he was not a scientist or a core technical guy, his imaginations and predictions are the beginning of the ‘present’ that we are having. So, from its embryonic stage, robotics is growing by trying to realize the dreams of some imaginary people and their works.
The Matrix (1999), was more of a technological movie than just a usual action flick. You may disagree with the author now, but after reading this story, you will definitely start believing it. In the movie the wachowski brothers portrayed many fascinating things that we could only dream of, but the audience discarded them thinking they were just some imaginary fantasies and are never going to be anywhere near the ‘reality’. In the movie, characters were able to learn a particular skill just by downloading the required data into their brain. That’s how Trinity learns to fly a helicopter and Neo learns to fight in just fraction of a second.
So, according to a new technology all these are no longer just a dream or crazy imagination but a reality that we will heavily depend in future. For us humans, with our offline, non-upgradable meat brains, the possibility of acquiring new skills by connecting our heads to a computer network is still science fiction.
But not so for robots..
This new approach termed as ‘Cloud Robotics’ is being developed and implemented worldwide by many research teams and will create the next generation of robots. Here, the robots rely on cloud computing
infrastructure to access vast amounts of processing power and data. It would allow robots to off-load compute-intensive tasks like image processing and voice recognition and even download new skills instantly, The Matrix-style
Before we go on further I think it will be better to know a bit more about Cloud computing technology. It is an emerging technology where resources ( Memory, Processing etc..), software and information are shared between computers and other devices as a utility (like the electricity grid) over a network (typically the Internet). The computation, software, data access, and storage services that cloud has to offer do not require end-user knowledge of the physical location and configuration of the system that delivers the services. So, the user can see the cloud only as a single unit (even though actually it’s a network of systems) that helps his system in processing and has the knowledge of almost all the internet. Imagine a situation when your computer with Intel P4 processor, 256MB RAM is connected to a network where there are 10 other systems with Core-i7 processors, 16GB RAM idle systems. Now, you have to do a high resolution video rendering which requires enormous processing capabilities. With your single system with basic configuration you won’t be able to do it but with cloud computing, you can. If the network is a cloud network, the entire processing distributed to other capable systems in parallel and with their hardware they will be able to do it. Finally, you will have the rendered video in your computer, processed by the cloud within time. This was just a snapshot about cloud. Actually it has to offer many more great things…
The current robots (including in research) has to do a large amount of processing and requires much preprogrammed information to do even simple things like moving a foot, recognizing a face, grasping things etc . So it is inevitable for them to carry powerful computers and memory on board and heavy batteries to power them. As the requirements and options increases the problems also increases for the developers. If it’s an application where large processing and small physical size is required then with the current technology, we can never make it to success. So, the dynamically growing Robotics industry needs new alternatives as we speak.
The solution to this is being proposed as cloud-enabled robots which could offload CPU-heavy tasks to remote servers, relying on smaller and less power hungry onboard computers. Even more promising, the robots could turn to cloud based services to improve such capabilities as recognizing people and objects, navigating environments, and operating tools. What it needs is just the basic circuitry to connect to the cloud, and the robot could do wonderful things.
But as engineers we all know, practical implementation is far distant from the theoretical aspect. Theoretically, we all could be Einstein by just using some more portion of our brain for thinking, but practically its more than ‘impossible’, that we all know. So, coming to the implementation part of it, we could use any of the software platforms to run on the robot like ROS (Robotic Operating Sytem) or Android or any other. The Basic functionality of these run on the robot hardware, manage cloud services and control the mechanical body.
Here, I am concentrating more on the implementation using Robotic Operating System (ROS). Actually ROS is an open source operating system intended for robots. Different types of robots can have wildly varying hardware, making code reuse nontrivial. Since the required breadth of expertise is well beyond the capabilities of any single developer, robotics software architectures must also support large-scale software integration efforts. To meet these challenges, many robotics researchers have created a wide variety of frameworks to manage complexity and facilitate rapid prototyping of software for experiments, resulting in many robotic software systems currently used in research and industry including ROS. It’s developed and improvised by an international group of institutions, companies and researchers worldwide. Like developing a program for windows helps for implementations on most of the computers worldwide, implementing cloud robotics on ROS is the best available option for multi-hardware implementation.
ROS messaging framework is a special kind of communication and has many benefits on its side. So this universal system can give all the advantages of cloud computing we discussed earlier for a robot with minimum hardware on board. A Basic implementation is proposed below.
For large environments, we propose a team structure where the sensors are distributed amongst the members such that some have very precise localization sensors assumed to have at least an embedded controller with Wi-Fi connectivity and the environment is expected to have a Wi-Fi infrastructure with a gateway linking the cloud service to the robots. These robots may have different functionalities or may be of similar type. By linking these robots and uploading their sensor information to the cloud we can build a live global map of the environment and later provide sections of the map to robots on demand as a service. All the information from individual robots clustered in order to get an exact map. A similar approach can be used for other secondary tasks such as multimodal map building, object recognition in the environment and segmentation of maps. The cloud will save and process the data at a very high rate and that too in no time, and will give the necessary information required by the robots in the field.
Figure shows the high level overview of our system and how it can be accessed over the cloud. The cloud computing framework is the access point to external entities (Robots /Human interface) accessing the cloud service. It also binds the robotic ecosystem to the backend server cluster. The services provided by the cloud are maintained and introduced to the outside world by this infrastructure. The ROS framework provides a standard form of communication and messaging across the robots, between the cloud computing platforms and the robots. These messages will be of standard ROS message type and is universalized.
Cloud service can either be accessed over the intranet as in a private cloud or over the Internet with ROS messages wrapped in HTTP requests/responses. all these cases, the information will be passed by all the robots to a particular network of servers which may be located anywhere around the globe. If those are nearby, the robots could connect to them directly. If they are very distant, the public cloud (Internet) can be used to send the messages. In both the cases, finally the messages will reach the server cluster where it is to be shared and processed, taking minimal time. As the hardware capabilities of the cloud can be dynamically scaled this process will be very efficient and least time consuming. The software platform working on the cloud will look (confused) after this process. Finally the replies will be sent back to the robots through the same path.
Now, analyzing the pros and cons of this technology I have to make a few points. As this method use one of the most emerging technologies of networking - cloud computing, it certainly has a lot of merits which can never be achieved with our normal conservational way. The best one from our concern is, off the shelf hardware which means affordable robots. Rather than seeing robots in the movies or in science exhibitions, we can afford robots. So, don’t be surprised if you see a robot for sale in a supermarket in future that you can actually afford. The processing power, workable and storage memories all can be dynamically increased as per the requirement by this. The robots won’t have to “Reinvent the wheel”. Once an information acquired by one robot, it will be stored in the cloud and will be available for all the others if they come across the same situation. This collective pooling of knowledge will definitely help the robots as well as their designers in a huge amount of matters. Longer battery wheels, smaller sizes and hassle-free hardware upgrades are some additional advantages. The most important one is to expand the knowledge beyond “Physical Body”.
So, by this robots can be
“Smaller, Cheaper and smarter”