1 Introduction

The University of Pennsylvania RoboCup Team has been competing in the Humanoid KidSize league since 2010 as Team DARwIn. During that time, we pushed forward to open source both the hardware and software platforms: the latest generation of DARwIn robots, the DARwIn-OP, is openly available in the form of blueprints and as a commercial product. The modular, portable and easy-to-use UPenn humanoid robotic software platform has also been released as open source. Now, a major portion of the KidSize teams are using a variant of the DARwIn-OP hardware; some with our open source software.

Playing soccer well requires excellence in many parts of robotics research, including dynamic locomotion, computer vision, world modeling, unsupervised autonomy and multi-robot coordination - all within constrained power and computation capability of individual robot, as well as the software and hardware robust to unknown environmental disturbances. The skill sets achieved in the framework of robot soccer push the boundaries for attaining human abilities in addition to just playing soccer [1]. And to solve more general problems - especially that includes manipulating objects - requires a humanoid robot that is both “full sized” – roughly with adult human characteristics – and “general purpose” – those with enough power and dexterity to handle various tasks. Until recently such humanoid robots have been accessible to only few researchers, as building and maintaining a heavy and powerful humanoid robot can take a large amount of time and effort Fig. 1.

However, with the introduction of new heavy-duty modular actuators, building and maintaining of full-size general purpose humanoid robot can now be as straightforward as those of smaller humanoid robots. In this paper, we describe the THOR-OP general purpose, full sized humanoid robot we use for RoboCup 2014, and how we handled additional difficulty that comes with using a heavy general purpose robot not specially designed for robot soccer task.

Fig. 1.
figure 1

The modified THOR-OP robot playing soccer at RoboCup 2014.

Fig. 2.
figure 2

THOR-OP robot performing getup motion from the prone posture.

2 THOR-OP Humanoid Robot Platform

The THOR-OP (Tactical Hazardous Operations Robot - Open Platform) humanoid robot is developed by Robotis, Co. LtdFootnote 1 as a general purpose disaster response robot to compete in the DARPA Robotics Challenge (DRC) [2]. The DRC requires a complete system with the mobility, dexterity, strength and endurance for a practical disaster response situation. In order to score in the various DRC tasks, the robot should be able to operate in unstructured environments that include rough terrain, ladders, doorways, piles of debris, and industrial valves. It is also crucial that the robot be capable of maneuvering unmodified power tools and vehicles designed for use by human beings. THOR-OP performed well during the DRC Trials and is among the finalists for the DRC Final in 2015, showing to be an advanced and comprehensive humanoid platform.

Table 1. Specs of AdultSize humanoid robots in RoboCup 2012-2014

As shown in Table 1, most of the AdultSize humanoid soccer robots are designed solely for soccer playing and extremely light-weight. They are relatively simple in terms of kinematics, lacking high DOF upper bodies necessary for manipulation tasks. In comparison to these single-purpose robots, THOR-OP has more DOF (waist pitch and yaw and 7DOF in arms) and a stronger mechanical structure for manipulating heavy tools and performing whole body movements such as get-up motion necessary on soccer fields and other challenging terrains (shown in Fig. 2). During the DRC Trials event, THOR-OP robot has successfully accomplished demanding tasks such as manipulating a drill, dragging the fire hose and turning tight valves.

Fig. 3.
figure 3

The modular actuator and structural parts of THOR-OP robot.

2.1 Actuators and Structural Components

For the most high-load joints, the off-the-shelf Robotis Dynamixel Pro series actuators are used. Three different actuators types are used, rated at 20 W, 100 W and 200 W, which are fitted with either inline and parallel gearboxes. During the preparation of the DRC Trials, the actuators proved themselves strong enough for all the tasks we tried, which includes carrying a cordless power drill and cutting through the wall, rotating a tight valve, and stepping over uneven blocks. In addition to the actuators, the robot is mainly built with standardized structural components that are simply extruded aluminum tubings and brackets with regularly spaced bolt holes, and one can easily assemble them with hex bolts. Figure 3 shows the structural components required for a single THOR-OP robot; twenty four total man-hours is estimated to complete assembly from parts.

2.2 Modification for RobCup

THOR-OP originally had 7DOF arms with underactuated grippers, providing a large workspace and high dexterity for manipulation tasks. We have replaced the original arm due to a number of reasons: the arms are too long to conform with the RoboCup rules, and long arm with gripper gets in the way with vision and makes the robot posture wider, increasing the chance to touch the obstacles. A shorter and simpler arm design have therefore been introduced, which used acrylic rather than metal and has only 2DOF per arm, sparing 4 kg in weight from each arm. The new lighter arm still has enough range of motion and strength for picking up and holding a ball, which are needed for technical challenge.

We have also modified the feet of THOR-OP. The original feet are designed to be small and rigid to help the robot traverse uneven terrain better, but not ideal for the robot soccer where robot is supposed to walk over relatively flat surface. We have made a slightly wider feet in lightweight plastic, as well as putting a short wall at the toe section of each foot. Through testing and competition, we found that the increased dimensions of the feet proved to provide better support for the robot, especially when the robot is doing a strong kick, and helped the robot kick straight even with a slight misalignment.

3 Walk and Kick Motion Generation

We have been using the analytic Zero Moment Point (ZMP) based controller [3] that can reactively change walk velocity for our previous KidSize robots. With the larger and heavier THOR-OP robot, however, we have found that we cannot apply the same approach, since the torso velocity discontinuity during transition between double and single support induces vibration that can destabilize the robot. For this reason, we have used the ZMP preview walk controller [4] during the DRC Trials competition, where the environment is static and the control lag does not matter much. However, ZMP preview controller is not preferable for robotic soccer application due to its control lag and high computational requirement.

Fig. 4.
figure 4

X and Y axis COM, ZMP and commanded velocity during a walking sequence.

3.1 Hybrid Walk Controller

In our previous work [5], we have suggested a hybrid walk controller that dynamically switches between the analytic ZMP based reactive controller and ZMP preview controller, and tested the controller on DARwIn-OP KidSize humanoid robot. The robot mainly uses the reactive controller for locomotion; the ZMP preview controller is used only to perform more complex footstep motions such as dynamic kicking. For the THOR-OP robot, we use the ZMP preview controller also to generate the initial and final steps where the transitions between single and double support take place. We add the initial and final preview step entries into the step queue to initiate the initial and final steps. The initial step has zero foot displacement while the final step is set to make both feet parallel. To simplify designing the ZMP trajectory for the ZMP preview controller, we used the same trapezoidal ZMP trajectory as the one for our reactive controller [3]. Figure 4 shows the ZMP and Center of Mass (COM) trajectories of the robot where the robot starts walking, take a few step forward and stops.

3.2 Kick Motion Generation

We also use the hybrid walk controller formulation to generate the dynamic kick motion for the robot. A number of different dynamic kick motions are needed for the competition, because the attacker loses its penalty kick attempt if any of the following situations happen: direct scoring from the far side of the field, robot touching any of obstacles, or the kicked ball stopping inside the penalty box. Under those rules, the best strategy is to move the ball to cross the centerline first and do a strong kick to score.

Fig. 5.
figure 5

X and Y axis COM and ZMP trajectories during two different kick motions.

Fig. 6.
figure 6

Simulated THOR-OP robot performing a dynamic kick in middle of reactive walking.

We designed three different kicks. A fast kick with three to four meters of kicking range moves the ball from the defensive half to the offensive half of the field. A weak kick with a one meter kicking range moves the ball close to the middle of the offensive half. Last but not least, a slow and strong kick can directly score. Thanks to our hybrid walk controller formulation, we can use a single kick motion to initiate the kick in any phase of the walking. Figure 5 shows the COM and ZMP trajectories of two different kicks we have used for the competition, and Fig. 6 shows the kicking sequences in simulated environment.

4 Vision and Localization

4.1 Vision

Images from a Logitech C920 HD camera are captured and processed. We first use a look-up table to categorize pixels into one of eight color labels. The look-up table is generated beforehand using supervised learning approach with a Gaussian mixture model. Figure 7 shows the look-up table generating tool for a real robot camera frame, and how the generated lookup table performs in simulation. The labeled image is then down-sampled for faster processing and fed into high level blob detection routines and object classifiers. 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.

Fig. 7.
figure 7

Look-up table can be made with a user interface for classifying colors (left). A MATLAB monitor displays the labeled image efficiently generated in real-time using the generated look-up table(right) (Color figure online).

For AdultSize League in RoboCup 2014, there are two black cylindrical obstacles randomly placed between the robot and the goal. The similar blob detection techniques mentioned above could be used, however there is a large amount of black pixels in the labeled images which could affect the efficiency and reliability of the detection. We instead use a simpler detection and filtering approach for obstacles, with the knowledge that an obstacle is basically a chunk of black pixels with proper dimensions surrounded by green (field) pixels. 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. The closest three obstacles (two obstacles and the opponent) are registered for later trajectory planning.

4.2 Localization

For previous years, we have 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 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.

5 Hierarchical Planning

As we have said above, the best tactic for the attacking robot is to move the ball to just cross the centerline and do a powerful kick to score. However the existence of obstacles and the high possibility of the ball rolling irregularly makes this not a trivial problem.

Fig. 8.
figure 8

Simulated THOR-OP robot follows the planned trajectory (red line) and generates an optimized attacking strategy (blue line) based on the perceived locations of obstacles (two red markers) (Color figure online).

5.1 Kick Planning

At the highest level, we determine the optimal sequence of kick angles that maximizes the scoring chance while minimizing the failure chance. To reduce the computational load we use a discrete search tree, where each node represents a possible ball position. The root node is the current ball position, and each node branches into \(k\) different kick angles until it is possible to directly score from that position. Then every path is evaluated based on the scoring chance based on the goal angle at the final node, and the failure chance based on the minimum kick error that can result in out of bounds or colliding the obstacle. To prevent oscillating when traversing down the kick tree, we also penalize paths based on their difference from the best path chosen at the previous planning step.

5.2 Walk Trajectory Planning

Once the optimal kick sequence is planned, the robot has to move to the first kicking position in the shortest time possible. We use the parameterized curved trajectory [6] to better utilize the fast forward walking speed of our robot. Once the trajectory is generated, the maximum possible velocity within its stable region is selected as the commanded velocity.

5.3 Foot Step Planning

Our velocity based walking control scheme is based on the torso velocity and does not consider the foot stance, which is not preferable for the final approaching steps where we want the robot to stop with feet precisely aligned to the ball. For the KidSize league, we simply use progressively shorter steps when the ball is close. This approach can waste a lot of time with a big robot that has a much longer step duration and can be fatal when time is strictly limited. We use a greedy foot step planner to handle this problem, where each footstep is selected to be the closest position to the target foot position while satisfying the stride length constraint.

5.4 Testing in Simulated Environment

We use the Webots simulator to replicate the competition environment and tune various parameters. From a number of simulator runs, where the initial positions of the ball and obstacles varied a lot, we found that the stride length of 30 cm is enough to make the attacker robot score within the time limit of 90 s for all tested scenarios. Figure 8 shows the sequence of the THOR-OP robot performing two motions in simulated environment.

Fig. 9.
figure 9

THOR-OP performing a dynamic kick in the middle of reactive walking.

6 Results

The hybrid walk controller has been used successfully on the actual robot during the RoboCup competition, with very little parameter tuning required. We did not experience stability issues during the competition. Same as in simulation, the robot could kick the ball to the goal within the time limit almost every time. In the artificial grass challenge, the robot stably achieved a stride length of 40cm per step over cushy artificial grass terrain.

Figure 9 shows two kick sequences that our robot utilized during the RoboCup competition. Although our hybrid walk controller allows initiation of any dynamic kick motion during locomotion, we limited the strong kick to always start from double support. Initiation a big kick while walking led to inconsistent kick distances. With this limitation, the kick distances from each kick are quite consistent. The fast kick achieves around a four meter range, while the strong kick has more than a 10 m range.

Throughout the matches, the hierarchical planner reliably found optimal and safe kick sequences that lead to scores, even with frequent irregular rolling of the kicked ball. During the last two games our robot succeeded in kicking to the goal, while avoiding all the obstacle. However, some of the kicks were blocked by the opposing goalie robot.

7 Conclusions

In this work, we described how we utilize a general purpose full sized humanoid robot for RoboCup robot soccer task. We utilize the hybrid walk controller to help the robot to initiate and end locomotion smoothly while keeping the reactive stepping capability required for dynamic environment. Additionally, it allows the robot to perform various dynamic kicks without stopping, which helped us greatly. We also present the vision and planning systems we developed for the RoboCup competition, which worked robustly throughout the competition.