In this project, we investigate a simulation-based approach to naive physics prediction in the context of autonomous robot everyday manipulation. We identify the abstractions underlying typical first-order axiomatizations as the key obstacles for making valid naive physics predictions. We propose that naive physics reasoning should not be performed based on abstractions but rather based on detailed physical simulations. This idea is realized as a naive physics reasoning system for autonomous manipulation robots that translates naive physics problems into parametrized physical simulation tasks, that logs the data structures and states traversed in simulation, and translates the logged data back into symbolic time-interval-based first-order representations.
Physical aspects about eggs are modelled in an ontology:
Within our reasoning system we describe an egg and its content within description logic and store this information in a knowledge base (KB). An egg-shaped model is generated based on the information stored in the KB, i.e. mass, size etc.
The simulation is automatically configured by a scenario description stored in the KB (here: an egg that is placed at some height over the ground). We run the simulation and log the data structures of the simulator. We then translate these logged data into timelines of first-order representations in order to infer the consequences of specific events, for example, for asking what happens if the egg is no longer supported:
?- holds-tt(F1,I1), fluentT(F1,supports), objOf(F1,egg1), after(I2,I1), holds-tt(F2,I2), objOf(F2,egg1).
where F2 is bound to broken(egg1).
A fragile egg model is grasped, in a Gazebo simulation, by the PR2 robot model with different forces and different positions. Valid values for positions and forces are found where the egg is not broken and it doesn't slip from the gripper.
A pancake mix model made out of a big number of particles (in this case 400) is used to simulate a liquid model in the rigid body simulator Gazebo. The PR2 robot performs multiple tests of pouring a pancake onto a pancake maker using different parameters such as pouring position (relative to the center of the pancake maker), pouring angle (in radians with 0, pointing up) and pouring duration in seconds. The resulted pancake is evaluated based on the number of particles on the pancake maker, the number of particles spilled on the table and its shape (a roundness value close to 1 indicates a almost circular pancake, while a value close to 0 is obtained for elliptical spills).
A pancake model made of small particles connected by flexible joints is used as a simulation of a turning a pancake experiment, where the angle of the spatula is varied. The results of the experiment can be failure, if the pancake is not flipped, or success if it is.
Pancake making experiments simulated in the Gazebo simulator. The PR2 robot model is pouring a pancake mix fluid composed of small particles on a pancake maker. During the pouring, multiple results can be obtained by varying pouring parameters such as container height, angle, position, and pouring time. After the liquid is poured, flexible joints are created between the particles on the pancake maker to simulate the half cooked pancake. From the convex hull encompassing the particles a flexible texture mesh completes the pancake model. The resulted pancake is the flipped-on-the-other-side action which also can lead to different results.
A complete pancake making experiment simulated in the Gazebo simulator. The PR2 robot model is retrieving the pancake mix container from the fridge, navigating to the counter, and pouring a pancake mix fluid composed of small particles on a pancake maker. After the liquid is poured, flexible joints are created between the particles on the pancake maker to simulate the half cooked pancake. From the convex hull encompassing the particles a flexible texture mesh completes the pancake model. At the end, the pancake is retrieved from the pancake maker and placed on a plate. Breakfast is served!