BEST Journal of Applied Electrical & Science Technology Ae University of PGRI Adi Buana Surabaya p-ISSN 2715-2871 e-ISSN 2714-5247 Design of Omniwheel Kinematics Learning Platform Using ESP32 and Microsoft Visual Studio Sayyidul Aulia Alamsyah Electrical Engineering Departement State University of Surabaya Surabaya. Indonesia sayyidulalamsyah@unesa. Parama Diptya Widayaka Electrical Engineering Departement State University of Surabaya Surabaya. Indonesia paramawidayaka@unesa. Pradini Puspitaningayu Electrical Engineering Departement State University of Surabaya Surabaya. Indonesia pradinip@unesa. Taj Hakam Ikhsan Electrical Engineering Departement State University of Surabaya Surabaya. Indonesia 21033@mhs. Rifando Arya Pradana Electrical Engineering Departement State University of Surabaya Surabaya. Indonesia 23234@mhs. Ryan Rizky Herdiansyah Palma Electrical Engineering Departement State University of Surabaya Surabaya. Indonesia 23262@mhs. Ibrohim Zuhayr Achmad Electrical Engineering Departement State University of Surabaya Surabaya. Indonesia 20030@mhs. AbstractAiWheeled robots have evolved significantly, starting from simple designs that utilized a single wheel for maneuvering to the present day, where there are numerous types capable of moving in all directions. The increasing complexity of wheeled robots today has created a learning gap for students who are just entering the world of robotics and the advanced robots that currently exist. Based on this problem, a mobile robot learning platform is needed to bridge their knowledge. The design of this platform is expected to help guide studentsAo learning of omniwheel robot kinematics in terms of robot model preparation, robot firmware design, communication design between the PC and the robot, and the implementation of kinematic formulas as robot commands. This platform is also designed to be universal, so it can be implemented for ready-made robots or robots built with any type of microcontroller. Comprehensive testing was performed for both movement modes in the application: forward kinematics and inverse The forward kinematics test was carried out by assigning speed values to each motor individually. The inverse kinematics test was cariied out by assigning target position in cartesian plane. This platform is expected to serve as a valuable tool in the study of omniwheel robot kinematics. KeywordsAiOmniwheel. Robots. Kinematics. PID. INTRODUCTION In this modern era, robots have been widely used in our daily lives. We can easily encounter robots in industry, education, entertainment, and households. These robots have become tools that make work much easier, especially in the automation of various jobs . For example, floorcleaning robot are currently widely used for cleaning household floors . Mobile robot can be classified as legged robot and wheeled robot . Mobile robot is wheeled robot that using wheels to move and navigate. This type of mobile robot employs motors to drive the wheels, enabling it to move in all directions . Wheeled robots are widely used as robot moving mechanisms because their movement is relatively faster than legged robots. There are various type of wheeled robots that have been studied, starting from those that use two wheels . to four wheels. The types of movement are also varied, some use Ackerman arcs like cars, some use omniwheels or mecanum wheels to move in all directions . The floor-cleaning robot mentioned earlier use movements that utilize omniwheels or mecanum wheels which provide the advantage of being able to move in all directions. Research on wheeled robots has been extensively conducted and has become highly complex. Wheeled robots have evolved significantly, starting from simple designs that utilized a single wheel for maneuvering to the present day, where there are numerous types capable of moving in all directions . The increasing complexity of wheeled robots today has created a learning gap for students who are just entering the world of robotics and the advanced robots that currently exist. This issue requires a platform for learning about mobile robots, not only through simulations but also by observing how robots actually move and operate in real-world scenarios . Based on this problem, a mobile robot learning platform is needed to bridge their knowledge. In fact, there are already many application platforms that provide an understanding of kinematics. For Example, researcher in . using virtual reality, remote control and on-site laboratory for teaching 6-DOF robotics kinematics. The researcher in . intoduces BulletArm as a novel open-source framework for robotic manipulation learning for robot arms. Many articles discuss the CoppeliaSimbased robotics learning platforms. CoppeliaSim is one of the well-known simulation-based robotics learning In . , the researcher discuss about the application of CoppeliaSim in robot course teaching and the advantage using it such as reduces costs and security In . , the author introduce the new open-source 105 iC BEST. Vol. No. 02, 2025 BEST Journal of Applied Electrical & Science Technology Ae University of PGRI Adi Buana Surabaya p-ISSN 2715-2871 e-ISSN 2714-5247 simulator based on CoppeliaSim and ROS for the Franka Emika Robot (FER). Besides Coppelia, the Gazebo and ROS2 pair is currently the most widely used robotic Article in . discuss about design and implementation of 6DOF robot simulation system in ROSGazebo, including robot modelling, trajectory planning, and control design. Author in . presented a toolkit for MATLAB/Simulink using ROS and Gazebo simulator. Almost all references regarding robotics learning platforms are based on simulations, but in reality, simulation alone is not enough. Students are also required to understand the components that enable a robot to move. This is related to how robot kinematics are formulated, which involves variables such as the robot's dimensions, the selected motor speed, the robot's position, and so on. The ideal scenario would be for each student to be assisted in assembling a robot. However, this is hindered by the high cost of producing even a single type of mobile robot, which is generally expensive . In addition to being constrained by costs, making an ideal robot for learning about kinematics takes a long time. This will burden students to learn about robot kinematics. In addition, none of these references have yet created a dedicated platform for learning robot kinematics, especially for omniwheel mobile robot. The objective of this research is to develop a learning platform for kinematics, limited to the three-wheeled omniwheel robot type. The design of this platform is expected to help guide studentsAo learning of omniwheel robot kinematics in terms of robot model preparation, robot firmware design, communication design between the PC and the robot, and the implementation of kinematic formulas as robot commands. This platform is also designed to be universal, so it can be implemented for ready-made robots or robots built with any type of II. Fig. Proposed Omniwheel Kinematics Learning Platform Stages METHOD The proposed omniwheel kinematics learning platform design consists of several stages: robot model design, robot firmware design, robot-PC communication design, and finally, kinematics implementation as robot All stages of this omniwheel robot kinematics learning are created as GUI application using Microsoft Visual Studio 2022 and run according to the flowchart in the figure 1. Omniwheel Robot Model Design Omniwheels, or omnidirectional wheels, refer to wheels utilized in robotic systems that allow movement in all directions. A robot equipped with such wheels can move along three motion dimensions: x, y, and O. The x and y dimensions represent translational movement on a planar surface, while O denotes the robot's rotational orientation . Kinematic modeling is essential to coordinate the simultaneous movement of multiple omniwheels, enabling motion along the x, y, and O axes. The position and physical dimensions of the robot significantly influence the kinematic model of an omniwheel robot. In this study, the model used is a three- Fig. Omniwheel Model wheeled omniwheel robot, as illustrated in Figure 1, where each wheel arm is separated by an angle of 120A. The kinematics of an omniwheel robot can be derived by breaking down the direction of movement generated by each motor. Once the influence of each motor on the robotAos body motion is determined, the overall motion of the robot along the x-axis . , y-axis . A), and its angular movement (O) can be formulated as follows: 106 iC BEST. Vol. No. 02, 2025 BEST Journal of Applied Electrical & Science Technology Ae University of PGRI Adi Buana Surabaya p-ISSN 2715-2871 e-ISSN 2714-5247 ycycu = Oeyc1ycu Oe yc2ycu yc3ycu = Oe yc1 yc2 Oe yc3 A A A . yc1 Oo3 yc2 Oo3 A A A . yui = yui1 yui2 yui3 = Oeyc1 Oo yco Oe yc2 Oo yco Oe yc3 Oo yco A A A . ycyc = yc1yc Oe yc2yc = Alternatively, this can be represented in matrix form: Oe ycycu . cyc ] = Oo3 yui [ yco Oe Oe Oo3 yco yc1 yc Oo [ . 0 yc3 yc. Equations . , . , and . are referred to as the forward kinematics equations. These equations provide the body velocity of the robot in the x, y, and O dimensions as the output, with the input being the individual motor Another form of kinematic modeling is the inverse kinematics. In this context, the inverse kinematics equations are defined as equations that yield the required individual motor velocities based on the desired robot body movement along the x, y, and O axes. The inverse kinematics can be derived through matrix operations on the forward kinematics equations. denoting the forward kinematics in matrix form as follows: Oe ycycu . cyc ] = Oo3 yui [ yco Oe Oe Oo3 yco yc1 Oo . c2 ] 0 yc3 yc. yc3y1 = yc3y3 Oo yc3y1 Multiplying both sides by the inverse of matrix B. , we obtain: yc3y1 = ycOeya 3y3 Oo yc3y1 Fig. GUI Initizalization View These parameters are subsequently integrated into the application to assist students in deriving the omniwheel kinematic equations. Figure 3 shows the Initialization interface of the application, which contains settings related to the physical configuration of the omniwheel robot. Once the values are provided, the user can click AuCalculate the KinematicsAy to generate the matrices for both forward kinematics and inverse kinematics. Omniwheel Robot Firmware Design The omniwheel robot in this study was build using ESP32 as the main microcontroller. L293N motor driver, and motor equipped with encoders. Based on the kinematic modelling, the motion of the omniwheel robot is highly dependent on the the speed of each wheels. This makes the design of reading the motor speed and controlling the motor speed the most prioritzed. Figure 4 show the ilustration of the robot motion that relies on three wheels controlled by microcontroller through the L293N motor The motor placement is adjusted to the omniwheel model in figure 2. By inverting matrix ycycyyc using the known arm length l = 10. 5158 cm, the inverse kinematics equations are derived as follows: yc1 Oe0. yc [ 2 ] = [Oe0. yc3 0317 ycycu 0. Oo . cyc ] yui These forward and inverse kinematics equations are subsequently implemented in the graphical user interface (GUI) to issue motion commands to the robot body. The kinematic breakdown process is intended to provide students with a comprehensive understanding of the key parameters that influence robot kinematics. In the case of a three-wheeled omniwheel robot, critical parameters include the angle between the wheel arms and the length of the wheel arms, both of which exert a significant impact on the robotAos kinematic behavior. Fig. Motor Controlling Block Diagram 107 iC BEST. Vol. No. 02, 2025 BEST Journal of Applied Electrical & Science Technology Ae University of PGRI Adi Buana Surabaya p-ISSN 2715-2871 e-ISSN 2714-5247 Accurate measurement of motor speed is closely linked to the encoder sensors used. The encoder readings must be calibrated to the wheel size in order to calculate the correct linear speed. By utilizing interrupts on the ESP32, changes in encoder signals can be handled as a priority process in the program algorithm. To determine the linear velocity, the angular velocity of the motor must first be computed. The angular velocity is obtained using the following ycIycEycA = ycu1yc 1 y y 60yc = y 60 A A A . 1yc ycy ycy yui( ycycaycc ycIycEycA y 2yuU A A A . yc ycO. co/y. = yui y yc A A A . Equation . : Calculates revolutions per minute (RPM) based on the number of pulses detected by the encoder per second . CA. and the number of pulses per revolution . Equation . : Converts RPM to angular velocity in radians per second . Equation . : Converts angular velocity to linear speed, where r represents the wheel radius in In applying Equation . to the microcontroller, a modification was introduced to improve responsiveness. The traditional method of sampling pulses every 1 second is considered too slow, especially given the robotAos relatively small diameter . 8 c. Such a delay would reduce the robotAos responsiveness to velocity changes. address this, encoder pulses are sampled every 50 milliseconds, resulting in a modified equation: ycIycEycA = ycu50ycoyc 1 ycu50ycoyc y y 60yc = y 1200 A A A . 50ycoyc ycy ycy Equation . : Uses ycu50ycoyc , the number of pulses recorded within 50ms, and adjusts the calculation accordingly so the RPM output remains normalized to one An additional adjustment is made to the units of linear velocity, which are converted to centimeters per second . to simplify command inputs. Accordingly, the wheel radius r in Equation . is also expressed in Motor speeds are controlled via Pulse Width Modulation (PWM) signals generated by the ESP32. PID control system is implemented to adjust the PWM output and achieve the desired linear speed setpoints for each motor. The digital PID control system used is defined yc = yaycy yce yaycn . Oc yce yaycc iyce The setpoint is the target speed, the feedback is the encoder-measured speed, and the PID output is the PWM signal sent to the motor. Fig. Robot-PC Communication Robot-PC Communication Design Omniwheel robots utilize the ESP-NOW wireless communication protocol system that is already integrated with ESP32. ESP-NOW is a communication protocol between Espressif products that utilizes a wireless-fidelity This protocol requires the MAC-Address of each device to be able to communicate with each other. This communication is used to send linear speed data for each motor, and also receive commands for various omniwheel operating modes. Figure 5 illustrates the communication between Robot and PC. In this article, the term transceiver refers to the device connected to the computer. Its main function is to relay data between the omniwheel robot and the computer. The transceiver was built using an ESP32 microcontroller, which allows it to communicate wirelessly using the same ESP-NOW protocol as the robot. Data received from the robot is forwarded to the computer through serial communication, which is natively supported by the ESP32 and facilitated via a USB to Serial CH304 interface. By default, the omniwheel robot is configured to transmit motor speed data every 200 ms. The target setpoints for each motor, however, are determined by data sent from the computer via the transceiver. This data is formatted as a string containing 10 comma-separated values, including specific command codes used to activate various robot operation modes. The robot supports two primary modes: . Configuration Mode (Setting Mod. Operation Mode (Running Mod. Kinematics Implementation as Robot Commands The formulation of the kinematic equations in the initial stage is subsequently implemented as the foundation for issuing robot commands from the PC. Two modes of command are provided in accordance with the kinematic models: forward kinematics, which is executed through the Base Movement menu, and inverse kinematics, which is executed through the Point Movement menu. 108 iC BEST. Vol. No. 02, 2025 BEST Journal of Applied Electrical & Science Technology Ae University of PGRI Adi Buana Surabaya p-ISSN 2715-2871 e-ISSN 2714-5247 Fig. Point Movement Time Based Fig. Base Movement View Fig. Point Movement Coordinate Base Movement The movement of the omniwheel robot is governed by the velocity of each individual motor. The Base Movement page provides a simplified interface for sending manual velocity commands to each motor, effectively implementing the forward kinematics model. Within this page, users can specify the desired speed, rotation direction, and duration for each motor. Figure 6 shows the Base Movement menu. Point Movement This interface implements the inverse kinematics commands for the omniwheel robot, where users input the desired body velocity in Cartesian coordinates. Using the inverse kinematics formulas based on the parameter values provided during the Initialization, the application converts the robotAos body velocity into individual motor velocities. These motor velocities are then transmitted to the robot via the transceiver. The Point Movement module consists of two sub-modes: Time-Based and Coordinate-Based. Figure 7 illustrates the Time-Based mode, which allows users to input body velocity components . , y, and O) along with the desired movement duration. Figure 8 shows the Coordinate-Based mode, where users can input target coordinates in centimeters, and the robot will attempt to move toward that point. Fig. PID Setting View i. RESULT AND DISCUSSION The results presented in this section are the outcomes of constructing the omniwheel robot based on the proposed stages. PID testing was conducted initially to obtain optimal speed control for each motor. Comprehensive testing was performed for both movement modes in the application: forward kinematics and inverse The forward kinematics test was carried out by assigning speed values to each motor individually. The inverse kinematics was evaluated by assigning target position commands in Cartesian space, after which the robotAos movements were recorded and subsequently analyzed through background subtraction applied to the recorded video. Each motor was operated with a specific speed for a limited time duration. These tests generated speed response graphs for each motor over time. The results helped validate whether the motors could maintain the given speed consistently under open-loop conditions. Inverse kinematics testing involved commanding the robot's body to move in various directions in the Cartesian plane, represented by specific values for x and y velocity 109iC BEST. Vol. No. 02, 2025 BEST Journal of Applied Electrical & Science Technology Ae University of PGRI Adi Buana Surabaya p-ISSN 2715-2871 e-ISSN 2714-5247 Fig. Motor Response Set Point 20cm/s The system then converted these body velocity inputs into individual motor speed set points using the inverse kinematics equations. Initial PID tests were performed with the motor operating under minimal loadAionly the wheel was Figure 9 shows the display for PID testing in the After multiple iterations, the optimal PID parameters were determined to be: Kp = 2 . Ki = 0. = 0. These values were applied uniformly across all three motors. Figure 10 illustrates the recorded motor responses to a 20 cm/s set point. Table 1 summarizes the performance metrics of each motor including Overshoot. Rise Time. Settling Time, and Steady-State Error. The overshoot values among the three motors showed slight variation but were relatively close. The rise time for Motor 1 was approximately 200 ms slower than Motors 2 and 3, primarily due to the 200 ms data transmission interval, not motor behavior itself. Therefore, the rise times are still considered equivalent. A similar pattern was observed for the settling times. The steady-state errors were also similaracross all three motors. From these observations, it can be concluded that all three motors behave consistently, allowing the same PID parameters to be effectively applied to each. Table 1. PID Response for Each Motors Overshoot Rise Time Settling Time Steady-State Error Motor1 <600ms 395 cm/s Motor2 <400ms 340 cm/s Motor3 <400ms 250 cm/s Fig. Forwad Kinematics Through All 3 Motors 110iC BEST. Vol. No. 02, 2025 BEST Journal of Applied Electrical & Science Technology Ae University of PGRI Adi Buana Surabaya p-ISSN 2715-2871 e-ISSN 2714-5247 The next stage of testing evaluated the entire system under real-world conditions. The robot was placed on the floor, introducing additional load from the robot body. Tests were conducted by assigning speed set points individually to each motor with predefined durations. Four different speeds were tested for each motor: 10 cm/s, 15 cm/s, 20 cm/s, and 25 cm/s. Figure 11 presents the speed responses of all three wheels for each set point. The results indicate that, even under load, the motors were able to maintain the target speeds accurately, validating the effectiveness of both the PID controller and the kinematic The final set of tests involved inverse kinematicsbased movement. The input to the application was the desired body velocity in the x and y directions. These inputs were then translated into a speed set point for each motor using the inverse kinematics formula. The outcome of these tests was recorded on video. The video footage was then processed using background subtraction Fig. Motor Velocity Response Based GUI 111 iC BEST. Vol. No. 02, 2025 BEST Journal of Applied Electrical & Science Technology Ae University of PGRI Adi Buana Surabaya p-ISSN 2715-2871 e-ISSN 2714-5247 techniques implemented in OpenCV and Python to extract the robotAos movement trajectory. Testing was conducted eight times based on table 2. Figure 12 shows the speed change of each motor for each movement command. Figure 13 displays the processed trajectory output using the background subtraction The robot's path is marked with red lines, starting from a small red circle and progressing toward a larger The frame numbers are annotated on the trajectory to indicate progress over time. The results demonstrate that the robot moved accurately in accordance with the commands outlined in Table 2, confirming the correctness of the inverse kinematics implementation. Compared to other robotics learning platforms, the proposed kinematics learning platform is more technical in nature. The platform provides a series of technical steps Fig. Response Motor Velocity Base on GUI Command 112 iC BEST. Vol. No. 02, 2025 BEST Journal of Applied Electrical & Science Technology Ae University of PGRI Adi Buana Surabaya p-ISSN 2715-2871 e-ISSN 2714-5247 REFERENCES Table 2. Inverse Kinematics Command CMD Graph Movement Figure 16. Figure 17. -20cm/s Figure 16. Figure 17. -20cm/s Figure 16. Figure 17. Figure 16. Figure 17. -20cm/s Figure 16. Figure 17. Figure 16. Figure 17. -20cm/s -20cm/s Figure 16. Figure 17. -20cm/s Figure 16. Figure 17. for learning robot kinematics in a universal manner, enabling students to independently apply them to self-built Unlike ready-made commercial robots that must be purchased, this platform allows students to design and develop their own robots from scratch. In addition, the platform includes software that facilitates communication between the PC and the robot. However, the proposed system is limited in that it can only be implemented on the Windows operating system and is restricted to threewheeled omniwheel robots. IV. CONCLUSION A learning platform for an omniwheel robot has been successfully developed using the ESP32 microcontroller and a custom application built with Microsoft Visual Studio 2022. Experimental results validate that the system functions effectively, establishing reliable communication between the GUI application and the omniwheel robot. Both forward kinematics and inverse kinematics were successfully implemented within the application and transmitted to the robot via the ESP-NOW wireless These results demonstrate the feasibility of the system for real-time robotic control and kinematic In contrast to other robotics learning platforms, the proposed kinematics platform adopts a more technical approach. Rather than relying on pre-assembled commercial robots, it enables students to design and construct their own robots from the ground up. This platform is expected to serve as a valuable tool in the study of omniwheel robot kinematics. Future development of the system may include the integration of path planning and local positioning systems, which would enable a more comprehensive and advanced robotics learning platform. ACKNOWLEDGMENT