A robot controlling device that outputs a position command at a predetermined time interval to a drive controlling unit that controls an operation of each actuator for driving each joint of an articulated robot so that each joint is operated to sequentially follow a plurality of teach points including a teach position of each joint as a vector component, comprising a calculating unit,
- wherein the calculating unit executes:
- an interpolation function calculation process of calculating an interpolation function that passes through a plurality of interpolated teach points for interpolation between the respective teach points;
- a differential coefficient calculation process of calculating each differential coefficient obtained by differentiating each vector component included in each interpolated teach point by a variable number of the interpolation function;
- a temporary setting process of temporarily setting each pass velocity indicating a differential value obtained by time-differentiating the variable number in each interpolated teach point;
- an estimated value calculation process of calculating an estimated velocity of each joint in each interpolated teach point on the basis of each pass velocity and each differential coefficient;
- a time optimal control process of changing the respective pass velocities and minimizing an objective function obtained by integrating reciprocal numbers of the respective pass velocities by the variable number under a constraint condition including a condition that the ratio of the estimated velocity of each joint and a predetermined allowable velocity is within a predetermined constraint range;
- a pass velocity function calculation process of calculating a pass velocity function from each pass velocity obtained in the time optimal control process;
- and
- a position command generation process of generating the position command by substituting, whenever the pass velocity function is time-integrated by a value of the predetermined time interval, a value of the integration in the variable number in the interpolation function.