Humanoid Robot

 Status : Completed

Tags: arduino biped Inverse_kinematics servo



AIM

To design and build a bipedal robot by synthesizing the gait of a planar biped walking on a level ground.


COMPONENTS AND TECHNOLOGIES USED

  • Inverse_kinematics

  • arduino

  • servo

  • biped


OVERVIEW

The project aims to develop a bipedal robot using Arduino which walks and moves  like a human. The model consists of ten degrees of freedom, with each leg having five degrees of freedom. Both ends of the legs are connected to the torso. The Torso is a rigid body. This robot can move in a straight line in any direction using the concepts of inverse kinematics.

Robot structure-

 

 

Components 

Arduino: We used Arduino to interact with hardware and software. It helps to control an element, to read the information from a source, and convert the information into action.

We used Arduino Mega because its bigger flash memory of 256kb gives it 8x more memory space than Uno and Micro so that you can upload more hefty code. Arduino Mega comes with the most number of pins which comprises a whopping 54 Digital I/O pins (where 15 of them have PWM) and 16 Input Analog pins. Arduino Mega can easily connect with a Standard A/B USB cable, while the Micro will need a Micro-USB cable.

Servo Motor: A servo motor is a rotational or translational motor to which power is supplied by a servo amplifier and serves to apply torque or force to a mechanical system. Servo motors allow for precise control in terms of angular position, acceleration, and velocity. It uses a positive feedback system to control the motion and final position of the shaft. We control the servo motor with Pulse width modulation (PWM), which sends an electric pulse of variable width to the motor.

Working of the bot -

According to the reciprocal contact of one leg and the ground, a classical human gait cycle is composed of stance, where the foot is on the ground, and swing. In the context of biped robots, walking can be considered as a repetition of one-step motion. The motion cycle can be divided into the single support phase and the double support phase.

Single support refers to the fact that one foot holds the robot’s weight while the other foot is moving forward in the air.

To make our robot stand properly, we hung our robot with rope above the ground and tuned each servo motor. We hung it with the rope because while tuning, it may fall down and leads to hardware damage to the robot.

 

Walking of the robot can be described in these steps:

  1. At first, the bot is in a standing position.
  2. Robot bends its knees so that it will be able to  swing one leg above the ground and put both legs on the ground before making new walking steps. We say this position is a sitting position. 
  3. Swinging one leg above the ground. To swing it's free leg to make a new step, robot tilts its upper body to the opposite side so that leg gets enough height for the swing.
  4. Both legs in the ground to make further walking steps.
  5. At the end, both legs come together to its normal standing position.

 

Forward and inverse kinematics are  implemented to determine the main parameters affecting humanoid robot behavior and specify the reliable method to control motion and preserve stability. The most frequently practiced parameters to be defined are joint parameters, including required drive torques, angles, and relative twists.

Forward or configuration and inverse kinematics for humanoid-The forward kinematics problem represents the relationship between the individual joints of the robot humanoid and the position and orientation of the tool or end effector.

The parameters for the 10 DOF of the lower body can be used further for forward and inverse kinematics to generate a trajectory:

Trajectory of hip, foot and center of mass was generated for the best

stability of the biped system.

A third-order polynomial function with variable t (time) is used to describe its trajectories. 

 

Side View-




 

Front View-

Methodology -

At first we acknowledged different motions of our robot and through that motion we planned the trajectories and find different positions of our robot.Then we used the concepts of inverse Kinematics to find different joint angles of servo motor for best possible walk.

 

Trajectories -

Trajectory planning helps us in finding a time series of successive joint angles that allows moving a robot from a starting configuration towards a goal configuration in order to achieve a task.

We used different trajectory equations for the better stabilization of our robot

Third order Polynomial function-A third order polynomial function with variable t (time) is used to describe the trajectories of the robot.

Third-order polynomials were used so that distance, speed, and acceleration all will come into consideration during trajectory planning.

X = a0 + a1(t) + a2(t)2 +  a3(t)3

Trajectory of hip center-

The hip center of a biped robot is a critical point for controlling its motion. By determining the trajectory of the hip center, the robot's movement can be controlled. The trajectory can be defined as a hyperbola, an ellipse, or a straight line.

Hyperbolic Trajectory: A hyperbolic trajectory of the hip center involves moving the hip center of the robot in a pattern that resembles a hyperbola. This type of trajectory is useful for applications that require the robot to move in a controlled and agile manner. The joint angles required for the robot to move the robot by using a hyperbolic trajectory of the hip center of the robot can be calculated using inverse kinematics.

Elliptical Trajectory: An elliptical trajectory of the hip center involves moving the hip center of the robot in a circular or oval pattern. This type of trajectory is helpful for applications requiring the robot to move in a more stable and controlled manner compared to hyperbolic.  The joint angles required for the robot to move by using the elliptical trajectory of the hip center of the robot can be calculated using inverse kinematics.

Straight Line Trajectory: A straight-line trajectory of the hip center involves moving the hip center of the robot in a straight line. This type of trajectory is suitable for applications requiring the robot to move from one point to another more quickly, efficiently, and in a stable and controlled manner compared to elliptical and hyperbolic. The joint angles required to move the robot by using the straight-line trajectory of the hip center of the robot can also be calculated using inverse kinematics.

 

And the straight line equation helps our robot for the best possible walk.

The trajectory of foot-

The trajectory we have used for the foot of the robot during its walking step(taking its foot above the ground and putting it forward on the ground ) is an elliptical trajectory.Because an elliptical trajectory helps our robot for better stabilization and agile walking.

Various motions -

  1. Left leg starting- In this process, our robot bent its knee and tilted towards the right by changing the position of the hip center to 0.54 of the width of its hip so that it gets enough height to put the left leg forward to the right leg,  ensure  both legs are in contact with the ground and for the balancing of the robot on one leg. And then re-center its hips to its primary position.

The third-order polynomial function with variable t (time) was used for movement of the hip to the right when the robot takes its left foot off the ground. And we have used a straight-line trajectory for bringing the hip to its primary position.

  1. Right leg walking- In this process the robot swings its right leg above the ground and moves forward by tilting towards left for the further walking steps and when both legs are in contact with ground the hip comes back to its primary position.

The third-order polynomial function with variable t (time) was used for the movement of the hip to the left when the robot takes its right foot off the ground. And we have used a straight-line trajectory for bringing the hip to its primary position

 

  1. Left leg walking-In this process, the robot swings its left leg above the ground and moves forward by tilting towards the right for the further walking steps, and when both legs are in contact with the ground, the hip comes back to its primary position.

Here also, the same concept was used for hip center trajectory as used in the right leg walking .

  1. Right leg stopping-In this process, the robot swings its right leg above the ground and moves forward by tilting towards the left and puts the right leg parallel to the left so that it comes back to its standing position.

To stop the robot, firstly, we used the straight line trajectory to re-center the hip to its primary position and then used the third order polynomial function to put the foot also to its primary function and so once again our robot comes to its standing position. 

 

Inverse kinematics -

To control the motion of a biped robot, it is necessary to determine the movement of its individual parts. Inverse kinematics is the method used to calculate the required joint angles for the robot to achieve a particular desired position or motion.

The inverse kinematics provide closed-form solutions to finding joint configurations that drive the end effectors of the robot to desired target positions in the three-dimensional physical space.


 

By using inverse kinematics we find the different joint angles of each servo motor from the position of our robot for the perfect stable motion.

 

The joint angles was found by using the concepts shown below:


 

Joint angle positioning -

Once the trajectory pattern is determined, the required joint angles for the robot to achieve the desired motion along that trajectory can be calculated using inverse kinematics. Inverse kinematics involves using the geometric properties of the robot and the desired position or motion to calculate the required joint angles.

 

Source Code -

https://github.com/roboclub-mnnit/Humanoid-2022-23-Project

Resources -

 

1. Basic Concepts Of Arduino:

https://youtu.be/zJ-LqeX_fLU

 

2.Forward and Inverse Kinematics:

Lec1 - Class 1-Kinematics

Lec2 - Class 2-Kinematics

 

Youtube Link:

1.   https://www.youtube.com/playlist?list=PLT_0lwItn0sDBE98BsbaZezflB96ws12b  (Video: Video7-Video 23)

2.   https://www.youtube.com/playlist?list=PLT_0lwItn0sAfi3o4xwx-fNfcnbfMrXa7  (Video:Video1-Video9)

3.Trajectory Planning

 

Lecture 11: Trajectory Planning

Real-life applications -

  1. This robots can navigate on any kind of surfaces which is inaccessible for wheeled robots since, our robot has legs.Wheeled robots are designed to work on prepared surfaces like smooth surfaces, roads, rails, etc, Legged robots can jump or step over obstacles, whereas wheels need to travel over it or take a different path, Legged robots can avoid undesirable footholds which can’t be avoided in a wheeled robot, Legged robot helps us in exploring human & animal locomotion.

 

  1. This robot can go where humans can't or shouldn't like small and compact places to complete any search  operation,to record any wildlife activities for any research purpose without risking researcher’s  life etc.


 

Problems faced -

  1. Balance and stability: It must be designed with a stable base to prevent them from toppling over while walking or performing other tasks.
  2. Human-like movement: Replicating human movement in robots is difficult due to the complexity of the human musculoskeletal system.
  3. Earlier we used an MG995 servo motor and it was not as stable as our current MG958 servo motor.But now also it’s not as perfect as we were expecting.

Future work-

  1. Connect both hands of our robot to its body so that it can grasp and move heavy objects and its delicate soft structure to place fragile items.
  2. Bipedal stable walk on uneven surfaces and also in the inclined plane.

CONTRIBUTORS -

Name

Branch

Reg. no.

Devendra Saini

ME

20213032

Abhinav Singh

PIE

20216004

Anu Priya

ME

20213059

MENTORS -

 Purushotam Kumar Agrawal