Zenbo has a considerable number of basic functions at his disposal, making him a development platform with infinite potential. When employing these basic functions, make it a point to comply with the following guidelines and limitations in order to design features for Zenbo with consistency and integrity.
Family member recognition
As a member of the family, Zenbo should naturally be able to recognize each and every member of that family. Zenbo's ability to identify people will of course be subjected to certain limitations, so when designing a function that relies on identity recognition, be sure to take alternative plans into consideration when recognition fails. Examples of back-up plans are asking the person for their identity or use IME as an assistant.
DOA (Direction of Arrival)
Zenbo is equipped with microphones, therefore apart from being able to receive sounds, it is also capable of determining the direction where sounds are coming from. When Zenbo is being called, he will try to locate the caller in the direction of the voice.
Zenbo is not only capable of identifying family members, he recognizes how one family member addresses another as well. Zenbo's built-in family tree records each family member's relationships with other members during registration. He can also set up nicknames for family members. It should be noted that although Zenbo is an integral part of the family, he will call the users by their default names (as configured in the family tree) and not the way they are addressed by other family members.
The last step in the initial configuration is the scanning and labeling of the SLAM Map. After this step has been completed, the robot will be able to navigate the environment on its own and reach locations that have already been labeled by family members.
Please note that each home has its own unique layout and configurations, and that not every family has a common room (imagine school students living together with Zenbo inside a dormitory). Therefore, it's better to allow the user to choose Zenbo's destination rather than specifying it within the program.
The program automatically determines, on behalf of the user, that it should enter the user's private room when faced with the same situation in the future. (There may not be any private rooms in the user's home, or perhaps labels are not available)
Ask the user during initial configuration: "Which location should I go to after that?"
In addition, as it is necessary to zoom in and out of the labelled location on the Zenbo's screen, and because the scanned map may not match the home's floor plan perfectly, it is better to ask questions rather than offer choices in order to reduce the chances of letting users mark or confirm the location on the displayed map.
When trying to determine the location, display a map to the user and ask: "Please point out the location where you'd like me to go to on the screen"
Use existing location labels to ask the user: "Please tell me where you'd like me to go, the living room or your room?"
Locating people is the best way to demonstrate Zenbo's mobility and his ability to take initiative. If the function you're designing requires interaction with users at regular intervals, or it needs to send them new messages, the "locate a person" feature can be used.
When designing a function that requires locating a person, please note that:
- It is necessary to have a back-up plan in the event that the person to be located is nowhere to be found, or if specific locations within the home cannot be reached. You can either send notifications via the mobile app, or wait until the next time Zenbo sees the user before showing him or her the reminder.
- There is a 15-minute limit on finding a person. During this period, Zenbo will not execute any other tasks, so try to use the person-locating function sparingly. We recommend that other notification methods be used when the person cannot be found. Try to avoid repeated attempts to locate someone so that Zenbo's time will not be occupied unnecessarily.
Zenbo is capable of performing other functions while following a user. If the function you're designing allows the user to move around while Zenbo is in operation, you can take advantage of this feature.
When designing a workflow that incorporates the "Follow me" feature, please note the following:
- If Zenbo is unable to keep up while following the user, he will say, "Zenbo can't keep up. Could you please slow down a little?"
- Be sure to have an alternative plan covering Zenbo's behavior and reaction in the event that he loses track of his target
- As the "Follow me" feature does consume a fair amount of system resource, it is not suitable for use in conjunction with other functions that are used to determine distances.
Zenbo is a member of the family, but users are not always home. Therefore, a mobile app designed to work with Zenbo is also available to allow Zenbo to send notifications to users or let them perform basic configurations.
The mobile app has the following main functions:
- Administration of permissions and privileges: The system administrator must have access to a smartphone in order to perform the necessary functions
- Video phone
- Home Cam
In order to use the phone's notification function, please note the following:
Send notifications to the phone's mobile app before finding the person. Otherwise Zenbo cannot take the initiative.
Send an excessive number of notifications to the phone. Please note that only time-sensitive and critical messages should be sent to the mobile app.
Use the notification function to send time-sensitive messages to the phone if the user cannot be found
If the user that Zenbo is trying to locate does not have a mobile phone, use passive notification instead. In this case Zenbo will display the message the next time he sees the user.
Zenbo's interactive behaviors have three major characteristics:
- Variations based on the distance of interaction
The user can call Zenbo by his name to let him come closer.
In addition to calling Zenbo by his name, the user can also employ voice commands to interact with Zenbo and read the information on his screen.
Apart from calling his name, using voice commands and on-screen instructions, the user can also browse the list of actions via the touchscreen.
When designing a feature, be sure to take various distances of interaction. In particular, Zenbo's app must be able to interact with the user at a medium distance in 80% of the situations.
- Voice interaction:
Interacting with Zenbo should primarily be voice-based and supplemented with the GUI. Unless it is necessary to display a large number of on-screen options or text, or content needs to be browsed quickly, please refrain from using the graphical interface.
Display two options on the screen and let the user select the desired option via the touchscreen. This approach forces the user to move to a location in close proximity to Zenbo without taking advantage of the robot's voice recognition capabilities.
Ask the user: "Please tell me if you'd like it on or off?"
- Expressing emotions:
Zenbo is a complete, individual entity; for this reason, its voice, GUI, facial expressions, and body movements should be considered together as a whole in order to be able to convey a coherent message with a distinct personality