FEMALE SPEAKER: Out there would to ask questions.
MALE SPEAKER: Shanghai GDG is a very
interesting developer community.
FEMALE SPEAKER: I'm glad somebody
has asked this question.
MALE SPEAKER: This is where the magic happens.
FEMALE SPEAKER: This is primarily a question and
answer show, so if any of you out there
would like to ask questions.
JENNY MURPHY: Hi, everyone.
Welcome to a special edition of Google+ Developers Live,
part of the Google Developers Live program.
We have a special show for you today.
A special treat.
We have a new participant.
We have OSCAR, the Hangout Robot, a brainchild of Gus.
GUS CLASS: So I'm Gus, and I'm a developer advocate on the
Google+ team.
And, yeah, I'm really excited to be here for Google
Developers Live.
And OSCAR is just a robot that I dug out of my parents'
basement because I remembered that I had it around right
when I was learning how to create Hangout apps.
And so in an afternoon, I put together a web server and then
connected it to the Hangout app.
And so hopefully when you click the commands within the
Hangout app, it will move OSCAR.
JENNY MURPHY: Cool.
You see OSCAR moving.
And let's take a look at how that happens.
We have some people joining us through the magic of
cyberspace on the Hangout.
So why don't we introduce the people who are joining us that
way, who will be helping us control the robot?
So, starting with you, Emily.
EMILY: Hi.
I'm a software engineer.
I do web and [? concurrent ?] and stuff.
JENNY MURPHY: Yes, and you had some really great questions
last week so you get to join us this week--
GUS CLASS: It's a joy.
A bonus.
JENNY MURPHY: Or earlier this week.
And next to you is, of course, Gerwin.
GERWIN: Hi, I am Gerwin, developer from Austria and I
love Hangouts.
I love robots.
So that's just perfect.
JENNY MURPHY: Great.
So switch over to OSCAR's view-- what OSCAR's seeing.
Oh we can see Devin there.
DEVIN: Yep.
JENNY MURPHY: Hi, Devin.
He's our volunteer robot handler who is helping us in
case OSCAR finds a way to get out of frame,
like off the table.
Anyway, Gus, why don't you tell us a little bit about
that interface the people use to control OSCAR.
GUS CLASS: Sure.
So on OSCAR is just a--
there's a tablet that's running a web server.
And then that web server has some hooks that perform serial
communication to the robot.
And then in the Hangout app is just an iframe that is the
target of four buttons--
one forward, left, back, and right.
And clicking those buttons will actually open the target
URL inside of that iframe.
And then the web server returns a sensor record for
the bumpers, and the wheel drop sensors,
and the cliff sensors.
And I'm not entirely sure they're all working correctly
right now because of a melting accident that
occurred with OSCAR.
JENNY MURPHY: Yeah.
Legend has it that OSCAR had a short career as a battle robot
that was not very successful, as you can see from the
missing panels and scorch marks.
GUS CLASS: Well, the other robot was a lot bigger.
JENNY MURPHY: The other one was bigger?
Yeah.
You should have seen him.
GUS CLASS: Yeah, you should have seen the other robot.
So it's probably a great time for us to play around with it.
You can see OSCAR move across the table a little bit and
explore the studio.
JENNY MURPHY: Cool.
GUS CLASS: And there's Lewis, who is our extremely helpful
engineer for video.
JENNY MURPHY: This is actually your first chance to see the
studio in its entirety.
GUS CLASS: In its entirety.
Lots of cameras and some box lights.
JENNY MURPHY: Cool.
So Gus, what happens when multiple people try and send
different commands of the robot at the same time?
GUS CLASS: So what happens when multiple people send them
at the same time, the web server that runs on top of the
robot will just queue those commands up and then execute
them as they came.
Something that actually we were thinking about doing when
creating the initial version was, instead of
just passing commands--
because when the commands come in, they just send
acceleration values or motor values to the two wheel motors
on the Roomba.
And what we are thinking about doing instead is just sending
delta values.
So, for example, if it were forward, you would send a
delta value of 100 left wheel, 100 right wheel.
If we were backward, it would be negative 100 right wheel,
negative 100 left wheel.
And if it were right or left, it would be positive on the
right side, negative on the left side.
But actually, instead, if you're just sending them delta
values, then if everyone clicked at the same time, it
would just make their change to the robot's current speeds.
JENNY MURPHY: Cool.
Sounds like something you might want to add later.
GUS CLASS: Yes.
Definitely a v2 very, very early alpha.
I don't know, what comes before alpha?
JENNY MURPHY: Prototype?
GUS CLASS: Prototype.
There we go.
JENNY MURPHY: Garage stage.
GUS CLASS: Garage stage.
Yes.
JENNY MURPHY: Something like that.
Which OSCAR is definitely in.
Very sophisticated piece of machinery that OSCAR is.
So I saw that OSCAR in all caps.
Does OSCAR mean anything?
GUS CLASS: It does and the acronym is hard for me to
remember sometimes.
But it's Overly Simplified
Collaboratively Actuated Robot.
JENNY MURPHY: Awesome.
It's a great name.
GUS CLASS: So can we let OSCAR go around the studio
a little bit more?
JENNY MURPHY: Sure.
So we'll let OSCAR move around the studio, and then we'll
take some questions from the stream and from the Hangout.
So, Devin, if you'd like assist us?
Devin is going to move the robot to the floor to reduce
the risk of catastrophic robot failure due to falling.
So you guys can explore the studio in the Hangout.
GUS CLASS: It's a little bit hard to see--
DEVIN: He's stuck again.
JENNY MURPHY: He's already stuck?
DEVIN: It seems to [INAUDIBLE]--
GUS CLASS: Is it the surface that he's on?
MALE SPEAKER: He's on carpet.
DEVIN: I think it's the controls--
GUS CLASS: So a technical detail.
I'm using a tunnel that actually has been
crashing all morning.
But it's a demo, and we have fun.
JENNY MURPHY: It's one of the interesting features about
controlling robots from a Hangout is robots are, by
their nature, hardware devices.
And Hangouts run inside a web browser.
And bridging the communications between the web
browser and a hardware device is often an interesting
problem to solve.
And the way we solved it with OSCAR was by--
GUS CLASS: By using a service called localtunnel, and then
just kind of using that service to map a global URL to
the internal URL for the robot.
So it's a proxy.
And it's kind of a--
it should be reliable, but it's really just kind of a
beta service that's sort of a demo.
JENNY MURPHY: It's always an interesting challenge.
GUS CLASS: Demo, demo.
We get about--
I think we've been getting about five minutes at a time
on there, and I'm not exactly sure why it goes
down when it does.
JENNY MURPHY: Great start for pieces hobbled together from
your parents' basement.
GUS CLASS: Yes.
Absolutely.
JENNY MURPHY: Cool.
Well let's answer some of your questions.
So does anyone in the Hangout have a question for Gus about
OSCAR, or for OSCAR, even?
I'll see if there are any questions on the live stream.
So a lot of people expressing their desire to meet OSCAR.
You've met him now.
GUS CLASS: Devin, would you actually put OSCAR back here?
I want to make sure that's not the web server that went down.
It could be.
JENNY MURPHY: We're going to do some little poking around.
GUS CLASS: Some poking.
Hi, friend.
JENNY MURPHY: And no questions from the community yet.
So if you have any questions, this is a great chance to ask
us, or OSCAR.
GUS CLASS: OK.
So it is the tunnel, unfortunately.
Which is strange.
JENNY MURPHY: So have we inspired anyone out there?
Gerwin or Emily, do you have any robotic
plans for Google+ platform?
GERWIN: Not yet.
JENNY MURPHY: Not yet?
Well, hopefully, get those gears turning a little bit.
EMILY: I'd love to see a Hangout
plugin for the AR drones.
GUS CLASS: Oh, yeah.
EMILY: Because they're actually pretty--
oh, what's it called?
There's a term in cyberbotics which has to do with things
that have recorded physical behavior that lets you
basically--
instead of going, move all these rotors in all of these
really complicated ways, you basically just go, go left,
and it will figure out how to do that for you.
So because it has that, you could actually probably do
something very interesting there-- by setting up a signal
bridge between the two.
JENNY MURPHY: AR drones and other quadropcopters are
definitely something we have tossed around the ideas.
We've talked about them a little bit.
They are really cool for that reason.
The APIs that are available are pretty easy to use.
But we decided to start with a terrestrial robot before we
went with the avian variety.
GUS CLASS: Yes.
EMILY: Yeah.
I can imagine it would be--
if the software were to crash, it would crash in a very
particular and spectacular kind of way.
JENNY MURPHY: Yeah.
It might take out several cameras as it goes out.
It would pretty cool, but--
GUS CLASS: And there's other interesting problems, too,
like what happens when the batteries get low?
It's flying and it's got some--
JENNY MURPHY: Slowly lands.
GUS CLASS: Ideally.
EMILY: I think actually it does have--
it is actually self-preserving in that sense that
it will try to land.
GUS CLASS: Oh, that's good.
JENNY MURPHY: Cool.
Well now that we have OSCAR, we may investigate other modes
of robot Hangout transportation.
GUS CLASS: Yep.
JENNY MURPHY: Very cool.
EMILY: Need more robots.
GUS CLASS: Yep.
So, yeah, absolutely, you could create a Hangout very
easily with any robot that can be controlled or actuated
through a web server.
And you could actually probably even use my app.
So it's pretty simple and there's like-- we have some
documentation online on the inner workings of what it is
specifically, and the source is going to be made available.
JENNY MURPHY: That's great.
So you mentioned that your application might be reusable.
Can you explain how other people might be able to use it
for their robots?
GUS CLASS: Sure.
So long as you have endpoints that are currently-- it's just
forward, left, right, back, you can just change that URL
to whatever your web server is.
And so long as it responds to those, you can just put
anything that can join a Hangout on top of that, and
then you'd be controlling the robot from a Hangout.
JENNY MURPHY: Very cool.
So if you want to see the source code that we're using
to power that, we'll be putting that into the same
repository that we put all of our Google+ Developers Live
code in, the Office Hours repository.
And it will be up there soon.
GUS CLASS: Yep.
JENNY MURPHY: Great.
GUS CLASS: Great.
JENNY MURPHY: So thanks a lot for coming
in to show us OSCAR.
Unless anyone has any other questions, I think we'll
probably wrap it up for the day.
GUS CLASS: Yeah.
Thanks everyone for participating in
the Hangout, too.
MALE SPEAKER: Do you want to give OSCAR another run around
the studio?
GUS CLASS: Unfortunately, the tunnel went down.
JENNY MURPHY: Yes.
The tunnel went down.
Oh, we actually have some comments from the stream.
GUS CLASS: Yes.
JENNY MURPHY: Could you show OSCAR?
So we'd like to get a little better closeup of OSCAR.
GUS CLASS: Sure.
JENNY MURPHY: Let's see if we can--
GUS CLASS: And if it would help for me to raise the robot
a little bit.
JENNY MURPHY: There.
You can get a really good view of OSCAR.
As I mentioned before, a very sophisticated piece of
mechatronics machinery.
Possibly the most advanced Hangout robot in the world.
Maybe.
GUS CLASS: Yes.
And there's the back.
JENNY MURPHY: Yes, the duct tape is coming in version 2.0.
GUS CLASS: Oh yeah.
Yeah.
This is actually using binder clips at this point.
JENNY MURPHY: Cardboard, paper clips, and binder clips.
GUS CLASS: Yes.
JENNY MURPHY: That's pretty sophisticated.
GUS CLASS: Very sophisticated.
JENNY MURPHY: Great.
Well, with the closeup of OSCAR--
GUS CLASS: OSCAR's closeup--
JENNY MURPHY: I think we're going to wrap it up for today.
So thanks a lot, everyone, for tuning in.
We will have more regularly scheduled Office Hours.
We'll be on a regular schedule, and hopefully we'll
have some more of these special editions coming out.
So thanks a lot for tuning in.
And if you were waiting on the stream, thanks a lot for your
patience as we got started.
Bye, everyone!
GUS CLASS: Bye, everyone.
Thanks for watching.