Forráskód Böngészése

feat:根据任务调度&采集话题

HeWang 2 hónapja
szülő
commit
891727e90f

+ 177 - 0
aarch64/jili/Gart-cloud-config.yaml

@@ -0,0 +1,177 @@
+---
+
+refresh-cloud-config: false
+compress-bag: false
+clean-before-start: false
+monitor:
+  url: http://36.110.106.142:12341/web_server/monitor/insert
+platform:
+  url-device-auth: http://1.202.169.139:8081/device/auth
+  url-task-poll: http://1.202.169.139:8081/device/task/poll
+#  url-task: http://1.202.169.139:8081/device/task
+  url-task:  http://82.156.39.136:8085/bservice/device/task
+  ak: guoqi
+  sk: 64fd3e1ffe3476e9e81f06cadd9da6dea1b428716da71545ad037a2fb3aefcb1
+full-collect: true
+bag-number: 120 # 无人驾驶比赛期间,这里不需要缓存
+config-refresh-interval: 60
+disk:
+  name: /dev/vdb # 磁盘名称
+  used: 900000000000 # 磁盘占用阈值,单位bytes
+  path:
+    - /mnt/media/sda1/cicv-data-closedloop
+bag-data-dir: /mnt/media/sda1/cicv-data-closedloop/data/
+bag-copy-dir: /mnt/media/sda1/cicv-data-closedloop/copy/
+time-to-label-json-path: /mnt/media/sda1/cicv-data-closedloop/timeToLabel.json
+triggers-dir: /mnt/media/sda1/cicv-data-closedloop/triggers/
+time-window-send-gap: 6
+tcp-port: 12340
+rpc-port: 12341
+ros:
+  master-address: 192.168.1.104:11311
+  nodes:
+    - /camera_output
+    - /ins
+    - /lidar_pretreatment
+    - /sensorfusion
+    - /control
+
+# /camera_image,/cicv_amr_trajectory,/pj_control_pub,/data_read,/tftrafficlight,/cicv_amr_trajectory,/trajectory_display,/reference_display,/reference_trajectory,/tprouteplan,/map_polygon,/vehicle_info,/target_line,/parking_line,/station_status,/pj_control_pub,/pj_control_debug_pub,/tar_traj_pub,/park_task,/parking_line,/map_display,/v2x_planner,/end_point_message,/heartbeat_info,/fault_info,/planning_fault_info,/nodefault_info,/points_concat,/tpperception,/cicv_location,/tpperception,/pull_over,/pj_vehicle_fdb_pub,/pre_line,/target_line,/amr_pose,/destination_pose,/lidar_roi,/obstacle_display,/target_point_pub,/fusion/traffic_light,/roi/polygon,/tpperception/vis
+hosts:
+  - name: node1
+    ip: 192.168.1.104
+    rosbag:
+      path: "/opt/ros/melodic/bin/rosbag"
+      envs:
+        - "LD_LIBRARY_PATH=/opt/ros/melodic/lib:/usr/lib::/usr/lib:/userdata/third_lib/libaicc"
+        - "ROS_ETC_DIR=/opt/ros/melodic/etc/ros"
+        - "USER=root"
+        - "ROS_OS_OVERRIDE=openembedded"
+        - "PWD=/mnt/media/sda1/cicv-data-closedloop"
+        - "HOME=/home/root"
+        - "CMAKE_PREFIX_PATH=/opt/ros/melodic:/usr"
+        - "ROS_ROOT=/opt/ros/melodic/share/ros"
+        - "ROS_MASTER_URI=http://192.168.1.104:11311"
+        - "ROS_VERSION=1"
+        - "ROS_PYTHON_VERSION=2"
+        - "ROS_IP=192.168.1.104"
+        - "PYTHONPATH=/opt/ros/melodic/lib/python2.7/site-packages:/usr/lib/python2.7/site-packages"
+        - "ROS_PACKAGE_PATH=/opt/ros/melodic/share"
+        - "PATH=/opt/ros/melodic/bin:/usr/bin/cyber/tools/cyber_service:/usr/bin/cyber/tools/cyber_node:/usr/bin/cyber/tools/cyber_channel:/usr/bin/cyber/tools/cyber_launch:/usr/bin/cyber/tools/cyber_monitor:/usr/bin/cyber/tools/cyber_recorder:/apollo/bazel-bin/cyber:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin"
+        - "PKG_CONFIG_PATH=/usr/lib/pkgconfig"
+        - "ROS_DISTRO=melodic"
+    topics:
+      - /camera_image # /camera_output
+      - /cicv_amr_trajectory
+      - /pj_control_pub # /control
+      - /data_read  # gart多功能车没有(需亚伦部署)
+      - /tftrafficlight
+      - /trajectory_display
+      - /reference_display
+      - /reference_trajectory
+      - /tprouteplan
+      - /map_polygon
+      - /vehicle_info
+      - /target_line
+      - /parking_line
+      - /station_status
+      - /pj_control_pub
+      - /pj_control_debug_pub
+      - /tar_traj_pub
+      - /park_task
+      - /parking_line
+      - /map_display
+      - /v2x_planner
+      - /end_point_message
+      - /heartbeat_info
+      - /fault_info
+      - /planning_fault_info # gart多功能车没有
+      - /nodefault_info
+  - name: node2
+    ip: 192.168.1.105
+    rosbag:
+      path: "/opt/ros/melodic/bin/rosbag"
+      envs:
+        - "LD_LIBRARY_PATH=/opt/ros/melodic/lib:/usr/lib::/usr/lib:/userdata/third_lib"
+        - "ROS_ETC_DIR=/opt/ros/melodic/etc/ros"
+        - "USER=root"
+        - "ROS_OS_OVERRIDE=openembedded"
+        - "PWD=/mnt/media/sda1/cicv-data-closedloop"
+        - "HOME=/home/root"
+        - "CMAKE_PREFIX_PATH=/opt/ros/melodic:/usr"
+        - "ROS_ROOT=/opt/ros/melodic/share/ros"
+        - "ROS_MASTER_URI=http://192.168.1.104:11311"
+        - "ROS_VERSION=1"
+        - "ROS_PYTHON_VERSION=2"
+        - "ROS_IP=192.168.1.105"
+        - "PYTHONPATH=/opt/ros/melodic/lib/python2.7/site-packages:/usr/lib/python2.7/site-packages"
+        - "ROS_PACKAGE_PATH=/opt/ros/melodic/share"
+        - "PATH=/opt/ros/melodic/bin:/usr/bin/cyber/tools/cyber_service:/usr/bin/cyber/tools/cyber_node:/usr/bin/cyber/tools/cyber_channel:/usr/bin/cyber/tools/cyber_launch:/usr/bin/cyber/tools/cyber_monitor:/usr/bin/cyber/tools/cyber_recorder:/apollo/bazel-bin/cyber:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin "
+        - "PKG_CONFIG_PATH=/usr/lib/pkgconfig"
+        - "ROS_DISTRO=melodic"
+    topics:
+      - /points_concat  # /lidar_pretreatment
+      - /tpperception # /sensorfusion
+      - /cicv_location  # /ins
+      - /tpperception
+      - /pull_over
+      - /pj_vehicle_fdb_pub
+      - /pre_line
+      - /target_line
+      - /amr_pose
+      - /destination_pose
+      - /lidar_roi
+      - /obstacle_display
+      - /target_point_pub
+      - /fusion/traffic_light  # gart多功能车没有
+      - /roi/polygon
+      - /tpperception/vis  # gart多功能车没有
+triggers:
+  - label: rapidaccel
+    topics:
+      - /tpperception
+      - /points_concat
+      - /cicv_location
+      - /camera_image
+  - label: brake
+    topics:
+      - /tpperception
+      - /points_concat
+      - /cicv_location
+      - /camera_image
+  - label: EmergencyStop
+    topics:
+      - /tpperception
+      - /points_concat
+      - /cicv_location
+      - /camera_image
+  - label: AutoDLimit
+    topics:
+      - /tpperception
+      - /points_concat
+      - /cicv_location
+      - /camera_image
+  - label: lanechange
+    topics:
+      - /tpperception
+      - /points_concat
+      - /cicv_location
+      - /camera_image
+  - label: brakefault
+    topics:
+      - /tpperception
+      - /points_concat
+      - /cicv_location
+      - /camera_image
+  - label: takeover
+    topics:
+      - /tpperception
+      - /points_concat
+      - /cicv_location
+      - /camera_image
+  - label: TTC
+    topics:
+      - /tpperception
+      - /points_concat
+      - /cicv_location
+      - /camera_image

+ 23 - 0
aarch64/jili/Gart-soc1-local-config.yaml

@@ -0,0 +1,23 @@
+# 是否联通互联网
+internet: true
+# 节点名称和IP
+node:
+  name: node1
+  ip: 192.168.1.104
+# 数据闭环平台参数
+equipment-no: Gart
+secret-key: gart
+# 获取oss连接信息的接口url
+url-get-oss-config: http://36.110.106.156:18379/oss/config?token=nXonLUcMtGcrQqqKiyygIwyVbvizE0wD
+# 数据前缀
+oss-base-prefix: jili/
+# oss上的配置文件的名称
+cloud-config-filename: cloud-config.yaml
+# 将oss上的配置文件下载到本地的路径
+cloud-config-local-path: /mnt/media/sda1/cicv-data-closedloop/config/cloud-config.yaml
+#cloud-config-local-path: D:\Project\cicv_data_closed_loop\aarch64\jili\多功能车-cloud-config.yaml
+restart-cmd:
+  dir: "/mnt/media/sda1/cicv-data-closedloop/"
+  name: "sh"
+  args:
+    - "start-soc1.sh"

+ 23 - 0
aarch64/jili/Gart-soc2-local-config.yaml

@@ -0,0 +1,23 @@
+# 是否联通互联网
+internet: true
+# 节点名称和IP
+node:
+  name: node2
+  ip: 192.168.1.105
+# 数据闭环平台参数
+equipment-no: Gart
+secret-key: gart
+# 获取oss连接信息的接口url
+url-get-oss-config: http://36.110.106.156:18379/oss/config?token=nXonLUcMtGcrQqqKiyygIwyVbvizE0wD
+# 数据前缀
+oss-base-prefix: jili/
+# oss上的配置文件的名称
+cloud-config-filename: cloud-config.yaml
+# 将oss上的配置文件下载到本地的路径
+cloud-config-local-path: /mnt/media/sda1/cicv-data-closedloop/config/cloud-config.yaml
+#cloud-config-local-path: D:\Project\cicv_data_closed_loop\aarch64\jili\多功能车-cloud-config.yaml
+restart-cmd:
+  dir: "/mnt/media/sda1/cicv-data-closedloop/"
+  name: "sh"
+  args:
+    - "start-soc2.sh"

+ 29 - 25
aarch64/jili/common/service/disk_clean.go

@@ -2,7 +2,6 @@ package service
 
 import (
 	commonConfig "cicv-data-closedloop/aarch64/jili/common/config"
-	masterConfig "cicv-data-closedloop/aarch64/jili/master/config"
 	"cicv-data-closedloop/common/config/c_log"
 	"cicv-data-closedloop/common/domain"
 	"cicv-data-closedloop/common/entity"
@@ -33,7 +32,8 @@ func DiskClean() {
 		// 1 获取磁盘占用
 		diskUsed, _ := util.GetDiskUsed(commonConfig.CloudConfig.Disk.Name)
 		if diskUsed > commonConfig.CloudConfig.Disk.Used {
-			policy := commonConfig.PlatformConfig.TaskCachePolicy
+			//policy := commonConfig.PlatformConfig.TaskCachePolicy
+			policy := "STOP"
 			c_log.GlobalLogger.Errorf("磁盘占用 %v 超过 %v,触发删除规则 %v", diskUsed, commonConfig.CloudConfig.Disk.Used, policyToDescription[policy])
 			if policy == "TTL" {
 				// 1 获取时间窗口队列中的第二个
@@ -45,17 +45,20 @@ func DiskClean() {
 				if len(entity.TimeWindowConsumerQueue) > 2 {
 					deleteTimeWindow(len(entity.TimeWindowConsumerQueue) - 1)
 				}
-			} else if policy == "LRU" {
-				// 3 获取优先级最低的时间窗口
-				if len(entity.TimeWindowConsumerQueue) > 2 {
-					indexToRemove := getIndexToRemoveForLRU()
-					if indexToRemove != -1 {
-						deleteTimeWindow(indexToRemove)
-					}
-				}
 			} else {
 				c_log.GlobalLogger.Error("未知的缓存策略:", policy)
 			}
+
+			//else if policy == "LRU" {
+			//	// 3 获取优先级最低的时间窗口
+			//	if len(entity.TimeWindowConsumerQueue) > 2 {
+			//		indexToRemove := getIndexToRemoveForLRU()
+			//		if indexToRemove != -1 {
+			//			deleteTimeWindow(indexToRemove)
+			//		}
+			//	}
+			//}
+
 		}
 	}
 }
@@ -75,18 +78,19 @@ func deleteTimeWindow(indexToRemove int) {
 	}
 }
 
-func getIndexToRemoveForLRU() int {
-	lru := commonConfig.PlatformConfig.Lru
-	i := len(lru) - 1
-	for i >= 0 {
-		for i2, window := range entity.TimeWindowConsumerQueue {
-			for _, label := range window.Labels {
-				value, _ := masterConfig.LabelMapTriggerId.Load(label)
-				if value == lru[i] {
-					return i2
-				}
-			}
-		}
-	}
-	return -1
-}
+//func getIndexToRemoveForLRU() int {
+//	//lru := commonConfig.PlatformConfig.Lru
+//	lru := commonConfig.PlatformConfig.Lru
+//	i := len(lru) - 1
+//	for i >= 0 {
+//		for i2, window := range entity.TimeWindowConsumerQueue {
+//			for _, label := range window.Labels {
+//				value, _ := masterConfig.LabelMapTriggerId.Load(label)
+//				if value == lru[i] {
+//					return i2
+//				}
+//			}
+//		}
+//	}
+//	return -1
+//}

+ 2 - 2
aarch64/jili/多功能车-test-local-config.yaml

@@ -5,8 +5,8 @@ node:
   name: node1
   ip: 192.168.1.102
 # 数据闭环平台参数
-equipment-no: 1
-secret-key: stringstringstrin
+equipment-no: Gart
+secret-key: gart
 # 获取oss连接信息的接口url
 url-get-oss-config: http://36.110.106.156:18379/oss/config?token=nXonLUcMtGcrQqqKiyygIwyVbvizE0wD
 # 数据前缀

+ 6 - 6
test/oss_test.go

@@ -90,15 +90,15 @@ func TestDeleteDir(t *testing.T) {
 
 func TestOssConnect(t *testing.T) {
 	// 1. 上传文件到oss
-	//err := commonConfig.OssBucket.PutObjectFromFile("test/Brake.go", "D:\\\\cloud-config-2.yaml")
-	//if err != nil {
-	//	panic(err)
-	//}
-	// 2. 下载oss文件到本地
-	err := commonConfig.OssBucket.GetObjectToFile("test/cloud-config.yaml", "D:\\cloud-config-3.yaml")
+	err := commonConfig.OssBucket.PutObjectFromFile("test/Brake.go", "D:\\\\cloud-config-2.yaml")
 	if err != nil {
 		panic(err)
 	}
+	// 2. 下载oss文件到本地
+	//err := commonConfig.OssBucket.GetObjectToFile("test/cloud-config.yaml", "D:\\cloud-config-3.yaml")
+	//if err != nil {
+	//	panic(err)
+	//}
 	//err := commonConfig.OssBucket.GetObjectToFile("oss-accesslog/dcl2025-04-01-11-00-00-0001", "D:\\dcl2025")
 	//if err != nil {
 	//	panic(err)