|
@@ -3,6 +3,7 @@ import os
|
|
import time
|
|
import time
|
|
import oss2
|
|
import oss2
|
|
from rosbag import Bag, Compression
|
|
from rosbag import Bag, Compression
|
|
|
|
+import subprocess
|
|
import logging
|
|
import logging
|
|
import rosbag
|
|
import rosbag
|
|
from std_msgs.msg import Header
|
|
from std_msgs.msg import Header
|
|
@@ -71,9 +72,28 @@ def merge(local_bags, merged_prefix, local_merged_dir, merged_bag_name):
|
|
logging.info("map.bag包的key为: %s" % str(map_key))
|
|
logging.info("map.bag包的key为: %s" % str(map_key))
|
|
bucket.get_object_to_file(map_key, local_map_path)
|
|
bucket.get_object_to_file(map_key, local_map_path)
|
|
jpg_file = local_merged_dir + merged_bag_name.split('.')[0] + '.jpg'
|
|
jpg_file = local_merged_dir + merged_bag_name.split('.')[0] + '.jpg'
|
|
- command1 = 'rosrun trajectory demo_node ' + local_map_path + ' ' + output_bag_file + ' ' + jpg_file
|
|
|
|
- logging.info("调用命令轨迹图片生成命令: %s" % str(command1))
|
|
|
|
- os.system(command1)
|
|
|
|
|
|
+ # 构建命令
|
|
|
|
+ command1 = ['rosrun', 'trajectory', 'demo_node', local_map_path, output_bag_file, jpg_file]
|
|
|
|
+
|
|
|
|
+ # 记录命令
|
|
|
|
+ logging.info("调用命令轨迹图片生成命令: %s" % ' '.join(command1))
|
|
|
|
+
|
|
|
|
+ # 使用 subprocess.run 来执行命令,并捕获输出和错误
|
|
|
|
+ result = subprocess.run(command1, capture_output=True, text=True)
|
|
|
|
+
|
|
|
|
+ # 记录命令的标准输出
|
|
|
|
+ if result.stdout:
|
|
|
|
+ logging.info("命令输出: %s" % result.stdout.strip())
|
|
|
|
+
|
|
|
|
+ # 记录命令的标准错误输出
|
|
|
|
+ if result.stderr:
|
|
|
|
+ logging.error("命令错误: %s" % result.stderr.strip())
|
|
|
|
+
|
|
|
|
+ # 检查命令的返回码
|
|
|
|
+ if result.returncode != 0:
|
|
|
|
+ logging.error("命令执行失败,返回码: %d" % result.returncode)
|
|
|
|
+ else:
|
|
|
|
+ logging.info("命令执行成功")
|
|
jpg_key = parse_prefix + 'track.png'
|
|
jpg_key = parse_prefix + 'track.png'
|
|
bucket.put_object_from_file(jpg_key, jpg_file)
|
|
bucket.put_object_from_file(jpg_key, jpg_file)
|
|
|
|
|