Estimating Geometric Parameters and States in Industrial Robot Manipulators Programming by Demonstration