Comments (7)
I will have a look next week.
from hpp-fcl.
The behavior when EPA fails has changed indeed. When it fails, it used to return a computed distance which is meaningless. Now it doesn't set the value.
There is no way to recover from EPA failure. The distance may be set to NaN but I don't know all the consequences. The current API does not allow to inform the user of a failure.
from hpp-fcl.
However, I am surprised you get this error for a box-box query. Can you extract the position of the two boxes and their dimensions ?
Anyway, I agree that when you call collide and you can't provide the penetration depth, you should at least state that there is a collision...
from hpp-fcl.
Setting to NaN
or to a negative value would allow to signal failure somehow... It would be certainly better than leaving it undefined.
Anyhow, this does not explain why the Pinocchio unit test used to be working but now it doesn't. That unit test contains both positive and negative examples, and they work. Now it seems computeCollision
always returns false
from hpp-fcl.
However, I am surprised you get this error for a box-box query. Can you extract the position of the two boxes and their dimensions ?
I'll see what I can do.
Anyway, I agree that when you call collide and you can't provide the penetration depth, you should at least state that there is a collision...
I do not fully understand the implications of what you said. I analysed the code in a purely functional way, but I did not fully understand what each bit does. If you managed to correctly detect the collision regardless the EPA failure, that would be enough for the Pinocchio test to work
from hpp-fcl.
They are both cubes of side 1.
In the first example they are both at the origin, therefore they coincide, while in the third example the first object is at (0.99, 0, 0)
and the second object is at the origin, therefore they should collide.
So, the first and the third example should collide, but they don't.
In detail, here are the placements in the four tests:
R =
1 0 0
0 1 0
0 0 1
p = 0 0 0
R =
1 0 0
0 1 0
0 0 1
p = 0 0 0
-----------------
/home/gabriele/devel/pinocchio/unittest/geom.cpp(107): error: in "geomTest/simple_boxes": check computeCollision(geomModel,geomData,0) == true has failed
R =
1 0 0
0 1 0
0 0 1
p = 2 0 0
R =
1 0 0
0 1 0
0 0 1
p = 0 0 0
-----------------
R =
1 0 0
0 1 0
0 0 1
p = 0.99 0 0
R =
1 0 0
0 1 0
0 0 1
p = 0 0 0
-----------------
/home/gabriele/devel/pinocchio/unittest/geom.cpp(129): error: in "geomTest/simple_boxes": check computeCollision(geomModel,geomData,0) == true has failed
R =
1 0 0
0 1 0
0 0 1
p = 1.01 0 0
R =
1 0 0
0 1 0
0 0 1
p = 0 0 0
-----------------
from hpp-fcl.
Thank you for the thorough report. it helps a lot.
from hpp-fcl.
Related Issues (20)
- How should I cite this repo? HOT 1
- RuntimeError: Library built without qhull. Cannot build object of this type. HOT 5
- Does this new fcl lib support taking convex object as the leaf node for building BVH model? HOT 4
- Can you share examples and tutorials for calling hpp-fcl in python, especially for robotic arm urdf or .stl? HOT 1
- Segmentation Fault when using with Pinocchio HOT 2
- How to compile in Windows? HOT 2
- Python 3.8 with pip CI step fail HOT 1
- Point inside given shape HOT 1
- Is there any tutorial or demo ?? HOT 2
- Can't register Plane or Halfplane to DynamicAABBTreeCollisionManager HOT 4
- Broadphase optimization with Planes/Halfspaces
- Fix cmake export to allow cross-compilation with sysroot HOT 3
- make error: Eigen 'Vector' template error HOT 2
- Support for raycast HOT 8
- TODO: avoid BVH-BVH copy in `collide`?
- TODO: Add `TriangleP` to the distance function matrix
- TODO: rename `nearest_points` to `witness_points` in collision data
- Should we `clear` inside `collide`? HOT 4
- Question About Specific Narrowphase Collision Algorithm HOT 2
- Can broadphase collision detect parallel in different transform scenario? HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hpp-fcl.