{'fraction_non_alphanumeric': 0.02560716120038154, 'fraction_numerical': 0.01335387776065742, 'mean_word_length': 4.357704402515723, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Development of quadruped walking robot with passive compliance legs using XL4005 buck converter

A quadruped walking robot has an advantage on uneven terrains. In a real-world application, robots can carry heavy loads and can scout in a dangerous area. The main disadvantages of walking robots are relatively slow and high energy consumption. In recent years developed quadruped robots are mimicking several kinds of mammals. Bio-inspired mechanisms are helping to improve the overall performance. The implementations have reduced energy consumption, enhance stability, and a more comprehensive range of locomotion—this article introduces a quadruped robot with passive-compliance three segments’ legs. The leg compliance is implemented by adding an elastic spring to the leg. From the experiment conducted, the fabricated quadruped walking robot’s average walking speed is 0.06850 m/s.


Introduction
A walking robot is a robot with legged locomotion. Bipedal [1~4], quadruped [5~14], hexapod [15~20], and so forth are some of the examples of walking robots. By comparing to the wheeled robot, walking robot has its advantages on uneven terrains. They can maintain stability and walk across uneven surfaces. In real-world applications, walking robots can carry things. It can also be deployed in a rescue mission to scout the casualties or providing medical resources in disaster zones.
Quadruped robot, a four-legged robot bio-inspired by animals such as canine, feline, and reptile, offers better stability than bipedal or humanoid robots because of a larger base area. Besides, the cost of developing a quadruped robot is lower than other robots with more legs.
While walking robots' main disadvantages are relatively slow and consume high energy, the passive compliance leg can solve them. Passive compliance legs are equipped with springs to store the energy and release it at different walk gait timing. This reduces the energy consumption without losing any DOF, degree of freedom of the leg. Besides, this can save the controller's computation power because the compliant legs can operate in an open-loop system, that is, without sensors to feedback.
Walking robots need coordinated walking and motion planning to walk in terrains without losing their stability. Furthermore, the authors wanted to build a cost-efficient system; low-cost actuators should be used and implemented into the robot. As constraint by low-cost actuators, the problem of weight arises.  [n] is the servo responsible for the swing mechanism and servo_t[n] is the servo accountable for the lifting mechanism, where n is the number of quadrants. Figure 1 shows a labeled side and front view of the spring-loaded leg. Table 1 shows the ratio and length of different segments of the designed leg. The selected ratio and length of the links were within the range suggested by Spröwitz et al. in [5]. The leg design of the robot is referring to the anatomy of quadruped mammals. The spring is acting as tendons in the leg. During walking, the spring will absorb and damp the oscillation produced. The compliant portion is capable of maintaining a certain degree of stability without a closed-loop control.   Figure 2 shows the drawing of the lifting wheel with dimensions. The lifting wheel is tied to segment 2 of the spring-loaded leg by a nylon string. A lifting wheel is used to lift the leg. The radius of the groove is 20 mm. The design of the groove is to hold the nylon string in position when lifting the leg.  As can be seen in the diagram, it shows all the essential dimensions. The compliant leg is mounted with two servo motors and a lifting wheel. The thickness of a single leg excluded servo motors is 12 mm. For the walking mechanism, a servo is used to control the leg's swinging while another controls the leg's takeoff by pulling the lower end of segment_2 upwards. By handling these two servo motors, the leg can perform a trajectory motion as a step. Note that the robot is designed to walk instead of leap and brachiate. For the simplicity of the designed walking robot, all four legs are having the same length.  Figure 4 shows all the chassis parts of the proposed walking robot. The chassis consists of five parts. All the chassis are designed to be easily printed by a fused deposition modeling (FDM) 3D printer. Two servo motors of 40.7 mm × 20.5 mm are mounted at the opening of the chassis-1. Chassis-2 is to connect the spring-loaded leg modules of Q1 and Q4 to Q2 and Q3. Chassis-3 is used to connect all the spring-loaded leg modules and hold the microcontroller, Arduino Mega. The holes located at the middle of the chassis-3 are used to mount the microcontroller. Chassis-4 is to strengthen the support for the chassis to be more rigid. It also protects the circuit mounted on the robot from damage as the robot is easy to fall or flipped during testing of walking gait. Chassis-5 is the smallest part, and its function is to connect spring-loaded leg modules of Q1 to Q4 and Q2 to Q3.     Figure 6 shows the drawing of the third-angle view of an assembled quadruped robot. The dimensions are showing the height, width, and length of the robot. The size of the robot is 274 mm, while the width of the robot is 193 mm. Note that the height of the robot is not fixed as the legs are movable. 217 mm is an estimated standing height of the proposed robot. 62.63 mm is the outer radius of chassis-4. shows the orthographic view of the assembled robot. The color of the parts was chosen based on the available color of 3D filaments. Note that the robot drawing is not fully assembled as the battery, circuit board, springs, and rubber tips are not shown.

Motion behavior
The robot's walking gait is a faster trotting gait than creeping but slower than galloping or bounding. The gait is dynamically stable and fast. Figure 8 depicts the sequence of trotting gait. The direction of motion is from left to right. The numbering (1, 2, 3, 4) is defined as the robot's quadrant. The illustration shows 1.5 cycles of the trotting gait. Figure 9 shows the flowchart of the predefined function forward(), which is a function for forwarding trotting gait. swingAngle is a parameter to control the gait cycle, from 0 to 80 and 80 to 0. For 0 to 80, leg-1 and leg-3 are lifted by servo_t1, servo_t3, and swing forward, while leg-2 and leg-4 swing backward with servo_t2 and servo_t4 released state. This will cause a forward thrust on the robot by leg-2 and leg-4 as they are contacted to the ground while leg-1 and leg-3 have a step forward to prepare for the next half-cycle. For 80 to 0, leg-2 and leg-4 are lifted by servo_t2, servo_t4, and swing forward, while leg-1 and leg-3 swing backward with servo_t1 and servo_t3 at released state. The gait continues as a loop function. Stepping() code is same as forward() code except all servo_s[n] stay at 70°.  The robot has a close loop system that is platform detection. The robot will continuously scan the platform in front with an ultrasonic sensor. The bad platform has two conditions; the first one is there is no platform in front which if the robot continuous to walk, it will fall. The second condition is when an object is large enough to block the robot's way, either wall or an oversized item. Detection of a bad platform will cause the robot to turn into stepping mode immediately. The robot will stay in stepping mode until five instances of detection of a good platform. There is a buffer before transitioning into the forward mode to eliminate the possibility of faulty scanning of the ultrasonic sensor, preventing damage to the robot. Adding strand_straight() between the transition of stepping() to forward() is to stabilize the robot before walking.

Circuit design
The biggest challenge of designing the circuit is the power distribution. The robot has eight servo motors that can draw high current if all are stalling at a time.
Assuming that the drawn current is stalling current when 1) leg swinging backward as it needs to produce enough torque to move its body forward, 2) leg is lifted by the lifting wheel which the power is used to oppose the springs. Assuming the drawn current is running current when 1) leg is swinging forward which has no contact with the ground, 2) lifting wheel is rotating but not lifting the leg. Two high torque servos are swinging backward during walking, two high torque servos are turning forward, two low torque servos are lifting the legs, and two low torque servos are free from loads.

Figure 9. Flowchart of predefined function forward()
The solution to this is by using two units 5A buck converters XL4005 to share the current. Each 5A buck converters XL4005 will handle half of the maximum current drawn. The maximum current drawn to a buck converter will be 4.29 A, which is within the limit of the buck converter. The battery which supplies all the servo motors is an 11.1V 3S LiPo battery with 30C and 2200mAh. The maximum discharge current is 64A. The 9V PP3 battery is connected to MCU Arduino Mega as a power supply to have a 'clean' power source to the controller. Similarly, this avoids extra circuitry to power the controller from the LiPo battery. Figure 10 shows the hardware connection of the whole robot. Four servo motors are connected to a buck converter, and an 11.1V 2200mAh 3S LiPo battery powers those. HC-04 ultrasonic sensor is chosen for detecting the platform in front. Bluetooth module HC-05 is used for easy control during the   Figure 11 shows the labeled isometric view of the actual quadruped robot standing on the A4 paper box. All of the electronics are mounted on the robot. The microcontroller and the LiPo battery are mounted inside the chassis. Power distribution board can be seen mounted inside chassis-4. The nylon strings are tied between the lifting wheel and the spring-loaded leg, as shown in Figure 11. Figure 12 shows the motion of the swing and lift mechanism. Upper arrows show servo motors' motion while bottom arrows (near the leg tip) show legs' movement. The spring-loaded leg can perform two main motions, swing and lift, which by combining these, the leg can perform a step. Swinging motion is controlled by a servo mounted at the highest end of the leg. The lifting wheel turns clockwise to pull the nylon string, which pulls the leg upward. Note that the leg is lifted diagonally which the end tip of the leg is behind from the original position instead of lifted vertically. However, this does not affect the walking gait performance as it can lift the leg.

Results and discussion
A simple experiment tested the speed of the robot. The setup was letting the robot walks with a trotting gait on a flat surface for 1 meter. Table 2 shows the time taken for the robot to walk on a straight path 1 m ahead. The experiment was done for ten iterations, and the average speed has been determined to be 6.85 cm/s.

Conclusion
In this work, a prototype of a quadruped walking robot has been successfully fabricated. The robot is able to walk straight on a flat surface and stable. The walking speed of the robot is averaging at 6.85 cm/s. The optimum walking parameters were determined at a step size of 4 cm and frequency per cycle of 1.733 s -1 . The robot's mechanical body is made of PLA plastic 3D prints. This type of plastic can resist relatively high impact but has low wear resistance. The robot's legs' revolute or hinge joints are pinned by steel bolts and locknuts with direct contact with the PLA bars. As the screw thread on the bolts directly contacts the PLA prints, it experiences wear and tears quickly. As a result, the bar's holes get more prominent and cause the bolt to be loose. A way to fix this problem is by adding a metal unthreaded insert to reinforce the joint. The metal unthreaded insert can protect the PLA prints from wearing by the threads of the bolt.
The main direction is to improve the robustness of the robot. The current model of the robot has very little knowledge about its surroundings. The only sensor used is an ultrasonic sensor, which is not performing well due to possible wrong readings and a narrow sensing range. For future direction, force sensors should be implemented on the robot's foot, so the robot knows when stepping on an object and reacting to prevent tip over. Platform detection is essential for the robot to plan its motion. Camera and image processing are good options to improve the ability to detect the platform as it can view 360°.
Besides, the mechanism of the legs should also be revisited for robustness. The current model has a minimal range of motion due to the lifting mechanism involves two servo motors. Also, the length of nylon string tied between the lifting wheel and legs must be the same for all legs. A single error of it will cause the gait to be unsynchronized and tip over at any time. For future mechanisms, the axial motor would be the right choice due to its flat shape. Two axial motors can be used for a single leg for swing and lift motion. The mechanical leg should only involve two segments (tibia and femur). This mechanism can significantly reduce the mass of legs and quickly obtain the kinematics model.
Finally, the robustness of the control method should be improved too. The current method is trajectory-based motion predefined using a microcontroller. A robust motion control should adapt to the situation and react by manipulating parameters (frequency and amplitude). CPG and machine learning are the direction to more robust and stable locomotion. FPGA or microprocessor should be considered to handle the data collected by sensors and the motion planning algorithm.