We worked with Sandrine Tourcher to establish a list of questions one should always have in mind when designing an app for NAO or Pepper to create a better interaction between a robot and a human. As User eXperience (UX) experts, she and her team are in charge of all the usability improvements of Aldebaran’s products, from our websites and software to your interactions with the robots.
It’s important to know that building a good User eXperience is a team work with interaction designers, visual designers, developers, usability experts and strategy representatives. In this multidisciplinary team, the UX expert has two roles. He is able to evaluate the experience the user is living with our products to identify issues and detect improvement levers, but also to be an actor of these changes as a usability expert.
She describes their role as “user’s advocate” by representing users in the conception team to make every products and content intuitive, efficient and easy to use for them. From this perspective she brings some insight, golden rules and advices that might also be helpful to developers working on robots at home, like you.
1 - What’s the intended audience for what I’m building?
That question is very basic, but too often ignored: for whom are you developing an application? Have you built your app with a specific audience in mind?
If that audience is autism spectrum kids, academics using the robot or experienced developers, the application will be totally different, you need to take their different needs and abilities into account. Bring users to the design process, make apps for and with your users. You may need to provide different instructions depending on your audience, and different interactions. They might expect something different from the app.
The “follow me” app, for example, provides very simple instructions: NAO lifts his hand and says “follow me”. But there’s another version of that app in the ASK NAO suite (autism audience), where NAO explains step by step what he’s doing and how the interaction will play out.
2 - Is the robot giving clear signs and feedback to the user?
When people first meet NAO or Pepper, there’s an adjustment phase. They quickly evaluate how they can interact with them: Does something happen when I touch him here? Should I talk naturally or use single word instructions?
It’s important during this phase, and all through the interaction, that the robot understands the user but also that the user knows the robot understands… or does not. So you need to constantly think about the signals you’re sending to the user to make them understand what the robot is doing and what the robot is expecting the user to do. Don’t keep the user guessing, tell the user what’s happening. The less the users have to guess the better! That’s why it’s very important to set up feedback loops in your app to make the user interaction much better.
3 - What’s my scenario and what happens outside of it?
With a clearly established scenario including a beginning, a middle and a end, you’ll be able to give the user a clear sense of what’s happening. Sometimes the robot is developed to do some activities, but it’s not usable in the real life because the user was forgotten in the scenario and he doesn’t have his place in the interaction, not the possibility to speak, the rhythm could be not appropriate, the interaction codes could be missing, and so on...
Each app also has to be developed in a context, consistent with the robot behavior, the transitions are as much important as the app content. With a lot of apps, whether it’s a dance or a game, you often see the robot just stop and go back to Autonomous Life, without any transition.
When you’re really used to the robot you can understand that, but most people are confused. Just having the robot take a bow, saying “thanks for watching me ” and/or clapping at the end like in the “Happy Birthday” app, can really make a difference!
Also, having a scenario helps you realize when users, whether mistakenly or intentionally, don’t follow the rules and go outside the scenario, and you can figure out a way to bring them back on track.
4 - Is my application easily understandable?
At some point while building your app, you may begin to know it just a little too much and start to take shortcuts that will be very hard to figure out for the average user.
The robot shouldn’t have to spell out complex instructions when launching the app. If you need the user to learn how to use your app, think about how you can teach him in a non boring way. Some video games are often great at this, with step by step tutorials, you can do the same system in your applications.
You don’t need to explain the whole activity before starting it but you can lead the user in the gameplay at the good time. The goal is to make contextual and appropriate briefings when the user needs it. For example, after 2 mistakes from the user, you can propose to repeat what it was expected / the rules.
If the user does something wrong, don’t think it’s their fault: figure out a way to make them not do that next time.
5 - Has someone tested that?
You can imagine your audience, build a scenario… but you can’t predict all that’s going to happen. Be sure users will never use the application exactly like you developed it. Sometimes because they missed the briefing or didn’t understand it, but also because they want to trap or test the robot abilities. For example when the robot says touch my hands, we saw some teasing people touching the head, expecting a joke from the robot like “Oh come on I said my hand not my head”. But the other scenarios are rarely developed and these funny moments don’t happen a lot.
You need to have someone with a fresh pair of eyes, and if possible not too much experience with the robot, to test your app. Will they understand how to use it? Will they misuse it? Will they be lost?
Test your application with other persons, if they success the activity without helping them by giving more briefings (yes we know it’s hard to let them without helping but it’s very important to do), that’s the only way to know for sure your app is ready to be shared!