Left ArrowBack to discussions page
Hi DoF,

I would like to share a project that I had the chance to work on last week. I was invited to participate in the Olympus Games, this is an event that is organized by one of our partners: Olympus-Controls. Every year, they organize an automation competition using the various products that they carry. This year, 7 teams participated in the games, each team was made up of about 5-6 people. Each team included sales engineers, application engineers, design engineers and a person from one of their suppliers. Our team included me, Marques Rasmussen, Jordan Schwarz, Drew Whaley, Jason Brickner and Andy Monteith. Our only restrictions were: using Universal Robots, Robotiq products, a Safety Scanner and 48 hours to complete the project. 

We decided to use the UR10 to be the dealer in a game of BlackJack. We also used a Robotiq 2F85 gripper with modified fingertips to manipulate the cards and the FT300 sensor for path recording and to use in a force feedback loop. We also used a DataLogic camera and vision system to take a picture of each card being dealt to keep count of each of the player's scores. We integrated the SICK Scanner on the BlackJack table to decrease the force threshold needed to stop the robot (Reduced Mode) when the robot was close to the players. We included a few buttons and lights to make the game more interactive and fun to play. After 48 hours of setting up the BlackJack table and programming the robot and the vision system, the final product looked like this:

The logic of the program:
  1. Once the program has been started on the UR's teach pendant, the players had to press the black button on the table to increment the number of players between 1 and 3. To start the game, one player had to press the red button. 
  2. As soon as the red button was pressed, the robot dealt 2 cards to each of the players and 1 card to himself (The Dealer). 
  3. After each player has been dealt 2 cards, the robot points the Gripper to a player to indicate that it is his turn to play. The player must then press the red button to "HIT" or the black button to "STAY". If the player has decided to hit, the robot will deal the player another card. The player can continue to press on the "HIT" button until he has busted (Over 21) or until he decides to press "STAY". If the player has decided to stay, the robot will repeat this step with the remaining players. 
  4. After all the players have either pressed on "STAY" or they have busted (Over 21), the robot will deal himself (The Dealer) his remaining cards until he reaches 17 or he busts (Over 21). 
  5. All the logic to decide the winners and the losers was programmed directly on the UR's controller. Once the winners were identified, we sent a string to the vision system to display the winners on the interface.
  6. The robot then pointed to each of the winners, this indicated that the winner had to choose his alcohol. By pressing the black button, the player could cycle through the bottles on the rack. Each bottle was backlit by a strip of LEDs, they were lit when the winner was selecting his choice of alcohol.The player confirmed his choice by pressing the red button. 
  7. Once each winner has confirmed his choice of alcohol, the robot picks up the first winner's shot glass and fills the glass with the chosen alcohol. Once the glass has been filled, the robot presents the filled shot glass to the winner. 
  8. To release the shot glass from the Gripper, the winner must apply a force in the Z direction. We used a force feedback loop with the FT300 force to set a threshold to release the shot glass. Once the shot glass was released, the robot served the shots to the remaining winners.
  9. The program returns to the home screen and waits for the players to start another game.
Here is a time-lapse video that shows an accelerated version of the game being played:

A few interesting things:
  • We used the FT300's path recording feature to pull the cards from the card shoe.
  • We also used the FT300's path recording feature to lay the card down in front of the player since the cards were sticking to the Gripper's silicone fingertips.
  • We used custom 3D printed fingertips to be able to grip the cards and to pick up the fragile plastic shot glasses. We mounted the Gripper's usual fingertips on the end of our custom fingertips to keep the grip the cards.
  • We wired the SICK Scanner to the light pole to give a visual signal to the players that the robot was now in "Reduced Mode". The green light was lit when the robot was working in "Normal Mode" and the orange light was lit when the robot was working in "Reduced Mode".
  • The interface created with the DataLogic software displayed the card being dealt and the score for each of the players in real-time.
  • All of the BlackJack logic was programmed on the UR, this meant that we wrote over 2000 lines of code to get this game working properly. 


Sign In or Register to comment.
Left ArrowBack to discussions page