PX4 / PX4-Avoidance

PX4 avoidance ROS node for obstacle detection and avoidance.
http://px4.io
BSD 3-Clause "New" or "Revised" License
639 stars 332 forks source link

Timeouts #118

Closed mrivi closed 6 years ago

mrivi commented 6 years ago

I get timeouts messages Pointcloud timeout , no cloud received on topic (Hovering at current position) both in the simulation and on hardware.

I have already spoken offline with @baumanta. As she suspected, the timeout happens because the transformation between the camera frame and local origin is not available.

Opening a issue so that we track.

mrivi commented 6 years ago

This is what I have discovered so far. The canTransform method gives the following error:

camera 0 Lookup would require extrapolation into the future.  Requested time 68.824000000 but the latest data is at time 68.802956566, when looking up transform from frame [front_camera_link] to frame [local_origin]

camera 1 Lookup would require extrapolation into the future.  Requested time 68.824000000 but the latest data is at time 68.802956566, when looking up transform from frame [left_camera_link] to frame [local_origin]

camera 2 Lookup would require extrapolation into the future.  Requested time 68.824000000 but the latest data is at time 68.802956566, when looking up transform from frame [right_camera_link] to frame [local_origin]

Running the tf_monitor gives this result

Chain is: local_origin -> fcu
Net delay     avg = 0.0640475: max = 0.0850794

Frames:
Frame: fcu published by unknown_publisher Average Delay: 0.0219803 Max Delay: 0.0655908

All Broadcasters:
Node: unknown_publisher 198.177 Hz, Average Delay: -0.00338286 Max Delay: 0.0655908
Node: unknown_publisher(static) 1e+08 Hz, Average Delay: 0 Max Delay: 0

As you can see in the frame view I have both the transformation from local_origin->fcu amd fcu->camera frame running at ~50Hz. While each point cloud is received at 20Hz. frames.pdf

I went back to a older master (when the support for multiple pointcloud was not yet there) and it often happen that for one cycle the transformation is not available. Since it wasn't enough to show a timeout on the local_planner we never noticed.

mrivi commented 6 years ago

fixed in #122