Institute of Information and Communication Technology, Bulgarian Academy of Sciences, 1000 Sofia, Bulgaria
*
Author to whom correspondence should be addressed.
†
Presented at the 14th International Scientific Conference TechSys 2025—Engineering, Technology and Systems, Plovdiv, Bulgaria, 15–17 May 2025.
Eng. Proc. 2025, 100(1), 16; https://doi.org/10.3390/engproc2025100016
Published: 4 July 2025
(This article belongs to the Proceedings of The 14th International Scientific Conference TechSys 2025—Engineering, Technologies and Systems)
Abstract
The developed omnidirectional mobile manipulator is an educational omnidirectional mobile manipulator that utilizes the Raspberry Pi Pico W and is programmed in Python. It is designed to enhance STEM education by providing an interactive environment for studying robotics, sensor integration, and programming techniques. The robot is built on an off-the-shelf chassis equipped with Mecanum wheels and a robotic arm actuated by servo motors. As part of this project, the control electronics were designed and implemented to enable seamless operation. While the platform allows students to program the robot as part of the STEM curriculum, our base software solution, developed in Python, provides control of both the mobile base and the robotic arm via a web interface accessible through the robot’s Wi-Fi hotspot.
Keywords:
1. Introduction
The educational omnidirectional mobile manipulator (Figure 1) functions as a mobile robotic platform designed for educational applications in science, technology, engineering, and mathematics (STEM). This study presents a complete redesign of the robotic system’s electronics coupled with new, enhanced software solutions tailored for a designated programming platform [1]. The proposed alterations facilitate a diverse array of instructional methodologies targeting electronics, programming, and broader STEM concepts [2,3,4].

Figure 1. Educational omnidirectional manipulator.
A fundamental aspect of STEM education is the practical demonstration of hardware integration, particularly through the use of educational mobile robotics and the associated robot control software [5]. This article examines the kinematic capabilities of the educational mobile manipulator, including robotic locomotion, arm articulation, object manipulation (gripping), transportation, and precise object placement within designated target areas. Furthermore, it details the software interfaces that manage the execution of the robot’s operational commands, along with the programmed sequences that synchronize the movements of the mobile unit and the functionality of the robotic arm.
2. Hardware
The robotic system, referred to as the educational omnidirectional mobile manipulator (Figure 2), employs the Raspberry Pi Pico W (Pololu Robotics and Electronics, Vegas, NV, USA) as its central processing unit [6,7]. This microcontroller facilitates communication with various peripheral components, thereby orchestrating the control of motors and sensors within the system. The architecture comprises several integral components, elaborated upon below:

Figure 2. Hardware architecture.
-
Raspberry Pi Pico W: The core microcontroller responsible for executing the control algorithms and managing data flow between the system components. It incorporates wireless networking capabilities, enabling remote control and monitoring.
-
Motor Drivers: These components interface between the microcontroller and the motors, allowing the Raspberry Pi Pico W to control motor speed and direction via pulse width modulation (PWM) signals.
-
DC/Servo Motors: Actuators that provide locomotion to the omnidirectional mobile manipulator. The specific type of motors employed is contingent on the required operational functions, such as movement and steering.
-
Sensors: Various sensors are integrated into the robot to enhance its environmental awareness and capability. These may include the following:
- ○
-
Ultrasonic Sensors: Utilized for distance measurement and obstacle avoidance.
- ○
-
Infrared Sensors: Employed for line following or proximity detection.
- ○
-
Camera Module (if applicable): Provides visual input for advanced capabilities such as image processing or object recognition.
-
Power Supply: A dedicated power source that delivers the necessary voltage and current to the Raspberry Pi Pico W and the motor drivers, ensuring consistent operation throughout the system’s runtime.
-
Communication Interfaces: These may include I2C, SPI, or UART communication protocols that facilitate data exchange between the Pico W and peripheral components, ensuring seamless coordination of the system’s functions.
In summary, the robot is a modular and versatile robotic platform that integrates various electronic components, allowing for diverse applications in robotics, automation, and educational environments.
Educational manipulator hardware architecture combines energy-efficient and functional modules that enable high maneuverability, autonomy, and interactivity [8,9,10]. The integration of Raspberry Pi Pico W, PCA9685, and Pico-Motor-Driver provide flexible control, and the ultrasonic sensor makes the robot more intelligent and adaptable in different environments. To provide stable and continuous power sRaspberry Pi Pico W, PCA9685upply, the mobile manipulator uses two Li-ion batteries (2600 mAh) to ensure autonomous operation. A DC-DC converter provides stable power supplied to some of the modules. Table 1 shows the hardware components used on the educational omnidirectional mobile manipulator.
Table 1. Educational omnidirectional mobile manipulator hardware components.

The I2C bus configurations of the Pico W is shown in Table 2.
Table 2. The Pico W I2C bus configurations.

Role of Pins in Communication and Power Supply:
-
SDA (Serial Data Line—GPIO 20 pin) and SCL (Serial Clock Line—GPIO 21 pin):
The SDA and SCL pins facilitate I2C (inter-integrated circuit) communication between the Raspberry Pi Pico W and the motor driver. The SDA line is responsible for transmitting data, while the SCL line provides the necessary timing for synchronizing data transfers. This synchronous communication protocol allows for efficient data exchange and control of the motor functions. Proper connectivity of the SDA and SCL lines is critical; misconfiguration will inhibit effective communication, resulting in the motor driver failing to respond to commands issued by the Raspberry Pi Pico W, thereby impairing system functionality.
-
GND (Ground) and VCC (Voltage Common Collector):
The GND and VCC pins establish the required electrical connection between the Raspberry Pi Pico W and the motor driver. The GND pin serves as the reference point for the voltage levels within the system, ensuring a common ground for accurate signal transmission. The VCC pin provides the necessary voltage supply to the motor driver, enabling its operation. These connections are crucial for ensuring that both devices operate within their specified voltage ranges and that the signals are interpreted correctly. Inadequate or improper connections may lead to insufficient power supply or ground reference issues, potentially resulting in system malfunction or device damage.
3. Software Architecture of Educational Omnidirectional Mobile Manipulator
The educational omnidirectional mobile manipulator software architecture consists of several integral modules, all implemented in Python 3, which facilitate essential functionalities including inter-module communication, motor control, robotic arm manipulation, and user interaction through a web interface [8,9,11]. Each of these modules interacts cohesively to enable the seamless operation of the robotic system. The communication module ensures efficient data exchange between components, while the motor control module orchestrates the precise movements of the robotic platform. The robotic arm control module is responsible for the manipulation and positioning tasks, and the web interface serves as an accessible platform for user engagement and system monitoring. Together, these modules form a robust framework for the deployment and operation of the educational mobile manipulator platform. The main software modules developed for the educational manipulator are shown in Table 3.
Table 3. Basic Python programming modules.

Module Structure and Communication Overview:
-
Motor Control:The robot_motors.py file utilizes the PCA9685 to manage four DC motors.
- ○
-
The motors are controlled via the I2C interface, specifically using GPIO20 (SDA) and GPIO21 (SCL).
- ○
-
This module includes a motor driver class featuring methods to start, stop, and adjust the speed of the motors.
-
Robotic Arm Control:The robot_arm.py file is responsible for controlling three MG90S servomotors through the PCA9685.
- ○
-
Control is executed via I2C communication.
- ○
-
The module supports smooth movement of the servomotors through the smooth_move_servo() method.
- ○
-
It also includes a function to reset the arm (reset_servos()).
-
Wi-Fi Communication and Web Interface:The robot_main.py file creates a Wi-Fi access point and manages requests from index.html.
- ○
-
Upon startup, the mobile manipulator creates an SSID, i.e., “robot”, allowing users to connect.
- ○
-
When users interact with the web interface by pressing a button, an HTTP request is sent to the robot.
- ○
-
Movement and robotic arm control can be performed through sliders and buttons in the web interface.
The software workflow consists of the following stages:
-
Power On and Initialization: The main.py script initializes robot.
-
Wi-Fi Network Setup: The robot_main.py script creates the Wi-Fi access point (SSID: “robot”).
-
Web Control Interface: The index.html file provides a graphical control panel for user interaction.
-
Command Processing: The educational omnidirectional mobile manipulator processes requests from the web interface through robot_main.py.
-
Motion and Manipulation: The robot.py script invokes the motion and control methods for the robotic arm.
-
Connection Termination: The Wi-Fi connection can be terminated when the user logs off.
The Python modules (files) associated with the omnidirectional mobile manipulator workflow are shown in Table 4.
Table 4. Python modules related to the workflow.

The presented architecture facilitates a dynamic and efficient management framework for the educational omnidirectional mobile manipulator, enabling the augmentation of its functionality through the integration of novel modules and enhancements.
Figure 3 illustrates a block diagram representing the primary components of the program. The educational manipulator management program operates on a fundamental iterative loop, which methodically processes incoming requests from clients interfacing through the robot’s Wi-Fi access point. Each request may encapsulate instructions for platform control, motor operation, or manipulation of the robotic arm, thereby enabling versatile interaction with the robotic system. This design paradigm ensures the seamless execution of commands and adaptive response to user inputs, thereby enhancing the overall operational efficacy of the educational manipulator.

Figure 3. Block diagram of the program.
The primary software snippets illustrating the educational omnidirectional mobile manipulator workflow are as follows:
Power-Up and Initialization.
File: main.py.
Upon startup, the robot loads the essential modules and initializes its control systems.
import sys.
sys.path.append(‘/Robot’).
from robot_main import * #—the main control module.
We create a Wi-Fi network. File: robot_main.py. Upon startup, the omnidirectional mobile manipulator creates a Wi-Fi access point with the SSID “robot”, allowing users to connect seamlessly (Figure 4). Robot control—web interface. File: index.html. HTML interface with motion buttons (Figure 5). HTTP request processing and command execution. File: robot_main.py. When a button is pressed, the robot receives an HTTP request and executes the corresponding movement (Figure 6).

Figure 4. Wi-Fi.

Figure 5. Web interface.

Figure 6. HTTP request processing.
Motion Control. File: robot.py. Motion functions by controlling the four DC motors (Figure 7). Control of the robotic arm. File: robot_arm.py. Control of the three servomotors via PCA9685. (Figure 8) Handling hand control requests from the web interface. File: robot_main.py. When the values of the web interface sliders are changed, a request is sent to the robot (Figure 9).

Figure 7. Motion control.

Figure 8. Control of the robotic arm.

Figure 9. Handling hand control.
Session completion and shutdown.
File: robot.py.
A method to shut down all engines when a job is completed.
def stop_all_motors(self):
self.m.StopAllMotors().
4. Experimental Studies
To assess the functionality of the robot (see Figure 1), a series of experiments were conducted to evaluate its control precision, movement capabilities, and object manipulation proficiency. The robot was connected via the Wi-Fi access point (AP) provided by software running on the Raspberry Pi Pico W.
The robot’s configuration for these experiments includes the following:
-
A chassis equipped with four Mecanum wheels for enhanced multi-directional mobility.
-
A manipulator featuring three axes of motion and a gripper.
-
A Raspberry Pi Pico W serving as the central controller.
-
A battery power supply alongside drivers for DC and servo motors.
-
A web interface for controlling the robot (illustrated in Figure 2).
The experimental setup involved a smooth, flat, and rigid surface that provided stability for the robot’s movements. This environment included a platform for placing the objects the robot was to grasp, as well as a marked circle indicating the designated target location for placement.
Two experiments were conducted in this study:
-
The first experiment assessed the robot’s motion control to verify the system’s operational accuracy.
-
The second experiment focused on the robot’s capacity to grasp, transport, and accurately place objects within the designated target area.
Experiment 1.
Control and Movement of the Robot.
Figure 10 illustrates the various movements of the manipulator, which can be managed through the robot’s web interface. This interface features sliders dedicated to controlling the three primary axes of the manipulator:

Figure 10. Control of gripper positions.
-
Base: Rotates the manipulator’s base to the left or right.
-
Arm: Adjusts the arm’s position vertically, allowing for upward or downward movement.
-
Gripper: Regulates the opening and closing mechanism of the gripper.
Upon initialization, the default position for all three axes is set to 90 degrees. Table 5 outlines the sequence of experiments conducted to control the gripper, while Figure 11 displays the corresponding positions of the gripper throughout these experiments.

Figure 11. Pinch position con.
Table 5. Control of gripper positions.

To manage the platform’s movements, the experiment utilized a system of random button selection. Examples of these commands, accompanied by actual button images, can be seen in Figure 11.
After each movement, the robot can be redirected without the need to press the “STOP” button.
Experiment 2.
Capture, transport, and placement of an object at a target location.
This experiment is designed to assess the mobile robot’s capability to grasp, transport, and accurately place small objects at designated target locations. Figure 12 provides visual documentation of the experiment. The robot is controlled via a web interface, allowing for remote operation of both its movement and the manipulator.

Figure 12. Capture, transport, and placement of an object at a target location.
Table 6 shows the experimental stages.
Table 6. The experimental stages for object manipulation.

5. Conclusions
The experiments conducted validated the core functionality of the robot and its proficiency in executing the designated tasks. Testing revealed several key advantages, as well as some limitations that could be addressed in future iterations. Table 7 and Table 8 provide a summary of the positive outcomes and identified shortcomings of the robot.
Table 7. Positive results of the experiments.

Table 8. Identified deficiencies from the experiments.

Author Contributions
N.C. and S.C. developed the hardware of the educational mobile robot, including the casting of hardware elements; S.C. was responsible for developing the interface; R.V. designed the interface and conducted related experiments; R.V. and M.S. drafted the manuscript; M.S. performed resentencing and editing. All authors have read and agreed to the published version of the manuscript.
Funding
This work was supported and funded by Erazmus+ Program, Project: “Robo STEAM Academy” (2024-1-BGO I-KA220-VET-000256580).
Institutional Review Board Statement
Not applicable.
Informed Consent Statement
Not applicable.
Data Availability Statement
The data presented in this study are available upon request from the corresponding author.
Conflicts of Interest
The authors declare no conflict of interest.
Abbreviations
The following abbreviations are used in this manuscript:
STEM | Science, technology, engineering, and mathematics |
PWM | Pulse width modulation |
SDA | Serial data line |
SCL | Serial clock line |
GND | Ground |
VCC | Voltage common collector |
I2C | Two-wire serial communication protocol using a SDA and a SCL |
SPI | Serial peripheral interface |
UART | Universal asynchronous receiver–transmitter |
HTML | Hypertext markup language |
HTTP | Hypertext transfer protocol |
AP | Access point |
DC | Direct current |
Wi-Fi | Wireless fidelity |
References
- Siciliano, B.; Khatib, O. Handbook of Robotics; Springer: Berlin/Heidelberg, Germany, 2008; Available online: https://link.springer.com/book/10.1007/978-3-540-30301-5 (accessed on 5 February 2023).
- Mason, M.T.; Pai, D.K.; Rus, D.; Taylor, L.R.; Erdmann, M.A. A Mobile Manipulator. In Proceedings of the 1999 IEEE International Conference on Robotics and Automation, Detroit, MI, USA, 10–15 May 1999. [Google Scholar]
- Islamgozhayev, T.U.; Mazhitov, S.S.; Zholmyrzayev, A.K.; Toishybek, E.T. IICT-bot: Educational robotic platform using omni-directional wheels with open source code and architecture. In Proceedings of the 2015 International Siberian Conference on Control and Communications (SIBCON), Omsk, Russia, 21–23 May 2015; pp. 1–3. [Google Scholar]
- Mamani, N.M.; García-Peñalvo, F.J.; Conde, M.Á.; Gonçalves, J. A systematic mapping about simulators and remote laboratories using hardware in the loop and robotic: Developing STEM/STEAM skills in pre-university education. In Proceedings of the 2021 International Symposium on Computers in Education (SIIE), Malaga, Spain, 23–24 September 2021; pp. 1–6. [Google Scholar]
- Mita, Y.; Kawahara, Y. 15-year educational experience on autonomous electronic information devices by flipped classroom and try-by-yourself methods. IET Circuits Devices Syst. 2017, 11, 321–329. [Google Scholar] [CrossRef]
- Loker, D. Embedded Systems using the Raspberry Pi Pico. In Proceedings of the 2022 ASEE Annual Conference & Exposition, Minneapolis, MN, USA, 26–29 June 2022. [Google Scholar]
- Loker, D.R. Raspberry Pi Pico as an IoT Device. In Proceedings of the 2023 ASEE Annual Conference & Exposition, Baltimore, MD, USA, 25–28 June 2023. [Google Scholar]
- Gfrerrer, A. Geometry and Kinematics of the Mecanum Wheel. Comput. Aided Geom. Des. 2008, 25, 784–791. [Google Scholar] [CrossRef]
- Wikipedia Contributors. (n.d.). Differential Wheeled Robot. Wikipedia, The Free Encyclopedia. Available online: https://en.wikipedia.org/wiki/Differential_wheeled_robot (accessed on 26 February 2025).
- Yovkov, S.; Chivarov, N.; Chivarov, S.; Staikova, M. Educational Mobile Robot Equipped with Intelligent Camera Huskylens. In Proceedings of the 9th International Conference on Control, Decision and Information Technologies (CoDIT), Rome, Italy, 3–6 July 2023. [Google Scholar] [CrossRef]
- Zhang, Y.; Ge, S. Analysis of the motion characteristics of Marine Mecanum transport platform. MATEC Web Conf. 2018, 232, 04006. [Google Scholar] [CrossRef]