Do you still remember the innovative program Robots Dance at the CCTV Spring Festival Evening Party 2012?
Dozens of humanoid robots danced on the stage with uniform motion. A robot hobbyist certainly wants to have such a robot. However, it is not meaningful if such a robot only dances to be involved in the entertainment circle.
Can such a robot do something meaningful? I talked about Real Steel, a movie released in November 2011 with my friend one day later, which inspired me to make a fighting robot.
For most of DIY humanoid robots at present, the steering engine serves as the joint, including the robots performing Robots Dance. However, the steering engine is different from the joint essentially. The steering engine rotates by 180o on a plane, whereas the joint rotates at multiple axes centering on one point. Therefore, in making the humanoid robot, two steering engines may be required to perform the functions of one joint. Such steering engines can simulate human’s motion to achieve dance, walk, rise, lying, martial arts demonstration and somersault, etc. This type of robot is very strict for steering engine. I chose DF15HMG- a special steering engine for robot. The steering engine is designed with thickened enclosure, having firm structure, large torque, large rotation angle, high communication speed and high main frequency. With the mixed structure of steel and copper, the gear is more durable, which is particularly important for humanoid robot—the multi-joint robot. See Figure 1 for details. In addition, a potentiometer imported from Japan is installed in the steering engine as the feedback. Its control angle can reach 200o, and its control accuracy and service life are higher. The front and rear covers of standard steering engine are compatible with the support of standard steering engine.
Figure 1 DF15HMG Steering Engine
￼￼After choosing the steering engine, I start to consider making in structure. For two legs of robot, we can refer to DFRobot’s robotic kits, which is not detailed herein. The completed two legs are as follows.
Figure 2 Legs Structure of Robot￼
￼We use one steering engine to achieve the single motion of knee joint, but use two to realize the motion of hip ￼joint and ankle joint. We call them front &rear direction and left &right direction of joint. In the leg structure, the ￼hip joint only has a front &rear direction. As shown in Figure 3, we place the steering engine for left &right direction in the trunk of robot.
Figure 3 Trunk of Robot
￼The trunk part can be considered as a square structural part, and a steering engine controlling the front &rear direction of shoulder joint is also installed in it. We installed the sealed trunk on the two legs as shown in Figure
Figure 4 Trunk and Two Legs
￼The arms are made by splicing U-shaped support in the feet and support of standard steering engine section by ￼section. Firstly, as shown in Figure 5, install the support of steering engine and U-shaped support on a steering ￼engine.
Figure 5 Basic Structure of Arm
￼The basic structure of an arm is composed. Due to the impact of pvcbot, the hands are made of PVC materials. As ￼shown in Figure 6, directly install the hands on the support of steering engine.
Figure 6 Forearm and Hand
￼In the design of mechanical arm, we omitted the wrist, because the wrist has little function during fighting motion. You may consider the hand and forearm as a whole. As shown in Figure 7, we add the basic structure of one section of arm based on Figure 6.
Figure 7 Arm Made
￼This is the arm made by us. The steering engine below is the elbow joint, and the joint above is the left& right ￼direction of shoulder joint. Install the arm on the trunk as shown in Figure 8.
Figure 8 Installing Arm on the Trunk
￼Make another arm with the same method and install it on the trunk. Then, install a steering engine as the head of ￼robot, so the robot has a head which can move left and right. The assembled robot is as shown in Figure 9.
Figure 9 Assembled Robot
The assembled robots use 17 steering engines in total, including 10 for both legs, 6 for both arms and one for head.
￼Then, connect these steering engines onto the control panel of steering engine and adjust the motion through software. As shown in Figure 10, there is a serial port on the control panel, and connect this port with the ￼computer serial port (You may purchase a USB-to-serial-port module if there is no such serial port on the ￼computer). Such software internally has a 3D humanoid robot model which can visually reflect the form of robot ￼after we adjust each steering engine. As shown in Figure 11, we can adjust the left slider, and directly select the ￼steering engine to be adjusted on the 3D model to adjust it with mouse roller. Before using the software, you need to connect the steering engine onto the corresponding control port. Otherwise, the robot may move legs when the slider is adjusted for arm during use.
Figure 10 Control Panel of Steering Engine
You may spend much time connecting the steering engine to corresponding control port and adjusting the initial position of steering engine in the early period. Sometimes, you may need to disassemble the installed structure and then reassemble it.
￼The edited motions may compose a motion sequence and can be downloaded and saved in the control panel of ￼steering engine. Meanwhile, you may assign a serial port trigger instruction for such motion sequence.
Figure 11 Software Interface
￼The making of motion sequence is meticulous and troublesome. The hand motion is relatively easy, for the robot ￼will not fall at least; the leg motion is difficult. If it is not adjusted properly, the robot will fall due to ￼center-of-gravity shift. Let’s briefly introduce how to make a motion sequence. Supposed that we want to make a ￼motion of salute in Figure 11, we need to break up into static postures at first. A motion of salute can be divided into two steps. Firstly, sagging of both arms is changed to lifting of right arm to make the posture of solute; then, ￼it returns to sagging of both arms. In this case, 3 motion points are required. As shown in Figure 12, we set three motion tags in the software interface at first.
Figure 12 Software Interface
Double-click any motion tag and the motion editing window as shown in Figure 10 will pop up. Here we will adjust the posture in the middle motion tag to the salute posture as shown in Figure 11. Both the first and third motion tags are set as the initial position state, i.e., sagging of both arms.
￼￼￼After completing the motion editing, we connect 3 motion tags through the right mouse button, and set the first motion tag as the start motion as shown in Figure 13. The small red flag mark in the figure indicates start motion.
Figure 13 Connecting Motion
At last, as shown in Figure 14, download the motion into the control panel of steering engine through the 6th button at the top of menu. So far, a motion sequence of salute is completed.
Figure 14 Motion Download Button
Of course, our robot does not need such motion of salute, but needs the motion sequence of movement, dodge and punch. With efforts for days, we finally made the following basic motion sequences for it.
We want the robot to stand by itself when falling, so we add two motions: “Rise after forward fall” and “Rise after backward fall” at last. After all these basic motion sequences are adjusted, we put the robot at a side to check how to control by the remote control end.
To make more entertaining during robot control, I use the open-source gamepad based on Arduino ￼as shown in ￼￼Figure 15. This remote control unit fully utilizes the resources of Arduino. Digit ports are used for key input and ￼simulated ports are used for joystick input. Nevertheless, FTDI downloader is required for updating the program ￼of the joystick.