Raw Map Data
Note as of 6/17/2021: This structure is only implemented in the
floor-detection branch of the InvisibleMap repository, and can only be read by the code in
the floor-detection branch of invisible-map-generation. Older maps will not work with
the floor-detection back-end code and newer maps will not work with the current master branch
back-end code.
Note as of 8/3/2021: The code that collects plane data has been commented out due to memory issues
during map creation. Maps located in the Firebase invisible-map-sandbox database have empty structures
where planes are involved in the data. The commented out code that updates plane data is in
ARView.swift in InvisibleMapCreator2 (lines 81-88).
The overall structure of the raw data is a dictionary with 5 keys: map_id, pose_data, tag_data,
location_data (the waypoints or points of interest recorded during map creation), and plane_data.
Each of these entries with the exception of map_id is another dictionary. The full structure of the
file is detailed below in a nested bulleted list.
- "map_id": String, the unique ID for the map
- "pose_data": Dict, the odometry data taken at each frame 10 times per second
- "timestamp": Float
- "id": Int
- "pose": 16 element list (4x4 Float matrix), the odometry pose in world frame
-
"planes": [Dict] (List of Dicts), each new plane that was detected when this odom frame
was recorded
- "id": Int, id of the plane anchor
-
"transform": 16 element list (4x4 Float matrix), the transformation matrix from
the odometry to the plane anchor position.
- "tag_data": Dict
- "timestamp": Float
- "tag_id": Int
- "pose_id": Int, id of the odometry frame when this tag was detected
- "tag_pose": 16 element list (4x4 Float matrix), the tag pose in camera frame (local to phone)
- "tag_corners_pixel_coordinates": 8 element List, coordinates for each tag corner in pixels
-
"camera_intrinsics": 4 element List, the internal data unique to the camera used to record
the map. First two elements are focal length in the x and y directions, third and fourth elements
are the pixel coordinates of the center.
- "tag_position_variance": 3 element List, variability in tag position
- "tag_orientation_variance": 4 element List, variability in tag orientation
- "joint_covar": 49 element List (7x7 matrix), covariance
- "location_data": Dict
- "timestamp": Float
- "name": String
- "pose_id": Int, id of the odometry frame when this location was saved
- "transform": 16 element list (4x4 Float matrix), the waypoint pose in world frame
- "plane_data": Dict
- "id": Int
- "pose": 16 element list (4x4 Float matrix), the pose of the plane anchor in world frame
- "boundaries": List of 3 element Lists, the coordinates of the corners of the plane boundary