VATIO UP-UTM: Team Description Paper for Humanoid KidSize Drop-In competition RoboCup 2018 Montreal, Canada
Roberto Carlos Ramírez, Efraín Hernández, Jonathan Alcántar, Alberto Petrilli
Robotics Lab, Universidad Panamericana Campus Guadalajara, Jalisco, México
Abstract This document describes the hardware and software of the Humanoid Robot Team VATIO UP-UTM and their development since the last participation in Robocup kid size humanoid league, and the contribution of new team members from other institutions. This is the sixth generation of robots developed and designed by the team Pioneros Mexico, and this was the first Mexican team entry in humanoid league of Robocup in 2006.
1 Introduction
Since our first participation in Robocup Kid Size Humanoid League, the team have been working in several robotic applications like a project for design and construct a new robotic platform to participate in Adult size in order to complete that platform and presented in Robocup soon, and we also have been working with the team ROKY in the developing an exoskeleton for rehabilitation. This last project qualified and participated in Cybathlon 2016 in Zurich, Switzerland and the team won an international sixth place.
With this project the team intent to contribute in applications for the knowledge obtained in all those robotic competitions and work in projects to help people, for example the development of prosthesis with the objective and possibility that an invalid person could walk again and recover great part of mobility. With this background context, we have encouraged the construction of our own research platform for studying robot locomotion and sensing, thus, our VATIO-UP Humanoid Robots are capable of bipedal walking and performing human-like motions (Fig.1).
Notice of commitment: The team VATIO UP-UTM commits to participate in RoboCup 2018 in Montreal, Canada and to provide a referee knowledgeable of the rules of the Humanoid League to serve during the competition.
2 General Architecture
Axis is a humanoid Kid Size robot with 20 DOF, each one powered by one actuator. The head consists of a pan-and-tilt structure (2 DOF). Arms add 6 DOF, 3 DOF each: shoulder, arm, and elbow. Head and arms are mounted on a torso. Finally, the legs add 12 DOF, 6 DOF each: one at waist level that allows rotation of the entire leg, two at the upper part, one at the knee, and two at the foot (Fig.2). An open source embedded color video camera is mounted on the head's pan-and-tilt structure. The structure was simulated to determine the total roll workspace for the robot's articulations (Fig.3).
Two types of sensors (orange) are used to have feedback from the outer world: a camera placed on the head and a digital compass located inside the chest. This last one includes magnetic sensors and accelerometers that send information to the processing unit to keep the robot's balance and let him know if it is lied down either up face or down face. The whole system is shown below in Fig. 4.
This designs also includes four force sensor in each foot plant to send information about the surface. This information is also very useful to the closed loop control system for robot balance.
3 Hardware
Humanoid Robots are entirely made from two types of aluminum alloys: 3105-H22 and 3003-H23. The first one is malleable and is used for the most complex links containing folds. The second one is rigid and is used for the simpler links. H22 aluminum links were laser cut with a ±2 micron precision, folded with hydraulic press, and welded using gas tungsten arc welding. H23 aluminum links were manufactured with a three-axis CNC machine. Actuators powering the robot's joints are servomotors of type RX-28 and RX-64 from Dynamixel [1]. All three provide a step precision of 0.29± while torque is 28 and 64 kgf-cm respectively. RX-28 servomotors are used for the head and for the upper limbs, and RX-64 for the waist and lower limbs. The processing unit running Linux Debian 7.4, and algorithms in C++, is used for the intelligence and motion decisions, and to communicate to the servomotors controller to send the instructions for each servomotor. This unit module is located inside the robot's torso. A set of batteries are located at the arms. Robot's main physical specifications are listed in Table1 and shown in Fig.5.
4 Software
The whole software algorithms for the robot is implemented in C++, using event handler and multi-threading tools, that helps because it has several systems running simultaneously, and each one have different importance level and hardware requirements; in addition, depending of the situation only some systems are need to be activated, e.g. during a game it needs different systems that during motion modeling, demonstration or calibration.
The robots have separated functions in several systems: locomotion, video processing, reading sensors, controlling actuators, wireless communication, kinematic modeling, graphical interface and behavior control. In addition, each system has mechanisms to identify errors in themselves, for example, identify if a sensor or actuator is not working properly, generate alerts, and try to solve the problem.
5 Electronics
This robot is equipped with an embedded system Orange Pi +2 as a board computer [2] as the processing unit, that has is a full featured PC single board computer, tiny and power saving. This CPU have a H3 Quad-core Cortex-A7 H.265/HEVC 4K, 2GB DDR3 (shared with GPU), TF card (Max. 32GB) / MMC card slot, up to 2T on 2.5 SATA disk and 16GB EMMC internal Flash, and using Linux Ubuntu as OS.
The UM6 Ultra-Miniature Orientation Sensor [3] combines sensor measurements from rate gyros, accelerometers, and magnetic sensors to measure orientation at 1000 Hz. Angle estimates are available as Euler Angle or Quaternion outputs, and it has direct connection to the processing unit (Orange Pi Plus2) by USB port. The Dynamixel servomotors controller is a custom made embedded system with a microcontroller ATXMEGA128 [4] and other components for communication with sensors and the processing unit. This controller is directly connected to the GPIO's ports in the Orange Pi Plus2 board and additionally manages regulated power to all different robot's systems.
A CMUcam5 [5] is mounted in the head with a pan-and-tilt structure to acquire image data from the outer world. Each robot has a package of batteries that provide power to have 20 minutes of autonomy at full charge. The robot has two packages of rechargeable LiPo batteries [6] of 18.5 volts at 25C 750mAh, one in each arm.
6 Robot Behavior Control
The behavior control is based on the concept of Finite State Machine, and implemented in C++, where has been used several state unknowns. Basically there are three layers: Operation Mode, Define Target and Individual System Control, but each layer may have sublayers like a hierarchy tree; for example, at layer Individual System Control there is the Locomotion sublayer, at layer Locomotion there is the Walk Forward sublayer, and at layer Walk Forward we have the DS-ZMP state (Double Support - Zero Moment Point). This kind of implementation makes very easy to add, remove or even improve states at any level of the hierarchy tree.
For a good performance in the game a good Behavior Control but also a great Locomotion System are needed; to achieve this the simplified differential equations system was solved analytically (assuming constant inertial tensors) obtained from the 3D dynamic free diagram body of the humanoid, that generate a very good approximation to the ideal trajectory of the COM (Center of Mass). After that, inverse kinematics was apply to find joint angles for the legs but it changes the COM in the model, so the gradient descent algorithm was used to approach again to the ideal trajectory. Finally, the robot uses the arms to reduce to the minimal the moment generated by the variability of the inertial tensors.
In addition, the analytically solution was solved to use easily the whole algorithm, that means, it only pass some tangible parameters of the motion desired to design and it is done. Those parameters are for example the length of the step, initial altitude of the COM, distance and angle between feet, inclination angle of the back, desired velocity, step frequency, among others. The first limitation of this method is that the complete system needs an excellent dynamic model of the robot AXIS have it because each element of the robots was modeled in a CAD software.
This time we introduce a significant advance in closed loop control system for robot selfbalancing using a grid of sensors in each foot plant.
7 Vision
The Vision System is implemented using basic open source algorithms from CMUcam5 and adapted to work in synchrony with our own intelligence and control algorithms (Fig.6). Goalkeeper and other player have different algorithms because their main role play; for example, If the robot is playing as a goalkeeper, the vision system needs to process almost all the time only the ball algorithm to achieve the best performance possible. Vision performance had been optimized for different identification algorithm using different techniques; for example, to identify the ball´s color and it´s shape with several light conditions.
8 Conclusion
Robot AXIS is the result of years of experimentation with humanoid robots using different algorithms and mechanical configurations to provide enough capabilities to perform well playing soccer autonomously. All that knowledge and inspiration we will try to putting into practice to make life easier for people.
9 Publications
- E. Hernández, R. Velázquez, R. Macías-Quijas, E. Pissaloux, N. Giannoccaro and A. Lay-Ekuakille, "Kinematic Computations for Small-Size Humanoid Robot KUBO", ARPN Journal of Engineering and Applied Science, vol. 12, no. 24, pp. 7311-7320, Islamabad, Pakistan, 2017.
- E. Hernández, R. Velázquez, N. Giannoccaro and C. Gutíerrez, "Kinematic Analysis and Workspace Simulation of Humanoid Robot KUBO", 37th IEEE Central America and Panama Convention, Managua, Nicaragua, 2017.
- R. Ramirez, E. Hernandez, J. Alcántar, A. Montufar, "VATIO UP, Team Description Paper for Humanoid KidSize League of RoboCup 2017", Qualification TDP for Robocup Kid Size Humanoid Competition, Nagoya, Japan, 2017.
- R. Ramirez, E. Hernandez, J. Alcántar, A. Montufar, "VATIO UP, Team Description Paper for Humanoid KidSize League of RoboCup 2016", Qualification TDP for Robocup Kid Size Humanoid Competition, Nagoya, Brasil, 2016.
- E. Hernández and R. Velázquez, "Diseño Mecánico y Análisis Cinemático del Robot Humanoide AXIS", Pistas Educativas, no. 108, pp. 1102-1123, Guanajuato, Mexico, 2014.
- E. Hernández and R. Velázquez, "Un Algoritmo de Visión Identificador de Pelotas para Cualquier Tipo de Iluminación Exterior: Aplicación en la RoboCup", 2do Encuentro de Telecomunicaciones y Análisis de Señales, SLP, Mexico, 2010.
References
- Dynamixel Robotis. Updated information available at: http://www.robotis.com/xe/dynamixel
- Orange Pi. http://www.orangepi.org/orangepiplus2/
- UM6 Orientation Sensor. Updated information available at: http://www.pololu.com/catalog/product/1255
- Servomotors embedded controller http://www.atmel.com/devices/ATXMEGA128A1U.aspx
- CMUcam5. Updated information available at: http://www.cmucam.org/projects/cmucam5/wiki
- Thunder Power ProLite LiPo Batteries. Updated information available at: http://www.rcplanet.com