• Keine Ergebnisse gefunden

6. New Archie software

6.3. Mapping and planning node

6.3.3. The footstep computation

The next step of the footstep planning and collision avoidance strategy is the footstep computation.

As described in (Kajita et.al., 2014), the foot placement during a walk can be defined by the walk parameter i.e. step width and length, respectively 𝑠𝑦 and 𝑠π‘₯. Consider for instance, the walk parameter showed in Table 9.

Step number 1 2 3 4 5

Step length sx 0.0 0.4 0.4 0.4 0.0

Step width sy 0.25 0.25 0.25 0.25 0.25

Table 9: step width and step lenght for 5 consecutive steps

Step width and step length are called walk parameters. From their knowledge it is possible to derive all the footstep coordinates during the walk. As a matter of fact, the nth footstep can be calculated from the walk parameter as:

[𝑝π‘₯(𝑛)

𝑝𝑦(𝑛)] = [ 𝑝π‘₯(π‘›βˆ’1)+ 𝑠π‘₯(𝑛)

𝑝𝑦(π‘›βˆ’1)βˆ’ (βˆ’1)𝑛𝑠𝑦(𝑛)] (95)

118

For changing the direction of motion, one just need to introduce one walk parameter π‘ πœƒ which indicates the heading of the feet.

The computation of the footstep position becomes:

[𝑝π‘₯(𝑛)

𝑝𝑦(𝑛)] = [𝑝π‘₯(π‘›βˆ’1)

𝑝𝑦(π‘›βˆ’1)] + [cos π‘ πœƒ(𝑛) βˆ’ sin π‘ πœƒ(𝑛)

sin π‘ πœƒ(𝑛) cos π‘ πœƒ(𝑛) ] [ 𝑠π‘₯(𝑛)

βˆ’(βˆ’1)𝑛𝑠𝑦(𝑛)] (96)

Equation (96), introduced in (Kajita et.al., 2014), was adapted for Archie in the course of this PhD work, since the reference system of the map is centred on the ground projection of the centre of mass initial position. First, the position of the centre of mass is computed as follows:

[𝑐π‘₯(𝑛)

𝑐𝑦(𝑛)] = [𝑐π‘₯(π‘›βˆ’1)

𝑐𝑦(π‘›βˆ’1)] + [cos π‘ πœƒ(𝑛) 0

0 sin π‘ πœƒ(𝑛)] [𝑠π‘₯(𝑛)

𝑠π‘₯(𝑛)] (97)

With the centre of mass position, it is possible to calculate the footstep position with the relation (98).

As written in (d’Apolito et.al., 2016) the procedure for computing the footsteps’ positions from the waypoint list can be put in algorithmic form by making the following assumptions:

β€’ Archie starting pose is characterized by having its feet next and parallel to each other.

β€’ The first footstep is the right one.

β€’ A turn is done β€œon the spot”, i.e. without advancing (d’Apolito, 2018) Based on this assumption, the footsteps are computed as follows:

119

1. Set the first footstep position to be half the robot’s hip distant on the 𝑦 axis from the origin. Sets its heading to 0 and set also all its walk parameters to 0. Store, in the walk parameter vector, the walk parameter of the first step.

2. Set the second walk parameter in order to move along the y axis. Set its heading to 0 and push it in the walk parameter vector.

3. Compute the length of the waypoints’ vector.

4. For every set of two consecutive waypoints do:

4.1. Compute the distance between the two considered waypoints.

4.2. Compute the number of footsteps necessary to move from the first waypoint to the second.

4.3. Compute the heading of the line between the two considered waypoints.

4.4. If the calculated heading is different from the heading of the line between the set of waypoints then:

4.4.1. Set the step length 𝑠π‘₯ of the next two footsteps to 0 and the step width 𝑠𝑦 of the next two footsteps to the maximum step width. The step heading π‘ πœƒ of the next two footsteps, must be set as the heading of the line between the two waypoints. Push them finally in the vector of walk parameters.

4.5. For each walk parameter do:

4.5.1. Set the step length 𝑠π‘₯ to the maximum step length. Set 𝑠𝑦 to the maximum step width and π‘ πœƒ as the computed heading and push them in the walk parameter vector.

4.6. Set the step length 𝑠π‘₯ of the last footstep as 0. Set the step width 𝑠𝑦 of the last footstep as the maximum step width and the step heading π‘ πœƒ as the computed heading.

5. Calculate the length of the walk parameter vector.

6. For each walk parameter in the vector do:

6.1. Compute the footsteps using equation (92) and push it in the footstep vector.

7. Return the footsteps vector.

The flow diagram of this algorithm is shown in Figure 96. After the positions of the feet are computed, they are given as input to the walking pattern generator which computes the trajectory that the COM of the robot will have to follow during the walk between the two given positions.

120

Figure 96: flow diagram of the computation of the footsteps

Figure 97 to Figure 106 show the results of the footstep computation for the user generated map showed in the previous chapter.

Figure 97: Footstep computation for first and second test case

121

Figure 98: Footstep computation for third test case

Figure 99: Footstep computation for the forth test case

Figure 100: Footstep computation for the fifth test case

122

Figure 101: Footstep computation for the sixth test case

Figure 102: Footstep computation for the seventh test case

Figure 103: Footstep computation for the eight test case

123

Figure 104: Footstep computation for the ninth test case

Figure 105: Footstep computation for the sixth test case

Figure 106: Footstep computation for the eleventh test case

124

The test showed the developed approach was lightweight. The decision to increase the obstacle dimension of the dimension of half-length of Archie’s hip proved itself to be the best one for its computational simplicity and for its performance. No footstep was ever found inside the area of an obstacle. This is because the trajectory is always parallel to the obstacle.

It has to be noted that, currently, the direction changing is done on the spot in one step. It can be considered acceptable for small direction changing but this approach will need to be calibrated for bigger direction changes when the new control system of the robot will be available.