OMID 2014 Team Description
Javad Rahmani, Davoud Abbasi, Ali Damirchy, Ali Khanjani, Hamid SheikhPoudeh, Omid Mahdizadeh, Seyed Arman Alaei, Masoud Abdi, Siavash Asadi, Amirhosein Hajihoseini, Mohammadreza Sarbandi, Saeed Keshavarzi
Electrical Engineering Department, Shahed University of Tehran, Iran; Bioelectrical Engineering Department, Shahed University of Tehran, Iran; Computer Engineering Department, Shahed University of Tehran, Iran
Abstract This Paper is a general description of OMID 2014, one of the Robocop Small Size League teams. The description includes hardware of robots and a general overview of software architecture. This time we have some improvement that include a complete new software design, noise avoiding ball detection, new design of robots main board.
1 Introduction
The Omid robotics team is a branch of robotic society of ECE department of Shahed University. Our team started the Small-Size League in summer 2007 with the effort of former member. Now OMID is working with new members and formers are as guiders. Here is an overview on the robots preparation and performances of each part respectively and all together. According to Robocup 2012, we Focus on some special problems :
- Breaking down the MOSFETs of motor driver during the match.
- Breaking down the IGBTs in shooting moments ( after some shoots )
- nRF Simultaneously send and receive problems.
- Optimization PI controller Coefficients.
- Optimization Regulators in main board.
- AI plans, to solve some weakness.
The Solutions we prefer for each of the problems, described in related part of TDP Briefly.
And According to increase players number in the field we add 3 more robots and rich 10 players.
2 Mechanical Design
2.1 Driving System
The main plan of robot is made of Aluminum. 4 Omni-directional carry the main body, each wheel is coupled to an EC-45-Flat brushless 30 watt motor via an inverse gear with a transmission ratio of 1:5. These Wheels are fully designed in one piece and no screw has been used in the structure of wheels. This feature causes more efficiency, more wheel life time and simplicity in design.
2.2 Kicking System
There are two solenoids that help to kick the ball, both for direct and chip kick. A flat plunger is made of steel, 4mm thickness. Direct kick plunger is made of two materials. The first part material is magnet which is steel, and the second part is made of a material with no magnetic property such as Aluminum. This feature causes a powerful kicking system.
2.3 Spin-Back System
The Spin-Back module is driven by 15 watt Maxon EC16 with a transmission ratio of 2:1. As we have in Small-Size League rolls the robots must have specific dimension, our robots have 178mm of diameter and 148mm of height and also each robot covers less than 20% of ball. The whole robot is about 2.5 kilograms weight. 3D simulation models shown in Fig.2 are created with SolidWorks.
3 Electrical System
An ADC with I2C interface is used to reduce busy FPGA pins. Each motor is equipped with an encoder to generate the feedback signal for PI controller. Motors are driven by MOSFETs and Driver IC. For FPGA protection we use bat54s and serial resistor for each GPIO pins. And for drivers breakdown we use "Current sensor" ,"Current limiters" & … . The nRF24L01+ is wireless communication that used [2]. We use a 4 cell-1500 MH lipolymer batteries for the power and main board. The motor drive circuit, wireless communication part, and main control circuit are designed in a single board rather than the shooting circuit, which connect to the main board by small cables.
3.1 Central Control
We use a cyclone II FPGA [1] as the main controller to generate all control signals for motors [3] by a PI controller. The full duplex wireless communication system receives the command packet from the AI and sends the robot status to AI. Once a packet arrives, it has to be decoded and processed with hall sensors and encoder's data to generate signals to handle motor drivers and shooting system. A gyro & accelerometer used to send feedback from robots to the Controller computer via nRF and help the inner controller to control robot.
3.2 Motor Driver
This part drives 4 brushless DC motors and 1 brushless DC motor for Spin Back. Motors are driven by Driver IC and MOSFETs. We utilize 3 phase inverter for DC motor drive. One of the Advantages of this motor driving is that the switching speed become faster than the older drivers. We decided to use a resistant as current limiter of main board and then reduce motor speed in FPGA to reduce current to solving MOSFETs break down during the matches. A Schottky diode paralleled with resistant are used in MOSFET's gates to increase their turning On speed due to decreasing MOSFETs turning Off delay.
3.3 Shooting System
There are two kickers, a direct kicker and a chip kicker. We developed the flat kick system to kick in maximum velocity, approximately 8 m/s. The kicker board can charge two 2200μF capacitors from 0V to 250V in about 5 seconds with 2A average current. For controlling input current and shooting board current we used a ACS712 current sensor. In charging moment a PWM used, that PWM and Duty Cycle change proportional with capacitor voltage's percentage. In order to avoid IGBTs break down in shooting moment, RC-SNUBBER [5] as secondary Circuit used, that damping extra current.
3.4 Communication
The communication between robots and computer performed with nRF24L01+ module. In order to controlling robots statuses, when the match is in stop mode robots details (battery level, …). This ability help us to have less halts due to change robots. The nRF24L01+ is a single chip 2.4GHz transceiver with an embedded baseband protocol engine, suitable for ultra low power wireless applications. The nRF24L01+ is designed for operation in the world wide ISM frequency band at 2.400 - 2.4835GHz.
4 Software
The robots software is separated to two main sections. Visioning software and Game play Algorithm.
4.1 Vision
For purpose of real time image processing and object recognition, we use two cameras (The Stingray F_046B/C's high resolution) and SSL-vision software [4]. The whole artificial intelligence is on one computer receiving the data of SSL-Vision and Referee in each frame and uses them to make decision.
4.2 Game Play Algorithm
This part contain four basic part: 1) Plans 2) High Level 3) Medium Level 4) Low Level Entirely we classify functions in these four part in order to making program more simple & flexible.
Plans
These section contain some plans we design for team to use them. For example when Opponent teams do an all in attack the simple plans with 3 defense wouldn't work so we design an all in defense system. Choosing the best plan from Plan section depend on marks that define for each robots in the field , opponents or Teammates. These marks help us to explain each robot situation in a logic way and use it for best decision.
High Level Functions
After program choose a plan, the chosen plan use High level functions to allocate tasks for each robot. High Level functions specify the current skill of the robot such as taking a defensive position, Goal kick, corner kick, passing the ball and so on.
Medium Level Functions
The tasks which High level designate to each robot needs some easier functions to be done that these functions are in Medium Level. Functions in this level are mostly common robot actions. For example one of these functions is "Moving In Field" so we can move and turn in field with this function.
Low Level Functions
As you can see again we need to get closer to machine languages so we use low level functions.
Low Level Functions are the robot basic behaviors including: exactly addressed movements, stop, spin back On/Off, direct kick and chip kick. Functions in higher levels are interpreted to the low levels in order to execute the result of an appropriate command and send to the robot circuit via nRF. Controlling methods run in this part so the data of Gyro and Accelerometer mostly used here because of lower delay in compare with SSL-Vision.
As an example when the Decision Section chooses the defensive state for a robot, the high level function will be set to "defense", consequently the medium level function will be set to "move in field" and then related low level functions such as gotoXY, stop, spin back,… will be executed so the command packet is ready to be sent to specific robot.
4.2.2 Determiner Section
The most important intellectual section is decision making section. In this section functions use data of SSL-Vision, SSL-Referee-Box and Robot Agents for current status of play and predictions of the next status in order to choose and decide a proper high level function and a plan.
4.3 GUI
4.3.1 Game Simulator
To test the Game Play Strategy Algorithms (4.2) without having two full robot teams and a play field, a Game Simulator GUI is prepared. In this way the Algorithm testing and error correction is done much easier regardless any physical and hardware problems and needs. Fig.8. a Screenshot of game simulator program.
4.3.2 Game Manager
To monitor the status of each robots and control all robots in the game field, Monitoring Software is programmed that will be installed on the off board controlling system. The robots location and ID on the play field is received from the visioning software and simulated. In other word this software manages the game play.
References
- Altera, "Cyclone II Device Handbook"
- Nordic, "nRF24L01+ Single Chip 2.4GHz Transceiver Product Specification v1.0" 2008
- Sebastian THRUN , Wolfram BURGARD , Dieter FOX "PROBABILISTIC ROBOTICS"
- Stefan Zickler, Tim Laue, Oliver Birbach, Mahisorn Wongphati, Manuela Veloso "SSL-Vision: The Shared Vision System for the RoboCup Small Size League"
- Rudy Severns "DESIGN OF SNUBBERS FOR POWER CIRCUITS"