RoboFEI Humanoid Team 2019: Team Description Paper for the Humanoid Soccer Teen Size League

Aislan C. Almeida, Danilo H. Perico, Isaac J. da Silva, Plinio T. Aquino Jr., Flavio Tonidandel, Reinaldo A. C. Bianchi

Department of Electrical Engineering and Department of Computer Science, Centro Universitário FEI, São Bernardo do Campo, Brazil

https://www.robocuphumanoid.org/wp-content/uploads/HumanoidLeagueProposedRoadmap.pdf · https://www.tensorflow.org/ · https://imagetagger.bit-bots.de/users/team/21/ · http://www.romela.org/main/DARwIn_OP


Abstract RoboFEI started competing in the RoboCup KidSize League 2014, held in João Pessoa (Brazil), and have been competing in every edition of the RoboCup and the Latin American Robotics Competition (LARC) since then. The RoboCup held in Montreal (Canada) was the test bed for the new robot, called Sirius, developed by the team in order to participate of the TeenSize League in the 2019 edition of the RoboCup, to be held in Sydney (Australia). This paper presents the description of hardware and software of the afore mentioned robot, as well as the research developed by the group members.

1 Introduction

Prof. Reinaldo A. C. Bianchi started the RoboFEI team back in 1998 with a Very Small Size team. Later, a 2D Simulation team was created, eventually becoming the Brazilian champion, and the Very Small Size gave its place to the Small Size, which is a recurrent competitor in both RoboCup and LARC Small Size leagues. In 2012, the Humanoid team was created by students designing and building the first kid sized humanoid robot for the RoboFEI team. This development was first introduced in the edition of the RoboCup of 2014, held in João Pessoa (Brazil), and became a recurrent competitor in the KidSize League, participating in Heifei (China, 2015), Leipzig (Germany, 2016), Nagoya (Japan, 2017) and Montreal (Canada, 2018), as well as in the LARC of the corresponding years. In 2015, the @Home team started to develop its robot, which also participates in RoboCup.

Fig. 1: Match played in Robocup 2018, Montreal
Fig. 1: Match played in Robocup 2018, Montreal
Fig. 2: Match played in LARC 2018, João Pessoa
Fig. 2: Match played in LARC 2018, João Pessoa

2 Hardware

Up to 2018, the team was composed mostly of Kid Sized robots, with 50 cm of height. However, the RoboCup's Roadmap for this category imposes a growth in the minimum height of the robot of 20 cm every five years. Today this minimal height is 40 cm, in 2020 it is going to be 60 cm, thus preventing the actual team of robots of participating in the competition.

Thus, the team started, in 2018, to develop a new robot, named Sirius, which is based on the kinematics of the B1 robots. The B1 robots were an adaptation of the DARwIn-OP project. The new robot uses an Intel NUC Core i5-4250U, with 8GB SDRAM and 120 GB SDD as the computation unit. It is made of 3D printed parts, some of them are coated in carbon fiber, and aluminum. The robot follows the same structure design of the B1 robot, with 20 degrees of freedom, using 22 Dynamixel's servo-motors (RX-28, MX-64 and MX-106 according to the location of the servo). For image capturing it uses a Logitech HD Pro Webcam C920 (Full HD), to which is attached a fish-eye lens, used to increase the field of view of the robot, and for acceleration sensor it uses an UM7 Ultra-Miniature Orientation Sensor. Sirius weights 9.4 Kg and is 90 cm tall. Finally, a screen in its chest is used for interfacing the internal computer used by the robot, and is used for diagnoses.

Fig. 3: Sirius robot in Robocup 2018, Montreal
Fig. 3: Sirius robot in Robocup 2018, Montreal

3 Software

Sirius currently uses the Cross Architecture, which is the same architecture used by the old B1 robots, as its main software architecture. It creates a shared memory region, called Blackboard, which enables different processes to communicate with each other. The main modules of the software architecture are the Vision, the Visual Memory, the Localization, the Decision, the Movement Control, the Odometry, the Communication, and the Telemetry.

3.1 Vision

The Vision module uses multiple threads in order to detect objects in the image and to share informations about these objects with other processes. Each thread is responsible for one main task: the Master, Image Capture, DNN, Ball, Robots, Landmarks and Head's Control threads.

The Master thread starts the other threads and manages the information exchanged among them. The Image Capture thread obtains raw information from the camera (the image), the head's orientation in relation to the robot, the current movement executed by the robot, and the timestamp of the observation. These informations are sent to the DNN thread, which uses an implementation of the MobileNet in order to detect all relevant objects of the image. It returns the positions of the detected objects and the confidence of the information, if the data have low confidence it is discarded.

The Ball thread returns the relative distance and direction of the ball, when the ball is observed. The Robots thread handles informations about the other robots, such as the distance from the observing robot, the size of the observed robot and the team of the observed robot, the team of the robot is determined by considering its colors. And the Landmarks thread compiles the informations about the observed landmarks, such as field line intersections, penalty marks and goal posts, to be used by the Localization module.

Finally, the Head's Control thread moves the head of the robot, in order to make the camera to focus on the most important object in the image.

The training of the MobileNet was performed in a computer with two Intel Xeon Gold 5118 each with: 24 cores running at 2.30GHz, 192GB of RAM memory and NVIDIA Tesla V100 16GB. It was implemented using the Tensorflow library in Python.

3.2 Visual Memory

This module tracks the positions of the detected objects in the world in relation to the position of the observing robot, creating an egocentric map of the world. It is also divided in multiple threads, each responsible for a specific object.

Each thread is responsible for holding information about an observed object. The information of the observed object is stored, and as the robot moves this information is updated, making it available even when the object is no longer detected by the Vision module. It is possible because of the use of an implementation of the Kalman Filter.

3.3 Localization

The Localization module is responsible for estimating the current position of the robot on the field. This module uses an implementation of the Monte-Carlo Localization method to solve the robot localization problem. The given implementation uses the relative direction of the observed landmarks as information to estimate the position of the robot. In order to reduce the computation burden of the method it uses a method which changes the quantity of particles according to the standard deviation of the position errors of the particles. It also uses a method that scatters particles with low weights to solve the robot kidnapping situation.

3.4 Decision

The Decision module uses informations from the other modules, such as the estimated robot position and the relative position of the ball, for making decisions about which action the robot should take in the given situation. The behavior of the robot depends on its role in the game:

  • goalkeeper: the goalkeeper stays in the goal area while searching for the ball, when the ball is found, it moves towards the ball, kicks it away and returns to the goal area;
  • defender, midfielder and striker: the robot position is determined according to their role, then it tries to find and reach the ball, and finally kicks the ball towards the goal.

3.5 Movement Control

In order to walk, the robot uses the gait pattern generator used by the DARwIn-OP project. The gait patterns are generated by sinusoidal functions which uses empirically determined parameters. These patterns are then executed by the servo-motors of the robot, resulting in the robot movement.

3.6 Odometry

This module is responsible for computing the displacement of the robot after the movement. It uses the location of the of each servo-motor in the kinematic chain between the support feet and the center of the chest, the geometrical properties of the robot and the information of the inertial sensors to compute the displacement of the robot.

3.7 Communication

The Communication module keeps the communication between the robot and other robots, the robot and the game controller and also broadcasts the telemetry information. It uses the UDP protocol, sending and receiving messages through Wi-Fi connections. Among the information sent by the Communication module are the estimated position of the robot, the battery state, the action been executed, etc.

3.8 Telemetry

The Telemetry is an external module, which is used for monitoring the robots information using a graphical interface. It presents the information broadcasted by the Communication module. This helps the team members to understand the behavior of the robots, to spot failures and debug codes.

4 Work in Progress

Since 2018 the focus of the team has been the development of the teen sized robot and to improve the already established software of the robot. The researches involves feedback sensors for the feet of the robot, the migration of the modules from the Cross Architecture to ROS and the development of the teen sized robot.

4.1 Control Feedback

By developing a pressure sensor for the feet, and using it for feedbacking the maximum pressure point on the feet of the robot it is possible to control the balance of the robot, preventing it from falling. This improves the walking capabilities of the robot, making it robust to external interferences (e.g. a robot collision).

4.2 Migration to ROS

In 2012, when the team was still developing its first robot, the team tried and failed to use ROS as the main communication module among processes for the robot, because of the computation burden of the ROS, that would take most part of the processing capabilities of the former computing unit used in the robots. Then the team developed the Cross Architecture, which made possible to implement the modules with ease. The current computing unit (Intel NUC) is capable of using ROS and also execute all modules of the software. Also, the use of ROS agrees with most teams and eases the exchange of software among the community.

4.3 Development of the teen sized robot

The team continues to develop the teen sized robot:

  • the upper body of the robot will be made thinner in order to reduce weight and lower the center of mass of the robot;
  • the electronic part is been integrated into one printed circuit board, this will reduce the quantity of wires and aggregate all communication and power circuits of the robot;
  • the legs will be re-designed, in order to use more servo-motors, increasing the torque in the legs and improving the walking capabilities of the robot.

5 Publications

The team has been publishing in various journals and conferences related to robotics and artificial intelligence:

  • Latin American Robotics Symposium;
  • RoboCup Symposium;
  • Other major publications.

The team also contributes with image sets for the Imagetagger.

6 Conclusion

Thus, this work presented the hardware and software specification of the current teen sized robot of the team, called Sirius, and also presented the development of the robot for the RoboCup Humanoid Soccer Teen Size League, to be held in Sydney (Australia). The team commits to participate in the competition and to enable team members with sufficient knowledge of the rules for refereeing.

References

  1. Almeida, A.C., Costa, A.H.R., Bianchi, R.A.C.: Vision-based monte-carlo localization for humanoid soccer robots. In: 2017 Latin American Robotics Symposium (LARS) and 2017 Brazilian Symposium on Robotics (SBR). IEEE (2017)
  2. Bianchi, R.A.C., Costa, A.H.R.: Implementing computer vision algorithms in hardware: an FPGA/VHDL–based vision system for mobile robot. In: Birk, A., Coradeschi, S., Tadokoro, S. (eds.) RoboCup–01: Robot Soccer World Cup V. Lecture Notes in Artificial Intelligence, vol. 2377, pp. 281–286. Springer Verlag, Berlin, Heidelberg (2002)
  3. Bianchi, R.A.C., Martins, M.F., Ribeiro, C.H.C., Costa, A.H.R.: Heuristicallyaccelerated multiagent reinforcement learning. Cybernetics, IEEE Transactions on 44(2), 252–265 (Feb 2014). https://doi.org/10.1109/TCYB.2013.2253094
  4. Bianchi, R.A.C., Celiberto, L.A., Santos, P.E., Matsuura, J.P., de Mantaras, R.L.: Transferring knowledge as heuristics in reinforcement learning: A case-based approach. Artificial Intelligence 226, 102–121 (2015)
  5. Bianchi, R.A.C., Santos, P.E., da Silva, I.J., Celiberto, L.A., de Mantaras, R.L.: Heuristically accelerated reinforcement learning by means of case-based reasoning and transfer learning. Journal of Intelligent & Robotic Systems pp. 1–12 (2017)
  6. Celiberto, L.A., Ribeiro, C.H.C., Costa, A.H.R., Bianchi, R.A.C.: Heuristic reinforcement learning applied to robocup simulation agents. In: Visser, U., Ribeiro, F., Ohashi, T., Dellaert, F. (eds.) RoboCup. Lecture Notes in Computer Science, vol. 5001, pp. 220–227. Springer (2007)
  7. Gurzoni, Jose Angelo, J., Martins, M.F., Tonidandel, F., Bianchi, R.A.C.: On the construction of a robocup small size league team. Journal of the Brazilian Computer Society 17(1), 69–82 (2011)
  8. Homem, T.P.D., Perico, D.H., Santos, P.E., Bianchi, R.A.C., de Mantaras, R.L.: Qualitative case-based reasoning for humanoid robot soccer: A new retrieval and reuse algorithm. In: International Conference on Case-Based Reasoning. pp. 170–185. Springer (2016)
  9. Homem, T.P.D., Perico, D.H., Santos, P.E., Bianchi, R.A.C., de Mantaras, R.L.: Retrieving and reusing qualitative cases: An application in humanoid-robot soccer. AI Communications 30(3-4), 251–265 (jul 2017). https://doi.org/10.3233/AIC-170735
  10. Howard, A.G., Zhu, M., Chen, B., Kalenichenko, D., Wang, W., Weyand, T., Andreetto, M., Adam, H.: Mobilenets: Efficient convolutional neural networks for mobile vision applications. arXiv preprint arXiv:1704.04861 (2017)
  11. Perico, D.H., Santos, P.E., Bianchi, R.A.C.: Vision-based monte carlo localization without measurement: A qualitative approach during update phase. In: SBR-LARS Robotics Symposium (SBR LARS), 2015 Joint Conference on (Oct 2015)
  12. Perico, D.H., Homem, T.P.D., Almeida, A.C., Silva, I.J., Vilão, C.O., Ferreira, V.N., Bianchi, R.A.C.: A robot simulator based on the cross architecture for the development of cognitive robotics. In: Robotics Symposium and IV Brazilian Robotics Symposium (LARS/SBR), 2016 XIII Latin American. pp. 317–322. IEEE (2016)
  13. Perico, D.H., Homem, T.P.D., Almeida, A.C., Silva, I.J., Vilão, C.O., Ferreira, V.N., Bianchi, R.A.C.: Humanoid robot framework for research on cognitive robotics. Journal of Control, Automation and Electrical Systems 29(4), 470–479 (Aug 2018). https://doi.org/10.1007/s40313-018-0390-y
  14. Perico, D.H., Silva, I.J., Vilão, C.O., Homem, T.P.D., Destro, R.C., Tonidandel, F., Bianchi, R.A.C.: Robotics: Joint Conference on Robotics, LARS 2014, SBR 2014, Robocontrol 2014, São Carlos, Brazil, October 18-23, 2014. Revised Selected Papers, chap. Newton: A High Level Control Humanoid Robot for the RoboCup Soccer KidSize League, pp. 53–73. Springer Berlin Heidelberg, Berlin, Heidelberg (2015)
  15. Perico, D., Silva, I., Vilao, C., Homem, T., Destro, R., Tonidandel, F., Bianchi, R.: Hardware and software aspects of the design and assembly of a new humanoid robot for robocup soccer. In: Robotics: SBR-LARS Robotics Symposium and Robocontrol (SBR LARS Robocontrol), 2014 Joint Conference on. pp. 73–78 (Oct 2014). https://doi.org/10.1109/SBR.LARS.Robocontrol.2014.39
  16. Romela: Darwin op: Open platform humanoid robot for research and education. http://www.romela.org/main/DARwIn_OP
  17. Silva, I.J., Perico, D.H., Homem, T.P.D., Vilao, C.O., Tonidandel, F., Bianchi, R.A.C.: Using reinforcement learning to improve the stability of a humanoid robot: Walking on sloped terrain. In: SBR-LARS Robotics Symposium (SBR LARS), 2015 Joint Conference on (Oct 2015)
  18. Silva, I.J., Perico, D.H., Costa, A.H.R., Bianchi, R.A.C.: Using reinforcement learning to optimize gait generation parameters of a humanoid robot. In: XIII Simpósio Brasileiro de Automação Inteligente (2017)
  19. Silva, I.J., Perico, D.H., Homem, T.P.D., Vilão, C.O., Tonidandel, F., Bianchi, R.A.C.: Humanoid robot gait on sloping floors using reinforcement learning. In: Latin American Robotics Symposium. pp. 228–246. Springer (2016)
  20. Silva, I.J., Vilão, C.O., Costa, A.H.R., Bianchi, R.A.C.: Towards robotic cognition using deep neural network applied in a goalkeeper robot. In: 2017 Latin American Robotics Symposium (LARS) and 2017 Brazilian Symposium on Robotics (SBR). IEEE (2017)
  21. Vilão, C.O., Celiberto Jr., L.A., Bianchi, R.A.C.: Evaluating the performance of two visual descriptors techniques for a humanoid robot. In: SBR-LARS Robotics Symposium (SBR LARS), 2015 Joint Conference on (Oct 2015)
  22. Vilão, C.O., Perico, D.H., Silva, I.J., Homem, T.P.D., Tonidandel, F., Bianchi, R.A.C.: A single camera vision system for a humanoid robot. In: Robotics: SBR-LARS Robotics Symposium and Robocontrol (SBR LARS Robocontrol), 2014 Joint Conference on. pp. 181–186 (Oct 2014). https://doi.org/10.1109/SBR.LARS.Robocontrol.2014.51