Microprocessors and Microsystems 26 (2002) 433–448 www.elsevier.com/locate/micpro
Design and development of an intelligent controller for a pole-balancing robot Meng Joo Er*, Bak Heng Kee, Chee Chong Tan School of Electrical and Electronic Engineering, Nanyang Technological University, Block S1, Nanyang Avenue, Singapore, Singapore 639798 Received 29 July 2001; revised 16 July 2002; accepted 22 August 2002
Abstract In this paper, an intelligent controller capable of static balancing as well as dynamic balancing of a pole mounted on a motorized robot is designed and developed. The brain of the intelligent controller lies in the Fuzzy Inference System, which receives as its input displacement, velocity and acceleration information. An embedded instrumentation system onboard the robot measures the displacement of the robot and the angle of inclination of the pole from the vertical position. For static balancing, the controller needs to maintain the pole in an upright position while the robot is free to move on a flat surface. For dynamic balancing, the robot needs to balance the pole while performing transitions up and down a ramp. Furthermore, the robot needs to steer itself back to the center to prevent it from falling off the ramp. q 2002 Elsevier Science B.V. All rights reserved. Keywords: Micro-controller; Fuzzy inference system; Pole-balancing robot
1. Introduction The inverted pendulum model has proven to be an important precursor to more complex work on active balancing, particularly in the field of legged machines and locomotion studies for robotics. The first recorded attempt for this fundamental problem was by Ref. [1]. He used the parts from an erector set to build a machine that balanced an inverted pendulum on top of a small powered truck (Fig. 1). The truck drove back and forth in response to tipping movements of the pendulum as sensed by a pair of switches at its base. In order to move from one place to another, the truck first had to drive it away from the goal to unbalance the pendulum toward the goal. In order to balance again at the destination, the truck moved past the destination until the pendulum was again upright with no forward velocity. It then moved back to the goal. The inverted pendulum model would become the primary tool for studying balancing in legged systems and the importance of active balancing in legged locomotion has been widely recognized since 1938, see Refs. [2 –12]. However, progress in building physical legged systems that employ such principles was slowed * Corresponding author. Tel.: þ 65-67904529; fax: þ 65-67912687. E-mail addresses:
[email protected] (M.J. Er), keebh@sg:bm.com (B.H. Kee),
[email protected] (C.C. Tan).
down by perceived difficulty of the task. It was not until the late 1970s that experimental work on balancing for legged systems gained momentum Ref. [13]. The major drawback of the previous work is that the algorithms are very complicated Ref. [13]. In this paper, a new algorithm for balancing the pole is presented. We show that by using a three-dimensional Fuzzy Logic Controller, the controller is capable of performing static and dynamic balancing with high consistency and repeatability.
2. Static balancing 2.1. Design and development of robot hardware 2.1.1. Mechanical design The robot was designed to support an inverted pendulum that is free to swing about a horizontal axis with one degree of freedom. The inverted pendulum was secured on a polesupport mechanism and balanced by moving the pivoted support parallel to the plane of swing. Other than the robot’s wheels, no parts of the body touch the balancing platform. On the pole-support mechanism, ball bearings were used in the axle of rotation supporting the pole. A potentiometer was used to feedback the rotating pole angle. An optical encoder was mounted on one side of the front wheel instead
0141-933/02/$ - see front matter q 2002 Elsevier Science B.V. All rights reserved. PII: S 0 1 4 1 - 9 3 3 1 ( 0 2 ) 0 0 0 6 8 - 6
434
M.J. Er et al. / Microprocessors and Microsystems 26 (2002) 433–448
the serial communication link to the computer where they are processed to determine the required direction and magnitude of the force to drive the motor. The output data generated by the computer is the pulse-width-modulation (PWM) signal for the DC Motor. The components of the embedded system are: 1. 2. 3. 4. 5. 6.
Serial port communication Optical encoder feedback circuitry Potentiometer feedback circuitry Motor driver Interrupt generator Micro-controller to handle individual sub-modules (Fig. 4)
Fig. 1. CAD design of first prototype for static balancing.
of the back driving wheels in order to reduce skidding errors. The robot is driven by a DC motor which receives commands from the FIS (Fig. 2). The hardware of the robot consists of the following main modules: 1. 2. 3. 4. 5. 6. 7.
DC Motor Motor and wheel holders Robot base plate Pole pivot bracket Potentiometer to feedback the pole angle Optical encoder to feedback the robot position Transceiver board with Intel 8751 micro-controller
The intelligence of the robot lies in the computer, which communicates with the Intel 8751 micro-controller reading sensory feedback signals and driving the motor. The algorithm on the computer is designed to control the robot throughout the duration of its operation without human intervention (Fig. 3). 2.1.2. PCB design of embedded 8751 system The PCB was designed to provide an interface for capturing and processing readings of the optical encoder (16 bits) and potentiometer (12 bits). The data are sent via
Fig. 2. Fabricated robot structure with the wire-wrapped PCB.
2.2. Design and development of robot software 2.2.1. Proposed control strategy The control system for the pole-balancing robot is separated into two main parts, namely the q/dq/ddq System and the x/dx/ddx System. The basic block diagram of the proposed control strategy is shown in Fig. 5. The three key parameters are the displacement, velocity and acceleration of the pole angle and the robot position. The flowchart of the 87C51/2 micro-controller routine is shown in Fig. 6. 2.2.2. q/dq/ddq System This system is the primary control system to keep the pole upright at all times. The inputs are q, the pole angle with respect to the vertical position, dq, the velocity of the pole movement and ddq, the acceleration of the pole movement. Taking the sampling time into consideration, we can incorporate dq from q by using the relationship between distance, speed and time. This additional information enables the system to predict whether the pole swing is slowing down or vice versa. This is similar to adding derivative control in the classical PID controller. This additional input to the fuzzy system makes the system more intelligent. The same reasoning applies to ddq. 2.2.3. x/dx/ddx System Besides trying to balance the pole, it is desired to maintain the balancing action at a particular position. This is done by the x/dx/ddx System. The inputs are x, robot displacement with respect to a predefined position, dx, velocity of the robot and ddx, acceleration of the robot. The output of the x/dx/ddx System is the required offset angle to compensate for the system so that the motor will return to the desired balancing point on the platform. Similarly, the additional parameters dx and ddx will provide anticipatory actions like what the q/dq/ddq System has achieved with dq and ddq. 2.2.4. Incorporation of fuzzy logic The potentiometer and encoder readings are fuzzified before being read by the FIS, which is implemented using
M.J. Er et al. / Microprocessors and Microsystems 26 (2002) 433–448
435
Fig. 3. Setup of the entire pole balancing system.
C programming language. A total of five membership functions for each variable are created and this results in 125 rules in either the q/dq/ddq System or the x/dx/ddx System. Implementation of the q/dq/ddq System is similar to that of the x/dx/ddx System except that the variables are different. Membership functions of the fuzzy engine are shown in Fig. 7. The above block diagram (Fig. 8) applies to the q/dq/ ddq System as well as the x/dx/ddx System. The maxproduct-COA (overlapping) defuzzifying technique was
used to compute the PWM output of the robot. The following flowchart explains the working principle of a Fuzzy Inferencing Engine (Fig. 9). As illustrated in Fig. 10, the inverted pendulum consists of an arm attached to the motor at a particular point. The arm rotates in the plane OXY, and the motor moves along the X-axis forward and backward under the influence of a force. The input parameters are the angle, u and the velocity, du. The output parameter is the force. The control objective is the following: for any pair (u, du ), which specifies
Fig. 4. Block diagram of the embedded 87C51/2 system.
436
M.J. Er et al. / Microprocessors and Microsystems 26 (2002) 433–448
Fig. 5. Proposed control strategy.
the position and velocity of the system, find and apply a corresponding force to the robot such that the pole is balanced, i.e. does not fall over the motor. The force depends on (u, du ). The Fuzzy Logic Controller is given in the form of If – Then rules as shown:
Fig. 7. Membership functions of the fuzzy engine.
(1) If u is medium negative and du is medium negative then force is large negative (2) If u is small negative and du is medium negative then force is large negative (3) If u is zero and du is medium negative then force is medium negative (4) If u is small positive and du is medium negative then force is small negative (5) If u is medium positive and du is medium negative then force is zero (6) If u is medium negative and du is small negative then force is large negative (7) If u is small negative and du is small negative then force is medium negative (8) If u is zero and du is small negative then force is small negative (9) If u is small positive and du is small negative then force is zero (10) If u is medium positive and du is small negative then force is small positive (11) If u is medium negative and du is zero then force is medium negative
Fig. 8. Block diagram of fuzzy logic control system. Fig. 6. Flowchart of the 87C51/2 micro-controller routine.
M.J. Er et al. / Microprocessors and Microsystems 26 (2002) 433–448
437
Fig. 10. Diagram showing system parameters.
(18) If u is zero and du is small positive then force is small positive (19) If u is small positive and du is small positive then force is medium positive (20) If u is medium positive and du is small positive then force is large positive (21) If u is medium negative and du is medium positive then force is zero (22) If u is small negative and du is medium positive then force is small positive (23) If u is zero and du is medium positive then force is medium positive (24) If u is small positive and du is medium positive then force is large positive (25) If u is medium positive and du is medium positive then force is large positive Fig. 9. Flowchart of basic fuzzy inferencing engine.
(12) If u is small negative and du is zero then force is small negative (13) If u is zero and du is zero then force is zero (14) If u is small positive and du is zero then force is small positive (15) If u is medium positive and du is zero then force is medium positive (16) If u is medium negative and du is small positive then force is small negative (17) If u is small negative and du is small positive then force is zero
2.2.5. Evaluation of system performance Real-time data taken during a successful run have been recorded and plotted using Matlab. Each variable can be analyzed individually and trends of instability in the system can be identified. Fig. 11 shows the variation of q, i.e. the pole angle from the vertical position. The working range of q in the q/dq/ ddq Fuzzy Inference Engine (FIE) is ^ 58. From the graph, the pole angle never exceeds ^ 18. It is evident that the three-dimensional rule base has improved the system reliability and accuracy significantly. Also, Fig. 12 shows the deviation of the robot position from the desired spatial
438
M.J. Er et al. / Microprocessors and Microsystems 26 (2002) 433–448
Fig. 11. Real-time plot of theta.
Fig. 12. Real-time plot of x.
Fig. 13. Real time plot of theta_offset.
Fig. 14. Real time plot of PWM signal.
M.J. Er et al. / Microprocessors and Microsystems 26 (2002) 433–448
Fig. 15. Relationship of the displacement, velocity and acceleration parameters.
point on the platform. Here, the working range of x in the x/ dx/ddx FIE is ^ 5 cm. The graph shows that the robot displacement fluctuates between þ 3 to 2 7 cm, with a mean position of 2 2 cm. This is due to the uneven ground on which the platform is placed. Unless the controller compensates for this uncertainty, the robot will always tend to bias to one side of the balancing point. This is the main idea of balancing the robot on a slope. The variable used in the C language code is ‘t_slope’. This variable is added to each defuzzification membership function of both the q/dq/ddq and the x/dx/ddx FIEs. Note that there are other possible causes to this observation. These include uneven distribution of weights on the robot itself and the driving wheels positioned at the rear of the robot causing an uneven push –pull effect. Despite the above uncertainties and the fact that the robot dynamics is changing with time,
439
the FIE is able to control the effects of these unknowns using simple tuning parameters, namely ‘K_T’, ‘K_DT’, ‘K_X’, ‘K_DX’ and other parameters that decide the range of physical inputs to be fuzzified and manipulated by the controller (Fig. 13). The terms ‘K_PWM’ and ‘K_THETAOFFSET’ will decide the range of defuzzified output to be delivered to the next stage of the control system. For example, ‘K_PWM’ determines the range of effective PWM signal computed by the FIE. If it is set too high, the PWM signal computed will always be saturated at its peak. On the other hand, if it is set too low, the robot may not move at all despite the fact that there are some small variations in the PWM signal computed. The aforementioned observations are evident in the following plots of theta_offset and PWM. The working range of theta_offset varied within ^ 0.48 because ‘K_THETAOFFSET’ was set to 0.4. This argument only holds for the x/dx/ddx System because its output is added directly to the fuzzified theta input. As such, the output of the q/dq/ddq System is the scaled PWM signal which is not recorded. The plot in Fig. 14 shows the actual count for the PWM duty cycle. This is sent to the 8751 micro-controller to produce the corresponding PWM signal. It has been observed that the fast varying PWM signal is due to high sensitivity of the q/dq/ddq System. Undoubtedly, this causes the output of the x/dx/ddx System to be masked by the higher prioritized q/dq/ddq System. In fact, this is an inherent problem within our chosen control strategy. However, there are many reasons to stick to the current strategy. This will be explained further in the section for dynamic balancing. In addition to the two main inputs and the two main outputs of the system, i.e. theta, x_pos, theta_offset and PWM, the following plot shows how the inputs relate to
Fig. 16. Dynamic balancing platform.
440
M.J. Er et al. / Microprocessors and Microsystems 26 (2002) 433–448
their derivatives. The values of all the derivatives are relatively consistent about their means, which are near zero. This further proves the robustness of both the q/dq/ddq System and the x/dx/ddx System. One important observation here is to relate the distribution of the variables with their corresponding membership functions. This will allow accurate analysis of the effectiveness of the chosen tuning parameters. To illustrate this idea, the data of q and dq can be analyzed as shown in Fig. 15.
3. Dynamic balancing 3.1. Design and development of robot hardware Dynamic balancing of the pole will take place on the top of the balancing platform depicted in Fig. 16. The platform has a slight slope at the beginning (Region A) and the end (Region C). The surface of the platform is covered by a layer of rubber in order to increase the friction on the robot’s wheels. A reflective tape is placed along the centre of the platform for the robot to sense its alignment using infrared detectors. To begin with, the robot will be placed within Region A, the pole will be held in an upright position and released after the system is turned on. The robot will try to balance the pole for a minimum duration of 20 s without the pivot point of the pole crossing the line x– x0 . After this initial balancing act, the robot will move across the line x – x0 , through Region B, until the pivot point of the pole crosses the line y –y0 . After crossing the line y –y0 the robot will retrace its initial original path, through Region B until the pivot point of the pole crosses the line x– x0 again. When the robot returns to its original position, it will be counted as one lap. During this dynamic transition across Region B, the robot need not stay for any length of time in any regions. The robot will continue to repeat these cycles within 5 min. However, for all these laps to be counted as successful cycles, the robot must perform at least 20 s of static balancing in Region A before the end of 5 min.
Fig. 17. CAD drawing of proposed design for dynamic balancing.
Fig. 18. Side view of the new design for dynamic balancing.
3.1.1. Mechanical design Based on requirements for dynamic balancing and the experience gained from static balancing, the idea of including steering in the new design was mooted. This calls for an innovative way to drive the robot such that it can steer itself in all directions. As such, two motors are used to drive the left and right wheels. Using feedback signals from the infrared sensors, the robot will be able to orientate itself back to the center to avoid falling off the platform after numerous transitions. An initial design using CAD software is shown in Fig. 17. Further details on the necessary changes following this initial idea will be described in the sequel. Some photographs of the first prototype capable of dynamic balancing are shown in Figs. 18 and 19. In particular, note the changes made for the DC motor drivers. The prototype above uses direct drives for both DC motors, but it turns out that there is not enough starting torque to move the robot. As a result, the structure was
Fig. 19. Isometric view showing the new belt-drive system.
M.J. Er et al. / Microprocessors and Microsystems 26 (2002) 433–448
441
Fig. 20. Control Strategy of the dynamic system.
modified to include gear trains that will produce a much larger torque.
The profiles of each different region are classified as follows:
3.2. Design and development of robot software
1. 2. 3. 4. 5. 6.
3.2.1. Proposed control strategy For dynamic balancing, a different X system is adopted (Fig. 20). However, the THETA system is left unchanged to simplify system tuning. By keeping the THETA system intact, we need only to tune the X system to achieve dynamic balancing. On the contrary, if both systems are being tuned simultaneously for dynamic balancing, it will be very difficult to learn the characteristics of the robot during dynamic balancing. This idea is in fact similar to that used in static balancing, except that the velocity, rather than the position, of the robot is now being controlled. As such, it will be more difficult to set correct tuning parameters for the control system. In order to complete numerous laps, the control system must be reliable and robust. This calls for a velocity profile that is smooth. The basic idea is to accelerate and decelerate gradually. The momentum of the moving robot will also be taken into account to compensate for its inertia. This is especially important when the mechanical structure of the robot becomes heavier in the second prototype. After weeks of experimentation with the robot on the platform, the following velocity profile was adopted (Fig. 21).
Region A First Lap Region B Forward Region C Braking Region B Backwards Region A Braking Final Region A Last Lap
Note that sections 2 –5 in the proposed velocity profile will repeat itself during subsequent laps that follow within the 5 min duration. The robot will initially take off in section 1, enters dynamic transitions and finally, performs static balancing in section 6 (Region A) (Fig. 22). In this work, the fuzzy algorithm was implemented by using the windows programming tool—Microsoft Visual Cþ þ version 6.0. In addition, a graphical user interface was created to facilitate trouble-shooting, tuning and monitoring of the robot performance. The program was developed according to the following sequence (Fig. 23): Note that the numbers, 80 and 120, 220 etc. are positional references that are inherent within the fuzzy controllers. With these positional references fixed with angular references at regular intervals on the adjoining sections of
Fig. 21. Velocity profile of the dynamic system.
442
M.J. Er et al. / Microprocessors and Microsystems 26 (2002) 433–448
Fig. 22. Main flowchart for dynamic balancing.
the slope and level sections of the platform, intermittent angular reference points can be interpolated from the regular samples taken offline earlier. This directly depends on the balancing platform that we used. (1) RS232 Serial Communication Link: The only link between fuzzy algorithm and the micro-controller on the robot. In static mode, it helps to convey 4 bytes of feedback information and one byte of PWM signal. However, in dynamic mode, 2 more bytes of information are required. The first extra byte is the sensor feedback and another byte is for the second PWM signal.
(2) Graphical User Interface (GUI): The GUI reflects the whole system status and provides an interface between users and the fuzzy algorithm. It displays some of the useful information as shown in Fig. 24. (3) Implementation of Fuzzy Logic Controller: There are two main systems, namely the q/dq/ddq System and the x/dx/ddx System. (A) q/dq/ddq System: The entire q/dq/ddq FIE is common with the one used for static balancing. Only the x/dx FIE is modified to cater to the velocity profile in the dynamic mode.
M.J. Er et al. / Microprocessors and Microsystems 26 (2002) 433–448
Fig. 23. Flowchart showing switching of the main program between different regions.
443
444
M.J. Er et al. / Microprocessors and Microsystems 26 (2002) 433–448
Fig. 24. User interface for the pole balancing system.
Table 1 Fuzzy rule base for region A first lap x/dx
0.588
0.513
0.438
0.363
0.288
40.0 60 80 100 120
LN LN MN SN ZE
LN MN SN ZE SP
MN SN ZE SP MP
SN ZE MP MP LP
ZE SP MP LP LP
Table 2 Fuzzy rule base for region A braking and the last lap x/dx
0.663
0.588
0.513
0.438
0.363
40.0 60 80 100 120
LN LN MN SN ZE
LN MN SN ZE SP
MN SN ZE SP MP
SN ZE MP MP SP
ZE SP MP SP SP
(B) x/dx/ddx System: The output of the dynamic x/dx System, THETAOFFSET, is used to control the velocity of the robot during transitions on the balancing platform. The fuzzy rule base of the dynamic x/dx system is shown in Tables 1– 5. The FIE for the dynamic mode follows the basic working principle of its static counterpart, except for the change in the rule base of the x/dx system. The flowchart of the dynamic FIE is shown in Fig. 25. It can be seen clearly that all the different region profiles must be tuned separately. The switching between subsequent profiles must be smooth to avoid sudden change in the system response that may make it unstable. Tuning the robot for dynamic balancing is much more complicated than tuning it for static balancing. As a result, a substantial amount of time must be invested to tune the dynamic mode of the system to perform dynamic balancing satisfactorily. The major problems faced are slow acceleration, deceleration and braking of the physical
Table 3 Fuzzy rule base for region B forward motion x/dx
0.346
0.403
0.453
0.496
0.532
0.559
0.578
0.586
0.587
0.588
0.590
100 110 120 130 140 150 160 170 180 190 200
LN LN LN LN MN MN MN SN SN SN ZE
LN LN LN MN MN MN SN SN SN ZE SP
LN LN MN MN MN SN SN SN ZE SP SP
LN MN MN MN SN SN SN ZE SP SP SP
MN MN MN SN SN SN ZE SP SP SP MP
MN MN SN SN SN ZE SP SP SP MP MP
MN SN SN SN ZE SP SP SP MP MP MP
SN SN SN ZE SP SP SP MP MP MP LP
SN SN ZE SP SP SP MP MP MP LP LP
SN ZE SP SP SP MP MP MP LP LP LP
ZE SP SP SP MP MP MP LP LP LP LP
M.J. Er et al. / Microprocessors and Microsystems 26 (2002) 433–448
445
Table 4 Fuzzy rule base for region B backwards motion x/dx
20.346
20.403
20.453
20.496
20.532
20.559
20.578
20.586
20.587
20.588
20.590
100 110 120 130 140 150 160 170 180 190 200
ZE SP SP SP MP MP MP LP LP LP LP
SN ZE SP SP SP MP MP MP LP LP LP
SN SN ZE SP SP SP MP MP MP LP LP
SN SN SN ZE SP SP SP MP MP MP LP
MN SN SN SN ZE SP SP SP MP MP MP
MN MN SN SN SN ZE SP SP SP MP MP
MN MN MN SN SN SN ZE SP SP SP MP
LP MN MN MN SN SN SN ZE SP SP SP
LP LP MN MN MN SN SN SN ZE SP SP
LP LP LP MN MN MN SN SN SN ZE SP
LP LP LP LP MN MN MN SN SN SN ZE
Table 5 Fuzzy rule for region C braking x/dx
20.288
20.363
20.438
20.513
20.588
180 200 220 240 260
LN LN MN SN ZE
LN MN SN ZE SP
MN SN ZE SP MP
SN ZE MP MP LP
ZE SP MP LP LP
system. This is likely the cause for not being able to follow the proposed velocity profile set in the x/dx rule base. 3.2.2. Evaluation of system performance The following real-time plots of the robot velocity clearly show that the system is working very well (Figs. 26– 28). The first plot shows the superimposition of
Fig. 25. Flowchart showing the switching of the fuzzy inferencing engine between different regions.
446
M.J. Er et al. / Microprocessors and Microsystems 26 (2002) 433–448
Fig. 26. Velocity profile for 5 laps.
Fig. 27. Effect of theta_offset.
velocity profiles of all five laps on the theoretical plot. To study the performance of the dynamic system, the velocity profile is compared with real-time plots of each lap individually. The performance of the robot in subsequent laps i.e. laps 2,3 and 4 are relatively similar, thus only the intermediate lap, lap 3, is explained here. The only difference from the first lap is the calling of ‘Region A Braking’ profile instead of ‘Region A First Lap’. Thus, there is a difference in the values of theta_offset. In fact, the braking in Region A is smoother in response as depicted in the plot. However, the physical performance does not differ much from Region C braking. This is partly due to the fact that the final response of the robot is
influenced by the q/dq/ddq System to a large extent. The theta_offset from the x/dx System has very slight effect on the system response when the main priority is to balance the pole. If the pole is relatively upright at all times, the theta_offset will create a more noticeable effect on the system response (Figs. 29 and 30). Finally, the last lap prior to static balancing will again call for the ‘Region A Last Lap’ profile. This will begin at x_pos ¼ 120 cm when the robot moves backwards in Region B. The profile will last till x_pos ¼ 80 cm. The reason why the theta_offset value is relatively small in this region is due to the profile designed. The profile for Region B Backwards already slows down the speed of the robot when it reaches x_pos ¼ 100 cm. As such, the ‘Region A
M.J. Er et al. / Microprocessors and Microsystems 26 (2002) 433–448
Fig. 28. Theta_offset data collected in lap #1.
Fig. 29. Theta_offset collected in lap #3.
Fig. 30. Theta_offset collected in lap #5.
447
448
M.J. Er et al. / Microprocessors and Microsystems 26 (2002) 433–448
Last Lap’ profile will not cause much braking effect but to ensure a smooth transition back to static balancing. If braking is used, it will cause the robot to move back into Region B again.
4. Conclusions In this paper, an intelligent controller capable of performing static balancing and dynamic balancing of an inverted pendulum mounted on a motorized vehicle has been successfully designed and developed. Experimental studies show that the robot is capable of performing dynamic balancing as well as static balancing with great consistency and repeatability. Currently, other advanced control algorithms are being developed and will be implemented in the near future.
References [1] B. Shannon, Personal Communication, 1985. [2] H. Hemami, F.C. Weimer, Further considerations of the inverted pendulum, Proceedings of Fourth Iranian Conference on Electrical Engineering, Pahlavi University, Shiraz, Iran (1974) 697– 708. [3] M. Vukobratovic, Y. Sepaneko, On the stability of anthropomorphic systems, Mathematical Biosciences 14 (1972) 1–38. [4] M. Vukobratovic, Dynamics and control of anthropomorphic active mechanisms, in: A. Morecki, G. Bianchi, K. Kedzior (Eds.), First Symposium on Theory and Practice of Robots and Manipulator Systems, Elsevier, Amsterdam, (1973), pp. 313 –332. [5] H. Hemami, C.L. Golliday Jr., The inverted pendulum and biped stability, Mathematical Biosciences 34 (1977) 95–110. [6] T. Kato, A. Takanishi, H. Jishokawa, K. Kato, The realization of the quasi-dynamic walking by the biped walking machine, in: A. Morecki, G. Bianchi, K. Kedzioir (Eds.), Fourth Symposium on Theory and Practice of Robots and Manipulators, Polish Scientific Publishers, Warsaw, (1983), pp. 341–351. [7] H. Miura, I. Shimoyama, Dynamic walk of a biped, International Journal of Robotics Research 3 (1984) 60–74. [8] J. Manter, Dynamics of quadruped walking, Journal of Experimental Biology 15 (1938) 522– 539. [9] R.B. McGhee, M.B. Kuhner, On the dynamic stability of legged locomotion systems, in: M.M. Gavrilovic, A.B. Wilson Jr. (Eds.), Advances in External Control of Human Extremities, Jugoslav Committee for Electronics and Automation, Belgrade, (1969), pp. 431–442. [10] A.A. Frank, Automatic Control Systems for Legged Locomotion Machines, PhD Thesis, University of Southern California, Los Angeles, California, 1968. [11] F. Gubina, H. Hemami, R.B. McGhee, On the dynamic stability of biped locomotion, IEEE Transactions on Biomedical Engineering BME-21 (1974) 102–108. [12] V.V. Beletskii, Biped locomotion dynamics I, Izvestiya AN SSSR Mekhanika Tverdogo Tela 10 (3) (1975) 3–14. [13] M.H. Raibert, Special Issue on legged systems, International Journal of Robotic Research 3 (1984) 75 –92.
Dr Meng Joo Er received the BE and ME degrees in Electrical Engineering from the National University of Singapore, and PhD degree in Systems Engineering from the Australian National University, Canberra in 1985, 1988 and 1992, respectively. He is currently an Associate Professor in the School of Electrical and Electronic Engineering (EEE), Nanyang Technological University (NTU).He has authored numerous published works in his research areas of interest, which include control theory and applications, robotics and automation, fuzzy logic and neural networks, artificial intelligence, biomedical engineering, parallel computing, power electronics and drives and digital signal processors applications.Dr Er was the recipient of the Institution of Engineers, Singapore (IES) Prestigious Publication (Application) Award in 1996 and the recipient of the IES Prestigious Publication (Theory) Award in 2001. He received the Teacher of the Year Award for the School of EEE for his excellent performance in teaching in 1999. He was also a recipient of a Commonwealth Fellowship tenable at University of Strathclyde from 14 February to 11 October 2000.
Mr Kee Bak Heng graduated from the School of Electrical and Electronics Engineering (majoring in Communication), Nanyang Technological University (NTU), in 2001. He received his Diploma (with Merit) in Electronics and Computer Engineering (majoring in Control) and Gold certificate of achievement in ECA from Ngee Ann Polytechnics in 1997.Mr Kee Bak Heng was the champion winner in SEARCC’96 International Micro-mouse Contest in Bangkok. He was also awarded the Omron Book Prize for best performance in Fuzzy Logic Control in Ngee Ann Polytechnic in 1997. During his academic days in NTU, his project (Pole Balancing Robot) was selected to participate in the E3 Week Exhibition 2001 (Bronze Medal) and the College of Engineering Technology Exhibition 2002 held in NTU. He has a strong interest in Control Theory, Software Design, and Robotics.
Mr John Tan Chee Chong graduated from the School of Electrical and Electronics Engineering (majoring in Control), Nanyang Technological University (NTU), in 2001. He received his Diploma (with Merit) in Electronics and Computer Engineering from Singapore Polytechnics in 1997.Mr John Tan was the first and second runner up winner in Singapore Robotics Games 97. He was also awarded the Philips Award for meritorious academic performance in Singapore Polytechnic in 1997. During his academic days in SP and NTU, his projects were selected to participate in the Commex 96/97 exhibition held in SP, the E3 Week Exhibition 2001 (Bronze Medal) and the College of Engineering Technology Exhibition 2002 held in NTU, respectively. He has a strong interest in Control Theory, Software Design, and Robotics.