# Can a neural network emulate a physics engine?

Before a motion controller for a robot can be created, a step before is needed, called “system identification”. The aim is to create a prediction model which can say, what will happen if a certain movement of the robot is executed. For example, a wheeled robot which is designed upon the steering principle will change it's position if both wheels are spin with +1 speed for 1 second. The new x/y position will be ahead of the old position. If the robot's wheel are spinning with different values, for example left=+1, right=+0.5 the new position of the robot will be different.

The problem is, that a dedicated physics engine which can predict the trajectory of a robot is hard to realize by hand. But there are some general techniques available for example genetic algorithm, rule based systems or reinforcement learning which can simplify the programming. These general systems are working with parameters who have to be adapted to a certain domain, which is called machine learning.

Question: Can a neural network be used for predicting future states of a robot? And which kind of dataset is needed for doing so?

• $F = ma$ and $\tau = I\alpha$. The difficulty seems to be generally in force/torque transmission (kinematic constraints.)
– Chuck
Feb 20, 2019 at 16:42

I think there are some confusing statements or inaccuracies in this question regarding fundamental concepts in robotics, control engineerging and AI/ML. I am not sure if it helps to list these or not, so I will not I just wanted to draw attention to this fact if somebody tries to used the question as a reference.

However, to answer the final question:

Neural networks are universal function approximators. The dynamic model of a robot is a function mapping input (e.g. wheel torque) to output (e.g. robot velocity). So yes, in theory they can learn the dynamic model of a robot. Care must be taken and the current state of the robot should probably also be used as input to the neural network or some kind of RNN should be used. Also in the case of the dynamic model, only torque input is not enough, the current state of the robot is also needed to compute the cartesian velocity.

In practice the right arhitecture needs to be selected, the dataset needs to be defiend and the networks needs to be trained.

Part of the question refers to the dataset.
The input and output of the neural network is the same as of the function it will learn. So in case of a forward dynamic model, the input can be 2 torques (and the current sate) and the output can the cartesian velocity of the robot.

In order to obtain such a dataset:

• one could log the data from a real robot as it drives around, making sure that there are enough samples from all areas of the input space. In this case the dynamic model would not be used while driving aournd, just input tortques would be generated.

• one could use an exising dynamic model and learn that. This might be counterintuitive, since the function already exists. This would only make sense if the neural network which learns the function would infer (significantly) faster then the execution time of the dynamic model.