yahboom
HomeLearn
Solution
Blog
Online Store
About Us
EN/中文
DOGZILLA-Lite📖
1. Get started quickly
  • 0. Notes (Must Read)new
  • 1. Main interface function experience (cm5)new
  • 1. Main interface function experience(cm4)
  • 2. APP control experience
  • 3. Web page image transmission control
  • 4. LLM-Embodied Intelligence Capabilities
  • 5. LLM-Smart Dog Capabilities
2. Basic operations of Raspberry Pi system
  • 1.SSH remote login
  • 2.VNC remote login desktop
  • 3.Remote file transfer
  • 4.JupyterLab environment construction and use
  • 5.Burn the system image
  • 6.Connect to WiFi
  • 7.Close large programs
  • 8.Raspberry Pi system expansion
3. Basic control of the dogzilla
  • 0. Introduction to DOGZILLA-Lite
  • 1. Screen display control
  • 2. Record Audio
  • 3. Play Audio
  • 4. Text to audio
  • 5. Voice to text
  • 6. Record Video
  • 7. Play Video
  • 8. Video recording function
  • 9. Read the posture angle
  • 10. Battery level reading
  • 11. Read the servo angle
  • 12. Screen display of expressions
  • 13. Calibration of the robot dog
  • 14. Burn the firmware
  • 15. Analysis of common problems
4. Motion control of the dogzilla
  • 1. The dog's forward, backward, left, and right movements and gait
  • 2. Dog Spin
  • 3. The dog adjusts its height and posture
  • 4. Dog periodic translation and rotation
  • 5. Self-balancing mode
  • 6. The dog performs preset actions
  • 7. Single Leg Control
  • 8. Robotic arm control
  • 9. Teaching mode
  • 10. Group Control Performance
  • 11. Teaching demonstration onlinenew
5. Open Source CV
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 drawing text segments
  • 1. Grayscale processing
  • 2. Image Binarization
  • 3. Edge Detection
  • 4. Line drawing
  • 5. Rectangle and circle drawing
  • 6. Text and picture drawing
D. Image beautification
  • 1. Color Image Histogram
  • 2. Histogram Equalization
  • 3. Image repair
  • 4. Brightness enhancement
  • 5. Skin whitening
  • 6. Gaussian mean filtering
  • 7. Median Filter
6. AI recognition of the dogzilla
  • 1. Camera driver tutorial
  • 2. Color recognition
  • 3. HSV value test
  • 4. Object Recognition
  • 5. QR code recognition
  • 6. License Plate Recognition
  • 7. Human Pose Estimation
  • 8. Yolo detection
  • 9. Face Detection
  • 10. Human face mask
  • 11. Face effects
  • 12. 3D Object Recognition
  • 13. Paintbrush
  • 14. Finger recognition
  • 15. Gesture Recognition
  • 16. Age and gender identification
  • 17. Background Segmentation
  • 18. Facial Recognitionnew
  • 19. Emotion Recognitionnew
  • 20. Motion Detectionnew
7. Dogzilla AI Interaction
  • 1. Color patrol
  • 2. Line patrol and obstacle removal
  • 3. Color tracking
  • 4. Ball tracking
  • 5. The ball follows
  • 6. QR code recognition exercise
  • 7. Face tracking
  • 8. Remote control
  • 9. Gesture tracking
  • 10. Gesture-controlled movement
  • 11. You Drop, I Pick
  • 12. Independent football exercise
  • 13. Human Body Followingnew
8. AI large model interaction
  • 0.AI large model principle foundation
  • 1.Large model premise use configuration
  • 2.Q&A
  • 3.Embodied intelligence
  • 4.Smart dog
  • 5.Picture to text
  • 6.Intelligent interaction
  • 7.Voice intelligent vision
  • 8.Playing football
  • 9.Block gripping
  • 10.Line tracking and obstacle removal
  • 11.Control object tracking
Download
  • System_File
  • Code
  • Firmware
  • Communication interface
  • Instruction Manual
  • Appendix
Download ZIP

Welcome to DOGZILLA-Lite repository

11. You Drop, I Pick

You Drop, I Pick

1. Purpose of the experiment

Learn to use the opencv visual recognition on the robot dog and the robotic arm to pick up the building blocks on the ground

2. Main source code path

First end the large program and then enter the terminal

cd ~/home/pi/DOGZILLA_Lite_class/6.AI Visual Interaction Course/11.pick it up
python3 pick_it_up.py

3. Experimental Phenomenon

After running the source code, by placing the wooden block within the range that the robot dog can recognize, you can let the robot dog track the building block and then pick up the wooden block. The red building block is recognized by default, and you can switch the color of the building block by pressing the button in the upper right corner of the screen.

Identification:

image-2025031200001

Gripping:

image-2025031200002

place:

image-2025031200003

4. Main source code analysis

x
pos = 210 #小球夹取角度,夹取木块角度参数改为260,根据夹取的木块大小调节 0:完全打开 #Adjust the size of the clamped wooden block to 0: fully open
​
try:
    while 1:
        ret, frame = cap.read()
        frame_ = cv2.GaussianBlur(frame,(5,5),0)                    
        hsv = cv2.cvtColor(frame,cv2.COLOR_BGR2HSV)
        mask = cv2.inRange(hsv,color_lower,color_upper)  
        mask = cv2.erode(mask,None,iterations=2)
        mask = cv2.dilate(mask,None,iterations=2)
        mask = cv2.GaussianBlur(mask,(3,3),0)     
        cnts = cv2.findContours(mask.copy(),cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)[-2] 
​
        
        if g_mode == 1:
            if len(cnts) > 0:
                cnt = max (cnts, key = cv2.contourArea)
                (color_x,color_y),color_radius = cv2.minEnclosingCircle(cnt)
                if color_radius > 10:
                    cv2.circle(frame,(int(color_x),int(color_y)),int(color_radius),(255,0,255),2)  
                    
                    X_track_PID.SystemOutput = color_x #X 
                    X_track_PID.SetStepSignal(X_Middle_error)
                    X_track_PID.SetInertiaTime(0.01, 0.1)               
                    x_real_value = int(X_track_PID.SystemOutput)
                    x_real_value = limit_fun(x_real_value ,-18,18)
                    g_dog.move('y',x_real_value)
​
​
                    if color_y > 205 or color_y ==0 :
                        g_dog.move('x',0) 
                    else :
                        g_dog.move('x',10) 
​
                #停止追踪,使用夹爪夹取  Stop tracking and use the gripper to pick it up
                if color_y > 205 :
                    if abs(color_x-160)<15:###6
                        step = step+1
                    else :
                        step = 0
                    if step > 5:
                        g_dog.stop()
                        g_mode = 2 #进入夹爪夹取 Enter the gripper for retrieval
            else:
                color_x = 0
                color_y = 0
                g_dog.stop()
            
            #print([color_x,color_y])
            cv2.putText(frame, "X:%d, Y%d" % (int(color_x), int(color_y)), (40,40), cv2.FONT_HERSHEY_SIMPLEX, 0.8, (0,255,255), 3)
            t_start = time.time()
            fps = 0
#重要夹取参数 Important gripping parameters
        elif g_mode == 2: #夹取运动,夹取不到调整对应舵机ID的角度 Pinching motion,The angle corresponding to the servo ID cannot be adjusted
            g_dog.claw(0)
            time.sleep(1)
​
            g_dog.motor([52,53],[19,6])  #夹取重要参数,舵机ID+舵机对应角度  Clip important parameters, servo ID + servo corresponding angle
            time.sleep(0.5)
            g_dog.motor([52,53],[-10,80]) #夹取重要参数,舵机ID+舵机对应角度  Clip important parameters, servo ID + servo corresponding angle
            time.sleep(2)
​
            g_dog.claw(pos)
            time.sleep(1.5)
            g_dog.motor([52,53],[20,-20]) #g_dog.arm(armx,100) 
            time.sleep(0.5)
            g_dog.attitude(['p'],[0]) #让狗站立  Make the dog stand up
            time.sleep(0.5)
            g_dog.motor([52,53],[-13,-20]) #g_dog.arm(armx,100) 
            time.sleep(0.5)
            
            time.sleep(0.5)
            g_dog.turn(10) 
            time.sleep(6)
            g_dog.stop()
​
        else:
            fps = fps + 1
            mfps = fps / (time.time() - t_start)
            cv2.putText(frame, "FPS " + str(int(mfps)), (40,40), cv2.FONT_HERSHEY_SIMPLEX, 0.8, (0,255,255), 3)
​
        if (cv2.waitKey(1)) == ord('q'):
            break
        if button.press_b():
            g_dog.stop()
            break
        if button.press_d():
            change_color()
​
except:
    g_dog.stop()
    cap.release()
    cv2.destroyAllWindows() 

The above code is to identify the color block of the target color and perform a main process of clamping. If the clamping is not in place, the most likely reason is that the robot dog is not placed flat on the ground when it is turned on.

Gesture-controlled movement
Independent football exercise

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/中文