package px; message HeaderInfo { required int32 source_sysid = 1; required int32 source_compid = 2; required double timestamp = 3; // in seconds } message GLOverlay { required HeaderInfo header = 1; optional string name = 2; enum CoordinateFrameType { GLOBAL = 0; LOCAL = 1; } optional CoordinateFrameType coordinateFrameType = 3; optional double origin_x = 4; optional double origin_y = 5; optional double origin_z = 6; optional bytes data = 7; enum Mode { POINTS = 0; LINES = 1; LINE_STRIP = 2; LINE_LOOP = 3; TRIANGLES = 4; TRIANGLE_STRIP = 5; TRIANGLE_FAN = 6; QUADS = 7; QUAD_STRIP = 8; POLYGON = 9; SOLID_CIRCLE = 10; WIRE_CIRCLE = 11; SOLID_CUBE = 12; WIRE_CUBE = 13; } enum Identifier { END = 14; VERTEX2F = 15; VERTEX3F = 16; ROTATEF = 17; TRANSLATEF = 18; SCALEF = 19; PUSH_MATRIX = 20; POP_MATRIX = 21; COLOR3F = 22; COLOR4F = 23; POINTSIZE = 24; LINEWIDTH = 25; } } message Obstacle { optional float x = 1; optional float y = 2; optional float z = 3; optional float length = 4; optional float width = 5; optional float height = 6; } message ObstacleList { required HeaderInfo header = 1; repeated Obstacle obstacles = 2; } message ObstacleMap { required HeaderInfo header = 1; required int32 type = 2; optional float resolution = 3; optional int32 rows = 4; optional int32 cols = 5; optional int32 mapR0 = 6; optional int32 mapC0 = 7; optional int32 arrayR0 = 8; optional int32 arrayC0 = 9; optional bytes data = 10; } message Path { required HeaderInfo header = 1; repeated Waypoint waypoints = 2; } message PointCloudXYZI { message PointXYZI { required float x = 1; required float y = 2; required float z = 3; required float intensity = 4; } required HeaderInfo header = 1; repeated PointXYZI points = 2; } message PointCloudXYZRGB { message PointXYZRGB { required float x = 1; required float y = 2; required float z = 3; required float rgb = 4; } required HeaderInfo header = 1; repeated PointXYZRGB points = 2; } message RGBDImage { required HeaderInfo header = 1; required uint32 cols = 2; ///< Number of columns in image(s) required uint32 rows = 3; ///< Number of rows in image(s) required uint32 step1 = 4; ///< Step (stride) of image 1 required uint32 type1 = 5; ///< Type of image 1 required bytes imageData1 = 6; required uint32 step2 = 7; ///< Step (stride) of image 2 required uint32 type2 = 8; ///< Type of image 2 required bytes imageData2 = 9; optional uint32 camera_config = 10; ///< PxSHM::Camera enumeration optional uint32 camera_type = 11; ///< PxSHM::CameraType enumeration optional float roll = 12; optional float pitch = 13; optional float yaw = 14; optional float lon = 15; optional float lat = 16; optional float alt = 17; optional float ground_x = 18; optional float ground_y = 19; optional float ground_z = 20; repeated float camera_matrix = 21; } message Waypoint { required double x = 1; required double y = 2; optional double z = 3; optional double roll = 4; optional double pitch = 5; optional double yaw = 6; }