An estimation device configured to estimate a pivot position (P P) of a surgical tool, a rear end side of which being held by a holder of an arm, the arm including at least one joint, the estimation device comprising: a storage section configured to store a first distance (d'), the first distance being: a length from a reference point on the rear end side of the surgical tool to a first position (P p '), which is a provisional pivot position (P p '), or a length from a reference point on a front end side of the surgical tool to the first position, the front end side being opposite to the rear end side; an obtainer configured to obtain: vector information, which is information on an orientation of the holder of the arm or on an orientation of the surgical tool, first information on a movement of the first position of the surgical tool, and second information on a movement of a second position (P r) of the surgical tool, the second positon being different from the first position; a vector calculator configured to calculate a direction of an axis of the surgical tool based on the vector information, and to individually calculate, based on the first information, the second information, and the direction of the axis of the surgical tool, a first perpendicular vector (ΔP p ⊥'), which is a component of a vector of the movement of the first position, the component being perpendicular to the direction of the axis; and a second perpendicular vector (ΔP r ⊥), which is a component of a vector of the movement of the second position, the component being perpendicular to the direction of the axis; an inner product calculator configured to calculate an inner product of the first perpendicular vector and the second perpendicular vector; and an updater configured to update the first distance by adding a value of the inner product multiplied by a specified coefficient to the first distance stored in the storage section. a storage section configured to store a first distance (d'), the first distance being: a length from a reference point on the rear end side of the surgical tool to a first position (P p '), which is a provisional pivot position (P p '), or a length from a reference point on a front end side of the surgical tool to the first position, the front end side being opposite to the rear end side; a length from a reference point on the rear end side of the surgical tool to a first position (P p '), which is a provisional pivot position (P p '), or a length from a reference point on a front end side of the surgical tool to the first position, the front end side being opposite to the rear end side; an obtainer configured to obtain: vector information, which is information on an orientation of the holder of the arm or on an orientation of the surgical tool, first information on a movement of the first position of the surgical tool, and second information on a movement of a second position (P r) of the surgical tool, the second positon being different from the first position; vector information, which is information on an orientation of the holder of the arm or on an orientation of the surgical tool, first information on a movement of the first position of the surgical tool, and second information on a movement of a second position (P r) of the surgical tool, the second positon being different from the first position; a vector calculator configured to calculate a direction of an axis of the surgical tool based on the vector information, and to individually calculate, based on the first information, the second information, and the direction of the axis of the surgical tool, a first perpendicular vector (ΔP p ⊥'), which is a component of a vector of the movement of the first position, the component being perpendicular to the direction of the axis; and a second perpendicular vector (ΔP r ⊥), which is a component of a vector of the movement of the second position, the component being perpendicular to the direction of the axis; an inner product calculator configured to calculate an inner product of the first perpendicular vector and the second perpendicular vector; and an updater configured to update the first distance by adding a value of the inner product multiplied by a specified coefficient to the first distance stored in the storage section.