Voice Technology is something I am really interested in and in the spirit of learning I came up with the idea of creating a smart useless machine out of LEGO which can talk and behave in sassy and unpredictable ways. Users could have the chance to play against a non-human entity and see if they are able to defeat and turn the machine off.
Client
Year
2020
Deliverables
- Script
- Interaction Model
- Alexa Skill
- Python Code
The challenge
Giving life to a smart useless machine that can talk, tease and move in unpredictable ways, by combining the LEGO Mindstorms robotics kit with an Amazon Echo Dot.
The Design Process
- Scripting the dialog and overall man to machine experience
- Create the Voice Interaction Model by defining the intents and sample utterances
- Deploy the skill that connects to the brains of the LEGO robot
- Define the set of actions that control the robot on Python
- Put together the LEGO robot
- Design a sturdy case that goes on top of the robot
Design and Implementation Toolkit
The tools, technology and artifacts chosen for the task at hand.
Scripting
Alexa Developer Console
LEGO Mindstorms Kit
+400 LEGO Bricks
Python
VS Code
Scripting the interaction between man and machine
The script is the starting point to design for a natural conversation or interaction between a person and the machine, and that’s exactly what we are aiming for.
Interaction Model
I defined a custom interaction model. The interaction model is the first step to define the voice interface through which users would interact with the machine. To define the voice interface, I mapped users’ spoken input to intents.
Intents
The intents represent actions that fulfills a user’s spoken request. Intents are specified in a JSON structure known as the intent schema.
Sample Utterances
Utterances are a set of most common spoken phrases mapped to the intents. Every intent should include as many phrases as possible. Given the flexibility and variation of spoken language in the real world, there will often be many different ways to express the same request, and the box needs to understand those requests.
Alexa Skill Code
We then create the Alexa Skill, which is code that can handle requests send to Alexa when the users is talking to her. The code we write needs to:
- Recognize each incoming request that Alexa sends
- Return an appropriate response to the user
Python Code
When the user pushes the switch for the first time, a series of events are triggered. These events are handled by the Alexa Skill and notifies the LEGO EV3 device (the brains behind the box) to perform an action or command. These action could be something like:
- Move the arm and push the switch back
- Move the wheels
- Tease the user by pretending to be off
Robot Core Design
I found a model and set of instructions to put together a useless machine using LEGO Mindstorms. Since I already own one LEGO Mindstorms set putting it together didn’t take long.
Frame Design
I designed a large black box to go on top of the core design. To give it an even more sassy personality I crafted a custom female face, inspired by the minifigure faces as seen on a variety of LEGO Minecraft sets.
A real life glimpse
Check the smart useless machine outsmarting her own creator
Something awesome awaits ...
The impact
The smart useless machine was exposed to a diverse group of people.