# Parameterization and Design of Telepresence Robot to Avoid Obstacles
## 3 System Design and Implementation
### Speed Control  
The speed controller, as shown in Figure 3, controls the speed of the robot's drive train. The drive consists of two DC motors connected in parallel, transmitting their mechanical power to the drive gear. On the electrical side of the motors, they are fed by the motor controller. The motor controller itself receives the manipulated variable from the controller. The actual value of the drive, i.e., the estimated position of the robot, is recorded by the encoder on the drive gear. This actual position value is differentiated once, smoothed, and finally fed into the control loop. A digital PID controller with anti-wind-up feedback is used as the controller here, but it is only used as a PI controller. Figure 2: State machine for avoiding obstacles. Path planning and self-localization are two important components of telepresence mobile robots. Path planning is determining the best path for the robot to follow to reach its destination while avoiding obstacles and other potential hazards [52]. Path planning algorithms typically use sensor data, such as information from cameras or lidar, to build a map of the robot's environment and then to plan a safe and efficient path. Some common path-planning algorithms include the A* algorithm, [PERSON]'s algorithm, and rapidly-exploring random trees (RRTs) [53]. Self-localization is the process of determining the robot's current location within its environment. It is typically done by using sensor data, such as information from cameras or lidar, to compare the robot's current sensor readings with a pre-built map of the environment [54]. Some common self-localization algorithms include Monte Carlo localization (MCL), extended Kalman filter (EKF), and particle filter [55]. Path planning and self-localization are essential components for telepresence mobile robots, which help it to navigate and operate autonomously. They are typically integrated into a single control system that can make decisions and take actions based on sensor data and the robot's current location and destination. It is important to note that both path planning and self-localization are active research areas, and new algorithms and techniques are being developed to improve these systems' reliability, robustness and efficiency. The block diagram of the speed control loop is shown in Figure 3, in which we highlight three red boxes. These boxes are replicas of the real technical control of the robot modules. The red box motor driver describes the MD03 motor driver module. The module expects a manipulated variable \(u_{\omega(t)}\) with values between \(-243\) and \(243\). The quantizer then quantizes these to integer values. Finally, the output signal is normalized to values between \(-1\) and \(1\). It is not normalized to the output voltage of the motor driver since it depends on the battery voltage. The battery voltage is considered in the gain of the controlled \(K_{S}\). The motor driver directly closes the red box on the drive train, whose input variable is the output of the motor driver. The drive model is approximated as a PT\({}_{2}\) element to determine the vehicle speed. This model contains the drive from the battery voltage to the motors and the gearbox to the tires. In particular, this modeling also includes the weight of the robot. A step response experiment determines the parameters \(K_{S}\), \(t_{\mathrm{S1}}\) and \(t_{\mathrm{S2}}\) of the drive train. The integrator following the PT\({}_{2}\) element completes the model in that the robot travels a distance. It integrates the speed to a distance. The red encoder box represents a control-technical simulation of the built-in rotary encoder. The rotary encoder has an integral behavior here since it picks up the speed from the gearing but converts it into a distance during processing. Since the encoder discretely  
Figure 3: Speed control loop. measures the distance covered, it quantizes the distance to whole encoder pulses, i.e., integer values. The hardware components must be completed with suitable software to form a control loop.