Natural sciences have already fascinated me since my early childhood therefore I chose mathematical, physical and information technological specialised class for my secondary grammar school studies. It significantly contributed to my professional development and retrospectively proved a right decision.
When I was fourteen I started to learn programing in autodidact way. Due to that I get acquainted with a new world in which I could gratify my creativity without limits and I could create freely something new. It was an indescribable feeling for me that only my own knowledge gaps could set borders for my imagination and the recognition of this encouraged me for continuous self-improvement and learning.
This passion of mine have not abated in after years moreover, I completed my computer knowledge with perfection in electronics as well. With the combination of them I have made new kinds of electronic devices since the age of fifteen. My purpose is to continue technological development with which, I hope, I can do for the benefit of the people.
• 2015 - National Talent Competition – 1st Award
• 2015 - Intel International Science and Engineering Fair - 2nd Award
• 2014 - Tóth Árpád Secondary School - Most successful student Award
• 2014 - Information Technology Competition – 1st Award
• 2014 - Scientific Conference of Student Societies – 1st Award
• 2014 - European Union Contest for Young Scientest – Special Award
• 2013 - National Scientific and Innovation Contest – 1st Award
The idea of the Poker Robot was born from the mixture of my two beloved pastimes. Operations of machines and robots have fascinated me since my childhood. At the age of fourteen, I started to deal with programming and microcontrollers. One year later I get acquainted with a poker game, called Texas Hold’em. These two leisure activities were alloyed in my project.
The thought of building a robot came from playing poker with my friends. I began to watch the operation of the game and I realised that the moving of chips could be automate and entrusted to a robotic arm. Later during the game I was thinking about robotization of other elements. I had several ideas for identification of cards and chips. At the end of the game, almost the whole idea of the Poker Robot had already taken shape in my mind. The aim was to create a Texas Hold’em Heads up (one by one). Not only with the purpose of entertaining but as a sparring partner which can help players to improve their tactics, as well. I tried to develop the most profitable algorithm for poker.
The expectations were the follows:
• The robot must have minimum 3 degrees of freedom;
• It has to be 40-45cm long;
• It also has to be controllable within 1mm precision;
• and being able to communicate with a computer.
For the machine to be able to play poker, perception and recognition of the chips and cards were necessary. Solving this problem required image analysis from two camera. Due to the size of the poker algorithm and image analysis, running the program was a job of an industrial computer with touch screen.
During design time of its table, I kept in mind that it should, as closely as possible, resemble a real poker table. Another important consideration was that the construction had to be accomplished within a tight budget.
The first part of the project was to build a robotic arm which can grab, hold and move the poker chips. So I started to saw every single part of the arm out of wood by myself at home. I used 5 TowerPro MG995 analogue servomotors. It was just enough to get a hold of a single chip. That is why I have built a more precise, more powerful, basically a better version of the robotic arm. I was trying to make a professional version of the previous one.
• I have designed every components on my computer.
• I have replaced the motors with more precise and stronger ones.
• The parts of the robot have been cut out with laser technology for the bigger accuracy, this time made out of special plastic.
After finishing the construction of the robotic arm, I started to work on its controlling software. In the first version of robotic arm I used Atmega 328 microcontroller. It was enough for analogue servomotors, but in the second version I had to use special servo controller for digital motors. This controller can communicate with the computer via USB. I continued to write an algorithm for fast and simple positioning which can move the arm in three dimensions with only 3 parameters (x,y,z). I wrote another algorithm to calculated these 3 parameters (x,y,z).
This project requires unique cards and chips that both humans and the robot are able to recognize. Since I used colour webcams, I considered, recognition via colours is the most effective solution. Each card has a unique code of colours. Since the webcams output individual pixels in RGB code, I decided to use 3 colures for identifying each card: red, green and blue as these three can be differentiated most easily.
Four boxes contain the information which facilitates identifying each card. Every card is assigned a number in the software, for example this card's number is 410. The 4 means that the card is spade and the 10 carries the value of the card (Jacks, Queens, Kings and Aces are valued 11, 12, 13 and 14 respectively).
On the side of every chip there is a coloured line which the robot can perceive. Adding up all the chips it knows the amount in the pot.
After solving the problem of controlling the robotic arm, I focused my efforts on creating the main algorithm. But before programming the rules of poker into the robot, I had to declare a list of inputs. These are the cards of the robot in the hand, the community cards and the amount of chips in the pot, from which the robot can deduct the player's action (fold, check, call or raise).
The software on the industrial computer queries input from the webcams and analyses them in real time. In this picture we can see as the first three community cards are exposed and are identified by the computer. It examines the areas enclosed by the green rectangles, determines the colour of the boxes and, based on the four colures, identifies each card. The other webcam is built into the table. It recognizes the robot's own cards, facing down, using the same technique.
Aside from card identification, the other essential input is the value of chips in the pot.
You can see in this picture how the robot determines the amount of chips in the pot. It checks the colour in every green rectangle and if it's either blue or red, the robot knows that it is a chip.
After securing the connection between the robotic arm and the computer, and feeding the necessary input to the robot, the most difficult part was waiting for me, to write a working algorithm that makes the robot think as a poker player. I made a code for the machine which is
• able to make a decision in any kind of situation,
• able to calculate the value of the cards,
• capable of making bluffs (in a suitable situation),
• and know when and how to raise, check or fold.
To make the best decision in every hand the poker robot use Fuzzy Technology and it checks what kind of style you play. With Fuzzy Technology the robot is able to calculate with a lot of parameters (value of robots hand, community cards, amount of robot/ player/ pot and style of players) and make an optimal decision.
There is an example: how many different bet size can be with only 2 parameters. The robot save how many times the player fold/ check/ bet. With this database the robot can change its poker style.
As I wanted to increase the level of playing I put a touch screen on the robot. I made a graphic program wherewith you can easily control all parts of the game and it provides more information about the state of play.
I am working on this project more than one and a half years. During this time I have developed a robot which can play poker everyone who wants to play. Playing with it is very enjoyable because I mixed advantages of the real poker and online poker. You have to use real cards and poker chips, but you can play with it every time and everywhere. There are a couple of options to use this robot in the real life, for example it can be applied for your own good to improve your skills and strategy or it also can be used in casinos as a new gaming machine. It could be the first fair machine because in poker there is no best strategy but with the robots complex decision- making process it can be profitable for casinos as well.
My idea was to build a 70cm tall humanoid robot. After studying the advantages and disadvantages of some competitive projects I managed to come up with the idea of a robot which is more suitable for research, whom I named Daniel.
Daniel is consist of 25 servomotors. Each motor has position, temperature, load, and input voltage feedbacks. I apply two 2200mAh LIPO batteries in the robot. These energy sources would make Daniel walk about 30 minutes. The robot consist more than 300 elements and most of them designed by myself.
To control the robot I use NI myRIO embedded hardware device. Daniel has two cameras, which would let him see in three dimensions. Daniel has a pair of hands which helps him grab objects and put them to other places. This highly contributes to complex tasks. My primary aim is to create an effective walking algorithm.
Daniel the Humanoid Robot project is sponsored by National Instruments.
Smartwatch:
LED Cube:
3D milling machine:
Email: donat.hegyesi@hdrobotics.com | Tel: +36309292971
Editor: Dóra Hargitai