Features

The PiDog has been designed as a complete pet robot packed with features to make it an enjoyable pet. Once turned on, it waits for the user to come back home, after which it activates with a bark. In the active state, the robot is constantly listening for any voice commands given to it, which it indicates by turning it's ear up and down repeatedly. When the dog's ear is up, the user can give any of the four action commands: GO, BACK, LEFT, RIGHT, or even turn it off by saying QUIT. These commands are mapped to specific motions that PiDog performs. For the turning commands, the dog also responds by moving its tongue in the direction it is turning.

Figure: Dog expressions for ear up-down, turn left, turn right, and look
Figure: Direct voice command

Stage 1 Training

Every time the PiDog hears a voice command, it also looks for any hand gestures in front of its collar (camera). These hand gestures are associated by the robot with the action command to "learn" the gesture command. This means that if the user says gives a command a few times and shows the same gesture to PiDog, it will learn to follow the gesture directly (without needing the voice command). In order to do this, the user simply needs to say LOOK, show the hand gesture, and the robot will perform the desired action! While we have designed PiDog to be mostly accurate, it may get it wrong sometimes, so when it performs the correct action, saying GOOD to it will make it happy (and make it even better in the future). When the robot hears the LOOK command, it widens its eyes to show that it is recognizing the hand gesture, and once recognized, it barks to confirm. The steps in this stage 1 training are as follows.

  1. Speak a voice action command (GO, BACK, LEFT, RIGHT) and show a chosen hand gesture for that command.
  2. Give other voice commands with their hand gestures.
  3. Repeat 5-10 times.
  4. Speak the LOOK command and show the hand gesture for the desired action.
  5. PiDog will perform the action!
  6. If the action was correct, say GOOD. Go back to step 4.
Figure: Training for hand gesture with voice command and testing by directly showing the gesture

Stage 2 Training

Now that the PiDog knows how to recognize and follow hand gestures, it can be trained for new voice commands. These new commands will stand for sequences of the basic actions the robot already knows to do. For example, a command DANCE can be turn right --> turn left --> turn right --> rotate (a sequence of RIGHT, LEFT, RIGHT, BACK commands). To teach this to PiDog, the user needs to just speak the command DANCE, after which the robot will look for the hand gestures that make up the new command. During this, it will widen its eyes when looking for gestures, make them smaller for the user to change to next gesture, and widen them again to look. This occurs until the user keeps showing it gestures, which means that the command can be as complex as desired! After learning the new command, the robot gives its happiness bark. Now, the user can simply say the newly taught command and PiDog will perform. This is called the stage 2 training and has the following steps.

  1. Speak a new command (other than the 4 action commands, LOOK, and GOOD).
  2. When the PiDog widens its eyes, show one of the action gestures it has learnt.
  3. When the eyes are back to normal, change to a new gesture before they widen again.
  4. Show as many gestures as desired to build a complex action. Remove the hand once done.
  5. The robot will first perform the newly learnt command to confirm that it has learnt it.
  6. Now, whenever PiDog hears the new command, it will perform the sequence of actions.
Figure: Training for new voice command with series of hand gesture and testing by directly speaking the new command