refactor(main.py): implement pass flag functionality for MarkerRunner

- Add pass_marker variable to main.py
- Update MarkerRunner initialization in Robot_Ctrl class
- Modify MarkerRunner class to accept pass_flag parameter
- Implement pass flag logic in MarkerRunner's send_request method
- Initialize ROS 2 context in main function
This commit is contained in:
havoc420ubuntu 2025-05-19 06:08:30 +00:00
parent f77b7edb13
commit 8782fdc092
2 changed files with 7 additions and 2 deletions

View File

@ -23,6 +23,8 @@ from utils.base_msg import BaseMsg
from task_1.task_1 import run_task_1
from task_5.task_5 import run_task_5
pass_marker = True
def main():
rclpy.init() # 新增:在主程序中统一初始化 ROS 2 上下文
Ctrl = Robot_Ctrl()
@ -66,7 +68,7 @@ class Robot_Ctrl(object):
self.odo_msg = localization_lcmt()
self.image_processor = ImageProcessor()
# DEBUG
self.marker_runner = MarkerRunner()
self.marker_runner = MarkerRunner(pass_flag=pass_marker)
self.send_lock = Lock()
self.delay_cnt = 0
self.mode_ok = 0

View File

@ -23,8 +23,9 @@ class MarkerClient(Node):
class MarkerRunner:
def __init__(self):
def __init__(self, pass_flag=False):
self.marker_client = None
self.pass_flag = pass_flag
def run(self):
self.marker_client = MarkerClient()
@ -34,6 +35,8 @@ class MarkerRunner:
self.marker_client.destroy_node()
def send_request(self, x, y, z, color, observe=False):
if self.pass_flag:
return "pass flag."
response = self.marker_client.send_request(x, y, z, color)
if observe:
self.marker_client.get_logger().info(