Jelajahi Sumber

refactor: 统一world生成脚本

HeWang 9 bulan lalu
induk
melakukan
eeca1ed1a5

+ 38 - 0
simulation/catkin_map2gazebo/typescript

@@ -0,0 +1,38 @@
+Script started on 2024-09-05 14:54:49+08:00 [<not executed on terminal>]
+... logging to /home/cicv/.ros/log/5542e4d2-6b27-11ef-96f6-69cf46c1d264/roslaunch-rosgo-386772.log
+Checking log directory for disk usage. This may take a while.
+Press Ctrl-C to interrupt
+WARNING: disk usage in log directory [/home/cicv/.ros/log] is over 1GB.
+It's recommended that you use the 'rosclean' command.
+]2;/home/cicv/work/pji_desktop/simulation/catkin_map2gazebo/src/launch/map2gazebo.launch
+started roslaunch server http://rosgo:42825/
+
+SUMMARY
+========
+
+PARAMETERS
+ * /map2gazebo/box_height: 2.0
+ * /map2gazebo/export_dir: /home/cicv/work/p...
+ * /map2gazebo/map_topic: map
+ * /map2gazebo/mesh_type: stl
+ * /map2gazebo/occupied_thresh: 1
+ * /rosdistro: noetic
+ * /rosversion: 1.16.0
+
+NODES
+  /
+    map2gazebo (map2gazebo/map2gazebo.py)
+
+ROS_MASTER_URI=http://localhost:11311
+]2;/home/cicv/work/pji_desktop/simulation/catkin_map2gazebo/src/launch/map2gazebo.launch http://localhost:11311
+process[map2gazebo-1]: started with pid [386786]
+[INFO] [1725519290.244895, 0.000000]: map2gazebo running
+shutdown request: user request
+[map2gazebo-1] process has finished cleanly
+log file: /home/cicv/.ros/log/5542e4d2-6b27-11ef-96f6-69cf46c1d264/map2gazebo-1*.log
+all processes on machine have died, roslaunch will exit
+shutting down processing monitor...
+... shutting down processing monitor complete
+done
+
+Script done on 2024-09-05 14:55:39+08:00 [COMMAND_EXIT_CODE="0"]

TEMPAT SAMPAH
simulation/data/map_bag/map1.bag


TEMPAT SAMPAH
simulation/data/old_bag/example.bag


+ 3 - 3
simulation/data/pjirobot/data/buf/buf.json

@@ -2,11 +2,11 @@
    "attitude" : {
       "x" : 0,
       "y" : -0,
-      "z" : 0.46237479287209593
+      "z" : 0.42355924338733952
    },
    "position" : {
-      "x" : -0.45412400102843009,
-      "y" : -0.16378315727355586,
+      "x" : 0.5579254990375685,
+      "y" : 0.025661823534708389,
       "z" : 0
    }
 }

+ 4 - 0
simulation/data/pjirobot/data/config/static_config.json

@@ -1,6 +1,10 @@
 {
    "modeTypes" : null,
    "netConfig" : {
+      "accessKey" : "sicEVjENPgTIoXLfpQLKrUfFxOazYg",
+      "capem" : "-----BEGIN CERTIFICATE-----\nMIIDcTCCAlmgAwIBAgIJAMN+Bt2mf59BMA0GCSqGSIb3DQEBCwUAME8xCzAJBgNV\nBAYTAkNOMRAwDgYDVQQIDAdKaWFuZ3N1MQ8wDQYDVQQHDAZTdXpob3UxDDAKBgNV\nBAoMA1hYWDEPMA0GA1UEAwwGU2VsZkNBMB4XDTIzMDIwNzAyMTIxOVoXDTMzMDIw\nNDAyMTIxOVowTzELMAkGA1UEBhMCQ04xEDAOBgNVBAgMB0ppYW5nc3UxDzANBgNV\nBAcMBlN1emhvdTEMMAoGA1UECgwDWFhYMQ8wDQYDVQQDDAZTZWxmQ0EwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvVr7SwVajd41tRkiSZI8KkCX6yuNa\np1btHCDnncQhlKOoTHgiV56EYAPw/P6w+7hOPDUcpUepfG67qcVgs+9pWvLx6ECv\n94UXtCOVsST/NQe8lbMAJSwLDr9J6kfeKqUtgX2arpc5QjIwJoT19tOv9ITHn3Hr\nr1LjT+PSghFgJuTJK40aLVr2dJAeL4ne/dQp5rbC1El1hk4vYfh1Ept6hptPuwMp\n/L6ah5zsHYdC+vxrT+YaxOPZc3kD0M+Gx4PyXCz2yBq/6TsgET1/DZDzdFG4nVgn\nFiqJ9Bdr/4aXXtsF1SApdcPxIRLxmowAz/og3dEBCju+4Mx7fwKvmk9RAgMBAAGj\nUDBOMB0GA1UdDgQWBBRt9nealGx2UWeLlOSC92NEdUThtzAfBgNVHSMEGDAWgBRt\n9nealGx2UWeLlOSC92NEdUThtzAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBCwUA\nA4IBAQBfWHkb3+aPzbD+Hanaht18PLWl6JQmFUZ3/X6VJ80Wo3Uo5uZo7SyrmcuG\n72NeTwLnWEymqguXhgD1wK78Fx1UAsM3y/emqL69O9Fecw5IVXlSzEmFrPQbT/j0\nDEt8iRmH/X0fU/sVUiZ+NpCWLWwibko8kSy6et0wqXwlU50zzMrCcQmIHSAYPhbt\nnTK8T92VFMHokTt5KT8QPKQ4YXkbwnhoDYOjz58hHltsWWNvHVroraAGQfvU7cPf\nTAG2E9vOtBDVv6HzLQRouG212VDoxPufOKTw+GHwkkxk1KDNbJFMRhFopolltcVQ\nX7HZTyfbxiN9luP/M+8CeqeJutOk\n-----END CERTIFICATE-----\n",
+      "clientkey" : "-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEA3brod3HpHWgF1koV2mJpJaEWyf8MBu5igR6ebVACEP1K5xI8\nE3xP6f7TTNdJCK08PEnn3ytmP9DveSuK78qaUzq+HbJgxyJIHiaohcsKZ3MO48n4\nT+T8Sbs9eL1ovYYS2Yz10sgVwow03i/rv9YbUzz0MKT0Akpp3uHKZHK6NrwZskML\npMbq2UbVrv9SX0QhDDsqwFzIMpmvIy50fkLriSL/1v64GhCWk1uBPq0+3edlMdKb\neievG5sj6hn+wObawJLt1nlzvNEf0otgROt/tGPvO+An6ZqbNlwWKAXYq05HIuSL\nqGisGc2c6ZoP78Ih2xdlvVzNK22D10ysRoNduwIDAQABAoIBAQDBzfQRKySqCllH\nw3u0ZV4ogNQNfPtDN6wr1dp+C3ey5+JHdJ3EHl0vVwfT2zy/88N5otOkMifuUa5v\nR8rp6znW07qG9Ho4tFM632lfgGg4oc369ncvRiPqQlnppgzd00m4k8fuE+tJIAm5\nx0MVa4x4xgdeWV/afLZrFQo1oD35RfHJfCyDMkgFK7xkKylm7grYqQ4fRLteOiBJ\nZVs8NT+h3ZzD3BvTMUPetYZmCcXdk2vWqC7oqISnLD7VkPx5j5l+7ZCRb5xfAhfO\n3sX4FuexZsWTkOsTxsRNdmmb/6rwBUdfzf/sU5Bh0/1ZHzbCSLHyw/KaGchL2rTr\nuAmdf8W5AoGBAPPIsVJY9K5eTGL0EfTfiAH9ZcP4arEVLfS3KveD+2BSqvJYKHlP\nAMKxwBusrP7szK2mAKHIvCFdmnXKMYQ4SM8goaTg9ieGnmU+Bzw2cZjHT+19fNN3\nvF+KodH6QZCIhwffNYdxyMKBiWlNMDCWg2WeKdpbN8+C19TaRGKSDgAdAoGBAOjX\nTe/7bt2+YIJz46x+SO7Ndf9VsNt68TPlo9/u3itFWq8QAn6h0RBusoKZQyyP//IR\nYcAzFmB6B22rJFB+1HAWIEHBQ7jVW0FBO6dbiCw0KkNCIO0OD82mpcepGh+VzlMG\nrx7WpTfxudpOQIQ5AN1o3Q55N2fvFXMui4h+Fh23AoGAGQbZbWLEe8IihWYZEdKA\n2/NvpxaxnUxXU3AacR6Th+f0tLxoK0v5AAPPfQfVGrakrI8GMZWx+prpaH5BZxmA\nIANxlMOjgZtIV4xuobfVIaIUioT/c5YvOH+67RuL75KUijJYBHeh7JXvzWenMtXA\n14XNNiV3LU55adiefKAR3+ECgYA0Zof+syovMzILCcO6RS1quMiObx1/N3rjABJS\nSjKrsE8JSOQW1Zn0RcVcyNsqQzoJo0nJdHXbvnq/fp2MlA6BLymRQspX5YRE+kZP\nkrThpdfBDTfVwa1izddPSMo9Q3yMiNuOaCYEohz+eU/hseZ07a2aHUOP22mLY3U5\ngY6+nwKBgQCbCOYKtwvDFE4jHPTg6aOw84PnsVu4iwDvsCzIsiwG842UdIzzQG4S\nr9W/W/FwjjBquRnn+1ERz25aI9ONPH7l3tT0nsst4c4rqlWhPR19FE7LPK/HV2nj\ncetQsri/mIvh+7vevZfl033ZQLR9psy7RzI9vduVzL4fljSqJrNuWQ==\n-----END RSA PRIVATE KEY-----\n",
+      "clientpem" : "-----BEGIN CERTIFICATE-----\nMIIDGjCCAgICCQDyK58wtoNykzANBgkqhkiG9w0BAQsFADBPMQswCQYDVQQGEwJD\nTjEQMA4GA1UECAwHSmlhbmdzdTEPMA0GA1UEBwwGU3V6aG91MQwwCgYDVQQKDANY\nWFgxDzANBgNVBAMMBlNlbGZDQTAeFw0yMzAyMDcwMjEyMjBaFw0zMzAyMDQwMjEy\nMjBaME8xCzAJBgNVBAYTAkNOMRAwDgYDVQQIDAdKaWFuZ3N1MQ8wDQYDVQQHDAZT\ndXpob3UxDDAKBgNVBAoMA1hYWDEPMA0GA1UEAwwGY2xpZW50MIIBIjANBgkqhkiG\n9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3brod3HpHWgF1koV2mJpJaEWyf8MBu5igR6e\nbVACEP1K5xI8E3xP6f7TTNdJCK08PEnn3ytmP9DveSuK78qaUzq+HbJgxyJIHiao\nhcsKZ3MO48n4T+T8Sbs9eL1ovYYS2Yz10sgVwow03i/rv9YbUzz0MKT0Akpp3uHK\nZHK6NrwZskMLpMbq2UbVrv9SX0QhDDsqwFzIMpmvIy50fkLriSL/1v64GhCWk1uB\nPq0+3edlMdKbeievG5sj6hn+wObawJLt1nlzvNEf0otgROt/tGPvO+An6ZqbNlwW\nKAXYq05HIuSLqGisGc2c6ZoP78Ih2xdlvVzNK22D10ysRoNduwIDAQABMA0GCSqG\nSIb3DQEBCwUAA4IBAQCtrsf7RGG4Lo7bVyKP48l2zKcaDqaAcumvze11TyjjYBuO\nQDp8WeDXoa4rQFC1ZIXoQpnFOEBJIpYRnJmCxGUJCbnNvYnidxejhZI7icbdfi3V\nYNPGzXfwDEzM0ZmVVcMFROR1aNMBAAN5UokGZoOuUjLMCwnd94IwWC7itsMsoWhu\n3U8kVMzITcIgAyZC7CsTc3a5Fz9s/9KE6Q3SIjcnFA911nfWBvcZQ+ULykWLQCUh\nxXsLd4SmUHSlvmeFugg2YhRar0xgsC866g4yzdRVIoIHRuxbvhv1h12sSa3gafxv\nujaQLbxYHll+IdLLfedAkDjaLAryiTY3B0R3LIJ6\n-----END CERTIFICATE-----\n",
       "mqttIp" : "mqtt.chinapji.com",
       "mqttPort" : 1883,
       "passward" : "1646326924873211905",

+ 1 - 1
simulation/data/pjirobot/data/current_pos.json

@@ -1 +1 @@
-{"mapId":"f9db3830eb684b70b8418da07a8f698e","time":1688721624,"x":0.20351416077769877,"y":-0.081986468800190199,"yaw":0.05513219100999097}
+{"mapId":"ef3f63ac729c44c98ac0d07567d9c514","time":1695638344,"x":0,"y":0,"yaw":0}

TEMPAT SAMPAH
simulation/data/pjirobot/data/map.png


TEMPAT SAMPAH
simulation/data/record_bag/test.bag


+ 61 - 0
simulation/generate_world.sh

@@ -0,0 +1,61 @@
+#!/bin/bash
+# 检查到未定义的变量则停止执行并报错
+set -u
+
+# 检查参数数量
+if [ "$#" -ne 1 ]; then
+  echo "Error: Incorrect number of arguments"
+  echo "Usage: $0 BAG_PATH"
+  exit 1
+fi
+
+BAG_PATH=$1
+SIMULATION_PATH="/home/cicv/work/pji_desktop/simulation"
+MAP2GAZEBO_LOG_PATH="$SIMULATION_PATH/logs/run_map2gazebo.log"
+GAZEBO_WORLD_LOG_PATH="$SIMULATION_PATH/logs/gazebo_world.log"
+MAP2GAZEBO_START_FLAG="map2gazebo running"
+GAZEBO_WORLD_END_FLAG="Exported STL"
+
+# 激活conda环境
+source activate simulation
+
+# 清除环境
+## kill ros节点
+rosnode kill --all
+## 删除历史日志
+if [ -f "$MAP2GAZEBO_LOG_PATH" ]; then
+  rm "$MAP2GAZEBO_LOG_PATH"
+fi
+sleep 0.5
+
+# 执行命令
+command="cd $SIMULATION_PATH/catkin_map2gazebo && rm -r build devel && catkin_make && source devel/setup.bash && roslaunch --screen map2gazebo map2gazebo.launch"
+nohup script -q -c bash -c "$command" > "$MAP2GAZEBO_LOG_PATH" 2>&1 &
+disown
+
+# 检查脚本启动标志
+tail -f "$MAP2GAZEBO_LOG_PATH" | while read LINE; do
+    # 检查脚本是否启动
+    if echo "$LINE" | grep -q "$MAP2GAZEBO_START_FLAG"; then
+      # 此标志输出给前端,请勿删除或修改!
+      echo "Service map2gazebo started."
+      sleep 0.5
+      # 播包 (含/map话题)
+      rosbag play "$BAG_PATH"
+      sleep 0.5
+    fi
+
+    # 检查STL文件是否生成
+    if echo "$LINE" | grep -q "$GAZEBO_WORLD_END_FLAG"; then
+      # 清除环境
+      ## kill上面启动的脚本
+      pkill -f "map2gazebo"
+      ## 关闭gazebo
+      pkill -f "gazebo"
+      echo "Service map2gazebo stopped."
+      # 执行命令
+      command="cd $SIMULATION_PATH/catkin_map2gazebo && rm -r build devel && catkin_make && source devel/setup.bash && roslaunch --screen map2gazebo gazebo_world.launch"
+      nohup script -q -c bash -c "$command" > "$GAZEBO_WORLD_LOG_PATH" 2>&1 &
+      disown
+    fi
+done

+ 2 - 2
simulation/play_rosbag.sh

@@ -10,9 +10,9 @@ fi
 BAG_PATH=$1
 WORD_GENERATION="/home/cicv/work/pji_desktop/simulation/catkin_map2gazebo/"
 
-sleep 15
+sleep 5
 rosbag play $BAG_PATH
-sleep 15
+sleep 5
 
 pkill -f "map2gazebo"
 pkill -f "gazebo"

+ 0 - 76
simulation/rosbag_record_bak.py

@@ -1,76 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-import rospy
-import rosbag
-import sys
-import os
-import signal
-import subprocess
-from geometry_msgs.msg import PoseWithCovarianceStamped, Twist
-from move_base_msgs.msg import MoveBaseActionGoal
-
-class RosbagRecorder:
-    def __init__(self, path):
-        rospy.init_node('rosbag_recorder', anonymous=True)
-
-        self.goal_sub = rospy.Subscriber('/move_base/goal', MoveBaseActionGoal, self.goal_callback)
-        self.pose_sub = rospy.Subscriber('/amcl_pose', PoseWithCovarianceStamped, self.pose_callback)
-        self.cmd_vel_sub = rospy.Subscriber('/cmd_vel', Twist, self.cmd_vel_callback)
-
-        self.goal_position = None
-        self.bag_process = None
-        self.recording = False
-        self.pose_position = None
-        self.cmd_vel = None
-        self.bag_path = path
-
-    def goal_callback(self, msg):
-        self.goal_position = msg.goal.target_pose.pose.position
-        rospy.loginfo("Goal received, starting rosbag recording...")
-        self.start_recording()
-
-    def pose_callback(self, msg):
-        self.pose_position = msg.pose.pose.position
-        self.check_stop_condition()
-
-    def cmd_vel_callback(self, msg):
-        self.cmd_vel = msg
-        self.check_stop_condition()
-
-    def start_recording(self):
-        if not self.recording:
-            # self.bag_process = subprocess.Popen(['rosbag', 'record', '/amcl_pose', '/cmd_vel', '/some_topic1', '/some_topic2'])
-            self.bag_process = subprocess.Popen(['rosbag', 'record', '-o', self.bag_path, '/imu', '/obstacle_detection', '/odom', '/sys_info'], preexec_fn=os.setsid)
-            self.recording = True
-
-    def stop_recording(self):
-        if self.recording and self.bag_process:
-            rospy.loginfo("Stopping rosbag recording...")
-            # self.bag_process.terminate()
-            # self.bag_process.wait()
-            os.killpg(os.getpgid(self.bag_process.pid), signal.SIGTERM)  # 首先发送SIGTERM信号
-            try:
-                self.bag_process.wait(timeout=2)  # 等待进程终止,如果超过5秒,进行强制终止
-            except subprocess.TimeoutExpired:
-                rospy.logwarn("Rosbag process did not terminate, sending SIGKILL...")
-                os.killpg(os.getpgid(self.bag_process.pid), signal.SIGKILL)  # 强制终止
-                self.bag_process.wait()  # 再次等待确保进程已经被终止                      
-            self.recording = False
-
-    def check_stop_condition(self):
-        if self.goal_position and self.pose_position and self.cmd_vel:
-            distance = self.calculate_distance(self.pose_position, self.goal_position)
-            if distance < 0.3 and self.cmd_vel.linear.x == 0 and self.cmd_vel.linear.y == 0:
-                self.stop_recording()
-
-    def calculate_distance(self, pos1, pos2):
-        return ((pos1.x - pos2.x) ** 2 + (pos1.y - pos2.y) ** 2) ** 0.5
-
-if __name__ == '__main__':
-    try:
-        bag_path = sys.argv[1]
-        recorder = RosbagRecorder(bag_path)
-        rospy.spin()
-    except rospy.ROSInterruptException:
-        pass

+ 24 - 9
simulation/run_map2gazebo.sh

@@ -1,16 +1,31 @@
 #!/bin/bash
+# 检查到未定义的变量则停止执行并报错
+set -u
 
+SIMULATION_PATH="/home/cicv/work/pji_desktop/simulation"
+MAP2GAZEBO_LOG_PATH="$SIMULATION_PATH/logs/run_map2gazebo.log"
+MAP2GAZEBO_START_FLAG="map2gazebo running"
+
+# 激活conda环境
 source activate simulation
-cd /home/cicv/work/pji_desktop/simulation/catkin_map2gazebo/
-rm -r build devel
-catkin_make
-source devel/setup.bash
 
+# 清除环境
+## kill ros节点
 rosnode kill --all
-sleep 2
+## 删除历史日志
+rm "$MAP2GAZEBO_LOG_PATH"
+sleep 0.5
 
-nohup roslaunch map2gazebo map2gazebo.launch >./map2gazebo.log 2>&1 &
+# 执行命令
+command="cd $SIMULATION_PATH/catkin_map2gazebo && rm -r build devel && catkin_make && source devel/setup.bash && roslaunch --screen map2gazebo map2gazebo.launch "
+nohup script -q -c bash -c "$command" > "$MAP2GAZEBO_LOG_PATH" 2>&1 &
+disown
 
-#roslaunch map2gazebo map2gazebo.launch
-echo "Service map2gazebo started."
-disown
+# 检查脚本启动标志
+tail -f "$MAP2GAZEBO_LOG_PATH" | while read LINE; do
+    if echo "$LINE" | grep -q "$MAP2GAZEBO_START_FLAG"; then
+      # 此标志输出给前端,请勿删除或修改!
+      echo "Service map2gazebo started."
+      break
+    fi
+done

+ 109 - 0
simulation/typescript

@@ -0,0 +1,109 @@
+Script started on 2024-09-05 15:33:21+08:00 [<not executed on terminal>]
+会话已终止。
+Base path: /home/cicv/work/pji_desktop/simulation/catkin_map2gazebo
+Source space: /home/cicv/work/pji_desktop/simulation/catkin_map2gazebo/src
+Build space: /home/cicv/work/pji_desktop/simulation/catkin_map2gazebo/build
+Devel space: /home/cicv/work/pji_desktop/simulation/catkin_map2gazebo/devel
+Install space: /home/cicv/work/pji_desktop/simulation/catkin_map2gazebo/install
+####
+#### Running command: "cmake /home/cicv/work/pji_desktop/simulation/catkin_map2gazebo/src -DCATKIN_DEVEL_PREFIX=/home/cicv/work/pji_desktop/simulation/catkin_map2gazebo/devel -DCMAKE_INSTALL_PREFIX=/home/cicv/work/pji_desktop/simulation/catkin_map2gazebo/install -G Unix Makefiles" in "/home/cicv/work/pji_desktop/simulation/catkin_map2gazebo/build"
+####
+-- The C compiler identification is GNU 9.4.0
+-- The CXX compiler identification is GNU 9.4.0
+-- Check for working C compiler: /usr/bin/cc
+-- Check for working C compiler: /usr/bin/cc -- works
+-- Detecting C compiler ABI info
+-- Detecting C compiler ABI info - done
+-- Detecting C compile features
+-- Detecting C compile features - done
+-- Check for working CXX compiler: /usr/bin/c++
+-- Check for working CXX compiler: /usr/bin/c++ -- works
+-- Detecting CXX compiler ABI info
+-- Detecting CXX compiler ABI info - done
+-- Detecting CXX compile features
+-- Detecting CXX compile features - done
+-- Using CATKIN_DEVEL_PREFIX: /home/cicv/work/pji_desktop/simulation/catkin_map2gazebo/devel
+-- Using CMAKE_PREFIX_PATH: /home/cicv/work/pji_desktop/simulation/catkin_ws/devel;/opt/ros/noetic;/opt/intel/oneapi/tbb/2021.13/env/..;/opt/intel/oneapi/mkl/2024.2/lib/cmake;/opt/intel/oneapi/ipp/2021.12/lib/cmake/ipp;/opt/intel/oneapi/dpl/2022.6/lib/cmake/oneDPL;/opt/intel/oneapi/dnnl/2024.2/lib/cmake;/opt/intel/oneapi/dal/2024.5;/opt/intel/oneapi/compiler/2024.2
+-- This workspace overlays: /home/cicv/work/pji_desktop/simulation/catkin_ws/devel;/opt/ros/noetic
+-- Found PythonInterp: /home/cicv/anaconda3/envs/simulation/bin/python3 (found suitable version "3.6.13", minimum required is "3") 
+-- Using PYTHON_EXECUTABLE: /home/cicv/anaconda3/envs/simulation/bin/python3
+-- Using Debian Python package layout
+-- Found PY_em: /home/cicv/anaconda3/envs/simulation/lib/python3.6/site-packages/em.py  
+-- Using empy: /home/cicv/anaconda3/envs/simulation/lib/python3.6/site-packages/em.py
+-- Using CATKIN_ENABLE_TESTING: ON
+-- Call enable_testing()
+-- Using CATKIN_TEST_RESULTS_DIR: /home/cicv/work/pji_desktop/simulation/catkin_map2gazebo/build/test_results
+-- Forcing gtest/gmock from source, though one was otherwise available.
+-- Found gtest sources under '/usr/src/googletest': gtests will be built
+-- Found gmock sources under '/usr/src/googletest': gmock will be built
+-- Found PythonInterp: /home/cicv/anaconda3/envs/simulation/bin/python3 (found version "3.6.13") 
+-- Found Threads: TRUE  
+-- Using Python nosetests: /usr/bin/nosetests3
+-- catkin 0.8.10
+-- BUILD_SHARED_LIBS is on
+-- Configuring done
+-- Generating done
+-- Build files have been written to: /home/cicv/work/pji_desktop/simulation/catkin_map2gazebo/build
+####
+#### Running command: "make -j20 -l20" in "/home/cicv/work/pji_desktop/simulation/catkin_map2gazebo/build"
+####
+... logging to /home/cicv/.ros/log/5542e4d2-6b27-11ef-96f6-69cf46c1d264/roslaunch-rosgo-400981.log
+Checking log directory for disk usage. This may take a while.
+Press Ctrl-C to interrupt
+WARNING: disk usage in log directory [/home/cicv/.ros/log] is over 1GB.
+It's recommended that you use the 'rosclean' command.
+]2;/home/cicv/work/pji_desktop/simulation/catkin_map2gazebo/src/launch/gazebo_world.launch
+WARNING: Package name "Navigation" does not follow the naming conventions. It should start with a lower case letter and only contain lower case letters, digits, underscores, and dashes.
+WARNING: Package name "SimulationEnvs" does not follow the naming conventions. It should start with a lower case letter and only contain lower case letters, digits, underscores, and dashes.
+started roslaunch server http://rosgo:43807/
+
+SUMMARY
+========
+
+PARAMETERS
+ * /gazebo/enable_ros_network: True
+ * /rosdistro: noetic
+ * /rosversion: 1.16.0
+ * /use_sim_time: True
+
+NODES
+  /
+    gazebo (gazebo_ros/gzserver)
+    gazebo_gui (gazebo_ros/gzclient)
+
+ROS_MASTER_URI=http://localhost:11311
+]2;/home/cicv/work/pji_desktop/simulation/catkin_map2gazebo/src/launch/gazebo_world.launch http://localhost:11311
+WARNING: Package name "Navigation" does not follow the naming conventions. It should start with a lower case letter and only contain lower case letters, digits, underscores, and dashes.
+WARNING: Package name "SimulationEnvs" does not follow the naming conventions. It should start with a lower case letter and only contain lower case letters, digits, underscores, and dashes.
+process[gazebo-1]: started with pid [401215]
+process[gazebo_gui-2]: started with pid [401218]
+WARNING: Package name "Navigation" does not follow the naming conventions. It should start with a lower case letter and only contain lower case letters, digits, underscores, and dashes.
+WARNING: Package name "SimulationEnvs" does not follow the naming conventions. It should start with a lower case letter and only contain lower case letters, digits, underscores, and dashes.
+WARNING: Package name "Navigation" does not follow the naming conventions. It should start with a lower case letter and only contain lower case letters, digits, underscores, and dashes.
+WARNING: Package name "SimulationEnvs" does not follow the naming conventions. It should start with a lower case letter and only contain lower case letters, digits, underscores, and dashes.
+WARNING: Package name "Navigation" does not follow the naming conventions. It should start with a lower case letter and only contain lower case letters, digits, underscores, and dashes.
+WARNING: Package name "SimulationEnvs" does not follow the naming conventions. It should start with a lower case letter and only contain lower case letters, digits, underscores, and dashes.
+WARNING: Package name "Navigation" does not follow the naming conventions. It should start with a lower case letter and only contain lower case letters, digits, underscores, and dashes.
+WARNING: Package name "SimulationEnvs" does not follow the naming conventions. It should start with a lower case letter and only contain lower case letters, digits, underscores, and dashes.
+[ INFO] [1725521602.920989212]: Finished loading Gazebo ROS API Plugin.
+[ INFO] [1725521602.921554440]: waitForService: Service [/gazebo/set_physics_properties] has not been advertised, waiting...
+[ INFO] [1725521602.960493931]: Finished loading Gazebo ROS API Plugin.
+[ INFO] [1725521602.961258183]: waitForService: Service [/gazebo_gui/set_physics_properties] has not been advertised, waiting...
+[ INFO] [1725521603.429323473]: waitForService: Service [/gazebo/set_physics_properties] is now available.
+[ INFO] [1725521603.474685986]: Physics dynamic reconfigure ready.
+
+libcurl: (6) Could not resolve host: fuel.gazebosim.org
+
+libcurl: (6) Could not resolve host: fuel.ignitionrobotics.org
+[ WARN] [1725523596.826085791, 1991.133000000]: Shutdown request received.
+[ WARN] [1725523596.857821383, 1991.133000000]: Reason given for shutdown: [user request]
+[ WARN] [1725523596.864377053, 1991.133000000]: Shutdown request received.
+[ WARN] [1725523596.867046890, 1991.133000000]: Reason given for shutdown: [user request]
+[gazebo_gui-2] process has finished cleanly
+log file: /home/cicv/.ros/log/5542e4d2-6b27-11ef-96f6-69cf46c1d264/gazebo_gui-2*.log
+[gazebo-1] killing on exit
+shutting down processing monitor...
+... shutting down processing monitor complete
+done
+
+Script done on 2024-09-05 16:06:37+08:00 [COMMAND_EXIT_CODE="0"]