I want to report a bug that I know witnessed two times. The important points of this is that it produces a warning that wasn’t produced before with the exact same code and second that it is in a “Normal” state although the robot is shut down.
My experience in more detail:
Sometimes* when starting up the robot fresh and starting my previously used force_mode
code, the controller will abort with the error: Invalid force mode type, see script manual.
From that point on it will be in a strange limbo state: With the error coming up, the brakes were activated and also all fans turned off (even the controller’s fans which are always on when the controller is on). The other oddity is: The status of the robot is: (green) Normal and pushing the (red orb) OFF button does nothing. Only after a restart everything works again as expected.
*I cannot say what was differently except that both times I encountered the error I literally walked to the office, started up the controller and robot and was trying to execute the (unmodified) code I worked with the day before.
Thank you for this information.
I would need a bit more detail on the program used to produce this behaviour;
namely the program file, script code and which software version you are running.
Sure!
I suspected that a force-type of 0 might be the problem and that the RTDE register that I read out has not been set with my value yet. So I tried sending a script which should put the robot in force_mode with force type of 0 but otherwise meaningful parameters and I got the same behavior.
I know that the URScript does say that this value would be invalid but still such a reaction looks very unstable.
So here is the test code which I send over once, that produces the error with version 3.3.3.292:
def force_test():
enable_external_ft_sensor(True, sensor_mass = 0.2, sensor_measuring_offset = [0.0, 0.0, 0.0], sensor_cog = [0.0, 0.0, 0.0175])
thread Force_properties_calculation_thread_1():
while(True):
force_mode(p[0,0,0,0,0,0], [0,0,1,0,0,0], [0,0,0,0,0,0], 0, [0.001,0.001,0.001,0.001,0.001,0.001])
sync()
end
end
global thread_handler_1 = run Force_properties_calculation_thread_1()
while(True):
sync()
end
kill thread_handler_1
end_force_mode()
end