Monday, September 7, 2015

RoboSAM: A robot that is smart enough to call humans for help!

In my opinion, one of the most important attributes of being smart is the ability to seek help when needed. This requires realizing that help is needed and getting the right kind of help from the right source. Currently, robots do not have an ability to assess whether they can successfully complete a task or not. When instructed to do a task, they simply attempt to do it. Sometimes the task execution results in spectacular success that delights the spectators and other times it leads to an embarrassing failure that baffles everyone, except the person who programmed the robot. Clearly, if robots were to become smart, they will need to ask for help when they are unable to do a task. 

Occasional robot failures can be tolerated. However, using humans to frequently clean up the mess created by robots is simply not a viable business model for using robots. Currently, deploying robots in industrial applications requires the reliability of robotic task execution to be very high. This is accomplished by designing specialized hardware and software. Extensive system testing is needed to ensure that potential failure modes are well understood and contingency plans are developed to handle them. Typically, task execution failures shut down the line and require human intervention to clear the fault and restart the line. This type of intervention is very expensive and hence robots are not used on a task until extremely high-level reliability can be achieved. Customized hardware and software costs can only be justified if the production volume is sufficiently high and tasks are repetitive (e.g., automotive assembly lines). 

To understand the underlying challenges in robot deployment, consider the following scenario. A robot is capable of picking a part if it is presented to the robot at a certain location. However, if the part has shifted from its nominal location, the robot might not be able to grasp it. The robot does not simply know where the transition boundary between task execution success and failure lies. If the part is sufficiently distant from its expected location, as the robot attempts to grasp it, the robot might bump into it, push it further, and jam the material handling system. This can in turn trigger a system fault and shut down the system. 

In order to use robots in small production batch operations or non-repetitive tasks, we will need robots that are able to estimate the probability of task completion before beginning the task. This will enable robots to assess their own confidence in doing a task. If the robot does not have high confidence in completing a task, then it should call for help. This will enable human operators to provide the robot with needed assistance (e.g., better part pose estimation, invoking a different grasping strategy) and prevent major system faults that result from task execution failure. Please keep in mind that the human only needs to help the robot with the portion of the task that is proving to be challenging. The robot can do the rest itself. In most situations, providing task assistance help to robots is much cheaper than recovering from a system shutdown. 

My students have been building a robot to demonstrate this concept in the bin picking context. This project is called RoboSAM (ROBOtic Smart Assistant for Manufacturing). Bin picking capability is representative of a robot’s ability to perceive the desired object in the environment and to successfully pick it up and deliver it in a known pose. If the robot is not sure whether it can pick the desired part from a bin containing many different parts, then it calls a remotely located human operator for help. We call this operational concept human-on-call concept. This is fundamentally different from the human-in-the-loop concept that requires the human operator to actively monitor the manufacturing cell and take control away from the robot when the robot is about to make a mistake. The new concept requires the robot to call the human operator when it decides that it needs help. 

I believe that human-on-the-call concept is the right economic model for deploying robots. It enables humans to move away from doing boring routine tasks to do challenging tasks with which robots struggle. This model allows a single remotely situated human operator to help multiple robots on an “as needed” basis. It also enables robots to be deployed on tasks on which achieving very high success rate will be difficult. For the near foreseeable future, a large number of tasks in small and medium manufacturing companies fall in this category. 

People often ask what humans will do when robots become more widespread. In my opinion, humans will be needed to teach robots how to do different tasks and bail robots out when they are confused. The key will be to develop technologies that allow robots to ask for help when needed. Recent work in our lab is a step in that direction.