yahboom
HomeLearn
Solution
Blog
Online Store
About Us
EN/中文
RDK X5 Robot📖
01. RDK-X5-Robot Introduction
  • 1.Introduction
  • 2.Common Problem Analysis
  • 3.Battery and charger usage precautions
  • 4.TF card expand capacity
02. Assembly Tutorial
  • Assembly Tutorial
  • Assembly Video-1
  • Assembly Video-2
  • Assembly Video-3
  • Assembly Video-4
03. Remote Control Course
  • 1.Mobile APP remote control
  • 2.USB Wireless Controller Remote Control
04. ROS Driver Board Course
  • 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 Course
  • 1.Update expansion board firmware
  • 2.Install Python driver library
  • 3.Set the car type
  • 4.Open and close APP program control
  • 5.Turn hotspot mode on and off
  • 6.Buzzer sound
  • 7.Control the motor to rotate forward and reverse
  • 8.Controlling robot movement
  • 9.OLED display
  • 10.Control fans and lighting effects
06. Development Environment
  • 1. Virtual machine installation and use
  • 2. Linux Basics
  • 3. Remote connection
  • 4. Multi-machine communication configuration
  • 5. Bind 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 Course
  • 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 Course
  • 1. Introduction and use of lidar
  • 2. Lidar obstacle avoidance
  • 3. Lidar tracking
  • 4. Lidar guard
  • 5. Lidar patrol
  • 6. gmapping mapping algorithm
  • 7. Cartographer mapping algorithm
  • 8. Navigation and obstacle avoidance
  • 9. App Mapping and Navigation
10. OpenCV Course
  • 1. Getting started with OpenCV
  • 2. OpenCV geometric transformation
  • 3. OpenCV Image Processing
  • 4. OpenCV image beautification
  • 5. QR code creation and recognition
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 instructions
  • 7. Face Detection
  • 8. Object Detection
  • 9. Visual line patrol-OpenCV
  • 10. Visual line patrol-deep learning
  • 11. Human body tracking
  • 12. Gesture control
12. Depth Camera Course
  • 1. Use of Depth Camera
  • 2. Camera intrinsic calibration
  • 3. ROS+OpenCV Basics
  • 4. AR Vision
  • 5. Color Tracking
  • 6. Object Tracking
  • 7. RTAB-Map 3D Mapping Navigation
13. Multi-robot Synchronous Control
  • Multi-vehicle synchronous control
Remote login control
  • 1. VNC and SSH remote login
  • 2. Jupyter lab login and case code running
Download
  • System_File
  • Code
  • VM_File
  • Software_Tools
  • Hardware_Info
  • Firmware
  • Instruction_Manual
  • ROS2_Basic_VM
Download ZIP

Welcome to RDK X5 Robot repository

2. Camera intrinsic calibration

Camera intrinsic calibration

Camera intrinsic calibration2.1、Program Function Description2.2、Preparation before calibration2.3, Program startup2.3.1, Start the camera2.3.2, Color Image Calibration2.3.3, IR infrared calibration

2.1、Program Function Description

Due to some reasons inside and outside the camera, the image will be greatly distorted, mainly radial deformation and tangential deformation, which will cause the straight line to become curved. The farther the pixel is from the center of the image, the more serious the distortion. In order to avoid the error caused by the data source, the camera parameters need to be calibrated. Calibration is essentially to reversely deduce the inherent and real parameters (internal parameters) of the camera by analyzing the pixels of the taken picture with the help of a known and determined spatial relationship (calibration board).

Wiki: http://wiki.ros.org/camera_calibration

2.2、Preparation before calibration

  • A large chessboard of known size. This tutorial uses a 9x6 chessboard and a 20 mm square, which needs to be flattened during calibration. Calibration uses the internal vertices of the chessboard, so the "10x7" chessboard uses the internal vertex parameter "9x6", as shown in the example below. Any specification of calibration board can be used, just change the parameters.

  • A relatively open area without obstacles and calibration board patterns.

  • Monocular camera that publishes images through ROS.

Chessboard (calibration board)

1684900748657

2.3, Program startup

2.3.1, Start the camera

Take the Astraproplus camera as an example, after SSH connects to the car, enter in the terminal,

xxxxxxxxxx
ros2 launch astra_camera astro_pro_plus.launch.xml

Start the camera before calibration, and turn it off after all calibration is completed.

Obi Zhongguang camera models and corresponding launch files:

launch filecamera model
ros2 launch astra_camera astra_pro.launch.xmlAstrapro
ros2 launch astra_camera astro_pro_plus.launch.xmlAstraproplus
ros2 launch astra_camera astra.launch.xmlAstramini

Since the car has no graphical interface, the following calibration program needs to be run in a virtual machine.

Enter in the virtual machine terminal,

xxxxxxxxxx
ros2 topic list

image-20241114121617058

The topic we need to use to calibrate RGB color images is /camera/color/image_raw, and the topic used to calibrate IR infrared images is /camera/ir/image_raw.

2.3.2, Color Image Calibration

Enter in the virtual machine terminal,

xxxxxxxxxx
ros2 run camera_calibration cameracalibrator --size 9x6 --square 0.02 --ros-args --remap /image:=/camera/color/image_raw
  • size: calibrate the number of internal corner points of the chessboard, for example 9X6, the corner points have a total of six rows and nine columns.

  • square: the side length of the chessboard, in meters.

  • /camera/color/image_raw: RGB image topic name.

image-20241114121819573

  • X: Left and right movement of the chessboard in the camera field of view

  • Y: Up and down movement of the chessboard in the camera field of view

  • Size: Front and back movement of the chessboard in the camera field of view

  • Skew: Tilt and rotation of the chessboard in the camera field of view

Collect images by moving up and down, front and back, left and right, and flipping, so that [X], [Y], [Size], and [Skew] on the right turn green, as shown in the figure below, and then click [CALIBRATE] to start calculating the camera internal parameters. The more pictures, the longer it takes, just wait. (Sixty or seventy pictures are enough, too many will easily get stuck).

image-20241114122019215

After calibration, click [SAVE], as shown in the figure below.

image-20241114122323484

The calibration results are saved to [/tmp/calibrationdata.tar.gz]. You can move the file out to view the content.

After exiting the program, enter in the virtual machine terminal,

xxxxxxxxxx
#Move the file to the current directory
sudo mv /tmp/calibrationdata.tar.gz .
#Create a folder
mkdir calibrationdata_rgb
#Unzip to the specified folder
tar -zxvf calibrationdata.tar.gz -C ./calibrationdata_rgb

image-20241114122442157

You will get the calibrated png file, ost.yaml and ost.txt files in the calibrationdata_rgb folder under this directory.

Since the Astra driver loads the built-in parameters calibrated in the code when it is started, there is no need to load this calibrated parameter. The camera internal parameters will be used in the [AR Vision] case in the [OpenCV Series Courses].

2.3.3, IR infrared calibration

Since the RGBD camera uses structured light as the depth imaging principle, the infrared light it projects is a special disordered light spot, which makes the infrared receiving device unable to receive clear and complete picture content.

At this time, we can have several special processing methods:

  • Force to find various angles and let the camera find the corner point as much as possible (poor accuracy)

  • By sticking some frosted translucent paper in front of the red-haired transmitter, the infrared spot is evenly distributed (moderate accuracy, more convenient)

  • Block the infrared projection camera and use an external infrared camera for fill light (high accuracy, requires additional equipment)

Choose a processing method according to your needs.

Enter in the virtual machine terminal,

xxxxxxxxxx
ros2 run camera_calibration cameracalibrator --size 9x6 --square 0.02 --ros-args --remap /image:=/camera/ir/image_raw

image-20241114122629346

Similarly, the following operations are similar to the color camera calibration, changing different poses and filling the lines under [X], [Y], [Size], and [Skew] as much as possible.

image-20241114122806554

Click [CALIBRATE] to calculate the camera internal parameters, and click [SAVE], as shown in the figure below.

image-20241114122841664

The calibration results are saved to [/tmp/calibrationdata.tar.gz]. You can move the file out to view the content.

After exiting the program, enter in the virtual machine terminal,

xxxxxxxxxx
#Move the file to the current directory
sudo mv /tmp/calibrationdata.tar.gz .
#Create a folder
mkdir calibrationdata_depth
#Unzip to the specified folder
tar -zxvf calibrationdata.tar.gz -C ./calibrationdata_depth

image-20241114122926132

You will get the calibrated png file, ost.yaml and ost.txt files in the calibrationdata_depth folder under this directory.

Use of Depth Camera
ROS+OpenCV Basics

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