December 16, 2019

Realizing Artificial Intelligence the easy way



Sometimes it was assumed, that Artificial Inteligence is something which is hard to realize or it's even impossible to build robots. In reality the concept of an AI controller is remarkable easy. It contains of a forward model and a solver which brings the model into the goal state. This concept can be used for all sorts cf control problems for example robot movement or computer games as well.

A forward model is the same as a physics engine. It predicts future states of a system. In contrast a solver is a software program which takes a model and is testing out random actions with the monte carlo tree search. The resulting action sequence is called a path or a trajectory in the state space. If the sequence is execute on the robot it looks, that the robot is doing something useful.

For programming a model predictive control system in reality many detail problems have to be solved. The first one is, that for most robotics problems the forward model is not known. It is unclear what will happen, if the robot moves a joint by a certain degree. And without a forward model the solver can't find the optimal action sequence. A second problem is that complicated domains have a large state space. Before a solver can find the desired trajectory a hierarchical decomposition is needed to reduce the computational effort. Both problems combined prevents, that the robot control system will work.

A competition which goes into the direction to tackle the difficulties is the The GVG-AI Competition, http://www.gvgai.net/ It's a relative new programming challenge in which the forward model and the solver has to be created both.

Programming

From a computer science perspective the perspective of a MCTS solver plus a forward model is not very complicated to grasp. It's a classical planning pipeline in which what-if cases are determined. What makes the situation complicated are certain domains. That means, a forward model for a robot is hard to realize because the robot has a lot of possible movements. And creating the MCTS solver for a given forward model is also a complicated task, because there is a need to search in the game tree very fast.

An easy to explain example is the sokoban game. Creating the forward model for such a game isn't very complicated. The player can move in four directions and sometimes he will push the box. Testing out many thousands of different sequences is possible and as a result, the box can be moved in any direction. That means, the human operator can provide the target location and the solver will find the needed actions to push the box into the goal state.

The same solving technique can be used to play more complicated games autonomously. For example for controlling a robotarm. Describing the forward model and realizing the solver will take more space and the amount of real projects is small. The most complicated project which is documented was about the Mini cheetah robot at the M.I.T. [1] It is working with model predictive control to produce the trajectories of the legs.

[1] Kim, Donghyun, et al. "Highly Dynamic Quadruped Locomotion via Whole-Body Impulse Control and Model Predictive Control." arXiv preprint arXiv:1909.06586 (2019).