Miniature Mobile Robot Using Only One Tilted Vibration Motor

In miniature mobile robots, reducing the number of actuators can effectively reduce the size and weight of the robot. However, it is challenging to design a robot with as few actuators as possible without losing good motion performance. This work presented a simple-structured low-cost miniature mobile robot. It is driven by only a single tilted motor and yet is fully capable of being controlled to move forward and turn left or right on the ground. Based on the stick–slip mechanism, the robot’s motion is achieved by interplaying between the centrifugal force generated by the vibration motor tilted on the robot and the friction force of the robot. The robot’s speed can be controlled by regulating the magnitude and the period of the applied voltage. Finally, the robot can translate and rotate on the ground and follow various arbitrary paths. The prototype weighs only 11.15 g, costs $6.35, and is 20 mm in diameter and 25 mm in height. The proposed system is experimentally verified and demonstrates the controllability of the robot by the movement along a straight line, a circle, and more arbitrary paths.


Introduction
Robots are increasingly being integrated into applications, such as industrial automation, surgical operations, and hazardous environments [1][2][3][4][5][6][7][8][9][10]. Various types of mobile robots with different dimensions are designed [11][12][13][14][15][16][17][18][19][20]. Among them, miniature mobile robots with dimensions of a few centimeters can enter narrow spaces inaccessible to humans for specific tasks [21][22][23]. Benefited by their small size and light weight, they can be easily transported and deployed to restricted locations. Additionally, constrained by size and weight, most of them are deliberately designed to be underactuated to reduce the number of components and energy consumption [24][25][26], and various actuation methods and transmission strategies have been proposed and applied. RoACH robots driven by shape memory alloy coils can move with hexagonal legs and have the capacity to overcome obstacles [20,27]. The HAMR robot consists of multiple piezoelectric actuators driving six legs made of flexure-based spherical five-bar mechanisms [15]. DASH is driven by two motors, one for forwarding motion and the other for steering [19]. The vast majority of robots require two or more actuators for two-dimensional planar motion, for instance, controlling independently of mechanisms on each side of the robot [14,[28][29][30], applying the stick-slip locomotion principle [31,32], and having independent DOF of the robot's legs for steering [15,20]. However, 1STAR is one of the very few robots that uses only one motor to drive the complex gear mechanism to motion [33,34]. This robot is driven by multiple gears to control robot motion by continuously accelerating and decelerating the legs to produce rotation using the compliance disparity between alternate stance legs. In addition, The components of the robot, including some RGB LEDs, a visible light sensor, the robot's body, a vibration motor, a battery, a controller, and magnets.

Mechanical Design
Here, we designed a miniature mobile robot driven by only one vibration motor ( Figure  1a). The robot is composed of four layers of cylindrical components (diameter: 20 mm). It is made from Clear Resins (RSF2GPCL04) printed by Form 3+ (Formlabs). As shown in The robot prototype is composed of four parts: a coin vibration motor, a battery, a microcontroller board, and sensors inside, as shown in Figure 1b. It is only 20 mm in diameter and 25 mm high with an 11.15 g weight, compared with Kilobot's body size (33 mm in diameter). Furthermore, the cost is low, only $6.35, cheaper than the cost of Kilobot ($14.05), due to these simple commercially available components. With the capability of sensing and communication, this low-cost simple-structured robot offers a possibility for large-scale swarm robot design and manufacturing.
In this paper, at first, we designed a single-motor miniature mobile robot that integrated simple electrical and mechanical components. Next, we built the mathematical model and control strategy for locomotion. After that, we characterized its motor speed and centrifugal force and established the relationship between the voltage and the diameter of circular trajectories. Finally, we verified its controllability by following various paths.

Mechanical Design
Here, we designed a miniature mobile robot driven by only one vibration motor ( Figure 1a). The robot is composed of four layers of cylindrical components (diameter: 20 mm). It is made from Clear Resins (RSF2GPCL04) printed by Form 3+ (Formlabs). As shown in Figure 1b, the battery is stored in the bottom layer (the fourth layer), which is connected to the upper layer by four magnets, two of which supply power to the control board. In addition, to improve the stability of the robot's operation, the bottom of the fourth layer is designed with four hemispherical protrusions as the robot's legs in contact with the ground. Next, the third layer is used to hold the control board, which is fixed by four columns connected to the second layer. The vibration motor (Telesky 1030) is fixed at a 30 • angle on the second layer. Finally, at the top of the robot (the first layer), depending on the different tasks, various components such as sensors can be attached.

Locomotion
As mentioned above, the robot we proposed here is based on the stick-slip mechanism using only one tilted motor. The advantage of this mechanism is that no transmission device is required. The eccentric mass in the vibration motor, driven by the alternating electromagnetic field, generates centrifugal force. If the vibration motor is placed horizontally on the robot, the centrifugal force on the robot is equal in magnitude in different directions. Then, the robot will move forward and backward at the same distance and, ultimately, it does not produce any displacement (i.e., the average velocity is zero). However, if the motor is tilted, it causes a difference in the vertical component of the centrifugal force between forward and backward, causing the robot to translate. At the same time, the centrifugal force and the frictional force generate a torque that rotates the robot. Thus, if the motor is kept rotating at a constant speed, the robot runs on a circular path. Detailed kinematic and dynamics analysis is performed in the next section.

Communication and Sensing
To give our robots the ability to sense the orientation of their nearby robots as well, we transmitted information via visible light. Specifically, we designed a couple of robots: Transmitter and Receiver. On the top of Transmitter, we installed eight blue LEDs, evenly distributed on a 360-degree circle. On the other hand, a visible light sensor (AS7341) that can identify eight channels of visible light (identifying the blue light, 435-455 nm, in this experiment) is placed on the top of Receiver. Depending on the power of the LEDs and the ambient light, the maximum communication distance between them can reach 30 cm (about 15 times the diameter of the robot).

Electrical Circuit
Here, the robot has a 3.7 V 50 mAh lithium-ion chargeable battery (Bolang 501012) to power the entire system, as shown in Figure 2. The controller used is an Atmega328 microprocessor and its two digital outputs with pulse width modulation (PWM) pins used for controlling the speed of the vibration motor. Turning the digital outputs on and off controls the motor's operation and stopping, respectively. When the voltage generated by digital output 1 is higher than digital output 2, the rotor rotates clockwise, and vice versa, the rotor rotates counterclockwise. In addition, for Receiver, the visible light sensor uses I 2 C serial communication protocol for communication with the controller. Furthermore, the controller has an additional four output pins available for accessory sensors and actuators, which may be useful for complex tasks.
can identify eight channels of visible light (identifying the blue light, 435-455 nm, in this experiment) is placed on the top of Receiver. Depending on the power of the LEDs and the ambient light, the maximum communication distance between them can reach 30 cm (about 15 times the diameter of the robot).

Electrical Circuit
Here, the robot has a 3.7 V 50 mAh lithium-ion chargeable battery (Bolang 501012) to power the entire system, as shown in Figure 2. The controller used is an Atmega328 microprocessor and its two digital outputs with pulse width modulation (PWM) pins used for controlling the speed of the vibration motor. Turning the digital outputs on and off controls the motor's operation and stopping, respectively. When the voltage generated by digital output 1 is higher than digital output 2, the rotor rotates clockwise, and vice versa, the rotor rotates counterclockwise. In addition, for Receiver, the visible light sensor uses I 2 C serial communication protocol for communication with the controller. Furthermore, the controller has an additional four output pins available for accessory sensors and actuators, which may be useful for complex tasks.

Cost
As shown in Figure 1b, the cost of each robot can be divided into six categories: main structure (i.e., four-layer-cylindrical assembly) is $0.57, communication and sensing module (including LEDs, visible light sensor, and their supporting circuit components) is $18.70, battery is $0.65, controller is $3.63, and vibration motor is $0.67. The overall cost is only $6.35 for the basic robot and $24.85 for Receiver, much cheaper than most other miniature robots [11,28,31].

Cost
As shown in Figure 1b, the cost of each robot can be divided into six categories: main structure (i.e., four-layer-cylindrical assembly) is $0.57, communication and sensing module (including LEDs, visible light sensor, and their supporting circuit components) is $18.70, battery is $0.65, controller is $3.63, and vibration motor is $0.67. The overall cost is only $6.35 for the basic robot and $24.85 for Receiver, much cheaper than most other miniature robots [11,28,31].

Kinematics and Dynamics Analysis
As shown in Figure 3a, there are three coordinate systems, including a global one, X G Y G Z G and two local ones, xyz (on the vibration motor) and XYZ (on the robot body).

Kinematics and Dynamics Analysis
As shown in Figure 3a, there are three coordinate systems, including a global one, and two local ones, (on the vibration motor) and (on the robot body). The centrifugal force from the rotor is = , where is the distance between the gravity center of the vibration motor and the -axis, is the mass of eccentric rotor, and is the angular speed of the vibration motor. Other parameters in this paper are listed in Table A1. The angular displacement of the vibration motor at time t, as shown The centrifugal force from the rotor is F = m r d r ω r 2 , where d r is the distance between the gravity center of the vibration motor and the z-axis, m r is the mass of eccentric rotor, and ω r is the angular speed of the vibration motor. Other parameters in this paper are listed in Table A1. The angular displacement of the vibration motor at time t, as shown in Figure 3b, becomes γ XY = ω r t.
Therefore, the centrifugal force in the coordinate system XYZ, as shown in Figure 3c, can be obtained by is the component force obtained by decomposing the centrifugal force F on the XY plane. In time t, F XY goes from [0, cos θ] initially to [− sin γ XY , cos γ XY cos θ], as shown in Figure 3b. The angle between these two vectors γ XY is the rotation angle of the robot. Thus, we can obtain it by |cos When the robot moves on the XY plane, the friction force is f XY = µ(mg − F Z ), where µ is the coefficient of friction between the robot and ground and m is the mass of the robot. As shown in Figure 3b, the robot moves on the XY plane, subjected to both the centrifugal force and the friction force. The direction of the friction force varies as the variation of the movement state of the robot. When the robot moves (i.e., v X and v Y = 0), the direction of the friction force is opposite to the direction of speed. The accelerations of the robot in the X and Y directions can be obtained by, respectively: While the robot is at rest, if the centrifugal force is greater than the friction force, the friction force is the reaction force of the centrifugal force (same magnitude but opposite direction). The accelerations of the robot in the X and Y directions are: In addition, the robot can also rotate around the Z-axis as it is subjected to the moments both from the rotor and the friction in the XY plane. Similar to the acceleration in X and Y directions, when the robot rotates (i.e., ω Z = 0), the direction of the friction force is opposite to the direction of rotation, the angular acceleration of the robot motion α Z can be obtained as: where J Z is the moment of inertia of the robot around the Z-axis, d is the distance between the origin of the coordinate system xyz and XYZ, and r leg is the distance between the robot's legs and the Z-axis. When the robot is stationary and the centrifugal force is greater than the friction force, the direction of the friction force is opposite to the centrifugal force. In other cases, the angular acceleration is zero. Therefore, the angular acceleration of the robot motion α Z , is:

Trajectory Modeling
According to a X , a Y , α Z obtained from the above-mentioned equations. After ith iteration of incremental time (∆t), the robot's velocity, displacement, and angular angle can be obtained as Thus, the position and angle of the robot in the coordinate system X G Y G Z G are: With the aforementioned equations, we can estimate the trajectory of the robot (Figure 4). The parameters used in the equations are consistent with those of the robot prototype (Table A2). Assuming that the vibration motor is subjected to a positive voltage, the trajectory of the robot forms a short spiral arc, shown as the orange curve in Figure 4a, after the rotor rotates counterclockwise for one revolution (γ XY from 0 • to 360 • ). If the voltage is kept constant and the rotor continues to rotate repeatedly, the spiral arcs are connected in series with each other, resulting in a clockwise circular trajectory with diameter D. Each revolution of the rotor produces a trajectory that is identical in shape, due to the robot moving on the XY plane is subjected to both centrifugal and friction forces that vary continuously from period to period. In addition, we analyzed either one of the revolution periods and the results show that when the robot's velocity is equal to zero, its acceleration and velocity profiles generate discontinuities based on Equations (1)-(6).
In the X-direction, for example, when γ XY is approaching 180 • , the robot brakes to rest and then accelerates again. In this process, the net force of centrifugal force and friction force on the robot changes from F X + | f X | to F X − | f X |, thus causing its acceleration to be discontinuous. This similar phenomenon occurs for translation in the Y-direction and rotation along the Z-axis. When the rotor speed rises, the trajectory circle becomes larger ( Figure 4b). Furthermore, when the voltage is negative, the rotor reserves its rotational direction and the robot eventually moves in a counterclockwise circular trajectory (red curve in Figure 4c).
Here, we analyzed the parameters, including the motor speed (ω r ), initial inclination angle (θ), the horizontal distance of the legs (r leg ), the coefficient of friction (µ), and the robot mass (m) based on the equations mentioned above to optimize the design and control of the robot. As shown in Figure 5, higher ω r increases D. When ω r is about 6000 rpm, the robot's speed reaches the peak. The greater θ decreases D but increases average linear speed and the same trend is also seen in r leg . In addition, the linear speed approaches peak when µ is approximately 0.3, but larger µ results in smaller D. As the robot mass increases, both speed and trajectory diameter remain decreasing. In summary, the size selection of θ and r leg requires finding a balance between diameter and translation speed. On another aspect, the lightest possible robot's mass has a better effect on the robot's motion performance.  Here, we analyzed the parameters, including the motor speed ( ), initial inclination angle ( ), the horizontal distance of the legs ( ), the coefficient of friction ( ), and the robot mass ( ) based on the equations mentioned above to optimize the design and control of the robot. As shown in Figure 5, higher increases . When is about 6000 rpm, the robot's speed reaches the peak. The greater decreases but increases average linear speed and the same trend is also seen in . In addition, the linear speed approaches peak when is approximately 0.3, but larger results in smaller . As the robot mass increases, both speed and trajectory diameter remain decreasing. In summary, the size selection of and requires finding a balance between diameter and translation speed. On another aspect, the lightest possible robot's mass has a better effect on the robot's motion performance.

Motion Strategy
According to the previous section, the robot's trajectory is only a circle when its motor is under a constant voltage, so it cannot be directly controlled to move along complex paths. To give it the ability to follow a complex path accurately, we converted the path into some simple paths suitable for the robot. In other words, we cut the complex path into some arcs of different lengths and diameters. After that, the robot can be controlled sequentially to follow the speci-

Motion Strategy
According to the previous section, the robot's trajectory is only a circle when its motor is under a constant voltage, so it cannot be directly controlled to move along complex paths. To give it the ability to follow a complex path accurately, we converted the path into some simple paths suitable for the robot. In other words, we cut the complex path into some arcs of different lengths and diameters. After that, the robot can be controlled sequentially to follow the specified arcs and stitch them together into a complete trajectory.
Here, as shown in Figure 6, we designed a complex path containing a big circle, a straight line, and an arbitrary curve to illustrate our motion strategy.

Performance of the Motor
As aforementioned, the rotor speed is an important parameter that affects the robot's motion. To measure the speed and centrifugal force of the vibration motor, we connected the vibration motor to a load cell (FUTEK LSB200). In our experiments, we set the voltage between 0.6 V-1.4 V, as shown in Figure 7, and the data obtained by the sensor vary with time as a periodic sinusoidal function, where the frequency represents the rotor's speed. The amplitude represents the magnitude of the centrifugal force generated by the rotor. In addition, as the voltage increases, the speed increases linearly, while the centrifugal force of the vibration motor is quadratically related to the speed. By fitting the centrifugal force data, the equation for the relationship between centrifugal force and rotational speed can be obtained as = 3.91 × 10 , where the product of the mass of the eccentric rotor and its eccentric distance is 3.91 × 10 kg • m.  (1) At first, we split the aim path (light green dashed line) into arcs of different diameters and lengths that the robot can follow.
(2) The robot moves counterclockwise during the big circle path (orange line). The aim path is divided into some tangent arcs and the inner arcs are shorter than the outer arcs. The straight line (dark green line) can be planned as arcs of equal length to connect. Furthermore, the arbitrary curve (purple line) is made of arcs (at different diameters and lengths).
(3) After we connected the arcs to fit the aim path, we can calculate the length of each arc according to the Equations (7) and (8). Then we can estimate the practical angle and determine the voltage and duration of the motor for each arc. The motor is sequentially controlled by specified voltage and time for arbitrary curves. According to the kinematic and kinetics model, the diameter of the arc is determined by the driving voltage on the motor. In addition, the length of the arc is controlled by the duration of the voltage applied to the motor. For example, to follow the big circle path, as shown in the orange line in Figure 6, the motor is powered by +1.1 V (0.8 s) for following the outer arcs and −1.1 V (0.6 s) for the inner arcs, repeatedly. When the robot follows the straight line, the motor is powered by +1.1 V (0.8 s) and then −1.1 V (0.8 s), repeatedly.
However, since the robot's experimental trajectory is a combination of arcs of different lengths, the difference between the aim path and the planned path always exists. The error can be reduced by increasing the arcs of the planned path. Due to the radius of the arc, there is a limitation when the aim path has a sharp turn. In addition, increasing the number of arcs and reducing their lengths may cause the robot to switch the direction of motion frequently. The experimental trajectory of the robot has a larger error due to the unevenness of the test platform.

Performance of the Motor
As aforementioned, the rotor speed is an important parameter that affects the robot's motion. To measure the speed and centrifugal force of the vibration motor, we connected the vibration motor to a load cell (FUTEK LSB200). In our experiments, we set the voltage between 0.6 V-1.4 V, as shown in Figure 7, and the data obtained by the sensor vary with time as a periodic sinusoidal function, where the frequency represents the rotor's speed. The amplitude represents the magnitude of the centrifugal force generated by the rotor. In addition, as the voltage increases, the speed increases linearly, while the centrifugal force of the vibration motor is quadratically related to the speed. By fitting the centrifugal force data, the equation for the relationship between centrifugal force and rotational speed can be obtained as F = 3.91 × 10 −7 ω 2 , where the product of the mass of the eccentric rotor and its eccentric distance is 3.91 × 10 −7 kg·m. Figure 6. The path of the robot while fitting a large circle, a straight line, and an arbitrary curve, respectively.

Performance of the Motor
As aforementioned, the rotor speed is an important parameter that affects the robot's motion. To measure the speed and centrifugal force of the vibration motor, we connected the vibration motor to a load cell (FUTEK LSB200). In our experiments, we set the voltage between 0.6 V-1.4 V, as shown in Figure 7, and the data obtained by the sensor vary with time as a periodic sinusoidal function, where the frequency represents the rotor's speed. The amplitude represents the magnitude of the centrifugal force generated by the rotor. In addition, as the voltage increases, the speed increases linearly, while the centrifugal force of the vibration motor is quadratically related to the speed. By fitting the centrifugal force data, the equation for the relationship between centrifugal force and rotational speed can be obtained as = 3.91 × 10 , where the product of the mass of the eccentric rotor and its eccentric distance is 3.91 × 10 kg • m.

Following Circular Trajectories
The robot's circular trajectory was tracked by a camera above by identifying the center of the red marker (red circular paper) attached to the robot's top. The robot was driven by a +1.3 V DC voltage and its corresponding trajectory of running nine loops in the experiment, as shown in Figure 8. As the voltage rises, the diameter of the circular trajectory increases (see Figure 8 and Video S1). The results of the experimental and theoretical calculations are approximately the same in terms of trend. Its motion speed increased from 3 mm/s (0.9 V), 6.18 mm/s (1.1 V), 8.19 mm/s (1.2 V) to 9.72 mm/s (1.4 V). These deviations are mainly caused by the rough surface of the testbed and variable friction, and errors can be improved in the future by closed-loop control.

Following Arbitrary Trajectories
Based on the motion strategy mentioned, the robot can be controlled to follow various paths by connecting the small arcs. Suppose the voltage of vibration motor is repeatedly flipped at the same period and the voltage amplitude is kept constant; in which case, the robot can move short arcs of the same length along clockwise and counterclockwise alternately and, finally, generate a straight line. When the duration of the voltage applied to the motor is different, the robot's trajectory is no longer a straight line but a curve. The radius of the curve decreases with the larger difference between the period of positive voltage and negative voltage on the motor. by a +1.3 V DC voltage and its corresponding trajectory of running nine loops in the experiment, as shown in Figure 8. As the voltage rises, the diameter of the circular trajectory increases (see Figure 8 and Video S1). The results of the experimental and theoretical calculations are approximately the same in terms of trend. Its motion speed increased from 3 mm/s (0.9 V), 6.18 mm/s (1.1 V), 8.19 mm/s (1.2 V) to 9.72 mm/s (1.4 V). These deviations are mainly caused by the rough surface of the testbed and variable friction, and errors can be improved in the future by closed-loop control.

Following Arbitrary Trajectories
Based on the motion strategy mentioned, the robot can be controlled to follow various paths by connecting the small arcs. Suppose the voltage of vibration motor is repeatedly flipped at the same period and the voltage amplitude is kept constant; in which case, the robot can move short arcs of the same length along clockwise and counterclockwise alternately and, finally, generate a straight line. When the duration of the voltage applied to the motor is different, the robot's trajectory is no longer a straight line but a curve. The radius of the curve decreases with the larger difference between the period of positive voltage and negative voltage on the motor.
The robot can follow a more arbitrary path based on a similar strategy. As shown in Figure 9 and Video S2, we used our robot to draw the letters of "WOOD" (in honor of Professor Robert J. Wood, in the Special Issue "Microrobotics: A Commemorative Issue in Honor of Professor Robert J. Wood"). For instance, to generate a trajectory pattern for the letter "W" in the linear segment, the motor was powered by +1.0 V (0.5 s) and then −1.0 V (0.5 s) repeatedly for seven loops. When turning through the corner, it was powered by +1.0 V for 2 s.
In addition, the path of "d" is composed of a semicircle and two straight lines. Similarly, the robot was driven by +1.0 V (0.6 s) and then −1.0 V (0.4 s). After repeating these The robot can follow a more arbitrary path based on a similar strategy. As shown in Figure 9 and Video S2, we used our robot to draw the letters of "WOOD" (in honor of Professor Robert J. Wood, in the Special Issue "Microrobotics: A Commemorative Issue in Honor of Professor Robert J. Wood"). For instance, to generate a trajectory pattern for the letter "W" in the linear segment, the motor was powered by +1.0 V (0.5 s) and then −1.0 V (0.5 s) repeatedly for seven loops. When turning through the corner, it was powered by +1.0 V for 2 s.
In addition, the path of "d" is composed of a semicircle and two straight lines. Similarly, the robot was driven by +1.0 V (0.6 s) and then −1.0 V (0.4 s). After repeating these steps for 10 s, the robot entered a straight line. In particular, the robot performed a 180-degree turnaround when given −0.7 V for 2.4 s. All alphabets are assembled from arcs suitable for the robot to walk, showing its great controllability without any feedback.
Micromachines 2022, 13, x FOR PEER REVIEW 11 of 15 steps for 10 s, the robot entered a straight line. In particular, the robot performed a 180degree turnaround when given −0.7 V for 2.4 s. All alphabets are assembled from arcs suitable for the robot to walk, showing its great controllability without any feedback.

Commuication and Sensing
In the above section, we verified a single robot's motion capability and strategy. This section will discuss the ability to communicate and sense between multiple robots. Here, we designed two robots: Transmitter and Receiver. Transmitter's top-mounted eight blue LEDs emit light signals outward. Receiver has a visible light sensor mounted on the top that senses the light intensity of different wavelengths of visible light. Its task is to detect

Commuication and Sensing
In the above section, we verified a single robot's motion capability and strategy. This section will discuss the ability to communicate and sense between multiple robots. Here, we designed two robots: Transmitter and Receiver. Transmitter's top-mounted eight blue LEDs emit light signals outward. Receiver has a visible light sensor mounted on the top that senses the light intensity of different wavelengths of visible light. Its task is to detect the light signal, determine Transmitter's location, and finally approach it. The distance between them is about 114 mm. As shown in Figure 10 and Video S3, the whole task can be divided into three steps as follow: section will discuss the ability to communicate and sense between multiple robots. Here, we designed two robots: Transmitter and Receiver. Transmitter's top-mounted eight blue LEDs emit light signals outward. Receiver has a visible light sensor mounted on the top that senses the light intensity of different wavelengths of visible light. Its task is to detect the light signal, determine Transmitter's location, and finally approach it. The distance between them is about 114 mm. As shown in Figure 10 and Video S3, the whole task can be divided into three steps as follow: Step 1: Record the maximum light intensity during the entire rotation. Receiver rotated around and detected all blue light intensity at 360°. Only the higher intensity will be recorded during rotating compared with the previous signal intensity. Finally, the largest intensity will be recorded.
Step 2: Determine the moving direction. During this period, Receiver continued to rotate, detected the light intensity value in the current direction, and compared it with the previously recorded maximum light intensity.
Step 3: Approaching Transmitter. Receiver moved straight towards Transmitter, taking about 20 s to reach the goal.  Step 1: Record the maximum light intensity during the entire rotation. Receiver rotated around and detected all blue light intensity at 360 • . Only the higher intensity will be recorded during rotating compared with the previous signal intensity. Finally, the largest intensity will be recorded.
Step 2: Determine the moving direction. During this period, Receiver continued to rotate, detected the light intensity value in the current direction, and compared it with the previously recorded maximum light intensity.
Step 3: Approaching Transmitter. Receiver moved straight towards Transmitter, taking about 20 s to reach the goal.

Conclusions and Discussion
In this work, we designed a compact (20 × 20 × 25 mm), lightweight (11.15 g), low-cost ($6.35), miniature mobile robot, which only uses one tilt-placed vibration motor for motion. We built the kinematics and kinetics models, analyzed and optimized the parameters, and proposed a control strategy. Experimental results show that when the vibration motor is powered by a constant DC voltage, the robot's trajectory is a circle. The diameter of the circle is related to the given voltage. We can successfully control the robot following on various aim paths, such as a straight line, a big circle, and any arbitrary curves, by stitching the arcs suitable for the robot to run sequentially.
Although the control in this work is currently open loop, with the addition of sensors and appropriate position control algorithms, the robot can improve the accuracy of path tracking through closed-loop control. In addition, we installed sensors on the robots to enable communication between two robots, providing a possibility for cooperation and communication among multiple robots. Especially in some narrow spaces, the miniature mobile robots will be able to reach places that are generally inaccessible to humans, using their sensors to assist humans in their exploration work. Further, in the case of a cluster of multiple miniature robots, each robot can communicate with each other to achieve a division of labor and cooperation, which has advantages in special and complex environments.
Author Contributions: Methodology and formal analysis, Y.Z.; writing-original draft preparation, R.Z.and Y.Z.; hardware, software, validation, and visualization, R.Z.; supervision, project administration, and writing-review and editing, H.W. All authors have read and agreed to the published version of the manuscript.

Conflicts of Interest:
The authors declare no conflict of interest.
Appendix A Table A1. List of symbols.

Symbols Description
x, y, z Coordinate system 1 (on the vibration motor) X, Y, Z Coordinate system 2 (on the robot body) X G , Y G , Z G Coordinate system 3 (the global coordinate system) m r The mass of the rotor and eccentric mass ω r The angular speed of the vibration motor d r The distance between the rotor s center of gravity and the z axis F The centrifugal force generated by the rotor θ The tilt angle of the motor F x , F y , F z The components of the centrifugal force F in the x, y, and z directions F X , F Y , F Z The components of the centrifugal force F in the X, Y, and Z directions F XY The components of the centrifugal force F in the XY plane f XY The friction force in the XY plane γ XY The angle between F XY and the Y axis µ The coefficient of friction between the robot legs and the ground m The mass of the robot g Gravitational acceleration d The distance between the origins of coordinate system 1 and 2 h The distance between the robot gravity center and the origin of coordinate system 2 f X , f Y The components of the friction force f XY in the X and Y directions a X , a Y The acceleration of the robot in X and Y directions α Z The angular acceleration of the robot around the Z axis J Z The moment of inertia of the robot around the Z axis r leg The distance between the robot s leg and the Z axis at the initial status ∆t The time step for each iteration v X , v Y The linear speed of the robot in the X and Y directions ω Z The angular speed of the robot around Z axis ∆X, ∆Y The displacement of the robot during each iteration in the X and Y directions ∆ϕ Z The angular angle of the robot around the Z axis during each iteration X G , Y G The position of the robot in the global coordinate system