We don't want to be incurring a service call everytime we need to get a pose (which could easily exceed 100 hz per process). They should be using TF2 (which is all costmap2D is doing to get it on the other end of the service call), and designed to share buffers as much as possible
Ex. the main() in recoveries should make a TF buffer that the recoveries are given a pointer to.
Users of GetRobotPose service:
- recoveries all (and should use odometric pose)
- CollisionChecker (!!)
- navfn planner
- tests
They should all be given a TF buffer and use TF, RobotUtils should still get pose and get odometric pose, but given a TF pointer reference that's owned by the object.