Jibo, Look Away


#1

Skill Description

This skill was built to solve a simple privacy issue by giving the user direct control to have Jibo hide his cameras for any length of time. This is important for when you need physical privacy or just don’t want Jibo staring at you.

Usage

Download the skill from GitHub: https://github.com/michaelrod77/jibo-lookaway

Run the skill in the Jibo Simulator (or on the robot if you’re lucky enough). Type (or say) “Hey Jibo”, then “Look Away” to begin the skill.

Following is a complete breakdown of the skill in action:

  1. Jibo starts in idle and listens for “Hey Jibo”.
  2. After hearing “Hey Jibo”, Jibo listens for “Could you look away”, “Please turn around for a bit”, “Stop looking at me for 5 minutes”, “Close your eyes please”, “Turn around until I tell you”, “Go to sleep” or other variations of these requests.
  3. After hearing a “look away” request, Jibo will immediately turn around and look away from you.
  4. If you didn’t supply an amount of time in your request, Jibo then asks “For how long?”. Jibo will wait up to 10 seconds for an answer, then turn around for 1 minute if not given a specific amount of time to look away for.
  5. Jibo will look away for the time you asked for. After around 30 seconds, he gets bored and starts looking around, still keeping his gaze away from you. Occasionally he’ll let out a little “chirp” out of pure boredom, unless you said the word “quietly” when asking him to turn around or if you say “be quiet”, “quietly please”, or “shut up”.
  6. After he hits the amount of time you asked him to look away for, he will ask for your permission to turn around. Upon receiving permission, he turns back around and jumps into idle again waiting for your next request.

Additional Notes

This was the first skill I created with the Jibo SDK, so it isn’t very complex, but it does the job. It also hasn’t been exhaustively tested, so if you do run into a bug or have a feature request, please let me know. I’m planning on putting this out for free in the Jibo Store when it becomes available, as long as this feature doesn’t already natively exist in the robot.

EDIT (Apr.5,2016): Updated breakdown to match new features released in version 0.11.


Peek-a-boo! skill
Where Does Jibo Live in Your Home?
Jibo his Eye disappears and white screen remains after document.write command to show text on screen
Make Jibo post status message on Facebook with IFTTT
#2

This is pretty cool!

I ran into an issue of Jibo not waiting the whole time every even time. I suspect it’s the same bug with the SDK that I already reported where nested whiles skip every other pass.

I never got the “for how long prompt” for some reason.

A feature you could add might be to ask at the end of the timer if it’s ok to turn back, so the time could be extended.


#3

Nice work,very good idea Michael!

I think the factory time rules could be extended to include “a minute, a couple of minutes, a few minutes, just a few… and so on”.

Also an option without a timer, “turn away until I tell you” … then listen for " turn around" or what ever.
It might be a good way to prepare Jibo to sleep for whatever reason… “turn around and sleep” - now the user is assured that the cameras face the wall or whatever.


Subtrees sometimes stop after first behavior in sequence
#4

This could also be the base of a “peek-a-boo” skill for small children, too. Jibo turns around for a random time, then turns back and says, “boo” in a non-scary way. Little ones would love it.

Jibo could even listen for a little bit to see if the kid says, “boo” back, then say something like, “I hear you!”


#5

Thanks for giving this skill a quick test, chris and bmulreni.

@chris: I ran into that same bug as well during my testing. Although it seemed intermittent, it did creep up more as the skill looped. I wasn’t able to fix it since I couldn’t pin it down, but you might be right that it’s the same bug that was already reported.

Per the “For how long” prompt, the skill should reference if a time was set in the original “look away” request…if it skipped it during your test, this might be a bug in my code. I’ll give it a check today to see what I can find. I also like your idea of asking if it’s okay to turn back; that sounds very considerate and Jibo-like.

I’m also very glad that you were inspired to create a “peak-a-boo” game by this skill. Something like that could also be extended into a full-fledged “hide-and"seek” game too, where Jibo turns and around and tries to find you. Both games will be fun for kids and adults.

@bmulreni: Thanks for the suggestions about extending the factory rules…I’ll just add those to my rule file in case they don’t get put into the factory rule. Also, I like your idea of allowing him to turn around until futher notice. He’s already listening for a “hey jibo” when he’s turned around to come back, so it would be a pretty simple change for me to include this.


$factory:yes, $factory:no
#6

Hide-and-seek…that’s intriguing. Of course, it’s easy to win traditional hide-and-seek against Jibo just by leaving the room, but I’m imagining a variant where you have several kids, and they have to evade Jibo’s face recognition and tracking for a period of time by moving around really fast. If Jibo announces he “sees” them before the timer runs out, Jibo wins.

This one will have to wait until we have physical Jibos, I think, though.


.rule editor output vs. Jibo Simulator
#7

Hi guys,

Just wanted to follow-up and let you know that I have updated the “Look Away” skill with a handful of new features based on requests by chris and bmulreni.

The updates now allow for arbitrary time assignments and indefinite look away times, as well as Jibo now asking for permission to turn around before he does.

Here’s the full change log for this release:

Change Log (v.0.11)

  1. Added new rules to “lookaway.rule” and “howlong.rule” to allow for more arbitrary time assignments: “Look away for a few minutes”, “Turn around for a couple of hours”.
  2. Added rule to allow for “indefinite” look away times (maxes out at 999 hours): “Turn around until I tell you”, “Close your eyes and sleep”.
  3. Jibo now asks “Can I turn around now?” when the time is up.
  4. Slightly sped up the “look away” animation.
  5. Updated the “backwards idle” animation to have a little less Jibo movement.

#8

Updated for SDK 1.3.3 and jibo-sdk ^3.0.0.


#9

I’ve been playing around with this skill and I really like it!

It’s skills like this that I feel makes Jibo adorable and fun to play with!


#10

Thanks for giving it a try. I didn’t know if something like this would already be part of Jibo’s initial skillset, but it was important to have nonetheless for those special situations when you would rather have Jibo’s cameras not facing you. Simple and easy to create…a good first skill for me to learn the SDK with.


#11

Just updated the skill with a new feature to allow for Jibo’s emotions to shine through this simple skill.

I added 3 emotional states to all “look away” requests: relaxed, excited, and sad. These are triggered by the phrasing you choose to have Jibo turn around.

Standard phrasing (e.g. “Please look away”) will trigger the excited turn-around animation/response, whereas phrasing like “Stop staring at me” will frighten Jibo triggering the sad animation/response and “Go to sleep” will trigger the relaxed (original) turn-around animation.

Here’s the full change log for this release:

Change Log (v.0.1.2)

  1. Updated “lookaway.rule” to send an ‘emotion’ variable with one of 3 strings: excited, relaxed, sad.
  2. Added two new animations: lookaway_excited.keys and lookaway_sad.keys
  3. Updated the main.bt file to choose the appropriate response based on the emotion variable.

SDK Access to Jibo's Emotive System
#12

Hey @michael

Congrats, I think your “look away” is mentioned as part of Jibo’s security features by the writer of this article.

Michael Jordan of machine learning…

…“users can tell Jibo to turn around when they’re changing”

best, Bob


#13

Thanks, Bob. I saw that reference in the article but didn’t know if they were talking about this skill or one that’s internally-developed and native to Jibo. Definitely wouldn’t mind if they scoop up mine and make it native though. :slight_smile:


#14

@Michael Nice changes.
I’d like to see an addition, if not someone developing a different but related skill.

"Quick, hide!"
Jibo yelps, quickly looks left and right, accounts for faces.
Performs lookaway to a position that he can’t see faces.
He could shake a little, maybe a wimper to remind family he is hiding.
Would turn left or right slowly to see if any faces are approaching the “safe” position of no faces in view.
If a face comes into view, he could yelp again, turn more away into a new safe position.
If no faces appear for a time, he might peak around and ask if it’s safe yet.
If he couldn’t find a safe position with no faces, he could say " I can’t find anywhere to hide!"
In that case, instead of shivering, he could faint and go into sleep mode for a timed period.
It’s more of a kids version of look away, with playful interaction.


#15

With these fun suggestions from @Timothy, I feel your skill evolves as part of jibo’s ‘idle’ behaviours…referring to the idle discussion.


#16

Thanks, @Timothy. That sounds like a great addition and I’ll work on getting that included in the skill. As soon as I update the skill, I’l post the details here.


#17

Great, I’m looking at all these skills from a kids perspective. Same as an iPad, adults might buy them for email, web surfing, social media, banking, but eventually the kids just take it over for games games games and end up as the main users. Keeping a playful element in skills for kids is important, and I think helps fit the Jibo personality better to make it distinct from Echo/Alexa.

One thing I would add. If used frequently, he might be less scared, turn around for a shorter period of time. Or maybe he would squint his eye at you and speak under his breath 'Are you sure, or are you tricking me again?" I think that would make Jibo more of a personality than a robot that just runs a program.


Record your skills on a live Jibo!