The mechanical structure of the Quadruped Robot is designed by UG NX10 and fabricated using light-cured 3D printing. The main structure can be divided into two parts: the body and the linkage legs. The linkage leg is composed of a hip supporting structure, hip joint servo, knee joint bearing, knee joint servo, linkage, and foot assembly.
The hip joint design includes a disc structure for stability during motion. The hip joint servo is fixed by pre-drilled slots and M2 self-tapping screws, connecting to the entire thigh through a rudder horn. The knee joint utilizes an F683 flange bearing and a cylindrical pin, secured by interference fit to connect the thigh and lower leg. The lower leg servo is also positioned and secured using pre-drilled slots and M2 self-tapping screws. A servo arm linkage mechanism is employed in the lower leg drive to raise the servo's position, reducing leg inertia. The foot features a rubber shock-absorbing groove and a hollowed-out structure to further minimize leg inertia.
In the body, various electrical components such as the Raspberry Pi 3B+, 2S lithium battery, power module, DC connector, and servo driver are housed. Both the bottom plate and top cover are removable for easy installation and disassembly. Components are affixed to the bottom plate and side panels using Velcro. To save space and facilitate charging, the 2S lithium battery is Velcro-mounted beneath the cover, allowing for adjustment of the robot's center of gravity to ensure stability. Power is supplied by a voltage regulator module, combining power from the 2S lithium battery and 12VDC source, enabling continuous operation during debugging and convenient wireless demonstrations.
The Quadruped Robot is equipped with a Raspberry Pi as its main controller, communicating with the PCA9685 via the I2C interface. Additionally, leveraging the PCA9685 library as a foundation, a servo control program has been devised. The servo's rotation angle is computed using the "pos" function, while the low-level driving is achieved through I2C communication with the PCA9685, enabling it to generate a 50Hz PWM signal. This PWM signal drives analog servos. By utilizing the servos class and GPIO pins, the program facilitates precise control over the servo's movement. This integration allows for seamless manipulation of the servos, enhancing the robot's functionality and versatility.