Implementation Kinematics Modeling and Odometry of Four Omni Wheel Mobile Robot on The Trajectory Planning and Motion Control Based Microcontroller

— The control of kinematic modeling in a four wheel omni-directional robot (FWOR) is very difficult. Because you have to adjust the speed of the four DC motors. The speed of DC motors is controlled so that the FWOR robot can be controlled. This paper will explain the application of kinematic modeling of four wheel omni directional robots as track tracking controllers and microcontroller based movement control. Kinematic is the study of robot motion based on geometric structure analysis of a stationary / moving reference coordinate frame system without considering the force, torque or certain moments that cause movement. By applying kinematic modeling and calculation of the odometric system as feedback, the control of the robot trajectory movement can be controlled with precision in accordance with the path planning that has been made. The robot track control technique is embedded in a 32-bit ARM microcontroller. The path planning system and observing robot movement are carried out using a friendly graphic interface using Processing to facilitate the robot monitoring process. The results of the experiments and tests carried out, the system is able to control the rate of movement of the robot with great precision in accordance with the path planning made.


INTRODUCTION
The rapid development of science and technology has had a significant impact on human life, one of which is in the field of mobile robots. Nowadays, mobile robot technology has been widely used in various applications in human life, such as transporting objects from one place to another. This is due to their efficiency in handling a job continuously independently. One example is shown by the Amazon company in implementing wheeled mobile robots. Holonomic wheeled robot that is often applied to transport goods [1] [2] [3]. The robot uses an omnidirectional wheel that can move in all directions [4] [5] [6] [7] [8]. In the last few decades, the increasing number of mobile robot applications has attracted the attention of many researchers. The main problems in controlling the movement of mobile robots such as point stabilization, path planning, trajectory tracking, real-time avoidance, and motion control have attracted a lot of attention from both academics and practitioners.
In general, wheeled robot navigation systems that are often encountered consist of two types, namely ackerman steering and differential steering which have low mobility. This is due to the limitations of the type of robot being unable to move in all directions, so that these two types can be categorized as non-holomonic robots [6]. To overcome this problem, a holomonic robot that has a high level of mobility was developed, that is, it can move in all directions in the xy cartesian plane without having to rotate the direction of the robot's orientation. One type of holomonic robot is omnidirectional robot [5] [6] [7].
To be able to control the movement of the holomonic omnidirectional robot in all directions, a structural geometry analysis of the coordinate reference frame is required [8]. This is very closely related to the structure of the robot and the placement of the wheels is often called kinematic modeling. By understanding the kinematic modeling of the omniwheel robot, the motor direction and speed can be calculated easily. In addition, to determine the actual and precise robot movement system, odometric data is needed, which is data that can predict changes in the robot's position with respect to the robot's initial location.
Several previous researchers have conducted research on robot track and motion tracking control. Modeling and Motion Control of Soft Robots was studied by Fei and Xu [9]. Avoidance of Dynamic Inhibition from Restricted Cellular Manipulation Using a Predictive Control Model was investigated by Li and Xiong [3]. Fast Online Frequency Adaptation Mechanism for CPG-based Robot Movement Control was investigated by Thor and Manoonpong [10]. Powerful Control of the Trajectory of Time to New with High Order Shift Mode for Human-Robot Cooperation was investigated by Ren, Wang and Chen [11]. Feedforward Motion Control with Variable Stiffness Actuators Inspired by Muscle Cross-Bridge Kinematics was studied by Chang, Kim and Kim [12]. Control of SCARA 2-DOF Robot Hybrid Tracking via Port-Controlled Hamiltonian and Backstepping was investigated by Chi, Yu and Yu [13]. Decentralized Track Tracking Control for Soft Robots Interacting with the Environment was investigated by Angelini [14]. Movement control of maintenance robots based on Kinect motion  [15]. Control of the motion of robotic fish in dynamic environmental conditions using an adaptive control approach was investigated by Verma, Shen and Xu [16].
Utilizing Distance Information from Different Interaural Levels for Motion Control of Binaural Robots was investigated by Magassouba, Bertin and Chaumette [17]. Control of Vehicle Track Tracking with Less Planar Activation was studied by Ashrafiuon, Nersesov and Clayton [18]. Movement Control Tracking Safety Based on Prohibited Virtual Equipment in Robot-Assisted Nose Surgery was investigated by Zheng [19]. Interference rejection MPC for tracking wheeled mobile robots was investigated by Sun [20]. Mode-switching motion control systems for reactive and following surface interactions using industrial robots were investigated by Nakhaeinia, Payeur and Laganiere [21]. Robotic Motion Control of Wire-Based Continuous Contact Catheter was investigated by Zhang [22]. Long Stroke Hydraulic Robot Motion Control with Increased Nonlinear Dynamic Inversion was investigated by Huang [23]. Movement Control Strategy for the Dolphin Robot Repeating Leap was investigated by Yu [24]. Maintain Rollin -Whole Body Movement Control and Planning for a Wheeled Four-Legged Robot researched by Bjelonic [25]. Motion control of a floating biomimetic four-fin underwater robot was investigated by Salumae, Chemori and Kruusmaa [26]. Motion Control of UX-1 Underwater Mining Exploration Robot: Field Trials researched by Fernandez [27]. This paper is different from previous research papers. This paper describes the implementation of and kinematic modeling and odometry in path planning and controlling the movement of an omnidirectional robot based on a microcontroller. In section II, we will explain the mathematical calculations of the omnidirectional robot kinematic model, and the odometric system in determining the change in the position of the robot with respect to its initial location. In section III, we will explain the architectural control system consisting of track planning, motion control, and the overall system architecture. In section IV, we will explain some of the results of testing the robot movement. Section V contains the conclusions, notes, and research plans that will be carried out next.

A. Kinematic Modeling on Omni Wheel Platform
Kinematic modeling is the study of robot motion based on geometric structure analysis of a stationary / moving reference coordinate frame system without considering the force, torque or certain moments that cause movement [28]. The position of the omni wheel greatly affects the kinematic model of the omni directional robot. This study uses 4 omni wheels, where the axes of the four wheels are joined at the center point of the robot and the angle between the wheels forms an angle of 90°.
In the kinematic modeling of robots, there are two kinematic models, namely inverse kinematic (IK) and forward kinematic (FK) shown in figure 1. IK is used to determine the linear velocity of the four omni wheels and uses forward kinematics to determine the linear velocity of the robot against global coordinates. Figure 1 shows the display of the wheel placement frame from FWOR. The angle formed between the wheels and the robot reference point is denoted using , , , . The angular velocity of each wheel is denoted using = [ ] , and the linear velocity of each wheel is denoted using = [ ] . This wheel speed value will be positive when the wheel rotates clockwise (CW), and will be negative when counter clockwise (CCW). The linear velocity and angular velocity of the robot with respect to the XOY global coordinates are notified using . R is the distance from the wheel to the center of the robot and r is the radius of the omni wheel.  Based on Figure 2, we can formulate the following equations.
Based on Figure 1 and Figure 2, we can formulate the inverse kinematic equation and kinematic forward. In the inverse kinematic the input is the linear velocity of the robot ( ) to determine the linear velocity of each wheel. The solution of the inverse kinematic equation can be seen in equation (4).
In the forward kinematic input is the linear velocity of the wheel to get the linear velocity of the robot ( ) . By referring to the inverse kinematic equation (4) we can get the value of ( ) by multiplying ( ) = . ( ) − , Because ( ) is a 4x3 matrix, so ( ) − is a pseudo-inverse. If the formula is used, a calculation error will occur, so we try to propose a new equation which can be seen in the following equation Eq (7).

B. Odometry System on Omni Wheel Platform
Odometry is a method used to obtain data from various motion sensors to estimate changes in position over certain time intervals. In this study, the odometry sensor used a rotary encoder on each driving wheel. To obtain data on changes in position with time, it is necessary to read the linear velocity of the wheel ( ) as in equation number (9).
v w (n) = ė( n) PPR x K where = 314.28 and n is the notation of the wheel number. After getting the linear velocity of each wheel, this value is then entered into the FK equation in equation (7) to get the linear velocity value for the robot ( ) . To get the global coordinates and orientation of the ( ) robot, equations (11), (12), and (13) can be used.

A. Overall System Architectures
In this explanation, we will explain about robot architecture systems and robot movement control systems using kinematic modeling and odometry based on microcontrollers. Figure 3 is a detailed block diagram of the system being made. consists of 2 inputs PWM1 and PWM2. When the motor rotates CW, PWM1 will be equal to the pulse value PWM, and PWM2 is equal to zero, and vice versa when the direction of CCW. To plan the trajectory and the process of monitoring the movement of the robot, a graphical user interface (GUI) is made using a processing application, the process of sending and retrieving robot data using the NRF24l01 wirelessly. Figure 4 is a FWOR physical construction image.

B. Trajectory Planning
The basis for determining trajectory planning from FWOR can be seen in Figure 6. This figure illustrates the mapping of robot positions and trajectories that have been made.
( ) , ( ) shows FWOR coordinates to global coordinates, ( ) , ( ) are the coordinates of the trajectory planning symbol n shows the sequence notation of the path point, ( ) is a notation of the direction of movement of the robot to global coordinates.
To calculate the linear velocity value for each wheel, you can use the IK equation as in equation (3). However, to be able to control the PWM value into a precise linear velocity value, controls such as PID, fuzzy and etc. So that we cannot use equation (3) in this system, but we can still run FWOR in the direction according to the point of destination coordinates ( ) , ( ) using equation (17) as follows.
MP is a notation of the maximum PWM variable value, this value has a value between 0-255, used as the maximum PWM value limit. The process of changing the direction of the robot's movement can be estimated using equation (18) ≤ ; ( ) = ( +1) ; ( ) = ( +1) where is the Radius Circle of Target. Changes in the direction of movement of the robot that occur suddenly when the motor rotates rapidly when the trajectory point is touched, can cause the system to become unstable, and cause wheel slip, so a smooth change in speed direction is needed. To overcome this problem, it can be overcome by reducing the value of by With this equation, it causes a decrease in the value of PWM according to equation (19) and anticipates a sudden change. The following is a block diagram image of the control of the FWOR system.

A. Kinematic Experiment and Validation Forward
In this first test, it was carried out to test how precise the robot coordinates readings were by using the forward kinematic equation using a rotary encoder sensor on the four drive wheels. The method used is by running the robot to a certain coordinate point, then comparing the reading of the coordinates with existing measuring instruments. Table I below is the results of the tests that have been carried out. Nine experimental data on forward kinematic and real position data are listed in the table. The first data in the table shows that the robot is moved with forward kinematic data of (20,20)  The third data in the table shows that the robot is moved with forward kinematic data of (80.80) at a 45 ° angle. The condition of the robot in real position is at the coordinate point (81.81) with a facing angle of 46 °. The fourth data in the table shows that the robot is moved with forward kinematic data of (160,160) at a facing angle of 90 °. The condition of the robot in real position is at the coordinate point (162.159) with a facing angle of 90 °.
The fifth data in the table shows that the robot is moved with forward kinematic data of (300,300) at a facing angle of 180 °. The condition of the robot in real position is at the coordinate point (302,302) with a face angle of 181 °. The six data in the table shows that the robot is moved with forward kinematic data of (500,500) at a facing angle of 270 °. The condition of the robot in real position is at the coordinate point (501,502) with a face angle of 271 °.
The seventh data in the table shows that the robot is moved with forward kinematic data of (1000.1000) at a facing angle of 310 °. The condition of the robot in real position is at the coordinate point (1002,1002) with a face angle of 309 °. The eighth data in the table shows that the robot is moved with forward kinematic data of (2000,2000) at a facing angle of 30 °. The condition of the robot in real position is at the coordinate point (2004,2005) with a facing angle of 29 °.
The first data in the table shows that the robot is moved with forward kinematic data of (5000,5000) at a facing angle of 50 °. The condition of the robot in real position is at the coordinate point (5001,5002) with a facing angle of 50 °. From the table, there are nine data, it can be seen that the results of reading the robot coordinates using the forward kinematic equation have an average error of 1.67 mm at the x coordinate and 1.77 mm at the y coordinate and 0.67 ° on the robot heading reading. From these data we can say that reading the coordinates of the robot using the forward kinematic equation using 4 rotary encoders on all four wheels can be implemented very well.

B. Experiment and Validation of Inverse Kinematic Robot
In this second test, it is conducted to test how precise the robot's movement is to the inverse kinematic input value. The following are the results of the tests that have been carried out, can be seen in Figure 8 and Table 2. Based on the figures and tables, it can be seen that the results of the tests that have been carried out can be seen that using the inverse kinematic equation the robot can be moved in a certain direction on global coordinates. From several tests, the biggest error is 65 mm at the X coordinate and 55 mm at the Y coordinate, with an average error of 33 mm at the X coordinate and 28.4 mm at the Y coordinate.

1) Trajectory Circle
Based on the kinematic model of the ROD. The kinematic model for trajectory circles is described in the nonlinear function of the system as follows: The results of the trajectory circle testing that have been carried out are shown in Figure 9. From this figure, it can be seen that there are three experiments on the trajectory circle by changing the speed variable. From the figure, it can be seen that the PWM 80 speed is shown in blue, the PWM 160 speed is shown in red and the PWM 240 speed is shown in the green graph. From the three experiments, it can be seen that by using different speeds, the circle trajectory image shows no errors. The PWM test graph for the trajectory circle is shown in Figure 10. From this figure, it can be seen that there are 3 PWM test data for the trajectory circle, each of which is 80, 160 and 240. From the graph, it can be seen that the four motors are given the same PWM value to be able to form the trajectory graph circle. The face-to-face test graph for the trajectory circle is shown in Figure 10. From this figure, it can be seen that there are 3 face-to-speed test data, each of which has a value of 80, 160 and 240. From the graph, it can be seen that the greater the speed, the greater the error in the direction of the robot.

2) Trajectory Lemniscate
Based on the kinematic model of the ROD. The kinematic model for trajectory circles is described in the nonlinear function of the system as follows: The results of the Lemniscate trajectory test that have been carried out are shown in Figure 12. From this figure, it can be seen that there are three experiments on the Lemniscate trajectory by changing the speed variable. From the figure, it can be seen that the PWM 80 speed is shown in blue, the PWM 160 speed is shown in red and the PWM 240 speed is shown in the green graph. From the three experiments, it can be seen that using different speeds, the Lemniscate trajectory image shows no errors. The PWM test graph for the Lemniscate trajectory is shown in Figure 13. From this figure, it can be seen that there are 3 PWM test data for the Lemniscate trajectory, each of which is 80, 160 and 240. From this graph, it can be seen that the four motors are given the same PWM value to be able to form the trajectory graph Lemniscate. The face-to-face test graph for Lemniscate trajectory is shown in Figure 14. From this figure, it can be seen that there are 3 test data facing the speed, each of which has a value of 80, 160 and 240. From this graph, it can be seen that the greater the speed, the greater the error in the direction of the robot. In this study, the implementation of kinematic modeling and odometry in the trajectory planning of the omnidirectional robot is proposed to control the movement of the omniwheel robot to follow the given path to reduce the robot's movement errors. From the results of the research that has been done, it can be seen that the use of odometric sensors produces better movement results when compared to using only kinematic control. In addition, using the robot odometry sensor can detect the value of the robot coordinates, robot headings, velocity and other related parameters. The drawbacks obtained in this study are the absence of a control such as PID or Fuzzy which is used to control some of these parameters, resulting in a change in the robot heading from the initial value of the robot movement. For further research, a control such as fuzzy or PID will be added with the addition of an IMU sensor to increase control of the movement of the robot in order to control the motor speed value and the heading of the robot.