I was looking at Android's new ARCore library. It has a method to detect horizontal surfaces but none to detect vertical surfaces or walls.
I was actually trying to make the sample app detect walls, but I am having lots of problems.
Is there a way natively or non-natively detect vertical surfaces in ARCore?
UPDATE
The newest version of ARCore now also has
public static final Config.PlaneFindingMode HORIZONTAL
// Detection of only horizontal planes is enabled.
public static final Config.PlaneFindingMode HORIZONTAL_AND_VERTICAL
// Detection of both horizontal and vertical planes is enabled.
OLD ANSWER
There is currently no native way:
public static final Config.PlaneFindingMode DISABLED
// Plane detection is disabled.
public static final Config.PlaneFindingMode HORIZONTAL
// Detection of only horizontal planes is enabled.
A non-native way is sketched here: Access the point cloud data and compute horizontal planes yourself. But to make it really work you would have to implement clustering (telling multiple planes apart instead of computing one global plane) and proper outlier rejection (maybe using RANSAC).
Personally I think (hope) that the next ARCore update will include vertical planes because I cannot see a mathematical reason for not supporting this.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With