How smart is a robot?

Recently, there is a hype about smart robots that will replace humans in many areas. These robots usually has a certain degrees of artificial intelligence. But are most of the robots are truly intelligent? What is intelligence anyway? This post want to give simple explanation about intelligent robot from artificial intelligence (AI) perspective.

An example of “an intelligent robot”

Consider the example of a robot which competes in firefighting robot contest. In this competition, robot should explore a maze, with many obstacles, to find the fire and extinguish it. Although the robot might seem intelligence, but it is very limited. For instance, how if the source of fire is not inside the maze, but outside of it? How if the robot does not see the fire, but it sees a lot of smokes? Suddenly, this robot seems not so smart anymore when its environment, or its task, is changed.

A rational agent

Then what is a truly intelligent robot? First of all, we have to understand what an intelligent agent is. In AI, the more precise term is a rational agent [1] , which is defined below.

For each possible percept sequence, a rational agent should select an action that is expected to maximize its performance measure, given the evidence provided by the percept sequence and whatever built-in knowledge the agent has

This means that a rational agent will not act randomly without any rational considerations. Human is an example of perfect rational agent. We always act to achieve maximum performance, based on our previous experiences and background knowledge. The challenge then, how to create a truly intelligent, or rational, robot? There are some key points:

  • The robot must have a background knowledge and able to gain and store new knowledge from learning result
  • The robot must be able to learn from its experience
  • The robot must be able to make a best or an optimal decision based on its perception

Robot that reasons

Consider this scenario of a service robot. A man asks the robot to get him a glass in the kitchen’s table. The robot then moves to the kitchen, and find that there’s no glass. Without ability to reason, the robot simply fails to complete this task. However the smart robot might be able to think about the alternatives:

  • I can not find the glass, but there is a cup here, this might be suitable for him.
  • The glass is not on the table, however people usually store it in the cupboard, so I better check it.
  • There is no glass in this table, however there are more than one table in the kitchen, so I should check on the other table.

illustration: http://dailym.ai/1AAWIaZ

A human might perform above reasoning easily as we have marvelous ability to think rationally and logically. So how can we embed this similar ability to robot’s mind? AI field has attempted to answer this question since its birth. To be more specific, to deal with robotics problem, Ai researchers establish “cognitive robotics” which can be understood as follow [2]:

With respect to robotics, our goal (like that of many in AI) is high-level robotic control: develop a system that is capable of generating actions in the world that are appropriateĀ as a function of some current set of beliefs and desires.

What we do not want to do is to simply engineer robot controllers that solve a class of problems or that work in a class of application domains. For example, if it turns out that online reasoning is unnecessary for some task, we would want to know what it is about the task that makes it so.

Implementation idea

So, how to implement this kind of “cognitive robot” practically? The simplest way is by abstracting the knowledge in high level layer, while maintaining its connection with the low level layer, that handles primitive movement and perception of a robot. This kind of abstraction is beneficial as one can accumulate and manipulate the knowledge in more flexible way, although it might reduce the robot’s accuracy.

One way to represent the high level knowledge is by using first order logic clauses. Logic program, such as Prolog, generally is used for implementation. On the other side, low level layer can be implemented in Python or C++ within Robots Operating System (ROS) environment. A “bridge” to gap these layers can be developed to connect both of them. I will write about this in the future post.

 

Reference:

  1. Russell, Stuart, Peter Norvig, and Artificial Intelligence. “A modern approach.” Artificial Intelligence. Prentice-Hall, Egnlewood Cliffs 25 (1995): 27.
  2. Levesque, Hector, and Gerhard Lakemeyer. “Cognitive robotics.” Foundations of artificial intelligence 3 (2008): 869-886.

Leave a Reply