Design and applications of a miniature anthropomorphic robot

Mikołaj Wasielica, Marek Wąsik, Piotr Skrzypczyński

Institute of Control and Information Engineering, Poznan University of Technology, Poland

Abstract: This paper presents the prototype of a miniature anthropomorphic robot. This robot was designed as a low-cost hardware platform for implementing basic skills of a humanoid: efficient gaits, balance maintenance, effective programming of complicated motion sequences. We provide a detailed description of the mechanical and electronic design, present the basic software modules, and demonstrate some applications of this robot. The prototype was tested extensively participating in numerous competitions and live performances.

Keywords: anthropomorphic robot, biped walking, servomotor, microcontroller, robot programming, motion capture

1. Introduction

In the last decade we witnessed a change in robotics research, and an evolution in the application areas of robots. Creation of new market niches outside the manufacturing area (e.g. security, healthcare, entertainment) opened new fields of research, focused on decision-level autonomy, reliable perception, and human-robot interaction. For these new research directions we need also new robotic hardware – mobile platforms that pack more computing power, many sensors, and enable more flexible locomotion, particularly in the environments designed for humans, and populated by humans.

Robotic platforms that are most suitable to operate among people are anthropomorphic robots. Their kinematic structure resembles the structure of the human body, that is, they are bipeds with two arms and exteroceptive sensors mostly mounted in the head [11]. Such a body structure enables a robot to fit into tight spaces, negotiate various non-planar areas, including stairs, and manipulate objects if necessary. Such robots, often denominated as humanoids, inspire the imagination of researchers, but are in fact very complicated, and usually very expensive 
[6, 9].

Because of that, in some projects aimed at human-robot interaction or mobile manipulation, a simpler hardware alternative is taken, and a humanoid upper body structure is mated with a wheeled mobile base. This type of design provides a stable base for manipulation tasks, and much simpler control of the mobility activities. However, such a robot lacks the ability to climb stairs or change its posture, e.g. if it has to take something from the floor level. Therefore, simpler low-cost alternatives to the expensive full-size humanoid robots are sought for, such like miniature anthropomorphic robots, which are already successfully used in the RoboCup humanoid league soccer games.

Fig. 1. Miniature anthropomorphic robot
Rys. 1. Miniaturowy robot antropomorficzny

This paper describes an attempt to build such a miniature anthropomorphic robot from scratch (fig. 1), as an opposite to small humanoids built from commercially available kits. The original design gave us much freedom as to the mechanical structure of the robot, its electronics, and the software. The robot was initially designed for humanoid robot competitions – the Robot Challenge in Vienna, winning in Humanoid Sprint and taking second place in Humanoid Sumo competition. Later, the design was improved and the robot revealed its potential as a research platform for human-robot interaction under the control of a simple motion capture system with the Kinect sensor. Being used for about two years, the robot participated in numerous public events, demonstrating that it is a reliable and easy to use hardware/software platform, with a potential for further improvements.

The following section describes some small anthropomorphic robots that have been recently presented or are available commercially. Section 3 describes the mechanical design of the robot, while Section 4 provides a brief overview of its electronics. The next section shows the structure of the basic software. Section 6 describes the applications of our robot: from simple gaits designed for robotic competitions, through the modifications necessary for the sumo games, till the structure of the Kinect-based system enabling the robot to mimic the motion of a human operator. The paper concludes with Section 7, which also gives directions for future work.

2. Related work

The first humanoid robotics competition within the RoboCup framework was held in 2002. Starting from that time many anthropomorphic robots have been built for the soccer games. Some of them are then used as research platforms, particularly those designed within the Humanoid League TeenSize class, which are about 1 m tall. An example is the Robotinho [5] from the Freiburg University, which was turned into a humanoid museum tour guide robot. Robotinho is 110 cm tall and has a total weight of about 6 kg. It has 25 degrees of freedom, six per leg, four per arm, three in the trunk, and two in the neck. This robot has several sensors for navigation, including stereovision and a 2D laser scanner, and a PC-notebook as its main computer. However, all these components and the size make this robot rather expensive.

A cost oriented humanoid robot of similar size is Archie [4] from the Vienna University of Technology. The low-cost design was achieved by an extremely light-weight structure, by using standardized joints consisting of brushless motors and harmonic gears, and a novel approach for finding the absolute position with magnetic sensors.

Smaller humanoid robots are available commercially. Perhaps the most known one is Nao [1], from Aldebaran Robotics. This robot is very popular, because it is used in the international robotics competition - Robot Soccer World Cup (RoboCup) in the Standard Platform League. It has been developed since 2004 and the newest version is 58 cm tall, weights 4.3 kg and has 25 degrees of freedom. The robot has an integrated Wi-Fi module, 2 HD cameras, 4 microphones, 2 speakers, inertial measurement unit, 4 ultrasonic distance sensors, pressure sensors in feet and bumpers. Nao robot is based on Intel Atom 1.6 GHz CPU, with Linux as the operating system. Nao is one of the most sophisticated small humanoid robots, but its price is quite high – $15 000. Moreover, it exhibits rather poor dynamics of motion. Nao is delivered with a graphical programming tool, which can be used for motion planning. However, this method requires significant effort of the operator.

Because the ”closed“ design of hardware and software, which is normal for commercial products, does not satisfy most of the researchers, there appeared small humanoid robots built according to the ”open source“ concept, with regard to both the software and hardware. The most known one is Darwin OP [7]. It was manufactured by the Korean company Robotis, in collaboration with Virginia Tech, Purdue University and University of Pennsylvania. It is made of 20 Dynamixel servomotors, is 45 cm tall and weights 2.9 kg. It also uses Intel Atom 1.6 GHz processor. This robot is equipped with Wi-Fi, HD camera, 2 microphones, inertial sensor and feet collision sensors.

There are also very simple humanoid robots on the market, which are usually available as toys or kits for hobbyists of robotics. A good example of such a kit is the Kondo KHR-1 [8], a remotely controlled anthropomorphic robot. However, such robots are generally not suitable as hardware platforms for research on autonomous robots, because they have few sensors (if any), and lack the computing power to program any kind of more complicated motion patterns.

3. Mechanical design of the robot

Our anthropomorphic robot is shown in fig. 2. It is 38 cm tall and its total weight is about 1.8 kg. Its body has 25 degrees of freedom (DOF): seven per leg, three per arm, one in the trunk and two in the neck. Fig. 3 shows robot kinematics with assigned coordinate systems according to the Denavit-Hartenberg notation.

Fig. 2. Mechanical design of the anthropomorphic robot
Rys. 2. Projekt mechaniki robota antropomorficznego

Particular emphasis was put on the robot leg mechanics, in order to ensure efficient and smooth walk. Each leg has 7 DOFs: three in the hip joint, one in the knee, two in the ankle and one in the foot. The foot joint enables the robot to bend a foot at its frontal part, which works like bending fingers. This approach significantly increases the leg mobility and range of movements. In particular, it allows to take longer steps, and makes it easier to walk on straight legs, not bending the knees.

One of the most important issues during walking is the body balance. Because of this, the robot has one DOF in its trunk, which allows to move the center of mass to the right or to the left. This allows to raise one of the hips above the other one, while keeping the upper torso vertical. Arms were simplified to three degrees of freedom, what is sufficient to implement many gestures, to grasp objects with both arms and to balance during walking.

Fig. 3. Kinematics structure of the robot
Rys. 3. Schemat kinematyczny robota

To drive the robots joints we used HXT12K servomotors, which are often applied in remote-controlled model toys. They have a torque of 1 Nm, speed of 0.15 s/60º with no load, mass of 55 g, and metal gears. They were selected because of their low price and wide availability.

The biggest disadvantage of those actuators is that the drive shaft is only on one side of the servomotor. To ensure sufficient stiffness of each joint, it was necessary to fix segments at two points on the opposite sides of the joint (fig. 4). The first point was obtained by connecting the segment directly to the servo arm. The second point was made with use of an additional bearing. In the first segment there is a hole where the bearing is glued, while the second segment is screwed to the nut.

Another drawback of the selected servomotors is the small backlash, which has an influence on the precision of positioning of the joints. Nevertheless, the chosen servomotors are sufficient to power the robot and to execute complex motions. The servos have enough torque even to enable the robot to stand on one leg.

The robot was designed using Autodesk Inventor CAD software. It allowed to simulate and analyze the workspace of particular moving parts, and to optimize the design. Moreover, the CAD software was used to verify the strength of the construction. Robot structure is composed of bent parts from a 1.0 mm flat aluminum sheet. It is a simple and affordable technology, which gives satisfactory strength and lightweight structure. All parts were cut on a CNC machine. This increased the precision of the resulting construction. The size of the robot is primarily a result of servomotors dimensions. However, we paid a lot of attention to keep the human-like proportions of the robot’s body.

Fig. 4. One of the robot joints
Rys. 4. Jeden ze stawów robota

4. Electronics of the robot

Robot’s control system is based on the ATXMega128A1 microcontroller [3]. This is a high-performance, low-power 8-bit microcontroller, produced by Atmel. It has a rich set of peripherals, the frequency of 32 MHz, and is delivered with free development environment – AVR Studio. This microcontroller was selected because of the low price, ease of use, and availability of interfaces, which were necessary to connect robot’s components.

The robot is fully autonomous. All components are connected to the on board microcontroller, which controls the behavior of the robot. There are actuators, a number of sensors, and a wireless module (fig. 5). All 23 servomotors are controlled from the main microcontroller using standard PWM signals.

Fig. 5. Schematics of the robot electronics
Rys. 5. Schemat układów elektronicznych robota

The robot is equipped with an inertial measurement unit (IMU). The IMU estimates the attitude of the robot’s body with regard to the gravity vector, and therefore is essential for proper control of the movements. Currently the IMU consists of a small 3-axis digital accelerometer, and a 3-axis digital gyroscope, which are soldered to the main board. This solution is cost-effective, and is sufficient for the currently exploited range of movements. However, the design of the electronics enables to connect the ADIS1635x [2] integrated IMU, which is more accurate but also significantly more expensive.

There are also other sensors integrated in the robot: a temperature sensor, and voltage and current sensors for diagnostics. To communicate with a computer the controller uses a Bluetooth module, which allows to control the robot from an external device within range of 100 meters.

In the robot’s head, there is mounted an infrared distance sensor (Sharp GP2D12), which allows to detect obstacles in the range of 80 cm. On the controller board there are also some extra connectors, which are ready to connect additional sensors of this type, if necessary.

The robot is powered by high-current Lithium-Polymer rechargeable batteries, which are located in its chest. The battery pack has a nominal voltage of 11.1 V and a capacity of 1050 mAh, which lasts for about 60 minutes of operation. A high power buck converter LM5642 [10] is used to power all servomotors. This ensures constant dynamics of the servos independently of the discharging batteries, and decreasing voltage. There are also some additional voltage converters in the robot, which are needed to power the logic components and sensors.

Fig. 6. Visualization of printed circuit boards (PCBs)
Rys. 6. Wizualizacja płytek obwodów drukowanych

The controller board was custom designed. Because of the narrow space inside the robot’s torso, we had to design the PCBs using a sandwich structure (fig. 6). The first board contains the power converters, while the second one hosts the microcontroller, sensor interfaces, and connectors for other components. Moreover, there is a Bluetooth module located on an additional small PCB. This allows to replace it with another compatible module (e.g. ZigBee wireless module).

All printed circuit boards are located in the robot’s chest, and are adjusted to the chest shape. Additionally, the front board with power converters touches the aluminum structure, which works as a heat sink. On this board, there are also control LEDs and switches, so there is an easy access to them from the front of the robot.

5. Software architecture

5.1. On-board controller software

The on-board software is implemented on the ATXMega128A1 microcontroller, which has only 4 kB of RAM memory and a 32 MHZ CPU. Due to this limited computing power it was not possible to use any of the popular operating systems (e.g. Linux), and we had to create a custom software system from scratch. The on-board controller’s software initializes all electronic subsystems of the robot and controls them.

Each robot’s sensor and actuator is directly connected to the microcontroller. It enables controlling immediately every joint and gathering sensors data instantly. Information about internal states, like orientation or CPU temperature are readily available. The most important information about supply voltages is presented by three LEDs and, additionally, the buzzer generates a signal of alarm when the voltage is too low. Failed initialization or errors are signaled by flashing one of three other LEDs.

The on-board software is able to work in two modes. The first one enables fully autonomous motion using only measurements from the proprioceptive and exteroceptive sensors. The second mode of operation establishes wireless control of the robot using an off-board PC. Communication with the PC computer is provided by the Bluetooth module using a virtual serial port. Opening the COM port enables exchange of information between the computer and the microcontroller.

Data coming from the computer is sent as a frame, which contains: start sign, command, configuration of every joint in degrees, and end sign. The microcontroller’s software accepts or rejects the upcoming data depending on its correctness. An accepted configuration is converted into the PWM signals, then used for positioning of the servos 50 times per second. If there is no new data, previous configuration is being processed. The microcontroller sends to the PC information about the robot’s state: battery voltage, CPU voltage, power supply, attitude of the robot, temperature and measurements from the distance sensor.

As a programming language we used pure C and AVR Studio 5.0 as a development tool, because of its support for ATXMega microcontrollers.

5.2. PC-based software

It is possible to control the robot movements using its two input buttons and to visualize internal states with its three LEDs, but it is very inconvenient and inefficient. So we decided to develop an application for PC to simplify programming of our robot.

We used Microsoft Visual Studio 2008 as a development tool and the C# programming language. We chose Windows Forms Application as GUI. Fig. 7 shows the created application, which is divided into two sections. One of them visualizes the upcoming data from the robot and the other one enables to control all servomotors and the power supply. Exchanging data between the robot’s microcontroller and the PC computer starts after clicking a button, which enables connection using the COM port.

We used charts to present internal states, like battery voltage. The bars in charts are related to minimal and maximal values of measurements. Also numerical values are displayed. Attitude of the robot’s trunk obtained from the IMU is shown as roll, pitch and yaw angle in degrees. There is also picture of the robot with a label on each joint showing its orientation in degrees.

Fig. 7. PC-based application window (basic version)
Rys. 7. Aplikacja sterująca z komputera PC (wersja podstawowa)

Steering of the robot was implemented using sliders. The user can select 1 of 23 servomotors and set its position with slider. It is also possible to set minimal and maximal value, and zero position for each joint. Positioning two servos located symmetrically in the robot is possible at the same time. After adjusting the pose of the robot, the final configuration can be copied, e.g. to clipboard. Having several transitional poses we are able to generate a more complicated motion pattern.

Pushing a proper button in the PC application opens a text file with the previously saved ”choreography“, and triggers performing the movements, for example waving robot’s arms. There is also a pose resetting button, and a button to remotely switch off the robot.

6. Applications of the miniature anthropomorphic robot

6.2. Autonomous functions

Autonomous movements are based on previously generated configuration trajectory saved in internal microcontroller memory. Choreography is compiled using PC application as described above. This process is very laborious, but using this method we successfully developed dynamic gait. Using it we won Humanoid Sprint competition in Vienna (2011). Also we took second place in Humanoid Sumo. For this competition, we developed set of data including few types of behavior, e.g. walking towards, rotating left and right, standing up or catching objects. Activation of any of them depends on sensors measurements, especially IMU and proximity sensor. Simple code enables robot to scan the nearest space by rotating its head with distance sensor. When it detects the opponent, robot turns and starts walking toward him, till it is close enough to catch and to knock him over. Whenever robot falls down, it is programmed to stand up and continue the plan.

6.2. Motion-capture-based control

Because programming robot movements using PC-based software was very laborious, we decided to develop a control system for a humanoid robot based on human body movement tracking. The input device is the Kinect sensor that allows to obtain a depth map of the scene. This information is processed with the Microsoft Kinect SDK library allowing for the recognition of the human figure and the localization of the human body parts (in a process known as motion capture). The obtained coordinates are the input data for the algorithm that calculates the robot configuration mimicking the observed human pose. The algorithm uses the robot’s kinematics and a model of static stability, so it is possible to maintain the balance of the robot, and to avoid the singular poses by generating only acceptable configurations. The commands of the control algorithm are wirelessly transmitted to the robot that mimics human pose if it is possible. The robot’s choreography programming system was implemented as an integrated application to be controlled by gestures and voice. Some of the applications of the anthropomorphic robot are demonstrated in the movie available at: http://lrm.cie.put.poznan.pl/mw2ps.wmv.

7. Conclusion

In this paper, we presented miniature anthropomorphic robot and its applications. Robot was designed and built from scratch. We used inexpensive servomotors, custom-designed printed circuit board and hand-made parts. For programming the robot motion we developed a basic PC application, and an advanced one, using motion capture. The first prototype of the anthropomorphic robot fulfilled most of our expectations.

The main shortcoming of the current design is associated with the servomotors because of their lack of any position feedback, poor quality gears, one side horn, and analog input signal. Each of this disadvantages impeded development of the control algorithms. In spite of these problems, the work was completed successfully, which was confirmed in numerous live performances and competitions (fig. 8).

Although it is small and low-cost, the robot has some advantages comparing it to other designs, even much bigger. It has bending toes – this feature enables the robot to walk in a quite natural way, on straight legs, rather than with bent knees. Also the interactive motion programming tool using Kinect sensor is to our best knowledge, a novelty.

In our further research we are planning to design a new version of our robot as a platform for investigation of human-robot interactions, and to develop stable gaits on uneven terrain. Drawing on the gained experience we would like to develop a more advanced, and reliable anthropomorphic research platform.

Fig. 8. Demonstration of the anthropomorphic robot during Poznan Game Arena fairs (2012)
Rys. 8. Pokaz robota przed publicznością podczas targów Poznań Game Arena (2012)

References

1. [www.aldebaran-robotics.com] – Aldebaran Robotics (November 16, 2012).

2. [www.analog.com] – Analog Devices, Six Degrees of Freedom Inertial Sensor ADIS16365 (November 16, 2012).

3. [www.atmel.com] – Atmel Corporation, XMEGA A1 Microcontroller Preliminary (November 16, 2012).

4. Byagowi A., Kopacek P., Baltes J., Archie: A Cost Oriented Humanoid Robot, Prepr. 18th IFAC World Congress, Milano, 2011 (CD-ROM).

5. Faber F., Bennewitz M., Eppner C., Guoruog A., Gonsior C., Joho D., Schreiber M., Behnke S., The Humanoid Museum Tour Guide Robotinho, IEEE Int. Symp. on Robot and Human Interactive Communication, Toyama, Japan 2009, 891–896.

6. Hirai K., Hirose M., Haikawa Y., Takenaka T., The Development Of Honda Humanoid Robot, IEEE Int. Conf. on Robotics and Automation, Leuven, Belgium, 1998, 1321–1326.

7. Ha I., Tamura Y., Asama H., Han J., Hong D.W., Development of Open Humanoid Platform DARwIn-OP, SICE Annual Conference, Tokyo, Japan, 2011, 2178–2181.

8. [www.kondo-robot.com] – Kondo Kagaku Co., Ltd. (November 16, 2012).

9. Sakagami Y., Watanabe R., Aogama C., Matsunaga S., Higaki N., Fujimura K., The Intelligent ASIMO: System Overview and Integration, Proc. IEEE/RSJ, Int. Conf. On Intelligent Robots and Systems, Lausanne, Switzerland, 2002, 2478–2483.

10. [www.ti.com] – Texas Instruments, LM5642/ LM5642X High Voltage, Dual Synchronous Buck Converter with Oscillator Synchronization (November 16, 2012).

11. Wang J., Li Y., A survey on the structures of current mobile humanoid robots, Proc. IEEE Asia-Pacific Conf. on Circuits and Systems, 2008, 1826–1829.

Miniaturowy robot antropomorficzny: budowa i zastosowania

Streszczenie: W artykule przedstawiono prototyp miniaturowego robota antropomorficznego. Robot ten został zaprojektowany jako tania platforma sprzętowa do realizacji podstawowych ludzkich umiejętności: wydajny chód, utrzymanie równowagi, efektywne programowanie skomplikowanych sekwencji ruchu. Przedstawiono szczegółowy opis projektu mechaniki i elektroniki, podstawowych fragmentów oprogramowania oraz zaprezentowano niektóre z zastosowań robota. Prototyp został gruntownie przetestowany podczas startu w licznych zawodach i występach na żywo.

Słowa kluczowe: robot antropomorficzny, dwunożne chodzenie, serwomotor, mikrokontroler, programowanie robota, motion capture

Piotr Skrzypczyński, DSc, PhD

Graduated (1993) from the Poznan University of Technology (PUT). He is professor at the Institute of Control and Information Engineering of PUT. His current research interests include: autonomous mobile robots, SLAM, multi-sensor fusion, and computational intelligence methods in robotics.

e-mail: piotr.skrzypczynski@put.poznan.pl

Mikołaj Wasielica, MSc

Graduated (2012) from the Poznan University of Technology. He is a PhD student at Faculty of Electrical Engineering of PUT. His current research interests include: anthropomorphic robots motion planning, motion capture techniques, and man–machine interfaces.

e-mail: mikolajwasielica@gmail.com

Marek Wąsik, MSc

Graduated (2012) from the Poznan University of Technology. He is a PhD student at Faculty of Electrical Engineering of PUT. He has an experience with creating mobile robots, including designing and building mechanical parts as well as electronic components and low level programming.

e-mail: wasik.m@gmail.com