top of page

HUMANOID

22 Degrees of freedom

  • 10 DOF in legs

  • 5 DOF in each hand (including 1 DOF Gripper)

  • 2 DOF in head

Height- 47 cm (including head)
Weight- 1.747 Kg
Legs

  • 10 Motors

  • Metal Gear (35 Kg-cm torque) servos

  • Aluminium motor brackets

Hands

  • 10 Motors (5 each)

  • Metal Gear (16 Kg-cm) servos for shoulders & elbow

  • Micro servos (Nylon gear, 2 Kg-cm) for wrist & gripper

Sensors

  • 3 IMU (3 axis accelerometer, 3 axis gyro); MPU 6050

  • 2 IR obstacle sensors with adjustable range (1 in each foot)

Controllers

  • Raspberry PI (mostly for image processing)

  • Arduino Mega 2560   

Battery- 2200 mAh 30C 7.4 V
Wireless control- Via nRF24L01

Stable Walking

The robot tries to maintain its torso vertical at all times while walking irrespective of ground inclination. It detects ground inclination using two IMUs (Inertial Measurement Units) in the feet. It should be noted that the robot is provided with a normal flat plane walking controller and it doesn't know beforehand what type of terrain it may encounter next. If it detects any change in ground inclination it modifies its current walking controller to safely walk over the terrain. This type of stable controller allows the robot to walk over unknown terrains without being explicitly programmed to do so.

Learn More

Push Recovery

How does a robot maintain its balance when it experiences an external disturbance? In this situation the robot is standing still & a pendulum is used to apply variable magnitude of forces from the back. The robot makes an approximate estimation of the force applied by using the on board IMU. It then uses upper body inertia to apply a reverse force by moving its torso in the direction of supposed fall which counteracts the external force applied. Similarly in the second part of the video the robot uses both of its hands to apply the resisting force while balancing on a single leg. The hands are lighter than the upper body (upper body includes torso as well as the hands), hence the amount of resisting force is higher in the second case.

Learn More

Balancing on a platform

The robot maintains its balance on an inclined plane by taking feedback from the IMUs (Inertial Measurement Unit). The robot now has three IMUs; two more in the feet in addition to the one in the head. The head IMU provides information about the body frame inclination & the two IMUs in the feet provide the orientation of ground (fixed frame). For Pitch control (Sagittal plane balancing) the robot uses all three IMUs & for Roll control (Lateral plane balancing) it uses the two in the feet. A PID controller is used for Pitch control & simple geometrical controller is used for Roll control. 

Learn More

Dynamic Walking

The robot performs dynamic walking which uses ZMP (Zero Moment Point) criteria for balancing. Basically, during walking the ZMP must be within the foot support region for proper stability however the center of mass ground projection may or may not lie within foot support region. In this case, the COM projection is outside the foot support region during single support phase. The walking motion consists of single support as well as double support phases. The double support ratio is chosen as 0.5 for better stability. The waist height remains constant throughout the motion.  

Learn More

Hands, Pick & place, Object Manipulation

The robot performs object manipulation with the help of its two hands. Each hand now has one wrist joint to orient or rotate the object & one 1 DOF gripper. The design of gripper is extremely simple. More complex designs were coming off as too bulky to fit in the robot so I had to keep it simple. Also, I needed the servos to be small & have enough torque so that they can grip tightly & also rotate objects. Micro servos were the best option to go with. However, the wrist joint is not that strong. As of now, there is no vision sensor on the robot. So I have to manually provide the object coordinates in 3D space. The robot then calculates the necessary joint angles for hand motions using Inverse Kinematics. The end of

hand (gripper) follows a 3 point Bezier curve for its motion between any two points. The three points are start, end & a control point in between to determine the exact curvature of Bezier curve. The control point is to be determined by the controller so that there is no obstacle in its path. However, right now I am manually providing the control point because of the absence of vision sensor.

Learn More

Stair climbing (Statically stable)

The robot performs statically stable stair climbing motion. For each leg trajectory, 140 points are generated and corresponding joint angles are found using Inverse Kinematics. After one of the feet is placed on the stair the center of mass of the robot is shifted forward as well as laterally so as to bring the COM over the contact area of the leg which is on the stair. The second leg is then moved to cross two stairs and the process is repeated. The robot knows how many stairs to climb by using the IR obstacle sensors on both feet. As long as both the sensors detect an obstacle in front of the leg i.e the stair the process is repeated. However, this method won't work while descending stairs even with rear facing sensors.

First test walking (It's alive!)

The robot walks for the first time! To make it walk the robot is programmed with the path its foot is supposed to take. Based on the foot trajectory 80 points are generated and the joint angles are calculated using inverse kinematics. The walking however is statically stable i.e before the robot starts to move one leg to take a step it must be completely stable on the other stationary leg. The COM remains within the stationary leg while taking a step. After taking the step the COM is shifted from the last foot to the newly placed foot. This type of walking is very safe & stable for the robot as long as the terrain inclination is same & there are no other unknown obstructions on the path.

bottom of page