PR2 / pr2_pbd

Programming by demonstration for the PR2
12 stars 22 forks source link

Stop publishing TFs for each object #39

Closed jstnhuang closed 8 years ago

jstnhuang commented 8 years ago

TF never removes frames from its internal list, even after they have stopped being published for a while. MoveIt! uses this list to try and transform every single frame into the planning frame at a high frequency. When we stop publishing the frames for old objects, MoveIt! will fail to transform those frames and publish error messages at high frequency. This leads to MoveIt! spewing error messages really quickly, which wastes CPU and makes it hard to follow logging messages.

Instead, after detecting the objects, we should store their transforms internally and compute all the transforms ourselves. In general, TF should never be used for any frame that is not permanent, especially when used with MoveIt!