yahboom
HomeLearn
Solution
Blog
Online Store
About Us
EN/中文
ROSMASTER M1📖
01.Robot Configuration and Operation Guide
  • 0. Assembly video
  • 1. Servo PTZ calibration
  • 2. Quick start guide handle control
  • 3. First trial
  • 4. Enter Docker (For JETSON Nano and RPi 5)
  • 1.5 Quick Start video
02.AI Model Preparation
  • AI Model Preparation
03.AI Model Basics course
  • 1.AI large model types and principles
  • 2.RAG retrieval enhancement and model training samples
  • 3.Embodied intelligent robot system architecture
  • 4.Embodied intelligent functions core source code
04.AI Model Developmentnew
  • 1.Register a model service provider account
  • 2. Configuring API-KEY
  • 3. Introduction to Dify
  • 4. Basic Dify Features
  • 5. Deploy the RAG knowledge base
  • 6. AI Large Model Development - chatbot
  • 7. RAG knowledge base + chatbot
  • 8. AI agent workflow
  • 9. Custom wake-up response
  • 10. Core module testing tools
05.AI Model - Text Version
  • 1.Semantic understand and command follow
  • 2.Multimodal visual understand
  • 3.Multimodal visual understand + PTZ tracking
  • 4.Multimodal visual understand + visual following
  • 5.Multimodal visual understand + visual line patroling
  • 6.Multimodal visual understand + Depth Camera Distance Question Answering
  • 7.Multimodal visual understand+SLAM navigation
  • 8.Multimodal visual understand+SLAM navigation + visual line patroling
  • 9.Intention estimation + Multimodal visual understand + SLAM navigation + visual functions
06.AI Model - Voice Version
  • 1.Semantic understand and command follow
  • 2.Multimodal visual understand
  • 3.Multimodal visual understand + PTZ tracking
  • 4.Multimodal visual understand + visual following
  • 5.Multimodal visual understand + visual line patroling
  • 6.Multimodal visual understand + Depth Camera Distance Question Answering
  • 7.Multimodal visual understand+SLAM navigation
  • 8.Multimodal visual understand+SLAM navigation + visual line patroling
  • 9.Intention estimation + Multimodal visual understand + SLAM navigation + visual functions
07.Chassis Control Course
  • 1. ROS control
  • 2. Handle control
  • 3. Keyboard control
  • 4. Linear velocity calibration
  • 5. Angular velocity calibration
  • 6. URDF model
08.Mediapipe Visual Course
  • 1.Hand detection
  • 2.Posture detection
  • 3.Overall detection
  • 4.Facial landmark detection
  • 5.Face detection
  • 6.Face special effects
  • 7.3D object recognition
  • 8.Brush
  • 9.Finger control
  • 10.Gesture recognition
  • 11.Palm target positioning
  • 12.Fingertip trajectory recognition
09.Advanced Vision Course
  • 1.QR code
  • 2.Human Pose Estimation
  • 3.Object Detection
  • 4.AR Vision
  • 5.ROS+Opencv Basics
  • 6.Yolov8 Object Detection (ORIN)
  • 7.Deep Learning Object Tracking (ORIN)
10.HD Camera Vision Course(Standard Version)
  • 01.Color tracking
  • 02.Face Tracking
  • 03.AprilTag machine code tracking
  • 04.KCF Object Tracking
  • 05.QR code tracking
  • 06.Mediapipe gesture tracking
  • 07.Meidpipe human posture tracking
  • 08.Color Follow
  • 09.Face Following
  • 10.AprilTag machine code following
  • 11.QR code follow
  • 12.Mediapipe gesture recognition and following
  • 13.Meidpipe human posture following
  • 14.Visual tracking autonomous driving
  • 15.QR code motion control
  • 16.Gesture motion control
11.Depth Camera Vision Course(Superior Version)
  • 1.Basic use of depth camera
  • 2.Deep pseudo-color image
  • 3.Depth camera ranging
  • 4.Color block volume measurement
  • 5.Color Following
  • 6.Face Following
  • 7.QR code follow
  • 8.Machine code following
  • 9.KCF Object Following
  • 10.Mediapipe gesture following
  • 11.Mediapipe Posture Following
  • 12.Visual tracking autonomous driving
  • 13.Edge Detection
12.LiDAR Course
  • 1.Basic use of Lidar
  • 2.Lidar obstacle avoidance
  • 3.Lidar following
  • 4.Lidar patrol
  • 5.Gmapping-SLAM mapping
  • 6.Cartographer-SLAM mapping
  • 7.slam_toolbox mapping
  • 8.Navigation2 single-point navigation avoid
  • 9.Navigation2 multi-point navigation avoid
  • 10.Cartographer Repositioning navigation
  • 11.RTAB-Map mapping
  • 12.RTAB-Map navigation
  • 13.APP mapping navigation
13.Multi-Vehicle Course
  • 1.Multi-vehicle control
  • 2.Multi-vehicle navigation
  • 3.Multi-vehicle platoon
14.Autonomous Driving expand(Need purchase track map)
【Track Map】Multimodal visual understand+SLAM navigation
  • 1. Multimodal visual understand+SLAM navigation
【Track Map】Autonomous driving (RDKX5 & Orin)
  • 1. Venue placement and precautions
  • 2. Start testing
  • 3. Identify and debug
  • 4. Lane keeping
  • 5. Road sign detection
  • 6. Traffic light recognition
  • 7. Fixed point parking
  • 8. Steering decision
  • 9. Horn sounding
  • 10. Deceleration
  • 11. Speed limit
  • 12. Autonomous parking
  • 13. Comprehensive application
  • 14. Unmanned driving integrated AI large model
【Track Map】Autonomous driving (Jetson Nano)
  • 1. Venue placement and precautions
  • 2. Start testing
  • 3. Identify and debug
  • 4. Lane keeping
  • 5. Road sign detection
  • 6. Traffic light recognition
  • 7. Fixed point parking
  • 8. Steering decision
  • 9. Horn sounding
  • 10. Deceleration
  • 11. Speed limit
  • 12. Autonomous parking
  • 13. Comprehensive application
【Track Map】Road network planning
  • 1. Introduction to Road Network Planning and Navigation
  • 2. Constructing a Pose Map
  • 3. Road Network Labelling
  • 4. Road Network Planning Combined with Sand Table Map
  • 5. Path Replanning
【Track Map】Model Training
  • 1. Data Collection
  • 2. Dataset Annotation
  • 3. YOLOv11 Model Training
  • 4. Model Format Conversion
15.YOLOV11 development course (ORIN)
  • 1.YOLO environment construction
  • 2.CLI use
  • 3.Object detection
  • 4.Instance segmentation
  • 5.Pose estimation
  • 6.Image classification
  • 7.Oriented object detection
  • 8.Model conversion
  • 9.Dataset annotation
  • 10.Model Training_Conversion
  • 11.Model prediction
16.YOLOV11 development course(RPi&Jetson NANO)
  • 1.YOLO environment construction
  • 2.CLI use
  • 3.Object detection
  • 4.Instance segmentation
  • 5.Pose estimation
  • 6.Image classification
  • 7.Oriented object detection
  • 8.Model conversion
  • 9.Model prediction
17.YOLOV11 development course(RDK X5)
  • 1.YOLO environment construction
  • 2.CLI use
  • 3.Object detection
  • 4.Instance segmentation
  • 5.Pose estimation
  • 6.Image classification
  • 7.Oriented object detection
  • 8.Model prediction
  • 9.Model Quantization
18.Main control board course
Jetson Nano B01
  • 1. Introduction to the Jetson Nano B01 SUB Board
  • 2. Burn the system image
  • 3. Re-read the memory card or USB drive that has been burned
  • 4. Startup system
  • 5. Jetson Nano B01 System and Desktop Introduction
  • 6. Memory card or USB flash drive expansion
  • 7. Network Configuration
  • 8. SSH remote login & file transfer
  • 9. VNC Remote Login
  • 10. Jetson Nano B01 system backup
  • 11. Jetson Nano Swap space increased
  • 12. Installation and use of Jtop
  • 13. Third-party board + USB drive to start the car
Jetson Orin Nano_NX
  • 1.Jetson Orin board introduction
  • 2.Restore the factory image system
  • 3.Backup SSD system
  • 4.SSD expansion
  • 5.Network configuration
  • 6.SSH remote login
  • 7.VNC remote control
  • 8.Remote file transfer
  • 9.Jtop tool
  • 10.Exchange space expansion
Raspberry Pi
  • 1. Introduction to Raspberry PI 5
  • 2. Raspberry PI system installation and backup
  • 3. Powering the Raspberry PI 5
  • 4. Startup of Raspberry PI 5
  • 5. Update and upgrade operating system
  • 6. Introduction to raspi-config tool
  • 7. config.txt file description
  • 8. Network Configuration
  • 9. remote access
  • 10. Transfer files remotely
  • 11. Set display resolution and rotation
  • 12. Set screen to sleep
  • 13. Play audio and video
  • 14. Using USB camera
  • 15. Using MIPI camera
  • 16. Get real-time temperature of Raspberry Pi
RDK X5
  • 1.Introduction to RDK X5 board
  • 2.Write system file
  • 3.Hardware interface description
  • 4.Install case and other accessories
  • 5.Network configuration
  • 6.Remote login
  • 7.Update system
  • 8.srpi-config user guide
  • 9.config. txt configuration file
  • 10.Self-startup setting
  • 11.RDK exclusive command usage
  • 12.Linux command usage
  • 13.GPIO readwrite operation
  • 14.Image classification algorithm
  • 15.Use USB camera
  • 16.Use MIPI camera
  • 17.Binocular camera depth algorithm
19.AI large model course(ORIN-Pi-RDK X5)
Offline large model (Text Interaction)
  • 0. AI Large Model Mirroring Explanation
  • 1. Deployment of large-scale AI models
  • 2.Installation of the large-scale model dialogue platform
  • 3. Meta AI Llama 3.2 model
  • 4. Alibaba Cloud Qwen3 Model
  • 5. Microsoft Phi-4 mini model
  • 6. DeepSeek DeepSeek-R1 model
  • 7. Alibaba Cloud Qwen2.5vl Visual Multimodal Large Model
  • 8. Google Gemma3 Visual Multimodal Large Model
  • 9. Llava Visual Multimodal Large Model
  • 10.MiniCPM-V Visual Multimodal Large Model
  • 11. Multimodal Visual Understanding Applications
  • 12. Multimodal Text-Based Image Application
  • 13. Multimodal Video Analysis Application
  • 14. Multimodal visual positioning applications
  • 15. Multimodal table scanning application
  • 16. Multimodal Autonomous Agent Application
Offline large model (Voice Interaction)
  • 0. Voice Interaction Hardware Connection (Must Read)
  • 1. Offline speech-to-text (ASR)
  • 2. Offline Text-to-Speech (TTS)
  • 3. AI large model voice interaction
  • 4. Multimodal visual understanding and voice interaction
  • 5. Multimodal Text-Based Image Application
  • 6. Multimodal Video Analysis Application
  • 7. Multimodal visual positioning applications
  • 8. Multimodal table scanning application
  • 9. Multimodal Autonomous Agent Applications
  • 10. AI large model offline voice assistant
Online large model (Text Interaction)
  • 1. OpenRouter Large Model API Aggregation Platform
  • 2. Multimodal visual understanding applications
  • 3. Multimodal visual positioning applications
  • 4. Multimodal table scanning application
  • 5. Multimodal Autonomous Agent Applications
Online large model (Voice Interaction)
  • 0. Voice Interaction Hardware Connection (Must Read)
  • 1. Online speech-to-text (ASR)
  • 2. Online Text-to-Speech (TTS)
  • 3. AI large model voice interaction
  • 4. Multimodal visual and voice interaction
  • 5. Multimodal visual positioning applications
  • 6. Multimodal table scanning application
  • 7. Multimodal Autonomous Agent Applications
  • 8. AI large model online voice assistant
20.AI large model course(Jetson NANO)
Offline large model (Text Interaction)
  • 4.Multimodal visual understand speech interaction
  • 0.AI large model system image instructions
  • 1.AI large model environment deployment
  • 2.Install large model dialogue platform
  • 3.Meta AI llama 3.2 model
  • 4.Alibaba Cloud Qwen2 model
  • 5.Alibaba Cloud Qwen3 model
  • 6.SUTD TinyLlama
  • 7.DeepSeek DeepSeek-R1 model
  • 8.Microsoft Phi-3
  • 9.Microsoft Orca Mini
  • 10.NVIDIA StarCoder2
  • 11.Google Gemma3 Visual Multimodal Large Model
  • 12.Offline Text to Speech (TTS)
  • 13.Offline Speech to Text (ASR)
Online large model (Text Interaction)
  • 1.OpenRouter large model API aggregation platform
  • 2.Multimodal visual understand application
  • 3.Multimodal visual localization application
  • 4.Multimodal table scanning application
  • 5.Multimodal autonomous proxy application
Online large model (Voice Interaction)
  • 0.Voice interaction hardware connection (ReadMe)
  • 1.Online speech-to-text (ASR)
  • 2.Online Text-to-Speech (TTS)
  • 3.AI large model voice interaction
  • 5.Multimodal visual position application
  • 6.Multimodal table scanning application
  • 7.Multimodal autonomous proxy application
  • 8.AI large model online voice assistant
21.Linux operating system course
  • 1.Introduction to Linux system
  • 2.Ubuntu file system
  • 3.Ubuntu common commands
  • 4.Ubuntu common editors
  • 5.Ubuntu software operation commands
  • 6.Virtual machine installation
  • 7.SSH remote control
  • 8.VNC remote control
  • 9.Transfer files remotely
  • 10.Driver library and communication
  • 11.Static IP and hotspot mode
  • 12.Bind device ID
  • 13.Capacity expansion and resource allocation
  • 14.Update system software sources
  • 15.Set root user password
  • 16.sudo free password
  • 17.Connect to WiFi network
  • 18.View system version
  • 19.Customized service management
  • 20.Back up system image
22.Docker course
  • 1.Docker Introduction and Installation
  • 2.Docker basic commands
  • 3.Docker Submission and Multi-Terminal Access
  • 4.Docker Startup Script
  • 5.Docker-Vscode environment construction
23.ROS2 basic course
  • 1.Introduction to ROS2
  • 2.ROS2 install Humble
  • 3.ROS2 development environment
  • 4.ROS2 workspace
  • 5.ROS2 function package
  • 6.ROS2 node
  • 7.ROS2 topic communication
  • 8.ROS2 service communication
  • 9.ROS2 action communication
  • 10.ROS2 custom interface message
  • 11.ROS2 parameter service case
  • 12.ROS2 meta-function package
  • 13.ROS2 distributed communication
  • 14.ROS2 DDS
  • 15.ROS2 time related API
  • 16.ROS2 common command tools
  • 17.ROS2 rviz2 use
  • 18.ROS2 rqt toolbox
  • 19.ROS2 Launch startup file configuration
  • 20.ROS2 recording and playback tool
  • 21.ROS2 URDF model
  • 22.ROS2 Gazebo simulation platform
  • 23.ROS2 TF2 coordinate transformation
24.Image processing course
  • 1. Introduction to Open Source CV
  • 2. Image reading and display
  • 3. Image writing
  • 4. Image quality
  • 5. Pixel Operation
  • 6. Image zoom
  • 7. Image cutting
  • 8. Image translation
  • 9. Image Mirroring
  • 10. Affine Transformation
  • 11. Image Rotation
  • 12. Perspective Transformation
  • 13. Grayscale processing
  • 14. Image Binarization
  • 15. Edge Detection
  • 16. Line drawing
  • 17. Rectangle and circle drawing
  • 18. Drawing text and pictures
25.STM32 driver course
  • 0. Notes (must read)
  • 1. About expansion board
  • 2. STM32 Development environment
  • 3. Button control
  • 4. FreeRTOS application
  • 5. Serial communication
  • 6. SBUS model aircraft remote control
  • 7. CAN bus communication
  • 8. RGB colorful light bar
  • 9. Timer interrupt to control PWM servo
  • 10. Control serial port servos
  • 11. Nine-axis attitude sensor to obtain data
  • 12. Control motor
  • 13. Timer captures the encoder data
  • 14. Robot kinematics analysis theory
  • 15. PID control robot movement
26.Main control communication course
  • 1. Update the expansion board firmware
  • 2. Install Rosmaster driver library
  • 3. Jupyter lab basic usage tutorial
  • 4. Buzzer whistle
  • 5. Control PWM servo
  • 6. RGB colorful light bar special effects display
  • 7. Control motor
  • 8. Control robot movement
  • 9. Control Serial Servo
Download
  • Mapping_APP(iOS_Android)
  • Robot_Image_System_File
  • Code-Firmware
  • Instruction_Manual
  • MainBoard_AI_Pure_System
  • VM_File
  • Software_Tools
  • Hardware_Info
  • 3D_Model_File
Download ZIP

Welcome to ROSMASTER M1 repository

3. Identify and debug

Identify and debug

1. Course Content

Note: This program runs on a sandbox map. Personal maps require manual program adjustments. This course focuses on debugging the confidence level of the car in recognizing each road sign.

Basic: Start the autonomous driving program and observe the road sign recognition results.

2. Pre-Test Preparation

  • Adjust model parameters

Parameter path: /home/jetson/yahboomcar_auto/src/auto_driver/config/yolo_param.yaml

​x
#Road sign detection inference parameters
sign_detection:
  model_path: '/home/jetson/yahboomcar_auto/src/sign_model.engine'
  conf: 0.92   #Set the minimum confidence threshold for detection. Detected objects with confidence below this threshold will be ignored. Adjusting this value helps reduce false positives.
  iou: 0.7     #Overlap threshold for Non-Maximum Suppression (NMS). Lower values reduce detection results by eliminating overlapping boxes
  rect: True    #If enabled, applies minimal padding to the shorter side of the image until it's divisible by stride, improving inference speed.
  half: True     #If enabled, uses half-precision inference, which can accelerate model inference speed on supported GPUs with minimal impact on accuracy.
  device: "cuda:0"      #Inference device
  batch : 50         #Batch size, larger batch sizes can provide higher throughput, thus reducing total inference time.
  max_det : 2         #Maximum number of objects to detect
  augment : False     #Enable Test Time Augmentation (TTA) for prediction, which may improve detection robustness but reduces inference speed.
  verbose : False      #Whether to output detailed inference information in terminal.
  classes : [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13]
​
line_detection:
#Lane detection inference parameters
  model_path: '/home/jetson/yahboomcar_auto/src/lane_V6.engine'
  conf: 0.5      #Set the minimum confidence threshold for detection. Detected objects with confidence below this threshold will be ignored. Adjusting this value helps reduce false positives.
  iou: 0.6       #Overlap threshold for Non-Maximum Suppression (NMS). Lower values reduce detection results by eliminating overlapping boxes
  rect: True     #If enabled, applies minimal padding to the shorter side of the image until it's divisible by stride, improving inference speed.
  half: True      #If enabled, uses half-precision inference, which can accelerate model inference speed on supported GPUs with minimal impact on accuracy.
  device: "cuda:0"     #Inference device
  batch : 50       #Batch size, larger batch sizes can provide higher throughput, thus reducing total inference time.
  max_det : 4       #Maximum number of objects to detect
  augment : False     #Enable Test Time Augmentation (TTA) for prediction, which may improve detection robustness but reduces inference speed.
  verbose : False     #Whether to output detailed inference information in terminal.
  

sign_model.engine: Road sign recognition model

lane_V6.engine: Lane detection recognition model

For normal road sign detection debugging, you only need to change two parameters: conf: 0.92 minimum confidence threshold, which means objects with similarity higher than 0.92 will be boxed. max_det: 2 maximum number of objects to detect, how many objects can be detected simultaneously at the same time. For detailed understanding of other parameters, you can refer to the comments.

  • Adjust test parameters

Parameter path: /home/jetson/yahboomcar_auto/src/auto_driver/config/auto_drive_node.yaml

xxxxxxxxxx
turn_radius: 0.4
linear_speed: 0.13
angular_speed: -0.55
duration: 2.0
response_distance_1: 2900
response_distance_2: 132
cooldown_time: 0.2
DEBUG_MODE: True
DEBUG_MODE_2: False
START_AutoDrive: False
Kp: -0.62
Ki: 0.0
Kd: -0.1
max_integral: 1000.0
image_size: [640, 480]
  
  • Prepare road signs

Straight, right turn, horn, sidewalk

image-20251205093610315

Speed limit, stop, school, parking lot B

image-20251205093620282

Traffic lights, parking lot A

image-20251205093625973

 

3. Run Example Program

Autonomous driving source code path: /home/jetson/yahboomcar_auto/src/auto_driver/scripts/auto_drive.py

  • Start camera + chassis + autonomous driving node (need to run in virtual environment terminal)
xxxxxxxxxx
roslaunch auto_driver auto_drive.launch

image-20251204112434654

After successful startup, the display will not move to test road sign recognition. (If you want it to move, change the parameter START_AutoDrive in auto_drive_node.yaml to True)

Place road signs in the center of the screen to recognize the correct sign names. max_det: 2 recognizes only two road signs at the same time. False recognition may occur during autonomous driving, it is recommended to change to max_det: 2.

image-20251203163752814

max_det: 4 recognizes four road signs at the same time

image-20251203163822244

Ensure all road signs on the road can be recognized, then proceed to the next debugging step.

4. Source Code Analysis

4.1, auto_drive.py

Program source code path: /home/jetson/yahboomcar_ros2_ws/yahboomcar_ws/src/auto_drive/auto_drive/auto_drive.py

YOLO processing flow (handle_sign):

  • Get image frame

  • Use YOLO model for object detection

  • Process detection results:

    • Filter ignored signs (such as "turnright_ground", "sidewalk_ground")
    • Publish detected sign information
    • Display FPS and inference time in debug mode
    • Real-time display of detection results

The main thread is responsible for receiving images, while the worker thread handles image processing and detection tasks, communicating between threads through queues.

xxxxxxxxxx
def _sign_detection_worker(self):
        '''Sign detection worker thread'''
        sign_pub_counter = 0
        
        while not rospy.is_shutdown() and not self._shutdown_flag:
            if self.cv_image is None:
                time.sleep(0.01)
                continue
                
            # Check cooldown status
            current_time = time.time()
            if self.sign_cooldown:
                if current_time - self.last_sign_time >= self.cooldown_duration:
                    self.sign_cooldown = False
                    rospy.loginfo("Sign detection cooldown ended")
                else:
                    # During cooldown period, skip sign detection
                    time.sleep(0.01)
                    continue
                
            try:
                frame = self.cv_image.copy()
                infer_start = time.time()
                
                # Perform sign detection
                results = self.sign_detect.get_infer_result(frame, True)
                annotated_frame = frame.copy()
                
                # Record whether detected sign requires cooldown
                detected_sign_requires_cooldown = False
                
                for res in results:
                    if res.boxes is not None:
                        annotated_frame = res.plot()
                        boxes = res.boxes
                        for i in range(len(boxes)):
                            box_coords = boxes.xyxy[i].tolist()
                            class_name = res.names[int(boxes.cls[i].item())]
                            confidence = boxes.conf[i].item()
                            
                            # Check if it's an ignored sign
                            if class_name in self.ignored_signs:
                                # rospy.loginfo(f"Ignoring sign: {class_name}")
                                continue  # Skip ignored signs
                            
                            # Publish detection results
                            if sign_pub_counter % 5 == 0:
                                detection_msg = DetectionObject()
                                detection_msg.class_name = class_name
                                detection_msg.confidence = confidence
                                detection_msg.xmin = float(box_coords[0])
                                detection_msg.ymin = float(box_coords[1])
                                detection_msg.xmax = float(box_coords[2])
                                detection_msg.ymax = float(box_coords[3])
                                self.sign_publisher.publish(detection_msg)
                                
                                # Add detection result to event queue (ignored signs are not added)
                                if not self.action_running:
                                    object_distance = self._get_distance(float(box_coords[1]))
                                    obj = Object(class_name, confidence, object_distance)
                                    try:
                                        self.event_queue.put_nowait(obj)
                                    except queue.Full:
                                        pass
                                    
                                    # Set cooldown flag (all signs except ignored ones trigger cooldown)
                                    detected_sign_requires_cooldown = True
                            
                            sign_pub_counter += 1
                
                # If detected sign requires cooldown, start cooldown
                if detected_sign_requires_cooldown:
                    self.sign_cooldown = True
                    self.last_sign_time = current_time
                    rospy.loginfo(f"Sign detected, starting {self.cooldown_duration}s cooldown")
                
                # Calculate and display FPS
                if self.DEBUG_MODE_2:
                    infer_end = time.time()
                    self.frame_count_sign += 1
                    curr_time = time.time()
                    time_diff = curr_time - self.prev_time_sign
                    if time_diff >= 1.0:
                        self.fps_sign = self.frame_count_sign / time_diff
                        self.frame_count_sign = 0
                        self.prev_time_sign = curr_time
                    
                    cv2.putText(annotated_frame, f"Sign FPS: {self.fps_sign:.2f}", (10, 65), 
                               cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0, 255, 0), 1)
                    infer_time = (infer_end - infer_start) * 1000
                    cv2.putText(annotated_frame, f"Sign Infer: {infer_time:.1f} ms", (10, 85),
                               cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0, 255, 255), 1)
                    
                    # Display cooldown status
                    cooldown_status = "COOLDOWN" if self.sign_cooldown else "READY"
                    cooldown_color = (0, 0, 255) if self.sign_cooldown else (0, 255, 0)
                    remaining_time = max(0, self.cooldown_duration - (current_time - self.last_sign_time))
                    cv2.putText(annotated_frame, f"Status: {cooldown_status} ({remaining_time:.1f}s)", 
                               (10, 105), cv2.FONT_HERSHEY_SIMPLEX, 0.6, cooldown_color, 1)
                
                # Display sign detection results
                if self.DEBUG_MODE_2:
                    cv2.imshow("Sign-Detect Panel", annotated_frame)
                    cv2.waitKey(1)
                    
            except Exception as e:
                rospy.logerr("Error in sign detection: %s", str(e))
                time.sleep(0.01)

 

 

 

 

 

 

 

 

 

 

 

 

Start testing
Lane keeping

COMPANY

  • About us
  • Team Style
  • Blog

LEARNING & EXPLORATION

  • Tutorials
  • Edge AI hardware
  • Educational robots
  • Embedded intelligent hardware

WHERE TO BUY

  • Yahboom Online Store
  • Amazon
  • Alibaba
  • AliExpress
  • Mercado

TECHNOLOGY SUPPORT

  • Email: support@yahboom.com

BE A DISTRIBUTOR

  • Email: sales@yahboom.com
QR Code
QR Code

Copyright © 2017-2026 Yahboom. All Rights Reserved.

EN/中文