NimbRo TeenSize Team Description 2015
Philipp Allgeuer, Marcell Missura, Sven Behnke
Rheinische Friedrich-Wilhelms-Universität Bonn Computer Science Institute VI: Autonomous Intelligent Systems Friedrich-Ebert-Allee 144, 53113 Bonn, Germany
Abstract This paper describes the RoboCup Humanoid League team NimbRo TeenSize of Rheinische Friedrich-Wilhelms-Universität Bonn, Germany, as required by the RoboCup qualification procedure for the competition in Hefei, China in July 2015. Our team uses self-constructed robots for playing soccer. This paper describes the mechanical and electrical design of the robots, covers the software used for perception, motion, and behavior control, and highlights our scientific achievements.
Introduction
Team NimbRo has been extremely successful over the years in the RoboCup competition. Our won the Humanoid TeenSize soccer tournament five times in a row [7]. The robots have also demonstrated their skills in the Technical Challenges, coming first place for example in 2012 and 2014. In 2014, the main innovation in the robots was the integration of more advanced gait stabilization concepts into the soccer software, with significant improvements in the robustness of the robots against disturbances while walking. This was in particular in effect on the robot Dynaped. The 2015 competition will be used as an arena to demonstrate further refinements thereof, with the possibility of integrating our advances in online gait learning. The igus Humanoid Open Platform will also be used for the first time in competition, with improvements that have been made to the open source ROS software, including attitude estimation, vision processing, and soccer behaviors, servo communication, and sensor management. Our ROS software includes no software modules from other teams at this point.
Mechanical and Electrical Design
Fig. 1 shows our humanoid TeenSize robots igus Humanoid Open Platform, NimbRo-OP, Copedo and Dynaped. Our new robot—igus Humanoid Open Platform is shown below in more detail. The mechanical design of each robot is focused on simplicity, modularity, mechanical robustness, and low weight.
igus Humanoid Open Platform
The igus Humanoid Open Platform is the next generation of the NimbRo-OP robot. It is 90 cm tall and weighs 6.6 kg. Its kinematic, electrical and sensory design is very similar to the NimbRo-OP, described in Section 2.2. Powered by a 4-cell LiPo battery, Robotis Dynamixel MX series actuators are used for all joints. Six MX-106 servos are used for each leg (3 in the hip, 1 in the knee and 2 in the ankle), and three MX-64 servos are used for each arm (2 in the shoulder and 1 in the elbow). Two MX-64 servos also control the pan and tilt of the head. All actuators communicate with a Robotis CM730 board—that has been flashed with a fully custom firmware—via a star topology TTL one-wire bus. The CM730 houses the 3-axis accelerometer, gyroscope and magnetometer chips. For visual perception, the robot is equipped with a Logitech C905 USB camera fitted with a wide-angle lens. All mechanical parts of the robot were 3D printed out of Nylon-12 (Polyamide 12) using a Selective Laser Sintering process. This allows for high modularity, production speed, design flexibility and aesthetic appeal. There are no further supporting elements underneath the outer plastic shell. All of the electronics and sensors are housed inside the torso, apart from the camera and USB WiFi adapter (802.11b/g/n), which are located in the head. The robot1 is nominally equipped with a dual-core Intel Core i7-4500U CPU, which has four logical cores and a base frequency of 1.8 GHz with Turbo Boost up to 3.0 GHz. The PC is fitted with 4 GB of RAM and a 128 GB ADATA SX300 solid state disk. Available communication interfaces include USB 3.0, HDMI, Mini DisplayPort and Gigabit Ethernet.
NimbRo-OP
NimbRo-OP [15] is 95 cm tall and weighs 6.6 kg. The robot has 20 degrees of freedom (DoF), with 6 DoF per leg, 3 DoF per arm and 2 DoF in the neck. Limiting the robot size to 95 cm allowed for the use of a single actuator per joint, reducing cost and complexity in comparison to the previous Teen-Size robots Dynaped and Copedo. Not using a parallel kinematic leg design allowed the design to stay as simple as possible. All joints are driven by intelligent actuators chosen from the Dynamixel MX series manufactured by Robotis. Specifically, MX-106 servos are used in the legs, and MX-64 servos in the arms and neck. All Dynamixel actuators are connected with a single TTL one-wire bus. The servo motors, as well as all the other electronic components can be powered by either a 14.8 V or 11.1 V 3.6 Ah lithium polymer battery. To keep the weight low, light-weight materials like carbon composite and aluminium were used. The arms and legs are constructed from milled carbon-composite sheets, connected by U-shaped aluminium parts. The torso, which harbors most of the electronic components, is a cage that was milled from four sides out of a large RHS aluminium tube. The head and the connecting pieces in the hands were 3D printed using ABS+ polymer. The feet are made of flexible carbon composite sheets, with aluminium for the kicking toes.
NimbRo-OP is equipped with a Zotac ZBOX nano XS, featuring a dual-core AMD E-450 processor running at 1.65 GHz with 2 GB RAM and a 64 GB solid state disk. The available communication interfaces are USB 3.0, HDMI, and Gigabit Ethernet. The head of the NimbRo-OP contains a small stub antenna that is part of a USB WiFi adapter, which supports IEEE 802.11b/g/n. In addition to the PC, a Robotis CM730 board is used to maintain a high-frequency serial communication link with the servo motors. The CM730 provides a 3-axis accelerometer, gyroscope and magnetometer sensor for IMU measurements. For vision purposes a Logitech C905 USB camera is used, fitted with a wide-angle lens that allows for a field of view of up to 180◦ .
Copedo and Dynaped
Copedo is 114 cm tall and weighs 8 kg. Its body design is derived from its predecessor Dynaped, including the 5 DoF legs with parallel kinematics and the spring-loaded passive joint between the hip and the spine. Copedo however, is equipped with an additional passive joint in the neck to protect the head. Our protective joints are able to snap back into position automatically after being displaced by mechanical stress. Copedo is constructed from milled carbon fiber parts that are assembled into rectangular shaped legs and flat arms. The torso is constructed entirely from aluminium and consists of a cylindrical tube that contains the hip-spine spring and a rectangular cage that holds the information processing devices. For protection, a layer of foam was included between the outer shell and the skeleton. Most importantly, Copedo is equipped with 3-DoF arms that include elbow joints to enable the robot to stand up from the ground, pick up the ball from the floor, and perform a throw-in motion. Including a neck joint to pan the head, Copedo has a total of 17 actuated DoFs. The hip roll, hip pitch, and knee joints are actuated by master-slave pairs of Dynamixel EX-106+ servo motors. All other DoFs are driven by single motors. The size and weight of Dynaped is 105 cm and 7 kg respectively. The robot has 13 DoF, 5 DoF per leg, 1 DoF per arm, and 1 DoF in the neck. Like Copedo, it uses parallel kinematics with pairs of EX-106 actuators. Due to a flexible shoulder joint socketed on rubber struts and a passive protective joint in the spine, Dynaped is capable of performing a goalie jump. Both Dynaped and Copedo are controlled by a small PC, which features an Intel core solo U1500 1.33 GHz processor and a touch screen. A HCS12X microcontroller board manages the detailed communication with all joints via a 1 MBaud RS-485 bus. The microcontroller also reads in a dual-axis accelerometer and two single axis gyroscopes.
Perception
A discussion of some of the relevant environment perception methods follows in the following sections.
Proprioception
Advances in the perception of the robots, in particular in the ROS soccer framework (now with ROS Indigo), notably include the development of an attitude estimator [4] that is capable of combining 3-axis gyroscope, accelerometer and magnetometer data into a quaternion estimate of the total global orientation of the robot. A C++ implementation is available freely online [1]. At the core of the estimator is a nonlinear passive complementary filter that performs filtering on the special orthogonal group of rotations akin to PI control, and maintains an estimate of the gyroscope bias. Underpinning the new attitude estimator is the development and novel mathematical formalisation of the concept of fused angles. Fused angles are a way of representing a rotation that is highly suitable for applications that relate to the balance of a body. A complete discussion of fused angles can be found in [3].
The output of the attitude estimator is combined with the joint angle feedback of the servos to obtain an estimate of the global robot pose with use of a kinematic model. The joint angles are applied to the virtual model using forward kinematics, which is then rotated around the current support foot by the previously estimated quaternion orientation. The model is then used to extract the robot's center of mass position and velocity. With hysteresis, the support foot is taken to be the one with the lower vertical coordinate in the rotated kinematic model.
Computer Vision
Visual perception of the environment is a necessary prerequisite for robot soccer. Our robots are equipped with a Logitech C905 (NimbRo-OP, igus Humanoid Open Platform) or IDS uEye (Copedo, Dynaped) camera, in each case fitted with a wide angle lens. The lens used in the igus Humanoid Open Platform has been changed to reduce the extremity of the fisheye effect, and thereby make better utilisation of the entire captured image. The border that is induced in images captured by the NimbRo-OP can be seen in Fig. 2.
In a captured image the pixels are simultaneously down-sampled and colorclassified using a lookup table, generated using the color calibration tool shown on the right in Fig. 2. Features that are subsequently detected include the field convex hull, ball, goal posts, obstacles (including other field players), field lines and field line crossings. The distance and bearing to each detection is calculated based on the inverse projection map from the image plane to the global space, taking the wide angle distortions into account. The distortion model used is akin to the one used in newer versions of OpenCV and includes both radial and tangential distortions. The transformation equations from a point (x, y, z) into image coordinates (u, v) is given by
$$x' = \frac{x}{z}, \quad y' = \frac{y}{z}, \quad r^2 = x'^2 + y'^2$$
$$x'' = \left(\frac{1 + k_1 r^2 + k_2 r^4 + k_3 r^6}{1 + k_4 r^2 + k_5 r^4 + k_6 r^6}\right) x' + 2p_1 x' y' + p_2 (r^2 + 2x'^2)$$
$$y'' = \left(\frac{1 + k_1 r^2 + k_2 r^4 + k_3 r^6}{1 + k_4 r^2 + k_5 r^4 + k_6 r^6}\right) y' + 2p_2 x' y' + p_1 (r^2 + 2y'^2)$$
$$u = f_x x'' + c_x, \quad v = f_y y'' + c_y$$
where k1, ..., k6 are radial distortion coefficients, p1, p2 are tangential distortion coefficients, and fx, fy, cx, cy are camera parameters. The inverse transformation is performed using numerical methods.
Localization
For localization, we track a three-dimensional robot pose (x, y, θ) on the field using a particle filter [16]. The particles are updated using a linear motion model. The weights of the particles are updated according to a probabilistic model of landmark observations (distance and angle) that accounts for measurement noise. To handle unknown data association of ambiguous landmarks, we sample the data association on a per-particle basis. The association of field line corner and T-junction observations is simplified using the orientation of these landmarks. By utilizing field line-based landmarks, their orientations, and a compass, we are able to reliably track and disambiguate the robot pose without the use of any colored landmarks. Further details can be found in [14].
Behavior Control
The soccer behaviors of the robots are driven by a multilayered hierarchical network of reactive behaviors [5], implemented using the Behavior Control Framework library [2]. Each layer runs on a different time scale and level of abstraction, whereby moving up the hierarchy progresses from least abstract to most abstract. Raw sensor inputs from lower layers, where the inputs to each layer are referred to as sensors, are aggregated into slower more abstract sensors in the higher layers. Higher layers utilize virtual actuators to command lower layers, down to the last layer, which then controls the physical actuators. Currently, our implementation consists of three layers. The lowest of these controls motion primitives such as walking, kicking, getting up, and the fall protection reflex. The middle layer abstracts from the complex kinematic chain, and coordinates the motion primitives with a cascade of behaviors that control ball finding, ball approach, dribbling, and ball kicking actions. Obstacle avoidance is integrated into each of these behaviors. The upper layer of the behavior framework takes care of team behavior and game tactics, and listens to the RoboCup game controller.
Robust Omnidirectional Walking
In recent years, team NimbRo has developed the Capture Step gait control framework capable of recovering from pushes that are strong enough to force a bipedal walker to adjust step timing and foot placement. The lateral balance mechanisms [9] have been used in competitions since 2011. Most recently, the framework has been extended to absorb a variety of disturbances, including pushes from any direction at any time during the gait cycle [10]. The Capture Step Framework has been implemented on a real robot [11] and its capabilities have been shown in a public demonstration at the German Open in April 2014 [13]. The integration of the full push recovery capabilities into our new ROS-based soccer software is ongoing work.
In contrast to the Zero Moment Point (ZMP) Preview control algorithm, which first computes a stable trajectory for a low-dimensional Linear Inverted Pendulum Model (LIPM) and then constrains the robot to follow the planerestricted motion of this model, the Capture Step Framework allows the robot to move more freely with an omnidirectional central pattern-generated (CPG) walk [6] and augments it with balancing capabilities. The balance augmentation of the Capture Step Framework is based on a simplified state representation in the form of a point mass that is assumed to behave like the LIPM. By using the open-loop capable CPG, we can generate a reference trajectory for the point mass that we know to be stable. Control of balance is achieved by using ZMP, foot placement, and step timing control strategies that return the point mass to the reference trajectory from a wide range of initial conditions. A decomposition of the lateral and sagittal dimensions into independent entities facilitates a closedform mathematical expression of the control strategies with the help of the LIPM.
We are in the process of investigating online learning techniques to adjust the output of the analytic Capture Step controller with an offset that is learned online during walking in order to improve the reference tracking and the balancing capabilities of our robots. Our online learning setting is based on similar principles that we relied on to implement the analytic balance controller. We compress the state of the robot to a lowdimensional representation and assume a simple physical model that captures the principal physical behavior during walking. Using the physical model, we deduce an approximate gradient that suggests a change of the step size after the performance has been measured at the end of the step, and update a function approximator in the control loop that is continuously queried for the step size offset. The learned step sizes are then used to command the CPG to step into these locations.
In the lateral direction, we continue to use the LIPM for online learning and infer the step size modification from the measured distance between the center of mass and the support foot at the step apex [7]. In the sagittal direction, we found the angle of the trunk to be a powerful indicator of balance. As the trunk attitude is not reflected by the LIPM model, we use a Pole-Cart model to compute an approximate step size gradient [12]. This model is illustrated in Figure 3. We implemented the sagittal learning approach on a real robot and demonstrated in an experiment [8] that the robot can quickly learn strong push recovery capabilities based on the experience of only a few failed steps.
Acknowledgements
This research is supported by the Deutsche Forschungsgemeinschaft (German Research Foundation, DFG) under grants BE 2556/6 and BE 2556/10.
Team Members
Team NimbRo commits to participating in RoboCup 2015 in Hefei and to provide a referee knowledgeable of the rules of the Humanoid League. Currently, the NimbRo soccer team has the following members:
Team leader: Sven Behnke
Team members: Philipp Allgeuer, Sebastian Schueller, Cedrick Münstermann and Michael Schreiber
References
- Philipp Allgeuer. Attitude Estimator, Jul 2014.
- Philipp Allgeuer and Sven Behnke. Hierarchical and state-based architectures for robot behavior planning and control. In Proceedings of 8th Workshop on Humanoid Soccer Robots, IEEE-RAS Int. Conf. on Humanoid Robots, Atlanta, USA, 2013.
- Philipp Allgeuer and Sven Behnke. Fused angles for body orientation representation. In Proceedings of 9th Workshop on Humanoid Soccer Robots, IEEE-RAS Int. Conference on Humanoid Robots, Madrid, Spain, 2014.
- Philipp Allgeuer and Sven Behnke. Robust sensor fusion for robot attitude estimation. In Proceedings of 14th IEEE-RAS Int. Conference on Humanoid Robots (Humanoids), Madrid, Spain, 2014.
- Sven Behnke and Jörg Stückler. Hierarchical reactive control for humanoid soccer robots. International Journal of Humanoid Robots (IJHR), 5(3):375–396, 2008.
- M. Missura and S. Behnke. Self-stable Omnidirectional Walking with Compliant Joints. In Proceedings of 8th Workshop on Humanoid Soccer Robots, IEEE Int. Conf. on Humanoid Robots, Atlanta, USA, 2013.
- M. Missura, C. Münstermann, P. Allgeuer, M. Schwarz, J. Pastrana, S. Schueller, M. Schreiber, and S. Behnke. Learning to improve capture steps for disturbance rejection in humanoid soccer. In RoboCup 2013: Robot Soccer World Cup XVII, pages 56–67. Springer, 2014.
- Marcell Missura and Sven Behnke. Push Recovery Learning. http://www.ais.uni-bonn.de/movies/PushRecoveryLearning.wmv.
- Marcell Missura and Sven Behnke. Lateral capture steps for bipedal walking. In Proceedings of 11th IEEE-RAS International Conference on Humanoid Robots (Humanoids), Bled, Slovenia, pages 401–408, 2011.
- Marcell Missura and Sven Behnke. Omnidirectional capture steps for bipedal walking. In Proceedings of IEEE Int. Conf. on Humanoid Robots (Humanoids), 2013.
- Marcell Missura and Sven Behnke. Balanced walking with capture steps. In RoboCup 2014: Robot Soccer World Cup XVIII (to appear). Springer, 2014.
- Marcell Missura and Sven Behnke. Online Learning of Balanced Foot Placement for Bipedal Walking. In IEEE-RAS Int. Conf. on Humanoid Robots (Humanoids), 2014.
- Marcell Missura and Sven Behnke. Video description: Walking with capture steps. In IEEE-RAS Int. Conf. on Humanoid Robots (Humanoids), 2014. http://www.ais.uni-bonn.de/movies/CaptureStepWalking.wmv.
- Hannes Schulz and Sven Behnke. Utilizing the structure of field lines for efficient soccer robot localization. Advanced Robotics, 26:1603–1621, 2012.
- Max Schwarz, Michael Schreiber, Sebastian Schueller, Marcell Missura, and Sven Behnke. NimbRo-OP humanoid teensize open platform. In In Proceedings of 7th Workshop on Humanoid Soccer Robots, IEEE-RAS International Conference on Humanoid Robots, Osaka, 2012.
- S. Thrun, W. Burgard, and D. Fox. Probabilistic Robotics. MIT Press, 2005.