yahboom
HomeLearn
Solution
Blog
Online Store
About Us
EN/中文
Raspbot V2📖
1.About Raspbot V2
  • 1. First trial
  • 2. Expansion board interface distribution
  • 3. About battery and charging
  • 4. Install servo PTZ
  • 5.Servo Gimbal Installation
  • 6. Important Notes (Read Before Starting)
2.Assembly
  • Installation Video
3.Car basic course
  • 0. Preparation before development
  • 1.Buzzer control
  • 2.Key reading
  • 3.RGB control
  • 4.Servo control (PTZ control)
  • 5.Motor control
  • 6.Printing ultrasonic data
  • 7.Tracking module status printing
  • 8.IR control key value printing
4.Car motion control course
  • 0.Mecanum wheel motion principle
  • 1.Car vertical movement
  • 2.Car diagonal movement
  • 3.Car sideways movement
  • 4.Car rotation movement
  • 5.Car patrol
5.Car advanced courses
  • 1.Infrared patrol car
  • 2.Ultrasonic avoid
  • 3.Ultrasonic follow
  • 4.Infrared tracking+ ultrasonic avoid
  • 5.Restricting
  • 6.Infrared remote control car
6.OpenCV courses
A. Getting Started with OpenCV
  • 1. Introduction to OpenCV
  • 2.OpenCV image reading and display
  • 3. OpenCV image writing
  • 4. OpenCV Image Quality
  • 5.OpenCV pixel operations
B. OpenCV geometric transformation
  • 1. Image scaling
  • 2. Image cutting
  • 3. Image translation
  • 4. Image mirroring
  • 5. Affine Transformation
  • 6. Image Rotation
  • 7. Perspective Transformation
C. OpenCV image processing and text line drawing
  • 1. Grayscale processing
  • 2. Image Binarization
  • 3. Edge Detection
  • 4. Line drawing
  • 5. Rectangle and circle drawing
  • 6. Text and image drawing
D. Image beautification
  • 1. Color Image Histogram
  • 2. Histogram Equalization
  • 3. Image repair
  • 4. Brightness enhancement
  • 5. Smooth and whiten
  • 6. Gaussian mean filtering
  • 7. Median Filter
E. Machine Learning
  • 1. KNN
  • 2. SVM
7.AI vision recognition course
  • 1.Camera driver tutorial
  • 2.Color recognition
  • 3.HSV value test
  • 4.Object Recognition
  • 5.QR code recognition
  • 6.Face recognition
  • 7.License Plate Recognition
  • 8. Human Pose Estimation
  • 9. Target detection
  • 10.yolov5-lite
  • 11. Gesture Recognition
  • 12. Face Detection
  • 13. Face effects
  • 14. 3D Object Recognition
  • 15. Paintbrush
  • 16. Finger control
8.AI vision interaction module
  • 1. Color tracking
  • 2. Color follows
  • 3. QR code recognition to control movement
  • 4. Face tracking
  • 5. Face following
  • 6. Visual tracking
  • 7. Garbage identification
  • 8. Track map Autopilot(purchased separately)
  • 9. Gesture following
9.Voice control basic course(For Superior Kit)new
  • 1.Voice control car movement
  • 2.Voice control RGB light
  • 3.Voice control color recognition
  • 4.Voice control autonomous driving
  • 5.Voice control car tracking
10.AI large model knowledge(For Superior Kit)new
  • 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
  • 5.Configure AI large model(Required)
11.AI Large Model Development(For Superior Kit & Reference)new
  • 1.Register a model service provider account
  • 2. Configuring API-KEY(Optional)
  • 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
12.AI large basic course(For Superior Kit)new
  • 1.Free conversation
  • 2.Text-to-picture
  • 3.Scene description
  • 4.Video description
  • 5.Intelligent action choreography
  • 6.Dual-model agent application
13.ROS2-Robot chassis control course
  • 1. Robot information release
  • 2. Robot keyboard control
  • 3. URDF Model
14.ROS2-OpenCV course
  • 1.ROS+Opencv application
  • 2. AR Vision
  • 3. Mediapipe fun gameplay
  • 4. Gesture control car movement
  • 5. Gesture control car actions
  • 6. Palm control car movement
  • 7. Palm control servo PTZ
  • 8. Visual tracking
  • 9. AprilTag code recognition
  • 10. AprilTag tag code tracking
  • 11. AprilTag tag code follow
15.Development environment course
  • 1. Introduction to Raspberry Pi 5
  • 2. Image writing and backup
  • 3. Start the Raspberry Pi 5
  • 4. Remote Access
  • 5. Remote file transfer
  • 6. Common Linux commands and use of vim editor
  • 7. Install Raspbot V2 driver library
  • 8. Jupyter Lab environment construction
  • 9. Jupyter Lab plugin installation
  • 10. Basic use of Jupyter Widgets
16.Raspberry Pi basic settings
  • 1.Update and upgrade the operating system
  • 2. Introduction to raspi-config tool
  • 3. config.txt file description
  • 4. Network Configuration
  • 5. Set display resolution and rotation
  • 6. Set screen sleep
  • 7. Get real-time temperature of RPi
  • 8. Play audio and video
  • 9. Use USB Camera
  • 10.Use MIPI camera
17.Docker course
  • 1. Overview and installation
  • 2. Common commands
  • 3. Understand and publish images
  • 4. Docker data processing
  • 5. Enter docker container
18.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
Download
  • APP(iOS/Android)
  • Code
  • System_File
  • Instruction Manual
  • Hardware_Info
  • 3D_Model_File
  • ROS2_Basic_VM
Download ZIP

Welcome to Raspbot V2 repository

当製品の日本語版マニュアル資料は、こちらからご取得ください。

4.Embodied intelligent functions core source code

Embodied intelligent functions core source code

1. Course Content

  1. AI Large Model Embodied Intelligence is a complex function that involves the coordinated implementation of multiple node programs. This section explains the core programs.

2. Overall Source Code Package Structure

2.1 Functional Package Structure

Dual-Model AI Large Model Embodied Intelligence:

Jetson Orin Nano, Jetson Orin NX Hosts:

xxxxxxxxxx
#Chinese version
/home/pi/project_demo/09.AI_Big_Model/AI_CarAgent/
​
#English version
/home/pi/project_demo/09.AI_Big_Model/AI_CarAgent_en/
​

The file structure is as follows:

image-2025080700001

The folder and file functions are as follows:

xxxxxxxxxx
├── AI_Car_ImageMain.py # Main entrance of dual model program
├── Car_agent_Image.py #Local agent description (execution layer)
├── Car_agent_Online.py #Depends on the cloud-based agent description (execution layer)
├── Car_audio.py #Recording files
├── Car_avoid_api.py #Obstacle avoidance and ranging file
├── Car_base_control.py #Basic sports movements
├── Car_decision_agent.py #Decision-making model
├── Car_execute_api.py #Calling the execution layer model
├── Car_music_api.py #Audio playback
├── Car_Online_API.py #Online multimodal model interface
├── Car_speak_iat.py #Speech Recognition 1
├── Car_tongyi_speak_iat.py #Speech Recognition 2
├── Car_tongyi_tts.py #Speech Synthesis 1
├── Car_tts.py #Speech Synthesis 2
├── HSV_Config_Two.py #Color Analysis
├── McLumk_Wheel_Sports.py #Car chassis control library
├── PID.py #Tracking and line patrol PID interface
├── Track_color_api.py #Tracking and line patrol interface
├── Track_color_Follow_api.py #Color follow function
├── Track_color_line_api.py #Color line patrol function
├── Track_Face_Follow_api.py #Face tracking function
└── Track_Food_api.py #Object tracking function

2.2 Inter-program call relationship diagram

源码解析.drawio

3. Speech Recognition Function

The speech recognition function includes two parts: VAD voice activity detection (VAD) and speech-to-text conversion.

3.1 VAD Voice Activity Detection

Implementation: The listen_for_speech method in the ASRNode class

Program Explanation: Records audio in real time from a specified microphone and uses VAD (Voice Activity Detection) to determine whether speech is currently occurring. When a segment of speech is detected (continuous silence exceeds a set number of frames), recording stops and the valid audio content is saved to a file.

Detailed logic is as follows:

  1. Initialize the audio stream and configure parameters (such as sampling rate and number of channels).
  2. Continuously read audio frames and perform voice activity detection.
  3. If speech is detected, the audio frame is added to the buffer. If continuous silence exceeds a threshold (90 frames, approximately 1 second), recording ends.
  4. After recording is complete, the trailing silence is removed and the valid audio content is saved as a WAV file.
  5. If no valid speech is detected, the file is not saved.

The specific recording source code path is:

xxxxxxxxxx
/home/pi/project_demo/09.AI_Big_Model/AI_CarAgent/Car_audio.py

3.2 ASR Speech Recognition

Implementation Program: Convert the recording file into text

Call the speech recognition model interface functions in the large model interface file Car_tongyi_speak_iat.py

Program Explanation:

xxxxxxxxxx
def rec_wav_music_Tongyi():
    global rec_text
    recognition.start()
    try:
        audio_data: bytes = None
        f = open(DIR_PATH_WAV, 'rb')
        if os.path.getsize(DIR_PATH_WAV):
            while True:
                audio_data = f.read(3200)
                if not audio_data:
                    break
                else:
                    recognition.send_audio_frame(audio_data)
                time.sleep(0.1)
        else:
            raise Exception(
                'The supplied file was empty (zero bytes long)')
        f.close()
    except Exception as e:
        raise e
​
    recognition.stop()
    
    return rec_text

rec_wav_music_Tongyi The recorded wav file will be uploaded to the speech recognition model, and the speech recognition result will be returned to the function using this interface.

4. Dual-Model Inference

4.1 Dual-Model Inference (International Version)

  1. The program implementation logic is the same as the domestic version, with the difference being in API_KEY.py.
  • DIFY_SWITCH = True: The international version requests the local Dify application, which then requests the large cloud model.
  • DIFY_SWITCH = False: The international version requests the agent in the local Python file.
xxxxxxxxxx
def Car_decison_action(decision_str='Decision makers input parameters'):
    print("Action:"+decision_str)    
    try: 
        if DIFY_SWITCH ==False:
            agent_plan_execute = eval(Car_Agent_Plan_Image(decision_str))
        else:
            agent_plan_execute = eval(Car_Agent_Plan_Image_Dify(decision_str)) #dify
            
        exeute_relay = agent_plan_execute['response'] 
    except:
        display_text = "Error in obtaining action information, please try again..."
        print(display_text)
        return
    
       
    for each in agent_plan_execute['function']: # Run each function of intelligent agent planning and orchestration
        if xuanxin == 1:
            print("Interrupted by wake-up, please rephrase the command")
            return 
        
        try: 
            print('Start executing action', each)
            eval(each)
        except:
            g_fail_ex = g_fail_ex+1
            if g_fail_ex == 1: # Action execution failed
                print("Action try Start again!")
                os.system("pkill mplayer") # Only this time will thread audio be played
                time.sleep(0.5)
                Xinghou_speaktts('Action execution failed, prepare to try again')
                return 1
            elif g_fail_ex>1:
                print("Action fail!")
                Xinghou_speaktts('Action execution failed, end task prematurely')
                g_fail_ex =0
                return 2
    
​

5. Interruption Functionality

The robot supports interruption at any stage, specifically during the conversation phase and the action phase. The principles of interruption in each phase are explained here.

5.1 Interruption During the Conversation Phase

If you are dissatisfied with the robot's response or do not want it to continue, you can interrupt it using the wake-up word and begin recording. You can then speak new commands to the robot (while still in the current task cycle).

  • Simply determine whether the wake-up word flag is detected to end the current task cycle and start a new one. You can also terminate all currently playing audio using os.system("pkill mplayer").
xxxxxxxxxx
if detect_keyword():
        xuanxin = 1
        os.system("pkill mplayer") 

5.2 Interrupting the Action Phase

If the robot is awakened during an action, it will stop the current action and resume its initial position. This can be categorized as either a standard action interruption or an action interruption with a child process.

Based on the wakeup flag, the currently executing child thread task and robot motion action can be terminated using a special process ID (PID), causing the robot to stop.

​x
#Kill after interruption
def PIDkill_process(KillPath):
        try:
            # Use pgrep to find scripts
            result = subprocess.run(['pgrep', '-f', KillPath], capture_output=True, text=True, check=True)
            pids = result.stdout.strip().split('\n')
            # Iterate over all found PIDs
            for pid in pids:
                try:
                    # Terminate a process
                    subprocess.run(['kill', pid], check=True)
                    print(f"Process {pid} has been terminated.")
                except subprocess.CalledProcessError:
                    print(f"Failed to terminate process {pid}.")
        except subprocess.CalledProcessError:
            pass
            #print("No matching processes found.")
​
​
PIDkill_process('./AI_CarAgent/Track_color_Follow_api.py')
PIDkill_process('./AI_CarAgent/Track_color_line_api.py')
PIDkill_process('./AI_CarAgent/Track_Face_Follow_api.py')
Car_Reset() #Car reset
Embodied intelligent robot system architecture
Configure AI large model(Required)

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

Copyright © 2017-2026 Yahboom. All Rights Reserved.

EN/中文