LingxinMeng 10 bulan lalu
induk
melakukan
0c8bd2b69a

+ 1 - 4
aarch64/pjibot_delivery/common/config/c_cloud.go

@@ -61,14 +61,11 @@ type CollectLimitStruct struct {
 
 type cloudConfig struct {
 	CollectLimit          CollectLimitStruct `yaml:"collect-limit"`
-	MapBufFiles           []string           `yaml:"map-buf-files"`
+	HasOneMsgTopic        bool               `yaml:"has-one-msg-topic"` // 是否存在只发单帧的话题
 	FullCollect           bool               `yaml:"full-collect"`
 	ConfigRefreshInterval int                `yaml:"config-refresh-interval"` // 配置刷新时间间隔
 	BagNumber             int                `yaml:"bag-number"`
 	TimeWindowSendGap     int                `yaml:"time-window-send-gap"` // 主节点向从节点发送窗口的最小时间间隔
-	MapBagPath            string             `yaml:"map-bag-path"`
-	TfstaticBagPath       string             `yaml:"tfstatic-bag-path"`
-	CostmapBagPath        string             `yaml:"costmap-bag-path"`
 	BagDataDir            string             `yaml:"bag-data-dir"`
 	BagCopyDir            string             `yaml:"bag-copy-dir"`
 	TriggersDir           string             `yaml:"triggers-dir"`

+ 113 - 66
aarch64/pjibot_delivery/common/config/yaml/配送机器人默认配置文件-cloud-config.yaml

@@ -11,9 +11,7 @@ config-refresh-interval: 60
 disk:
   name: /dev/sda1 # 磁盘名称
   used: 60000000000 # 磁盘占用阈值,单位bytes
-map-bag-path: /home/pji/cicv-data-closedloop/map.bag
-tfstatic-bag-path: /home/pji/cicv-data-closedloop/tf_static.bag
-costmap-bag-path: /home/pji/cicv-data-closedloop/costmap.bag
+has-one-msg: false
 bag-data-dir: /home/pji/cicv-data-closedloop/data/
 bag-copy-dir: /home/pji/cicv-data-closedloop/copy/
 triggers-dir: /home/pji/cicv-data-closedloop/triggers/
@@ -82,78 +80,127 @@ full-collect: true # 控制是否根据不同的触发器采集不通的topic,
 triggers:
   - label: detectfault
     topics:
-      - /camera/color/image_raw
-      - /camera/depth/points
-      - /diagnostics
-      - /locate_info
-      - /obstacle_detection
-      - /odom
-      - /move_base/global_costmap/costmap
-      - /move_base/global_costmap/costmap_updates
-      - /scan_map_icp_amcl_node/scan_point_transformed
+      - /robot_pose # /location_realtime
+      - /robot/realtime_cost_map_ # /cloud_to_map_node
+      - /tracking/objects # /tracking/imm_ukf_pda_track
+      - /robot/TaskInfo # /task_decision
+      - /robot/targetposition # /task_decision、/trajectorygenerator
+      - /wheel # /trii_receive
+      - /wheel_odom # /wheel_odom
+      - /robot/global_trajectory_ # /lanelet_routing_node
+      - /robot/target_trajectories # /trajectorygenerator
+      - /robot/evaluator_trajectories # /trajectoryevaluator
+      - /robot/final_trajectory # /trajectoryevaluator
+      - /nav/task_feedback_info # /task_decision、/purepursuit、/lanelet_routing_node、/trajectorygenerator、/trajectoryevaluator
+      - /cmd_vel # /purepursuit、/auto_dock、/engine
+      - /imu # /trii_receive
+      - /points_cluster # /lidar_euclidean_cluster_detect
+      - /nav/task_feedback_info # /task_decision、/purepursuit、/lanelet_routing_node、/trajectorygenerator、/trajectoryevaluator
   - label: unstabledriving
     topics:
-      - /camera/color/image_raw
-      - /camera/depth/points
-      - /diagnostics
-      - /locate_info
-      - /obstacle_detection
-      - /odom
-      - /move_base/global_costmap/costmap
-      - /move_base/global_costmap/costmap_updates
-      - /scan_map_icp_amcl_node/scan_point_transformed
+      - /robot_pose # /location_realtime
+      - /robot/realtime_cost_map_ # /cloud_to_map_node
+      - /tracking/objects # /tracking/imm_ukf_pda_track
+      - /robot/TaskInfo # /task_decision
+      - /robot/targetposition # /task_decision、/trajectorygenerator
+      - /wheel # /trii_receive
+      - /wheel_odom # /wheel_odom
+      - /robot/global_trajectory_ # /lanelet_routing_node
+      - /robot/target_trajectories # /trajectorygenerator
+      - /robot/evaluator_trajectories # /trajectoryevaluator
+      - /robot/final_trajectory # /trajectoryevaluator
+      - /nav/task_feedback_info # /task_decision、/purepursuit、/lanelet_routing_node、/trajectorygenerator、/trajectoryevaluator
+      - /cmd_vel # /purepursuit、/auto_dock、/engine
+      - /imu # /trii_receive
+      - /points_cluster # /lidar_euclidean_cluster_detect
+      - /nav/task_feedback_info # /task_decision、/purepursuit、/lanelet_routing_node、/trajectorygenerator、/trajectoryevaluator
   - label: locationfailed
     topics:
-      - /camera/color/image_raw
-      - /camera/depth/points
-      - /diagnostics
-      - /locate_info
-      - /obstacle_detection
-      - /odom
-      - /move_base/global_costmap/costmap
-      - /move_base/global_costmap/costmap_updates
-      - /scan_map_icp_amcl_node/scan_point_transformed
+      - /robot_pose # /location_realtime
+      - /robot/realtime_cost_map_ # /cloud_to_map_node
+      - /tracking/objects # /tracking/imm_ukf_pda_track
+      - /robot/TaskInfo # /task_decision
+      - /robot/targetposition # /task_decision、/trajectorygenerator
+      - /wheel # /trii_receive
+      - /wheel_odom # /wheel_odom
+      - /robot/global_trajectory_ # /lanelet_routing_node
+      - /robot/target_trajectories # /trajectorygenerator
+      - /robot/evaluator_trajectories # /trajectoryevaluator
+      - /robot/final_trajectory # /trajectoryevaluator
+      - /nav/task_feedback_info # /task_decision、/purepursuit、/lanelet_routing_node、/trajectorygenerator、/trajectoryevaluator
+      - /cmd_vel # /purepursuit、/auto_dock、/engine
+      - /imu # /trii_receive
+      - /points_cluster # /lidar_euclidean_cluster_detect
+      - /nav/task_feedback_info # /task_decision、/purepursuit、/lanelet_routing_node、/trajectorygenerator、/trajectoryevaluator
   - label: obstacledetection
     topics:
-      - /camera/color/image_raw
-      - /camera/depth/points
-      - /diagnostics
-      - /locate_info
-      - /obstacle_detection
-      - /odom
-      - /move_base/global_costmap/costmap
-      - /move_base/global_costmap/costmap_updates
-      - /scan_map_icp_amcl_node/scan_point_transformed
+      - /robot_pose # /location_realtime
+      - /robot/realtime_cost_map_ # /cloud_to_map_node
+      - /tracking/objects # /tracking/imm_ukf_pda_track
+      - /robot/TaskInfo # /task_decision
+      - /robot/targetposition # /task_decision、/trajectorygenerator
+      - /wheel # /trii_receive
+      - /wheel_odom # /wheel_odom
+      - /robot/global_trajectory_ # /lanelet_routing_node
+      - /robot/target_trajectories # /trajectorygenerator
+      - /robot/evaluator_trajectories # /trajectoryevaluator
+      - /robot/final_trajectory # /trajectoryevaluator
+      - /nav/task_feedback_info # /task_decision、/purepursuit、/lanelet_routing_node、/trajectorygenerator、/trajectoryevaluator
+      - /cmd_vel # /purepursuit、/auto_dock、/engine
+      - /imu # /trii_receive
+      - /points_cluster # /lidar_euclidean_cluster_detect
+      - /nav/task_feedback_info # /task_decision、/purepursuit、/lanelet_routing_node、/trajectorygenerator、/trajectoryevaluator
   - label: overspeed
     topics:
-      - /camera/color/image_raw
-      - /camera/depth/points
-      - /diagnostics
-      - /locate_info
-      - /obstacle_detection
-      - /odom
-      - /move_base/global_costmap/costmap
-      - /move_base/global_costmap/costmap_updates
-      - /scan_map_icp_amcl_node/scan_point_transformed
+      - /robot_pose # /location_realtime
+      - /robot/realtime_cost_map_ # /cloud_to_map_node
+      - /tracking/objects # /tracking/imm_ukf_pda_track
+      - /robot/TaskInfo # /task_decision
+      - /robot/targetposition # /task_decision、/trajectorygenerator
+      - /wheel # /trii_receive
+      - /wheel_odom # /wheel_odom
+      - /robot/global_trajectory_ # /lanelet_routing_node
+      - /robot/target_trajectories # /trajectorygenerator
+      - /robot/evaluator_trajectories # /trajectoryevaluator
+      - /robot/final_trajectory # /trajectoryevaluator
+      - /nav/task_feedback_info # /task_decision、/purepursuit、/lanelet_routing_node、/trajectorygenerator、/trajectoryevaluator
+      - /cmd_vel # /purepursuit、/auto_dock、/engine
+      - /imu # /trii_receive
+      - /points_cluster # /lidar_euclidean_cluster_detect
+      - /nav/task_feedback_info # /task_decision、/purepursuit、/lanelet_routing_node、/trajectorygenerator、/trajectoryevaluator
   - label: cpuoveroccupied
     topics:
-      - /camera/color/image_raw
-      - /camera/depth/points
-      - /diagnostics
-      - /locate_info
-      - /obstacle_detection
-      - /odom
-      - /move_base/global_costmap/costmap
-      - /move_base/global_costmap/costmap_updates
-      - /scan_map_icp_amcl_node/scan_point_transformed
+      - /robot_pose # /location_realtime
+      - /robot/realtime_cost_map_ # /cloud_to_map_node
+      - /tracking/objects # /tracking/imm_ukf_pda_track
+      - /robot/TaskInfo # /task_decision
+      - /robot/targetposition # /task_decision、/trajectorygenerator
+      - /wheel # /trii_receive
+      - /wheel_odom # /wheel_odom
+      - /robot/global_trajectory_ # /lanelet_routing_node
+      - /robot/target_trajectories # /trajectorygenerator
+      - /robot/evaluator_trajectories # /trajectoryevaluator
+      - /robot/final_trajectory # /trajectoryevaluator
+      - /nav/task_feedback_info # /task_decision、/purepursuit、/lanelet_routing_node、/trajectorygenerator、/trajectoryevaluator
+      - /cmd_vel # /purepursuit、/auto_dock、/engine
+      - /imu # /trii_receive
+      - /points_cluster # /lidar_euclidean_cluster_detect
+      - /nav/task_feedback_info # /task_decision、/purepursuit、/lanelet_routing_node、/trajectorygenerator、/trajectoryevaluator
   - label: memoveroccupied
     topics:
-      - /camera/color/image_raw
-      - /camera/depth/points
-      - /diagnostics
-      - /locate_info
-      - /obstacle_detection
-      - /odom
-      - /move_base/global_costmap/costmap
-      - /move_base/global_costmap/costmap_updates
-      - /scan_map_icp_amcl_node/scan_point_transformed
+      - /robot_pose # /location_realtime
+      - /robot/realtime_cost_map_ # /cloud_to_map_node
+      - /tracking/objects # /tracking/imm_ukf_pda_track
+      - /robot/TaskInfo # /task_decision
+      - /robot/targetposition # /task_decision、/trajectorygenerator
+      - /wheel # /trii_receive
+      - /wheel_odom # /wheel_odom
+      - /robot/global_trajectory_ # /lanelet_routing_node
+      - /robot/target_trajectories # /trajectorygenerator
+      - /robot/evaluator_trajectories # /trajectoryevaluator
+      - /robot/final_trajectory # /trajectoryevaluator
+      - /nav/task_feedback_info # /task_decision、/purepursuit、/lanelet_routing_node、/trajectorygenerator、/trajectoryevaluator
+      - /cmd_vel # /purepursuit、/auto_dock、/engine
+      - /imu # /trii_receive
+      - /points_cluster # /lidar_euclidean_cluster_detect
+      - /nav/task_feedback_info # /task_decision、/purepursuit、/lanelet_routing_node、/trajectorygenerator、/trajectoryevaluator

+ 87 - 89
aarch64/pjibot_delivery/master/package/service/collect_one_msg.go

@@ -1,96 +1,94 @@
 package service
 
-import (
-	"cicv-data-closedloop/aarch64/pjibot_delivery/common/config"
-	"cicv-data-closedloop/common/config/c_log"
-	"cicv-data-closedloop/common/util"
-	"os"
-)
+import commonConfig "cicv-data-closedloop/aarch64/pjibot_delivery/common/config"
 
 func CollectOneMsg() {
-	collectMap()
-	collectTfStatic()
-	collectCostmap()
-}
-
-func collectMap() {
-
-	// rosbag record -O /root/cicv-data-closedloop/map_data.bag -l 1 /map
-	ossMapBagObjectKey := config.LocalConfig.OssBasePrefix + config.LocalConfig.EquipmentNo + "/map.bag"
-
-	var command []string
-	command = append(command, "record")
-	command = append(command, "-O")
-	command = append(command, config.CloudConfig.MapBagPath)
-	command = append(command, "-l")
-	command = append(command, "1")
-	command = append(command, "/map")
-	_, s, err := util.ExecuteWithEnvAndDir(config.RosbagEnvs, config.CloudConfig.BagDataDir, config.RosbagPath, command...)
-	if err != nil {
-		c_log.GlobalLogger.Error("程序异常退出。采集/map包", command, "出错:", s, "----", err)
-		os.Exit(-1)
-	}
-	c_log.GlobalLogger.Info("采集/map包", command, "完成。")
-	config.OssMutex.Lock()
-	err = config.OssBucket.PutObjectFromFile(ossMapBagObjectKey, config.CloudConfig.MapBagPath)
-	config.OssMutex.Unlock()
-	if err != nil {
-		c_log.GlobalLogger.Error("程序异常退出。上传/map包", config.CloudConfig.MapBagPath, "->", ossMapBagObjectKey, "出错:", err)
-		os.Exit(-1)
-	}
-	c_log.GlobalLogger.Info("上传/map包", config.CloudConfig.MapBagPath, "------", ossMapBagObjectKey, "成功。")
-}
-func collectTfStatic() {
-
-	// rosbag record -O /root/cicv-data-closedloop/map_data.bag -l 1 /map
-	ossMapBagObjectKey := config.LocalConfig.OssBasePrefix + config.LocalConfig.EquipmentNo + "/tfstatic.bag"
-
-	var command []string
-	command = append(command, "record")
-	command = append(command, "-O")
-	command = append(command, config.CloudConfig.MapBagPath)
-	command = append(command, "-l")
-	command = append(command, "1")
-	command = append(command, "/tf_static")
-	_, s, err := util.ExecuteWithEnvAndDir(config.RosbagEnvs, config.CloudConfig.BagDataDir, config.RosbagPath, command...)
-	if err != nil {
-		c_log.GlobalLogger.Error("程序异常退出。采集/tf_static包", command, "出错:", s, "----", err)
-		os.Exit(-1)
+	if !commonConfig.CloudConfig.HasOneMsgTopic {
+		return
 	}
-	c_log.GlobalLogger.Info("采集/tf_static包", command, "完成。")
-	config.OssMutex.Lock()
-	err = config.OssBucket.PutObjectFromFile(ossMapBagObjectKey, config.CloudConfig.MapBagPath)
-	config.OssMutex.Unlock()
-	if err != nil {
-		c_log.GlobalLogger.Error("程序异常退出。上传/tf_static包", config.CloudConfig.MapBagPath, "->", ossMapBagObjectKey, "出错:", err)
-		os.Exit(-1)
-	}
-	c_log.GlobalLogger.Info("上传/tf_static包", config.CloudConfig.MapBagPath, "------", ossMapBagObjectKey, "成功。")
+	//collectMap()
+	//collectTfStatic()
+	//collectCostmap()
 }
-func collectCostmap() {
-
-	// rosbag record -O /root/cicv-data-closedloop/map_data.bag -l 1 /map
-	ossMapBagObjectKey := config.LocalConfig.OssBasePrefix + config.LocalConfig.EquipmentNo + "/costmap.bag"
 
-	var command []string
-	command = append(command, "record")
-	command = append(command, "-O")
-	command = append(command, config.CloudConfig.MapBagPath)
-	command = append(command, "-l")
-	command = append(command, "1")
-	command = append(command, "/move_base/global_costmap/costmap")
-	_, s, err := util.ExecuteWithEnvAndDir(config.RosbagEnvs, config.CloudConfig.BagDataDir, config.RosbagPath, command...)
-	if err != nil {
-		c_log.GlobalLogger.Error("程序异常退出。采集/move_base/global_costmap/costmap包", command, "出错:", s, "----", err)
-		os.Exit(-1)
-	}
-	c_log.GlobalLogger.Info("采集/move_base/global_costmap/costmap包", command, "完成。")
-	config.OssMutex.Lock()
-	err = config.OssBucket.PutObjectFromFile(ossMapBagObjectKey, config.CloudConfig.MapBagPath)
-	config.OssMutex.Unlock()
-	if err != nil {
-		c_log.GlobalLogger.Error("程序异常退出。上传/move_base/global_costmap/costmap包", config.CloudConfig.MapBagPath, "->", ossMapBagObjectKey, "出错:", err)
-		os.Exit(-1)
-	}
-	c_log.GlobalLogger.Info("上传/move_base/global_costmap/costmap包", config.CloudConfig.MapBagPath, "------", ossMapBagObjectKey, "成功。")
-}
+//func collectMap() {
+//
+//	// rosbag record -O /root/cicv-data-closedloop/map_data.bag -l 1 /map
+//	ossMapBagObjectKey := config.LocalConfig.OssBasePrefix + config.LocalConfig.EquipmentNo + "/map.bag"
+//
+//	var command []string
+//	command = append(command, "record")
+//	command = append(command, "-O")
+//	command = append(command, config.CloudConfig.MapBagPath)
+//	command = append(command, "-l")
+//	command = append(command, "1")
+//	command = append(command, "/map")
+//	_, s, err := util.ExecuteWithEnvAndDir(config.RosbagEnvs, config.CloudConfig.BagDataDir, config.RosbagPath, command...)
+//	if err != nil {
+//		c_log.GlobalLogger.Error("程序异常退出。采集/map包", command, "出错:", s, "----", err)
+//		os.Exit(-1)
+//	}
+//	c_log.GlobalLogger.Info("采集/map包", command, "完成。")
+//	config.OssMutex.Lock()
+//	err = config.OssBucket.PutObjectFromFile(ossMapBagObjectKey, config.CloudConfig.MapBagPath)
+//	config.OssMutex.Unlock()
+//	if err != nil {
+//		c_log.GlobalLogger.Error("程序异常退出。上传/map包", config.CloudConfig.MapBagPath, "->", ossMapBagObjectKey, "出错:", err)
+//		os.Exit(-1)
+//	}
+//	c_log.GlobalLogger.Info("上传/map包", config.CloudConfig.MapBagPath, "------", ossMapBagObjectKey, "成功。")
+//}
+//func collectTfStatic() {
+//
+//	// rosbag record -O /root/cicv-data-closedloop/map_data.bag -l 1 /map
+//	ossMapBagObjectKey := config.LocalConfig.OssBasePrefix + config.LocalConfig.EquipmentNo + "/tfstatic.bag"
+//
+//	var command []string
+//	command = append(command, "record")
+//	command = append(command, "-O")
+//	command = append(command, config.CloudConfig.MapBagPath)
+//	command = append(command, "-l")
+//	command = append(command, "1")
+//	command = append(command, "/tf_static")
+//	_, s, err := util.ExecuteWithEnvAndDir(config.RosbagEnvs, config.CloudConfig.BagDataDir, config.RosbagPath, command...)
+//	if err != nil {
+//		c_log.GlobalLogger.Error("程序异常退出。采集/tf_static包", command, "出错:", s, "----", err)
+//		os.Exit(-1)
+//	}
+//	c_log.GlobalLogger.Info("采集/tf_static包", command, "完成。")
+//	config.OssMutex.Lock()
+//	err = config.OssBucket.PutObjectFromFile(ossMapBagObjectKey, config.CloudConfig.MapBagPath)
+//	config.OssMutex.Unlock()
+//	if err != nil {
+//		c_log.GlobalLogger.Error("程序异常退出。上传/tf_static包", config.CloudConfig.MapBagPath, "->", ossMapBagObjectKey, "出错:", err)
+//		os.Exit(-1)
+//	}
+//	c_log.GlobalLogger.Info("上传/tf_static包", config.CloudConfig.MapBagPath, "------", ossMapBagObjectKey, "成功。")
+//}
+//func collectCostmap() {
+//
+//	// rosbag record -O /root/cicv-data-closedloop/map_data.bag -l 1 /map
+//	ossMapBagObjectKey := config.LocalConfig.OssBasePrefix + config.LocalConfig.EquipmentNo + "/costmap.bag"
+//
+//	var command []string
+//	command = append(command, "record")
+//	command = append(command, "-O")
+//	command = append(command, config.CloudConfig.MapBagPath)
+//	command = append(command, "-l")
+//	command = append(command, "1")
+//	command = append(command, "/move_base/global_costmap/costmap")
+//	_, s, err := util.ExecuteWithEnvAndDir(config.RosbagEnvs, config.CloudConfig.BagDataDir, config.RosbagPath, command...)
+//	if err != nil {
+//		c_log.GlobalLogger.Error("程序异常退出。采集/move_base/global_costmap/costmap包", command, "出错:", s, "----", err)
+//		os.Exit(-1)
+//	}
+//	c_log.GlobalLogger.Info("采集/move_base/global_costmap/costmap包", command, "完成。")
+//	config.OssMutex.Lock()
+//	err = config.OssBucket.PutObjectFromFile(ossMapBagObjectKey, config.CloudConfig.MapBagPath)
+//	config.OssMutex.Unlock()
+//	if err != nil {
+//		c_log.GlobalLogger.Error("程序异常退出。上传/move_base/global_costmap/costmap包", config.CloudConfig.MapBagPath, "->", ossMapBagObjectKey, "出错:", err)
+//		os.Exit(-1)
+//	}
+//	c_log.GlobalLogger.Info("上传/move_base/global_costmap/costmap包", config.CloudConfig.MapBagPath, "------", ossMapBagObjectKey, "成功。")
+//}

+ 1 - 4
aarch64/pjibot_patrol/common/config/c_cloud.go

@@ -61,14 +61,11 @@ type CollectLimitStruct struct {
 
 type cloudConfig struct {
 	CollectLimit          CollectLimitStruct `yaml:"collect-limit"`
-	MapBufFiles           []string           `yaml:"map-buf-files"`
+	HasOneMsgTopic        bool               `yaml:"has-one-msg-topic"` // 是否存在只发单帧的话题
 	FullCollect           bool               `yaml:"full-collect"`
 	ConfigRefreshInterval int                `yaml:"config-refresh-interval"` // 配置刷新时间间隔
 	BagNumber             int                `yaml:"bag-number"`
 	TimeWindowSendGap     int                `yaml:"time-window-send-gap"` // 主节点向从节点发送窗口的最小时间间隔
-	MapBagPath            string             `yaml:"map-bag-path"`
-	TfstaticBagPath       string             `yaml:"tfstatic-bag-path"`
-	CostmapBagPath        string             `yaml:"costmap-bag-path"`
 	BagDataDir            string             `yaml:"bag-data-dir"`
 	BagCopyDir            string             `yaml:"bag-copy-dir"`
 	TriggersDir           string             `yaml:"triggers-dir"`

+ 113 - 66
aarch64/pjibot_patrol/common/config/yaml/巡检机器人默认配置文件-cloud-config.yaml

@@ -11,9 +11,7 @@ config-refresh-interval: 60
 disk:
   name: /dev/nvme0n1p1 # 磁盘名称
   used: 100000000000 # 100G 磁盘占用阈值,单位bytes
-map-bag-path: /home/pji/cicv-data-closedloop/map.bag
-tfstatic-bag-path: /home/pji/cicv-data-closedloop/tf_static.bag
-costmap-bag-path: /home/pji/cicv-data-closedloop/costmap.bag
+has-one-msg-topic: false
 bag-data-dir: /home/pji/cicv-data-closedloop/data/
 bag-copy-dir: /home/pji/cicv-data-closedloop/copy/
 triggers-dir: /home/pji/cicv-data-closedloop/triggers/
@@ -82,78 +80,127 @@ full-collect: true # 控制是否根据不同的触发器采集不通的topic,
 triggers:
   - label: detectfault
     topics:
-      - /camera/color/image_raw
-      - /camera/depth/points
-      - /diagnostics
-      - /locate_info
-      - /obstacle_detection
-      - /odom
-      - /move_base/global_costmap/costmap
-      - /move_base/global_costmap/costmap_updates
-      - /scan_map_icp_amcl_node/scan_point_transformed
+      - /robot_pose # /location_realtime
+      - /robot/realtime_cost_map_ # /cloud_to_map_node
+      - /tracking/objects # /tracking/imm_ukf_pda_track
+      - /robot/TaskInfo # /task_decision
+      - /robot/targetposition # /task_decision、/trajectorygenerator
+      - /wheel # /trii_receive
+      - /wheel_odom # /wheel_odom
+      - /robot/global_trajectory_ # /lanelet_routing_node
+      - /robot/target_trajectories # /trajectorygenerator
+      - /robot/evaluator_trajectories # /trajectoryevaluator
+      - /robot/final_trajectory # /trajectoryevaluator
+      - /nav/task_feedback_info # /task_decision、/purepursuit、/lanelet_routing_node、/trajectorygenerator、/trajectoryevaluator
+      - /cmd_vel # /purepursuit、/auto_dock、/engine
+      - /imu # /trii_receive
+      - /points_cluster # /lidar_euclidean_cluster_detect
+      - /nav/task_feedback_info # /task_decision、/purepursuit、/lanelet_routing_node、/trajectorygenerator、/trajectoryevaluator
   - label: unstabledriving
     topics:
-      - /camera/color/image_raw
-      - /camera/depth/points
-      - /diagnostics
-      - /locate_info
-      - /obstacle_detection
-      - /odom
-      - /move_base/global_costmap/costmap
-      - /move_base/global_costmap/costmap_updates
-      - /scan_map_icp_amcl_node/scan_point_transformed
+      - /robot_pose # /location_realtime
+      - /robot/realtime_cost_map_ # /cloud_to_map_node
+      - /tracking/objects # /tracking/imm_ukf_pda_track
+      - /robot/TaskInfo # /task_decision
+      - /robot/targetposition # /task_decision、/trajectorygenerator
+      - /wheel # /trii_receive
+      - /wheel_odom # /wheel_odom
+      - /robot/global_trajectory_ # /lanelet_routing_node
+      - /robot/target_trajectories # /trajectorygenerator
+      - /robot/evaluator_trajectories # /trajectoryevaluator
+      - /robot/final_trajectory # /trajectoryevaluator
+      - /nav/task_feedback_info # /task_decision、/purepursuit、/lanelet_routing_node、/trajectorygenerator、/trajectoryevaluator
+      - /cmd_vel # /purepursuit、/auto_dock、/engine
+      - /imu # /trii_receive
+      - /points_cluster # /lidar_euclidean_cluster_detect
+      - /nav/task_feedback_info # /task_decision、/purepursuit、/lanelet_routing_node、/trajectorygenerator、/trajectoryevaluator
   - label: locationfailed
     topics:
-      - /camera/color/image_raw
-      - /camera/depth/points
-      - /diagnostics
-      - /locate_info
-      - /obstacle_detection
-      - /odom
-      - /move_base/global_costmap/costmap
-      - /move_base/global_costmap/costmap_updates
-      - /scan_map_icp_amcl_node/scan_point_transformed
+      - /robot_pose # /location_realtime
+      - /robot/realtime_cost_map_ # /cloud_to_map_node
+      - /tracking/objects # /tracking/imm_ukf_pda_track
+      - /robot/TaskInfo # /task_decision
+      - /robot/targetposition # /task_decision、/trajectorygenerator
+      - /wheel # /trii_receive
+      - /wheel_odom # /wheel_odom
+      - /robot/global_trajectory_ # /lanelet_routing_node
+      - /robot/target_trajectories # /trajectorygenerator
+      - /robot/evaluator_trajectories # /trajectoryevaluator
+      - /robot/final_trajectory # /trajectoryevaluator
+      - /nav/task_feedback_info # /task_decision、/purepursuit、/lanelet_routing_node、/trajectorygenerator、/trajectoryevaluator
+      - /cmd_vel # /purepursuit、/auto_dock、/engine
+      - /imu # /trii_receive
+      - /points_cluster # /lidar_euclidean_cluster_detect
+      - /nav/task_feedback_info # /task_decision、/purepursuit、/lanelet_routing_node、/trajectorygenerator、/trajectoryevaluator
   - label: obstacledetection
     topics:
-      - /camera/color/image_raw
-      - /camera/depth/points
-      - /diagnostics
-      - /locate_info
-      - /obstacle_detection
-      - /odom
-      - /move_base/global_costmap/costmap
-      - /move_base/global_costmap/costmap_updates
-      - /scan_map_icp_amcl_node/scan_point_transformed
+      - /robot_pose # /location_realtime
+      - /robot/realtime_cost_map_ # /cloud_to_map_node
+      - /tracking/objects # /tracking/imm_ukf_pda_track
+      - /robot/TaskInfo # /task_decision
+      - /robot/targetposition # /task_decision、/trajectorygenerator
+      - /wheel # /trii_receive
+      - /wheel_odom # /wheel_odom
+      - /robot/global_trajectory_ # /lanelet_routing_node
+      - /robot/target_trajectories # /trajectorygenerator
+      - /robot/evaluator_trajectories # /trajectoryevaluator
+      - /robot/final_trajectory # /trajectoryevaluator
+      - /nav/task_feedback_info # /task_decision、/purepursuit、/lanelet_routing_node、/trajectorygenerator、/trajectoryevaluator
+      - /cmd_vel # /purepursuit、/auto_dock、/engine
+      - /imu # /trii_receive
+      - /points_cluster # /lidar_euclidean_cluster_detect
+      - /nav/task_feedback_info # /task_decision、/purepursuit、/lanelet_routing_node、/trajectorygenerator、/trajectoryevaluator
   - label: overspeed
     topics:
-      - /camera/color/image_raw
-      - /camera/depth/points
-      - /diagnostics
-      - /locate_info
-      - /obstacle_detection
-      - /odom
-      - /move_base/global_costmap/costmap
-      - /move_base/global_costmap/costmap_updates
-      - /scan_map_icp_amcl_node/scan_point_transformed
+      - /robot_pose # /location_realtime
+      - /robot/realtime_cost_map_ # /cloud_to_map_node
+      - /tracking/objects # /tracking/imm_ukf_pda_track
+      - /robot/TaskInfo # /task_decision
+      - /robot/targetposition # /task_decision、/trajectorygenerator
+      - /wheel # /trii_receive
+      - /wheel_odom # /wheel_odom
+      - /robot/global_trajectory_ # /lanelet_routing_node
+      - /robot/target_trajectories # /trajectorygenerator
+      - /robot/evaluator_trajectories # /trajectoryevaluator
+      - /robot/final_trajectory # /trajectoryevaluator
+      - /nav/task_feedback_info # /task_decision、/purepursuit、/lanelet_routing_node、/trajectorygenerator、/trajectoryevaluator
+      - /cmd_vel # /purepursuit、/auto_dock、/engine
+      - /imu # /trii_receive
+      - /points_cluster # /lidar_euclidean_cluster_detect
+      - /nav/task_feedback_info # /task_decision、/purepursuit、/lanelet_routing_node、/trajectorygenerator、/trajectoryevaluator
   - label: cpuoveroccupied
     topics:
-      - /camera/color/image_raw
-      - /camera/depth/points
-      - /diagnostics
-      - /locate_info
-      - /obstacle_detection
-      - /odom
-      - /move_base/global_costmap/costmap
-      - /move_base/global_costmap/costmap_updates
-      - /scan_map_icp_amcl_node/scan_point_transformed
+      - /robot_pose # /location_realtime
+      - /robot/realtime_cost_map_ # /cloud_to_map_node
+      - /tracking/objects # /tracking/imm_ukf_pda_track
+      - /robot/TaskInfo # /task_decision
+      - /robot/targetposition # /task_decision、/trajectorygenerator
+      - /wheel # /trii_receive
+      - /wheel_odom # /wheel_odom
+      - /robot/global_trajectory_ # /lanelet_routing_node
+      - /robot/target_trajectories # /trajectorygenerator
+      - /robot/evaluator_trajectories # /trajectoryevaluator
+      - /robot/final_trajectory # /trajectoryevaluator
+      - /nav/task_feedback_info # /task_decision、/purepursuit、/lanelet_routing_node、/trajectorygenerator、/trajectoryevaluator
+      - /cmd_vel # /purepursuit、/auto_dock、/engine
+      - /imu # /trii_receive
+      - /points_cluster # /lidar_euclidean_cluster_detect
+      - /nav/task_feedback_info # /task_decision、/purepursuit、/lanelet_routing_node、/trajectorygenerator、/trajectoryevaluator
   - label: memoveroccupied
     topics:
-      - /camera/color/image_raw
-      - /camera/depth/points
-      - /diagnostics
-      - /locate_info
-      - /obstacle_detection
-      - /odom
-      - /move_base/global_costmap/costmap
-      - /move_base/global_costmap/costmap_updates
-      - /scan_map_icp_amcl_node/scan_point_transformed
+      - /robot_pose # /location_realtime
+      - /robot/realtime_cost_map_ # /cloud_to_map_node
+      - /tracking/objects # /tracking/imm_ukf_pda_track
+      - /robot/TaskInfo # /task_decision
+      - /robot/targetposition # /task_decision、/trajectorygenerator
+      - /wheel # /trii_receive
+      - /wheel_odom # /wheel_odom
+      - /robot/global_trajectory_ # /lanelet_routing_node
+      - /robot/target_trajectories # /trajectorygenerator
+      - /robot/evaluator_trajectories # /trajectoryevaluator
+      - /robot/final_trajectory # /trajectoryevaluator
+      - /nav/task_feedback_info # /task_decision、/purepursuit、/lanelet_routing_node、/trajectorygenerator、/trajectoryevaluator
+      - /cmd_vel # /purepursuit、/auto_dock、/engine
+      - /imu # /trii_receive
+      - /points_cluster # /lidar_euclidean_cluster_detect
+      - /nav/task_feedback_info # /task_decision、/purepursuit、/lanelet_routing_node、/trajectorygenerator、/trajectoryevaluator

+ 87 - 89
aarch64/pjibot_patrol/master/package/service/collect_one_msg.go

@@ -1,96 +1,94 @@
 package service
 
-import (
-	"cicv-data-closedloop/aarch64/pjibot_patrol/common/config"
-	"cicv-data-closedloop/common/config/c_log"
-	"cicv-data-closedloop/common/util"
-	"os"
-)
+import commonConfig "cicv-data-closedloop/aarch64/pjibot_patrol/common/config"
 
 func CollectOneMsg() {
-	collectMap()
-	collectTfStatic()
-	collectCostmap()
-}
-
-func collectMap() {
-
-	// rosbag record -O /root/cicv-data-closedloop/map_data.bag -l 1 /map
-	ossMapBagObjectKey := config.LocalConfig.OssBasePrefix + config.LocalConfig.EquipmentNo + "/map.bag"
-
-	var command []string
-	command = append(command, "record")
-	command = append(command, "-O")
-	command = append(command, config.CloudConfig.MapBagPath)
-	command = append(command, "-l")
-	command = append(command, "1")
-	command = append(command, "/map")
-	_, s, err := util.ExecuteWithEnvAndDir(config.RosbagEnvs, config.CloudConfig.BagDataDir, config.RosbagPath, command...)
-	if err != nil {
-		c_log.GlobalLogger.Error("程序异常退出。采集/map包", command, "出错:", s, "----", err)
-		os.Exit(-1)
-	}
-	c_log.GlobalLogger.Info("采集/map包", command, "完成。")
-	config.OssMutex.Lock()
-	err = config.OssBucket.PutObjectFromFile(ossMapBagObjectKey, config.CloudConfig.MapBagPath)
-	config.OssMutex.Unlock()
-	if err != nil {
-		c_log.GlobalLogger.Error("程序异常退出。上传/map包", config.CloudConfig.MapBagPath, "->", ossMapBagObjectKey, "出错:", err)
-		os.Exit(-1)
-	}
-	c_log.GlobalLogger.Info("上传/map包", config.CloudConfig.MapBagPath, "------", ossMapBagObjectKey, "成功。")
-}
-func collectTfStatic() {
-
-	// rosbag record -O /root/cicv-data-closedloop/map_data.bag -l 1 /map
-	ossMapBagObjectKey := config.LocalConfig.OssBasePrefix + config.LocalConfig.EquipmentNo + "/tfstatic.bag"
-
-	var command []string
-	command = append(command, "record")
-	command = append(command, "-O")
-	command = append(command, config.CloudConfig.MapBagPath)
-	command = append(command, "-l")
-	command = append(command, "1")
-	command = append(command, "/tf_static")
-	_, s, err := util.ExecuteWithEnvAndDir(config.RosbagEnvs, config.CloudConfig.BagDataDir, config.RosbagPath, command...)
-	if err != nil {
-		c_log.GlobalLogger.Error("程序异常退出。采集/tf_static包", command, "出错:", s, "----", err)
-		os.Exit(-1)
+	if !commonConfig.CloudConfig.HasOneMsgTopic {
+		return
 	}
-	c_log.GlobalLogger.Info("采集/tf_static包", command, "完成。")
-	config.OssMutex.Lock()
-	err = config.OssBucket.PutObjectFromFile(ossMapBagObjectKey, config.CloudConfig.MapBagPath)
-	config.OssMutex.Unlock()
-	if err != nil {
-		c_log.GlobalLogger.Error("程序异常退出。上传/tf_static包", config.CloudConfig.MapBagPath, "->", ossMapBagObjectKey, "出错:", err)
-		os.Exit(-1)
-	}
-	c_log.GlobalLogger.Info("上传/tf_static包", config.CloudConfig.MapBagPath, "------", ossMapBagObjectKey, "成功。")
+	//collectMap()
+	//collectTfStatic()
+	//collectCostmap()
 }
-func collectCostmap() {
-
-	// rosbag record -O /root/cicv-data-closedloop/map_data.bag -l 1 /map
-	ossMapBagObjectKey := config.LocalConfig.OssBasePrefix + config.LocalConfig.EquipmentNo + "/costmap.bag"
 
-	var command []string
-	command = append(command, "record")
-	command = append(command, "-O")
-	command = append(command, config.CloudConfig.MapBagPath)
-	command = append(command, "-l")
-	command = append(command, "1")
-	command = append(command, "/move_base/global_costmap/costmap")
-	_, s, err := util.ExecuteWithEnvAndDir(config.RosbagEnvs, config.CloudConfig.BagDataDir, config.RosbagPath, command...)
-	if err != nil {
-		c_log.GlobalLogger.Error("程序异常退出。采集/move_base/global_costmap/costmap包", command, "出错:", s, "----", err)
-		os.Exit(-1)
-	}
-	c_log.GlobalLogger.Info("采集/move_base/global_costmap/costmap包", command, "完成。")
-	config.OssMutex.Lock()
-	err = config.OssBucket.PutObjectFromFile(ossMapBagObjectKey, config.CloudConfig.MapBagPath)
-	config.OssMutex.Unlock()
-	if err != nil {
-		c_log.GlobalLogger.Error("程序异常退出。上传/move_base/global_costmap/costmap包", config.CloudConfig.MapBagPath, "->", ossMapBagObjectKey, "出错:", err)
-		os.Exit(-1)
-	}
-	c_log.GlobalLogger.Info("上传/move_base/global_costmap/costmap包", config.CloudConfig.MapBagPath, "------", ossMapBagObjectKey, "成功。")
-}
+//func collectMap() {
+//
+//	// rosbag record -O /root/cicv-data-closedloop/map_data.bag -l 1 /map
+//	ossMapBagObjectKey := config.LocalConfig.OssBasePrefix + config.LocalConfig.EquipmentNo + "/map.bag"
+//
+//	var command []string
+//	command = append(command, "record")
+//	command = append(command, "-O")
+//	command = append(command, config.CloudConfig.MapBagPath)
+//	command = append(command, "-l")
+//	command = append(command, "1")
+//	command = append(command, "/map")
+//	_, s, err := util.ExecuteWithEnvAndDir(config.RosbagEnvs, config.CloudConfig.BagDataDir, config.RosbagPath, command...)
+//	if err != nil {
+//		c_log.GlobalLogger.Error("程序异常退出。采集/map包", command, "出错:", s, "----", err)
+//		os.Exit(-1)
+//	}
+//	c_log.GlobalLogger.Info("采集/map包", command, "完成。")
+//	config.OssMutex.Lock()
+//	err = config.OssBucket.PutObjectFromFile(ossMapBagObjectKey, config.CloudConfig.MapBagPath)
+//	config.OssMutex.Unlock()
+//	if err != nil {
+//		c_log.GlobalLogger.Error("程序异常退出。上传/map包", config.CloudConfig.MapBagPath, "->", ossMapBagObjectKey, "出错:", err)
+//		os.Exit(-1)
+//	}
+//	c_log.GlobalLogger.Info("上传/map包", config.CloudConfig.MapBagPath, "------", ossMapBagObjectKey, "成功。")
+//}
+//func collectTfStatic() {
+//
+//	// rosbag record -O /root/cicv-data-closedloop/map_data.bag -l 1 /map
+//	ossMapBagObjectKey := config.LocalConfig.OssBasePrefix + config.LocalConfig.EquipmentNo + "/tfstatic.bag"
+//
+//	var command []string
+//	command = append(command, "record")
+//	command = append(command, "-O")
+//	command = append(command, config.CloudConfig.MapBagPath)
+//	command = append(command, "-l")
+//	command = append(command, "1")
+//	command = append(command, "/tf_static")
+//	_, s, err := util.ExecuteWithEnvAndDir(config.RosbagEnvs, config.CloudConfig.BagDataDir, config.RosbagPath, command...)
+//	if err != nil {
+//		c_log.GlobalLogger.Error("程序异常退出。采集/tf_static包", command, "出错:", s, "----", err)
+//		os.Exit(-1)
+//	}
+//	c_log.GlobalLogger.Info("采集/tf_static包", command, "完成。")
+//	config.OssMutex.Lock()
+//	err = config.OssBucket.PutObjectFromFile(ossMapBagObjectKey, config.CloudConfig.MapBagPath)
+//	config.OssMutex.Unlock()
+//	if err != nil {
+//		c_log.GlobalLogger.Error("程序异常退出。上传/tf_static包", config.CloudConfig.MapBagPath, "->", ossMapBagObjectKey, "出错:", err)
+//		os.Exit(-1)
+//	}
+//	c_log.GlobalLogger.Info("上传/tf_static包", config.CloudConfig.MapBagPath, "------", ossMapBagObjectKey, "成功。")
+//}
+//func collectCostmap() {
+//
+//	// rosbag record -O /root/cicv-data-closedloop/map_data.bag -l 1 /map
+//	ossMapBagObjectKey := config.LocalConfig.OssBasePrefix + config.LocalConfig.EquipmentNo + "/costmap.bag"
+//
+//	var command []string
+//	command = append(command, "record")
+//	command = append(command, "-O")
+//	command = append(command, config.CloudConfig.MapBagPath)
+//	command = append(command, "-l")
+//	command = append(command, "1")
+//	command = append(command, "/move_base/global_costmap/costmap")
+//	_, s, err := util.ExecuteWithEnvAndDir(config.RosbagEnvs, config.CloudConfig.BagDataDir, config.RosbagPath, command...)
+//	if err != nil {
+//		c_log.GlobalLogger.Error("程序异常退出。采集/move_base/global_costmap/costmap包", command, "出错:", s, "----", err)
+//		os.Exit(-1)
+//	}
+//	c_log.GlobalLogger.Info("采集/move_base/global_costmap/costmap包", command, "完成。")
+//	config.OssMutex.Lock()
+//	err = config.OssBucket.PutObjectFromFile(ossMapBagObjectKey, config.CloudConfig.MapBagPath)
+//	config.OssMutex.Unlock()
+//	if err != nil {
+//		c_log.GlobalLogger.Error("程序异常退出。上传/move_base/global_costmap/costmap包", config.CloudConfig.MapBagPath, "->", ossMapBagObjectKey, "出错:", err)
+//		os.Exit(-1)
+//	}
+//	c_log.GlobalLogger.Info("上传/move_base/global_costmap/costmap包", config.CloudConfig.MapBagPath, "------", ossMapBagObjectKey, "成功。")
+//}