Rhoban Football Club Team Description Paper Humanoid KidSize League, Robocup 2012

H. Gimbert, L. Gondry, L. Hofer, O. Ly, Ph. Narbel

CNRS, INRIA Flowers, LaBRI, University of Bordeaux 1 33405 Talence, FRANCE

http://www.rhoban-project.org/RhobanFootballClub/index.html · http://youtu.be/6d4HnOfJzxM


Abstract This paper gives a short overview of the design of a kid-size humanoid robot able to play soccer in an autonomous way. It describes the main hardware and software components of the robot in their current states.

(Rien n'arretera les robots car ils ne s'arreteront qu'apr`es qu'ils le sauront pour nous le faire savoir.)

1 Introduction

Rhoban Football Club[1] is an on-going robotic project whose team members are researchers at Bordeaux 1 University and CNRS. This project stems from the desire to better understand the problems arising from building a fully autonomous bipede capable of human-like motions, and to thoroughly study the solutions of these problems from an empirical and a theoretical point-of-view. In this context, several prototypes have been already built and tested [5,6,8,4], focussing on walking, locomotion, interactions, and proposing some new solutions in terms of robot mechanical structure (e.g. spine-oriented) and compliance. The idea of playing a dynamic game like soccer – a very interesting testbed for producing complex situations in a constrained environment – has driven the team to design a new robot with an improved structure, including video/image analysis and planning behaviour tactics, a necessary step forward to make the robot gain autonomy. This short paper gives an overview of this robot system in its current state, for the prospect of making it participate to Robocup 2012.

Our participation to Robocup 2012, up to the qualification procedure, would be the second one. The first one has been under the team name SigmaBan Football Club ([3]).

Commitment

The Rhoban Football Club commits to participate in RoboCup 2012 in Mexico City and to provide a referee knowledgable of the rules of the Humanoid League.

[1] formerly called SigmaBan Football Club at Robocup 2011, the page of the team is accessible at url: http://www.rhoban-project.org/RhobanFootballClub/index.html ([2])

2 Hardware Overview

(content in subsections below)

2.1 Mechanical Structure

The mechanical structure of the robot involves 22 degrees of freedom: 6 for each leg, 2 for the pelvis (rotation in the sagittal plane and in the coronal plane), 3 for each arm, and 2 for the head (pitch and yaw rotations). The global shape of the robot is globally standard. However, as we already pointed out, our design focuses on the compliance of the structure. Our goal has been to improve the intrinsic stability of the system, and to avoid as much as possible inelastic shocks. Accordingly, we included several springs to the structure, as well as some flexible and soft materials like plastics and foam. We also introduced free linear joints controlled by dampers only. These joints absorb vertical shocks occuring during the gait, especially at the landing of the foot on the ground. These joints are located in the hips, allowing a vertical linear motion.

(diagram of mechanical structure showing damper joints)
(diagram of mechanical structure showing damper joints)
(diagram of robot structure)
(diagram of robot structure)

Robot specifications

Value Unit
Degrees of freedom 22
Weight 3.7 kg
Height 58 cm
Leg Length 27 cm
Arm Length 27 cm
Foot Length 13 cm

2.2 Actuators and Sensors

All the joints are actuated by servomotors. We use off-the-shelf servomotors, that is, Dynamixel RX-28, Dynamixel RX-64, and Standard RC servomotors for the head motion. We also use dynamixel servo position control (and feedback) in a standard way, but we exploit their maximum-torque control in order to again introduce compliance in the motions of the robot. Besides, we use standard servomotors for the head because of their lighter weight, and also because strict position control without feedback is sufficient for the head.

The robot gets feedbacks through the following main sensors:

  • Gyroscopic sensor. We use a 2-axis gyroscopic sensor measuring the rotation speed in the coronal and the sagittal planes. This sensor is located on the hip. The component we use is an IDG500.
  • Accelerometer. We use a 3-axis accelerometer sensor measuring the acceleration applied to the robot structure mixed with the gravity force. This sensor is more difficult to interpret, however it gives an absolute position information which completes in a useful way the measures of the gyroscopic sensor. The component we use here is an ADXL335.
  • Camera. At the moment, the head of the robot is equiped with a Logitech webcam of type C905. It samples pictures with a low resolution (320x240 pixels) with a frequency of 10 Hz.
  • Joint Positions. On top of that, the robot uses also joint position feedback provided by each dynamixel servo. In particular, considering some particular motion phases, one decreases the torque of some servo to make the motion compliant. Therefore, at these points, the joint position feedback becomes essential.

2.3 Processing Units

The embedded system is based on three main processing units: an ARM7 microcontroller without operating system, an ARM9 microcontroller equiped with Linux (OpenWrt) and a Roboard controller equipped with Linux (Debian). The Roboard has 256MB DRAM and is based on a Vortex86DX CPU running at 1000MHz, the ARM9 has 64MB SDRAM and its frequency is 210MHz, and the ARM7 has 64kB RAM with 55 MIPS. More precisely:

  • The Roboard controller is in charge of the high-level behaviour management and the execution of the high-level programmed components:
    • High-level decision processes. The behaviour of the robot is driven by state machines, mostly statecharts and finite state-machines (FSM).
    • High-level motor primitive parametrization. The different movement of the robot are defined in terms of motor primitives. These motor primitives have high-level parameters used to adapt them in a continuous manner. These are the parameters through which the high-level system drives the robot.
    • Complex feedback analysis.
    • Vision module.
    • Communication with external entities (via WiFi IP protocol)
  • The ARM7 or ARM9 microcontroller is in charge of the low-level management:
    • Motion scheduling. Part of motions are defined by mean of splines. These splines are generated at low level in order to ensure real-time (50 Hz).
    • Elementary control unit. On top of splines, the motions are defined with several PID controller acting on different part of the robot, and also on some parameters of the motion (e.g., spline amplitude).
    • Servomotor control. The processing unit communicates with dynamixel servos via a RS-485 bus. It sends orders to standard RC servo via PWM signal generation.

Both processing unit communicate via a serial USART bus (for ARM7) or by ethernet (for ARM9). We now describe in more details some of the above components, in particular the vision module, the localisation module and the motion control system.

3 Vision Module

The vision module of the Rhoban Football Club robot is responsible for making all the necessary image processing and analysis. This module runs on the Linux of the Roboard system, and it consists of a collection of programs and components written in C and C++. Most of their implemented algorithms use the OpenCV library (Open Source Computer Vision Library) [7,1]. This large computer vision library allowed us to experiment and tune many different tactics for detecting and tracking objects of interest like the ball, the goal posts, the other players, and the line fields. The vision module currently has the following characteristics:

  • It essentially uses color images with the HSV color space.
  • For detecting and tracking objects, the vision module essentially use various smoothing operators and image morphological transformations, hierarchical contour detection algorithms, Hough transforms, circle/ellipse/polygon fitting, and histogram analysis.
  • Robustness of the detection/tracking processes has also been taken care of, in particular with respect to object obstructions, by using explicit hypothesis upon the properties of the objects, and with respect to lighting and color variations, by using histogram transformations and distances.

The video/image analysis algorithms of the vision module are designed and tested for different image resolutions (640x480, 320x240, 160x120). The resolution is adapted dynamically by the high-level state machine.

Also, in order to pre-test some of the algorithms of the vision module, we design dynamic models of soccer field and robots in the Second Life virtual world. This allowed us for instance to more easily obtain well-defined complex sequences of images, sets of characteristic obstruction situations, and strict uniform ligthing conditions.

We also developped a graphical interface (coded in C#) for real-time forwarding and remote analysis of the output of the various vision algorithms.

4 Localisation Module

The localization module allows the robot to know approximately his position on the field. The estimation of the curent position is used by the high-level state machine and can be used for taking decisions.

The localization relies on the analysis of the image to find the goal lines. This analysis is performed using color filtering and adaptative hough transform. When the analysis is successful, it outputs up to three lines (the two vertical and the horizontal sides of the goal) are these lines are then analyzed to extract the goal segments thanks to an adaptative analysis. The coordinates of the goal segments are then compared to a sample database, which is used to compute an approximation of the position and direction of the camera.

When one of the goals is in the field of vision of the robot then the localization process allows the robot to compute his position up to approximately 20cm.

The graphical interface can be used to parametrize and monitor remotely the localization database as well as the whole localization process. Additional samples can be added dynamically to the databse to improve the precision of the localization.

5 Motions

(content in subsections below)

5.1 Behaviour Control

The motor behaviour of the robot is driven by two layers. The high-level behaviour is defined in terms of state machines. In turn, this state machines control low-level motor primitives. States define global behaviour, e.g. , "Searching the ball", "Tracking the ball", "Adjusting position for shooting", etc. There are two main state machines: One of them defines the behaviours of the head which is in charge of searching and tracking the ball. The second one defines the locomotion strategy. The state machines control motor primitives: they launch and stop them and they drive them via reduced sets of user-defined parameters.

5.2 Motion Design and Control

We design motions through a graphical framework environment we have developed where motions are subdivided into modules called parameterized motor primitives. Here is the general aspect of this environment:

Graphical framework environment for motion design
Graphical framework environment for motion design

5.3 Sagittal Stabilization

In the sagittal plane, we use each motor primitives described above enforced by PID controllers whose gain are adjusted by expert knowledge and experiments. We also use compliance in the sagittal rotation of the lower joint of the vertebral column, enforced in a spring mode. Error is re-injected in the sagittal rotation of the shoulder and in the pelvis sagittal horizontal position via a PID controller.

5.4 Gait Control

At the moment, we designed two different dynamic gaits: The first one is a slow one (0.85 Hz). A characteristic of this gait is that the grounded leg is straight and the other is compliant. This gait is used for precise locomotion, for instance the adjustment of the position for shooting the ball. The second gait is faster (1.35 Hz), as it is dedicated to move around in the game field. Note that the design of the gaits is still a work in progress, as we are searching for optimal uses of the semi-passive mechanical structure of the robot (see Sec. 2.1).

References

  1. G. Bradsky and A. Kaehler. Learning OpenCV: Computer Vision with the OpenCV Library. O'Reilly, 2008.
  2. The Rhoban Football Club. http://www.rhoban-project.org/RhobanFootballClub/index.html, video: http://youtu.be/6d4HnOfJzxM.
  3. Gimbert H., Gondry L., Ly O., and Ph. Narbel. SigmaBan Team Description Paper. Humanoid KidSize League, Robocup 2011.
  4. O. Ly, , M. Lapeyre, and P.-Y. Oudeyer. Bio-inspired vertebral column, compliance and semi-passive dynamics in a lightweight humanoid robot. In IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS'2011), 2011.
  5. O. Ly and P.-Y. Oudeyer. Acroban the humanoid: Compliance for stabilization and human interaction. In IEEE/RSJ International Conference on Intelligent Robots and Systems, 2010.
  6. O. Ly and P.-Y. Oudeyer. Acroban the humanoid: Playful and compliant physical child-robot interaction. In ACM SIGGRAPH'2010 Emerging Technologies, Los Angeles, 2010.
  7. OpenCV Home Page. http://opencv.willowgarage.com/wiki/ (accessed, January 2011).
  8. Rhoban Project. http://www.rhoban-project.org.