When I was in the Second Year at my university, me and one of my friends developed a robot for a Robotic Competition. After that, we kept developing it further. Nick is a result of it.
We had the idea of developing a Voice Activated Robot which follows our commands, and respond accordingly. We researched on several such technologies, and we read many research papers too. Finally we decided to go with Google Dialog Flow, which was much intuitive and offered so much of functionalities.
The brain of the robot is an Android App installed in the mobile. Why use a mobile phone? Well, other than adding 5 - 10 sensors and a Raspberry Pi, using a mobile phone is much more easy and straight forward. It is a compact device with very high flexibility. Hence we decided to go with the android app. We connected it with Dialog Flow and configured Dialog Flow agent with the predefined voice commands.
The android app keeps listening to the voice commands and is activated by "Robot Listen / Nick Hello" etc. Then once we utter the command, the voice data are sent to Dialog Flow and processed in the cloud. After that, the command is resolved and the correct parameters are sent by the Cloud.
The android app receives the results. The mobility of the robot is controlled by Arduino Mega board and a L298H Motor Driver. Arduino is paired with Android app via HC -05 Bluetooth Module. Once the results are processed by the Android app, the commands are sent to the Arduino via bluetooth to operate the robot.
Example: To make the robot go forward, I would say; "Robot Listen"....
Reply from Robot; "I'm listening"...
Me ; "Go forward"
This command is captured by the app and sent to Dialog Flow. The agent processes the command as "Go = command / function" + "Forward = direction".
Then it will send these parameters to the app. Currently a simple IF Else logic separates these commands and send a unique character via Bluetooth Serial, to Arduino. Arduino will read the serial and execute the command related to that character.
Github Link for code - https://github.com/ChamodyaDias/Nick