For a few weeks I’ve been working on this with RVR. Still plenty more to add.
This is a demo of some of the features, including initiating conversation, responding to voice input and giving random facts and opinions. Currently he responds to 15 different voice inputs but I will be adding more. These are conversation inputs, you can’t give driving instructions (turn around, drive left etc) through this. But you can say “how are you”, “what’s your favourite colour” and “can you read a poem” etc.
All of the communication and conversation is handled with an old smart phone running a JSFiddle chatbot I created (not AI).
The Arduino setup involves a microphone that picks up sound from the smartphone, and tells RVR when to move, a touch sensor so RVR can purr, and an ultrasonic range finder. This serves two purposes. Firstly, when the RVR is in deskbot mode, it can follow your hand forwards and backwards. Secondly, if you hold the touch sensor during initial setup, the RVR will enter autonomous mode and drive around avoiding obstacles and exploring the environment.
Currenly, RVR has 105 facts to share, and chooses a random one every 40 seconds or so for ten minutes. This can be interrupted with a voice command at any time, and will resume on completion of that. I want to get to 300 facts, and probably about 30 voice inputs.
You could remove the smartphone completely from the back of the RVR and instead use a bluetooth speaker so you can speak into your phone wherever you are, within range, and the response will come from the speaker on the back of the robot. But I don’t have one lol so I’m just using whats available.