Project 2 – QuadruBot

What can we do for people in home quarantine?

Self-quarantine is already being something that many people have experienced, and therefore there is a real need for building solutions that improve the experience of quarantine.

Where to start?

Before getting our hands dirty for the actual building of the prototype, we need to find out the real needs of users – those in quarantine – beforehand. We performed 20 semi-structured interviews, and have found the following:

  • Most people (75%) has used a robot before and they are mostly based on text and voice (43.5% and 32.6% of the robots they used are of these formats respectively)
  • Health, Diet, Therapy and Entertainment are the key components mentioned

Health

  • Healthcare advice, body status monitoring and auto disinfection are things that users expect
  • For now, people just rely on themselves – for getting health information, doing the cleaning and monitoring their body status
  • They wish chatbots to provide healthcare-related information

Diet

  • Recipe recommendations, food nutrition checks and personal diet management are needed
  • Without help, people may be relying on fast food and getting food themselves
  • So, they hope to see a chatbot offering diet recommendations and helping the building of healthy eating habits

Therapy

  • Participants think that robots may allow online doctor consultation, medicine purchase, designing rehabilitation programs, or even testing
  • Without the help of robots currently, people can just take medicine without advice, and just go out for testing
  • They hope that a chatbot can help provide information about medicine and booking tests

Entertainment

  • Robots may chat, sing, tell jokes and recommend movies like what humans do
  • Now, people are just relying on friends, or searching for films and playing games that they know already
  • Therefore, they want a chatbot to offer game, movie and music recommendations

Building Framework

According to the result of our interviews and brainstorming, we built an HTA for the initial design of the flow of our chatbot.

We also built personas for people who tested positive for COVID, their close contacts, and those who are experiencing a lockdown.

With all these frameworks, we can conclude POVs which are an important reference for our further works.

  • Users want to monitor their health conditions and receive corresponding healthcare advices
  • Users want to look for some entertainment recommendations to kill time during the quarantine period
  • Users want to search for suitable home workout programs to compensate for the gym closure
  • Users want to cook healthy and delicious meals with limited ingredients on hand

Ideation

Here’s a mindmap concluding the ideas we collected for our prototype. We decided to make Healthcare, Diet, Workout and Entertainment as main directions of development – they are things that people in quarantine really need and can be offered in a chatbot just by text. The idea is illustrated on the storyboard right down here:

With this, we get into speed dating. Further feedback we received there shows that all the ideas for different functions, such as the chat, jokes and workouts recommendations are receiving positive responses. The fact that our bot can help eliminate the need of searching on different platforms one by one is particularly attractive. Yet, we were also recommended that news searching and chat history can be offered.

Implementation

Our scheme is to perform just a horizontal prototype with tools like Figma for diet recommendation; and for entertainment, workout and healthcare information recommendation, they will be in vertical prototyping with RASA and JavaScript as major tools.

RASA, being a powerful framework for machine-learning-based chatbot construction, allows developers (like me) to use the very easy-to-understand syntax (such as offering examples of natural languages with different intents) to build a reliable chatbot. Together with JavaScript and its frameworks, they allow the simple but productive development of a working prototype.

Here’s a flow for the operation of the chatbot. To achieve the goal of identifying intents, we collect examples of sentences that users will send to get certain services.

An example of sentences asking for movie recommendations, some also with genre included

For the movie recommendation, we obtained keywords like genres from users, and pick relevant films randomly from a dataset of 5000 movies (https://www.kaggle.com/datasets/tmdb/tmdb-movie-metadata), as we hope to make sure that users are getting something new to them.

A similar mode of implementation is shown in the development of healthcare information and joke-telling functions. They are all meant to be mimicking human-like interactions by understanding users’ intentions.

As for the frontend, built with JavaScript and HTML, we emphasized the intuitive and responsive design which makes the chatbot more user-friendly, for various users and devices.

Quick select with intuitive buttons with images
Video preview allows users to play directly
Responsive design for different screen sizes

Final Prototype

We conducted several tests with users to explore if the prototype is satisfying in its usability. The above video is a demo recorded with one of our participants in the process of usability tests.

Screenshot of our live testing

And here’s the result – we can see that while there are things we can improve, the chatbot is generally satisfying in terms of usability.

My Reflection

As we were working on this project, we were facing a strong wave of COVID cases in Hong Kong, and many people (including myself 🙁 ) have therefore experienced self-quarantine. I really can feel the troubles that are faced by people in self-quarantine – rather than material support, they need mental support more.

Nevertheless, it is always the best choice to get to know more actual users and to collect general needs, rather than just guessing by ourselves. For me, it is a little bit out of my surprise that simple things like recommending entertainment are the main needs of people in quarantine – these small and simple suggestions are already a big help for many.

In the project, I am mainly responsible for the development of the RASA backends. RASA is not exactly new for me as it also appeared in my FYP, but the difficulty is on real constraints we have – time and data. While we may be able to find participants for interviews, obtaining data as training sets for natural language processing can be more difficult. Many can be just too similar that may not add new “knowledge” to the training while some can be confusing even for humans – for example, we are not sure if users are asking for a joke or recommendation of films in the comedy genre by the sentence “show me something funny”! It really took time for me to explore if there are methods to make the predictions more accurate, such as getting more related examples.

To be honest, I am thankful for all my teammates – despite time limits and a large amount of work, we can still communicate with each other and put the most effort we can give to making the prototype as good as possible. Interviews and testing with users virtually are not easy, so as learning a new framework (RASA) and building a good-looking and user-friendly frontend.

Overall, this is yet another challenging but exciting experience. This is the beauty of HCI – we understand needs, we build solutions, and we let users decide if it addresses their needs. Even this is a really small-scale project, it tells us the power of HCI and how can it helps in such a hard time, which is really meaningful 🙂 .