feat: close image save

This commit is contained in:
havocrao 2025-08-21 11:40:12 +08:00
parent e85d8dfbaa
commit 84cca7b2b6
10 changed files with 18 additions and 19 deletions

View File

@ -80,7 +80,6 @@ def main():
Ctrl.base_msg.stand_up()
Ctrl.base_msg.stop() # BUG 垃圾指令 for eat # INFO 但是正式比赛或许也有用
# image = Ctrl.image_processor.get_current_image('ai')
# timestamp = datetime.now().strftime("%Y%m%d_%H%M%S_%f")
# filename = f"saved_images/rgb_{timestamp}.jpg"
@ -136,7 +135,7 @@ def main():
# run_task_2_5(Ctrl, msg, direction=arrow_direction)
# #TAG task - 3 / 4 - part I
#TAG task - 3 / 4 - part I
# if arrow_direction == 'left':
# run_task_4(Ctrl, msg)
# else:
@ -145,7 +144,7 @@ def main():
# TAG task - 5
# turn_degree_v2(Ctrl, msg, degree=90, absolute=True)
success, qr=run_task_5(Ctrl, msg, direction=arrow_direction, observe=True, time_sleep=TIME_SLEEP) # B区任务
# success, qr=run_task_5(Ctrl, msg, direction=arrow_direction, observe=True, time_sleep=TIME_SLEEP) # B区任务
# print(success)
# print(qr)
@ -208,7 +207,7 @@ class Robot_Ctrl(object):
self.cmd_msg = robot_control_cmd_lcmt()
self.rec_msg = robot_control_response_lcmt()
self.odo_msg = localization_lcmt()
self.image_processor = ImageProcessor()
self.image_processor = ImageProcessor(save_flag=False) # INFO 这里控制是否开始保存图片
# DEBUG
# self.marker_runner = MarkerRunner(pass_flag=pass_marker)
self.send_lock = Lock()

View File

@ -20,7 +20,7 @@ from utils.speech_demo import speak
# 创建本模块特定的日志记录器
logger = get_logger("任务1")
observe = True
observe = False # 控制是否输出更多调试信息
direction = True
def run_task_1(ctrl, msg, time_sleep=5000):

View File

@ -17,7 +17,7 @@ from file_send_lcmt import file_send_lcmt
# 创建本模块特定的日志记录器
logger = get_logger("低头匍匐步态")
observe = True
observe = False
robot_cmd = {
'mode':0, 'gait_id':0, 'contact':0, 'life_count':0,

View File

@ -33,7 +33,7 @@ from task_2.crawl_gait import (
# 创建本模块特定的日志记录器
logger = get_logger("任务2-5")
observe = True
observe = False
# 异步箭头检测器类
class AsyncArrowDetector:
@ -148,7 +148,6 @@ class AsyncArrowDetector:
return self.left_count, self.right_count
def run_task_2(ctrl, msg, xy_flag=False):
# 微调 xy 和角度
# go_to_xy_v2(ctrl, msg, 0.9, 0.25, speed=0.5, observe=True)
# turn_degree_v2(ctrl, msg, 0.8, absolute=True)

View File

@ -10,7 +10,7 @@ from base_move.go_to_xy import go_straight, go_to_x_v2, go_to_y_v2
from base_move.move_base_hori_line import arc_turn_around_hori_line, align_to_horizontal_line
from utils.log_helper import LogHelper, get_logger, section, info, debug, warning, error, success, timing
observe = True
observe = False
def run_task_2_5(Ctrl, msg, direction='left'):
section('任务2.5预备进入任务3', "启动")

View File

@ -26,7 +26,7 @@ from utils.speech_demo import speak
# 创建本模块特定的日志记录器
logger = get_logger("任务3")
observe = True
observe = False
YELLOW_RATIO_THRESHOLD = 0.03 # TODO 黄色区域比例阈值
def run_task_3(ctrl, msg, time_sleep=5000):

View File

@ -19,7 +19,7 @@ from file_send_lcmt import file_send_lcmt
# 创建本模块特定的日志记录器
logger = get_logger("任务3")
observe = True
observe = False
robot_cmd = {
'mode':0, 'gait_id':0, 'contact':0, 'life_count':0,

View File

@ -22,7 +22,7 @@ from task_3.task_3 import pass_stone
# 创建本模块特定的日志记录器
logger = get_logger("任务4")
observe = True
observe = False
STONE_DISTANCE = 4.5 # TODO 距离参数需要微调
RED_RATIO_THRESHOLD = 0.18 # TODO 红色区域比例阈值需要微调

View File

@ -105,7 +105,7 @@ def test_track_detection(image_path, observe=True, save_log=True):
if __name__ == "__main__":
# 设置观察模式和保存日志
observe = True
observe = False
save_log = True
if len(sys.argv) > 1:

View File

@ -73,7 +73,7 @@ from pyzbar import pyzbar
class ImageSubscriber(Node):
def __init__(self):
def __init__(self, save_flag=False):
super().__init__('ai_camera_demo')
# 初始化安全控制标志
@ -118,6 +118,7 @@ class ImageSubscriber(Node):
'ai': time.time()
}
self.start_time = time.time()
self.save_flag = save_flag
self.save_interval = 0.5
self.total_duration = 1.0
self.save_dir = "saved_images"
@ -198,7 +199,7 @@ class ImageSubscriber(Node):
try:
self.cv_image_rgb = self.bridge.imgmsg_to_cv2(msg, 'bgr8')
if time.time() - self.last_save_time['rgb'] >= self.save_interval:
if self.save_flag and time.time() - self.last_save_time['rgb'] >= self.save_interval:
self.save_image(self.cv_image_rgb, 'rgb')
self.last_save_time['rgb'] = time.time()
except Exception as e:
@ -225,7 +226,7 @@ class ImageSubscriber(Node):
def image_callback_ai(self, msg):
try:
self.cv_image_ai = self.bridge.imgmsg_to_cv2(msg, 'bgr8')
if time.time() - self.last_save_time['ai'] >= self.save_interval:
if self.save_flag and time.time() - self.last_save_time['ai'] >= self.save_interval:
self.save_image(self.cv_image_ai, 'ai')
self.last_save_time['ai'] = time.time()
except Exception as e:
@ -275,8 +276,8 @@ class ImageSubscriber(Node):
class ImageProcessor:
def __init__(self):
self.image_subscriber = ImageSubscriber()
def __init__(self, save_flag=False):
self.image_subscriber = ImageSubscriber(save_flag=save_flag)
self.spin_thread = None
self.running = True
self.log = get_logger("图像处理器")
@ -389,7 +390,7 @@ class ImageProcessor:
"""
if self.scan_thread is not None and self.scan_thread.is_alive():
self.log.warning("异步扫描已经在运行中", "警告")
print('scan,warn')
print('scan, warn')
return
self.enable_async_scan = True