智能驾驶功能软件平台设计规范 第二部分:感知融合功能服务-附录

发布于 2022-12-7 15:23
浏览
0收藏

附 录 A

(资料性附录)


感知融合服务接口 protobuf 描述


A.1 数据结构定义描述

// common.proto
message Header{
    required uint32 ModuleID=1;
    message VersionID{
    required uint32 major=1;
    required uint32 minor=2;
    required uint32 patch=3;
}
    required VersionID vid=2;
    required uint32 sequenceNum=3;
    message timeStamp{
    required uint64 timeStampS=1;
    required uint64 timeStampNs=2;
}
required timeStamp TimeStamp=4;
enum FRAMETYPE{
    NA=0;
    VCS=1;
    WGS84=2;
    UTM=3;
}
required FRAMETYPE Frame=5;
emum STATUS{
    GOOD=0;
    MED=1;
    FAILURE=2;
}
required STATUS Status =6;
}
message Point2D{
    required double x=1;
    required double y=2;
}
message Point3D{
    required double x=1;
    required double y=2;
    required double z=3;
}
message Polygon2D{
    repeated point2D p2d=1; 
}
message Polygon3D{
    repeated point3D p3d=1; 
}
message Dimension{
    required double height=1;
    required double width=2;
    required double length=3;
}
message Quaternion {
    required double qx = 1 ;
    required double qy = 2 ;
    required double qz = 3 ;
    required double qw = 4 ;
}
message Transformation{
    required Point3D Translation=1;
    required Quaternion Rotation=2;
}
message Pose{
    required Point3D Position=1;
    required Quaternion Orientation=2;
    required double Covariance=3;
}
message Velocity{
    required Point3D Linear=1;
    required Point3D Angular =2;
    repeated double Covariance=3;
}
message Acceleration{
    required Point3D Linear=1;
    required Point3D Angular =2;
    repeated double Covariance=3;
}
message Object{
required uint32 objectId=1;
enum OBJECTYPE{
    Pedestrian=1;
    Cyclist=2;
    Car=3;
    Truck=4;
    Tram=5;
    Motorcycle=6;
    Bicycle=7;
    Tricycle=8;
    TrafficLight=9;
    TrafficSign=10;
    RoadSign=11;
    TrafficCone=12;
    TrafficStick=13;
    BillBoard=14;
    ParkingSlot=15;
    FireHydrant=16;
    Unknow_static=17;
    Unknow_movable=18;
}
required OBJECTYPE objectType=2;
required double classConfidence=3;
required bool isMovable=4;
optional double existProbability=5;
optional double timeLastSeen=6;
optional double timeCreation=7;
optional double objectAge=8;
optional double trackQuality=9;
required pose referencePoint=10;
required Dimension objectDimension=11;
required Velocity ObjectVelocity=12;
required Acceleration ObjectAccel=13;
optional int32 laneAssignment=14;
optional double laneOffsetLeft=15;
optional double laneOffsetRight=16;
enum LIGHTSTATUS{
    OFF=0;
    LEFT=1;
    RIGHT=2;
    BLINK=3;
    BRAKE=4;
}
Optional LIGHTSTATUS LightStatus =17;
}
message LaneLine{
enum LANELINETYPE{
    WHITE_DASHED = 0;
    WHITE_SOLID = 1; 
    YELLOW_DASHED = 2;
    YELLOW_SOLID = 3;
    UNKNOWN=4;
}
required LaneLineType Type=1;
required double confidence=2;
repeated Point3D linePoints=3;
}
message StopLine{
enum STOPLINETYPE {
    NORMAL=0;
    UNKNOWN=1;
}
required STOPLINETYPE Type=1;
required double confidence=2;
required Point3D LeftStart=3;
required Point3D RightEnd=4;
}
message TrafficLight{
required uint32 id=1;
enum TLType {
    STRAIGHT = 0;
    LEFT = 1;
    RIGHT = 2;
    U_TURN = 3;
}
required TLtype type=2;
enum TLColour{
    RED = 0;
    YELLOW = 1;
    GREEN = 2;
    BLACK = 3;
    UNKNOWN = 4;
}
required TLColour Colour =3;
required Point3D Position=4;
required Polygon2D Box=5;
required int32 LaneAttached=6;
optional double RemainingTime=7;
} message TrafficSign{
required uint32 id=1;
enum TSTYPE{
    SpeedLimit=0;
    HzardWarning=1;
}
required TSTYPE Semantic=2;
optional uint32 value=3;
enum UNITTYPE{
    KMPH=0;
    TON=1;
}
optional UNITTYPE Unit=4;
required Point3D position=5;
required Polygon2D Box=6;
optional int32 LaneAttached=7;
}
message FreeSpaceMeta{
    required double xStart=1;
    required dboule xEnd=2;
    required dboule xReslution =3;
    required uint32 xGridNum =4;
    required double yStart=5;
    required dboule yEnd=6;
    required dboule yReslution =7;
    required uint32 yGridNum =8;
}message FreeSpaceCell{
enum CELLSTATUS {
    UNKNOW=0;
    FREE=1;
    OCC_STATIC=2;
    OCC_MOVABLE=3;
}
required CELLSTATUS Status=1;
required double Probability=2; 
}
message ParkingSpace{
    required uint32 id=1;
    enum PARKINGTYPE{
    PARKING_TYPE_UNKNOWN = 0;
    PARKING_TYPE_VERTICAL = 1;
    PARKING_TYPE_PARALLEL = 2;
    PARKING_TYPE_INC = 3;
}
required PARKINGTYPE Ptype=2;
required double typeConfidence=3;
repeated Point3D ParkingSpotPoints=4;
optional double width=5;
optional double length=6;
required bool valid=7;
}
message VehicleStatus{
required double SteeringAngle=1;
required double steeringVelocity=2;
required Acceleration acc=3; 
required Velocity vel=4; 
enum DrivingMode{
    MANUAL=0;
    AUTO=1;
    LAT_ONLY=2;
    LON_ONLY=3;
}
required DrivingMode ControlMode=5;
enum GearPosition{
    GEAR_NEUTRAL = 0;
    GEAR_PARKING = 1;
    GEAR_DRIVE = 2;
    GEAR_REVERSE = 3;
    GEAR_LOW = 4;
    GEAR_INVALID = 5;
    GEAR_NONE = 6;
}
required GearPosition GearMode=6;
enum EngineMode{
    ON=0;
    OFF=1;
    FAILURE=2;
}
required EngineMode eMode =7;
repeated double WheelSpeed=8;
}

A.2 目标识别和跟踪服务接口

// ObjectDetectionAndTrackingService.proto
import common.proto
message ObjectDetectionAndTrackingService{
required Header header=1;
repeated Object ListOfObjects=1;
}

A.3 道路结构服务接口

// RoadStructureService.proto
import common.proto
message RoadStructureService{
    required Header header=1;
    repeated LaneLine ListOfLaneLine=2;
    repeated StopLine ListOfStopLine =3;
}

A.4 交通标志接口

// TrafficSignLightService.proto
message TrafficSignLightService{
    required Header header=1;
    repeated TrafficLight ListOfTrafficLight=2;
    repeated TrafficSign ListOfTrafficSign=3;
}

A.5 可行驶空间接口

// DrivableAreaService.proto
import common.proto
    message DrivableAreaService{
    required Header header=1;
    required FreeSpaceMeta MetaInfo=2;
    repeated FreeSpaceCell ListOfFreeSpaceCells=3;
}

A.6 车辆状态服务接口

//VehicleStatusService.proto
import common.proto
message VehicleStatusService{
    required Header header=1;
    required VehicleStatus vState=2;
}

A.7 泊车位信息服务接口

// ParkinglotDetectionService.proto
import common.proto
    message ParkinglotDetectionService {
    required Header header=1;
    repeated ParkingSpace ParkingLots =2;
}

A.8 环境模型服务接口



import common.proto
message ParkinglotDetectionService {
    required Header header=1;
    repeated Object ListOfObjects=2;
    repeated LaneLine ListOfLaneLine=3;
    repeated StopLine ListOfStopLine =4;
    repeated TrafficLight ListOfTrafficLight=5;
    repeated TrafficSign ListOfTrafficSign=6;
    optional FreeSpaceMeta MetaInfo=7;
    repeated FreeSpaceCell ListOfFreeSpaceCells=8;
    required VehicleStatus vState=9;
    repeated ParkingSpace ParkingLots =10;
}


原文作者:爱是与世界平行

原文链接:https://blog.51cto.com/lovebetterworld/5606490

分类
收藏
回复
举报
回复
相关推荐