Ask Your Question

Revision history [back]

The problem seems to be that do_other_stuff() calls moveit_commander.RobotCommander methods to move the robot's arm. The RobotCommander methods are wrappers around C++ functions. Apparently, the functions do not release the Python interpreter's global interpreter lock, so the interpreter cannot switch threads during a function call. Therefore, _timer_cb() is never called while the arm is moving. I worked around this issue by putting do_stuff() and _timer_cb() in separate nodes.