A Modular Design Process for Developing Humanoid Mobile Robot Viebot

A R T I C L E I N F O A B S T R A C T Article history: Received: 14 June, 2018 Accepted: 30 July, 2018 Online: 05 August, 2018 This paper introduces a design process for developing a humanoid mobile robot, namely VieBot. Stemming from the design process, it is easy to adjust the design and extent robot behaviors to meet customer needs. Our key solution is to split the design into three modules related to robot behavior, kinematic computation and motion control. Base on the results from testbed module under comprehensive testing, the design is gradually improved to satisfy sophisticated requirement of assisting disabled people.


Introduction
This paper is an extension of work originally presented in the 2017 IEEE International Conference on Robotics and Biomimetics (ROBIO 2107) [1], which introduced the performance evaluation of a humanoid mobile robot, namely VieBot, using MS Kinect. This paper focuses on a modular design process for developing VieBot.
VieBot is a humanoid mobile robot shaped like a woman (see Figure 1) with some basic components including a head, neck, torso and two arms. It has a vision ability to observe the working environment and to avoid collision via sensor devices working as human senses such as listening, seeing and touching. Its vision ability is based on a Kinect.
Kinect camera is a sensor device using depth and RGB camera images to support robots an outstanding capability to identify human gestures and motions. According to [2], the second generation of the Microsoft Kinect for Windows V2 is based on the Time-of-Flight (ToF) principle and offers a higher resolution and a wider field of view. Based on the properties of highdefinition, low-cost image reproduction, this device is often chosen for observing and imitating human behavior and gestures.
This device supports many robots in imitating human behaviors in real time or in the recorded data. The kinect images are processed to regenerate the human skeletal structure. Stemming from the regenerated skeletal structure, the robot control system calculates the poses of robot's joints and links by means of inverse kinematic expressions and then controls motions of robot's arm and hand. Based on these flexible motions, VieBot is able to carry out many sophisticated tasks by mimicing complex human behaviors such as greeting, ASTESJ ISSN: 2415-6698 guiding, talking, etc. For this reason, VieBot has been applied for several supportive activities similar to other robots in the world such as guiding visual impaired men [3], assistance robots in hospitals [4], or advertising for clients [5].
According to [6], modular design is aim to select the best assembly of modules for a given task in a design space. The approach of modular design allows a sufficient, cost-effective and rapid design for different specific tasks. For more details, the modular design process is proposed by a hierarchical approach with three levels of filters, simulations, and tests. In our research, a modular design process is modified from [6] by using parallel sub-modules instead of hierarchical sub-modules. The parallel sub-modules concern the designs of robot's behaviors, kinematic computation for controlling arms and hands, and motion control for travelling.
As stated in [7], behavior-based robot control provides good capabilities to design complex behaviors for robots. The key idea of behavior-based control is a divergence design of a complex behavior by multiple easier designs. This key idea is adopted for building a design module of VieBot's behavior definition.
To control VieBot's arms and hands, a design module is created for computing direct and inverse kinematics. The more flexible the arm and hand are, the more complicated the inverse kinematic problem becomes. The most popular solutions for dealing with the inverse kinematic problems concerning three following methods: interactive method [8,9], geometric method [10,11,12] and inverse-transformation method [13,14]. In this research, the mechanical structure and joint variable constraints of VieBot are applied for controlling the arms and hands based on the method of inverse kinematic computation presented in [14] with a modification of the extensional constraints on joint variables corresponding to the specific mechanical design of VieBot. The movements of VieBot's arms and hands are controlled based on the result of processing images taken from the MS Kinect V2. The data of Kinect image processing is also used for choosing a suitable solution among multiple ones. The more details of the modification are analyzed in [1].
To travel around surrounding environment, a design module is necessary for motion control. VieBot moves as a mobile robot on a chassis with three wheels. According to [15], static stability requires a minimum of three wheels, with the additional condition that the center of gravity must be contained within the triangle formed by the ground contact points of the wheels. Besides the localization, the path planning is also important to guide the robot moving to a desired target. According to [16], the path planning problem is divided hierarchically into two problems: global path planning and local path planning. In our research, VieBot deals with the second problem based on a Kinect camera and some sonar sensors to easily move to a human target and quickly change direction to avoid obstacles.
In the next section, the modular design process of VieBot is presented with the modules concerning behavior definition, kinematic computation, and motion control. After that, the experiments in a lab environment and in a meeting hall are implemented with regarding specific design modules and evaluating the whole system operation. Finally, the conclusion and future orientation is given.

Modular Design Process
The design process for developing VieBot is depicted in Figure  2. It is organized with six modules including CN, BD, KC, MC, DA, and TE.
Module CN contains customer needs such as functionalities, technical requirements, term of service, workplace features. Some other customer needs will be not mentioned such as, time, price, hair color, type of dress.
Module BD defines the basic behaviors based on the existing behaviors designed for VietBot. After defining, these behaviors are sent to the next module for computing kinematics. In case a basic behavior has not defined before, a new definition will be carried out in a sub-module and added to module BD. In fact, the behaviors may be sorted in order of priority. This modular organization allows easy creating of new behaviors.
Module KC provides general direct and inverse kinematic equations for the arms and hands. These equations are supported with technical requirements to form activities matching the identified behaviors. In case there are many solutions due to inverse kinematics, the system must select the best one. The method to select the best solution was described in our other publication [1]. Module MC provides functions of motion control such as obstacle avoidance and approaching human target. The motion control is computed based on the sensor data and it is constrained by given workplace properties.
Module DA carries out a mechanical design adjustation concerning behavior definition, kinematic computation and motion control for VieBot concerning prioritized behaviors to meet well the customer need. This module provides a concept-tolaunch process including modification and refinement.
Module TE performs tests for evaluating the whole design adjustations. Some errors will be detected in this module. Then it feeds back the test results to module DA to ensure the final design meets customer functional or non-functional requirements, and detailed specifications.
It should be noticed that customer needs directly affect module DA in design. The design is refined by cross-checking between the module TE output and the customer needs. If any changes are required, the adjustments are performed again in module DA. This iterative procedure of improvement between TE and DA is performed until satisfying the customer needs.

Behavior definition
In this design module, robot behavior definition is a mapping of gestures of human arms and hands to positions and angles of robot's arms and hands as shown in Figure 3. Based on customer needs and the behavioral design, the mechanical design inside DA is accomplished to help align the joints and links of the skeleton. For example, a greeting behavior is defined by imitating a human gesture for welcoming by raising hand and waving hand as shown Figure 4. This behavior is designed in module BD with the length of links and joint angles between shoulders, upper arms, elbows, forearms, and wrists. After that, the data of the behavior definition are provided for module DA to design feasible mechanical parts of the arms and their constraints in joint and operational spaces. By the similar way, different behaviors are defined to meet the customer needs. Actually, some behavior definition contains a multi-solution, e.g. left hand or right hand, upper elbow or below elbow, palm of hand or back of hand. In these cases, an additional condition must be included to limit number of solutions.
More details of modular system diagram of behavior-based control can be seen in [16].

Kinematic Computation
The design of kinematic computation is carried out in module KC. The kinematic structure of VieBot concerning the arms and hands are shown in Figure 5. The arm has six degree of freedom (DoF) corresponding to the six joints involving the shoulder, elbow, upper arm, forearm and wrist. Furthermore, VieBot has one DoF for controlling the five-finger hand to open and close. The kinematic parameters of VieBot's arm is expressed by Denavit -Hartenberg table shown in Figure 6. The kinematic parameters are symbolized as follows: θ i : angle between axes x (i-1) and x i about axis z (i-1) .
α i : angle between axes z (i-1) and z i about axis x i .
-a i : length between O (i-1) and O i along x i .
-d i : length between O (i-1) and O i along z (i-1) .
The kinematic relationship between the shoulder and the hand (considered as the end-effector) is represented by the following equations:

Rp T T T T T T T 0
where 0 0 0 6 6 6 ,, T R p are transformation matrix, orientation matrix, and position matrix of the hand in comparison with the shoulder; Symbols n x , n y , n z , s x , s y , s z , a x , a y , a z stand for rotation vectors of a frame attached to the hand; Symbols p x , p y , p z express position vectors of the hand. The details of the kinematic computation are written in [1].
This module supports the kinematic computations which are used with the behavior definitions and technical requirements.

Motion Control
The design of motion control is performed in module MC concerning avoiding obstacle and planning path. The principle diagram of VieBot's motion control is shown in Figure 7. This diagram is built based on the generic system architecture for robot control in [7] with four functional modules: Sensor-based Localization -SL, Obstacle Avoidance -OA, Target Approaching -TA and Motion Fusion -MF. Module TA processes information concerning target distance T d , and target angle T a to reckon behaviors for approaching the human target. Module TA provides a velocity command T v to control the robot approach the human target. It provides a target angle T a for collaborating motion later. Module OA calculates behaviors for avoiding obstacles on the way to the target. Module OA give out a velocity command v A for driving the robot safely and the obstacle distance d O for collaborating motion later.
Module MF performs a coordination between the behaviors of approaching target T v and avoiding obstacle A v to compute a final velocity command F v to control VieBot to the target without any collision.
The motion coordination has the following form: where T k and A k are functional factors changed after the target angle T a from module TA and the obstacle distance d O from module OA.

Experiments and results
VieBot looks similar to a woman with a height of 1.6 meters and a weight of 55kg. Its computer-based brain is built on an Intel Core i7 Mini-PC with 16GB RAM running MS Windows 10. VieBot's data base of robot is connected with MS Azure cloud through 4G LTE mobile network to use advanced Microsoft Azure cloud services including Face API, Computer Vision and Machine learning that support VIEBOT to recognize human face, gender, age and surrounding objects.

The experiment objective
The experiments are designed to evaluate VieBot's modular designs related to defining robot behaviors based on imitating human behaviors, computing kinematics for arms and hands, controlling its motion for travelling around and approaching a human, performing sophisticated tasks involving making conversation and helping an visual impaired man. VieBot communicates with people in the experimental area as illustrated in Figure 8. While Viebot mimicking human gesture, a second Kinect Camera is used to analyze Viebot gestures. Then, two data streams from Viebot Kinect and the second Kinect is compared and processed to calculate errors using MS Excel and some statistical tools.

Experiment implementation
We did the following three groups of experiments : GR1: Test the design of human-mimiced behaviors and kinematic computation.
GR2: Test the design of motion control for avoiding obstacle and approaching a human target.
GR3: Performance of sophisticated tasks for helping visual impaired people travel around. In experiments GR1, VieBot has to mimic some human gestures such as raising and stretching the arm and hand. Its joint parameters are measured and collected to evaluate the accuracy of the design concerning kinematic computation. The measured differences of the human and robot raising hand behaviors are shown in Figure 9 for the shoulder joint, in Figure  10 for the elbow joint and in Figure 11 for the wrist joint. The black line demonstrates the human movement, the red one illustrates the robot movement, and the green one is the error between the black and red lines.
Base on the analysis, the mean errors of the joint angles concerning shoulder, elbow, and wrist are computed at 4.32%, 5.73% and 3.12%, respectively. These data demonstrate the effectiveness of design taken on the perceived angles of 51 data points.   Figure 12 demonstrates the dependency of the deviations on the magnitude of joint angles. The results show three error trends of the shoulder (blue), elbow (red) and wrist (green). It is noticeable that the trends depend on the joints differently. In other words, the wrist joint errors depend on the input angles much stronger than the others; the shoulder joint errors weakly depend on the input angles; the wrist joint errors strongly depend on the input angles in the range from 150 to 180 degree. These errors are necessary for the design modification in module DA. Bases on them, the design in DA module can be improved by either way: 1) improve the design of mechanical parts or 2) add automatic offset mechanism into the design of kinematic computation inside submodule KC to be aware of input angle ranges or 3) refine the behavior design inside sub-module BD. In experiments GR2, the design of motion control is evaluated by testing the motion of approaching a human target and avoiding some obstacles randomly arranged along the corridor shown in Figure 13. The corridor width is less than 2m and the distance between the obstacles is less than 1.8m. The robot avoids the obstacles with the closest distance of over 15cm and approaches the human target with a distance of about 60cm.
The data of human and obstacle recognition used for motion control is illustrated in Figure 14. The images and depth streams taken from the MS Kinect v2 are processed in a computer Intel NUC. The image processing concerns image enhancement, color processing, segmentation, representation, and object recognition. Stemming from object recognition, the computer extracts object information concerning target angle T a , target distance T d , and obstacle distance O d . These parameters are used for motion control mentioned above in Figure 7.
The experiment results prove that VieBot's mechanical design under the motion control design can help the robot approach a human target safely without collision with obstacle and maintain a safe distance to the human. If any additional behavior is required, it can be added and adjusted inside sub-module BD to satisfy safety requirements.
In experiments GR3, VieBot carried out some sophisticated tasks concerning helping a visual impaired man reach a given position as shown in Figure 15. Firstly, VieBot approached a visual impaired man in a safe distance approximately 60cm, raised its hand toward the man and asked him to give his hand forward and take its hand. Then, VieBot observed the furniture obstacles on the way to plan a path for safely moving and led him to the given position. While guiding the visual impaired man, since the furniture in the room is considered as obstacles, the behavior of avoiding obstacles is always activated beside the leading behavior. The test results demonstrate the ability to coordinate the design for complex missions.

Conclusion
This paper presents the modular design process of VieBot, a humanoid mobile robot developed in Vietnam. The novel design approach facilitates easy extension of new behaviors as well as improve robot performance and precision both robot arm and movement control.
Three groups of experiment in real-world conditions show the advantage of this modular design approach in quickly satisfying user requirements and improving robot performance in sophisticated activities such as assisting visual impaired people.
In further research, more collaborative scenarios will be studied such as access elevator, assisting disabled people in the variety of environments both indoor and outdoor.