Designing an Algorithm for Bioloid Humanoid Navigating in its Indoor Environment

Gait analyses are the preliminary requirements to establish a navigation system of a humanoid robot. Designing a suitable indoor environment and its mapping are also important for the android localization, selection of a goal to achieve it and to perform the assigned tasks in its surroundings. This paper delineates the various gaits like walking, turning, obstacle overcoming and step up-down stairs for a humanoid system. The writing also explicates the design of the indoor test environment with the stationary obstacles placed on the navigation routes. The development of an efficient algorithm is also excogitated based on the various analyses of gaits and the predefined map of the test environment. As the navigation map is predetermined, the designed algorithm animates the humanoid to navigate by selecting an optimal route, depending on some external commands, to reach at the goal position. Finally the performance of the system is analysed based on the elapsed time of the navigation action with the validation of optimal navigation strategy where the designed algorithm demonstrates the robustness of its implementation and execution.

A biped humanoid is considered as an open kinematic chain consisting of two sub chains as legs and torso which connected at a common point, the hip.Walking gait is defined as the alternating phases of single and double support mode.If only one leg is in contact with the ground is called as the stance leg while the other one is called as the swing leg.A planar biped is a biped with motions taking place only in the sagittal plane while the three dimensional walker has motions taking place in both the sagittal and frontal planes [1,2].Reality is that, research in this area gathers multiple disciplines that introduce one of the challenging orbits in the Mechatronics Engineering.
In order to give an overview of navigation techniques, these can be classified based on indoor and outdoor navigation system.For indoor navigation system the easiest way of making a robot goes to a goal location is simply to guide to the location.This guidance can be done in different ways like burying magnets or inductive loops in the floor, painting lines on the floor by placing beacons, markers, barcodes etc.These techniques are commonly used in industrial scenarios for transportation tasks [1,4].Motion planning tasks are the most important functions for a Humanoid Robot Navigation system.Motion planning algorithms might address the robots with a larger number of joints, more complex tasks, different constraints and uncertainty [5][6][7][8].A basic problem of motion planning technique is to produce a continuous motion that connects the start configuration, S, and a destination configuration, D, while avoiding collision with known obstacles [10,11].
This paper demonstrates an experiment on Optimal Navigation System (ONS) for biped robot in its indoor environment with the development and implementation of a navigation algorithm.Section 2 represents the various gait analyses by focusing on the forward walking.Strategy in designing the various subroutines for walking, turning, stepping up-down stairs and obstacle overcoming gaits are also presented in the same section in a succinct manner.Section 3 draws a panoptic view on Indoor Navigation Map (INP) pattern.Design scheme of the main program structure to control the defined subroutines is illustrated in the section 4. In section 5, observations and result analysis of the overall system performance are presented with the validation of the optimal navigation system.Finally the paper draws its abridgement with the outcomes of the research.

Analysis and Formulation of Gaits
The gaits are the combination of several postures of the humanoid system which are characterized as poses.Some series of poses are grouped together to make a page and a group of pages are combined with a correct order to make the system able to grab the next stage of the corresponding gait.If the system starts to execute a particular page, the execution should be completed before the start of the next execution process.As the mathematical expression the execution process can be represented as P ⃗, which represents a vector and a function of the joint vector Q ⃗.The P ⃗ indicates the poses of the humanoid system for a certain moment of time in a particular direction while executing the page.If the start-pose and the final-pose of a single page are indicated by P i and P f , a general equation can be formulated as,  �⃗ =     �������⃗ = ∑ ( �⃗ () ) (1)  �⃗ () = { �⃗ 1() ,  �⃗ 2() ,  �⃗ 3() … … … ,  �⃗ () } (2) Here   As the simplification of the system the lower torso is considered having five joint actuators as shown in Figure 1.The first two poses, Action Pose and Tilt Pose are represented in Figure 1 (a).The Tilt Pose represents the action while the system tilts to one side to place the position of the CoM point just directly above the supporting CoP point while the other foot is on swing.The DS-SS Pose is the starting of the swing action of the free leg to have the initial step.This pose has one transition stage as indicating by Q e(3t) in Figure 1 (b) where the free foot moves up the hill while touching the tip with the surface and after a certain time, the foot becomes fully free from the ground achieving the new position indicating as Q e (3) shown in the same figure.In this position the Humanoid is on Single Support mode.This pose ends with the touching of the navigation surface by the hill of the swing foot as shown in Figure 1 (c).With the last pose when both feet become flat with the ground, the initial step ended up placing the CoM point closer to the rear foot support point.If the start and final stage of these poses are indicated as P i and P f , the whole process can be represented as   Step are designed by following the same strategy as shown in Figure 4 and Figure 5.
The algorithm for the FS and ES steps include four functions named as, WFS_Left(), WFS_Right(), WES_Left ( ) and WES_Right ( ).The whole process of the two step patterns can also be represented using the same equation as described in Equation (1).

Environment Setup
The navigation map is designed for the humanoid system where the robot is responsible to move from source position to destination point, A to B or B to A as shown in Figure 7 representing the conceptual model of the map.The source and the destination are connected with four different paths with various length and complexity.The direct path, AB, from source to destination is considered as the shortest path where a complex obstacle, stairs indicated by O 60 in Figure 7, is placed.The route is defined as Shortest Complex Path (SCP).The longest track, ACB or BCA is the obstacle free path to move from origin to goal position and it is represented by the term, Longest Free Path (LFP).A lower high obstacle indicated by O 40 in Figure 7 is placed on the way of the medium path, AEFB or BFEA.The obstacle height is around 2.6 cm and the path is presented as Medium Difficult Path (MDP).
There exists another extra sub way, FOE, while travelling with the medium path.The sub way cannot be traced by the humanoid because of having an obstacle with the difficulty level as 100%, which means the obstacle is unavoidable for the system.The different value of the obstacles are set as 100, 60 and 40 as indicated by O 100 , O 60 and O 40 on the navigation map, represents the various difficulty level in overcoming or avoiding them while travelling on the designed map.The map is predefined for the system and the obstacles are considered as stationary.

Designing the Navigation Algorithm
Since the humanoid has to travel through three different paths to navigate itself from source to destination, A to B or B to A, it is necessary to define all the environment constraints so that the system can understand the map and localize itself while navigating.There could be various ways to define the navigation map such as Brute-Force Method, Structure Format, Tabular Format or Coordinate Frames.For this experiment, the Tabular Format is chosen as one of the best and easier techniques and is followed to design the navigation algorithm.
The robot moves by selecting the optimal path based on three different modes, Hurry, Medium and Relax.The three different modes are chosen depending on three different commands.If the system is in Hurry Mode, it will select the shortest path, SCP, to reach the goal within a short time although there exists a complex obstacle to come over.For the Medium Mode, the robot will walk on the MDP route having some turning movements with overcoming a difficult obstacle.In Relax Mode the humanoid will reach the goal position over the easiest path, LFP, where no obstacles are placed.Step Up

i = 2 Step=5
Turn Right Walk Forward

i = 2 Step=14
Turn Right Walk Forward

i = 2 Step=14
Turn Left Walk Forward

Step=1
Walk Forward

B → A Turn Left i = 1 Step=1
Walk Forward

Step=1
Walk Forward

i = 2 Step=10
Turn Right Now a function is needed to design to program the robot for performing the tasks continuously.The function is declared as Navigate( ), represented in Figure 8, which will be executed inside the robot controller continuously.This function is responsible to identify the various commands and also responsible to call the necessary subroutines depending on the lookup table as defined in the Table 1.So it is also exigency to define the various subprograms contingent on the designed lookup table.The subroutines are defined as Turn( ), ClimbUP( ), ClimbDN( ) and Overcome( ).The subroutine for walking forward, WalkForward( ), is defined in Figure 6 while designing the walking gait.All these subprograms take two parameters, Step and LR_flag, with the default values as '0' to avoid the execution error if no parameter is passed to those functions.This means, if no parameter values are passed to any of these functions, the subprograms will run initializing the parameter values as '0' without causing any changes on the system current pose and position.

Results and Observations
The home position of the system is either A or B depicted as Home a or Home b based on the current idle position of the humanoid.Figure 9 is the reflections of the various attempts taken by the humanoid while navigating on its own and predefined environment.The result of the experiment presents that the system takes lowest time to navigate through the shortest path (SCP) with complex obstacle than the longest, obstacle free path (LFP).For the Medium mode, the system selects the difficult path (MDP) taking less time than the Relax mode but more than Hurry.As the validation of this concept, Equation (6) to Equation ( 10) are introduced to calculate the travelling times for the three different routes.By applying Equation ( 8), Equation ( 9) and Equation ( 10), the desired times that requires to navigate on the various tracks are calculated and compared with the actual times that are measured and investigated from the practical experimentation process, as demonstrated in Table 3 and Table 4.The actual error and the percent of error are also resulted in the same tables where the optimal navigation strategy is clearly visible and validated.

Conclusions
The paper draws a panoptic view of designing an algorithm for the humanoid platform to establish an optimal navigation system.The optimal navigation performance are also examined and illustrated with some comparative data analysis for various conditions of the humanoid system.Some mathematical relations and formulations are established to identify and calculate the desired time durations for the system while navigating on a particular route of the environment.The experiment is basically an inspiration and can be considered as the entrance for beginners to the vast area of this research field.
the set of joint vectors of 'i' th pose depending on the 'n' Degree of Freedom (DoF) of the system.Humanoid walking is the combination of the continuous step actions attempted by the left or right leg.The walking gait is constructed depending on the three different steps which are accumulated together following a certain type of rules.The three types of steps are excogitated as, a) Initial Step (IS), b) Full Step (FS) and c) Ending Step (ES).

2. 1 .
Designing the Walking Initial Step (IS) The Initial Step (IS) has two types upon the foot in action to make the step, a) IS by left foot and b) IS by right foot.Both of these types are split into five poses.

Figure 1 .
Five poses for Initial Step (IS), (a) Action and Tilt Poses (two poses), (b) Double support to Single support transition (DS-SS), (c) Single support to Double support transition (SS-DS) and (d) IS complete Pose P I ⃗ according to Equation(1).�⃗  =     �������⃗ �⃗ () ,  �⃗ () ,  �⃗ () ,  �⃗ () ,  �⃗ () )=5 =1(3)Here P I ⃗ is the Initial Step vector as the function of the joint vectors, Q (i) ⃗, indicating the certain pose of the humanoid where every joint vectors of the system are internally related to each other.Based on the relation of the poses, an algorithm can be written both for the IS by left and right foot with the description of two functions, WIS_Left ( ) and WIS_Right ( ), as shown in Figure2(a) and (b).
(a) Subroutine for Initial Step by Left foot.(b) Subroutine for Initial Step by Right foot.

Figure 2 .
Figure 3 represents the three functions to execute the three different steps of walking.The gaits for Full Step and EndingStep are designed by following the same strategy as shown in Figure4and Figure5.The algorithm for the FS and ES steps include four functions named as, WFS_Left(), WFS_Right(), WES_Left ( ) and WES_Right ( ).The whole process of the two step patterns can also be represented using the same equation as described in Equation (1).
(a) Initial Step function.(b) Full Step function.(c) Ending Step function.

Figure 3 .Figure 4 .Figure 5 .
Three different functions to execute the three different steps for walking Five poses for Full Step (FS), (a) Action Pose, (b) Tilt Pose, (c) Double support to Single support transition (DS-SS), (d) Single support to Double support transition (SS-DS) and (e) FS Final Pose Poses for Ending Step (ES), (a) Initial Pose, (b) Tilt Pose, (c) Double support to Single support transition (DS-SS Pose), (d) Single support to Double support transition (SS-DS Pose) and (e) Action Pose

Figure 6 .
Figure 6.Main function to execute the continuous walkingFor all the three functions, WIS( ), WFS( ) and WES( ), a parameter 'i' is passed that indicates the action leg to generate the walking pattern.If the value of 'i' is 1, the system will make a step by swinging its left leg.For the value of 'i' as 2, the robot will perform its step by right leg.The return value, 1 or 2, indicates the action leg for the next step of the walking pattern, 1 is for Left and 2 is for Right.The return value '0' informs that the walking pattern just reached to the Final Pose of the Ending Step (ES) and the system is in the Action mode.The three different gaits are executed from a main function to perform the continuous walking which is defined by the function as WalkForward( ), shown in Figure6, with two parameter values indicating the number of Steps and Left-Right indicator depending on the distance to reach the goal position.To design the other necessary gaits for Obstacle Overcoming Step, Step Up-Down stairs and Turning left or right

7 .
(a) Conceptual design of navigation map (b) Specification of the map Figure Conceptual design and specification of the indoor navigation map

Figure 8 .
Figure 8. Definition of the Navigate( ) as the main continuous function

Table 1 .
Definition of the Map Constraints (Look up Table)

Table 2 .
Necessary Parameters to Calculate the Required Times

Table 3 .
Comparative Results and Validation (Test 1 with Well Charged Battery)

Table 4 .
Comparative Results and Validation (Test 2 in Normal Condition)