A method of detecting a collision of a robot, comprising: providing the robot including a motor, a gear reducer connected to the motor, an encoder detecting a rotation of the motor, a temperature sensor installed into the encoder, and an object which is driven by the motor via the gear reducer; estimating an external force torque caused by a collision as a collision torque estimation value (τdiso) by subtracting a dynamic torque (τdyn) obtained by an inverse dynamic calculation of the robot from a torque (τm) output to the gear reducer by the motor; determining that the robot receives an external force if the collision torque estimation value (τdiso) is greater than a predetermined collision detection threshold (τvth); setting the predetermined collision detection threshold to a first value (τth +dτth) in a case where a temperature (Tc) detected by the temperature sensor is less than a predetermined temperature threshold (Tcth); setting the predetermined collision detection threshold (τvth) to a second value (τth) less than the first value (τth +dτth) at a first time point at which the detected temperature (Tc) is equal to or greater than the predetermined temperature threshold (Tcth) in a case where a maximum value of the collision torque estimation value (τdPP) is less than a first maximum value determination threshold (τdPPthA), which is less than the second value (τth), in a period (Du) to the first time point from a second time point prior to the first time point by a predetermined length of time; and setting the predetermined collision detection threshold (τvth) to the first value (τth +dτth) at the first time point in a case where the maximum value of the collision torque estimation value (τdPP) is equal to or greater than the first maximum value determination threshold (τdPPthA) in the period (Du). providing the robot including a motor, a gear reducer connected to the motor, an encoder detecting a rotation of the motor, a temperature sensor installed into the encoder, and an object which is driven by the motor via the gear reducer; estimating an external force torque caused by a collision as a collision torque estimation value (τdiso) by subtracting a dynamic torque (τdyn) obtained by an inverse dynamic calculation of the robot from a torque (τm) output to the gear reducer by the motor; determining that the robot receives an external force if the collision torque estimation value (τdiso) is greater than a predetermined collision detection threshold (τvth); setting the predetermined collision detection threshold to a first value (τth +dτth) in a case where a temperature (Tc) detected by the temperature sensor is less than a predetermined temperature threshold (Tcth); setting the predetermined collision detection threshold (τvth) to a second value (τth) less than the first value (τth +dτth) at a first time point at which the detected temperature (Tc) is equal to or greater than the predetermined temperature threshold (Tcth) in a case where a maximum value of the collision torque estimation value (τdPP) is less than a first maximum value determination threshold (τdPPthA), which is less than the second value (τth), in a period (Du) to the first time point from a second time point prior to the first time point by a predetermined length of time; and setting the predetermined collision detection threshold (τvth) to the first value (τth +dτth) at the first time point in a case where the maximum value of the collision torque estimation value (τdPP) is equal to or greater than the first maximum value determination threshold (τdPPthA) in the period (Du).