yahboom
HomeLearn
Solution
Blog
Online Store
About Us
EN/中文
RDK X3 Robot📖
01. About RDK-X3-Robot
1. Instructions
  • 1. Introduction
  • 2. FAQ
  • 3. Battery and charger use precautions
  • 4.TF card expand capacity
2. Common problem analysis
02. Assembly video
  • Part1-Install Motor
  • Part2-Install Battert Fixing Column
  • Part3-Install Motor Coupling
  • Part4-Install Mecanum wheel
  • Part5-Install Expansion Board
  • Part6-Wiring Show
  • Part7-Install Main Control Board
  • Part8-Install Car Top Plate and Antenna
  • Part9-Install OLED Screen
  • Part10-Install Depth Camera(Optional)
  • Part11-Install OLED Screen
  • Part12-Install HD Camera
  • Part13-Install Top Plate
  • Part14-Install Right Side Plate
  • Part15-Motor Wiring Show
  • Part16-lnstall Car Body
  • Part17-Install Battery
  • Part18-Install Lidar
03. Remote control tutorial
  • 1. The phone APP remote tutorial
  • 2. USB wireless controller remote tutorial
04. ROS functional tutorial
  • 1. Introduction of extension board
  • 2. Set up STM32 development environment
  • 3. Key control buzzer sound
  • 4. FreeRTOS application
  • 5. Serial communication
  • 6. SBUS model remote control
  • 7. CAN bus communication
  • 8. RGB color light strip
  • 9. Timer interrupt control PWM servo
  • 10. Control serial steering gear
  • 11. Nine-axis attitude sensor to obtain data
  • 12. Control motor forward and reverse
  • 13. The timer captures encoder data
  • 14. Theory of robot kinematics analysis
  • 15. PID control robot motion
05. Basic control tutorial
  • 1. Update the firmware of the expansion module
  • 2. Install the Python driver library
  • 3. Set the type of bottom car
  • 4. Open and close the APP program control
  • 5. Turn hotspot mode on and off
  • 6. The buzzer blows
  • 7. Control the motor forward and reverse
  • 8. Control robot movement
  • 9. OLED display
  • 10. Control fan and lamp effect
06. Development environment setup
  • 1. Virtual Machine
  • 2. Linux Basics
  • 3. Remote connection
  • 4. Multi-computer communication configuration
  • 5. Bind the device ID
  • 6. Image installation and backup
07. 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
08. Robot chassis control
  • 1. PID algorithm theory
  • 2. Robot information release
  • 3. Robot control
  • 4. Robot state estimation
  • 5. Robot calibration
  • 6. Robot trajectory tracking
  • 7. URDF model
09. Lidar courses
  • 1. Introduction and use of lidar
  • 2. Lidar obstacle avoidance
  • 3. Lidar following
  • 4. Lidar guard
  • 5. Patrol
  • 6. gmapping algorithm
  • 7. cartographer algorithm
  • 8. Navigation and obstacle avoidance
  • 9. App mapping and navigation
10. OpenCV courses
  • 1. Introduction to OpenCV
  • 2. OpenCV geometric transformation
  • 3. OpenCV image processing
  • 4. OpenCV image beautification
  • 5. Qr code creation and identification
11. MIPI camera course
  • 1. Camera driver
  • 2. Adjust the color HSV value
  • 3. Color recognition
  • 4. Color tracking
  • 5. Color follow
  • 6. Qr code command
  • 7. Face detection
  • 8. Object detection
  • 9. Visual Inspection -OpenCV
  • 10. Visual inspection - Deep learning
  • 11. Human tracking
  • 12. Gesture control
12. Depth Camera courses
  • 1. Use depth camera
  • 2. Calibration of camera internal reference
  • 3. ROS+OpenCV Foundation
  • 4. AR vision
  • 5. Color tracking
  • 6. Object tracking
13. Multi vehicle control
  • 1. Multi-vehicle synchronous control
  • 2. Multi-vehicle navigation
Remote login control
  • 1. VNC and SSH remote login
  • 2. Jupyter lab login and case code running
Download
  • RemoteCtrl_APP(iOS/Android))
  • Mapping_APP(iOS_Android)
  • Code
  • System File
  • VM_File
  • Manual
  • Software_File
  • Hardware_File
  • ROS2_Basic_VM
Download ZIP

Welcome to RDK X3 Robot repository

1. Introduction to OpenCV

1. Introduction to OpenCV

1. Introduction to OpenCV1.1. Image loading and saving1.2. Camera reading and displaying1.3. Reading and Modifying pixels

Before running the sample program, you need to switch to the directory where the code is located.

After SSH connects the car, it runs at the terminal.

cd ~/yahboomcar_ws/src/yahboomcar_astra/opencv_examples

1.1. Image loading and saving

After the car terminal switches to the directory where the code is located, run the program.

xxxxxxxxxx
python3 1_1.py
x
import cv2
if __name__ == '__main__':
    img = cv2.imread('figures/yahboom.jpg')
    cv2.imwrite("figures/1_1.jpg",img)
    
    
'''
图像读取:cv2.imread(filepath,flags)
    filepath:要读入图像的完整路径
    flags:如何读取图像
        cv2.IMREAD_UNCHANGED:保持原格式不变,可以用-1表示;
        cv2.IMREAD_GRAYSCALE:以灰度模式读入图片,可以用0表示;
        cv2.IMREAD_COLOR:,读入一副彩色图片,可以用1表示;
        cv2.IMREAD_UNCHANGED:读入一幅图片,并包括其alpha通道,可以用2表示。
图像保存:cv2.imwrite(filepath, img)
    filepath:保存的图像完整路径
    img:要保存的图像
    Image read: cv2.imread(filepath,flags)
    filepath: The full path of the image to be read
    flags: How to read images
    cv2.IMREAD_UNCHANGED: The format remains unchanged. The value can be -1.
    cv2.IMREAD_GRAYSCALE: Read images in grayscale mode, which can be represented by 0.
    cv2.IMREAD_COLOR:, read a color picture, can be represented by 1;
    cv2.IMREAD_UNCHANGED: Reads an image and includes its alpha channel, which can be represented by 2.
    Image save: cv2.imwrite(filepath, img)
    filepath: Save the full path of the image
    img: Image to save
'''

When run, the program reads the figures/yahboom.jpg image and saves the read image as figures/1_1.jpg.

SSH to the car in VSCode, access path.

xxxxxxxxxx
/root/yahboomcar_ws/src/yahboomcar_astra/opencv_examples/figures

You can view the read image yahboom.jpg and the saved image 1_1.jpg:

1684999768676

Note: opencv also has an important function cv.imshow(), which is used for image display. Since the car system has no graphical interface can not use this function to show, so here is not introduced, and will not be used later.

1.2. Camera reading and displaying

Note: This step applies to cars equipped with depth cameras.

After the car terminal switches to the directory where the code is located, run the program.

xxxxxxxxxx
python3 1_2.py
x
import cv2
if __name__ == '__main__':
    frame = cv2.VideoCapture(8)
    if frame.isOpened():
        ret,img = frame.read()
        cv2.imwrite('figures/1_2.jpg',img)
    frame.release()
    
'''
打开摄像头:cv2.VideoCapture(args[“videoPath”])
    这里参数为8,代表Astra相机;
    若参数是视频文件路径则打开视频,如cv2.VideoCapture(“../test.avi”)
读取图像数据:ret,img = frame.read()
    ret:一个bool值,判断是否读回正确的帧
    img:该帧的图像数据
Open the camera: cv2.VideoCapture(args[" videoPath "])
    Here the parameter is 8, representing Astra camera;
    If the parameter is the video file path, open the video, for example, cv2.VideoCapture("... /test.avi”)
Read image data: ret,img = frame.read()
    ret: indicates a bool value that determines whether the correct frame is read back
    img: Image data for this frame
'''

After running, the program reads a frame of camera image data and saves the read frame to figures/1_2.jpg.

1685001319891

1.3. Reading and Modifying pixels

After the car terminal switches to the directory where the code is located, run the program.

xxxxxxxxxx
python3 1_3.py
xxxxxxxxxx
import cv2
if __name__ == '__main__':
    img = cv2.imread('figures/yahboom.jpg')
    (b,g,r) = img[100,100] # 读取像素值# Read pixel values
    print(b,g,r)
    for i in range(0,10):
        for j in range(0,200):
            img[i,j] = (0,0,0) # 修改像素值# Modify pixel values
    cv2.imwrite("figures/1_3.jpg",img)

The terminal outputs the pixel value at the position of coordinates (100, 100).

1685002015448

After saving, some pixels in the upper left corner of the image are changed to black.

1685001980683

App mapping and navigation
OpenCV geometric transformation

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