cmvr-es/protos/rbk/protocol/src1100_map3d.proto

125 lines
3.2 KiB
Protocol Buffer
Raw Normal View History

2026-07-07 15:54:09 +08:00
syntax = "proto3";
package rbk.protocol;
// 仙工 SRC1100 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;
}