Google ARCore Domain Model by Example

后端 未结 2 1710
臣服心动
臣服心动 2021-01-03 07:35

I\'m trying to read and make sense of Google ARCore\'s domain model, particularly the Android SDK packages. Currently this SDK is in \"preview\" mode and so there a

相关标签:
2条回答
  • 2021-01-03 07:48

    A Pose is a structured transformation. It is a fixed numerical transformation from one coordinate system (typically object local) to another (typically world).

    An Anchor represents a physically fixed location in the world. It's getPose() will update as the understanding of the world changes. For example, imagine you have a building with a hallway around the outside. If you walk all the way around that hallway, sensor drift results in you not winding up at the same coordinates you started at. However, ARCore can detect (using visual features) that it is in the same space it started it. When this happens, it distorts the world so that your current location and original location line up. As part of this distortion, the location of anchors will be adjusted as well so that they stay in the same physical place.

    Because of this distortion, a Pose relative to the world should be considered valid only for the duration of the frame during which it was returned. As soon as you call update() the next time, the world may have reshaped at that pose could be useless. If you need to keep a location longer than a frame, create an Anchor. Just make sure to removeAnchors() anchors that you're no longer using, as there is ongoing cost for each live anchor.

    A Frame captures the current state at an instant and changes between two calls to update().

    PointClouds are sets of 3D visual feature points detected in the world. They are in their own local coordinate system, which can be accessed from Frame.getPointCloudPose(). Developers looking to have better spatial understanding than the plane detection provides can try using the point clouds to learn more about the structure of the 3D world.

    Does that help?

    0 讨论(0)
  • 2021-01-03 08:05

    Using the following link you can find and answer about Frame, Anchor and Pose:

    ARCore – Session, Frame, Camera and Pose.

    Additionally, here's an info on What a Point Cloud is:

    Point Cloud is a visual cloud of points (of yellow color, usually) in World Space which represent a reliable positions for dots for 3D tracking on a real-world objects. Point Cloud looks like this:

    And here's what Google says about Point Cloud:

    PointCloud contains a set of observed 3D points and confidence values. This class implements Closeable and usually should be used in a Java try-with-resources or Kotlin use block, for example:

    To get a PointCloud use the following code:

    Frame frame = session.update();
    
    try (PointCloud pointCloud = frame.acquirePointCloud()) {
        // Accessing point cloud data.......
    }
    
    0 讨论(0)
提交回复
热议问题