29 Figure 3.4: Design overview of the robot vacuum cleaner ..... Besides, we proved that we can apply the knowledge we have learned to design a robot vacuum cleaner with a moving traject
INTRODUCTION
Urgency of the topic
As lines of code become the new language of progress, we are witnessing a miraculous transformation in the 4.0 technology revolution that intertwines with every aspect of life Through lines of code, robots and automated systems are unlocking new possibilities for humans' future, enriching our daily experiences, optimizing labour efficiency and improving quality of life Industrial and service robots are pivotal in various aspects of contemporary life While industrial robots have long been developed and applied in manufacturing processes, service robots such as vacuuming are emerging to fulfil new needs The service robots aim to replace humans in environments with hazardous, dirty or repetitive tasks The most common example is vacuuming robots, which gradually replace manual household cleaning tasks
To meet the needs of applying technical technology to life, our team carried out the project
"Design and Manufacturing of the Mobile Vacuum Cleaning Robot" to synthesize knowledge learned and researched at school Besides, we proved that we can apply the knowledge we have learned to design a robot vacuum cleaner with a moving trajectory similar to modern vacuum cleaner robots on the market.
Introducing Robots - Mobile Robots - Vacuum Cleaner Robots
A robot is a machine that can perform specific tasks automatically under the control of a computer or electronic circuits programmed inside the robot Robots are the whole of a set of mechanical and electronic systems Robots can use sensors to collect information about the surrounding environment and can be equipped with an artificial brain to process information and be controlled to make decisions
When we talk about robots, we often think of robots that look like humans In the robotics industry, robots are very diverse in structure and function Robots are machines that resemble humans or creatures and can also be mechanical arms that serve the industry
According to the ISO 8373 standard of the International Organization for Standardization, an industrial robot is defined as follows: [1] "A programmed actuated mechanism with a degree of autonomy to perform locomotion, manipulation or positioning" The Robot Institute of America defines a robot as follows: [2] "A robot is a reprogrammable, multifunctional manipulator designed to move material, parts, tools, or specialized devices, through variable programmed motions for the performance of a variety of tasks." On the Merriam-Webster website, the definition of a robot is as follows: [3] "A machine that resembles a living creature in being capable of moving independently (as by walking or rolling on wheels) and performing complex actions" According to Wikipedia, the definition of a robot: [4] "A robot
15 is a special machine programmed by a computer capable of automatically performing a series of complex actions"
Today, robots are widely used in many fields with specific features suitable to the requirements of that field Some areas with solid participation of robots can be listed as:
• Industrial robots: Robots are used in manufacturing plants to perform assembly, welding, grinding, transportation, packaging, etc Industrial robots help increase working efficiency and accuracy and are safer than humans Industrial robots can also operate in harsh environments where humans cannot work
• Agricultural robots: Robots support farming, fertilizing, spraying, and harvesting Agricultural robots help increase productivity, quality and safety of agricultural products Agricultural robots help farmers save labour resources and time while supporting dose standardization and providing important crop parameters
• Service robot: This robot assists humans in performing tasks that meet human needs Service robots operate with automation mechanisms in public places or support restaurant and hotel services They can also be robots that serve people at home Service robots help increase convenience in human life
As mentioned above, robots are very diverse in configuration and function Mobile robots are part of the general robot concept Mobile robots are a type of robot that can perform tasks in different locations, not limited to a fixed location Flexibility is a characteristic of mobile robots Mobile robots are robots that can move on their own Mobile robots traverse their environment autonomously or semi-autonomously, utilizing sensors and algorithms to perceive and navigate obstacles, ultimately executing assigned tasks or missions Mobile robots can be "autonomous," meaning they can self-navigate in an uncontrolled environment without needing a physical guidance device
According to Techopedia magazine – [5] Mobile robotics is the industry involved in creating mobile robots, which are robots that can move in physical environments Mobile robots are typically controlled by software and use sensors and other devices to determine their surroundings Mobile robots combine advances in artificial intelligence with physical robots, allowing them to navigate their surroundings
Mobile robots are divided into two types: Autonomous and non-autonomous mobile robots
An autonomous mobile robot is a mobile robot that is capable of exploring and navigating itself in an uncontrolled environment without the need for a physical guidance device Non- autonomous mobile robots use some guidance system to be able to move
In the current era, mobile robots are becoming an undeniable trend This technology brings a series of significant advantages to users
One of the most essential advantages of dynamic robots is the ability to increase performance and productivity, optimize production processes and transport goods in industrial environments Second, using mobile robots limits labour safety risks - mobile robots can work flexibly in complex and harsh environments, which becomes a possible solution to help ensure labour safety In addition, using robots to replace humans in public activities to limit contact between people in special times (such as the COVID-19 pandemic) has proven its importance and usefulness Next, the flexibility of mobile robots allows them to meet most needs With the ability to operate and navigate flexibly in many different environments, mobile robots can be applied in industrial environments to public activities, and even now, mobile robots have appeared commonly in families
Based on the above advantages, mobile robots have been widely applied in many fields, including industry and manufacturing, logistics and delivery, customer service and cleaning
As concisely, robotics technology harbours significant potential for enhancing societal efficiency and utility
A robotic vacuum cleaner is an autonomous mobile robot This vacuum floor cleaning system combines sensors and programmed robot controllers to help the robot move in space and perform cleaning Floor birth is a widespread application in the mobile robot industry The concept of vacuum cleaner dates back to the late 1800s Daniel Hess of Western Union, Iowa, created a "carpet sweeper" tool in 1860 The device consisted of a rotating brush and tube It blows and creates suction
By 1868, Ives W McGaffey created the "Whirlwind," a giant sweeping machine that combined a hand-cranked fan with a belt A similar type of sweeper with brushes and rollers was also created by Melville R Bissell in 1976 - Bissell is still one of the leading manufacturers of vacuum cleaners and cleaning tools in the US
By 1996, the first intelligent vacuum cleaner - robotic vacuum cleaner was launched Trilobite was the name given to it when Electrolux manufactured it Trilobite can map space and navigate around using ultrasonic sensors
In today's era, robot vacuum cleaners have become popular and favoured by many people thanks to their convenience and performance Robot vacuum cleaners today are designed to meet various needs in the market, and they are divided into many segments with diverse features and prices
Today's cheap robot vacuum cleaner starts at only $50 With just $50, we can get a robot that can vacuum and move independently using an ultrasonic sensor In this segment, robots cannot locate the operating space They move randomly and change their travel route when the sensor determines an obstacle ahead
Research object and scope
• Design a vacuum cleaner robot as a vehicle with a motorized radial differential drive wheel and a spherical guide wheel as the third contact point
• Design a system that will suction and contain trash
• Learn and apply lidar sensors, ultrasonic sensors and infrared sensors to apply them to our vacuum cleaner robot
• Incorporate ROS (Robot Operating System) linked with LiDAR sensor to program tracking algorithms, allowing easy movement and obstacle avoidance
• Raspberry Pi is an embedded computer that processes signals from sensors, and Raspberry Pi is also used to launch the ROS operating system
• The STM32 microcontroller is used to control the motors of the robot vacuum cleaner
• Research, manufacture and test a charging station for our robot Propose a solution for the robot to locate its charging station in the operating space
After researching various sources and analyzing influential factors and practical requirements we have discussed and outlined specific tasks and limitations for this project:
• Our robot operates indoors The operating surface is a tile floor Fixed obstacles in the room include chairs, refrigerators, kitchen shelves, gas tanks, mobile obstacles such as people, and randomly placed boxes
• The objects that need to be cleaned in our robot's operating space are waste paper and shredded nylon We cannot handle fine dust because of the limitations of dust filtration technology
• Maximum speed limit of 0.3m/s ensures data from lidar and sensors is processed accurately and provides the ability to clean floor surfaces
• Robot operating time is limited to less than 40 minutes to reduce the battery weight of our robot.
Research Methods
• Mechanical design software such as Inventor is used in the design and manufacturing process to design models that can be applied in practice
• Learn about ROS and study many of the ROS community's libraries for mobile robot applications
• Learn about LiDAR, ultrasonic, and infrared sensors based on datasheets, specifications and online information sources
• Research documents related to robot vacuum cleaners are available through many different sources, such as articles, scientific research on robot vacuum cleaners, documents on the Internet, and research related to control algorithms on the community ROS
• Use the knowledge learned at school and learn more about ROS applications to research, design, and simulate software testing.
RESEARCH OVERVIEW
The vacuum cleaner robot
[6] The vacuum cleaner robot is a product of modern science and technology It is a device programmed with various advanced features, allowing it to operate automatically or under user control Vacuuming robots are the most modern and intelligent devices on the market today for household cleaning tasks These products are designed and programmed to perform the entire vacuuming and floor cleaning process autonomously, with minimal human intervention
Therefore, even when we are not at home, vacuuming robots can still operate and clean the floor effectively This device optimally replaces traditional cleaning tools such as brooms or vacuum cleaners, requiring less effort
Initial Development Steps of Vacuuming Robots (1996-2002):
Trilobite was developed by a company based in Sweden – Electrolux It is considered the world's first vacuuming robot Trilobite could map rooms and avoid obstacles using ultrasonic sensors It could recharge on its charging dock, automatically finding it when the cleaning task was completed or its power was running low
Figure 2.2: Trilobite - First Vacuuming Robot
It worked well but often faced issues when colliding with objects, stopping near walls and other objects and leaving small areas uncleaned As a result, it failed in the market and was discontinued
Roomba is a line of automatic vacuuming robots produced by the company iRobot Introduced in September 2002, these robots have sensors that allow them to determine the floor area of a house These sensors can detect the presence of obstacles, especially dirt spots on the floor and inclines (e.g., avoid falling down stairs)
Figure 2.3: Roomba 2002 Prototype Vacuuming Robot
Roomba quickly became a phenomenon and opened up a large market for vacuuming robots
During this period, recognizing the potential of the vacuuming robot market, major players in the robot and household technology manufacturing industry, such as iRobot, Robotics,
Dyson, Electrolux, etc., competed to develop vacuuming robot technology, including sensors, machine learning algorithms, and battery life
New models were more efficient in cleaning and could navigate intelligently in home spaces The most representative development in vacuuming robots was the Neato Robotics XV-11, introduced in 2010, which is considered the first robot to use laser-guided technology
Figure 2.4: Neato Robotics XV-11 Vacuuming Robot
In recent years, the vacuum cleaner robot market has become diverse, with many companies offering models with various features and prices Competition among manufacturers has driven continuous innovation and improvement in the industry
New models often come with intelligent technologies such as Wi-Fi connectivity, voice control, and integration with other smart home ecosystems In 2015, both Dyson and iRobot introduced mapping features based on cameras
Figure 2.5: Dyson 360 Eye Vacuuming Robot
In 2022, ECOVACS introduced the DEEBOT-X1 series with YIKO, a voice assistant, making it the natural language in-home robot with AI voice control and interaction
Related research on the topic
Significant countries worldwide are competing in the field of smart home devices China, leveraging its massive population, is the largest consumer of vacuuming robots globally, providing a lucrative market for manufacturers such as Ecovacs, Dyson, etc The United States and European countries are also significant markets for household robot products These countries can produce and consume domestically, making vacuuming robots more accessible to consumers Additionally, other Asian countries like Japan and South Korea are strong markets for vacuuming robots
Industrial vacuuming robots are increasingly being applied globally and are widespread in many countries Current vacuuming robot technology helps automate the cleaning process and maintain a clean environment for businesses Industrial vacuuming robots are designed to operate in environments with high dust levels, such as warehouses, manufacturing plants, and storage facilities Most industrial vacuuming robots can work on surfaces that are not smooth or have high slopes
Figure 2.7: Industrial Vacuuming Robot - Ecovacs DEEBOT PRO M1
Figure 2.8: Vacuuming Robot for Industry - Mingnuo MN-C200ASL
In Vietnam, robot vacuum cleaners have become a popular product with modern consumers today, and there are many choices from famous brands in the production of robot vacuum cleaners, such as Sharp, Samsung, Ecovacs, Xiaomi, etc Machine models in the Vietnamese market have different prices depending on the model, features and manufacturer's brand Different models are designed to meet the different needs of consumers, such as people living in apartments or houses with many pets There are many sales distribution channels and many stores sell vacuum cleaner robots So, it makes it easy for consumers to access and shop and its product warranty and technical support services also help Vietnamese consumers feel confident about shopping However, there
24 is still a need for a Vietnamese company that has successfully developed and produced vacuum cleaner robots.
MECHANICAL DESIGN
Choosing the mechanism for a mobile robot
In mobile robot design, the choice of wheel type and movement configuration greatly influences the robot's kinematics and navigation ability There are three common types of wheels used in mobile robots:
1 Fixed wheel: The simplest wheel type can only rotate around a fixed axis Robots using this type of wheel need at least three wheels to maintain balance and are often limited in performing complex movements
2 Caster wheel: This allows the robot to rotate around a point and supports more flexible movement However, they can cause inaccuracies in navigation due to the wheel's free rotation.
3 Omni wheel: Designed with small rollers around it, allowing the robot to move in all directions without having to rotate its own body Omni wheel is a good choice for mobile robots needing high navigation precision and omnidirectional movement capabilities.
Robot configuration is a term that refers to the basic design and arrangement of the robot's mechanical parts For mobile robots, we have the following popular robot configurations
One driving wheel at the front and one at the rear with a motor
Two differential drive wheels with the centre of gravity between axles
Two motorized radial differential drive wheels and one front drive axle wheel
Two independently controlled wheels at the rear and one spherical guide wheel at the front
Two motorized wheels are connected together at the rear, one driving wheel at the front
The motor-driven wheel has both a steering function in the front and two free wheels in the rear
The three multi-directional wheels are arranged evenly spaced in a triangle shape
The two motorized wheels are connected at the rear, and the two driving wheels are connected at the front
Two differential drive wheels at the rear, two guide wheels at the front
Two connected wheels are controlled by a motor with both steering functions in the front and two free wheels in the rear
The two rear wheels are connected and equipped with engines, the two front wheels are also connected and equipped with engines, and all four wheels are driving wheels
The two wheels drive the differential and have two front and rear axle wheels as contact points
The four wheels are all driving wheels and are equipped with independent motors
Two differential drive wheels in the middle, four spherical guide wheels at the four corners
Table 3.1: Dynamic mechanisms using wheels
Based on our research on standard drive systems used for robotic vacuum cleaners, there are two most common design options:
Option 1: Four-wheel drive mechanism (two rear drive wheels and two guide wheels)
Figure 3.1: Four-wheel genetic mechanism
Option 2: Three-wheel drive mechanism (two rear-wheel drive and one center-wheel guide)
Figure 3.2: Three-wheel moving mechanism
• The simple structure consists of only two drive wheels and one semi-balanced
• Popular with current robotic vacuum systems
• Easier control algorithm than 4-wheel drive
• Robots have a more challenging time balancing than four-wheelers
• The load capacity is low
• Difficult to develop with giant robots
Conclusion: Based on the advantages and disadvantages mentioned above and according to the levels consistent with the trend of the topic We decided to design the vacuum cleaning robot according to the plan using a movement mechanism consisting of two motorized radial differential drive wheels and one front drive axle wheel.
Design drawings for a vacuum cleaning robot
This is the assembly drawing of our vacuum cleaner robot Detailed drawings are attached in the drawing set
Figure 3.3: The assembly drawing of vacuum cleaner robot
The robot frame is an important part that contributes not only to the robot's operation but also to its aesthetics Ensure the most efficient user experience and improve the robot's work efficiency
In this project, we choose two primary materials to design the robot: mica and ABS plastic These two materials meet the requirements set out in the design of the robot vacuum cleaner, such as weight, load and aesthetics
Figure 3.4: Design overview of the robot vacuum cleaner
Two thick mica plates were designed as the base of the robot The robot cases and trash containers are 3D designed and printed in ABS plastic
3.2.2 Design of brushes and the trash bin
The vacuum cleaner system is also essential to ensure the robot's efficiency The vacuuming container is conveniently designed for horizontal cleaning, and the vacuuming motor is placed vertically just above the vacuuming container All parts are printed in ABS plastic to ensure the robot's weight and durability
Brushes are also an essential part of the robot that ensures the most efficient cleaning process
Charging stations are an essential component of mobile robots and vacuum cleaner robots The charging station provides the robot with the necessary energy and serves as a "home" when it is not operating
Special features available on the charging station:
Some charging stations are designed with a self-cleaning function, automatically removing dust and trash from the robot's garbage collection Support washing and drying rags for robots with floor cleaning functions
Wireless charging technology is becoming increasingly popular, allowing robots to charge without a physical connection, increasing convenience and reducing cable clutter
The charging station is designed with two co-located contacts matching the two contacts present on the robot, and the charging station's operating voltage is 12V
Two contacts are arranged with two copper pieces to transmit electricity.
Material Selection - Durability Analysis
3.3.1 Robot Base Unit and Lid Unit Constructed from Mica Material
The robot base is made of mica material with a thickness of 5mm as the primary bearing part, so it is necessary to ensure high load resistance
The robot cover contains robot case, the LiDAR sensor, STM32 and monitor 7 inches are relatively light, so there is no need for a thickness that is too large The lid is made of black mica with a thickness of 3mm
Figure 3.8: Robot base unit Figure 3.9: Load on the robot base
Figure 3.10: Robot cover unit Figure 3.11: Load on the robot lid
The inventor tool was used to test the durability of the motor base unit, with fixed points such as the drive wheel and the guide wheel We place arrow points representing each component that applies force to the robot base unit, resulting in the following:
Figure 3.12: Durability testing of the robot base
Figure 3.13: Durability test of the robot cover
1 Elastic modulus (denotes hardness of material) 5-10 GPa
2 Shear modulus (denotes resistance to reshaping when subjected to shear forces)
3 Poisson's coefficient (denotes the ratio of longitudinal deformation to transverse deformation when the material is subjected to tension)
4 Mohs hardness (denotes the hardness of mica compared to other materials)
5 Flexural strength (denotes the bending resistance of the material)
6 Compressive strength (denotes the compressive strength of the material)
Table 3.2: Some basic parameters of mica materials
Conclusion: Based on the simulation process and comparison with the parameters, we can see that the mica material with a thickness of 5mm of the base unit and a thickness of 3mm mica in the upper cover can fully meet the load of robotic parts such as driving motor, suction motor, battery, etc
3.3.2 Robot case and LiDAR case are made of ABS plastic material
The case is designed monolithically with ABS-printed plastic material The case will be placed outside the robot base Because it still needs to bear the force of some parts, the case must also ensure the robot's loading capacity and aesthetic aspect
Figure 3.14: The robot case Figure 3.15: Load on the robot case
Figure 3.16: The LiDAR case Figure 3.17: Load on LiDAR case
Similar to the base and cover of the robot, we use the durability simulation tool in Inventor to test the strength of the case
Figure 3.18: Durability test of the robot case
Figure 3.19: Durability testing of the LiDAR case
Table 3.3: Basic parameters of ABS plastic materials
Conclusion: Based on the simulation process and comparison with the parameters, we can see that ABS plastic materials both ensure moderate load resistance and increase the aesthetics of the robot.
Choosing a Motor for the Vacuum Cleaner Robot
The electric motor is one of the most essential parts of the robot design process An electric motor is a device that converts electrical energy into mechanical energy for moving or rotating jobs for robots Actuators that rely on electric motors are the preferred choice in robotics because of advantages such as:
• Electric power is a common energy source in robot development
• There are many motors and motor sizes suitable for various robot sizes
• Electric motor drive is powerful and easy to maintain
There are two common types of motors today: AC motors and DC motors For the robot to move with acceleration and initial requirements, the robot sets out to move at a distance of 1m at a speed of 0.3 m/s
We have the formula for the relationship between velocity, distance and acceleration: v 2 − v 0 2 = 2as (3.1)
• v: velocity when the robot moves (m/s)
Based on the formula (2.9) for efficiency - the book "Calculating the design of the mechanical engine system (Book 1) – Trinh Chat - Le Van Uyen" [9] we have:
In which: ɳ ol : Efficiency of a pair of bearings
1 Total load-bearing volume - m 6 kg
Rolling friction coefficient - à (plastic wheel and concrete surface) 0.06
Table 3.4: Specifications of robot vacuum cleaner
Figure 3.20: Analysis of the force acting on the vehicle
Applying Newton's second law, we have:
• F: Force required for the vehicle to move (N)
• F ms : Friction between wheel and floor (N)
The power on the motor to be used is:
• F: Force required for the vehicle to move (N)
→ From the parameters on the selected group JGB37-520 Servo motor type 12VDC 110 rpm
Figure 3.21: JGB37-520 DC Servo Motor
5 Maximum speed at load 85 RPM
6 Rated torque traction 10KG.CM
9 Number of Encoder pulses per channel on 1 spindle rotation
Table 3.5: JGB37-520 DC Servo Motor specifications
[8] JGB37-520 DC Servo Motor DC Geared Motor is integrated with a two-channel AB Encoder to accurately read and control the position and rotation of the motor in applications that need high accuracy: PID control, Autonomous robot, etc
JGB37-520 DC Geared Motor DC Servo Motor has metal construction for high durability and stability in robot models, vehicles and boats The motor's reducer has many transmission ratios that make it easy to choose between traction and speed (the more significant the traction, the slower the speed and vice versa) The motor uses high-quality raw materials (pure copper wire core, 407 steel foil, strong magnetic magnets, etc.) for superior strength and durability compared to cheap types today (using aluminium wire core, weak magnetic magnets)
To choose a suction motor, we must determine the use needs of the robot, through which we need to consider the characteristics of a suction motor, such as suction power, engine efficiency, and engine fuel consumption
The suction force is usually measured in Pascal (Pa) A strong suction force will help increase cleaning efficiency However, energy consumption is also higher, so it is necessary to consider the choice of suction power to ensure both of the above issues We can refer to some of the following surfaces:
• Hard flat surfaces: We do not need a strong suction force in these surface forms It is common for today's popular vacuuming robots to use motors with a suction force of about 1000Pa to 1500Pa
• Carpet surface: Due to the unique nature of this surface, a strong enough suction force is needed to clean the surface of the carpet An attractive force in the range of 1500 Pa to 2000
• Fine dust and pet hair: A strong suction force (about 1500Pa or more) is required to vacuum fine dust and pet hair effectively
Based on the above characteristics, the suction force of about 1500Pa for the motor can be selected to optimize the cleaning efficiency of the robot
• Electrical power and motor efficiency
Electric power is the amount of power consumed by the motor Motor efficiency is the ratio of electrical energy to mechanical energy
It is assumed that the group selects a motor with a variable efficiency of 80% and a suction force of 1600Pa, requiring a power of about 80W with an operating voltage of 12V From there, we can calculate the necessary current and energy for the robot:
Required current = power capacity voltage = 100W
12V = 8.34 A (3.11) Determine the suction pressure of the engine by the formula:
• 𝜂 is the efficiency of the motor
So, the power required for the suction motor is 100W, equivalent to an approximate suction force of 4000Pa The operating voltage is 12V, and the operating current is 8.34A The motor of choice is the Mabuchi RS-540SH suction motor
The Mabuchi RS-540SH motor is integrated into small- and medium-sized vacuum systems By empirical surveys based on Mabuchi RS-540SH motor vacuum products, we get a Q parameter (airflow) in the 2 to 4 m 3 /min (70-140 CFM) This is an expected airflow range for small or robotic vacuum cleaners
We use the average value Q =3m3/min (about 105 CFM) to give a specific number for calculation purposes We need to convert Q to m 3 /s to suit the power unit as a Watt (1 m 3 /min equivalent to about 0.016667 m 3 /s) So, Q = 3m 3 /min = 0.05 m 3 /s
P is the motor's power (100W) and is 80% motor efficiency for DC motors such as the Mabuchi RS-540SH motor
Table 3.6: Mabuchi 12V suction motor specifications
We chose a metal shaft V1 geared motor for our brush set design This motor has stable performance and high durability during use
Table 3.7: Gear reduction motor V1 specifications
Mobile Robot Kinematics
3.5.1 Introduction to mobile robot kinematics
“Robot kinematics studies the relationship between the dimensions and connectivity of kinematic chains and the position, velocity and acceleration of each of the links in the robotic system, in order to plan and control movement and to compute actuator forces and torques”
In other words, kinematics focuses on determining robot parts' position, direction, speed and acceleration without needing forces or moments acting on them For mobile robots, kinematics are often divided into two main types: direct kinematics and inverse kinematics Calculating robot dynamics:
Forward dynamics: Given 𝜃, 𝜃̇ and 𝜏 find 𝜃̈ Use the angular position, angular velocity, and moment at the joints to calculate the acceleration at the joints This method is usually used to simulate robot dynamics
Inverse dynamics: Given 𝜃, 𝜃̇ and 𝜃̈ find 𝜏 Use angular position, angular velocity, and angular acceleration to calculate the required moment at the joints This method is used for designing controllers
To calculate the kinematic equation, we have two approaches:
- Forces are applied to individual links of robots
Forward Kinematics: Determines the position and orientation of the robot's end parts (e.g., arms, brushes) based on information about the rotation angles and movements of the joints Inverse Kinematics: Determines the rotations and movements required at joints to achieve a specific end position and orientation
The Importance of Kinematics in Mobile Robot Design and Control
In the design and control of mobile robots, kinematics are essential in determining how the robot moves and interacts with its surroundings, including the ability to shape the path, adjust the speed and direction of movement, and handle environmental effects such as obstacles or complex terrain For mobile vacuum cleaner robots, understanding and applying kinematics helps optimize navigation in living spaces, thereby improving cleaning efficiency and minimizing the risk of collision or jamming
In addition, kinematics also plays a vital role in developing robot control algorithms, allowing robots to perform tasks accurately and flexibly, improving the robot's ability to operate independently in unknown environments, and expanding the applicability of mobile robots in many different fields
To calculate the kinematic part of the robot, it is necessary to determine the positions, such as the initial coordinate position (considered at the condition t = 0) and the position after the robot moves
• Position of the robot at time t = 0:
Figure 3.24: Position of the robot at time t =0
• The axis coordinates are the axis coordinates considered at the time t = 0
• Set point c as the fixed point and the midpoint of the line segment between the two wheels
• b is the distance from the wheel to the fixed point
• Position of the robot at time t
Figure 3.25: Position of the robot at time t
• The axis coordinates are the axis coordinates considered at time t
• 𝜃 is the axis angle considered at time t
• 𝜔 is the rotation angle of the robot
• 𝜑 𝐿 , 𝜑 𝑅 the rotation torque of the left and right motors, respectively
3.5.2.1 Differential forward kinematics for the mobile differential drive robot:
Based on Figure 3.25, we have a correlation between the values:
(3.12) From the (3.12) relation, we transform to the matrix system as follows:
Figure 3.26: Setting the point coordinates A, B, C
Set the coordinates of point A, B is the midpoint of the right wheel and left wheel respectively, point C is the midpoint of segment AB → We have the distance vector from A to C (𝑟⃗⃗⃗⃗⃗⃗⃗ ) 𝐶/𝐴 and the distance vector from B to C (𝑟⃗⃗⃗⃗⃗⃗⃗ ) 𝐶/𝐵
From the above condition, we have the distance from point A to point B is 𝑟⃗⃗⃗⃗⃗⃗⃗ − 𝑟 𝐶/𝐴 ⃗⃗⃗⃗⃗⃗⃗ 𝐶/𝐵 because the two vectors are opposite and have a length of:
|𝑟⃗⃗⃗⃗⃗⃗⃗ − 𝑟 𝐶/𝐴 ⃗⃗⃗⃗⃗⃗⃗ | = 2𝑏 (3.14) 𝐶/𝐵 Conditions for balancing the robot:
0⃗ = 𝑉⃗⃗⃗ − 𝑉 𝐴 ⃗⃗⃗⃗ + 𝜔 𝐵 ⃗⃗ × (𝑟⃗⃗⃗⃗⃗⃗⃗ − 𝑟 𝐶/𝐴 ⃗⃗⃗⃗⃗⃗⃗ ) (3.15) 𝐶/𝐵 Based on the figure 3.26 we have:
𝑉 𝐵 = 𝑟 𝐿 × 𝜑 𝐿 (3.16) From equation (3.14), balance robot condition (3.15) and velocity calculation method (3.16) we have:
We have the 𝑉 𝐶 following velocity equation:
𝑉⃗ 𝐶 = 𝑉⃗ 𝐵 + 𝑟 𝐶/𝐵 × 𝜔⃗⃗ (3.18) Using the method of combining the two equations of the relation (3.18), we have:
2𝑉⃗ 𝐶 = 𝑉⃗ 𝐴 + 𝑉⃗ 𝐵 + (𝑟 𝐶/𝐴 + 𝑟 𝐶/𝐵 ) × 𝜔⃗⃗ (3.19) Because two vectors 𝑟 𝐶/𝐴 and 𝑟 𝐶/𝐵 are two vectors of the same direction with the same length but opposite direction:
2 (3.20) Correlation transformations (3.17) and (3.19) represented under the matrix system are:
From the matrix (3.13) and the matrix (3.21), we have the kinetic system for the robot as follows:
Considering the fixed point C has a velocity equivalent to the speed of the entire robot system along with the left and right wheel conditions to determine the direction of movement of the robot:
1 If 𝜑 𝑅 = 𝜑 𝐿 > 0 ↔ 𝑉 𝐶 = 𝑉 𝐴 = 𝑉 𝐵 > 0 → then the left wheel velocity is synchronized with the right wheel at the same time both wheels rotate clockwise so that the robot will move straight forward
2 If 𝜑 𝑅 = 𝜑 𝐿 < 0 ↔ 𝑉 𝐶 = 𝑉 𝐴 = 𝑉 𝐵 < 0 → the left wheel speed is synchronized with the right wheel at the same time, both wheels rotate counterclockwise, so the robot will move backwards
2𝑏 →the wheel speed must be greater than the left wheel, the robot still translates forward but tends to divert towards the left
2𝑏 → the left wheel speed is greater than the right wheel, the robot still moves forward but tends to divert towards the right.
5 If 𝜑 𝐿 = −𝜑 𝑅 (−𝜑 𝐿 = 𝜑 𝑅 ) ↔ 𝑉 𝐶 = 0 => the velocity of the two motors is synchronous but opposite, so the robot will not move and rotate in place, the rotation will depend on the direction of the motor (in which case the robot will rotate clockwise and vice versa)
3.5.2.2 Inverse Kinematics of a Mobile Robot
Typically, we can describe the position of the robot through the direction of travel (t) and a given speed V(t), represented through the following formulas: x(t) = ∫ V(t) × cos θ(t)dt 0 t (3.23) y(t) = ∫ V(t) × sin θ(t)dt 0 t (3.24) θ(t) = ∫ ω(t)dt 0 t (3.25)
In some exceptional cases, such as considering two separate systems of left and right wheels, we can transform the above systems in the following form: x(t) = 1
So, how the robot achieves the desired position (x, y, θ) is called the inverse kinematic problem
The robot system has a two-wheeled design imposed by a so-called non-holonomic constraint in setting the coordinates for the robot For example, a robot cannot move horizontally along its axis An example of a non-holonomic constraint system is a car, which rotates only the front wheel and uses the rear wheel as a non-rotating drive system It cannot move directly horizontally, so parallel parking requires more complex driving manoeuvres
Figure 3.27: Coordinates of the robot at any time t
Based on figure 3.27, considering the configuration of the robot at any time, we have the non- holonomic binding system as follows:
𝑌̇ 𝑅 = 𝑦̇ cos 𝜃 − 𝑥̇ sin 𝜃 = 0 (3.29) From the kinematic matrix (3.22) we transform the values 𝑦̇, 𝑥̇ in the form of expressions as follows:
2 × sin 𝜃 × 𝜑 𝐿 (3.31) From the relation (3.29) combined with the two expressions (3.30) and (3.31), we have the non-holonomic binding system represented as follows:
ELECTRICAL – ELECTRONIC DESIGN
Sensors in Vacuum Cleaner Robot
LiDAR - short for "Light Detection and Ranging," is a remote detection technology that uses light as a laser to measure the distance to an object LiDAR's operating mechanism is based on emitting laser pulses The LiDAR has a sensor that receives information and analyzes the light reflected The time from when the beam is emitted to when the reflected signal is received back allows for calculating the exact distance to the object
Outstanding Features of RPLIDAR Al:
RPLIDAR A1 is a low-cost yet highly effective LiDAR solution suitable for applications such as robot vacuum cleaners This device provides 360-degree scanning data with high accuracy and stable operation in indoor environments
Lidar Application in Robot Vacuum Cleaner:
Automatic Navigation: RPLIDAR A1 helps the robot determine position and direction, allowing it to move intelligently without frequent human intervention
Dynamic Mapping: Continuous and accurate scanning helps the robot continuously update the map of the environment, responding to changes such as moving furniture
Detect and Avoid Obstacles: LiDAR helps the robot detect obstacles promptly and adjust its route to avoid collisions
RPLidar A1M8 is a high-performance 360-degree Lidar sensor manufactured by SLAMTEC for robotics, autonomous vehicles, 2D mapping, etc RPLidar is a famous laser scanning device in the academic community and mobile robotics research
The communication method RPLIDAR A1M8 uses is UART UART communication makes it easy to communicate with a microcontroller or embedded computer through a USB-UART switch circuit RPLIDAR A1M8 can scan the entire environment with a range of 360 degrees, detect objects at a distance of 0.2-12m, and has a maximum scanning frequency of up to 10Hz with 8000 samples/time suitable for many applications
CHAPTER IV: ELECTRICAL-ELECTRONIC DESIGN
The connection diagram between RPLIDAR A1M8 and Raspberry Pi 4 uses the USB 3.0 port to power and receive data from RPLIDAR
Figure 4.2: Lidar connects to the raspberry via usb port
CHAPTER IV: ELECTRICAL-ELECTRONIC DESIGN
Ultrasonic sensors help the robot detect obstacles to make appropriate movement plans Sensor eyes are usually installed in front of the robot, helping to detect objects as early as possible Accordingly, based on the sensor position that the device contacts to determine the direction of travel, adjust the map to work correctly
The main use of the sensor is to support the machine to operate effectively, avoid collisions, protect the robot's body and internal parts, and ensure robot durability
Based on factors such as the relevance to the topic and cost optimization, the group selected an ultrasonic sensor HC-SR04
The SR04 ultrasonic sensor uses the principle of ultrasonic wave reflection The sensor consists of 2 modules: 1 module emits ultrasonic waves and 1 module receives ultrasonic waves reflected First, the sensor will emit one ultrasonic wave with a frequency of 40khz The ultrasound waves will reflect and affect the receiving module if there are obstacles The distance from the sensor to the obstacle is calculated by measuring the time from transmission to reception
Figure 4.3: Ultrasonic sensor HC-SR04
Table 4.2: Ultrasonic Sensor specifications HC-SR04
CHAPTER IV: ELECTRICAL-ELECTRONIC DESIGN
The infrared sensor is one of the essential sensors of a robot vacuum cleaner, and it ensures that the robot avoids collision and breakage during operation This sensor is located at the bottom of the body Typically, the robot will have 6-8 sensor eyes spread evenly across the underside of the body
During robot operation, this sensor makes it possible to detect when the distance between the lower body and the floor suddenly increases through infrared From there, the robot automatically backs off and redirects
Based on the above properties, the selected infrared sensor is E18-D80NK
The E18-D80NK infrared obstruction sensor uses infrared light to determine the distance to the obstruction for fast response and very little interference due to the use of separate frequency infrared receiving and emitting eyes The E18-D80NK infrared sensor can adjust the desired alarm distance through the rheostat
4 Output Type NPN (voltage customizable)
4.1.4 Sensor Fusion: Accelerometer, Gyroscope, Magnetometer
The MPU9250 is an Inertial Measurement Unit sensor: A 9-axis motion sensor consisting of three-axis accelerometers, three-axis gyroscopes, and three-axis magnetometers
CHAPTER IV: ELECTRICAL-ELECTRONIC DESIGN
Construction of the MPU9250 sensor:
MPU9250 comprises three different types of sensors: accelerometers, gyroscopes, and magnetometers, each measuring on three spatial axes: X, Y, and Z
Measures Acceleration: The MPU9250 accelerometer measures acceleration along the three axes, allowing the detection of changes in position and velocity
Applications: Used to measure tilt and orientation in the device's space
Measures Angular Velocity: This sensor measures angular velocity along the three spatial axes, aiding in determining and tracking rotational motion
Applications: Critical for maintaining orientation and balance, especially in robot control and navigation
Measures Magnetic Field: The magnetometer measures the magnetic field around the three spatial axes, providing information about direction and orientation relative to the Earth's magnetic field
Applications: Often used to determine North-South direction, improving the device's navigation capabilities
Provides accurate information about orientation, acceleration, and the surrounding magnetic field
Integrates multiple-axis sensors into a single chip
Measures and analyzes the robot's movements, helping improve navigation accuracy Assists in maintaining balance and adjusting the direction of movement
ADC for gyroscope Three ADC 16-bit
ADC for accelerometer Three ADC 16-bit
ADC for magnetometer Three ADC 16-bit
Gyroscope full-scale range ±250, ±500, ±1000, and ±2000°/sec (dps) Accelerometer full-scale range ±2g, ±4g, ±8g, and ±16g
CHAPTER IV: ELECTRICAL-ELECTRONIC DESIGN
Battery Capacity Sensor monitors the remaining energy level of the battery, ensuring the robot's efficient operation
Monitors voltage and current to calculate the remaining battery capacity
Alerts when the battery is low and needs charging
Ensures uninterrupted operation of the robot by preventing it from stopping midway due to low battery
Automatically returns to the charging station when necessary, optimizing operational time When integrated into vacuuming robots, these sensors enable autonomous operation and enhance interaction and responsiveness to the surrounding environment, creating an intelligent and efficient robot system.
Microcontrollers Motor Control Modules and Communication Standards
Microcontroller theory: Raspberry Pi and STM32
In robotic vacuum cleaners, microcontrollers such as the Raspberry Pi and STM32 are essential in processing control signals, collecting sensor data, and managing communication
The Raspberry Pi 4 with 4GB of RAM is a popular choice for projects as it balances performance, size, and price The Raspberry Pi 4 supports higher RAM capacity, and the CPU, GPU, and GPIO performance are upgraded to much higher than its predecessor, the Raspberry Pi 3 Model B+ while retaining the same compatibility and power consumption as the original
CHAPTER IV: ELECTRICAL-ELECTRONIC DESIGN
Processor Broadcom BCM2711, Quad core Cortex-
Connection 2.4 GHz and 5.0 GHz IEEE 802.11ac wireless, Bluetooth 5.0, BLE Gigabit Ethernet
2 × micro-HDMI® ports (up to 4kp60 supported)
2-lane MIPI DSI display port 2-lane MIPI CSI camera port 4-pole stereo audio and composite video port
GPIO Raspberry Pi standard 40 pin GPIO header
(fully backwards compatible with previous boards)
Video & Audio H.265 (4kp60 decode), H264 (1080p60 decode, 1080p30 encode) OpenGL ES 3.1, Vulkan 1.0
SD Card Micro-SD card slot for loading operating system and data storage
Power supply 5V DC via USB-C connector (minimum
3A*) 5V DC via GPIO header (minimum 3A*) Power over Ethernet (PoE) enabled (requires separate PoE HAT)
Operating temperature Operating temperature: 0 – 50 degrees C ambient
Table 4.5: Specifications of Raspberry Pi 4 Model B 4GB RAM
The Raspberry Pi 4 Model Pi 4GB is an embedded computer with many strengths for making robotic vacuum cleaners Its strengths can be mentioned as:
CHAPTER IV: ELECTRICAL-ELECTRONIC DESIGN
High Performance: The Raspberry Pi 4 has a more powerful processor than previous versions, making it capable of handling the complex computational tasks required for navigating and processing the robotic vacuum's sensor data
Large RAM: With 4GB of RAM, the Raspberry Pi 4 provides enough memory to run multitasking applications and handle tasks related to artificial intelligence and machine learning, essential for improving the robot's automation and navigation
Robust Network Connectivity: The Raspberry Pi 4 supports dual-band Wi-Fi and Bluetooth
5.0, making connecting and transferring data between the robot and other devices or the central network quick and stable
Diverse Connectors: It provides a variety of connectors, including USB 3.0, USB 2.0,
Ethernet, HDMI, and GPIO ports, allowing the robot to connect easily to various sensors and peripherals
Comprehensive Software Support: The Raspberry Pi has a strong community of users and developers, along with a rich software ecosystem, from the operating system (Raspbian and other variants) to the software library for robots (ROS, OpenCV, TensorFlow, etc.)
Compact Size: The Raspberry Pi 4's compact size makes it easy to integrate into robotic vacuum designs without adding too much mass or to the overall size of the robot
Affordable: The Raspberry Pi 4 offers an economical solution at a reasonable cost compared to other embedded computers with the same performance, making it a good choice for projects with limited budgets
Customization and Expansion: GPIO ports allow for easy customization and expansion of robot functions, from motor control to sensor reading data
With these advantages, Raspberry Pi 4 becomes an ideal choice for developing and deploying intelligent robotic vacuum cleaner solutions that are highly automated and interact well with the environment
The STM32F103C8T6 is a microcontroller (MCU) manufactured by STMicroelectronics, part of the STM32 product line It is part of the STM32F1 series built on the 32-bit arm Cortex-M3 RISC architecture and designed for applications that balance performance, low energy consumption, and cost
CHAPTER IV: ELECTRICAL-ELECTRONIC DESIGN
Processor Arm® 32-bit Cortex®-M3 CPU core
72 MHz maximum frequency, 1.25 DMIPS/MHz (Dhrystone 2.1) performance at 0 wait state memory access Single-cycle multiplication and hardware division
Memories 64 or 128 Kbytes of Flash memory
20 Kbytes of SRAM Connection Up to 2 I2C, up to 3 USART, up to 2 SPI,
CAN interface, USB 2.0 full-speed
GPIO Up to 80 I/O ports, all mappable on 16 ext interrupt vectors, almost all 5 V-tolerant Power 2.0 to 3.6 V application supply and I/Os,
Clock, reset and supply management 4 to 16 MHz crystal oscillator, Internal 8
MHz RC, Internal 40 kHz RC, PLL for CPU clock, 32 kHz osc for RTC with calibration
CHAPTER IV: ELECTRICAL-ELECTRONIC DESIGN
2x 12-bit, 1 às ADCs (up to 16 channels),
0 to 3.6 V conversion range, Dual-sample and hold, Temperature sensor
Timers Three 16-bit timers, 16-bit motor control
PWM timer, two watchdog timers, SysTick timer
Low-power modes Sleep, Stop and Standby modes, VBAT supply for RTC and backup registers Debug mode Serial wire debug (SWD), JTAG interfaces
The task of the STM32 F103C8T6 in this project is to control the robot's two-wheel motors, controlling the robot to move according to the set of PIDs For this purpose, the STM32 F103C8T6 is a reasonable choice with a flexible, high-performance compact size compared to the cost to meet the needs fully In summary, the STM32 F103C8T6 is an excellent solution for making a motor control device
Depending on the specific product code, the BTS driver (sometimes referred to as BTS7960, BTS7805, etc.) is a robust motor control circuit designed to control high-current direct current (DC) motors
Theoretical Basis of BTS Driver:
The BTS driver allows for both direction and speed control of DC motors Here are the key points to note about the BTS driver:
The BTS driver reverses current through the motor, enabling the motor to rotate in both directions This is typically achieved through a circuit configuration such as an H-bridge, allowing for recent reversal
It uses pulse-width modulation (PWM) to adjust the motor speed PWM adjusts the ratio of the on-time to the off-time (duty cycle) within a cycle, thereby controlling the motor speed
The BTS driver is designed to handle high currents, often up to tens of amps, suitable for applications requiring high torque
CHAPTER IV: ELECTRICAL-ELECTRONIC DESIGN
It uses MOSFETs or BJTs to control the current through the motor
MOSFETs are often preferred in high-power applications due to their fast switching speed and high gate impedance
BJTs can also be used, especially in applications requiring large currents at low voltages
A logic signal, typically from a microcontroller, controls the transistors This signal determines when and how the transistors are opened or closed, thereby preventing the current through the motor
Due to handling high currents, BTS drivers typically require an efficient cooling system to prevent overheating, which may include heatsinks and cooling fans
Protection measures such as current-limiting resistors, fuses, and overload protection circuits are often integrated to prevent damage from overload or circuit faults
The user interface, typically through an electronic circuit board, allows interaction with the driver, including setting operating parameters and reading feedback information
The BTS driver is a robust and flexible solution for controlling DC motors, especially in applications requiring high torque
Concept SPI enables full-duplex data exchange between a master device and multiple slave devices It uses four connection wires: MISO, MOSI, SS, and CLK
I2C (Inter-Integrated Circuit) is a synchronous serial communication protocol developed by Philips Semiconductors, used to transmit and receive data between integrated circuits (ICs) using only two signal lines
UART (Universal Asynchronous Receiver-Transmitter) or asynchronous serial communication is one of the oldest and most straightforward forms of digital communication between devices
CHAPTER IV: ELECTRICAL-ELECTRONIC DESIGN
SDA (data) and SCL (clock) It supports multiple devices connected to one master
UART uses two connection wires: Tx (transmit) and Rx (receive) It does not have a separate clock signal
4 wires The number of wires increases as the number of devices increases number of wires
(1 transmit wire và 1 receive wire)
Synchronous transmission (Speed approximately 10Mbps – 20Mbps)
Half duplex (Multiple master and multiple slaves)
Full duplex (master-slave agnostic)
Base on circuit Synchronous transmission (Supports speeds of 100kbps, 400kbps, 3.4Mbps, 1Mbps)
Asynchronous transmission (Customizable transmission, maximum around 460kbps)
SD card, display screen, etc
Up to 127 devices Communication via addressing
Application Sensors, display modules, memory devices
Remove errors, update firmware, etc.
Table 4.7: Communication protocol: SPI, I2C, UART
CHAPTER IV: ELECTRICAL-ELECTRONIC DESIGN
In this project, we use the I2C communication standard for MPU9250 and the UART communication standard to communicate between Raspberry Pi and STM32.
Power Supply Selection for the Vacuum Cleaner Robot
For the robot to operate in a mobile manner, it is necessary to provide power for it to operate Unlike fixed robot models that use AC power, with mobile robots that need flexibility, DC power is the most likely option
Since the robot needs a 12VDC power supply, batteries and accumulators are the two best options However, it is also necessary to calculate the load capacity because these two energy sources have different capacities and weights, which may affect the load capacity of the robot
Figure 4.7: Some common battery models
To balance the robot weight factor and issues related to the robot's ability to operate, such as battery capacity load We decided to use closed-cell Li-ion (Lithium-ion) batteries
The requirement is that the robot must be able to operate for 30 minutes in each cleaning cycle and list the overview of power consumption devices on the robot as follows:
JGB37-520 DC Servo Motor: The no-load operating current is 120mA, and the maximum load current is 1A Assuming the robot operates with a maximum load current of 1A, the power of the 2 Servo motors is:
CHAPTER IV: ELECTRICAL-ELECTRONIC DESIGN
Vacuuming motor: The suction motor selection power is 110W to ensure maximum floor surface cleaning
Raspberry Pi 4: About 7W (for safety)
Jetson Nano: Average power consumption is about 5-10 watts, depending on the load and configuration To be on the safe side, let us assume 10 watts
Logitech Camera: The camera's power consumption is usually not high, but we can assume about 2.5 watts for an estimate
7-inch screen: Assume consumption of about 10W
Calculate the required capacity using the battery capacity formula (Ah) = (Total Power/Voltage) * Operating Time
Assuming the desired operating time is 30 minutes = 0.5 hours, and the voltage of the battery source is 12V, we calculate the battery capacity: ( 172
12 ∗ 0.5) ≈ 7.166667 Ah The battery capacity required to meet the operational requirements for the robot within 30 minutes is approximately 7.2Ah We selected 12V-8Ah Lishen Lithium battery blocks and 3S-12.6V batteries with discharge currents up to 40a With this power block, the robot can maintain operation for more than 30 minutes.
Charger Design
Objective: Create an additional option to charge the robot's battery using a charging dock with an adapter input 220V output 12VDC The charging station will have two contacts connected to 2 contacts on the robot
CHAPTER IV: ELECTRICAL-ELECTRONIC DESIGN
Figure 4.9: Initial design of charging dock system
Problem: After completing the contact charger, we will have two options to charge, but when the power is supplied from the charging hole position – POWER A, the current will run to the charging circuit, and then there will also be current flowing to POWER B – the position of 2 contacts on the robot This is very dangerous when the robot is placed under the floor when charging, which can cause a fire
Solution: To prevent the current from flowing from POWER A to POWER B when charging, we use a rectifier diode to prevent the current from flowing to POWER B
Figure 4.10: Final design of charging dock system
CHAPTER IV: ELECTRICAL-ELECTRONIC DESIGN
With this design, when the robot is charged from the source of the current contact, it will run to the charging circuit and when the current flows to POWER A, it will not cause danger because POWER A is a fixed charging point.
Connection diagram
The robot's electrical system includes three components: a power block, a control block, and a sensor and actuator block Below is a block diagram describing the connection between those three blocks
Figure 4.11: Electronic system block diagram
Below is a drawing of all the electrical devices in the robot and how to connect items:
CHAPTER IV: ELECTRICAL-ELECTRONIC DESIGN
A 5mm thickness mica base is the central part that places all the robot's hardware The two motors and wheels are placed symmetrically These are the robot's two main driving motors, and a guide wheel is placed in front of the robot Other components, such as batteries, BTS and Raspberry, are placed immediately behind the guide wheel in a horizontal row The primary purpose of identifying the elements to balance the weight evenly on the whole robot is to avoid over-positioning to one side, causing pressure during the robot's operation
The LIDAR unit is set high so that LIDAR can scan the map and simulate the robot's path
CHAPTER IV: ELECTRICAL-ELECTRONIC DESIGN
Method for Determining PID Parameters
We have chosen the method to determine PID parameters for the motor by measuring and sampling the actual speed of the robot over a period of time 't', Through this process, we deduced the transfer function of the motor according to the first-order inertial system model
To simplify motor speed control, we implemented a PI controller to optimize the motor control process
With the physical robot model, we operated two motors at a voltage of 6V-50% for 10 seconds with a sampling time of 100ms, the result is a graph of the response for the two motors when not applied PID control as follows:
Figure 4.15: Speed response of Left motor with 50% PWM
Figure 4.16: Speed response of Right motor with 50% PWM
CHAPTER IV: ELECTRICAL-ELECTRONIC DESIGN
Assessment: The transient response of the two motors has no overshoot, fast response time This characteristic allows us to determine the transfer function according to the first-order inertial system
The first-order inertial system model has no inactivity delay, the transfer function of the model has the form as:
𝑇𝑠 + 1 (4.1) The characteristic of a first-order inertial system is that the transient response has no overshoot In there:
• Time constant (T): This is the time when the response of the first-order inertial link reaches 63.2% of the set value
• Amplification coefficient (K): This is the ratio between the value reaching a steady state at the output and the signal value at the input
𝜀) 𝑤𝑖𝑡ℎ 𝜀 = 0.02 (𝑠𝑡𝑎𝑛𝑑𝑎𝑟𝑑 2%) 𝑜𝑟 𝜀 = 0.05 (𝑠𝑡𝑎𝑛𝑑𝑎𝑟𝑑 5%) Based on the above characteristics and the response chart of the system, we find the parameters K and T to substitute into the above transfer function equation
Find the transfer function of the right motor:
With the velocity sampling chart, we can calculate the average speed of the right motor when reaching a steady state with a voltage of 6V, which is 59.85 RPM
Speed when the engine reaches 63.2% of the set value: 59.85 x 63.2% = 37.82 RPM
The time when the response line reaches 63.2% of the established value:
So, the transfer function of the motor on the right is obtained:
Find the transfer function of the left motor:
With the velocity sampling chart, we can calculate the average speed of the left motor when reaching a steady state with a voltage of 6V, which is 58.97 RPM
Speed when the engine reaches 63.2% of the set value: 58.97 x 63.2% = 37.2 RPM
The time when the response line reaches 63.2% of the established value: T 0.015319(s)
CHAPTER IV: ELECTRICAL-ELECTRONIC DESIGN
So, the transfer function of the motor on the left is obtained:
For the first-order inertial system model, the transfer function of the PI controller has the form:
In which: 𝑇 𝑐 is the desired response time of the system., if 𝑇 𝑐 is smaller, the response time is faster, but the possibility of overshoot is high We can choose 𝑇 𝑐 to approximate the constant value T Therefore, select 𝑇 𝑐 = 0.02
• Calculate PID parameters for the right motor:
The transfer function of the right motor has K = 9.881 and T = 0.016885, from which the parameters 𝐾 𝑐 and 𝑇 𝑖 can be calculated as follows:
From the transfer function of the controller, the values of 𝐾 𝑝 and 𝐾 𝑖 can be deduced:
0.016885 = 59.22 The PID parameters for the right motor with PI controller are
• Calculate PID parameters for the left motor:
The transfer function of the left motor has K = 9.667 and T = 0.015319, from which the parameters 𝐾 𝑐 and 𝑇 𝑖 can be calculated as follows:
From the transfer function of the controller, the values of 𝐾 𝑝 and 𝐾 𝑖 can be deduced:
CHAPTER IV: ELECTRICAL-ELECTRONIC DESIGN
0.015319= 65.27 The PID parameters for the left motor with PI controller are
We used the found PID parameters to write a control program for 2 motors and resampled again when running the robot in reality at a set speed of 40 RPM We obtained the following graphs:
Figure 4.17: Speed response of Right motor with PID at desired speed is 40 RPM
CHAPTER IV: ELECTRICAL-ELECTRONIC DESIGN
Figure 4.18: Speed response of Left motor with PID at desired speed is 40 RPM
Typical parameters of two engines:
Table 4.8: Typical parameters describe motor performance
Conclusion: Upon employing the 𝐾 𝑝 and 𝐾 𝑖 parameters for the PI controller, the resulting data produced two motor speed response graphs at a set velocity of 40 RPM This shows that both motors exhibited a swift response time and minimal overshoot (2% - 5%) From these results, it is feasible to implement the determined PID parameters within the robotic system for the thesis project.
CONTROL ALGORITHMS DESIGN
Introduction to the Robot Operating System (ROS) and Navigation Stack
[11] ROS is an acronym for "Robot Operating System" and is an open-source framework initially developed by Willow Garage - a robotics technology company in 2007 The project was later taken over and further developed by the Open Source Robotics Foundation (OSRF), now known as Open Robotics
ROS is an open-source, meta-operating system for robots It provides the services we expect from an operating system, including hardware abstraction, low-level device control, implementation of commonly-used functionality, message-passing between processes, and package management It also provides tools and libraries for obtaining, building, writing, and running code across multiple computers
Initially, the goal of ROS was to create a flexible and user-friendly software development environment for robotics, supporting the research and development community The advent of ROS marked a significant milestone in robotics, enabling source code sharing and reuse and facilitating collaboration and innovation
ROS has three primary sides:
• The ROS Filesystem manages and organizes ROS's file and directory structure, including package structures and naming conventions
• The ROS Computation Graph facilitates communication between system components through a computational graph, where nodes can send and receive data via topics, services, and actions
• The ROS Community consists of users, developers, and supporters of ROS This community plays a crucial role in sharing knowledge, addressing issues, and fostering the development of a stronger community over time
Software Framework and Integrated Tools:
[12] ROS is the abbreviation for Robot Operating System, so it would be safe to say that it is an operating system However, ROS is not an operating system in the traditional sense Instead, ROS is more accurately described as a framework known as a Meta-Operating System, comprising a collection of tools, libraries, and conventions to aid in software development for robots running on an existing operating system Installing an operating system such as Ubuntu to operate ROS is necessary.
Figure 5.5: Operating ROS Node and communication:
ROS operates based on a distributed model, with independent processes (nodes) communicating with each other through topics, services, and actions
Functionality is programmed as executable units called nodes, each operating independently and systematically exchanging data
Multiple processes with similar functionality are packaged and managed so users can easily use, share, modify, and develop them later
In ROS, nodes can publish or subscribe to topics for asynchronous communication Services provide a request-response communication pattern suitable for tasks requiring immediate responses
ROS is designed to be flexible and hardware-agnostic, allowing software development without being tied to specific robots
ROS encourages code reuse through packages and libraries Packages can contain nodes, libraries, data, and documentation, facilitating easy source code sharing and reuse
An essential part of ROS is the support from the community Developers from all over the world contribute to packages, fostering collaboration and knowledge sharing
ROS provides simulation tools (such as Gazebo) and visualization tools (such as RViz) to aid in developing and testing robots in a virtual environment before deployment on real hardware
With continuous development, ROS continues to adapt and update to meet the increasing demands of the robotics field The ROS 2 version, with improvements in performance and security, represents a significant step forward in the evolution of ROS
ROS has become and continues to be an essential part of the robotics domain, serving as a De facto standard (A standard or rule applied in practice based on specific situations rather than by formal regulation or legality) for robot software development Its flexibility, scalability, and strong support community make ROS an indispensable tool for researchers and robotic engineers
[13] Navigation Stack is a set of packages and tools in ROS designed to help the robot position itself (amcl for spatial positioning), plan its path (move_base for path planning and obstacle avoidance), and navigate safely in its environment The Navigation Stack uses maps, sensors,
76 and algorithms to determine the robot's current position and generate commands to move toward the target
The structure of the ROS Navigation Stack is shown in the diagram above with the components:
Goal: The user will locate the goal through the Rviz graphical user interface or by sending a message to the topic 'move_base_simple/goal'
Static Map: it can be called Map Server, a map created from the gmapping package, static maps are 2D maps depicting the robot's workspace and fixed obstacles
Sensor Data: Collection of input data collected from all sensors present on the robot Global Costmap: This dynamic version of the static map updates new obstacle information from sensor data
Global Planner: Build a route from the current location to the target using a static map, creating a Global Path that does not collide with known obstacles
Global Path: A sequence of points or a continuous path the robot must follow to reach the final target
Local Constmap: Focus on monitoring the area around the robot and constantly updating to reflect the nearest environment
Local Planner: Uses the Global Path as a guide and integrates information from the sensor to create a specific trajectory capable of reacting quickly to dynamic environments
Trajectory: The specific path that the Local Planner creates based on information from the Local Costmap to shape the robot's movement
In the ROS Navigation Stack system, environmental information and obstructions are managed through two types of cost maps: Global cost maps and local cost maps Global cost
77 maps support large-scale path planning, while local cost maps play a role in dynamically adjusting paths and avoiding obstacles at close range
For the cost map to always be up to date and reflect the actual situation, it needs to be set up to receive and integrate data from sensors through the ROS theme, allowing for the addition or removal of obstruction information Sensors play an important role in marking and updating obstacle information on the map
The cost map encodes obstacle information using a scale of 0 to 255, divided into three ranges to represent the three different states of each cell on the map: empty, occupied, or unknown This helps to determine the location and state of obstructions accurately
Figure 5.7: Cost map in Rviz
As the image 5.7 illustrates, the pink boxes mark the presence of obstructions in the environment At the same time, the blue area around them represents the extended sphere of influence through the 'Inflation' process This process creates a safe 'buffer' around the obstacle, ensuring that the robot does not get too close and run the risk of a collision During the path planning process, the robot must avoid entering the pink tiles so as not to collide with obstacles and to keep a safe distance from the blue tiles, protecting the robot's centre from entering the area of a potential collision
The cost map is updated periodically based on the sensor's data, ensuring the information is always new and accurate ROS uses tf transformations to accurately integrate sensor data into the map during the update process
[10] AMCL (Adaptive Monte Carlo Localization) is a technique used to determine the position of robots on a two-dimensional map by applying the Monte Carlo algorithm, also known as particle filter In this technique, each particle simulates a possible position of the robot, and this collection of particles produces a probability distribution of the potential position of the robot
At the start, particles are randomly distributed in the simulation space, assuming the robot can be located anywhere As the robot moves, the positions of the particles are also updated to reflect the robot's new possible states Bayesian filters continuously improve position estimation by converging particles to the robot's position
Control Algorithms
The control goal of the vacuum cleaner robot is to move and clean the floor efficiently and safely automatically Be able to locate the position of the robot in space
Two requirements are set for our vacuum cleaner robot:
• Clean the entire floor area, ensuring no missing areas in the workspace
• Effectively removes dirt, litter, and debris from the floor
• Locate the robot itself and the charging station
• Fast and energy-efficient operation
• Avoid colliding with obstacles such as furniture, stairs, wires, etc
• Does not pose a danger to people, pets, or furniture in the home
To achieve that goal, the robot needs to be equipped with the appropriate control algorithms for each function:
Movement control: The movement control algorithm helps the robot move in a predefined trajectory, avoiding collisions with obstacles and efficiently moving between areas to be cleaned
Vacuum cleaner control: The vacuum control algorithm helps the robot turn the suction motor and brush motor on and off to optimize cleaning efficiency
Process sensor data: The sensor control algorithm helps the robot process information from the sensors to recognize its surroundings, determine its position, and make appropriate movement decisions
Mapping and positioning: Mapping and positioning algorithms help robots map the area to be cleaned and determine their position in the map to move more efficiently
5.2.2 Programming Process for Our Vacuum Cleaner Robot
To create the first robot vacuum, we must control how it moves in the desired direction and speed
Problem: We use two microcontrollers with two different tasks: Raspberry is responsible for launching ROS to receive data from sensors, and STM32 is responsible for receiving speed commands from Raspberry to control engine speed and send rotary encoder to Raspberry
Solution: We use UART communication for data transmission between two devices
When STM32 receives Raspberry's velocity message, we will save all received bits into a local variable Next, we check the Start bit If there is a start signal every 100ms, we will read the encoder data once, which will be sent back to the Raspberry Calculate the PID at the desired velocity received from the Raspberry After the PID calculation is complete, the output from the PID will be sent to the engine This process is continuously repeated until a stop signal is sent
Figure 5.13: Drive motor control block diagram
Phase 2: Self-moving to create a map
This is the first stage for the robot to get data about the surrounding environment This data is used to create the map server file The map server is used for future navigation
Problem : The navigation package is not eligible for use at this stage We need an algorithm to control the robot's movement to ensure it does not collide and can move around space
Solution: We use sensors mounted around the robot to detect obstructions from which to make a travel plan
When the signal starts, the robot moves forward, moving data from the sent lidar and reproducing the map When an obstruction is detected ahead, the robot pauses and then uses data from two ultrasonic sensors on either side of the robot to compare which side has a greater distance to the nearest obstruction for the robot to move in that direction After the robot rotates at a 90-degree angle in the specified direction, it will continue going straight When the falling sensor has a warning signal that the robot will handle the same in case of an obstacle ahead, the robot first pauses, checks the obstacle on either side and then moves The user controls the process of reconstructing the map When it is noticed that the map has been entirely created, the user sends a signal to end the robot's movement The map is then saved as a yaml file
Figure 5.14: Flow chart of sensor signal processing algorithm
Navigation in ROS (Robot Operating System) is an important part that helps robots automatically move from one location to another safely and efficiently
Navigation Stack is a concept of mobility for mobile robots The robot uses data from sensors and calculations to output velocity instructions for the control block to receive and control the robot motor
Navigation systems in ROS include a range of software packages that provide robots with localization, path planning, moving, and obstacle avoidance capabilities
Problem : We must declare tf (Transform) transformations and use sensor data for the Navigation package Besides, the Navigation Stack package must be configured to optimize our robot's shape, configuration and dynamics Also, we use ROS on Rasberry and STM32 to control the motor Therefore, we must create a communication stream from ROS on Rasberry to STM32 and vice versa
Export the URDF file to create a robot configuration from a drawing on Inventor We use Fusion 360 software to combine the details from the Inventor drawing and switch to the URDF format
Proceed to configure the parameters on the configuration files according to the robot's format and the moving target
The diff_drive_controller/DiffDriveController package is a controller in ROS used to control a differential drive robot This controller is designed to convert control signals from ROS topics into control signals specific to the motors or wheels of the robot Its primary function is to receive information about the desired speed from ROS topics or other nodes and convert it into control signals specific to the robot's motor or wheels
Use the UART communication protocol to communicate between Raspberry Pi 4 and STM32 The encoder data of the two-wheel motors is read from STM32 and then sent to Raspberry Pi
4 by UART After receiving the engine's encoder data on Raspberry, we create a "chatter" node to publish the Encoder data to ROS After the data is published, we use the read() function to read the data and assign it to the joint_position array The joint_position array contains two values: the rotation angle values of the two motors
After calculating the velocity, the DiffDriveController package sends a velocity command of the left and right wheel velocity These two velocities are received by the write() function and then sent to STM32 by a Message This message consists of an array of 14 char elements:
• Message[0]: Rotation angle mark (+ or -)
• Message[1] - Message[3]: Rotation angle (Read from MPU9250 sensor)
• Message[6]: Compare the width of two sides of the robot
• Message[7] - Message[9]: Left wheel speed command
• Message[10] - Message[12]: Right wheel speed command
Phase 4: Planning the robot's path
At the end of stage 2, the robot can move on the map point by point These points are selected by the user on the Rviz interface The migration process starts from the robot's current position to the user's designated point After reaching the point where the robot will stop, the user will wait for the next point selected
At this stage, we want the robot to automatically move along a complete route After the robot completes the route, it must ensure that the entire space on the robot map has passed and minimize duplication of the areas that have passed
RESULTS - EXPERIMENT - EVALUATION
Hardware
We have completed the design of the robot frame We have entirely assembled the details for the vacuum cleaner robot
Figure 6.1: Overview of the robot's appearance
We designed a method to securely hold the trash container to the robot vacuum using magnets and a filter to prevent debris from escaping
CHAPTER VI: RESULTS - EXPERIMENT – EVALUATION
CHAPTER VI: RESULTS - EXPERIMENT – EVALUATION
The charging station and contact points on the robot we designed can charge our robot.
Figure 6.3: The robot is charging on the charging station
The brush system and suction motor operate stably, the sweeping and vacuuming process is carried out successfully, and the trash is sucked and stored in the trash container Easily remove and install the trash container and quickly replace the filter on the trash container.
Software
We have completed the requirement to control the motor using the PID control algorithm on STM32F103C8T6 The robot moves smoothly The accuracy of the control algorithm is shown through the response speed of the two motors measured in Matlab The robot's straight- line movement has almost no errors The robot's floor surface cleaning process was completed with two moving wheel motors, a suction motor, and a brush motor system
CHAPTER VI: RESULTS - EXPERIMENT – EVALUATION
Figure 6.4: Vacuuming process on the floor
Phase 2: Self-moving to create a map
Reading data from the sensors was performed successfully on the Raspberry, and the yaw rotation angle value of the MPU9250 sensor was read relatively accurately using the register on the Raspberry without using the available library
The sensor data was successfully compiled and sent to STM32 using UART STM32 receives data and reads data from Raspberry successfully STM32 successfully controls the motor by speed command
The robot proactively avoids obstacles using data from successful sensors The map has been built and stored successfully
CHAPTER VI: RESULTS - EXPERIMENT – EVALUATION
Successfully scanned and saved the active space map, the map was used as the map server for navigation in Phase 3
We have successfully created the URDF file to proceed with the robot configuration steps Modified completes the parameters to help the Navigation package work on the robot
Create topics and communicate UART to exchange information between ROS - Raspberry - and STM
Read encoder data sent from STM32 and use that data to provide the Navigation package RPLidar was launched successfully in the Navigation process
Figure 6.6: The connection of nodes on Ros
CHAPTER VI: RESULTS - EXPERIMENT – EVALUATION
Figure 6.7: Point to point moving robot
When the user selects a point to move on Rviz, the robot successfully moves from point to point
Phase 4: Plan the robot's path
The robot automatically locates the exact starting position
The points are successfully plotted on the Rviz interface
CHAPTER VI: RESULTS - EXPERIMENT – EVALUATION
Figure 6.8: Moving points plotted on Rviz
The robot starts from the charging station location and after completing the operation process will return to the original charging station location via the shortest path
CHAPTER VI: RESULTS - EXPERIMENT – EVALUATION
CHAPTER VI: RESULTS - EXPERIMENT – EVALUATION
Table 6.1: Robot operates in the room
The robot avoids static and dynamic obstacles during movement
We tested obstacle avoidance by placing boxes on the floor and observing the robot's movements
CHAPTER VI: RESULTS - EXPERIMENT – EVALUATION
We noticed that when reaching the obstacle location, the robot will try to change the direction of movement to ensure it does not collide with the boxes
We trained a model capable of recognizing and classifying three essential objects: Charging station, carpet and wire
CHAPTER VI: RESULTS - EXPERIMENT – EVALUATION
Figure 6.10: Identifying the charging station
However, applying this AI model to our robot has not been possible for many reasons We present this limitation in the following section.
CONCLUSION – DEVELOPMENT DIRECTIONS
Conclusion
Achievements Obtained Existing Limitations and Barriers
Successfully designed and processed robot hardware
The robot size is still relatively large
Successfully controlled robot motors Noise from the suction motor does exist
Modified and used ROS Navigation package
The object recognition model is still limited and cannot recognize a variety of objects
There is a communication plan between
The rotation angle read by MPU9250 has errors when operating
Develop a path-planning algorithm for robots
The robot cannot automatically charge when returning to the charging station Design and use of charging stations There is no on-screen user interface yet
Research and use image processing to resolve extraordinary obstacles
Lidar signal interference occurs if the suction motor is turned on
Briefly explain the reasons for the above limitations : This is the first time we have researched and manufactured a vacuum cleaner robot to ensure that all devices can be placed inside the robot and are easily wired We must build a robot bigger than the vacuum cleaners currently on the market We reuse the suction motor of a handheld vacuum cleaner so the noise still exists The robot's inability to charge itself after moving to the charging station is due to the motor and data from the MPU9250 sensor Regarding the engine, we noticed a slippage phenomenon in the engine shaft An alternative replacement motor solution has been proposed to solve the problem of shaft slippage However, we let the robot stop at the charging station to save costs
From the limitations mentioned above, we propose the development direction for our robot vacuum cleaner as follows:
1 Minimize errors in the encoder and rotation angle sensor data
2 Design the user interface on the robot's screen
3 Reduce the robot's size to move into tight locations
4 Design a silencer for the suction motor
5 Develop smartphone software for remote robot control and further enhancements in robot image processing and AI
[1] Robot definitions at ISO – IFR (International Federation of Robotics), https://ifr.org/standardisation Accessed 11 November 2023
[2] Standard Handbook of Industrial Automation - Douglas M Considine (Registered Professional Engineer (California) in Control Engineering), Glenn D Considine (2012) - Springer New York, NY
[3] "Robot" Merriam-Webster.com, Merriam-Webster, https://www.merriam- webster.com/dictionary/robot Accessed 11 November 2023
[4] “Robot” Wikipedia.org, Wikipedia, Robot - Wikipedia Accessed 11 November 2023
[5] Mobile Robotics – Margaret Rouse (2017) – Techopedia, What is Mobile Robotics? - Definition from Techopedia Accessed 11 November 2023
[6] “Robotic vacuum cleaner” Wikipedia.org, Wikipedia, Robotic vacuum cleaner -
[7] “A Brief History of the Robot Vacuum Cleaner” – Vacuum Wars (2023), A Brief
History of the Robot Vacuum Cleaner - Vacuum Wars Accessed 11 November 2023
[8] “DC Servo JGB37-520 DC Geared Motor” – Hshop, https://hshop.vn/products/dong-co- dc-servo-giamtoc-ga37-v1 Accessed 11 November 2023
[9] “Calculating the design of the mechanical engine system (Book 1)” – Trinh Chat - Le Van Uyen (2006) - Education Publishing House, 19
[10] “Tabular difference between UART, SPI and I2C” – Shivam Maheshwari (2019), Tabular difference between UART, SPI, and I2C - CSE247 (thecse247.blogspot.com) Accessed 11 November 2023
[11] ROS Robot programming – YoonSeok Pyo, HanCheol Cho, RyuWoon Jung,
TaeHoon Lim (2017) - ROBOTIS Co., Ltd., 10, 357, 332
[12] “Robot Operating System (ROS) Explained!” – Alex Wang (2022), (15) Robot
Operating System (ROS) Explained! | LinkedIn Accessed 11 November 2023
[13] “What are the most effective ways to use ROS navigation stack?” – LinkedIn community, What are the most effective ways to use ROS navigation stack? (linkedin.com) Accessed 11 November 2023
[14] “Dijkstra’s Algorithm” – GeeksforGeeks (2024), What is Dijkstra’s Algorithm? | Introduction to Dijkstra's Shortest Path Algorithm - GeeksforGeeks Accessed 11 February
[15] “A* Search Algorithm” – GeeksforGeeks (2024), A* Search Algorithm -
[16] “Diff_drive_controller” – ROS (2024), Diff_Drive_Controller - Ros_UserDoc Accessed 11 February 2024
[17] “SLAM (Simultaneous Localization and Mapping)” – MathWorks (2024), SLAM (Simultaneous Localization and Mapping)” Accessed 11 February 2024.