Master Thesis (2007)
Title: Humanoid robot: Development of a simulation environment of an entertainment humanoid robot

Abstract: This dissertation was developed in collaboration with Robosavvy Ltd and boosted the creation of the Humanoid Robotics Laboratory of IDMEC-Center of Intelligent Systems, at Instituto Superior Técnico. The developments presented include: i) the software development for interfacing the Matlab Real TimeWorkshop Toolbox with the Bioloid humanoid robot servos; ii) the identification of the internal and external dynamic parameter of the humanoid servos and structure, respectively; iii) the dynamics modeling and simulation of the humanoid robot using the SimMechanics and Virtual Reality Toolbox; iv) the deduction of the equations of motion for an underactuated n-link inverted pendulum. The main objective of the Humanoid Robotics Laboratory, for the time being, is to develop a humanoid robot able to make complex motions like walking, running and jumping through real-time feedback control techniques. This dissertation presents a LQR controller for the simulation and control of the humanoid robot doing the handstand on a high bar, by considering it as an underactuated 3-link inverted pendulum.


Servo Identification
  • Mathematical model
  • Behavior properties
  • Identification and validation

A common DC motor is a simple electromagnetism mechanism based on the Lorentz force law. It defends that any current-carrying wire placed within a magnetic field experiences a mechanical force which is proportional to the current and to the strength of the magnetic field and perpendicular to both, causing a torque. In a DC motor, wires (coil) and the flux density of the magnetic field (B) are arranged in order to develop a torque about the axis of the rotor (rotating part of the motor). To maintain a DC motor spinning, commutators are used to reverse the current every half a cycle, keeping in that way the torque in the same direction.

By analyzing the behavior of the servos it is possible to deduce their mathematical model. Remembering that a servo is a DC motor, the only source of energy that makes its motion possible is the current voltage of the battery. Therefore, and in order to be able to change the output angular velocity of the servo, one out of two solutions can be taken. The first one is to use resistors. The second one and much more effective in terms of dissipated energy is to use electronic control. The most common technique in this last case it to use a circuit known as a chopper to regulate the average voltage applied to the servo, and consequently the output velocity. To do this, the chopper circuit, which is made of thyristors or any other mercury arc rectifiers, turns on and off the supply voltage very rapidly. This technique is also known as pulse width modulation, best known as PWM and it is often controlled by a micro-processor. The next figure presents the electrical equivalent circuit of a simple DC motor using a simple chopper circuit.

where: (click here)

Finally, it has been seen that the servo can receive a desired angular position and a desired angular velocity as input. When the servo receives the desired angular velocity, it converts into the necessary average voltage consumption and then into the correspondent PWM signal. This procedure enables the output angular velocity to be equal to the desired one when working without external load. The next figure provides a possible block diagram control of the servos.





The servo-actuators of the humanoid robot are powered by a 10 Volts DC battery inside the CM5-Box through a three-wire daisy chain.

From the data wire the final desired angular position and velocity can be sent to the servos, whereas a set of output signals can be retrieved in the same way (RS485), such as the actual servos angular position, angular velocity, DC current, temperature and voltage. These data are processed by the micro-controller Atmega8 inside each servo.

Close-Loop position control

By default the servos are configured for position control. In fact, all servos have an internal feedback position control loop. This characteristic can be easily confirmed by the simple experiment shown in the next figure. The servo tries to follow the desired time varying sinusoidal reference position by changing its actual DC current (load) charge through time, even in the presence of an external torque applied at time instant t=6 sec.

Open-Loop velocity control

After some tests, it was shown that the servos do not have internally any angular velocity feedback control. This can be experimentally confirmed by applying an external torque to the servo while in constant rotating velocity. From the figure bellow it can be concluded that the current consumption is not able to respond accordingly after the fifth second when a torque is applied, so the reference angular position cannot be followed.

Stiction dead-zone effect

Stiction is a physical phenomenon that is present in almost any system with moving components. Therefore, its characterization is essential for obtaining an accurate dynamic model of the servos. A simple way to quantify stiction can be made through the following experiment: starting with the servo rotating at a constant speed in one direction, progressively slowing it down until it stops, and then slowly increase its rotating speed in the opposite direction. With this experiment it should be possible to identify the typical dead-zone effect due to stiction. In our case this was clearly quantified to be around 7-10% of the full range when no load is applied to the servo, as can be seen in next figure.


Another parameter with relevance to the behavior of the system is the voltage supplied to the servos. Experiments show that the output estimated velocity error is proportional to the voltage supplied to the servo. In fact, a good output velocity estimation is achieved only if the battery is charged around 10 V, as can be seen from the figure bellow.


Temperature was the last parameter to be tested in order to check its influence in the behavior of the servos. During the tests, the temperature of the servos were within the interval of 25º to 40ºC. At these conditions, no visible effect in the response of the servo was observed and therefore the effect of temperature seems to be negligible.

Load and Speed

Current load and speed are data possible to be retrieved from the servos, however, these data can only be sampled at 10 Hz, being far from the desired 100 Hz for the project. Furthermore, it was not possible to deduce a direct correspondence between the values of the encoders and the units of the international system of units (SI).

Torque as input signal

Torque is a very important variable to control a mechanical system. Therefore, the relation between torque and angular velocity when in free run mode (no direct control of the speed) has to be found. It has been seen that the angular velocity input signal is directly proportional to the servos’s voltage consumption, and consequently to the current intensity. Since torque is also directly proportional to the current intensity, a proportional gain can be deduced from torque to angular velocity.

This gain was deduced making the servo lifting a well known mass, the humanoid leg for various input angular speed signals. Measuring for each case the correspondent torque by knowing the angle of the leg about the vertical, it was possible to determine the correspondence between input speed signal and output torque.

For the identification of the dynamic behavior of the servos it was considered the relation between the reference input velocity and the correspondent estimated velocity obtained through the following equation:

where: (click here)

The classical prediction error method was used for the identification of the servo dynamic model, using the identification data shown in the net figure.

After testing several tentative models with different orders, a Box-Jenkins(2,1,2,1) was found to best approximate the desired dynamical behavior of the servo. The Box-Jenkins model that results in the best data fit is the following:

The following figure compares the real output of the servo with the one estimated by the Box-Jenkins model for the validation data. It can be concluded that the dynamic characteristics of the servo are well captured by the Box-Jenkins model.

























©2008-2011 Humanoid Robot Lab