Hide and Seek Gaming - Algorithm

 Robot Design

- Mechanical Design of Robot

Kinematics and Dynamics
- Speed, Direction of each of the players
  
          getPlayer()
          setPlayer(player)
          struct(timeInstance, speed, direction) getVelocity()
          setVelocity(timeInstance, speed, direction)

Control Systems
- Degrees of Freedom of each of the players

  getPlayer()
          setPlayer(player)
          struct(timeInstance, motorType, motorState) getMotor()   
  setMotor(timeInstance, motorType, motorState)          

Perception and Sensing
- Instantaneous Sensors Data of each of the players

          getPlayer()
          setPlayer(player)
          struct(timeInstance, sensortype, sensordata) getSensor()
          setSensor(timeInstance, sensortype, sensordata)
          
Robot Localization and Mapping
- Distance, Field Limitations, Static Objects (like trees, stones in case of 'hide and seek')
          
          struct(length, breadth) getFieldLimits()
          setFieldLimits(length, breadth)
  struct(List(StaticObjects<length, breadth, height>)) getStaticObjects()
          setStaticObjects(struct(List(StaticObjects<length, breadth, height>)))
Robot Manipulation and Grasping
- An instantaneous scanned map of entire field (player positions)

          struct(List(Players(position, timeInstance, velocity))) getPlayerPositions()
          setPlayerPositions(struct(List(Players(position, timeInstance, velocity))))


Path Planning and Navigation
- Game Rules

          1. Render the field on the screen
             - f = getFieldLimits()
             - s = getStaticObjects()
             - p = getPlayerPositions()
             - render(f, s, p)
     
          2. Choose a seeker and Initialize him/her
     - setPlayer(player, mode='seeker')
             - setVelocity(timeInstance, speed, direction)
             - setMotor(timeInstance, motorType, motorState)
             - setSensor(timeInstance, sensortype, sensordata)

          3. Initialize the hiders
     -  for all hiders
           * setPlayer(player, mode='hider')
                   * setVelocity(timeInstance, speed, direction)
                   * setMotor(timeInstance, motorType, motorState)
                   * setSensor(timeInstance, sensortype, sensordata)

          4. Set seeker at the guarding position and choose random positions of the hiders to initialize on the field. 
             Seeker position will be near the symbol/flag to guard. 

            -  setPlayerPositions(struct(List(Players(position, timeInstance, velocity))))              
     
          5. Start the game and let the seeker counter begin
             The hiders will hide behind the stones/trees. 
             The hiding positions would be "identifiable"

  6. The counter stops, the seeker starts scanning the field

  7. The seeker keeps scanning for any clues which can identify the hider (like hider' dress/shirt color, voice etc) behind the trees/stones etc
 
  8. If (the seeker finds a clue): 
He/she will call the name AND position AND touch the symbol, to get the hider out.
                If the hider is OUT, he/she will come out of the position and stand in a common place 

          9. Else, 
  The seeker moves far from the guarding symbol, in search of the hiders
    
          10. Go to step 7

                

                         
Machine Learning for Robotics
- TBD


- Check if any framework already exist for simulating the above. 
- Collaborative robots

- Misc Functions Implementation
* Seeker's Counter
        * Visual Clue
        * Auditory Clue
        * Scanning the field
        



- Make a central place (with a symbol carved on it) in the middle of the ground. The seeker starts counting and seeking from this central place. This central place has to be guarded by the seeker.
- This place (with a symbol carved on it) needs to be touched by the hider, in order to get the seeker OUT. If the seeker loses, the game will be reset and he/she will be the seeker again.
- The seeker yells the "hider's name" with his/her "hiding place" and touches the "symbol",  in order to get the hider OUT. If all hiders are OUT, the first hider who was found will be the seeker.
- The hiders will hide all around from this central place
- The seeker will continuously scan the entire ground in order to look for hiders
- Multiple hiders can hide at the same place
- Hiders can talk amongst themselves or make some noise in order to distract the seeker and pull him out of the central place to seek them
- The moment the seeker leaves his/her central place and moves a certain distance, the other hider can run towards the central place and touch the symbol to get the seeker OUT.
- In case the seeker is aware enough of this other hider running towards the central place, he/she should be able to race and guard the central place to get this hider OUT by touching the symbol first. In case the hider manages to reach the symbol first, the seeker will be OUT.

No comments:

Post a Comment

If I can not take care of the children, I will not have them

We can grow along with children, if children are cared properly. Especially when children start learning and if we learn along with them, it...