- Hi everyone.
My name is Vikram from the University of Washington
and I'm gonna be talking about wireless analytics
for 3D printed objects.
This is joint work with Justin Chan
and Ian Colhane and it's advised
by Jen Mankoff and Shyam Gollakota.
So, first off, what do we mean when I say analytics?
Our goal here is to track the use
of functional 3D printed objects over time.
So, for example, prosthetics like the Phoenix Hand
shown here, have a pretty high rate of abandonment.
But what if we could actually
track when a user opens and closes that hand,
or even how much they open and close it.
This could give us important data about
how people are actually, you know,
how they're interested in actually using these things.
And similarly, we can think of other everyday objects,
like plastic pill bottles.
If we could detect when a user actually
turns the cap to open the bottle,
we could do things like, say, send a reminder
to make sure someone takes their medication
or make sure that they haven't taken too much.
So really, our goal here is to embed wireless sensing
into these printed objects.
Now, if we get beyond everyday objects
that we use, we can imagine also more exciting
applications, like tracking the motion
of a printed hand like this
and mapping that to control a robot arm.
So, at this point, I've shown you some cool things
that we could do if we could track the use
of 3D printed objects and the most obvious way
to do that would be to attach electronic sensors to them.
But this introduces a few different problems
and the first is that requires designers to have
a pretty strong understanding of electronics,
so on top of making the mechanical structure,
they'd need to understand how to design
the circuits and the software that these things need.
But second of all, electronics always require
some kind of power source, so that means
we have to add a battery or a close by RFID reader
to get out electronic system working.
So, in this work, we take a completely different approach
and codesign our 3D printed objects and sensors together
to create plastic objects that can communicate
without any circuits.
So, we call this work Printed Analytics,
which is a wireless and circuitless platform
that can capture, store and transmit information
about the use of printed objects.
I'm going to talk about this in the context
of three motivating applications.
The first is printed prosthetics,
second, smart pill bottles and last, a wireless insulin pen.
To give you an overview, I'm going to start
by explaining how we build these 3D printed objects
and how they can communicate.
Second, I'll talk about how we can decode
the data that we receive from them
and use that to track motion.
And last, I'll talk about how we can actually
store information within these objects,
so that we can enable analytics outside
of our wireless range.
So let's start with how we can
3D print wireless communication.
To understand this, first we have
to answer a more basic question.
How can a plastic object without any circuitry
actually communicate?
The answer to this is, unlike things like Wi-Fi chips,
our printed objects communicate using reflections
and this really just requires three different components.
The first is an antenna, the second is a switch,
and the last thing is the message
that we wanna transmit.
So the way this works is we have
an incoming radio signal that hits this antenna
and then when we toggle that switch,
it changes how the antenna absorbs or reflects
that radio signal.
So the key thing to remember here
is that we can use a switch to produce
a changing reflection and so by controlling the switch,
we can encode data within that signal.
So I've shown you now at a high level
how this technique called backscatter works,
but let's go a little deeper and see
how we can build each of these components
that I showed you here.
So to start out, let's look at how we can design
and build a 3D printed antenna.
The first step is, we start out
with some pretty well-known reference
designs for antennas, but the problem is,
we can't just copy these exactly
because antennas are highly dependent
on the material properties
of what you use to make them.
So, the second step is to really get good performance,
we model our antennas using an electromagnetic simulator
and we optimize parameters like the length
of the antenna, which affects the frequency
and the width, which affects the bandwidth of the antenna.
And once we do this, we can come up
with the optimal design to use
with the conductive 3D printer filament.
The last step of course is to actually print it out.
We use a dual-material 3D printer
that can print normal plastic
as well as a conductive material.
And here's an example on the right
showing a dipole antenna that we actually use in this work.
So the next question is, how do we build a switch?
Remember that for things like the pill bottle
that I talked about, we needed to be able to move
in both directions.
So the main components of our switch are,
we have a conductive contact and a spring.
On the left, here, I have a picture
of our cantilever spring and a gear.
Now note that this spring is symmetric
and so it can move either up or down.
And so when the gear turns counterclockwise,
it's going to push that spring down.
When it turns clockwise, it's going to push the spring up.
Now if we look at the reverse side,
we see this is where we have the switch contact
and the antennas.
And both of those are made
with conductive 3D printer filament.
And this red dot that I've got here
is just showing where those two sides are connected.
Again, when we turn that gear
that I showed you counterclockwise,
we're gonna push that switch contact down
to touch the bottom antenna
and in the reverse direction, it'll move up
and touch the top.
So, here's an example of our switch
integrated with the Phoenix Hand
and we can see here in this video
that when we turn it, it moves
either up and down, and the switch contact
is actually touching the antennas.
Then at the bottom here, we have a plot
of what our received radio signal looks like,
where each of these little peaks in the signal
corresponds to when the switch actually
touched the antenna.
So, now I've talked about how we actually build
our printed objects.
Next, let's understand how we can actually decode
these wireless signals.
So, the first step to decoding these reflections
is, we record them using a software defined radio.
And if we look at the raw radio signal,
we get something that looks like this,
where we can see these little peaks
that correspond to our data, as well
as lots of noise from the environment.
So, the next step that we take,
is we apply a narrow band pass filter
to isolate the data that's being reflected
by our object.
And last, we apply a threshold to this
to count the number of peaks and that corresponds
to the information that we're actually getting
from the object.
So, this works great when we're pretty close
to our wireless transmitter, but what happens
when we get farther away?
If we look at these signals, our reflections get
progressively weaker as we move farther away
from an access point.
And really, the problem here is
that to communicate using reflections,
we need the original radio signal to reflect.
So, what's happening here is our incoming signal
that we're reflecting is actually overpowering
our weak data signal that we're getting
from the printed object as we move
to farther ranges.
You can think that our receiver is listening
to two people at the same time,
where one of them is yelling really loudly,
and then the other is whispering very, very quietly.
We call this problem self-interference
and that is really what limits our range.
So, how do we solve this?
Our solution is to actually cancel out
that original transmitter signal.
If we think about it, that signal
that we're sending, what we're reflecting,
is something that looks like a sine wave
and at a high level, if we can create
an inverted version of that sine wave,
we can add those things together and cancel it out.
So then we can hear our weak reflection
on top of this.
In practice, the way we do this is
by using RF components like phase shifters
to basically create the inverse
of our transmitted signal and then add it back
at the receiver.
So, how well does this cancellation work?
We test this by placing a transmitter
on one side of the room and our receiver
on the other side and then we have our printed object
that we move across the room in the middle.
We measure performance by checking the number
of bit errors that we get from our printed object.
And we can see that here on this plot,
when we don't have any kind of cancellation,
we have a 50% error rate, which means we're just
randomly guessing for each one of our bits.
But as soon as we turn on our cancellation,
we can see that over this four meter range
that we have, it actually works pretty well
with the worst performance coming in the middle
where the system starts to fail.
So, at this point I've showed you
how we can receive wireless signals across a room
and next let's see how we can map that
to track rotational motion.
So, here I'm gonna play a video
of the Phoenix Hand moving again
as well as the backscatter signal that we get from it.
Here, you can see we get six of these peaks,
and I'm gonna play it just one more time,
and we've rotated it 90 degrees
and that corresponds to basically six gear positions
that we've rotated past.
So, what we can do is, by knowing the structure
of the gear, we can map that number of peaks
directly to the angle of rotation.
We test this across the full 180 degree
range of motion of the hand and we can see
that we get the increase that we expect
as we rotate to larger angles.
Now, I've shown you how we can measure
the angle itself, but how do we figure out
which direction it moved?
On the last slide what I showed you
was just a simple gear that had all of its teeth,
but to sense direction what we do is,
instead we make an asymmetric gear
that looks something like this.
Basically, we take out a few of the gear teeth
and so now we have this pattern
of six followed by four followed by three
that we're going to get when we turn clockwise.
And that's exactly the pattern of peaks
that we get in our reflected signal.
Of course, when we turn it in the opposite direction,
we'll get the opposite of these reflections,
we'll get the three followed by the four
followed by the six.
So up until this point, I've shown you
how we can receive data up to a few meters
away from an access point, but what happens
if we go even farther away?
People may use these printed objects far away
from an access point, so I'm gonna talk quickly
about how we can enable, or how we can use storage
to enable analytics outside our wireless range.
If we look at this in the context of an insulin pen,
we can see first what our requirements really are.
What we'd like to do is store the number of times
that insulin pen has been pressed
and then accumulate that data to see a total
of how much has been dispensed.
Last, of course, when we get back
within our wireless range, we want to upload that data.
Now the way that we do this is
we store information mechanically
by using the force of that button press
to coil up a spring.
Now, if we think we can coil up a spring
and it's going to store energy,
but how do we keep it coiled up
and do that in a controlled way?
Our key idea here is to use a ratchet
to coil up this spring.
Now a ratchet is mechanism that can only
turn in one direction.
So on the left here, we can see
that as our ratchet mechanism turns
in a counterclockwise direction,
it can easily slide past these teeth at the bottom.
But on the opposite side, if it tries to turn
the other way, it'll get stuck.
So what we're doing here is our ratchet is helping us
accumulate rotation in this spring.
And then, when you press a release mechanism,
that allows the spring to rotate freely once again.
And here's just a quick video of what that looks like.
We can see each time we press the button,
our ratchet turns counterclockwise
and in just a second, we press this release
and we can see we get our backscattered data.
So, just a few ways that we can improve
on this in the future.
The first thing is to improve the form factor
of these objects and make them smaller
and better integrated with our designs.
We can also look at ways to store additional data,
such as like individual data points
rather than just accumulating information
and maybe storing the time that these were recorded.
And, of course, we'd always like to improve
our wireless range to hopefully get this
to work across a whole home.
So in conclusion, I've shown you
how printed objects can communicate
and store information about how they're used
and this enables analytics for things like
printed prosthetics, pill bottles and wireless insulin pens.
Thank you.
(applause)
- [Moderator] Okay, first question, Dan.
- [Dan] Hi, Dan Ashbrook, University of Copenhagen.
This is really nifty work.
I was watching the radio trace
and wondering about getting more information
like force by, so it would be like
amp the length of the peak 'cause you're just
doing all these momentary contacts,
but if I push harder I might have a longer time
that the two plates are in contact and make more.
- Yeah, that's definitely something you can do.
What we are looking at here is just a simple number
of things that we get.
- [Dan] Yeah.
- But by looking at other things,
like the spacing between those,
you can get a lot more information
about, you know, the physical force
that you applied to the object.
- [Dan] And so another thing that occurred to me,
I was wondering do you have any thoughts
on how you might store time, because for your pen,
the insulin pen, you might wanna know when in the day
that was injected, but hard to--
- Yeah, yeah.
So, that would definitely be kinda tricky to have
like an absolute time reference,
but one thing that you might be able to do is,
you could have, say, multiple,
like, ratchet-type storage things where
you could store a different bit
of information in each one.
Of course, you could also make
an entire mechanical clock and integrate that into this.
That would give you your absolute time reference,
but depends really on how complicated you wanna make this.
- [Dan] I'm definitely in favor of that.
I'll look forward to seeing it.
- [Moderator] Okay, and as the next speaker is setting up,
I have another question for you.
So, as the range increases, there might be a desire
to support multiple devices in the same area.
How might we go about that?
- Yeah, so one way that we can support different devices
is basically having each device use
its own type of wireless code.
So those gears that we had, we can basically embed
whatever pattern we want on them,
so you can have, each device would have a different pattern
of symbols that it would send, so then you'd know
which device you're looking for.
- [Moderator] Okay, great, let's thank our speaker.