package config import ( "cicv-data-closedloop/pjisuv_msgs" "cicv-data-closedloop/pjisuv_ticker" "github.com/bluenviron/goroslib/v2/pkg/msgs/geometry_msgs" "github.com/bluenviron/goroslib/v2/pkg/msgs/nav_msgs" "github.com/bluenviron/goroslib/v2/pkg/msgs/sensor_msgs" "github.com/bluenviron/goroslib/v2/pkg/msgs/tf2_msgs" "github.com/bluenviron/goroslib/v2/pkg/msgs/visualization_msgs" "sync" ) var ( LabelMapTriggerId = new(sync.Map) // 0 // 定时任务触发器,详见 pjisuv_ticker包 TopicOfCicvTicker = pjisuv_ticker.TickerTopic RuleOfCicvTicker = make([]func(shareVars *sync.Map), 0) // tick代表定时任务间隔时间;对于长度为0的slice,无论是使用var还是make创建,它们在内存占用上的差异通常可以忽略不计 // 1 TopicOfAmrPose = "/amr_pose" RuleOfAmrPose1 []func(data *visualization_msgs.MarkerArray) string RuleOfAmrPose3 []func(shareVars *sync.Map, data *visualization_msgs.MarkerArray) string // 2 TopicOfBoundingBoxesFast = "/bounding_boxes_fast" RuleOfBoundingBoxesFast1 []func(data *pjisuv_msgs.BoundingBoxArray) string RuleOfBoundingBoxesFast3 []func(shareVars *sync.Map, data *pjisuv_msgs.BoundingBoxArray) string // 3 TopicOfCameraFault = "/camera_fault" RuleOfCameraFault1 []func(data *pjisuv_msgs.FaultVec) string RuleOfCameraFault3 []func(shareVars *sync.Map, data *pjisuv_msgs.FaultVec) string // 4 TopicOfCanData = "/can_data" RuleOfCanData1 []func(data *pjisuv_msgs.Frame) string RuleOfCanData3 []func(shareVars *sync.Map, data *pjisuv_msgs.Frame) string // 5 TopicOfCh128x1LslidarPointCloud = "/ch128x1/lslidar_point_cloud" RuleOfCh128x1LslidarPointCloud1 []func(data *sensor_msgs.PointCloud2) string RuleOfCh128x1LslidarPointCloud3 []func(shareVars *sync.Map, data *sensor_msgs.PointCloud2) string // 6 TopicOfCh64wLLslidarPointCloud = "/ch64w_l/lslidar_point_cloud" RuleOfCh64wLLslidarPointCloud1 []func(data *sensor_msgs.PointCloud2) string RuleOfCh64wLLslidarPointCloud3 []func(shareVars *sync.Map, data *sensor_msgs.PointCloud2) string // 7 TopicOfCh64wLScan = "/ch64w_l/scan" RuleOfCh64wLScan1 []func(data *sensor_msgs.LaserScan) string RuleOfCh64wLScan3 []func(shareVars *sync.Map, data *sensor_msgs.LaserScan) string // 8 TopicOfCh64wRLslidarPointCloud = "/ch64w_r/lslidar_point_cloud" RuleOfCh64wRLslidarPointCloud1 []func(data *sensor_msgs.PointCloud2) string RuleOfCh64wRLslidarPointCloud3 []func(shareVars *sync.Map, data *sensor_msgs.PointCloud2) string // 9 TopicOfCh64wRScan = "/ch64w_r/scan" RuleOfCh64wRScan1 []func(data *sensor_msgs.LaserScan) string RuleOfCh64wRScan3 []func(shareVars *sync.Map, data *sensor_msgs.LaserScan) string // 10 TopicOfCicvLidarclusterMovingObjects = "/cicv/lidarcluster_moving_objects" RuleOfCicvLidarclusterMovingObjects1 []func(data *pjisuv_msgs.PerceptionCicvMovingObjects) string RuleOfCicvLidarclusterMovingObjects3 []func(shareVars *sync.Map, data *pjisuv_msgs.PerceptionCicvMovingObjects) string // 11 TopicOfCicvAmrTrajectory = "/cicv_amr_trajectory" RuleOfCicvAmrTrajectory1 []func(data *pjisuv_msgs.Trajectory) string RuleOfCicvAmrTrajectory3 []func(shareVars *sync.Map, data *pjisuv_msgs.Trajectory) string // 12 TopicOfCicvLocation = "/cicv_location" RuleOfCicvLocation1 []func(data *pjisuv_msgs.PerceptionLocalization) string RuleOfCicvLocation3 []func(shareVars *sync.Map, data *pjisuv_msgs.PerceptionLocalization) string // 13 TopicOfCloudClusters = "/cloud_clusters" RuleOfCloudClusters1 []func(data *pjisuv_msgs.AutowareCloudClusterArray) string RuleOfCloudClusters3 []func(shareVars *sync.Map, data *pjisuv_msgs.AutowareCloudClusterArray) string // 14 TopicOfHeartbeatInfo = "/heartbeat_info" RuleOfHeartbeatInfo1 []func(data *pjisuv_msgs.HeartBeatInfo) string RuleOfHeartbeatInfo3 []func(shareVars *sync.Map, data *pjisuv_msgs.HeartBeatInfo) string // 15 TopicOfLidarPretreatmentCost = "/lidarPretreatment_Cost" RuleOfLidarPretreatmentCost1 []func(data *geometry_msgs.Vector3Stamped) string RuleOfLidarPretreatmentCost3 []func(shareVars *sync.Map, data *geometry_msgs.Vector3Stamped) string // 16 TopicOfLidarPretreatmentOdometry = "/lidar_pretreatment/odometry" RuleOfLidarPretreatmentOdometry1 []func(data *nav_msgs.Odometry) string RuleOfLidarPretreatmentOdometry3 []func(shareVars *sync.Map, data *nav_msgs.Odometry) string // 17 TopicOfLidarRoi = "/lidar_roi" RuleOfLidarRoi1 []func(data *geometry_msgs.PolygonStamped) string RuleOfLidarRoi3 []func(shareVars *sync.Map, data *geometry_msgs.PolygonStamped) string // 18 TopicOfLine1 = "/line_1" RuleOfLine11 []func(data *nav_msgs.Path) string RuleOfLine13 []func(shareVars *sync.Map, data *nav_msgs.Path) string // 19 TopicOfLine2 = "/line_2" RuleOfLine21 []func(data *nav_msgs.Path) string RuleOfLine23 []func(shareVars *sync.Map, data *nav_msgs.Path) string // 20 TopicOfMapPolygon = "/map_polygon" RuleOfMapPolygon1 []func(data *pjisuv_msgs.PolygonStamped) string RuleOfMapPolygon3 []func(shareVars *sync.Map, data *pjisuv_msgs.PolygonStamped) string // 21 TopicOfObstacleDisplay = "/obstacle_display" RuleOfObstacleDisplay1 []func(data *visualization_msgs.MarkerArray) string RuleOfObstacleDisplay3 []func(shareVars *sync.Map, data *visualization_msgs.MarkerArray) string // 22 TopicOfPjControlPub = "/pj_control_pub" RuleOfPjControlPub1 []func(data *pjisuv_msgs.CommonVehicleCmd) string RuleOfPjControlPub3 []func(shareVars *sync.Map, data *pjisuv_msgs.CommonVehicleCmd) string // 23 TopicOfPointsCluster = "/points_cluster" RuleOfPointsCluster1 []func(data *sensor_msgs.PointCloud2) string RuleOfPointsCluster3 []func(shareVars *sync.Map, data *sensor_msgs.PointCloud2) string // 24 TopicOfPointsConcat = "/points_concat" RuleOfPointsConcat1 []func(data *sensor_msgs.PointCloud2) string RuleOfPointsConcat3 []func(shareVars *sync.Map, data *sensor_msgs.PointCloud2) string // 25 TopicOfReferenceDisplay = "/reference_display" RuleOfReferenceDisplay1 []func(data *nav_msgs.Path) string RuleOfReferenceDisplay3 []func(shareVars *sync.Map, data *nav_msgs.Path) string // 26 TopicOfReferenceTrajectory = "/reference_trajectory" RuleOfReferenceTrajectory1 []func(data *pjisuv_msgs.Trajectory) string RuleOfReferenceTrajectory3 []func(shareVars *sync.Map, data *pjisuv_msgs.Trajectory) string // 27 TopicOfRoiPoints = "/roi/points" RuleOfRoiPoints1 []func(data *sensor_msgs.PointCloud2) string RuleOfRoiPoints3 []func(shareVars *sync.Map, data *sensor_msgs.PointCloud2) string // 28 TopicOfRoiPolygon = "/roi/polygon" RuleOfRoiPolygon1 []func(data *nav_msgs.Path) string RuleOfRoiPolygon3 []func(shareVars *sync.Map, data *nav_msgs.Path) string // 29 TopicOfTf = "/tf" RuleOfTf1 []func(data *tf2_msgs.TFMessage) string RuleOfTf3 []func(shareVars *sync.Map, data *tf2_msgs.TFMessage) string // 30 TopicOfTpperception = "/tpperception" RuleOfTpperception1 []func(data *pjisuv_msgs.PerceptionObjects) string RuleOfTpperception3 []func(shareVars *sync.Map, data *pjisuv_msgs.PerceptionObjects) string // 31 TopicOfTpperceptionVis = "/tpperception/vis" RuleOfTpperceptionVis1 []func(data *visualization_msgs.MarkerArray) string RuleOfTpperceptionVis3 []func(shareVars *sync.Map, data *visualization_msgs.MarkerArray) string // 32 TopicOfTprouteplan = "/tprouteplan" RuleOfTprouteplan1 []func(data *pjisuv_msgs.RoutePlan) string RuleOfTprouteplan3 []func(shareVars *sync.Map, data *pjisuv_msgs.RoutePlan) string // 33 TopicOfTrajectoryDisplay = "/trajectory_display" RuleOfTrajectoryDisplay1 []func(data *nav_msgs.Path) string RuleOfTrajectoryDisplay3 []func(shareVars *sync.Map, data *nav_msgs.Path) string // 34 TopicOfUngroundCloudpoints = "/unground_cloudpoints" RuleOfUngroundCloudpoints1 []func(data *sensor_msgs.PointCloud2) string RuleOfUngroundCloudpoints3 []func(shareVars *sync.Map, data *sensor_msgs.PointCloud2) string // 35 TopicOfCameraImage = "/camera_image" RuleOfCameraImage1 []func(data *sensor_msgs.Image) string RuleOfCameraImage3 []func(shareVars *sync.Map, data *sensor_msgs.Image) string // 36 TopicOfDataRead = "/data_read" RuleOfDataRead1 []func(data *pjisuv_msgs.Retrieval) string RuleOfDataRead3 []func(shareVars *sync.Map, data *pjisuv_msgs.Retrieval) string // 37 TopicOfPjiGps = "/pji_gps" RuleOfPjiGps1 []func(data *pjisuv_msgs.PerceptionLocalization) string RuleOfPjiGps3 []func(shareVars *sync.Map, data *pjisuv_msgs.PerceptionLocalization) string // 38 TopicOfFaultInfo = "/fault_info" RuleOfFaultInfo1 []func(data *pjisuv_msgs.FaultVec) string RuleOfFaultInfo3 []func(shareVars *sync.Map, data *pjisuv_msgs.FaultVec) string //39 TopicOfPjVehicleFdbPub = "/pj_vehicle_fdb_pub" RuleOfPjVehicleFdbPub1 []func(data *pjisuv_msgs.VehicleFdb) string RuleOfPjVehicleFdbPub3 []func(shareVars *sync.Map, data *pjisuv_msgs.VehicleFdb) string //40 TopicOfEndPointMessage = "/end_point_message" RuleOfEndPointMessage1 []func(data *geometry_msgs.Point) string RuleOfEndPointMessage3 []func(shareVars *sync.Map, data *geometry_msgs.Point) string // todo 这里是全量的topic,添加topic则需要同时在下面的数组添加;也需要在produce_window.go中添加新的订阅者 AllTopics = []string{ TopicOfCicvTicker, // 0 TopicOfAmrPose, // 1 TopicOfBoundingBoxesFast, // 2 TopicOfCameraFault, // 3 TopicOfCanData, // 4 TopicOfCh128x1LslidarPointCloud, // 5 TopicOfCh64wLLslidarPointCloud, // 6 TopicOfCh64wLScan, // 7 TopicOfCh64wRLslidarPointCloud, // 8 TopicOfCh64wRScan, // 9 TopicOfCicvLidarclusterMovingObjects, // 10 TopicOfCicvAmrTrajectory, // 11 TopicOfCicvLocation, // 12 TopicOfCloudClusters, // 13 TopicOfHeartbeatInfo, // 14 TopicOfLidarPretreatmentCost, // 15 TopicOfLidarPretreatmentOdometry, // 16 TopicOfLidarRoi, // 17 TopicOfLine1, // 18 TopicOfLine2, // 19 TopicOfMapPolygon, // 20 TopicOfObstacleDisplay, // 21 TopicOfPjControlPub, // 22 TopicOfPointsCluster, // 23 TopicOfPointsConcat, // 24 TopicOfReferenceDisplay, // 25 TopicOfReferenceTrajectory, // 26 TopicOfRoiPoints, // 27 TopicOfRoiPolygon, // 28 TopicOfTf, // 29 TopicOfTpperception, // 30 TopicOfTpperceptionVis, // 31 TopicOfTprouteplan, // 32 TopicOfTrajectoryDisplay, // 33 TopicOfUngroundCloudpoints, // 34 TopicOfCameraImage, // 35 TopicOfDataRead, // 36 TopicOfPjiGps, // 37 TopicOfFaultInfo, // 38 TopicOfPjVehicleFdbPub, // 39 TopicOfEndPointMessage, // 40 } AllTopicsNumber = len(AllTopics) )