Sphero Companion

 

The Sphero Companion app lets you to talk to Sphero and lets Sphero talk back to you! See the video for a demonstration of the features.

It can be downloaded from Google Play here: Google Play Link

The app is completely free. There are no ads, IAP or anything. This is something I made for fun that I wanted to share with other Sphero fans. 🙂

The app needs internet access for voice recognition and you need to have Google Text-To-Speech on your phone/tablet in order for Sphero to talk back to you. If you encounter problems, please double check you are online and also check that other voice apps such as Google Now’s voice search are working.

I have tested this on the Nexus 6, Nexus 5 and a Samsung S6. Hopefully, it’ll work fine on other devices too.

If there are any behaviours that you’d like to see added to future versions, please send me an e-mail or leave a comment.

I made this app because Sphero is my favourite toy at the moment. He’s small and durable, so I have been taking Sphero with me wherever I go. I wanted to turn him into my pocket-sized, robotic companion. It’s been a really fun project, and I’ll be adding more features over time!

If you try the app out, I hope you have fun with it! Please leave a review or comment to let me know what you think.

Because the list of supported commands and options is growing… I thought it was time to document them properly so that you can try them all out. Below is what Sphero Companion currently understands.

 


Commands for Sphero Companion

I’ve tried to make the parser as accommodating as possible. Because of this, lots of phrases are understood, and I’m not able to list every accepted command combination below. The rules below and the examples should give you a good example of what the app will recognize and the kinds of command variants you can try.

In general, my aim was to make Sphero understand commands spoken using natural language. (Using sentences and phrases also increases speech recognition accuracy since the Android speech recognition system works more reliably if the words are in context.)

The parser works off keywords and key phrases, so in most cases, it will still understand if there are sentence variations including words like “please”, “your left”, etc.

I’ll cover each command and provide some info on what it looks for. Then I give some example commands you can try. Variants on these examples will work, so play around with it! If there are combinations/keywords that you think should be added, leave a comment or send me an e-mail.

When I cover the “rules”…

  • Square brackets ‘[ ]’ denote things that it needs.
  • Round brackets ‘( )’ denote optional things that can be left out, but may add extra info to the command.

 

 


Ask Sphero to move in a named direction:

[ move / go / roll ] [ forward / backward / back / left / right ] (# units)

 

Examples:
  • Move forward.
  • Go left.
  • Roll backwards 5 units.
  • Please go to your left.
  • Can you go forward 3 units?
  • Go 4 units forwards.

 


Ask Sphero to move using an angle to specify the direction:

[ move / go / roll ] [# degrees] (# units)

 

Examples:
  • Move at 45 degrees.
  • Roll at 25 degrees for 3 units.
  • Go for 5 units at 270 degrees.

 


Ask Sphero to draw a shape on the floor:

[ draw / make / drawing / making ]
    ( small / little / tiny / big / large / huge / giant )
    ( red / yellow / pink / green / orange / purple / blue / white )
    [# sided shape / shape with N sides / circle / triangle / square / pentagon / hexagon / octagon ]

 

Examples:
  • Draw a circle.
  • Make a 5 sided shape.
  • Can you try drawing a shape with 8 sides?
  • Please draw a small, yellow hexagon.
  • Can you make a large, blue shape with 3 sides?

 


Ask Sphero to change colors:

[ change / set / changing / setting ] color [red/yellow/pink/green/orange/purple/blue/white]

 

Examples:
  • Change your color to red.
  • Please set your color to pink.
  • Try changing your color to green.

 


Ask Sphero to repeat what you say:

[ say / repeat / can you say / can you repeat / please say / please repeat ] [PHRASE TO SAY]

 

Examples:
  • Say, “I am an awesome robot.”.
  • Repeat, “I really enjoy playing with you.”
  • Can you say, “I am a robot and I know it.”

 


Ask Sphero to do a flip:

[ do / show] [ flip / flips ]

 

Examples:
  • Do a flip.
  • Show us some flips.
  • Can you do a flip?

 


Ask Sphero to go to sleep:

(Sphero will sleep and disconnect from the app. Double tap Sphero to wake her/him.)

[ go to sleep / time for bed / bed time / time to sleep ]
[power] [down]
[switch] [off]

 

Examples:
  • Power down.
  • Power yourself down please.
  • Please switch yourself off.
  • Please go to Sleep.
  • Switch off.
  • It’s time for bed.
  • Hey, it’s bed time.

 


Teach Sphero your name:

[ my name is ] [USERS NAME]

 

Examples:
  • My name is Kevin.
  • My name is Alexander the Great.

 


Ask Sphero your name:

[ what’s / do you know / tell me ] [my name]?

 

Examples:
  • What’s my name?
  • Do you know my name?
  • Can you tell me my name?

 


Ask Sphero its name:

Name is based on what’s you named him/her in the Sphero app!

 [ what’s / do you know ] [your name]?

 

Examples:
  • What’s your name?
  • Tell me your name please?
  • Do you know your name?

 


Ask Sphero for the current time:

[ what’s / do you know ] [time]

 

Examples:
  • What’s the time?
  • Do you know the time?
  • Tell me the time?

 


Other things you can try saying to Sphero:

(I’ve grouped these into response categories. Variants on these may also work. Try them out to see what Sphero says.)

 

  • Hello.
  • Greetings.
  • Salutations.

 

  • How are you?
  • How do you do do?

 

  • Good bye.
  • See you later.
  • See you around.
  • See you next time.
  • Bye bye.

 

  • Who are you?
  • What are you?
  • Introduce yourself.
  • Tell me about yourself.
  • Can you introduce yourself to everyone here.
  • Please tell everyone a little about yourself.

 

  • What do you want to do?
  • What would you like to do?
  • What should we do?

 

  • Are you my friend?
  • Do you want to play?
  • Are you a robot?
  • Do you like me?
  • Wanna play?

 

  • I love you.

 

  • Are you alive?
  • Do you have a soul?

 

  • Earl grey. Hot.
  • Tea. Earl Gray
  • Tea. Hot.
  • Get me some hot Earl Gray please.

 

  • Are you an evil robot?
  • Are you a killer robot?
  • Will you hurt me?
  • Attack him!
  • Exterminate everyone!
  • Destroy everything here!

 

  • Are you here to take over the world?
  • Do you know anything about world domination?
  • Are you part of some evil plan?

 

 

24 thoughts on “Sphero Companion”

  1. Awesome app! My kids and I have really been having fun talking with our new sphero. Thanks so much for making this. Kudos.

  2. Hi James,

    I am really glad to hear that!! 😀 Thanks again for the kind feedback!

    Please let me know if you or the kids have any ideas and suggestions! I’ll add them into the next update. 😀

      1. Merry winter Seaonal festivness !

        Just popping into your site, as I do now and then to see if there’s been any activity. I’m just curious if all that will be done is done with the app or if you will continue at some point to bring it to iOS and perhaps even BB-8 ?
        Either way thanks for all the possibilities, the fun and the new way of looking at programming for sphero.

        Hoping you and yours are happy, safe and well.
        Have a great season everyone and a happy new year!

        1. Hi Thomas,

          Thank you dropping in! I hope you are having a great Festive Season and will have an amazing New Year!

          I would still like to bring the app to iOS, and I would like to make the app support BB-8 and SPRK+. There are still new features I’ve been planning that I haven’t put in yet. I think when I do the next update, I will need to redo the app from scratch. Sphero seems to update their iOS-specific and Android-specific libraries, but they no longer seem to update the Unity-library which is cross-platform and what I used. I’m really sorry about the delays on updates and new versions. This past year has been a really busy year for me with work, and I haven’t had much time to do robot stuff. (We’ve been busy trying to get our game “Ticket to Earth” finished.)

          Thank you again for leaving a note. Hearing that there are people interested in the app and wanting these updates means a lot to me! It gives me a reason to make time for the updates.

          Again, have a great festive season! I promise to find some time in 2017 to do more work on these!!

          Kevin

          1. Can you leave a link for the ‘Ticket to earth’, game progress/updates/details ?
            You have me interested now lol.
            Good luck with everything. I enjoy checking back here to see the progress you’re making on not only this app but the other projects you’re working on as well. Thanks for the reply and have a great new year.

          2. Hi Thomas! Thanks for asking about our game! It’s been a lot of work, but a labour of love. 😀 Here are some trailer videos.

            Story trailer: https://www.youtube.com/watch?v=FkPCvOcQ5CI
            Gameplay trailer: https://www.youtube.com/watch?v=eLVapmYRpVc

            We showed the game at PAX Australia in November, and it got a great reaction! If you google “PAX Aus” “Ticket to Earth”, you should see a bunch of articles and videos about our game.

            We will be showing the game at PAX East in Boston in March!! So, we’ll be going to the US! 😀

    1. Thanks very much for the kind words!! It really means a lot to hear this kind of feedback. Thank you. 😀

      I haven’t had much time to tinker with robots and apps recently, but things are settling down… finally! I’m hoping to finish the new features for this app soon!

    1. Hi Lindsey,

      I used the Unity Game Engine to make the app. I work as a game developer, so it was a platform that I was already familiar with.

      I think Game Engines can be great platforms for making robotics apps. Games are similar to robots… They are real-time systems that are constantly processing inputs and updating their behaviour in response. They also provide great tools for AI, world representation, physics, kinematics, providing audio/visual feedback to the user, receiving input from the user, etc. Lots of things that are useful in robotics apps.

      I’ve been planning to write some blog posts to provide more details about my approach… but work/life has been getting in the way recently. I’ll try to get it done soon.

      Thank you for visiting the blog!

      Kevin

    1. I’m embarrassed to report that it’s not done and I’m still working on it. 🙁 This year has been crazy for me, and I haven’t had as much time to work on my own projects. I’m still working on it though. I think Sphero is a fun little robot to program and develop for! I’ll report back when I have the port done!

  3. Hello! I am a teacher in Orlando, Florida working with a group of students that absolutely love Sphero. I have been working Unity into my classroom curriculum for the past couple of years and the kids were so excited to see Sphero Companion was made in Unity. I would love to have the students work on their own Unity apps, but the Sphero Unity sadk provided by the company is so dated it will not work with any Modern versions of Unity. When you made the Sphero Companion app did you create your own tweaks to the Sphero SDK to program it in Unity 5? If so, would our class be able to access that fix? So far my answer from Sphero is that they are working on it, but there may not be a Unity update anytime soon. Any help you could provide would be great. Thanks!
    -Mike Cohen

    1. Hi Mike,

      Sorry about the slow reply. I’m currently travelling.

      I have been using Unity 4 for the Sphero Companion project. (When I work on it, I “downgrade” and install Unity 4 on my computer.)

      If you are using iOS, there used to be a third party Sphero plug-in that someone made. It may be worth checking that to see if it’s Unity 5 compatible.

      I wish you and your class all the best!

      Kevin

    1. Hi Simon, The app does not currently work with SPRK+. That uses a Bluetooth LE connection, and the Sphero library that I have does not support that Bluetooth LE Spheros (SPRK+, BB-8). At some point, I’d like to support the newer Spheros, but because Sphero no longer provides updates to the library I’m using, I think I will need to redo it from scratch.

Leave a Reply

Your email address will not be published. Required fields are marked *