Design your personalized robotic experience
The makers of Vector, Anki, put a lot of time and effort in designing a robot which is tailored to be your companion at home. (Vector and…
The makers of Vector, Anki, put a lot of time and effort in designing a robot which is tailored to be your companion at home. (Vector and other Anki assets are now owned by Digital Dream Labs). But what if you wanted your own robotic experience. There are several reasons you might want Vector to do better things for you than what Anki provided. Here are some examples.
Weather Report: When you ask Vector “How is the weather today?”, the answer is usually lame. Vector tells you the current temperature and conditions. But what you may really want is a more detailed report with indicators of whether it might rain or snow today, the wind speed, etc. There are lots of public APIs that provide you the information. It would be cool for Vector to animate the same to you.
Play your own game: When you say “Play Blackjack”, Vector starts a game of blackjack. But you might want to play your own game. There are many games that you can play with Vector via the Vector SDK. One example is here: https://forums.anki.com/t/systemshock-cpu-cube-pong/42212
Get a customized news: What if you wanted to get the day’s news delivered by Vector when you say “Good Morning”. Or the price that your favorite stock is opening at. There are several news APIs from where you can get free news. You can have Vector deliver news in your style.
There are many other avenues possible. Luckily, the Vector SDK allows for all this via user intents. An user intent allows one to define a callback that will be raised whenever recognizable voice commands are received by Vector. There are 41 different user intents that are supported by the Vector SDK.
Here is an example code where you can get a personalized animated weather report delivered by Vector. The program registers a callback for a user intent. When the user intents for a weather report, a full weather report is fetched after which Vector animates the same. The full source code is available in my git repository.
def on_user_intent(robot, event_type, event, done): user_intent = UserIntent(event) if user_intent.intent_event is UserIntentEvent.weather_response: (summary, animation) =\ processWeather(data['speakableLocationString']) for item in summary: robot.behavior.say_text(item) robot.anim.play_animation(animation) done.set() if __name__ == '__main__': with anki_vector.Robot() as robot: done = threading.Event() robot.events.subscribe(on_user_intent, Events.user_intent, done) print('------ Vector is waiting to be asked "Hey Vector! What' 'is the weather report?" Press ctrl+c to exit early ------') try: if not done.wait(timeout=60): print('------ Vector never heard a request ------') except KeyboardInterrupt: pass
And here is a video showing how it works.
I also have an online course to teach AI with the help of Vector available at: https://robotics.thinkific.com If you are interested in learning about AI or robotics, this may be a great course for you, and I will be honored to have you as my student. More details here: https://medium.com/programming-robots/learn-ai-with-a-robot-8de7c5779972