According to a robot programming apparatus, a position and a posture of a tool is determined based on a machining path formed by projecting an operation pattern onto a workpiece model. The robot programming apparatus includes a determination unit configured to determine whether or not a workpiece and the tool interfere with each other at any point, except for a machining point of the tool, and a position and posture correction unit configured to correct at least one of the position and the posture of the tool so that the workpiece and the tool do not interfere with each other at any point, except for the machining point of the tool.