The problem is due to poor implementation in pr2_bringup/calibrate.py. There's a "for name in waiting_for" and sometimes it happens that "waiting_for.remove(obj)" is invoked before the for loop has finished. Then it waits forever for the latest elements of the queue (normally cal_sh_wrj1, cal_sh_wrj2, but sometimes more, sometimes none).
I've sorted that out by adding a 0.5 sec delay in the first message published in sr_mechanism_controllers/srh_fake_joint_callibration_controller.cpp.
The problem is due to poor implementation in pr2_bringup/ calibrate. py. There's a "for name in waiting_for" and sometimes it happens that "waiting_ for.remove( obj)" is invoked before the for loop has finished. Then it waits forever for the latest elements of the queue (normally cal_sh_wrj1, cal_sh_wrj2, but sometimes more, sometimes none). controllers/ srh_fake_ joint_callibrat ion_controller. cpp.
I've sorted that out by adding a 0.5 sec delay in the first message published in sr_mechanism_
I filed a ticket for WG to solve this more properly: /code.ros. org/trac/ wg-ros- pkg/ticket/ 5211
https:/