125 lines
3.2 KiB
Protocol Buffer
125 lines
3.2 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package rbk.protocol;
|
|
|
|
// 仙工 SEER Robokit 3D 地图文件 0.3dsmap 的最小解析结构。
|
|
// 这里只保留转换统一地图所需字段,未声明字段由 protobuf 作为未知字段跳过。
|
|
|
|
// 地图坐标系下的三维位置,单位:米。
|
|
message Message_MapPos {
|
|
// X 坐标,单位:米。
|
|
double x = 1;
|
|
// Y 坐标,单位:米。
|
|
double y = 2;
|
|
// Z 坐标,单位:米。
|
|
double z = 3;
|
|
}
|
|
|
|
// 仙工地图头信息。
|
|
message Message_MapHeader {
|
|
// 地图类型,例如 2D-Map 或 3D-Map。
|
|
string map_type = 1;
|
|
// 地图名称,通常对应地图文件名。
|
|
string map_name = 2;
|
|
// 地图最小边界点,单位:米。
|
|
Message_MapPos min_pos = 3;
|
|
// 地图最大边界点,单位:米。
|
|
Message_MapPos max_pos = 4;
|
|
// 地图分辨率,单位:米。
|
|
double resolution = 5;
|
|
// 地图格式版本号。
|
|
string version = 8;
|
|
}
|
|
|
|
// 三维浮点向量。
|
|
message Vec3f {
|
|
// X 分量。
|
|
float x = 1;
|
|
// Y 分量。
|
|
float y = 2;
|
|
// Z 分量。
|
|
float z = 3;
|
|
}
|
|
|
|
// 三维整数向量。
|
|
message Vec3i {
|
|
// X 分量。
|
|
int32 x = 1;
|
|
// Y 分量。
|
|
int32 y = 2;
|
|
// Z 分量。
|
|
int32 z = 3;
|
|
}
|
|
|
|
// 仙工 3D 特征地图参数。
|
|
message FeatureMapParams {
|
|
// 激光测距标准差,单位:米。
|
|
float ranging_sigma = 1;
|
|
// 激光测角标准差,单位:度。
|
|
float angle_sigma = 2;
|
|
// 最大体素边长,单位:米。
|
|
float max_voxel_size = 3;
|
|
// 八叉树最大层数。
|
|
uint32 max_layer = 4;
|
|
// 平面协方差停止更新的点数阈值。
|
|
uint32 cov_fixed_pts_num = 5;
|
|
// 平面停止更新的点数阈值。
|
|
uint32 plane_fixed_pts_num = 6;
|
|
// 有效平面协方差最小特征值阈值。
|
|
float plane_min_eigen_value = 7;
|
|
// 每层评估平面所需的最少点数。
|
|
repeated int32 each_layer_least_pts_num = 8;
|
|
}
|
|
|
|
// 仙工 3D 平面特征。
|
|
message FeatureMapPlane {
|
|
// 平面中心点,单位:米。
|
|
Vec3f center = 1;
|
|
// 平面法向量。
|
|
Vec3f normal = 2;
|
|
// 平面方程 Ax + By + Cz + D = 0 中的 D。
|
|
float d = 3;
|
|
// 平面特征近似半径,单位:米。
|
|
float radius = 4;
|
|
// 平面协方差矩阵,按 6x6 展平。
|
|
repeated float plane_cov = 5;
|
|
}
|
|
|
|
// 仙工特征地图中的八叉树节点。
|
|
message OctoTree {
|
|
// 对应的平面 ID。
|
|
uint32 plane_id = 1;
|
|
// 子节点序列,-1 表示当前层无其他子节点。
|
|
repeated int32 child_id_list = 2;
|
|
}
|
|
|
|
// 同一外层体素位置下的八叉树节点集合。
|
|
message OctoTrees {
|
|
// 八叉树节点列表。
|
|
repeated OctoTree octo_tree = 1;
|
|
}
|
|
|
|
// 仙工 3D 特征地图。
|
|
message FeatureMap3D {
|
|
// 特征地图参数。
|
|
FeatureMapParams params = 1;
|
|
// 平面特征列表。
|
|
repeated FeatureMapPlane planes = 2;
|
|
// 每个外层体素对应的八叉树节点集合。
|
|
repeated OctoTrees octo_trees = 3;
|
|
// 最外层八叉树体素坐标。
|
|
repeated Vec3i voxel_locs = 4;
|
|
}
|
|
|
|
// 0.3dsmap 顶层消息。
|
|
message Message_Map3D {
|
|
// 地图目录或地图包内部目录名。
|
|
string map_directory = 1;
|
|
// 地图头信息。
|
|
Message_MapHeader header = 2;
|
|
// 普通 3D 点云点。
|
|
repeated Message_MapPos normal_pos3d_list = 3;
|
|
// 3D 特征地图。
|
|
FeatureMap3D feature_map_3d = 4;
|
|
}
|