Keywords

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

1 Introduction

Team THORwIn represents the second iteration of University of Pennsylvania-UCLA joint RoboCup Humanoid AdultSize league team. First competing in the KidSize class, we have competed in the Humanoid League since 2010 as Team DARwIn, Team DARwIn-XOS and Team THORwIn. We have been fortunate to achieve first place results in many years as well as work on general purpose humanoids outside of RoboCup. In the AdultSize league, we introduced the general purpose THOR humanoid robot platform to RoboCup in 2014. Most AdultSize league robots are designed to be very lightweight and compliant. They are well optimized for soccer playing but their features are too limited for general applications. On the other hand, THOR is a heavier, more powerful and more versatile robot designed for disaster response scenarios in unstructured environments [1]. Using a heavy, general purpose humanoid robot for autonomous soccer playing poses a number of unprecedented challenges, which have been our main research focus in AdultSize league.

Additionally, the year 2015 has brought major changes in the rules for the Humanoid leagues. The field is now a soft surface covered by artificial grass that makes both locomotion and kicking much more challenging. New white colored goalposts and balls pose a large burden on perception systems to disambiguate vision cues. In this paper, we present in detail how we utilized the general purpose THOR humanoid robot, developed by Robotis Co, Ltd.Footnote 1, to overcome all those challenges with RoboCup 2015 (Fig. 1).

Fig. 1.
figure 1

The THOR robot for DRC Finals and the modified THOR robot for the RoboCup 2015.

2 THOR Robot Platform

First used in the DARPA Robotics Challenge (DRC) [2], the THOR robot successfully completed many manipulation tasks with its hardware and software features for disaster response situations. The robot was upgraded in computation power, kinematics, and joint torque capabilities for the DRC Finals. We modified this robot to compete in RoboCup 2015 with similar qualities as the RoboCup 2014 entry.

The newer version developed for DRC Finals event held in June 2015 has a number of improvements over the older THOR robot [3]. Unlike the former DRC Trials event where each tasks are tried separately with own time limits and the robot is protected by overhead gantry system, the DRC Finals event consists of a single run where the robot has to complete tasks sequentially without protection. The new robot has completely redesigned legs with more powerful actuators and more rigid structural parts. To lower the center of mass for increased stability, now the leg houses the main battery packs which have been increased in capacity as well. These are shown in Fig. 2.

Fig. 2.
figure 2

(a) Parallel knee actuators of THOR-RD robot (b) 488 Wh LiPo battery pack housed in the thigh section.

Both THOR humanoid robot versions use off-the-shelf Robotis Dynamixel Pro series actuators for most joints that are connected into kinematic chains via standardized structural components. With standardized dimensions, the robot is reconfigured quickly in case of damage or feature change needs.

To support its heavier weight while traversing uneven terrain, all leg actuators are increased in power; the most demanding knee joint is now powered by two custom 200 W actuators with right angle gearboxes. They are connected with special cable to form a master-slave pair, and are controlled as a single actuator. Battery compartments have also moved into leg cavities to lower the center of mass as much as possible. This helped the robot in a number of demanding manipulation tasks on uneven surfaces at the DRC Finals event. Lastly, the hip is redesigned to provide a wider range of motion for difficult whole body motions such as car egress. This leg redesign greatly increased the mass and inertia of the legs, so we adopt an additional balancing algorithm that considers the masses of the legs as well.

2.1 Modification for RoboCup

The THOR robot originally had two asymmetric seven degree of freedom (DOF) arms with grippers, providing a large workspace and high dexterity required to accomplish all the DRC Finals tasks. However, we could not use the stock arms as they are too long to conform with the RoboCup rules. Long arms also increase the chance of touching an obstacle, and can obstruct the main camera. We have prototyped a lightweight two DOF arm design with a thin aluminum truss structure that can pick up and throw a ball. However, we eventually discarded it as the throw-in challenge has been removed this year, which had been the sole reason to have actuating arms. Instead, we use a very thin and short one DOF arm design, which further decreases the footprint of the robot and has minimal weight.

Another modification we introduced last year was the enlarged foot size for providing more stability, especially during strong kick motions. This year, we have found that the new robot has a much lower center of mass height due to the large mass of the redesigned legs, and this limits the maximum size of the feet. Instead of designing custom feet for RoboCup, we use an adjustable foot design developed for the DRC Finals competition that is smaller than the feet of last year’s RoboCup. To prevent possible backspin of the kicked ball, we added toe bumpers.

3 Walk Controller

For the first time, RoboCup has introduced a realistic field surface covered with artificial grass. This change has made the surface soft and uneven, which means that locomotion becomes a much harder task. We have found that due to the soft and sometimes non-uniform terrain, the support foot can dig into the grass and tilt the robot during walking. Although we use the ankle push recovery strategy and landing timing adaptation to keep the robot balanced, we have found that the frontal tilt of the robot while walking forward make the robot kick the ground hard and quickly lose balance. Increasing the step height can provide more ground clearance, but it will make the landing harder, which will worsen the effect of early landing. To solve this issue, we implement a human like heel-strike, toe-off walk gait to provide toe clearance and smooth the landing.

3.1 Toe and Heel Lift Controller

The DRC Finals competition requires the capability to traverse over uneven terrain and staircases. The kinematic dimensions are too large for the THOR robot to handle with quasi-stationary locomotion. To handle this traversal without sacrificing the stability, we have developed a walk controller that utilizes foot tilt around the toe and heel edges to extend the effective length of the legs [4]. As the RoboCup environment assumes a flat surface, we can use a simplified version that has a closed form solution (Fig. 3).

Fig. 3.
figure 3

Toe and heel lift calculation

Fig. 4.
figure 4

The THOR-RD robot climbing on the staircase using the toe and heel lift controller in simulation.

Given the hip position \(x_{hip}\) and the projected ankle position over the landing surface \(x_{F}\), the position of the ankle is

$$\begin{aligned} x_{ankle} = T(x_{F})T([0,0,h_{ankle}])[0,0,0,1]^T \end{aligned}$$
(1)

where T is the translation matrix, \(R_y\) the rotation matrix around the y axis, \(h_{ankle}\) the ankle height. Then we have the following kinematic constraint:

$$\begin{aligned} \vert \vert x_{ankle} - x_{hip} \vert \vert \le \text {Leg}_\text {MAX} \end{aligned}$$
(2)

In case (2) does not hold, we can lift the heel by \(\theta _{heel}\) around the toe contact position to increase the effective length of the leg. This leads to the new ankle transform

$$\begin{aligned} x_{ankle}^H = T(x_{F})T([F_T,0,0])R_y(\theta _{heel})T([-F_T,0,h_{ankle}])[0,0,0,1]^T \end{aligned}$$
(3)

where \(F_{T}\) is the distance between the projected ankle axis to the toe contact position. Likewise, we can lift the toe by \(\theta _{toe}\) around the heel contact position, resulting in the ankle transform

$$\begin{aligned} x_{ankle}^T = T(x_{F})T([-F_H,0,0])R_y(-\theta _{toe})T([F_H,0,h_{ankle}])[0,0,0,1]^T \end{aligned}$$
(4)

We can solve the following equations to calculate the minimum toe and heel lift angles that satisfy the kinematic constraints

$$\begin{aligned} \vert \vert x_{ankle}^H - x_{hip} \vert \vert&= \text {Leg}_\text {MAX}\end{aligned}$$
(5)
$$\begin{aligned} \vert \vert x_{ankle}^T - x_{hip} \vert \vert&= \text {Leg}_\text {MAX} \end{aligned}$$
(6)

which have closed form solutions. Once the lift angles are found, the type and amount of lift angle is determined based on the foot configuration and the range of motion of the ankle joint. Figure 4 shows the THOR-RD robot climbing over a staircase utilizing toe and heel lifting.

3.2 Heel Strike Toe Off Walk

The Toe and Heel Lift Controller automatically generates foot tilt motion when the target feet positions are beyond the kinematic limits, which can happen when the robot takes a large stride or walks over an uneven surface. As we want to make the robot always perform heel strike toe off gait, we provide a target foot tilt angle to the Toe and Heel Lift Controller. To support the heel-strike, toe-off walking gait on flat surfaces, we extend our piecewise linear ZMP trajectory so that the ZMP moves linearly from heel to toe in single support. Once the reference ZMP and foot trajectories are generated, we use our hybrid walk controller [5] to generate the torso trajectory which both uses a ZMP preview controller and an analytic ZMP controller (Fig. 5).

Fig. 5.
figure 5

Heel strike Toe off walk. (a) simulation (b) on RoboCup field

4 Kick Controller

The artificial grass covered field has not only made locomotion harder, but also made our previous kick much weaker due to the increased surface friction. We could consistently kick the ball more than eight meters on smooth surfaces with our old kick, but we have found that the same kick can reach only three meters on the grass covered field in the worst case. In this section we present how we have improved our kick controller to be more powerful, while keeping the tight integration with the locomotion engine that allows for rapid kicking without fully stopping.

4.1 Cartesian Space Kick Generation

We use a kick engine based on our hybrid walk controller, that uses online switching of walk controllers and custom step sequence and feet trajectory to generate kick motion [6]. Our kick engine is fast and very flexible. It is very easy to design a number of different kicks, and the same kick definition can be used to initiate kick during either walking or standing state. Since last year, we use three different type of kicks; the quick, non-stopping kick for the first kick, the low powered kick for the case the ball is close to the center line, and a strong kick for scoring. The kick definition includes the step location, duration and the feet trajectory which we define using spline curves in Cartesian space. For RoboCup 2015, we added the heel pitch trajectory to prevent the toe from touching the ground.

4.2 Hybrid Kick Generation

Although the Cartesian space definition of the kick motion is simple to design and easily can be integrated with walking, linear movement of feet can result in undesirable joint angle trajectory that reduces the kick power. Figure 6(a) shows the joint trajectories of hip and knee pitch joints during our big kick motion, where the knee joint does not move in synchronization with the hip pitch joint at the time of impact. This problem can be solved by utilizing a hand designed joint trajectory, which is shown in Fig. 6(b), but such a joint level trajectory can be harder to integrate with walk controller, which handles the feet movement in Cartesian space. We solved this problem by linearly interpolating two joint trajectories at the beginning and the end of the kick.

Figure 7 shows the comparison of the old kick using Cartesian space definition and the new hybrid kick that uses joint space trajectory as well. On the RoboCup field, we have found that the new kick can consistently move the ball to 5 m on average, which is significantly more powerful than the old kick.

Fig. 6.
figure 6

Joint trajectories of leg pitch joints, where the red box shows the possible ball impact. (a) Cartesian space kick (b) Joint space kick

Fig. 7.
figure 7

Comparison of kick sequences. (a) Cartesian space kick (b) Hybrid kick

4.3 Whole Body Balancing Control

Unlike the Linear Inverted Pendulum Model (LIPM) we use for dynamics calculation, the physical robot has distributed mass which can seriously affect the stability of the robot if not correctly accounted for. When humanoid robots are used for manipulation tasks, the different arm configuration affects the overall center of mass location, and the robot must compensate for it to keep balanced. For the DRC Trials, we calculated the upper body COM location based on current arm configuration, and shifted the torso position so that the upper body COM stays fixed. Leg masses are not considered, as we assume that all manipulation takes place when robot is standing still with preset leg stance. However, as the new version of THOR robot has much heavier legs and lighter upper body, we use a fine grained mass model to calculate the COM location of the whole robot, and iteratively update the torso position to compensate the COM error. The balancing controller is now always active, using the reference COM position from the walk controller instead of the middle point of the two foot positions as the target COM position. As a result, the robot can now correctly balance in a slow single support phase while performing arm motions, which helps balancing during kicks.

5 Vision and Localization

In the AdultSize league, the robot must be aware of its surroundings. Two stationary obstacles are avoided while planning, while a moving goalie should be avoided while kicking. The robot also detects a white ball, lines, and goal posts on the green turf field. We tackle these challenges using color classification, bitwise preprocessing operations, and strict shape filters. Our locomotion strategy depends on accurate goal post detection, calibrated locomotion odometry, and some line information.

A single Logitech C920 HD camera provides color pixels for processing. We train a Gaussian mixture model for applying maximum likelihood estimation of the color class of a pixel – white, green, off-white. The maximum likelihood estimate is encoded in a look-up table to categorize pixels into one of three color labels. We use two white color classes, where one class models the lines and one class models the ball and posts. We found that this disambiguates the ball from the lines very well in practice, but required a highly trained human supervisor in the model training stage.

The labeled image from the lookup table is then down-sampled for faster processing before being fed into high level blob detection routines and object classifiers. The down-sampled labeled image is a bitwise OR concatenation of the color classes of the pixels from the higher resolution image in the subsampled \(2\times 2\) block. The robot is able to detect the ball, goal posts, and lines based on their color, size, and shape information. Given the exact dimensions of objects, the distance and angle of detected objects are obtained by projection from the image frame to the robot’s egocentric coordinates.

5.1 Obstacles

In the AdultSize League in RoboCup 2015, two black cylinders are randomly placed between the robot and the goal. During a game, the robot must not touch these obstacles. Placed just before the “Play” command, the obstacles are immobile and so detection can be done once without a need for tracking. We do not model explicitly the color black, but only as “uncategorized colors.” Thus, blue or red colors are just as uncategorized as the black color of the obstacles. We apply blob detection used for the similarly shaped posts, but we add additional checks for surrounding green, much larger size. Also, we only consider pixels below the horizon by a certain angle. In this way, uncategorized pixel blobs off the field pose no issues.

The labeled image is scanned horizontally and the position of the lowest black pixel (depth of black) in each column is marked. The columns with black depth difference within a threshold are stitched together to be connected regions, and those are the candidates of obstacles which then go through a filtering process including height check, width check, on-the-ground check, and within-the-field check. A final filtering process is performed after transforming the positions of the detected obstacles from image frame to the robot’s egocentric, polar coordinates. The potential obstacles are clustered into groups based on their angles to the robot, and statistical information is calculated for each group providing the certainty and weighed average position of each obstacle. Finally, the closest two obstacles are registered for later trajectory planning.

5.2 White Objects

When the ball lies on a line, detection becomes difficult as the color classification leads to continuous, indiscriminate, white pixels. We built a pipeline of bitwise region erosion and dilation to eliminates weak pixel connections between a ball and lines/posts. The number of erosion steps and dilation steps are tuned to eliminate background noise – false positive ball and line pixels. We model erosion as bitwise AND on \(2\times 2\) blocks of pixels, while dilation is modeled as a bitwise OR operation on \(2\times 2\) blocks.

Distant balls and close balls require different erosion and dilation steps, but in practice, it is difficult to make these step choices scale invariant. While we used an additional color class for the particular shade of white on the ball, we found that bitwise erosion and dilation is useful for removing noisy color classifications (especially off the field) for field and line colors. With less noisy pixels, object checks for the ball can be tighter. To detect white field lines, we implement a decision tree for color class edges, where \(2\times 2\) blocks of pixels are mapped to a coordinate in Hough transform space. We modulate weights and coordinates for Hough transform counts. This more stringent guideline using edges for line population finds Green/white/neither edges on \(2\times 2\) blocks. We are able to find good line statistics even with a ball on a line far away, as shown in Fig. 8.

Fig. 8.
figure 8

Ball-on-the-line cases. (a) Nearby ball. (b) Faraway ball.

5.3 Localization

In previous years, we used a particle filter to track the three-dimensional robot pose \((x, y, \theta )\) on the field, in which orientation is reset when the robot falls down. The particles are probabilistically updated using a motion model based on the odometry of the robot and yaw angle based on inertial measurement, as well as vision information that takes into account pre-specified positions of landmarks such as goal posts, lines and corners.

This year we could further simplify this framework due to the uniqueness of the AdultSize league: the robot always starts at exactly the same initial position. It is never supposed to fall down, and each trial has quite a short time limit of 90 s. This makes the inertial tracking of the robot heading angle \(\theta \) very precise during the match, so we assume that the current estimate of heading direction is correct. Then we discard the distance information from goalpost observations, which can be quite noisy for distant goalposts, to handle the redundant information. This simplification greatly helped the localization during the whole competition, where the localization error was hardly visible.

6 High Level Behavior

According to the current RoboCup Humanoid AdultSize league rules, the attacking robot is only allowed to score after crossing the centerline. The attack ends if the attacking robot touches the obstacle or the kicked ball stops inside the penalty box. So the best tactic for the attacking robot is to move the ball to just cross the centerline and powerfully kick the ball to score. We have used a discrete search tree that evaluates possible kick paths that considers obstacles, the border distance and goal angle. Due to the newly introduced grass covered surface, kick power has decreased significantly and we have found that our old planner often guides the robot into narrow openings between two obstacles. We have increased the penalization term for obstacles to prevent this issue, which made the robot move the ball to a less populated area before trying the big kick. Figure 9 shows an example of a global plan that avoids both obstacles.

Fig. 9.
figure 9

An example of high level kick planning.

7 Results

We have found that the new version of the THOR robot with new heel strike toe off walk controller can reliably walk over the new grass covered soccer field without any issues. The higher friction of the surface rendered our old kicks much weaker. We have utilized the hybrid walk controller which also uses joint level target trajectories to make the kick harder while being tightly integrated with a walk engine. To make up for a weaker kick, we have increased the maximum stride length to 40 cm, which allowed the robot to try up to four kicks to score within the time limit of 90 s. As the AdultSize league has only one attacking robot on the field, our vision algorithm had no problem differentiating various localization cues of the same color. Throughout the matches, the new hierarchical planner reliably found good kick sequences that lead to scores.

8 Conclusions

In this work, we described our methods for executing soccer tasks on a general purpose full sized humanoid robot for the RoboCup 2015 competition. To overcome the new challenges of the 2015 rule changes, we utilized a heel strike toe off walk controller to improve ground clearance for the swing foot and a new hybrid kick controller to compensate for the kick distance loss due to the high friction of the surface. We also present the vision and planning systems we developed for the RoboCup competition, which worked robustly throughout the competition.