Open cohnt opened 4 days ago
It's possible that those numbers are enough to reproduce (or at least make a good guess), but ideally we would have the exact numbers. If you can re-run your repro and print all of the doubles without any truncation (i.e., full precision) that would help. Also if you could print the rotations as the native 3x3 matrix (not rpy) that would also remove conversion noise.
In fact, once you have that, I imagine a C++ unit test call to BoxBoxGradient
with your exact numbers would probably immediately reproduce the problem. It's just a namespace function with no state, so a full-precision argument dump should be enough to reproduce.
There's something fishy. I can reproduce the problem with a unit test of BoxBoxGradient
. However, each of the given witness points p_ACa and p_BCb is almost at the center (0,0,0) of its box, far from the box's surface. Witness points are supposed to be on the surface of the box.
The bug is likely at a higher level. If @cohnt could give more data, I can check further. For example, what went into CalcDistanceFallback
here.
template <>
void CalcDistanceFallback<double>(const fcl::CollisionObjectd& a,
const math::RigidTransformd& X_WA,
const fcl::CollisionObjectd& b,
const math::RigidTransformd& X_WB,
const fcl::DistanceRequestd& request,
SignedDistancePair<double>* pair_data) {
From what already provided, I just need one more argument: the const fcl::DistanceRequestd& request
.
Alternatively, distilling down to a small runnable example would be the best.
I reproduced the problem in this commit. I'll continue on Monday.
Here are all of the values of the fields of request
:
request.abs_err 0
request.distance_tolerance 1e-06
request.enable_nearest_points 1
request.enable_signed_distance 1
request.gjk_solver_type 0
request.rel_err 0
Let me know if there are other values I can print for you! If you need a runnable example, I probably won't have time to make one until after October 3.
What happened?
While using SceneGraphCollisionChecker, I encountered the following error:
I can provide code to replicate this, although it's a rather large chunk. I did print out the arguments to the function, in case that might help debug. But if that's insufficient, I can try to distill it down to a small runnable example.
Version
4fdee8082686b878b97ab33d1605fddae6fc611d
What operating system are you using?
Unknown / Other, Ubuntu 22.04
What installation option are you using?
compiled from source code using CMake
Relevant log output
No response