Explorar o código

modify brake trigger

zwh hai 10 meses
pai
achega
20faabd6a8
Modificáronse 34 ficheiros con 601 adicións e 1560 borrados
  1. 1 1
      README.md
  2. 10 35
      aarch64/pjibot_delivery/common/config/c_cloud.go
  3. 0 1
      aarch64/pjibot_delivery/common/config/c_local.go
  4. 22 2
      aarch64/pjibot_delivery/common/config/sh/start-control.sh
  5. 2 2
      aarch64/pjibot_delivery/common/config/sh/start-master.sh
  6. 159 112
      aarch64/pjibot_delivery/common/config/yaml/配送机器人默认配置文件-cloud-config.yaml
  7. 3 4
      aarch64/pjibot_delivery/common/config/yaml/配送机器人默认配置文件-local-config.yaml
  8. 0 4
      aarch64/pjibot_delivery/common/service/rosbag_upload.go
  9. 87 89
      aarch64/pjibot_delivery/master/package/service/collect_one_msg.go
  10. 9 31
      aarch64/pjibot_guide/common/config/c_cloud.go
  11. 0 1
      aarch64/pjibot_guide/common/config/c_local.go
  12. 0 159
      aarch64/pjibot_guide/common/config/yaml/巡检机器人默认配置文件-cloud-config.yaml
  13. 0 19
      aarch64/pjibot_guide/common/config/yaml/巡检机器人默认配置文件-local-config.yaml
  14. 0 159
      aarch64/pjibot_guide/common/config/yaml/配送机器人默认配置文件-cloud-config.yaml
  15. 0 19
      aarch64/pjibot_guide/common/config/yaml/配送机器人默认配置文件-local-config.yaml
  16. 10 35
      aarch64/pjibot_patrol/common/config/c_cloud.go
  17. 0 1
      aarch64/pjibot_patrol/common/config/c_local.go
  18. 22 2
      aarch64/pjibot_patrol/common/config/sh/start-control.sh
  19. 2 2
      aarch64/pjibot_patrol/common/config/sh/start-master.sh
  20. 160 113
      aarch64/pjibot_patrol/common/config/yaml/巡检机器人默认配置文件-cloud-config.yaml
  21. 3 3
      aarch64/pjibot_patrol/common/config/yaml/巡检机器人默认配置文件-local-config.yaml
  22. 0 167
      aarch64/pjibot_patrol/common/config/yaml/引导机器人默认配置文件单摄像头-cloud-config.yaml
  23. 0 18
      aarch64/pjibot_patrol/common/config/yaml/引导机器人默认配置文件单摄像头-local-config.yaml
  24. 0 203
      aarch64/pjibot_patrol/common/config/yaml/引导机器人默认配置文件双摄像头-cloud-config.yaml
  25. 0 18
      aarch64/pjibot_patrol/common/config/yaml/引导机器人默认配置文件双摄像头-local-config.yaml
  26. 0 159
      aarch64/pjibot_patrol/common/config/yaml/配送机器人默认配置文件-cloud-config.yaml
  27. 0 19
      aarch64/pjibot_patrol/common/config/yaml/配送机器人默认配置文件-local-config.yaml
  28. 0 4
      aarch64/pjibot_patrol/common/service/rosbag_upload.go
  29. 87 89
      aarch64/pjibot_patrol/master/package/service/collect_one_msg.go
  30. 2 12
      common/entity/time_window.go
  31. 0 73
      deploy/build-pji-plugin.sh
  32. 14 3
      deploy/build-pji.sh
  33. 7 0
      test/context_test.go
  34. 1 1
      trigger/pjisuv/cicv_location/FindTrafficLight/main/FindTrafficLight.go

+ 1 - 1
README.md

@@ -21,4 +21,4 @@ oss-browser预设oss路径:oss://open-bucket
 oss-browser区域:华北2(北京)
 keyid:n8glvFGS25MrLY7j
 secret:xZ2Fozoarpfw0z28FUhtg8cu0yDc5d
-``
+```

+ 10 - 35
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"`
@@ -251,38 +248,16 @@ func checkCloudConfig(check cloudConfig) bool {
 }
 
 func getSnCode() (string, error) {
-	if LocalConfig.Type == "1" {
-		var command []string
-		command = append(command, "get")
-		command = append(command, "sn")
-		_, snOutput, err := util.ExecuteSync(LocalConfig.RosparamPath, command...)
-		if err != nil {
-			return "", errors.New("执行获取sn码命令" + util.ToString(command) + "出错:" + util.ToString(err))
-		}
-		c_log.GlobalLogger.Info("执行获取sn码命令", command, "成功,结果为:", snOutput)
-		snCode := strings.Replace(strings.Replace(snOutput, " ", "", -1), "\n", "", -1)
-		return snCode, nil
-	} else if LocalConfig.Type == "2" || LocalConfig.Type == "3" {
-		// 示例使用
-		serverURL := "192.168.1.104:9002"
-		path := "/"
-		request := Request{
-			Type:      "request",
-			UUID:      "",
-			CommandID: "getRobotBaseInfo",
-			Parameter: nil,
-		}
-
-		sn, err := SendWebsocketRequest(serverURL, path, request)
-		if err != nil {
-			return "", errors.New("通过api获取sn码失败:" + util.ToString(err))
-		}
-		return sn, nil
-	} else {
-		c_log.GlobalLogger.Error("程序崩溃,未知的机器人类型【" + LocalConfig.Type + "】,请修改local-config.yaml文件")
-		os.Exit(-1)
-		return "", nil
+	var command []string
+	command = append(command, "get")
+	command = append(command, "sn")
+	_, snOutput, err := util.ExecuteSync(LocalConfig.RosparamPath, command...)
+	if err != nil {
+		return "", errors.New("执行获取sn码命令" + util.ToString(command) + "出错:" + util.ToString(err))
 	}
+	c_log.GlobalLogger.Info("执行获取sn码命令", command, "成功,结果为:", snOutput)
+	snCode := strings.Replace(strings.Replace(snOutput, " ", "", -1), "\n", "", -1)
+	return snCode, nil
 }
 
 // SendWebsocketRequest 发送WebSocket请求并返回sn字段的值

+ 0 - 1
aarch64/pjibot_delivery/common/config/c_local.go

@@ -18,7 +18,6 @@ type restartCmd struct {
 }
 
 type localConfig struct {
-	Type                 string     `yaml:"type"`                    // 机器人类型(不同机器人获取sn码方式不同)
 	Node                 node       `yaml:"node"`                    // 节点信息
 	RosparamPath         string     `yaml:"rosparam-path"`           // 获取oss配置的url
 	UrlGetOssConfig      string     `yaml:"url-get-oss-config"`      // 获取oss配置的url

+ 22 - 2
aarch64/pjibot_delivery/common/config/sh/start-control.sh

@@ -1,3 +1,23 @@
 #!/bin/bash
-chmod 777 /root/cicv-data-closedloop/pji-control.exe
-nohup /root/cicv-data-closedloop/pji-control.exe > /root/cicv-data-closedloop/log/pji-control.out 2>&1 &
+chmod 777 /home/pji/cicv-data-closedloop/pji-control.exe
+
+
+export C_INCLUDE_PATH=/usr/include/drm:
+export ROS_VERSION=1
+export PKG_CONFIG_PATH=/opt/ros/noetic/lib/pkgconfig:/opt/ros/noetic/lib/aarch64-linux-gnu/pkgconfig
+export ROS_PYTHON_VERSION=3
+export ROS_PACKAGE_PATH=/opt/ros/noetic/share
+export ROSLISP_PACKAGE_DIRECTORIES=
+export LOGNAME=pji
+export XDG_SESSION_TYPE=tty
+export ROS_ETC_DIR=/opt/ros/noetic/etc/ros
+export CMAKE_PREFIX_PATH=/opt/ros/noetic
+export PYTHONPATH=/opt/ros/noetic/lib/python3/dist-packages
+export USER=pji
+export ROS_MASTER_URI=http://192.168.1.104:11311
+export ROS_HOSTNAME=192.168.1.104
+export LD_LIBRARY_PATH=/opt/ros/noetic/lib:/opt/ros/noetic/lib/aarch64-linux-gnu
+export ROS_ROOT=/opt/ros/noetic/share/ros
+export ROS_DISTRO=noetic
+
+nohup /home/pji/cicv-data-closedloop/pji-control.exe > /home/pji/cicv-data-closedloop/log/pji-control.out 2>&1 &

+ 2 - 2
aarch64/pjibot_delivery/common/config/sh/start-master.sh

@@ -1,3 +1,3 @@
 #!/bin/bash
-chmod 777 /root/cicv-data-closedloop/pji-master.exe
-nohup /root/cicv-data-closedloop/pji-master.exe > /root/cicv-data-closedloop/log/pji-master.out 2>&1 &
+chmod 777 /home/pji/cicv-data-closedloop/pji-master.exe
+nohup /home/pji/cicv-data-closedloop/pji-master.exe > /home/pji/cicv-data-closedloop/log/pji-master.out 2>&1 &

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

@@ -11,149 +11,196 @@ config-refresh-interval: 60
 disk:
   name: /dev/sda1 # 磁盘名称
   used: 60000000000 # 磁盘占用阈值,单位bytes
-map-bag-path: /root/cicv-data-closedloop/map.bag
-tfstatic-bag-path: /root/cicv-data-closedloop/tf_static.bag
-costmap-bag-path: /root/cicv-data-closedloop/costmap.bag
-bag-data-dir: /root/cicv-data-closedloop/data/
-bag-copy-dir: /root/cicv-data-closedloop/copy/
-triggers-dir: /root/cicv-data-closedloop/triggers/
+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/
 time-window-send-gap: 6
 rpc-port: 12341
 ros:
   master-address: 192.168.1.104:11311
   nodes:
-    - /amcl
-    - /ob_camera_01/camera
-    - /ob_camera_02/camera
-    - /node_diagnostics
-    - /localization_monitor_node
-    - /move_base
-    - /sensor_fusion_node
-    - /ltme_node
-    - /scan_map_icp_amcl_node
-    - /monitor
+    - /location_realtime
+    - /cloud_to_map_node
+    - /tracking/imm_ukf_pda_track
+    - /task_decision
+    - /trajectorygenerator
+    - /trajectoryevaluator
+    - /trii_receive
+    - /wheel_odom
+    - /lanelet_routing_node
+    - /purepursuit
+    - /auto_dock
+    - /engine
+    - /trii_receive
+    - /lidar_euclidean_cluster_detect
 
 hosts:
   - name: node1
     ip: 192.168.1.104
     rosbag:
-      path: "/opt/ros/melodic/bin/rosbag"
+      path: "/opt/ros/noetic/bin/rosbag"
       envs:
-        - "C_INCLUDE_PATH=/usr/include/drm:"
-        - "USER=root"
-        - "ROS_PACKAGE_PATH=/opt/ros/melodic/share"
-        - "LD_LIBRARY_PATH=/opt/ros/melodic/lib:/opt/ros/melodic/lib/aarch64-linux-gnu"
-        - "ROS_ETC_DIR=/opt/ros/melodic/etc/ros"
-        - "SHLVL=1"
-        - "HOME=/root"
-        - "ROS_PYTHON_VERSION=2"
-        - "PCMANFM_OUTLINE_MODE=on"
-        - "CPLUS_INCLUDE_PATH=/usr/include/drm:"
-        - "ROS_DISTRO=melodic"
         - "ROS_VERSION=1"
-        - "PKG_CONFIG_PATH=/opt/ros/melodic/lib/pkgconfig"
-        - "PATH=/opt/ros/melodic/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/go/bin:/root/go/bin"
-        - "ROS_ROOT=/opt/ros/melodic/share/ros"
+        - "PKG_CONFIG_PATH=/opt/ros/noetic/lib/pkgconfig:/opt/ros/noetic/lib/aarch64-linux-gnu/pkgconfig"
+        - "ROS_PYTHON_VERSION=3"
+        - "ROS_PACKAGE_PATH=/opt/ros/noetic/share"
         - "ROSLISP_PACKAGE_DIRECTORIES="
+        - "LOGNAME=pji"
+        - "XDG_SESSION_TYPE=tty"
+        - "ROS_ETC_DIR=/opt/ros/noetic/etc/ros"
+        - "CMAKE_PREFIX_PATH=/opt/ros/noetic"
+        - "PYTHONPATH=/opt/ros/noetic/lib/python3/dist-packages"
+        - "USER=pji"
         - "ROS_MASTER_URI=http://192.168.1.104:11311"
-        - "PYTHONPATH=/opt/ros/melodic/lib/python2.7/dist-packages"
         - "ROS_HOSTNAME=192.168.1.104"
-        - "CMAKE_PREFIX_PATH=/opt/ros/melodic"
+        - "LD_LIBRARY_PATH=/opt/ros/noetic/lib:/opt/ros/noetic/lib/aarch64-linux-gnu"
+        - "ROS_ROOT=/opt/ros/noetic/share/ros"
+        - "ROS_DISTRO=noetic"
     topics:
-      - /robot_pose
-      - /robot/realtime_cost_map_
-      - /tracking/objects
-      - /robot/TaskInfo
-      - /robot/targetposition
-      - /wheel
-      - /wheel_odom
-      - /robot/global_trajectory_
-      - /robot/target_trajectories
-      - /robot/evaluator_trajectories
-      - /robot/final_trajectory
-      - /nav/task_feedback_info
-      - /cmd_vel
-      - /imu
-      - /points_cluster
-      - /nav/task_feedback_info
+      - /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
 
 
 full-collect: true # 控制是否根据不同的触发器采集不通的topic,一般设置为true,即忽略下面的配置
 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

+ 3 - 4
aarch64/pjibot_delivery/common/config/yaml/配送机器人默认配置文件-local-config.yaml

@@ -1,8 +1,7 @@
-type: 2 # 机器人类型 1 引导机器人 2 配送机器人 3 巡检机器人
 node:
   name: node1
   ip: 192.168.1.104
-rosparam-path: /opt/ros/melodic/bin/rosparam
+rosparam-path: /opt/ros/noetic/bin/rosparam
 # 获取oss连接信息的接口url
 #url-get-oss-config: http://36.110.106.156:18379/oss/config?token=nXonLUcMtGcrQqqKiyygIwyVbvizE0wD # 国汽数据闭环
 url-get-oss-config: http://36.110.106.156:18379/oss/pji?token=nXonLUcMtGcrQqqKiyygIwyVbvizE0wD # 朴津数据闭环
@@ -11,9 +10,9 @@ oss-base-prefix: pjibot-delivery/
 # oss上的配置文件的名称
 cloud-config-filename: cloud-config.yaml
 # 将oss上的配置文件下载到本地的路径
-cloud-config-local-path: /root/cicv-data-closedloop/config/cloud-config.yaml
+cloud-config-local-path: /home/pji/cicv-data-closedloop/config/cloud-config.yaml
 restart-cmd:
-  dir: "/root/cicv-data-closedloop/"
+  dir: "/home/pji/cicv-data-closedloop/"
   name: "sh"
   args:
     - "start-master.sh"

+ 0 - 4
aarch64/pjibot_delivery/common/service/rosbag_upload.go

@@ -9,7 +9,6 @@ import (
 	"cicv-data-closedloop/common/util"
 	"fmt"
 	"os"
-	"path/filepath"
 	"strings"
 	"time"
 )
@@ -142,9 +141,6 @@ outLoop:
 		}
 		commonConfig.OssMutex.Lock()
 		err = commonConfig.OssBucket.PutObject(objectKey3+"callback.json", strings.NewReader(callBackJson))
-		for _, file := range commonConfig.CloudConfig.MapBufFiles {
-			err = commonConfig.OssBucket.PutObjectFromFile(objectKey3+filepath.Base(file), file)
-		}
 		commonConfig.OssMutex.Unlock()
 		if err != nil {
 			c_log.GlobalLogger.Error("上传 callback.json 或 mapBuf 文件失败:", err)

+ 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, "成功。")
+//}

+ 9 - 31
aarch64/pjibot_guide/common/config/c_cloud.go

@@ -251,38 +251,16 @@ func checkCloudConfig(check cloudConfig) bool {
 }
 
 func getSnCode() (string, error) {
-	if LocalConfig.Type == "1" {
-		var command []string
-		command = append(command, "get")
-		command = append(command, "sn")
-		_, snOutput, err := util.ExecuteSync(LocalConfig.RosparamPath, command...)
-		if err != nil {
-			return "", errors.New("执行获取sn码命令" + util.ToString(command) + "出错:" + util.ToString(err))
-		}
-		c_log.GlobalLogger.Info("执行获取sn码命令", command, "成功,结果为:", snOutput)
-		snCode := strings.Replace(strings.Replace(snOutput, " ", "", -1), "\n", "", -1)
-		return snCode, nil
-	} else if LocalConfig.Type == "2" || LocalConfig.Type == "3" {
-		// 示例使用
-		serverURL := "192.168.1.104:9002"
-		path := "/"
-		request := Request{
-			Type:      "request",
-			UUID:      "",
-			CommandID: "getRobotBaseInfo",
-			Parameter: nil,
-		}
-
-		sn, err := SendWebsocketRequest(serverURL, path, request)
-		if err != nil {
-			return "", errors.New("通过api获取sn码失败:" + util.ToString(err))
-		}
-		return sn, nil
-	} else {
-		c_log.GlobalLogger.Error("程序崩溃,未知的机器人类型【" + LocalConfig.Type + "】,请修改local-config.yaml文件")
-		os.Exit(-1)
-		return "", nil
+	var command []string
+	command = append(command, "get")
+	command = append(command, "sn")
+	_, snOutput, err := util.ExecuteSync(LocalConfig.RosparamPath, command...)
+	if err != nil {
+		return "", errors.New("执行获取sn码命令" + util.ToString(command) + "出错:" + util.ToString(err))
 	}
+	c_log.GlobalLogger.Info("执行获取sn码命令", command, "成功,结果为:", snOutput)
+	snCode := strings.Replace(strings.Replace(snOutput, " ", "", -1), "\n", "", -1)
+	return snCode, nil
 }
 
 // SendWebsocketRequest 发送WebSocket请求并返回sn字段的值

+ 0 - 1
aarch64/pjibot_guide/common/config/c_local.go

@@ -18,7 +18,6 @@ type restartCmd struct {
 }
 
 type localConfig struct {
-	Type                 string     `yaml:"type"`                    // 机器人类型(不同机器人获取sn码方式不同)
 	Node                 node       `yaml:"node"`                    // 节点信息
 	RosparamPath         string     `yaml:"rosparam-path"`           // 获取oss配置的url
 	UrlGetOssConfig      string     `yaml:"url-get-oss-config"`      // 获取oss配置的url

+ 0 - 159
aarch64/pjibot_guide/common/config/yaml/巡检机器人默认配置文件-cloud-config.yaml

@@ -1,159 +0,0 @@
----
-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
-
-bag-number: 60
-config-refresh-interval: 60
-disk:
-  name: /dev/nvme0n1p1 # 磁盘名称
-  used: 50000000000 # 磁盘占用阈值,单位bytes
-map-bag-path: /root/cicv-data-closedloop/map.bag
-tfstatic-bag-path: /root/cicv-data-closedloop/tf_static.bag
-costmap-bag-path: /root/cicv-data-closedloop/costmap.bag
-bag-data-dir: /root/cicv-data-closedloop/data/
-bag-copy-dir: /root/cicv-data-closedloop/copy/
-triggers-dir: /root/cicv-data-closedloop/triggers/
-time-window-send-gap: 6
-rpc-port: 12341
-ros:
-  master-address: 192.168.1.104:11311
-  nodes:
-    - /amcl
-    - /ob_camera_01/camera
-    - /ob_camera_02/camera
-    - /node_diagnostics
-    - /localization_monitor_node
-    - /move_base
-    - /sensor_fusion_node
-    - /ltme_node
-    - /scan_map_icp_amcl_node
-    - /monitor
-
-hosts:
-  - name: node1
-    ip: 192.168.1.104
-    rosbag:
-      path: "/opt/ros/melodic/bin/rosbag"
-      envs:
-        - "C_INCLUDE_PATH=/usr/include/drm:"
-        - "USER=root"
-        - "ROS_PACKAGE_PATH=/opt/ros/melodic/share"
-        - "LD_LIBRARY_PATH=/opt/ros/melodic/lib:/opt/ros/melodic/lib/aarch64-linux-gnu"
-        - "ROS_ETC_DIR=/opt/ros/melodic/etc/ros"
-        - "SHLVL=1"
-        - "HOME=/root"
-        - "ROS_PYTHON_VERSION=2"
-        - "PCMANFM_OUTLINE_MODE=on"
-        - "CPLUS_INCLUDE_PATH=/usr/include/drm:"
-        - "ROS_DISTRO=melodic"
-        - "ROS_VERSION=1"
-        - "PKG_CONFIG_PATH=/opt/ros/melodic/lib/pkgconfig"
-        - "PATH=/opt/ros/melodic/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/go/bin:/root/go/bin"
-        - "ROS_ROOT=/opt/ros/melodic/share/ros"
-        - "ROSLISP_PACKAGE_DIRECTORIES="
-        - "ROS_MASTER_URI=http://192.168.1.104:11311"
-        - "PYTHONPATH=/opt/ros/melodic/lib/python2.7/dist-packages"
-        - "ROS_HOSTNAME=192.168.1.104"
-        - "CMAKE_PREFIX_PATH=/opt/ros/melodic"
-    topics:
-      - /robot_pose
-      - /robot/realtime_cost_map_
-      - /tracking/objects
-      - /robot/TaskInfo
-      - /robot/targetposition
-      - /wheel
-      - /wheel_odom
-      - /robot/global_trajectory_
-      - /robot/target_trajectories
-      - /robot/evaluator_trajectories
-      - /robot/final_trajectory
-      - /nav/task_feedback_info
-      - /cmd_vel
-      - /imu
-      - /points_cluster
-      - /nav/task_feedback_info
-
-
-full-collect: true # 控制是否根据不同的触发器采集不通的topic,一般设置为true,即忽略下面的配置
-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
-  - 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
-  - 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
-  - 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
-  - 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
-  - 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
-  - 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

+ 0 - 19
aarch64/pjibot_guide/common/config/yaml/巡检机器人默认配置文件-local-config.yaml

@@ -1,19 +0,0 @@
-type: 3 # 机器人类型 1 引导机器人 2 配送机器人 3 巡检机器人
-node:
-  name: node1
-  ip: 192.168.1.104
-rosparam-path: /opt/ros/melodic/bin/rosparam
-# 获取oss连接信息的接口url
-#url-get-oss-config: http://36.110.106.156:18379/oss/config?token=nXonLUcMtGcrQqqKiyygIwyVbvizE0wD # 国汽数据闭环
-url-get-oss-config: http://36.110.106.156:18379/oss/pji?token=nXonLUcMtGcrQqqKiyygIwyVbvizE0wD # 朴津数据闭环
-# 朴津机器人数据前缀
-oss-base-prefix: pjibot-patrol/
-# oss上的配置文件的名称
-cloud-config-filename: cloud-config.yaml
-# 将oss上的配置文件下载到本地的路径
-cloud-config-local-path: /root/cicv-data-closedloop/config/cloud-config.yaml
-restart-cmd:
-  dir: "/root/cicv-data-closedloop/"
-  name: "sh"
-  args:
-    - "start-master.sh"

+ 0 - 159
aarch64/pjibot_guide/common/config/yaml/配送机器人默认配置文件-cloud-config.yaml

@@ -1,159 +0,0 @@
----
-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
-
-bag-number: 60
-config-refresh-interval: 60
-disk:
-  name: /dev/sda1 # 磁盘名称
-  used: 60000000000 # 磁盘占用阈值,单位bytes
-map-bag-path: /root/cicv-data-closedloop/map.bag
-tfstatic-bag-path: /root/cicv-data-closedloop/tf_static.bag
-costmap-bag-path: /root/cicv-data-closedloop/costmap.bag
-bag-data-dir: /root/cicv-data-closedloop/data/
-bag-copy-dir: /root/cicv-data-closedloop/copy/
-triggers-dir: /root/cicv-data-closedloop/triggers/
-time-window-send-gap: 6
-rpc-port: 12341
-ros:
-  master-address: 192.168.1.104:11311
-  nodes:
-    - /amcl
-    - /ob_camera_01/camera
-    - /ob_camera_02/camera
-    - /node_diagnostics
-    - /localization_monitor_node
-    - /move_base
-    - /sensor_fusion_node
-    - /ltme_node
-    - /scan_map_icp_amcl_node
-    - /monitor
-
-hosts:
-  - name: node1
-    ip: 192.168.1.104
-    rosbag:
-      path: "/opt/ros/melodic/bin/rosbag"
-      envs:
-        - "C_INCLUDE_PATH=/usr/include/drm:"
-        - "USER=root"
-        - "ROS_PACKAGE_PATH=/opt/ros/melodic/share"
-        - "LD_LIBRARY_PATH=/opt/ros/melodic/lib:/opt/ros/melodic/lib/aarch64-linux-gnu"
-        - "ROS_ETC_DIR=/opt/ros/melodic/etc/ros"
-        - "SHLVL=1"
-        - "HOME=/root"
-        - "ROS_PYTHON_VERSION=2"
-        - "PCMANFM_OUTLINE_MODE=on"
-        - "CPLUS_INCLUDE_PATH=/usr/include/drm:"
-        - "ROS_DISTRO=melodic"
-        - "ROS_VERSION=1"
-        - "PKG_CONFIG_PATH=/opt/ros/melodic/lib/pkgconfig"
-        - "PATH=/opt/ros/melodic/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/go/bin:/root/go/bin"
-        - "ROS_ROOT=/opt/ros/melodic/share/ros"
-        - "ROSLISP_PACKAGE_DIRECTORIES="
-        - "ROS_MASTER_URI=http://192.168.1.104:11311"
-        - "PYTHONPATH=/opt/ros/melodic/lib/python2.7/dist-packages"
-        - "ROS_HOSTNAME=192.168.1.104"
-        - "CMAKE_PREFIX_PATH=/opt/ros/melodic"
-    topics:
-      - /robot_pose
-      - /robot/realtime_cost_map_
-      - /tracking/objects
-      - /robot/TaskInfo
-      - /robot/targetposition
-      - /wheel
-      - /wheel_odom
-      - /robot/global_trajectory_
-      - /robot/target_trajectories
-      - /robot/evaluator_trajectories
-      - /robot/final_trajectory
-      - /nav/task_feedback_info
-      - /cmd_vel
-      - /imu
-      - /points_cluster
-      - /nav/task_feedback_info
-
-
-full-collect: true # 控制是否根据不同的触发器采集不通的topic,一般设置为true,即忽略下面的配置
-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
-  - 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
-  - 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
-  - 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
-  - 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
-  - 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
-  - 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

+ 0 - 19
aarch64/pjibot_guide/common/config/yaml/配送机器人默认配置文件-local-config.yaml

@@ -1,19 +0,0 @@
-type: 2 # 机器人类型 1 引导机器人 2 配送机器人 3 巡检机器人
-node:
-  name: node1
-  ip: 192.168.1.104
-rosparam-path: /opt/ros/melodic/bin/rosparam
-# 获取oss连接信息的接口url
-#url-get-oss-config: http://36.110.106.156:18379/oss/config?token=nXonLUcMtGcrQqqKiyygIwyVbvizE0wD # 国汽数据闭环
-url-get-oss-config: http://36.110.106.156:18379/oss/pji?token=nXonLUcMtGcrQqqKiyygIwyVbvizE0wD # 朴津数据闭环
-# 朴津机器人数据前缀
-oss-base-prefix: pjibot-delivery/
-# oss上的配置文件的名称
-cloud-config-filename: cloud-config.yaml
-# 将oss上的配置文件下载到本地的路径
-cloud-config-local-path: /root/cicv-data-closedloop/config/cloud-config.yaml
-restart-cmd:
-  dir: "/root/cicv-data-closedloop/"
-  name: "sh"
-  args:
-    - "start-master.sh"

+ 10 - 35
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"`
@@ -251,38 +248,16 @@ func checkCloudConfig(check cloudConfig) bool {
 }
 
 func getSnCode() (string, error) {
-	if LocalConfig.Type == "1" {
-		var command []string
-		command = append(command, "get")
-		command = append(command, "sn")
-		_, snOutput, err := util.ExecuteSync(LocalConfig.RosparamPath, command...)
-		if err != nil {
-			return "", errors.New("执行获取sn码命令" + util.ToString(command) + "出错:" + util.ToString(err))
-		}
-		c_log.GlobalLogger.Info("执行获取sn码命令", command, "成功,结果为:", snOutput)
-		snCode := strings.Replace(strings.Replace(snOutput, " ", "", -1), "\n", "", -1)
-		return snCode, nil
-	} else if LocalConfig.Type == "2" || LocalConfig.Type == "3" {
-		// 示例使用
-		serverURL := "192.168.1.104:9002"
-		path := "/"
-		request := Request{
-			Type:      "request",
-			UUID:      "",
-			CommandID: "getRobotBaseInfo",
-			Parameter: nil,
-		}
-
-		sn, err := SendWebsocketRequest(serverURL, path, request)
-		if err != nil {
-			return "", errors.New("通过api获取sn码失败:" + util.ToString(err))
-		}
-		return sn, nil
-	} else {
-		c_log.GlobalLogger.Error("程序崩溃,未知的机器人类型【" + LocalConfig.Type + "】,请修改local-config.yaml文件")
-		os.Exit(-1)
-		return "", nil
+	var command []string
+	command = append(command, "get")
+	command = append(command, "sn")
+	_, snOutput, err := util.ExecuteSync(LocalConfig.RosparamPath, command...)
+	if err != nil {
+		return "", errors.New("执行获取sn码命令" + util.ToString(command) + "出错:" + util.ToString(err))
 	}
+	c_log.GlobalLogger.Info("执行获取sn码命令", command, "成功,结果为:", snOutput)
+	snCode := strings.Replace(strings.Replace(snOutput, " ", "", -1), "\n", "", -1)
+	return snCode, nil
 }
 
 // SendWebsocketRequest 发送WebSocket请求并返回sn字段的值

+ 0 - 1
aarch64/pjibot_patrol/common/config/c_local.go

@@ -18,7 +18,6 @@ type restartCmd struct {
 }
 
 type localConfig struct {
-	Type                 string     `yaml:"type"`                    // 机器人类型(不同机器人获取sn码方式不同)
 	Node                 node       `yaml:"node"`                    // 节点信息
 	RosparamPath         string     `yaml:"rosparam-path"`           // 获取oss配置的url
 	UrlGetOssConfig      string     `yaml:"url-get-oss-config"`      // 获取oss配置的url

+ 22 - 2
aarch64/pjibot_patrol/common/config/sh/start-control.sh

@@ -1,3 +1,23 @@
 #!/bin/bash
-chmod 777 /root/cicv-data-closedloop/pji-control.exe
-nohup /root/cicv-data-closedloop/pji-control.exe > /root/cicv-data-closedloop/log/pji-control.out 2>&1 &
+chmod 777 /home/pji/cicv-data-closedloop/pji-control.exe
+
+
+export C_INCLUDE_PATH=/usr/include/drm:
+export ROS_VERSION=1
+export PKG_CONFIG_PATH=/opt/ros/noetic/lib/pkgconfig:/opt/ros/noetic/lib/aarch64-linux-gnu/pkgconfig
+export ROS_PYTHON_VERSION=3
+export ROS_PACKAGE_PATH=/opt/ros/noetic/share
+export ROSLISP_PACKAGE_DIRECTORIES=
+export LOGNAME=pji
+export XDG_SESSION_TYPE=tty
+export ROS_ETC_DIR=/opt/ros/noetic/etc/ros
+export CMAKE_PREFIX_PATH=/opt/ros/noetic
+export PYTHONPATH=/opt/ros/noetic/lib/python3/dist-packages
+export USER=pji
+export ROS_MASTER_URI=http://192.168.1.104:11311
+export ROS_HOSTNAME=192.168.1.104
+export LD_LIBRARY_PATH=/opt/ros/noetic/lib:/opt/ros/noetic/lib/aarch64-linux-gnu
+export ROS_ROOT=/opt/ros/noetic/share/ros
+export ROS_DISTRO=noetic
+
+nohup /home/pji/cicv-data-closedloop/pji-control.exe > /home/pji/cicv-data-closedloop/log/pji-control.out 2>&1 &

+ 2 - 2
aarch64/pjibot_patrol/common/config/sh/start-master.sh

@@ -1,3 +1,3 @@
 #!/bin/bash
-chmod 777 /root/cicv-data-closedloop/pji-master.exe
-nohup /root/cicv-data-closedloop/pji-master.exe > /root/cicv-data-closedloop/log/pji-master.out 2>&1 &
+chmod 777 /home/pji/cicv-data-closedloop/pji-master.exe
+nohup /home/pji/cicv-data-closedloop/pji-master.exe > /home/pji/cicv-data-closedloop/log/pji-master.out 2>&1 &

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

@@ -10,150 +10,197 @@ bag-number: 60
 config-refresh-interval: 60
 disk:
   name: /dev/nvme0n1p1 # 磁盘名称
-  used: 50000000000 # 磁盘占用阈值,单位bytes
-map-bag-path: /root/cicv-data-closedloop/map.bag
-tfstatic-bag-path: /root/cicv-data-closedloop/tf_static.bag
-costmap-bag-path: /root/cicv-data-closedloop/costmap.bag
-bag-data-dir: /root/cicv-data-closedloop/data/
-bag-copy-dir: /root/cicv-data-closedloop/copy/
-triggers-dir: /root/cicv-data-closedloop/triggers/
+  used: 100000000000 # 100G 磁盘占用阈值,单位bytes
+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/
 time-window-send-gap: 6
 rpc-port: 12341
 ros:
   master-address: 192.168.1.104:11311
   nodes:
-    - /amcl
-    - /ob_camera_01/camera
-    - /ob_camera_02/camera
-    - /node_diagnostics
-    - /localization_monitor_node
-    - /move_base
-    - /sensor_fusion_node
-    - /ltme_node
-    - /scan_map_icp_amcl_node
-    - /monitor
+    - /location_realtime
+    - /cloud_to_map_node
+    - /tracking/imm_ukf_pda_track
+    - /task_decision
+    - /trajectorygenerator
+    - /trajectoryevaluator
+    - /trii_receive
+    - /wheel_odom
+    - /lanelet_routing_node
+    - /purepursuit
+    - /auto_dock
+    - /engine
+    - /trii_receive
+    - /lidar_euclidean_cluster_detect
 
 hosts:
   - name: node1
     ip: 192.168.1.104
     rosbag:
-      path: "/opt/ros/melodic/bin/rosbag"
+      path: "/opt/ros/noetic/bin/rosbag"
       envs:
-        - "C_INCLUDE_PATH=/usr/include/drm:"
-        - "USER=root"
-        - "ROS_PACKAGE_PATH=/opt/ros/melodic/share"
-        - "LD_LIBRARY_PATH=/opt/ros/melodic/lib:/opt/ros/melodic/lib/aarch64-linux-gnu"
-        - "ROS_ETC_DIR=/opt/ros/melodic/etc/ros"
-        - "SHLVL=1"
-        - "HOME=/root"
-        - "ROS_PYTHON_VERSION=2"
-        - "PCMANFM_OUTLINE_MODE=on"
-        - "CPLUS_INCLUDE_PATH=/usr/include/drm:"
-        - "ROS_DISTRO=melodic"
         - "ROS_VERSION=1"
-        - "PKG_CONFIG_PATH=/opt/ros/melodic/lib/pkgconfig"
-        - "PATH=/opt/ros/melodic/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/go/bin:/root/go/bin"
-        - "ROS_ROOT=/opt/ros/melodic/share/ros"
+        - "PKG_CONFIG_PATH=/opt/ros/noetic/lib/pkgconfig:/opt/ros/noetic/lib/aarch64-linux-gnu/pkgconfig"
+        - "ROS_PYTHON_VERSION=3"
+        - "ROS_PACKAGE_PATH=/opt/ros/noetic/share"
         - "ROSLISP_PACKAGE_DIRECTORIES="
+        - "LOGNAME=pji"
+        - "XDG_SESSION_TYPE=tty"
+        - "ROS_ETC_DIR=/opt/ros/noetic/etc/ros"
+        - "CMAKE_PREFIX_PATH=/opt/ros/noetic"
+        - "PYTHONPATH=/opt/ros/noetic/lib/python3/dist-packages"
+        - "USER=pji"
         - "ROS_MASTER_URI=http://192.168.1.104:11311"
-        - "PYTHONPATH=/opt/ros/melodic/lib/python2.7/dist-packages"
         - "ROS_HOSTNAME=192.168.1.104"
-        - "CMAKE_PREFIX_PATH=/opt/ros/melodic"
+        - "LD_LIBRARY_PATH=/opt/ros/noetic/lib:/opt/ros/noetic/lib/aarch64-linux-gnu"
+        - "ROS_ROOT=/opt/ros/noetic/share/ros"
+        - "ROS_DISTRO=noetic"
     topics:
-      - /robot_pose
-      - /robot/realtime_cost_map_
-      - /tracking/objects
-      - /robot/TaskInfo
-      - /robot/targetposition
-      - /wheel
-      - /wheel_odom
-      - /robot/global_trajectory_
-      - /robot/target_trajectories
-      - /robot/evaluator_trajectories
-      - /robot/final_trajectory
-      - /nav/task_feedback_info
-      - /cmd_vel
-      - /imu
-      - /points_cluster
-      - /nav/task_feedback_info
+      - /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
 
 
 full-collect: true # 控制是否根据不同的触发器采集不通的topic,一般设置为true,即忽略下面的配置
 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

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

@@ -2,7 +2,7 @@ type: 3 # 机器人类型 1 引导机器人 2 配送机器人 3 巡检机器人
 node:
   name: node1
   ip: 192.168.1.104
-rosparam-path: /opt/ros/melodic/bin/rosparam
+rosparam-path: /opt/ros/noetic/bin/rosparam
 # 获取oss连接信息的接口url
 #url-get-oss-config: http://36.110.106.156:18379/oss/config?token=nXonLUcMtGcrQqqKiyygIwyVbvizE0wD # 国汽数据闭环
 url-get-oss-config: http://36.110.106.156:18379/oss/pji?token=nXonLUcMtGcrQqqKiyygIwyVbvizE0wD # 朴津数据闭环
@@ -11,9 +11,9 @@ oss-base-prefix: pjibot-patrol/
 # oss上的配置文件的名称
 cloud-config-filename: cloud-config.yaml
 # 将oss上的配置文件下载到本地的路径
-cloud-config-local-path: /root/cicv-data-closedloop/config/cloud-config.yaml
+cloud-config-local-path: /home/pji/cicv-data-closedloop/config/cloud-config.yaml
 restart-cmd:
-  dir: "/root/cicv-data-closedloop/"
+  dir: "/home/pji/cicv-data-closedloop/"
   name: "sh"
   args:
     - "start-master.sh"

+ 0 - 167
aarch64/pjibot_patrol/common/config/yaml/引导机器人默认配置文件单摄像头-cloud-config.yaml

@@ -1,167 +0,0 @@
----
-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
-full-collect: false
-bag-number: 10
-config-refresh-interval: 60
-disk:
-  name: /dev/mmcblk0p8 # 磁盘名称
-  used: 20000000000 # 磁盘占用阈值,单位bytes
-map-bag-path: /root/cicv-data-closedloop/map.bag
-bag-data-dir: /root/cicv-data-closedloop/data/
-bag-copy-dir: /root/cicv-data-closedloop/copy/
-triggers-dir: /root/cicv-data-closedloop/triggers/
-time-window-send-gap: 6
-rpc-port: 12341
-ros:
-  master-address: 192.168.1.104:11311
-  nodes:
-    - /adapters_nav
-    - /amcl
-    - /auto_dock
-    - /camera/camera
-    - /engine
-    - /lidar_filter_bz
-    - /localization_monitor_node
-    - /ltme_node
-    - /map_merge_node
-    - /mode_manage
-    - /monitor
-    - /move_base
-    - /node_diagnostics
-    - /node_map_convert
-    - /node_ota
-    - /pointcloud_to_laserscan
-    - /robot_pose_publisher_node
-    - /robot_state_publisher
-    - /robot_static_node
-    - /rosout
-    - /scan_map_icp_amcl_node
-    - /sensor_fusion_node
-    - /slip_check_node
-    - /srf_laser_odometry_node
-    - /trii_receive
-
-hosts:
-  - name: node1
-    ip: 192.168.1.104
-    rosbag:
-      path: "/opt/ros/melodic/bin/rosbag"
-      envs:
-        - "C_INCLUDE_PATH=/usr/include/drm:"
-        - "USER=root"
-        - "ROS_PACKAGE_PATH=/opt/ros/melodic/share"
-        - "LD_LIBRARY_PATH=/opt/ros/melodic/lib:/opt/ros/melodic/lib/aarch64-linux-gnu"
-        - "ROS_ETC_DIR=/opt/ros/melodic/etc/ros"
-        - "SHLVL=1"
-        - "HOME=/root"
-        - "ROS_PYTHON_VERSION=2"
-        - "PCMANFM_OUTLINE_MODE=on"
-        - "CPLUS_INCLUDE_PATH=/usr/include/drm:"
-        - "ROS_DISTRO=melodic"
-        - "ROS_VERSION=1"
-        - "PKG_CONFIG_PATH=/opt/ros/melodic/lib/pkgconfig"
-        - "PATH=/opt/ros/melodic/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/go/bin:/root/go/bin"
-        - "ROS_ROOT=/opt/ros/melodic/share/ros"
-        - "ROSLISP_PACKAGE_DIRECTORIES="
-        - "ROS_MASTER_URI=http://192.168.1.104:11311"
-        - "PYTHONPATH=/opt/ros/melodic/lib/python2.7/dist-packages"
-        - "ROS_HOSTNAME=192.168.1.104"
-        - "CMAKE_PREFIX_PATH=/opt/ros/melodic"
-    topics:
-      - /amcl_pose
-      - /camera/color/image_raw
-#      - /camera/depth/points
-      - /diagnostics
-      - /locate_info
-      - /obstacle_detection
-      - /odom
-      - /move_base/global_costmap/costmap
-      - /move_base/global_costmap/costmap_updates
-      - /move_base/local_costmap/costmap
-      - /move_base/local_costmap/costmap_updates
-      - /scan
-      - /scan_map_icp_amcl_node/scan_point_transformed
-      - /sys_info
-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
-  - 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
-  - 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
-  - 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
-  - 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
-  - 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
-  - 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

+ 0 - 18
aarch64/pjibot_patrol/common/config/yaml/引导机器人默认配置文件单摄像头-local-config.yaml

@@ -1,18 +0,0 @@
-type: 1 # 机器人类型 1 引导机器人 2 配送机器人 3 巡检机器人
-node:
-  name: node1
-  ip: 192.168.1.104
-rosparam-path: /opt/ros/melodic/bin/rosparam
-# 获取oss连接信息的接口url
-url-get-oss-config: http://36.110.106.156:18379/oss/config?token=nXonLUcMtGcrQqqKiyygIwyVbvizE0wD
-# 朴津机器人数据前缀
-oss-base-prefix: pji/
-# oss上的配置文件的名称
-cloud-config-filename: cloud-config.yaml
-# 将oss上的配置文件下载到本地的路径
-cloud-config-local-path: /root/cicv-data-closedloop/config/cloud-config.yaml
-restart-cmd:
-  dir: "/root/cicv-data-closedloop/"
-  name: "sh"
-  args:
-    - "start-master.sh"

+ 0 - 203
aarch64/pjibot_patrol/common/config/yaml/引导机器人默认配置文件双摄像头-cloud-config.yaml

@@ -1,203 +0,0 @@
----
-collect-limit:
-  url: http://36.110.106.142:12341/web_server/collect_limit/can_collect
-  day: 1
-  week: 7
-  month: 31
-  year: 366
-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-device-auth: http://36.110.106.156:11121/device/auth
-  url-task-poll: http://36.110.106.156:11121/device/task/poll
-  url-task: http://36.110.106.156:11121/device/task
-bag-number: 60
-config-refresh-interval: 60
-disk:
-  name: /dev/mmcblk0p8 # 磁盘名称
-  used: 20000000000 # 磁盘占用阈值,单位bytes
-map-buf-files:
-  - /root/pjirobot/data/mapBuf/forbid_area.json
-  - /root/pjirobot/data/mapBuf/forbid_area.yaml
-  - /root/pjirobot/data/mapBuf/forbid_area_init.json
-  - /root/pjirobot/data/mapBuf/forbid_area_init.yaml
-  - /root/pjirobot/data/mapBuf/function_area.json
-  - /root/pjirobot/data/mapBuf/function_area_init.json
-  - /root/pjirobot/data/mapBuf/function_links.json
-  - /root/pjirobot/data/mapBuf/map.json
-  - /root/pjirobot/data/mapBuf/map.pbstream
-  - /root/pjirobot/data/mapBuf/map.pgm
-  - /root/pjirobot/data/mapBuf/map.yaml
-  - /root/pjirobot/data/mapBuf/map_type.json
-  - /root/pjirobot/data/mapBuf/param.yaml
-  - /root/pjirobot/data/mapBuf/stations.json
-  - /root/pjirobot/data/mapBuf/stations_init.json
-map-bag-path: /root/cicv-data-closedloop/map.bag
-#bag-data-dir: /root/cicv-data-closedloop/data/
-#bag-copy-dir: /root/cicv-data-closedloop/copy/
-#triggers-dir: /root/cicv-data-closedloop/triggers/
-bag-data-dir: /root/pjirobot/data/cicv-data-closedloop/data/
-bag-copy-dir: /root/pjirobot/data/cicv-data-closedloop/copy/
-triggers-dir: /root/pjirobot/data/cicv-data-closedloop/triggers/
-time-window-send-gap: 6
-rpc-port: 12341
-ros:
-  master-address: 192.168.1.104:11311
-  nodes:
-    - /amcl
-    - /ob_camera_01/camera
-    - /ob_camera_02/camera
-    - /node_diagnostics
-    - /localization_monitor_node
-    - /move_base
-    - /sensor_fusion_node
-    - /ltme_node
-    - /scan_map_icp_amcl_node
-    - /monitor
-
-hosts:
-  - name: node1
-    ip: 192.168.1.104
-    rosbag:
-      path: "/opt/ros/melodic/bin/rosbag"
-      envs:
-        - "C_INCLUDE_PATH=/usr/include/drm:"
-        - "USER=root"
-        - "ROS_PACKAGE_PATH=/opt/ros/melodic/share"
-        - "LD_LIBRARY_PATH=/opt/ros/melodic/lib:/opt/ros/melodic/lib/aarch64-linux-gnu"
-        - "ROS_ETC_DIR=/opt/ros/melodic/etc/ros"
-        - "SHLVL=1"
-        - "HOME=/root"
-        - "ROS_PYTHON_VERSION=2"
-        - "PCMANFM_OUTLINE_MODE=on"
-        - "CPLUS_INCLUDE_PATH=/usr/include/drm:"
-        - "ROS_DISTRO=melodic"
-        - "ROS_VERSION=1"
-        - "PKG_CONFIG_PATH=/opt/ros/melodic/lib/pkgconfig"
-        - "PATH=/opt/ros/melodic/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/go/bin:/root/go/bin"
-        - "ROS_ROOT=/opt/ros/melodic/share/ros"
-        - "ROSLISP_PACKAGE_DIRECTORIES="
-        - "ROS_MASTER_URI=http://192.168.1.104:11311"
-        - "PYTHONPATH=/opt/ros/melodic/lib/python2.7/dist-packages"
-        - "ROS_HOSTNAME=192.168.1.104"
-        - "CMAKE_PREFIX_PATH=/opt/ros/melodic"
-    topics:
-      - /amcl_pose # /amcl
-      - /ob_camera_01/color/image_raw # /ob_camera_01/camera
-      #      - /ob_camera_01/depth/points # /ob_camera_01/camera
-      - /ob_camera_02/color/image_raw # /ob_camera_02/camera
-      #      - /ob_camera_02/depth/points # /ob_camera_02/camera
-      - /diagnostics # /amcl /node_diagnostics
-      - /locate_info # /localization_monitor_node
-      - /obstacle_detection # /move_base
-      - /odom # /sensor_fusion_node
-      - /move_base/global_costmap/costmap # /move_base
-      - /move_base/global_costmap/costmap_updates # /move_base
-      - /move_base/local_costmap/costmap # /move_base
-      - /move_base/local_costmap/costmap_updates # /move_base
-      - /scan # /ltme_node
-      - /scan_map_icp_amcl_node/scan_point_transformed # /scan_map_icp_amcl_node
-      - /sys_info
-      #      - /cmd_vel
-      - /imu
-      # 算法评价新增
-      - /depth_scan_02
-      - /map
-      - /scan_filtered
-      - /sonar_left
-      - /sonar_right
-      - /sonar_mid
-      - /sonar_rmid
-      - /tf
-      - /tf_static
-      - /cmd_vel
-      - /move_base/DWAPlannerROS/global_plan
-      - /move_base/DWAPlannerROS/local_plan
-      - /move_base/GlobalPlanner/plan
-      - /move_base/global_costmap/footprint
-      - /move_base/local_costmap/footprint
-      - /robot_pose_tf
-
-
-full-collect: true # 控制是否根据不同的触发器采集不通的topic,一般设置为true,即忽略下面的配置
-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
-  - 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
-  - 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
-  - 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
-  - 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
-  - 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
-  - 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

+ 0 - 18
aarch64/pjibot_patrol/common/config/yaml/引导机器人默认配置文件双摄像头-local-config.yaml

@@ -1,18 +0,0 @@
-type: 1 # 机器人类型 1 引导机器人 2 配送机器人 3 巡检机器人
-node:
-  name: node1
-  ip: 192.168.1.104
-rosparam-path: /opt/ros/melodic/bin/rosparam
-# 获取oss连接信息的接口url
-url-get-oss-config: http://36.110.106.156:18379/oss/pji?token=nXonLUcMtGcrQqqKiyygIwyVbvizE0wD
-# 朴津机器人数据前缀
-oss-base-prefix: pji-double-camera/
-# oss上的配置文件的名称
-cloud-config-filename: cloud-config.yaml
-# 将oss上的配置文件下载到本地的路径
-cloud-config-local-path: /root/cicv-data-closedloop/config/cloud-config.yaml
-restart-cmd:
-  dir: "/root/cicv-data-closedloop/"
-  name: "sh"
-  args:
-    - "start-master.sh"

+ 0 - 159
aarch64/pjibot_patrol/common/config/yaml/配送机器人默认配置文件-cloud-config.yaml

@@ -1,159 +0,0 @@
----
-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
-
-bag-number: 60
-config-refresh-interval: 60
-disk:
-  name: /dev/sda1 # 磁盘名称
-  used: 60000000000 # 磁盘占用阈值,单位bytes
-map-bag-path: /root/cicv-data-closedloop/map.bag
-tfstatic-bag-path: /root/cicv-data-closedloop/tf_static.bag
-costmap-bag-path: /root/cicv-data-closedloop/costmap.bag
-bag-data-dir: /root/cicv-data-closedloop/data/
-bag-copy-dir: /root/cicv-data-closedloop/copy/
-triggers-dir: /root/cicv-data-closedloop/triggers/
-time-window-send-gap: 6
-rpc-port: 12341
-ros:
-  master-address: 192.168.1.104:11311
-  nodes:
-    - /amcl
-    - /ob_camera_01/camera
-    - /ob_camera_02/camera
-    - /node_diagnostics
-    - /localization_monitor_node
-    - /move_base
-    - /sensor_fusion_node
-    - /ltme_node
-    - /scan_map_icp_amcl_node
-    - /monitor
-
-hosts:
-  - name: node1
-    ip: 192.168.1.104
-    rosbag:
-      path: "/opt/ros/melodic/bin/rosbag"
-      envs:
-        - "C_INCLUDE_PATH=/usr/include/drm:"
-        - "USER=root"
-        - "ROS_PACKAGE_PATH=/opt/ros/melodic/share"
-        - "LD_LIBRARY_PATH=/opt/ros/melodic/lib:/opt/ros/melodic/lib/aarch64-linux-gnu"
-        - "ROS_ETC_DIR=/opt/ros/melodic/etc/ros"
-        - "SHLVL=1"
-        - "HOME=/root"
-        - "ROS_PYTHON_VERSION=2"
-        - "PCMANFM_OUTLINE_MODE=on"
-        - "CPLUS_INCLUDE_PATH=/usr/include/drm:"
-        - "ROS_DISTRO=melodic"
-        - "ROS_VERSION=1"
-        - "PKG_CONFIG_PATH=/opt/ros/melodic/lib/pkgconfig"
-        - "PATH=/opt/ros/melodic/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/go/bin:/root/go/bin"
-        - "ROS_ROOT=/opt/ros/melodic/share/ros"
-        - "ROSLISP_PACKAGE_DIRECTORIES="
-        - "ROS_MASTER_URI=http://192.168.1.104:11311"
-        - "PYTHONPATH=/opt/ros/melodic/lib/python2.7/dist-packages"
-        - "ROS_HOSTNAME=192.168.1.104"
-        - "CMAKE_PREFIX_PATH=/opt/ros/melodic"
-    topics:
-      - /robot_pose
-      - /robot/realtime_cost_map_
-      - /tracking/objects
-      - /robot/TaskInfo
-      - /robot/targetposition
-      - /wheel
-      - /wheel_odom
-      - /robot/global_trajectory_
-      - /robot/target_trajectories
-      - /robot/evaluator_trajectories
-      - /robot/final_trajectory
-      - /nav/task_feedback_info
-      - /cmd_vel
-      - /imu
-      - /points_cluster
-      - /nav/task_feedback_info
-
-
-full-collect: true # 控制是否根据不同的触发器采集不通的topic,一般设置为true,即忽略下面的配置
-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
-  - 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
-  - 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
-  - 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
-  - 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
-  - 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
-  - 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

+ 0 - 19
aarch64/pjibot_patrol/common/config/yaml/配送机器人默认配置文件-local-config.yaml

@@ -1,19 +0,0 @@
-type: 2 # 机器人类型 1 引导机器人 2 配送机器人 3 巡检机器人
-node:
-  name: node1
-  ip: 192.168.1.104
-rosparam-path: /opt/ros/melodic/bin/rosparam
-# 获取oss连接信息的接口url
-#url-get-oss-config: http://36.110.106.156:18379/oss/config?token=nXonLUcMtGcrQqqKiyygIwyVbvizE0wD # 国汽数据闭环
-url-get-oss-config: http://36.110.106.156:18379/oss/pji?token=nXonLUcMtGcrQqqKiyygIwyVbvizE0wD # 朴津数据闭环
-# 朴津机器人数据前缀
-oss-base-prefix: pjibot-delivery/
-# oss上的配置文件的名称
-cloud-config-filename: cloud-config.yaml
-# 将oss上的配置文件下载到本地的路径
-cloud-config-local-path: /root/cicv-data-closedloop/config/cloud-config.yaml
-restart-cmd:
-  dir: "/root/cicv-data-closedloop/"
-  name: "sh"
-  args:
-    - "start-master.sh"

+ 0 - 4
aarch64/pjibot_patrol/common/service/rosbag_upload.go

@@ -9,7 +9,6 @@ import (
 	"cicv-data-closedloop/common/util"
 	"fmt"
 	"os"
-	"path/filepath"
 	"strings"
 	"time"
 )
@@ -142,9 +141,6 @@ outLoop:
 		}
 		commonConfig.OssMutex.Lock()
 		err = commonConfig.OssBucket.PutObject(objectKey3+"callback.json", strings.NewReader(callBackJson))
-		for _, file := range commonConfig.CloudConfig.MapBufFiles {
-			err = commonConfig.OssBucket.PutObjectFromFile(objectKey3+filepath.Base(file), file)
-		}
 		commonConfig.OssMutex.Unlock()
 		if err != nil {
 			c_log.GlobalLogger.Error("上传 callback.json 或 mapBuf 文件失败:", err)

+ 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, "成功。")
+//}

+ 2 - 12
common/entity/time_window.go

@@ -9,21 +9,11 @@ import (
 var (
 	TimeWindowProducerQueue      []TimeWindow
 	TimeWindowProducerQueueMutex sync.RWMutex
+	TimeWindowProducerChannel    = make(chan TimeWindow)
 
 	TimeWindowConsumerQueue      []TimeWindow
 	TimeWindowConsumerQueueMutex sync.RWMutex
-	Subscriber0Time              = time.Date(2023, time.November, 23, 10, 30, 0, 0, time.UTC)
-	Subscriber0TimeMutex         sync.Mutex
-	Subscriber1Time              = time.Date(2023, time.November, 23, 10, 30, 0, 0, time.UTC)
-	Subscriber1TimeMutex         sync.Mutex
-	Subscriber2Time              = time.Date(2023, time.November, 23, 10, 30, 0, 0, time.UTC)
-	Subscriber2TimeMutex         sync.Mutex
-	Subscriber3Time              = time.Date(2023, time.November, 23, 10, 30, 0, 0, time.UTC)
-	Subscriber3TimeMutex         sync.Mutex
-	Subscriber4Time              = time.Date(2023, time.November, 23, 10, 30, 0, 0, time.UTC)
-	Subscriber4TimeMutex         sync.Mutex
-	Subscriber5Time              = time.Date(2023, time.November, 23, 10, 30, 0, 0, time.UTC)
-	Subscriber5TimeMutex         sync.Mutex
+	TimeWindowConsumerChannel    = make(chan TimeWindow)
 
 	TcpSendTime      = time.Date(2023, time.November, 23, 10, 30, 0, 0, time.UTC)
 	TcpSendTimeMutex sync.Mutex

+ 0 - 73
deploy/build-pji-plugin.sh

@@ -1,73 +0,0 @@
-#!/bin/bash
-
-# 朴津机器人插件
-go build --buildmode=plugin -o ./so/pji/overspeed.so ./trigger/pji/odom/overspeed/main/main.go
-go build --buildmode=plugin -o ./so/pji/obstacledetection.so ./trigger/pji/obstacle_detection/obstacledetection/main/main.go
-go build --buildmode=plugin -o ./so/pji/cpuoveroccupied.so ./trigger/pji/sys_info/cpuoveroccupied/main/main.go
-go build --buildmode=plugin -o ./so/pji/memoveroccupied.so ./trigger/pji/sys_info/memoveroccupied/main/main.go
-go build --buildmode=plugin -o ./so/pji/locationfailed.so ./trigger/pji/locate_info/locationfailed/main/main.go
-go build --buildmode=plugin -o ./so/pji/unstabledriving.so ./trigger/pji/imu/unstabledriving/main/main.go
-#go build --buildmode=plugin -o ./so/pji/errorcode#1#21031701.so ./trigger/pji/diagnostics/errorcode#1#21031701/main/main.go
-#go build --buildmode=plugin -o ./so/pji/errorcode#1#21031702.so ./trigger/pji/diagnostics/errorcode#1#21031702/main/main.go
-#go build --buildmode=plugin -o ./so/pji/errorcode#2#21020001.so ./trigger/pji/diagnostics/errorcode#2#21020001/main/main.go
-#go build --buildmode=plugin -o ./so/pji/errorcode#2#21020401.so ./trigger/pji/diagnostics/errorcode#2#21020401/main/main.go
-#go build --buildmode=plugin -o ./so/pji/errorcode#2#21020501.so ./trigger/pji/diagnostics/errorcode#2#21020501/main/main.go
-#go build --buildmode=plugin -o ./so/pji/errorcode#2#21020601.so ./trigger/pji/diagnostics/errorcode#2#21020601/main/main.go
-#go build --buildmode=plugin -o ./so/pji/errorcode#2#21021101.so ./trigger/pji/diagnostics/errorcode#2#21021101/main/main.go
-#go build --buildmode=plugin -o ./so/pji/errorcode#2#21030001.so ./trigger/pji/diagnostics/errorcode#2#21030001/main/main.go
-#go build --buildmode=plugin -o ./so/pji/errorcode#2#21030401.so ./trigger/pji/diagnostics/errorcode#2#21030401/main/main.go
-#go build --buildmode=plugin -o ./so/pji/errorcode#2#21030501.so ./trigger/pji/diagnostics/errorcode#2#21030501/main/main.go
-#go build --buildmode=plugin -o ./so/pji/errorcode#2#21030601.so ./trigger/pji/diagnostics/errorcode#2#21030601/main/main.go
-#go build --buildmode=plugin -o ./so/pji/errorcode#2#21030701.so ./trigger/pji/diagnostics/errorcode#2#21030701/main/main.go
-#go build --buildmode=plugin -o ./so/pji/errorcode#2#21030702.so ./trigger/pji/diagnostics/errorcode#2#21030702/main/main.go
-#go build --buildmode=plugin -o ./so/pji/errorcode#2#21030801.so ./trigger/pji/diagnostics/errorcode#2#21030801/main/main.go
-#go build --buildmode=plugin -o ./so/pji/errorcode#2#21030802.so ./trigger/pji/diagnostics/errorcode#2#21030802/main/main.go
-#go build --buildmode=plugin -o ./so/pji/errorcode#2#21031001.so ./trigger/pji/diagnostics/errorcode#2#21031001/main/main.go
-#go build --buildmode=plugin -o ./so/pji/errorcode#2#21031101.so ./trigger/pji/diagnostics/errorcode#2#21031101/main/main.go
-#go build --buildmode=plugin -o ./so/pji/errorcode#2#21031201.so ./trigger/pji/diagnostics/errorcode#2#21031201/main/main.go
-#go build --buildmode=plugin -o ./so/pji/errorcode#2#21031403.so ./trigger/pji/diagnostics/errorcode#2#21031403/main/main.go
-#go build --buildmode=plugin -o ./so/pji/errorcode#2#21031404.so ./trigger/pji/diagnostics/errorcode#2#21031404/main/main.go
-#go build --buildmode=plugin -o ./so/pji/errorcode#2#21040803.so ./trigger/pji/diagnostics/errorcode#2#21040803/main/main.go
-#go build --buildmode=plugin -o ./so/pji/errorcode#2#21041001.so ./trigger/pji/diagnostics/errorcode#2#21041001/main/main.go
-#go build --buildmode=plugin -o ./so/pji/errorcode#2#21041102.so ./trigger/pji/diagnostics/errorcode#2#21041102/main/main.go
-#go build --buildmode=plugin -o ./so/pji/errorcode#2#21050701.so ./trigger/pji/diagnostics/errorcode#2#21050701/main/main.go
-#go build --buildmode=plugin -o ./so/pji/errorcode#2#21050703.so ./trigger/pji/diagnostics/errorcode#2#21050703/main/main.go
-#go build --buildmode=plugin -o ./so/pji/errorcode#2#21050801.so ./trigger/pji/diagnostics/errorcode#2#21050801/main/main.go
-#go build --buildmode=plugin -o ./so/pji/errorcode#2#21051401.so ./trigger/pji/diagnostics/errorcode#2#21051401/main/main.go
-#go build --buildmode=plugin -o ./so/pji/errorcode#2#21051402.so ./trigger/pji/diagnostics/errorcode#2#21051402/main/main.go
-#go build --buildmode=plugin -o ./so/pji/errorcode#4#21050101.so ./trigger/pji/diagnostics/errorcode#4#21050101/main/main.go
-#go build --buildmode=plugin -o ./so/pji/errorcode#4#21050201.so ./trigger/pji/diagnostics/errorcode#4#21050201/main/main.go
-#go build --buildmode=plugin -o ./so/pji/errorcode#4#21050202.so ./trigger/pji/diagnostics/errorcode#4#21050202/main/main.go
-#go build --buildmode=plugin -o ./so/pji/errorcode#4#21050301.so ./trigger/pji/diagnostics/errorcode#4#21050301/main/main.go
-go build --buildmode=plugin -o ./so/pji/errorcode#5#21030907.so ./trigger/pji/diagnostics/errorcode#5#21030907/main/main.go
-go build --buildmode=plugin -o ./so/pji/errorcode#5#21030908.so ./trigger/pji/diagnostics/errorcode#5#21030908/main/main.go
-go build --buildmode=plugin -o ./so/pji/errorcode#5#21031511.so ./trigger/pji/diagnostics/errorcode#5#21031511/main/main.go
-go build --buildmode=plugin -o ./so/pji/errorcode#5#21031512.so ./trigger/pji/diagnostics/errorcode#5#21031512/main/main.go
-go build --buildmode=plugin -o ./so/pji/errorcode#5#21031513.so ./trigger/pji/diagnostics/errorcode#5#21031513/main/main.go
-go build --buildmode=plugin -o ./so/pji/errorcode#5#21031514.so ./trigger/pji/diagnostics/errorcode#5#21031514/main/main.go
-go build --buildmode=plugin -o ./so/pji/errorcode#5#21031603.so ./trigger/pji/diagnostics/errorcode#5#21031603/main/main.go
-go build --buildmode=plugin -o ./so/pji/errorcode#5#21031604.so ./trigger/pji/diagnostics/errorcode#5#21031604/main/main.go
-go build --buildmode=plugin -o ./so/pji/errorcode#5#21031605.so ./trigger/pji/diagnostics/errorcode#5#21031605/main/main.go
-go build --buildmode=plugin -o ./so/pji/errorcode#5#21041501.so ./trigger/pji/diagnostics/errorcode#5#21041501/main/main.go
-go build --buildmode=plugin -o ./so/pji/errorcode#5#21041502.so ./trigger/pji/diagnostics/errorcode#5#21041502/main/main.go
-go build --buildmode=plugin -o ./so/pji/errorcode#5#21041503.so ./trigger/pji/diagnostics/errorcode#5#21041503/main/main.go
-go build --buildmode=plugin -o ./so/pji/errorcode#5#21041504.so ./trigger/pji/diagnostics/errorcode#5#21041504/main/main.go
-go build --buildmode=plugin -o ./so/pji/errorcode#5#21041505.so ./trigger/pji/diagnostics/errorcode#5#21041505/main/main.go
-go build --buildmode=plugin -o ./so/pji/errorcode#5#21041506.so ./trigger/pji/diagnostics/errorcode#5#21041506/main/main.go
-go build --buildmode=plugin -o ./so/pji/errorcode#5#21041507.so ./trigger/pji/diagnostics/errorcode#5#21041507/main/main.go
-go build --buildmode=plugin -o ./so/pji/errorcode#5#21041508.so ./trigger/pji/diagnostics/errorcode#5#21041508/main/main.go
-go build --buildmode=plugin -o ./so/pji/errorcode#5#21041510.so ./trigger/pji/diagnostics/errorcode#5#21041510/main/main.go
-go build --buildmode=plugin -o ./so/pji/errorcode#5#21041601.so ./trigger/pji/diagnostics/errorcode#5#21041601/main/main.go
-go build --buildmode=plugin -o ./so/pji/errorcode#5#21041602.so ./trigger/pji/diagnostics/errorcode#5#21041602/main/main.go
-go build --buildmode=plugin -o ./so/pji/errorcode#5#21041606.so ./trigger/pji/diagnostics/errorcode#5#21041606/main/main.go
-go build --buildmode=plugin -o ./so/pji/errorcode#5#21050901.so ./trigger/pji/diagnostics/errorcode#5#21050901/main/main.go
-go build --buildmode=plugin -o ./so/pji/errorcode#5#21050902.so ./trigger/pji/diagnostics/errorcode#5#21050902/main/main.go
-go build --buildmode=plugin -o ./so/pji/errorcode#5#21050904.so ./trigger/pji/diagnostics/errorcode#5#21050904/main/main.go
-go build --buildmode=plugin -o ./so/pji/errorcode#5#21050905.so ./trigger/pji/diagnostics/errorcode#5#21050905/main/main.go
-go build --buildmode=plugin -o ./so/pji/errorcode#5#21050906.so ./trigger/pji/diagnostics/errorcode#5#21050906/main/main.go
-go build --buildmode=plugin -o ./so/pji/errorcode#5#21051509.so ./trigger/pji/diagnostics/errorcode#5#21051509/main/main.go
-go build --buildmode=plugin -o ./so/pji/errorcode#5#21051704.so ./trigger/pji/diagnostics/errorcode#5#21051704/main/main.go
-go build --buildmode=plugin -o ./so/pji/errorcode#5#21051705.so ./trigger/pji/diagnostics/errorcode#5#21051705/main/main.go
-go build --buildmode=plugin -o ./so/pji/errorcode#5#21051706.so ./trigger/pji/diagnostics/errorcode#5#21051706/main/main.go
-go build --buildmode=plugin -o ./so/pji/errorcode#5#21051707.so ./trigger/pji/diagnostics/errorcode#5#21051707/main/main.go
-go build --buildmode=plugin -o ./so/pji/errorcode#5#21051708.so ./trigger/pji/diagnostics/errorcode#5#21051708/main/main.go

+ 14 - 3
deploy/build-pji.sh

@@ -1,5 +1,16 @@
 #!/bin/bash
 
-# 朴津机器人
-go build -o ./exe/pji-master.exe ./aarch64/pji/master/main.go
-go build -o ./exe/pji-control.exe ./aarch64/pji/control/main.go
+
+mkdir -p ./deploy/exe/pjibot_delivery/
+mkdir -p ./deploy/exe/pjibot_guide/
+mkdir -p ./deploy/exe/pjibot_patrol/
+
+# 配送机器人
+go build -o ./deploy/exe/pjibot_delivery/pji_control.exe ./aarch64/pjibot_delivery/control/main.go
+go build -o ./deploy/exe/pjibot_delivery/pji_master.exe ./aarch64/pjibot_delivery/master/main.go
+# 引导机器人
+go build -o ./deploy/exe/pjibot_guide/pji_control.exe ./aarch64/pjibot_guide/control/main.go
+go build -o ./deploy/exe/pjibot_guide/pji_master.exe ./aarch64/pjibot_guide/master/main.go
+# 巡检机器人
+go build -o ./deploy/exe/pjibot_patrol/pji_control.exe ./aarch64/pjibot_patrol/control/main.go
+go build -o ./deploy/exe/pjibot_patrol/pji_master.exe ./aarch64/pjibot_patrol/master/main.go

+ 7 - 0
test/context_test.go

@@ -0,0 +1,7 @@
+package test
+
+import "testing"
+
+func TestContest(t *testing.T) {
+
+}

+ 1 - 1
trigger/pjisuv/cicv_location/FindTrafficLight/main/FindTrafficLight.go

@@ -10,7 +10,7 @@ func Topic() string {
 	return "/cicv_location"
 }
 
-// Label todo 禁止存在下划线_
+// todo 禁止存在下划线_
 func Label() string {
 	return "FindTrafficLight"
 }