yahboom
HomeLearn
Solution
Blog
Online Store
About Us
EN/中文
ROSMASTER R2📖
1.Preparation and First Trial
  • 1.1 Accessories introduction
  • 1.2 Precautions for battery
  • 1.3 First Trial
2.Assembly steps
  • Installaction Video
3.ROS1-Remote control course
  • 3.1 APP remote control
  • 3.2 Model aircraft remote control
  • 3.3 Handle remote control
4.ROS1-Hardware course
  • 4.1 About expansion board_V3.0
  • 4.1 About expansion board_V1.0
  • 4.2 STM32 Development environment
  • 4.3 Button to control the buzzer to whistle
  • 4.4 FreeRTOS application
  • 4.5 Serial communication
  • 4.6 SBUS model aircraft remote control
  • 4.7 CAN bus communication
  • 4.8 RGB colorful light bar
  • 4.9 Timer interrupt to control PWM servo
  • 4.10 Control serial port servos
  • 4.11 Nine-axis attitude sensor to obtain data
  • 4.12 Control motor
  • 4.13 Timer captures the encoder data
  • 4.14.1 Kinematic Analysis of Mecanum Wheel
  • 4.14.2 Kinematics Analysis of Ackermann Car
  • 4.15 PID control robot movement
5.ROS1-Basic course
  • 5.1 Update the firmware
  • 5.2 Turn off the self-starting process at startup
  • 5.3 Install the Rosmaster driver library
  • 5.4 Buzzer whistle
  • 5.5 Control PWM servo
  • 5.6 RGB colorful light bar special effects display
  • 5.7 Control motor
  • 5.8 Control robot movement
  • 5.9 Control Serial Servo
6.ROS1-Linux operating system
  • 6.1 Virtual machine installation and use
  • 6.2 Linux basics
  • 6.3 Remote control
  • 6.4 Multi-machine communication configuration
  • 6.5 Static IP and hotspot mode
  • 6.6 Bind the device ID
  • 6.7 Web page real-time monitoring
  • 6.8 Expansion tutorial
  • 6.9.1 Jetson Nano write sytem
  • 6.9.2 Jetson Xavier NX write system
  • 6.9.3 Jetson TX2 NX write system
  • 6.9.4 Raspberry Pi write system
7.ROS1-Docker-pi5
  • 1、Docker overview and docker installation
  • 2、Common commands for docker image containers
  • 3、Docker images deeply understand and publish images
  • 4、Docker hardware interaction and data processing
  • 5、Enter the bot's docker container
  • 6、Robot development environment construction in Docker
  • 7、How customers can update docker images in the future
8.ROS1-ROS basic course
  • 1.ROS introduction
  • 2.ROS installation
  • 3.ROS common command tools
  • 4.ROS workspace
  • 5.ROS function package
  • 6.ROS node
  • 7.ROS topic publisher
  • 8.ROS topic subscribers
  • 9.ROS service client
  • 10.ROS service server
  • 11.ROS action client
  • 12.ROS action server
  • 13.ROS custom message reception
  • 14.ROS-launch file
  • 15.ROS-TF transformation
  • 16.ROS parameter service
  • 17.ROS-rviz use
  • 18.ROS-rqt tool usage
  • 19.Topic message recording and playback
  • 20.urdf model introduction
  • 21.gazebo introduction
  • 22.ROS distributed communication
9.ROS1-OpenCV courses
  • 9.1 Getting started with Open Source CV
  • 9.2 Geometric transformation
  • 9.3 Image processing and drawing text line segments
  • 9.4 Image beautification
  • 9.5 Opencv application
  • 9.6 AR vision
  • 9.7 AR QR code
  • 9.8 ROS+Opencv foundation
  • 9.9 ROS+Opencv application
  • 9.10 Data transformation and point cloud
  • 9.11 MediaPipe development
10.ROS1-Robot control course
  • 10.1 PID algorithm theory
  • 10.2 Robot PID debugging
  • 10.3 Robot information release
  • 10.4 Robot keyboard control
  • 10.5 Robot handle control
  • 10.6 Robot state estimation
  • 10.7 Robot calibration
  • 10.8 Robot URDF model
11.ROS1-Depth camera course
  • 11.1 How to use the Astra camera
  • 11.2 Astra camera calibration
  • 11.3 Astra Color Tracking
  • 11.4 Astra Object Tracking
  • 11.5 Visual tracking autopilot
  • 11.6 Pure visual 2D mapping and navigation
  • 11.7 RTAB-Map 3D mapping navigation
  • 11.8 ORB_SLAM2 basics
  • 11.9 ORB_SLAM2_Octomap
12.ROS1-Lidar course
  • 11.1 Lidar basic-SLAM
  • 11.1 Lidar basic-EAI
  • 11.2 Lidar avoiding
  • 11.3 Lidar guard
  • 11.4 Lidar follow
  • 11.5 Patrol game
  • 11.6 gmapping mapping
  • 11.7 hector mapping
  • 11.8 karto mapping
  • 11.9 cartographer mapping
  • 11.10 rrt_exploration mappin
  • 11.11 AMCL
  • 11.12 Navigation and avoiding
  • 11.13 APP mapping and navigation
  • 11.14 TEB path planning algorithm
13.ROS1-Multi-robot control course
  • 13.1 Multi-machine handle control
  • 13.2 Multi-machine navigation
  • 13.3 Multi-machine formation
  • 13.4 Multi-machine surround
14.ROS1-Deep learning courses
  • 14.1 KNN recognizes handwritten digits
  • 14.2 Basic use of TensorFlow
  • 14.3 Basic use of PyTorch(jetson)
  • 14.4 yolov5 model training(jetson)
  • 14.5 yolov5+tensorrt acceleration(jetson)
  • 14.6 yolov4-tiny
15.ROS1-Voice control courses
  • 15.0 How to use old voice module in new image
  • 15.1 Introduction of voice control module-NEW
  • 15.2 Voice control module port binding-NEW
  • 15.1 Introduction of voice control module-Old
  • 15.2 Voice control module port binding-Old
  • 15.3 Voice control car movement
  • 15.4 Voice control Autopilot
  • 14.5 Voice control color recognition
  • 15.6 Voice control color tracking
  • 15.7 Voice control multi-point navigation
16.ROS1-Model training Autopilot
  • 16.0 ReadMe
  • 16.1 yolov5 to train traffic signs
  • 16.2 TensorRt acceleration identification mark
  • 16.3 Road sign indication function description
  • 16.4 Collect data
  • 16.5 Training model
  • 16.6 Model transformation and application
  • 16.7 AI Autopilot
17. ROS2-Remote control course
  • 1. APP remote control
  • 2. Model aircraft remote control
  • 3. Handle remote control
18.ROS2-Hardware course
  • 1. Expansion board introduction_V3.0
  • 1. Expansion board introduction_V1.0
  • 2. STM32 development environment build
  • 3. Key control buzzer sounding
  • 4. FreeRTOS applications
  • 5. Serial communication
  • 6. SBUS model airplane remote control
  • 7. CAN bus communication
  • 8. RGB colorful light bar
  • 9. Timer interrupt control PWM servos
  • 10. Control serial servos
  • 11. Nine-axis attitude sensor acquires data
  • 12. Control motor forward and reverse
  • 13. Timer Capture Encoder Data
  • 14. Theory of Robot Kinematics Analysis
  • 14.1.Mecanum wheel
  • 14.2.Ackerman
  • 14.3.4WD
  • 15. PID control of robot motion
19. ROS2-Basic course
  • 1. Update the firmware of the expansion board
  • 2.Close the large self-starting program at boot
  • 3. Install Rosmaster driver library
  • 4. Buzzer sounding
  • 5. Control PWM servo
  • 6. RGB colorful light bar special effects show
  • 7. Control motor forward and reverse
  • 8. Controlling robot motion
  • 9. Control serial servos
20. ROS2-Linux operating systemnew
  • 01. Virtual Machines
  • 02. Linux Basics
  • 03. Remote control
  • 04. Multi-computer communication configuration
  • 05. Static ip and hotspot mode
  • 06. Bind device ID
  • 07.Webpage real-time monitoring
  • 08. Expansion Tutorial
  • 09-1.Jetson Nano write system file
  • 09-2. Raspberry Pi write system file
  • 09-3.Orin write system
  • 10.Jetpack old system upgraded to SUPER systemnew
21.ROS2 -Docker(Nano Pi)
  • 1. docker overview and docker installation
  • 2. docker image container common command
  • 3. docker image in-depth understanding and publishing images
  • 4. docker hardware interaction and data processing
  • 5. Enter the docker container of the robot
  • 6. docker in the robot development environment build
  • 7. Customer's method of updating docker images in the future
22.ROS2- ROS2 Basic Tutorial
  • 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
23. ROS2-Robot control course
  • 1. PID algorithm theory
  • 2. Robot information release
  • 3. Robot control
  • 4. Robot state estimation
  • 5. Robot calibration
  • 6. URDF model
24. ROS2-Lidar course
  • 1-1. Introduction and use of SLAM lidar
  • 1-2. Introduction and use of 4ROS lidar
  • 2. Lidar obstacle avoidance fun gameplay
  • 3. Lidar tracking fun gameplay
  • 4. Patrol function play
  • 5. gmapping map building algorithm
  • 6. cartographer building algorithm
  • 7. Navigation and obstacle avoidance
  • 8. Rosmaster_R2 using the app to build maps
  • 9. Rosmaster_R2 navigating with the app
25. ROS2-OpenCV courses
  • 1. opencv basic course
  • 2. ROS+opencv application
  • 3. QR code creation and recognition
  • 4. AR Vision
  • 5. mediapipe fun gameplay
  • 6. Patrol line autopilot
26. ROS2-Depth camera courses
  • 1. Depth camera use
  • 2. Camera calibration
  • 3. Color tracking
  • 4. KCF object tracking
  • 5. ORB_SLAM2 Basics
  • 6. ORB_SLAM2 PCL mapping
  • 7. ORB_SLAM2 Octomap mapping
  • 8. RTAB-Map 3D mapping navigation
27.ROS2- Voice control courses
  • 0. How to use old voice module in new image
  • 1.1 Introduction to the module-New
  • 1.2 Voice Control Module Port Binding-New
  • 1.3 Introduction to the module-Old
  • 2. Voice control car movement
  • 3. Voice control autopilot
  • 4. Voice control color recognition
  • 5. Voice control color tracking
  • 6. Voice control multi-point navigation
28.Deep learning courses(SUPER)
  • 1.KNN recognizes handwritten digitsnew
  • 2.Basic use of TensorFlownew
  • 3.Basic use of PyTorch(jetson)new
  • 4.YOLOv11Model conversion(SUPER)new
  • 5.YOLOv11Dataset annotation(SUPER)new
  • 6.YOLOv11Model conversion + tensorrt acceleration(SUPER)new
  • 7.YOLOv11Object recognition(SUPER)new
29. ROS2-Multi-robot control
  • 1. Multi-robot control
  • 2. Multi-robot navigation
LLM tutorial
1.Development environment
  • 0. Model usage instructions
  • 1.Environments deployment
  • 2.Dialogue platform installation
2.Jetson Nano B01
  • 1.Qwen2 model
  • 2.TinyLlama model
  • 3.Phi-3 model
  • 4.Gemma model
  • 5.Orca Mini model
  • 6.StarCoder2 model
  • 7.DeepSeek-R1 model
  • 8.Expand LLaVA-Phi3
3.Jetson Orin NXNANO
  • 1.Llama3 model
  • 2.Qwen2 model
  • 3.Phi-3 model
  • 4.Gemma model
  • 5.WizardLM2 model
  • 6.Codellama model
  • 7.DeepSeek-R1 model
  • 8.Orca Mini model
  • 9.StarCoder2 model
  • 10.TinyLlama model
  • 11.Expand LLaVA
  • 12.Expand LLaVA-Phi3
4.Raspberry Pi 5B
  • 1.Meta AI Llama3 model
  • 2.Qwen2 model
  • 3.Phi-3 model
  • 4.Gemma model
  • 5.WizardLM2 model
  • 6.Meta AI Codellama model
  • 7.DeepSeek-R1 model
  • 8.Expand LLaVA
FAQ
  • 1.Using your own Jetson board, car cannot start normally
Download
  • RemoteCtrl_APP(iOS/Android)
  • Mapping_APP(iOS_Android)
  • Instruction Manual
  • SystemFile_ROS1
  • SystemFile_ROS2
  • SystemFile_ROS2_OrinNANOSUPER
  • SystemFile_ROS2_OrinNXSUPER
  • VM software
  • Code
  • Jetson_Boot_USB.tar.gz
  • Autopilot Annex
  • Other_Annex_File
  • LLM_SystemFile
  • ROS2_Basic_VM
Download ZIP

Welcome to ROSMASTER R2 repository

1. PID algorithm theory

1、PID algorithm theory

1.1、Introduction to algorithms

PID is to perform proportional integral differentiation on the input deviation, and the superposition results of the operation are used to control the actuator. The formula is as follows :

$u(t)=K_p[e(t)+frac{1}{T_i}int_{0}^{t}e(t)dt+Tdfrac{de(t)}{dt}]$

It consists of three parts:

  • P is the proportion, which is the input deviation multiplied by a coefficient;

  • I is the integral, which is the integral operation of the input deviation;

  • D is differentiation, which differentiates the input deviation.

The following figure shows a basic PID controller:

551

1.1.1、proportional part

The mathematical representation of the proportional part is: $K_p*e(t)$

In analog PID controllers, the proportional link reacts instantaneously to deviations. Once the deviation occurs, the controller immediately produces a control effect, so that the control quantity changes in the direction of reducing the deviation. The strength of the control effect depends on the scale coefficient, the larger the scale coefficient, the stronger the control effect, the faster the transition process, the smaller the static deviation of the control process; However, the larger it is, the easier it is to oscillate and destabilize the system. Therefore, the example coefficient selection must be appropriate to achieve a small transition time and a small static difference and stable effect.

Advantages: Adjust the open-loop scale coefficient of the system, improve the steady-state accuracy of the system, reduce the inertia of the system, and speed up the response speed.

Disadvantages: With only the P controller, the excessive open-loop scale coefficient will not only increase the overshoot of the system, but also make the system stability margin smaller or even unstable.

1.1.2、Points section

The mathematical representation of the integral part is: $frac{K_p}{T_i}int_{0}^{t}e(t)dt$ The larger the integral constant, the weaker the accumulation of integrals, and the system will not oscillate during the transition; However, increasing the integration constant will slow down the elimination process of static error, and the time required to eliminate the deviation is longer, but it can reduce the overshoot and improve the stability of the system. When Ti is small, the integration effect is stronger, and oscillations may occur in the system transition time, but the time required to eliminate the deviation is shorter. Therefore, Ti must be determined according to the specific requirements of actual control.

Advantages: Eliminates steady-state errors.

Disadvantages: The addition of the integral controller will affect the stability of the system and reduce the stability margin of the system.

1.1.3、differential part

The mathematical representation of the differential part is: $K_p*Tdfrac{de(t)}{dt}$

The role of the differential link makes the deviation stop. It is controlled according to the trend of change of deviation (speed of change). The faster the deviation changes, the larger the output of the differential controller and can be corrected before the deviation value becomes larger. The introduction of differential action will help to reduce the overshoot, overcome oscillation, and stabilize the system, especially for the order system, which is very beneficial to the tracking speed of the system. However, the role of differentiation is sensitive to the noise of the input signal, and those noisy systems generally do not use differentiation, or filter the input signal before the differentiation works. The role of the differential part is determined by the differential time constant Td. The larger the Td, the stronger its effect on suppressing deviation changes; The smaller the Td, the weaker it is to resist changes in deviation. The differential part obviously has a great effect on system stability. Proper selection of the differential constant Td can optimize the differential action.

Advantages: make the response speed of the system faster, overshoot is reduced, oscillation is reduced, and has a "prediction" effect on the dynamic process.

1.2、selection of PID algorithm

Digital PID control algorithms can be divided into positional PID and incremental PID control algorithms. So before we decide which PID algorithm to use, we should first understand his principle:

1.2.1、positional PID algorithm

$u(k)=K_pe(k)+K_Isum_{i=o}e(i)+K_D[e(k)-e(k-1)]$

e(k): User-set value (target value) - The current state value of the control object

Scale P : e(k)

Integral I: ∑ accumulation of e(i) errors

Differential D : e(k) - e(k-1) This error - last error

That is, the positional PID is the actual position of the current system, and the deviation from the expected position you want to achieve is controlled by PID

Because there is an error integral ∑e(i), which is always accumulated, that is, the current output u(k) is related to all past states, the cumulative value of the error is used; (error e will have error accumulation), the output u(k) corresponds to the actual position of the actuator, once the control output is wrong (the current state value of the control object is a problem), a large change in u(k) will cause a large change in the system and positional PID when the integral term reaches saturation, the error will still continue to accumulate under the action of integration, once the error begins to change in reverse, the system needs a certain time to exit from the saturation region, so in u(k) reaches the maximum and minimum, to stop the integration action, And there must be integral limiting and output limiting, so when using positional PID, we generally use PD control directly

Positional PIDs, on the other hand, are suitable for the control of upright and temperature control systems for actuators without integral parts, such as servos and balance trolleys

Advantages: Positional PID is a non-recursive algorithm that directly controls the actuator (such as the balance trolley), and the value of u(k) and the actual position of the actuator (such as the current angle of the trolley) correspond one-to-one, so it can be well applied in objects without integral parts of the actuator

Disadvantages: Each output is related to the past state, and e(k) is accumulated when calculating, which is a large amount of computational work.

1.2.2、incremental PID algorithm

$Delta u(k)=u(k)-u(k-1)=K_P[e(k)-e(k-1)]+K_ie(k)+K_D[e(k)-2e(k-1)+e(k-2)]$

Scale P : $e(k)-e(k-1)$ this time error - last error

Integral I: $e(k)$ error

Differential D : $e(k)-2e(k-1)+e(k-2)$ this time error -2 * last error + last error

Incremental PID can be well seen according to the formula, once the KP, TI, TD, as long as the deviation of the three measurements before and after is used, the control amount $Delta u(k)$ obtained by the formula can be found by the formula The control amount $Delta u(k)$ corresponds to the increment of the recent position error, rather than corresponding to the deviation from the actual position There is no error accumulation, that is, there is no need to accumulate in incremental PID. The determination of the control increment $Delta u(k)$ is only related to the last 3 sampling values, which is easy to obtain a better control effect through weighting processing, and when problems occur in the system, incremental will not seriously affect the work of the system

Summary: Incremental PID is an increment of positional PID, at which time the controller outputs the difference between the position values calculated at the adjacent two sampling moments, and the result is the increment, that is, the control quantity needs to be increased (negative value means reduce) on the basis of the previous control quantity.

Merit:

(1) The impact is small when the operation is small, and the error data can be removed by logical judgment if necessary.

(2) The impact is small during manual/automatic switching, which is convenient to achieve no disturbance switching. When the computer fails, it remains the same.

(3) There is no need to accumulate in the calculation. The determination of the control increment Δu(k) is only relevant to the last 3 sampling values.

Shortcoming:

(1) The integral truncation effect is large and there is a steady-state error;

(2) The impact of spillage is large. Some subjects are not very good with incremental type;

1.2.3、The difference between incremental and positional

1.2.3、Difference between incremental and positional

(1) The incremental algorithm does not need to be accumulated, and the determination of the increment of the control quantity is only related to the recent deviation sampling value, and the calculation error has little impact on the control quantity calculation. The positional algorithm uses the accumulation value of the past deviation, which is easy to produce a large accumulation error.

(2) The incremental algorithm obtains the increment of the control quantity, for example, in the valve control, only the change part of the valve opening is output, the impact of misoperation is small, and if necessary, the output can be limited or prohibited by logical judgment, which will not seriously affect the work of the system. The output of the positional type directly corresponds to the output of the object, so it has a greater impact on the system.

(3) The incremental PID control output is the increment of the control amount and has no integration effect, so the method is suitable for the object of the actuator with integral parts, such as stepper motors, etc., while the positional PID is suitable for the object without integral parts of the actuator, such as electro-hydraulic servo valves.

(4) When performing PID control, positional PID needs to have integral limiting and output limiting, while incremental PID only needs output limiting

Positional PID and incremental PID are just two implementations of digital PID control algorithms, which are essentially identical. The main difference is that the integration items are stored in different ways, positional PID points are stored separately, incremental PID points are stored as part of the output, and online players also have their own unique insights and views on the use of positional and incremental, depending on which algorithm is suitable for our specific application scenarios.

1.3、debugging of PID parameters

There are many methods for selecting PID controller parameters, such as trial method, critical proportionality method, extended critical proportionality method, etc. However, for PID control, the selection of parameters is always a very troublesome work, and it needs to be constantly adjusted to obtain a more satisfactory control effect. Based on experience, the steps for determining general PID parameters are as follows:

1.3.1、determine the scale factor Kp

When determining the scale coefficient Kp, first remove the integral term and differential term of PID, so that Ti=0 and Td=0 make it a pure proportional adjustment. The input is set to 60%~70% of the maximum allowable output of the system, and the scale coefficient Kp gradually increases from 0 until the system oscillates; In turn, the scale factor Kp gradually decreases from this time until the system oscillation disappears. Record the scale factor Kp at this time, and set the scale factor Kp of PID to 60%~70% of the current value.

1.3.2、Determine the integration time constant Ti

After the scale factor Kp is determined, set a large integration time constant Ti, then gradually decrease Ti until the system oscillates, and then conversely, gradually increase Ti until the system oscillations disappear. Record Ti at this time, and set the integration time constant Ti of PID to 150%~180% of the current value.

1.3.3、Determine the differential time constant Td

The differential time constant Td generally does not need to be set, it can be 0, and the PID adjustment is converted to PI adjustment. If it needs to be set, it is determined in the same way as Kp, taking 30% of its value when it is not oscillating.

1.3.4、system no-load, on-load joint debugging

Fine-tune PID parameters until performance requirements are met.

Of course, this is just my personal debugging method, not necessarily suitable for everyone and every environment, only for your reference; However, there are also classic tips for debugging PID circulating on the Internet.

PID is a proportional (P), integral (I), differential (D) control algorithm, not necessarily have to have these three algorithms at the same time, can also be PD, PI, or even only P algorithm control. One of my simplest ideas for closed-loop control before is only P control, feedback the current result back, and then subtract from the target, if it is positive, it will slow down, if it is negative, it will accelerate, of course, this is only the simplest closed-loop control algorithm, and it is still back to the previous section of positional and incremental summary, specifically refer to our current control environment, because of the difference in each control system, the parameters that can make our system achieve the most stable effect are OK.

 

ROS2 TF2 coordinate transformation
Robot information release

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