A computer program product, comprising a computer readable hardware storage device having computer readable program code stored therein, said program code executable by a processor of a computer system to implement a method for a contact-based localization of objects that can be moved when manipulated by a robot, wherein for a state associated with the object localization of a system formed by at least one manipulated-variable-controlled robot, an object that is movable for the robot during the object manipulation and a robot-object environment that enables the object manipulation as system components, and in the course of a system state estimation, the method comprises:
- determining, by an iterative-recursive application of a Bayes filter algorithm, a probability distribution that localizes the object, wherein said determining by the iterative-recursive application of the algorithm obtains:
- (i) state transition probabilities, in a nondeterministic motion model for system simulation, from modeled transitions of states of the system, and (ii) measurement probabilities, in a measurement model for system simulation, wherein an initial probability distribution is used at the start;
- using an approximation algorithm in the iterative-recursive determination of the probability distribution;
- controlling, by a controller execution of a physics simulator with a simulation system state being fed back and, on the basis of a manipulated variable fed to the controller, wherein the controller controls the physics simulator in such a way that during the system state simulation the robot behaves compliantly with respect to the robot-object environment, wherein the physics simulator is configured to use the physics of the system in regard to forces and dynamics and the resultant physical relationships of the system components;
- performing model axis-specific measurements, on the robot, wherein measurement results of the axis-specific measurements are axial position, axial velocity, axial acceleration and/or axial torque of a robot ROB, wherein the robot ROB is configured to be manipulated to move the object.