Open drjsmith opened 2 years ago
A recent crash has been potentially more informative.
The planner crashed when the robot was in this state:
A successful planning cycle looks something like this:
[ WARN] [1674238243.761970926, 821.310000000]: [GlobalGraph] Try to add current state to the graph.
[ WARN] [1674238243.765613563, 821.310000000]: [GlobalGraph] Added successfully.
[ INFO] [1674238243.785546063, 821.320000000]: Global graph: 1817 vertices, 7511 edges.
[ INFO] [1674238243.785883710, 821.320000000]: Have 226 frontiers from global graph.
[ INFO] [1674238255.735007191, 831.210000000]: Waiting done.
[ WARN] [1674238255.735108304, 831.210000000]: PCI: Ready to trigger the planner.
[ INFO] [1674238255.735185888, 831.210000000]: PlannerControlInterface: Running Planner (kAuto)
[ INFO] [1674238255.763959286, 831.220000000]: Planning iteration 34
[ INFO] [1674238255.765199049, 831.220000000]: Reseting the tree.
[ INFO] [1674238255.765279195, 831.220000000]: Tree root:
[ INFO] [1674238255.765331584, 831.220000000]:
Position : x: 214.254343 y: 50.393582 z: 1.560330
Velocity : vx: -0.478844 vy: 1.681751 vz: -0.070147
Acceleration : ax: 0.000000 ay: 0.000000 az: 0.000000
[ INFO] [1674238256.055944732, 831.470000000]: Tree built with [286] nodes
[ INFO] [1674238256.472811074, 831.820000000]: Number of leaves: 149
[ INFO] [1674238256.552980072, 831.900000000]: Valid paths: 11, invalid paths: 0
[ INFO] [1674238256.553066211, 831.900000000]: Similar paths published
[ INFO] [1674238256.553334992, 831.900000000]: Tree eval visualized
[ INFO] [1674238256.553768092, 831.900000000]: Time statistics:
Build tree : 0.250 (s)
Compute gain : 0.350 (s)
Evaluate graph : 0.080 (s)
Total : 0.680 (s)
[ INFO] [1674238256.553831935, 831.900000000]: Time Elapsed: 831.900000
[ INFO] [1674238256.732388133, 832.040000000]: LOCAL PLANNER SUCCESSFULLY FOUND PATH
[ INFO] [1674238256.740265826, 832.050000000]: Reconnect done
Contrast that with the fatal cycle:
[ WARN] [1674238270.651361470, 843.660000000]: [GlobalGraph] Try to add current state to the graph.
[ WARN] [1674238270.654770183, 843.670000000]: [GlobalGraph] Added successfully.
[ INFO] [1674238270.671737051, 843.690000000]: Global graph: 1941 vertices, 7951 edges.
[ INFO] [1674238270.672234055, 843.690000000]: Have 247 frontiers from global graph.
[ INFO] [1674238282.693762711, 853.960000000]: Waiting done.
[ WARN] [1674238282.693881194, 853.960000000]: PCI: Ready to trigger the planner.
[ INFO] [1674238282.693969470, 853.960000000]: PlannerControlInterface: Running Planner (kAuto)
[ INFO] [1674238282.703634265, 853.970000000]: Planning iteration 36
[ INFO] [1674238283.067007617, 854.270000000]: Reseting the tree.
[ INFO] [1674238283.067092881, 854.270000000]: Tree root:
[ INFO] [1674238283.067140881, 854.270000000]:
Position : x: 214.431501 y: 70.537099 z: 0.748890
Velocity : vx: -0.394150 vy: 1.697412 vz: -0.161053
Acceleration : ax: 0.000000 ay: 0.000000 az: 0.000000
[ WARN] [1674238283.067627880, 854.270000000]: ROOT INSIDE OBSTACLE
[ WARN] [1674238283.465492901, 854.630000000]: Planner service failed
[mbplanner_node-14] process has died [pid 2894455, exit code -11,
The coordinates of the new tree root appear to match up with those of the final node on the exploration graph (the upper-left-most of the larger blue spheres, a little to the left of the cyan arrow).
This test was preceded by several that also failed, though much earlier. I had observed at the time that the robot appeared to have collided with the wall or maybe floor, but looking back through the logs of the 2 previous failures, I found that they too crashed right after the ROOT INSIDE OBSTACLE
warnings.
First, I will look into how the ROOT INSIDE OBSTACLE
condition is handled. Afterwards, I can investigate why colliding nodes are added to the tree in the first place.
Every time I run the planner, it eventually segfaults:
It used to crash due to a memory error (
double free detected tcache 2
); I recompiled the whole workspace with-DEIGEN_DONT_VECTORIZE
, and haven't seen that error since.IIRC, the classes aren't defining
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
, so maybe that's the problem? Though I would have thought that not vectorizing would solve it too.