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.
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.
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.