OVERVIEW
Overview of robot
The word "robot" originates from the Czech term "robota," which means "forced labor" or "serf," as introduced in Karel Čapek’s 1920 play, "R.U.R." (Rossum's Universal Robots) In the play, robots are created as artificial humans and are subsequently exploited by their owners.
A robot, as defined by the Robot Institute of America in 1979, is a programmable and multifunctional manipulator engineered to move materials, parts, tools, or specialized devices using variable programmed motions to execute a diverse range of tasks.
Robotics manufacturers are continuously innovating in features, pricing, and form factors, leading to the widespread implementation of robotics solutions across various industries and applications The significant advancements in computing power are driving this trend forward.
Artificial Intelligence has significantly enhanced the functionality of robots, allowing them to fulfill crucial tasks across various applications Robots are categorized into two main types: mobile robots, which navigate their surroundings, and stationary robots, which remain fixed in place.
Figure 1.1: Robot arms that are being used in industries
Overview of mobile robot
In today's rapidly evolving industrial landscape, the rise of factories has created a significant demand for intelligent machines, particularly mobile robots, which are designed to perform various tasks, including transportation These mobile robots are equipped with advanced software and multiple sensors, enabling them to identify and execute specific tasks while navigating hazardous environments that may pose risks to humans.
Figure 1.2: Weston’s Disinfecting Mobile Robot used during COVID-19 pandemic [2]
Recently, due to the outspread of COVID-19, social distance has become the cause of rapid rising of mobile robot needs, from Autonomous
Mobile Robots (AMRs) are increasingly utilized across various sectors, including distribution centers, healthcare, cleaning and disinfection, security, and military applications The trend of integrating mobile robots into smart environments reflects the growing demand for convenience and efficiency in modern society As a result, numerous companies are actively enhancing and developing their own mobile robots to cater to specific operational needs.
Mobile robots can be classified by the environment they are used in:
- Polar robots – used on icing surface
- Aerial robots – used on the air
- Unmanned Ground Vehicles (UGVs) – used on normal ground
- Autonomous Underwater Vehicles (AUVs) – used underwater
Figure 1.3: Agema Unmanned Ground Vehicle, United Arab Emirates [3]
- Robot using tracks and treads
- Robot using legs (human-like or animal-like legs)
Figure 1.4: Boston Dynamics’ Atlas going viral thanks to its human-like motion [4]
Omnidirectional mobile robot overview
Mobile robots are predominantly designed with wheels to enhance mobility, as this configuration is more energy-efficient on hard, smooth surfaces compared to legged or tracked designs The most common wheeled mobile robot features two independent fixed driving wheels, offering two degrees of freedom: rotation around the wheel axle and its contact point with the ground This design allows for a compact form, such as in domestic cleaners, which only require two actuators and occupy less space for rotation However, a key limitation of this design is its inability to perform holonomic motions like sideways movements To address this challenge, omnidirectional wheels have been introduced.
Figure 1.5: Different types of omni wheel available on the market
Omnidirectional wheel is first patented in 1919 by J Grabowiecki as
The vehicle wheel, patented on June 3, 1919, has undergone significant advancements over the years Today, innovative designs like segmented omnidirectional wheels, double omnidirectional wheels, and Mecanum wheels enable movement in any direction, enhancing vehicle maneuverability.
Figure 1.6: J Grabowiecki’s first design of the omnidirectional wheel [7]
The Mecanum wheel, also known as the Swedish wheel or Ilon wheel, was invented by Bengt Erland Ilon in 1973 This innovative wheel features a series of rollers positioned at a 45-degree angle to its plane, enabling omnidirectional movement The most prevalent application of Mecanum wheels is in mobile robots, typically utilizing a four-wheel configuration for enhanced maneuverability.
Figure 1.7: An example of mecanum wheel design [8]
1.3.2 Recent research on omnidirectional mobile robot
Thanks to the ability to move in holonomic direction of omni wheel, the omnidirectional mobile robots have been widely used and developed according to the history records
In 1982, researchers from Stanford University and the Palo Alto VA Medical Center developed an innovative three-wheeled wheelchair designed specifically for paraplegic patients This wheelchair operates solely on the axial motion of its wheels, enabling users to navigate freely in any direction.
Figure 1.8: Stanford’s omnidirectional wheelchair concept in 1982 [9]
Goliath, an Italian company, has recently launched GoliathCNC, an innovative CNC machine that operates on a three-wheel omnidirectional mobile robot system This advanced machine offers exceptional mobility, enabling it to achieve precise finishes while efficiently covering large work areas Additionally, GoliathCNC is equipped with a unique integrated dust collector, enhancing its functionality and user experience.
Figure 1.9: GoliathCNC could be an evolution to CNC industry [10]
In the industry, many cooperations are using forklifts with four omni wheels within their factories to get full omnidirectional motion capabilities
Goal of the project
The project aims to design an omnidirectional mobile robot capable of supporting various electronic accessories By implementing PID control, the robot will navigate accurately in desired directions Additionally, users can control the mobile robot via a Bluetooth app compatible with smartphones.
LITERATURE REVIEW
Design selection
There are different types of design, however, the most common are 3-omni-wheel and 4-omni-wheel mobile robot
A 3-omni-wheel mobile robot features three wheels arranged in pairs at an angle of 120 degrees, which is essential for maintaining the robot's stability This configuration represents the minimum wheel count necessary to ensure balanced movement and functionality.
Figure 2.1: Basic motion comparison between two common types of OMR
The 4-omni-wheel design features two distinct configurations: the traditional design, where the robot is divided into two halves, each equipped with two wheels, and an alternative design that positions four wheels at the vertices of a cross figure, with two adjacent wheels oriented 90 degrees apart.
The comparison between two types:
Type 3 - wheel omni robot 4 - wheel omni robot
- 3 wheels always lie on the same plane of motion without any special mechanism.
- Easy to travel in the rough terrains.
- Lower price (less motors and wheels)
- Take advantage of 100% engine efficiency since there are always two wheels on the same plane.
- Lower efficiency because of only one or lower number of wheels that have the same direction of the robot motion.
- Harder to design the figure and structure so that the four wheels can be on the same plane.
- Greater amount of money to get wheels and motors.
Table 2.1: Comparison between 3-wheel and 4-wheel OMR design [11]
The project aims to achieve mobility without excessive load, leading the author to design a 3-omni-wheel mobile robot for enhanced movement and ease of navigation.
Kinematics model
Generalizing the model of the omnidirectional wheel, the kinematics can be shown as:
Figure 2.2: Force analysis on a general omnidirectional wheel (1)
Omnidirectional wheels feature rollers that are essential for enabling movement in all directions In these wheels, the rollers are positioned perpendicular to the motion vector, facilitating smooth and versatile navigation.
Figure 2.2 equals to 0, mostly 45 degrees if the wheel is mecanum, tilt angle is not considered
The wheel velocity can be computed as:
𝑣 𝑑𝑟𝑖𝑣𝑒 : the wheel velocity when it rotates
𝜔 : the angular velocity of the wheel
𝑟 : the radius of the wheel
However, the rollers are also pure rolling, the formula for the sliding velocity can be assumed independently taken as:
𝑣 𝑠𝑙𝑖𝑑𝑒 : the rotating velocity of the passive rollers
𝛽 : the rotational velocity of the passive rollers
𝜌 : the radius of the rollers
Figure 2.3: Force analysis on a general omnidirectional wheel (2)
(2.6) can be rewrite in matrix form as:
All the above functions in the wheel frame, now, we consider the alternation in the vehicle frame (or the base)
Assume the B frame and Ci frame are parts of a single body:
Figure 2.4: Force analysis on the vehicle (base) frame
From Figure 2.4 , the velocity of the wheel frame can be resolved in the vehicle frame as:
𝑦 𝐵 ̇ = 𝑥̇ 𝑐𝑖 𝑠𝑖𝑛(𝜃 𝑖 ) + 𝑦̇ 𝑐𝑖 𝑐𝑜𝑠(𝜃 𝑖 ) (2.9) The velocity matrix of the vehicle is:
The vehicle's instantaneous velocities, represented as u, v, and 𝝎 b, determine the tangential velocity at point Ci Assuming the robot moves counterclockwise, this motion creates a tangential velocity opposite to 𝒙̇ 𝑩 and aligned with 𝒚̇ 𝑩 Consequently, the analysis of forces can be formulated accordingly.
𝑣 + 𝜔 𝑏 𝑑 𝑥𝑖 = 𝑥̇ 𝑐𝑖 𝑠𝑖𝑛(𝜃 𝑖 ) − 𝑦̇ 𝑐𝑖 𝑐𝑜𝑠(𝜃 𝑖 ) (2.12) From (2.11) and (2.12), the velocity matrix of the vehicle can be rewritten as:
−𝑠𝑖𝑛(𝜃 𝑖 ) 𝑐𝑜𝑠(𝜃 𝑖 )] which is the inverse matrix of [𝑐𝑜𝑠(𝜃 𝑖 ) −𝑠𝑖𝑛(𝜃 𝑖 )
𝜔 𝑖 : Angular velocity of the i th wheel
𝑟 : Radius of the i th wheel
𝜱 𝒊 : Angle between roller axis and 𝑥 𝐶𝑖 axis
𝜃 𝑖 : Angle between the vehicle frame and wheel frame
𝑑 𝑥𝑖 and 𝑑 𝑦𝑖 are the position coordinates of Ci with reference to B
𝑢 : Forward velocity of the mobile robot w.r.t frame B
𝑣 : Lateral velocity of the mobile robot w.r.t frame B
𝜔 𝑏 : Angular velocity of the mobile robot w.r.t frame B
2.2.2 Kinematics of 3-omni-wheel mobile robot
The model of a 3-omni-wheel mobile robot:
Figure 2.5: Generalizing a 3-wheel OMR model
From Figure 2.5 , some of the values can be drawn as:
𝛷 1 = 𝛷 2 = 𝛷 3 = 0 𝑜 Applying all above values to (2.16), we can have the matrix of the robot velocity:
This article discusses the forward kinematics of a 3-wheel omnidirectional mobile robot, focusing on controlling the robot's driving direction By applying the inverse of equation (2.17), we derive the inverse kinematics matrix essential for achieving precise movement control.
Dynamics model
In a typical mobile robot model, the centroid of the body frame, represented as a rectangular box, may differ from the vehicle's centroid because of the positioning of various components attached to the robot.
Figure 2.6: Dynamics analysis of a general mobile robot
Applying the Lagrangian equation, we have:
However, since the object is a mobile robot that travels on the ground, the potential energy (PE) is neglected, only kinetic energy (KE) is considered
The velocity of the vehicle can be drawn just the same as in the kinematics part:
𝑦 𝐶 ̇ = 𝑣 − 𝑥 𝐵𝐶 𝜔 𝑏 (2.21) The formula for kinetics energy then can be calculated as:
In which, 𝐼 𝐶𝑧 is the moment of inertia of the vehicle when it rotates The force generated can be derived as:
Then, applying Euler-Lagrangian equation to (2.22):
The point C is on the same rigid body with the point B, so it is possible to change 𝑦̇ 𝐵𝐶 and 𝑥̇ 𝐵𝐶 to 𝑦 𝐶 ̇ and 𝑥 𝐶 ̇
Combining (2.20), (2.21) and (2.32), the dynamics model of a general mobile robot is:
In this project, we assume the robot's centroid is positioned at the center, indicating that points B and C in Figure 2.6 are identical Consequently, equations (2.33), (2.34), and (2.35) can be simplified.
2.3.2 3-wheel omnidirectional mobile robot dynamics
Assume the positive direction of the force is counter clockwise Then, we have the figure for dynamics model:
Figure 2.7: Dynamics analysis of 3-wheel OMR
In which α 𝑖 is the angle of wheel driving direction and 𝐹 𝑥 Doing force synthesis, we get:
It can also be written in matrix form:
𝑀 𝑧 ] = [ cos (α 𝑖 ) cos (α 𝑖 ) cos (α 𝑖 ) sin (α 𝑖 ) sin (α 𝑖 ) sin (α 𝑖 ) Ɩ Ɩ Ɩ
DESIGN AND COMPONENTS SELECTION
Hardware overview
Figure 3.1: Hardware design overview diagram
Mechanical design
Omnidirectional wheels are essential in various applications, yet they are relatively rare in the market After extensive online research, the author selected the 78mm omni wheels for their specific needs.
Body material Aluminum alloy + rubber
Table 3.1: 78mm omnidirectional wheel specifications
Since the shaft hole diameter of the wheel is rather large, the shop provided the hub especially made for omni wheel only
Table 3.2: Omni wheel hub specifications
Figure 3.4: Way to install an omnidirectional wheel to motors
The motor serves as the moment supplier that regulates wheel rotation, with this motion being affected by the robot's mass and the friction between the wheel and the surface it traverses.
Assume that the maximum velocity of the robot is 0.5 (m/s) Then the maximum speed of one motor must also equals to 0.5 (m/s) The rotation speed of motor then equals:
0.079 = 12.65 (𝑟𝑎𝑑/𝑠) ≈ 120 (𝑅𝑃𝑀) (3.1) The minimum rotation speed is 162 (RPM)
Figure 3.5: Force analyzing on single wheel
Assume the weight of the robot is approximately 4 kg, and the maximum load to put on the robot is 1.5 kg
Moment of inertia of the wheel:
Applying the formula of torque balance around the wheel:
𝛼 : Angular acceleration of the wheel
The angular acceleration can be computed as:
Condition for the wheel to not slip during rotating:
𝜇 : friction between the wheel and the plane (assume it is asphalt – 0.7)
𝑀 : weight of robot and load (assume 5.5 kg)
𝑚 : weight of an omnidirectional wheel (0.188 kg)
𝑅 : Wheel radius (0.039 𝑚) Choose the safety factor of 1.2, then the power is calculated by:
Substitute the variables into (3.7) and (3.8), we than have the requirement torque at least 1.47 (𝑵𝒎) to not slide when rotate, and the power is 22.61 (W)
Based on the above calculation, the author chooses JGB37-545 DC geared motor with an attached encoder for speed controller
Max speed (No payload) 208 RPM
Max speed (With payload) 176 RPM
(16 pulse per channel per round)
Figure 3.6: JGB37-545 DC geared motor
Also, there are bracket design specially for 37 mm geared motor:
Figure 3.7: 37 mm DC geared motor mounting bracket
The robot features a dual-base design, with the lower base supporting three motors and their drivers, while the upper base accommodates the electronic components Maintaining proximity between the two bases is crucial to avoid an increased center of gravity, which can result in greater inertia during movement.
To achieve a lower center of gravity, the base must be positioned as close to the ground as possible, with motors mounted on the top side The design includes strategically placed holes to accommodate the wheels, while smaller openings are incorporated for pillars to support the upper base.
The upper base, although smaller than the lower base, accommodates the necessary number of holes for pillar support It features a central large hole that facilitates wiring connections between controllers and the power source, linking the upper base to the motors and drivers located in the lower base.
The selected brass hexagonal pillars must have a carefully chosen length of 50mm to ensure an appropriate distance between the bases for accommodating the motors and their holders.
Then, the assembly model of the bases is:
Figure 3.11: Assembly of the two bases
The cover of the robot is designed to enhance its visual appeal and consists of two main components: the body and the cap The body height is strategically set to be at least twice that of the brass, ensuring ample space for all internal modules A ledge is integrated at the top of the body to securely hold the cap, while a dedicated slot is provided for the on/off button To ensure stability, three holes are included for screws to fix the cover body in place.
Figure 3.12: Cover design – the body (1)
Figure 3.13: Cover design - the body (2)
The cap is designed to fit on the upper ledge provided in the body, also there are two holes make it easier to remove if necessary
Cover’s cap outer diameter 𝜙357 x 5mm
Cover’s cap holder diameter 𝜙330 x 10 x 10 mm
Figure 3.14: Cover design – the cap (1)
Figure 3.15: Cover design – the cap (2)
The cover will also be made using 3D printing, with lower thickness to not increase much of the robot’s weight
Then, we combine the two parts and get the complete cover:
Figure 3.16: Complete design of the cover (1)
Figure 3.17: Complete design of the cover (2)
Figure 3.18: Complete design of the cover (3)
Electrical system design
Arduino's popularity stems from its open-source nature and robust user community, making it a global favorite The Arduino Mega 2560 boasts numerous digital input/output pins and an impressive 256 KB of memory Despite its advantages, certain drawbacks remain In response to these limitations, Vietduino, a Vietnamese company, has launched an enhanced version of the Arduino Mega.
The Arduino Mega 2560 utilizes the LM1117 5VDC regulator, which can lead to low efficiency and overheating under high current conditions In contrast, the Vietduino Mega 2560 features a switched-mode power supply that operates efficiently with an input voltage range of 6V to 12V.
24 VDC, high conversion efficiency and short circuit protection
The Arduino Mega 2560 employs the Atmega16U2 chip to simulate USB UART functionality, which can be susceptible to firmware loss or oscillator failure, leading to USB connection issues In contrast, the Vietduino Mega 2560 utilizes the reliable CP2102 integrated circuit, offering enhanced stability and durability for seamless connectivity.
- Vietduino Mega 2560 provides power isolation in USB port when an external power supplied which keeps the users’ devices safe
Power supply - 5V DC for the USB port.
- 6 to 24V DC for the DC barrel jack.
- 500mA for USB port supply.
Digital pins 54 pins (15 PWM pins).
GPIO output current Maximum 20mA
Memory 256 KB (8 KB for bootloader)
HC-05 is a common UART module that is used to connect devices via Bluetooth using Bluetooth 2.0 + EDR protocol.
Range of connection Up to 10 meters
Table 3.10: HC-05 Bluetooth module specifications
Steps for setting up HC-05 module:
Before powering the module, ensure to connect the VCC and GND pins to the 5V and GND pins of the microcontroller Next, link the TX and RX pins of the module to the corresponding TX0 and RX0 pins on the board, specifically for Vietduino or Arduino Mega 2560 Finally, connect the KEY pin to the GND pin on the microcontroller.
To access the AT Command, push and hold the button on the opposite side of the module while plugging in the power Next, change the KEY pin to the 5V pin on the Arduino and release the button If the only LED on the module blinks occasionally, you have successfully accessed the AT Command.
- In the AT Command, we can change some of the few basic details for the module:
AT+RESET Reset all the details to default.
AT+ADDR Return the address of the module.
AT+NAME= Inquire device’s name.
AT+ROLE= Inquire device’s role (1: Master / 0:
AT+PSWD= Inquire device’s password (default 1234 or 0000)
- Param2: Stop bit (default = 0: 1bit)
Table 3.11: Basic AT Commands for setting up HC-05
The BTS7960 is a powerful H-bridge module capable of handling a maximum current of 43A, allowing it to drive a motor in both clockwise and counterclockwise directions Its popularity stems from additional features like protection against high temperatures and under-voltage, making it a preferred choice for various projects.
Max power 25W in single bridge
Table 3.12: BTS7960 motor driver specifications
3.3.4 Power source and DC-to-DC converter
This project utilizes two distinct power sources: a 9V battery to power the microcontroller and a set of four 18650 batteries to drive the motors The microcontroller, specifically the Vietduino, distributes power to other modules through its 5V pin.
- Voltage: 3.6 to 3.7V in nominal, 4.2V when charged
Figure 3.22: 18650 Panasonic battery cell (up) and 9V battery
To operate motors that require 12V, it is essential to connect multiple batteries in series Since both 3.7V and 4.2V are divisors of 12, a voltage reduction device is necessary The author employs a DC-to-DC converter to efficiently step down any voltage to the required 12V.
Figure 3.23: DC-to-DC converter
App design
MIT App Inventor is a user-friendly, visual programming platform that empowers individuals, including children, to create fully functional apps for smartphones and tablets Developed by Google and currently maintained by the Massachusetts Institute of Technology (MIT), this tool enables users to design applications tailored to their specific needs Key features of MIT App Inventor 2 enhance the app development experience, making it accessible to a broader audience.
- Easily build an app with basic components such as button, data- time, photos, notifications…
- Game creating support components with Canvas, ImageSprite…
- Device’s sensors usable and connection with other social media apps, Bluetooth, web browsers…
- Able to save or read text files, create simple database through self- made server or Firebase
Figure 3.24: MIT App Inventor 2 homepage
3.4.2 App design on MIT App Inventor 2
CONTROLLING METHODS
Controlling algorithm
Figure 4.1: Flow diagram for vehicle controlling
Upon launching the app and powering on the robot, a connection is established, which triggers the app to automatically send a STOP signal to the Bluetooth module unless another movement button is pressed The motor then calculates the programmed speed setpoint for the three motors and relays this signal to the motor drivers As the motors operate, encoders at their ends track velocity and report back to the Microcontroller for PID calculations If a button is released during operation, the program will halt all actions immediately For automatic buttons, they function as non-release manual buttons, requiring the user to press the stop button to deactivate the robot; pressing the automatic mode again will restart the process from the beginning.
PID overview
A PID (Proportional Integral Derivative) controller is a feedback control loop mechanism that continuously computes the error between a measured variable and a desired setpoint By effectively applying proportional, integral, and derivative terms, the PID controller can eliminate steady-state errors, minimize percent overshoot, and reduce settling time, enhancing overall system performance.
Figure 4.2: An example of a PID controller
This term output is a value that is proportional to the current error measured Hence, the response can be adjusted by multiplying the error with a constant proportional gain 𝐾 𝑝
The proportional term can be given by:
A high gain enhances the speed at which a system attains its set point and minimizes steady-state error, although it cannot be completely eliminated However, this increase in gain also contributes to greater system instability.
Figure 4.3: The effect of P term
The contribution of this term is directly related to the magnitude of the error and the rise time It involves summing all instantaneous errors over time and multiplying this total by the integral gain, 𝐾𝑖.
The integral term is given by:
The higher the integral gain, the higher the percent overshoot, which leads to slower for the system to stable, though the steady state error gets smaller
Figure 4.4: The effect of I term
- D term: This term is calculated by determining the slope of the error overtime follow up by multiplying by derivative gain 𝐾 𝐷
This term is very sensitive to noise The higher the gain, the quicker it takes to settle However, D term can be used alone but must go with the others
Combining all the 3 terms, we get the overall control function:
Figure 4.5: The effect of D term
PID for motor controller
To achieve precise movement of the vehicle at any angle, it is essential for each motor to rotate at a calculated speed, necessitating the use of a PID controller for each motor Given that the microcontroller operates with its own oscillator, the PID controller is implemented in a discrete manner.
Figure 4.6: Discrete PID controller for motor speed
Applying formula from [12], with T is the sample rate:
(2𝑇)𝑧 2 𝑈(𝑧) − (2𝑇)𝑧𝑈(𝑧) = 𝛼𝑧 2 𝐸(𝑧) + 𝛽𝑧𝐸(𝑧) + 𝛾𝐸(𝑧) (4.10) Divide both sides of (4.10) by 𝑧 2 , assign ∆ = 2𝑇 :
(∆)𝑈(𝑧) − (∆)𝑧 −1 𝑈(𝑧) = 𝛼𝐸(𝑧) + 𝛽𝑧 −1 𝐸(𝑧) + 𝛾𝑧 −2 𝐸(𝑧) (4.11) Finally, the control output for discrete PID for single motor speed is:
𝑒(𝑘) : error between reference and measured at time k 𝑒(𝑘 − 1): error between reference and measured at time k-1 𝑒(𝑘 − 2): error between reference and measured at time k-2
EXPERIMENT
Assembly model
Experiment
The robot operates at a testing speed of 0.3 m/s, equivalent to approximately 75 RPM for its wheels moving in the same direction Based on the calculations outlined in chapter 2, and using formula (2.17), it is assumed that the robot's movements do not involve rotation Consequently, the setpoint for each wheel is determined, with negative values indicating counterclockwise rotation and positive values indicating clockwise rotation.
Table 5.1: Angular velocity setpoint for some motions
After testing for quite a time, the PID chosen are
The Arduino is limited to reading values with a maximum of two decimal places During testing, setting Kd to its minimum value of 0.01 prevented the system from stabilizing Consequently, the author decided to eliminate Kd altogether, focusing solely on Kp and Ki for this project.
The author verified the algorithm's accuracy by placing a camera marker at the center of the robot This setup allowed the marker to trace paths on the floor as the robot moved, effectively demonstrating the algorithm's performance.
5.2.1 Manual control testing a) Robot moves 90 degrees forward
Table 5.3: Angle deviation when robot moves forward
Figure 5.3: PID for 90 degrees forward motion b) Robot moves 270 degrees backward
Table 5.4: Angle deviation when robot moves backward
Figure 5.4: PID for 270 degrees backward motion c) Robot moves 0 degrees to the right
Table 5.5: Angle deviation when robot moves right
Figure 5.5: PID for 0 degrees to the right
54 d) Robot moves 180 degrees to the left
Table 5.6: Angle deviation when robot moves left
Figure 5.6: PID for 180 degrees to the left e) Other diagonal movements
Here, the author chooses the angle of 60 o , 120 o , 240 o and
Table 5.7: Angular velocity setpoint for some motions
5.2.2 Automatic control testing a) Robot moves in a square path
To navigate a square path, the robot operates at a speed of 0.3 m/s and must move at angles of 0°, 90°, 180°, and 270° The dimensions of the square path are set at 900mm by 900mm.
Distance between start and end point (mm)
Angle deviation between start and end point( o )
Table 5.8: 900x900 mm square path error
Figure 5.7: PID for square path
Here are the errors measured during each phase of operation:
Average 860 mm 909 mm 854 mm 915 mm
Table 5.9: 900x900 mm square path phases’ error
Wheel 1 Wheel 2 Wheel 3 b) Robot moves in an equilateral triangle path The robot will move at angle of 0 o , 120 o , 240 o respectively
Distance between start and end point (mm)
Angle deviation between start and end point( o )
Table 5.10: Equilateral triangle path (900 x 900 x 900 mm) error
Figure 5.8: PID for equilateral triangle path
Here are the errors measured during each phase of operation:
Table 5.11: 900x900 mm triangle path phases’ error
57 c) Robot moves in a circle path
Divide the circle into 24 parts of 15 degrees, the robot will continuously change the speed after each 0.5 second to form a circle
Distance between start and end point (mm)
Angle deviation between start and end point ( o )
Diameter measured from center (mm)
Table 5.12: Circular path ( ∅ 900mm) error
Figure 5.9: PID for circular path
Manual control can lead to errors that cause robots to deviate from their intended paths, resulting in inaccuracies during automatic operation The timing discrepancies in manual mode can affect translational directions, preventing the automatic mode from creating optimal path shapes Additionally, if there is a change in the direction of rotation of any wheel during operational transitions, it can result in a positive POT value, which further contributes to incorrect heading angles.
CONCLUSION
Conclusion
After doing research and implementing, the author has met the goals set out in the project’s mission:
- Project is completed on time
- The robot can move freely in any direction without changing it headings
- The robot works with both manual and automatic control of simple shape paths provided
However, there are still drawbacks:
The performance of robots heavily relies on 18650 batteries, which can be a drawback when they run low on power, as recharging them is often time-consuming Additionally, the use of subpar, non-genuine batteries further compromises their efficiency and longevity.
- Arduino in common can only read at maximum two decimals, which could reduce the accuracy
Controlling a robot with a basic PID controller is insufficient for maintaining accurate angle alignment when there is asynchrony among three engines, leading to increased error as the robot progresses Implementing a cascade PID control system can effectively eliminate this issue.
Future improvement
Beside of the things needed to be improved in the conclusion part, there are some of the ideas that could be implemented in the near future
LiDAR (Light Detection and Ranging) technology enables users to create detailed maps through the SLAM (simultaneous localization and mapping) method This allows vehicles to accurately determine their location within a specific area, effectively navigating around obstacles and dead ends during operation As a result, owners can confidently rely on the robot to operate independently.
The omnidirectional mobile robot's ability to move in any direction highlights its holonomic mobility, particularly through the integration of both translational and rotational motion.
[1] Definition of robots www.britannica.com/technology/robot-technology
[2] Western Robot launches Robots to combat Covid-19 www.westonrobot.com/news-weston-robot-covid19-disinfection-temperature- screening-robots
[3] AGEMA unmanned ground vehicle (UGV) milaniongroup.com/agema-ugv/
[4] Boston Dynamics’ Atlas robot in 2016 robots.ieee.org/robots/atlas2016/
[5] Kinematics modeling of wheeled mobile robots (Muir Patrick, 1986) www.ri.cmu.edu/pub_files/pub3/muir_patrick_1986_1/muir_patrick_1986_1.pdf
[6] Design and construction of continuous alternate wheels for an OMR
(Kyung-Seok Byun - Jae-Bok Song, 2003) onlinelibrary.wiley.com/doi/10.1002/rob.10107
[7] J Grabowiecki vehicle wheel (1919) patentimages.storage.googleapis.com/44/95/77/7e5bf9837c0989/US1305535.pdf
Wheels are essential components of a self-propelling vehicle, enabling it to move in any desired direction on various surfaces According to Bengt Erland Ilon in 1972, these wheels facilitate stability and mobility, making them crucial for effective transportation.
[9] An Omnidirectional Wheelchair (Jaffe et al., 1981) link.springer.com/article/10.1007/BF00992877
[10] GoliathCNC–An Autonomous Robotic Machine tool for makers (2022) www.kickstarter.com/projects/2130625347
[11] Design of an omnidirectional robot for FIRA Robosot (Naveen Suresh
Kuppuswamy et al., 2007) rit.kaist.ac.kr/wp-content/uploads/2021/07/DESIGN-OF-AN-
OMNIDIRECTIONAL-ROBOT-FOR-FIRA-ROBOSOT.pdf
[12] Ly thuyet dieu khien tu dong (Nguyen Thi Ha Phuong, Huynh Thai Hoang,