更新时间:2025-02-20 GMT+08:00
分享

消息topic格式规范

Vehicle

对于车辆自身基本数据录制的消息格式,需遵循一定规范,其中部分字段为必选,其他请根据实际需要自由选取。

表1 vehicle消息格式规范

格式名称

说明

VehicleInfo

车辆信息

消息格式中部分参数为必选,如使用该数据类型,则不可缺少该参数字段,否则会导致数据上传Octopus平台失败。

/***********************************
    content: Octopus 输入数据格式
    version: 0.1
************************************/
syntax = "proto3";

package Octopusdata;

message VehicleFrame {
	uint64 stamp_secs = 1;                    #必选。时间戳,单位:秒
	uint64 stamp_nsecs = 2;                   #必选。时间戳,单位:纳秒
	uint32 autonomy_status = 3;               #非必选。自动驾驶状态
	sint32 gear_value = 4;                    #必选。只应从枚举常量中赋值
	float vehicle_speed = 5;                  #必选。行驶速度,如果齿轮是倒挡,值为负。
	float steering_angle = 6;                 #必选。转向,以角度表示。顺时针或向右为正,0为垂直或直角。
	float yaw_rate = 7;                      #Unit: deg/s
	float interior_temperature = 8;          #Unit: Celsius
	float outside_temperature = 9;           #Unit: Celsius
	float brake = 10;                        #必选。刹车制动按压百分比 (0代表不按,1代表完全按下)。
        uint64 timestamp = 11;                     #必选。时间戳。              
	int32 turn_left_light=12;                  #必选。左转灯。
	int32 turn_right_light=13;                 #必选。右转灯。
	float longitude_acc=14;                    #必选。纵向加速度。
	float lateral_acc=15;                      #必选。横向加速度。
       
}

message VehicleInfo {
    repeated VehicleFrame vehicle_info = 1;
}

Camera

采集的camera数据通过转换工具可以保存为“.jpg”图片数据。

Lidar

采集的点云数据通过转换工具可以保存为标准的pcd格式数据。

Gnss

对于卫星导航系统数据录制的消息格式,需遵循一定规范,其中部分字段为必选,其他请根据实际需要自由选取。

表2 gnss消息格式规范

格式名称

说明

GnssPoints

gps点

消息格式中部分字段为必选,如使用该数据类型,则不可缺少该参数字段,否则会导致数据上传Octopus平台失败。

/***********************************
    content: Octopus 输入数据格式
    version: 1.0
************************************/
syntax = "proto3";

package Octopusdata;

message GnssPoint {
	uint64 stamp_secs = 1;     #必选。时间戳,单位:秒
	uint64 stamp_nsecs = 2;    #必选。时间戳,单位:纳秒
        float latitude = 3;        #必选。纬度
        float longitude = 4;       #必选。经度
        float elevation = 5;       #必选。海拔高度,单位:米
        uint64 timestamp = 6;      #必选。时间戳
}

message GnssPoints {
    repeated GnssPoint gnss_points = 1;
}

Radar

雷达采集的点云数据通过转换工具可以保存为标准的pcd格式数据。

Ego_tf

对于自车角度位置数据录制的消息格式,需遵循一定规范,其中部分字段为必选,其他请根据实际需要自由选取。

表3 ego_tf消息格式规范

格式名称

说明

LocalizationInfo

主车信息

消息格式中部分字段为必选,如使用该数据类型,则不可缺少该参数字段,否则会导致数据上传Octopus平台失败。

/***********************************
    content: Octopus 输入数据格式
    version: 1.0
************************************/
syntax = "proto3";

package Octopusdata;


message LocalizationInfoFrame {
	uint64 timestamp = 1;                    #必选。时间戳。
	uint64 stamp_secs = 2;                   #必选。时间戳,单位:秒
	uint64 stamp_nsecs = 3;                  #必选。时间戳,单位:纳秒
	float pose_position_x = 4;               #必选。自车x轴坐标
        float pose_position_y = 5;               #必选。自车y轴坐标    
        float pose_position_z = 6;               #必选。自车z轴坐标
	float pose_orientation_x = 7;            #必选。自车四元数x值
        float pose_orientation_y = 8;            #必选。自车四元数y值
        float pose_orientation_z = 9;            #必选。自车四元数z值
	float pose_orientation_w = 10;           #必选。自车四元数w值
	float pose_orientation_yaw=11;           #必选。朝向角,单位:rad
	float velocity_linear=12;                #必选。速度,单位:m/s
	float velocity_angular=13;               #必选。角速度,单位:rad/s
	float acceleration_linear=14;            #必选。加速度,单位:m^2/s
	float acceleration_angular=15;           #必选。角加速度,单位:rad^2/s
}

message LocalizationInfo {
    repeated LocalizationInfoFrame localization_info = 1;
}

Object_array_vision

对于目标推理数据录制的消息格式,需遵循一定规范,其中部分字段为必选,其他请根据实际需要自由选取。

表4 object_array_vision消息格式规范

格式名称

说明

TrackedObject

感知目标

消息格式中部分字段为必选,如使用该数据类型,则不可缺少该参数字段,否则会导致数据上传Octopus平台失败。

/***********************************
    content: Octopus 输入数据格式
    version: 1.0
************************************/
syntax = "proto3";

package Octopusdata;


message Object {
	uint64 id = 1;                       #必选。目标推理数据object数组id
	string label = 2;                    #必选。标记物体类型
	float pose_position_x = 3;           #必选。目标物x轴坐标
        float pose_position_y = 4;           #必选。目标物y轴坐标
        float pose_position_z = 5;           #必选。目标物z轴坐标
	float pose_orientation_x = 6;        #必选。目标物四元数x值
        float pose_orientation_y = 7;        #必选。目标物四元数y值
        float pose_orientation_z = 8;        #必选。目标物四元数z值
	float pose_orientation_w = 9;        #必选。目标物四元数w值
	float pose_orientation_yaw = 10;     #必选。朝向角,单位:rad
	float dimensions_x = 11;             #必选。目标物x方向尺寸(长)
	float dimensions_y = 12;             #必选。目标物y方向尺寸(宽)
	float dimensions_z = 13;             #必选。目标物z方向尺寸(高)
	float speed_vector_linear_x = 14;    #必选。目标物x方向速度
        float speed_vector_linear_y = 15;    #必选。目标物y方向速度
        float speed_vector_linear_z = 16;    #必选。目标物z方向速度
        float relative_position_x = 17;      #必选。目标物相对于主车x方向位置
        float relative_position_y = 18;      #必选。目标物相对于主车y方向位置
        float relative_position_z = 19;      #必选。目标物相对于主车z方向位置
}
message TrackedObjectFrame {
	uint64 timestamp = 1;                #必选。时间戳
	uint64 stamp_secs = 2;               #必选。时间戳,单位:秒
	uint64 stamp_nsecs = 3;              #必选。时间戳,单位:纳秒
	repeated Object objects = 4;         #必选。object数组
}
message TrackedObject {
    repeated TrackedObjectFrame tracked_object = 1;
}

Tag_record

对于标签记录数据录制的消息格式,需遵循一定规范,其中部分字段为必选,其他请根据实际需要自由选取。

表5 tag_record消息格式规范

格式名称

说明

ScenarioSegments

场景片段

/***********************************
    content: Octopus 输入数据格式
    version: 1.0
************************************/
syntax = "proto3";

package Octopusdata;

message ScenarioSegment {
 uint32 scenario_id = 1;                 #必选。场景id
 string source = 2;                      #必选。片段的来源
 uint64 start = 3;                       #必选。片段的开始时间(时间戳)
 uint64 end = 4;                         #必选。片段的结束时间(时间戳)
}

message ScenarioSegments {
 repeated ScenarioSegment segments = 1;
}

Control

对于控制数据的消息格式,需遵循一定规范,其中部分字段为必选,其他请根据实际需要自由选取。

表6 control消息格式规范

格式名称

说明

ControlCommand

控制命令

/***********************************
    content: Octopus 输入数据格式
    version: 1.0
************************************/
syntax = "proto3";
package Octopusdata;
message CommandFrame {
    uint64 stamp_secs = 1;
    uint64 stamp_nsecs = 2;
    uint64 timestamp = 3;                        #必选,时间戳
    float acceleration=4;                        #必选,加速度值
    float front_wheel_angle=5;                   #必选,方向盘转角
    int32 gear=6;
}
message ControlCommand {
     repeated CommandFrame command_frame = 1;
}

Predicted_objects

对于预测路径数据的消息格式,需遵循一定规范,其中部分字段为必选,其他请根据实际需要自由选取。

表7 predicted_objects消息格式规范

格式名称

说明

PredictionObstacles

预测障碍物

/***********************************
    content: Octopus 输入数据格式
    version: 1.0
************************************/
syntax = "proto3";
package Octopusdata;
message PathPoint {
    float x = 1;          #必选,预测轨迹点x坐标
    float y = 2;          #必选,预测轨迹点y坐标
    float z = 3;          #必选,预测轨迹点z坐标
    float theta = 4;
    float kappa = 5;
    int32 lane_id= 6;
    float v=7;
    float a=8;
    float relative_time=9;
}
message PredictionTrajectory {
   repeated PathPoint path_point = 1;   #必选,预测轨迹多个点
}
message Obstacle {
    uint64 obstacle_timestamp = 1; 
    int32 id=2;                 #必选,预测目标的id
    float x = 3;  #非必选,预测目标的x坐标
    float y = 4;  #非必选,预测目标的y坐标
    float z = 5;  #非必选,预测目标的z坐标
    repeated PredictionTrajectory prediction_trajectory = 6;   #必选,预测目标的多条轨迹
}
message PerceptionObstacle {
   uint64 stamp_secs = 1;
   uint64 stamp_nsecs = 2;
   uint64 timestamp = 3;   #必选,预测目标的时间戳
   repeated Obstacle obstacle_info= 4;  #必选,多个目标的预测信息
}
message PredictionObstacles {
   repeated PerceptionObstacle perception_obstacle= 4;  #必选,多条帧数据
}

Planning_trajectory

对于规划路径数据的消息格式,需遵循一定规范,其中部分字段为必选,其他请根据实际需要自由选取。

表8 planning_trajectory消息格式规范

格式名称

说明

PlanTrajectory

规划路径

/***********************************
    content: Octopus 输入数据格式
    version: 1.0
************************************/
syntax = "proto3";
package Octopusdata;
message TrajectoryPoint {
    float x = 1;   #必选,轨迹点x坐标
    float y = 2;   #必选,轨迹点y坐标
    float z = 3;   #必选,轨迹点z坐标
    float theta = 4;
    float kappa = 5;
    int32 lane_id=6;
    float v=7;   #必选,速度
    float a=8;   #必选,加速度
    float relative_time=9;  #必选,相对时间
}
message Trajectory {
    uint64 stamp_secs = 1;
    uint64 stamp_nsecs = 2;
    uint64 timestamp = 3;    #必选,时间戳
    float total_path_length = 4;
    float total_path_time=5;
    int32 gear=6;      #非必选,档位
    int32 trajectory_type=7;
    int32 vehicle_signal=8;
    repeated TrajectoryPoint trajectory_points = 9;  #必选,轨迹
}
message PlanTrajectory {
     repeated Trajectory trajectory_info= 1;
}

Routing_path

对于全局规划路径数据的消息格式,需遵循一定规范,其中部分字段为必选,其他请根据实际需要自由选取。

表9 routing_path消息格式规范

格式名称

说明

RoutingFrames

规划路径

/*********************************** 
    content: Octopus 输入数据格式 
    version: 1.0 
************************************/ 
syntax = "proto3";

message Point{
    float x = 1;
    float y = 2;
    float z = 3;
}

message Path{
    uint64 id = 1;
    repeated Point path_point = 2;
}

message RoutingPath{
    uint64 timestamp = 1;
    uint64 stamp_secs = 2;
    uint64 stamp_nsecs = 3;
    repeated Path routing_path_info = 4;
}

message RoutingFrames{
    repeated RoutingPath routing_frame = 4;
}

Traffic_light_info

对于交通灯数据的消息格式,需遵循一定规范,其中部分字段为必选,其他请根据实际需要自由选取。

表10 traffic_light_info消息格式规范

格式名称

说明

TrafficLightInfo

交通灯

/***********************************
    content: Octopus 输入数据格式
    version: 1.0
************************************/
syntax = "proto3";

package Octopusdata;

message Light {
	uint64 id = 1;
	uint64 color = 2;
	uint64 state = 3;
	uint64 type = 4;
    float location_x = 5;
    float location_y = 6;
    float location_z = 7;
}

message Lights {
    uint64 timestamp = 1;
    uint64 stamp_secs = 2;
	uint64 stamp_nsecs = 3;
    repeated Light lights = 4;
}

message TrafficLightInfo {
    repeated Lights trafficlight_info = 1;
}

相关文档