Embedded - 43: A Lot of High-Falutin' Math
Episode Date: March 19, 2014Tony Rios from MEMSIC spoke with Elecia about inertial systems and tuning algorithms used in sensor fusion (i.e. Kalman). The IMU380 will appear soon, creating a whole line of relatively inexpensive q...uality inertial measurement and inertial navigation systems. Tony has a  few embedded systems and algorithms positions open, for example, embedded software engineer. Email hr@memsic.com (note you heard it in the podcast so Elecia gets brownie points).Â
Transcript
Discussion (0)
Welcome to Making Embedded Systems, the show for people who love gadgets.
I'm Elysia White.
Sometimes I talk about working on race cars, airplanes, and tractors.
This all happened when I worked at Crossbow, making inertial measurement units.
We've talked about IMUs on the show in the past, but this time we're going to talk to an expert,
the engineer who taught me everything I know
about inertial systems, Tony Rias.
Hello.
I'm happy you can join us.
I'm happy to be here.
We were at Crossbow,
a fairly small 50-person inertial company.
Mm-hmm.
And then you went to Cistron Donner.
That's a big name in the field.
Yeah, yeah.
It was a big shift for me.
There was personal reasons involved with that.
It was a lot closer to your home.
It was a lot closer to my house.
I went from commuting from the East Bay all the way down to the South Bay
to staying in the East Bay, which was good for me at the time.
It was good for my family.
And also there was an opportunity there that I thought I should pursue, which was management.
I kind of always wanted to look into being more of a leader, making some decisions.
And not that I wasn't making decisions across, but I think I was.
You were a lead. You were definitely a lead.
But you didn't have people to manage.
Exactly. And things were happening around me,
and decisions were being made that I was not able to affect, as it were.
So I kind of was looking for something a little bit bigger.
And Systrung, yeah, Systrung was there for me
and gave me the opportunity to do that.
Well, I guess we kind of started in the middle.
I know you went to Harvey Mudd, although we didn't overlap.
Right, right. That
was a long time ago. Then you got an advanced degree in like navigation or something that
didn't seem like it was a real degree. Well, no, I did. I went to UCLA grad school. And I was,
when I got out of Harvey Mudd, not that Harvey Mudd was, Harvey Mudd was a fantastic, you know,
experience for me
and for all of us,
I guess,
in the room here
because we're all mudders here.
But,
yeah,
it didn't specialize
too much in any one area
or another.
No,
you get your engineering degree
in engineering.
There's no electrical.
But your mind is open to,
your mind is open to all these things.
Yeah.
And I always kind of liked the,
I don't know,
stems,
you know,
I always liked signals and systems.
I kind of liked that whole,
that whole coursework that we did at Harvey.
I was at,
I was at Rockwell International working on the space shuttle,
working on control systems,
the space shuttle.
And it was really cool.
But I,
you know,
I,
I did three things.
I,
I typed in data and I hit go and I got a plot and I handed it off to the next guy.
And then I typed in data.
So,
you know,
engineers with good degrees.
that was, talk about a big company.
That was a big, big, big, big, big company
to where they have 50 engineers
handling five minutes of the space shuttle flight
for the software.
So that's the way that kind of rolled.
And so I was in that five minutes
in first stage, really.
But I realized, yeah, I got to go back to grad school.
I got to do something that's more interesting.
Something I get to get involved with. So I went back to UCLA to get my grad degree there
and at the time
they had a program of control systems
which I thought is pretty cool I'll go do control systems
and somewhere along the way
I just wound up doing navigation
work which is an offshoot
of controls which is really kind of a
continuation of that whole
process of controls and which is really kind of a continuation of that whole process of controls
and then estimation and then navigation.
And I did that at UCLA for a long time.
I was there trying to get my PhD for a long, long time
and I never really hung up on this completion thing,
so I didn't quite finish my PhD.
But I got an engineer's degree.
That's for people that do all the things they got to do
except publish that bloody dissertation.
So I didn't quite get my thing published.
So I had lots of chapters.
I had lots of work.
But again, for personal reasons,
just because I wanted to kind of get moving in my career,
I decided to go back into the industry.
And the Bay Area was really booming at the time,
so we decided to make a move up north.
And did you go straight to Crossbow?
No, I did.
I went straight to Crossbow.
And it was even smaller when you got there. Oh, yeah. It was like seven guys. north and did you go straight to crossbow or no i did i went straight to crossbow yeah at the time
i was and it was even smaller when you got there oh yeah it was like seven guys it was like jen and
me and mike and a couple guys you didn't meet because they really left by the time you started
and that was it just a couple guys and uh yeah and they were the first ones and i was bouncing
around interviews between crossbow which is a really small startup, and Stanford Research Institute, SRI,
which at the time was very much like a campus kind of feel.
It had lots of grad students sitting around.
Yeah, kind of you sit around and do reports.
I was like, you know what?
What I enjoyed at UCLA was I was on a project where we were making these planes,
these hovering low-altitude satellites, as it were,
these things that had mylar wings and had solar panels
and flew for months up in the air.
And they controlled themselves via sensors,
inertial sensors and GPS and whatnot.
And I kind of wanted, I liked the idea of my stuff
going into a box because it was already happening there.
So I went to the Bay Area and I started interviewing
with companies that liked having a box
that I could do stuff with.
Even though I wasn't quite that good at it at the time I thought this would be great so crossbow had the opportunity
for me to do it and they did some of the very first MEMS inertial put it together
and make a sensor fusion they did inertial unit they really did yeah they
were very very uh they were very much a frontrunner there there was nobody else
really doing that level of work. There were lots of other companies
like Cistron, Donner, and Honeywell
and those guys doing
the big end stuff
and making systems
out of big, expensive gyros,
fogs, fiber optic gyros,
and remains of gyros and everything.
But nobody had done anything with MEMS.
MEMS was kind of a,
at the time, this was 1998,
and so MEMS was really kind of,
eh, this will be whatever it is.
It's kind of kid stuff.
Nobody was really taking it seriously.
But Mike Horton had an idea that we could actually make something out of this and hit
a lower end market for people that don't want to spend the gobs of money to a Honeywell
or a Litton or a thing.
And they wanted to buy something that would work on their small gizmo, whatever it was.
And back then with Litton and all of those, an inertial unit cost $10,000?
Oh, yeah.
Easily. Typically $15,000 to $10,000? Oh yeah. Easily.
Typically $15,000 to $20,000, even back then.
And so when we came on board and we offered an IMU
that was essentially $2,000 or $3,000 at the time,
it was unheard of,
and nobody really figured out that it could be done
the way we did it, and it worked.
And it took off and sold.
And then we started applying algorithms to the IMU
and we created vertical gyros
and we created AHARs units when we added magnetometer
and eventually got all the way to doing INS GPS systems
all with MEMS,
which CrossFit was the first one to do all these things
and CrossFit was the first one to go
into the general aviation market and get certified,
which you were a very important...
I wrote a lot of that documentation. Yeah, it was a very important part of that. They were the first ones very important. I wrote a lot of that documentation.
Yeah, it was a very important part of that.
They were the first ones to do that.
So a lot of firsts.
I was kind of proud of the stuff that we did together and that I eventually did follow
on after you left Crossbow.
And it was very, very good for me doing that work.
It was a lot of fun being in that cutting edge.
I mean, there's a lot of heartache and difficulty there too.
Yeah, sure.
So starting with the basics,
some people get confused
what's the difference
between accelerometers and gyroscopes.
Sure.
And now that they're everywhere,
I mean, now they're in Wiimotes,
now they're in our phones.
Right, right.
People are used to hearing the words
a lot more than when I first did inertial.
Yeah, it's ubiquitous now.
It's everywhere.
How do you describe the difference between accelerometers and gyros?
Sure.
From a traditional, like, nav guy, controls guy, you know, you approach it from, well,
accelerometer senses change of rate for velocity in an X, Y, straight direction, X, Y, or Z.
And it's a straight direction.
And a gyro measures rotation about those directions, about the X, straight, it's a straight direction. Um, and a gyro measures rotation
about those directions, about the X, Y, and Z axis as well. So body rotates around the gyros
measure that rate of rotation, rate of change of the axes. And as a body accelerates or decelerates
in one direction or another accelerometer measures that. But a lot of what accelerometers are now
are really kind of gravity centers and gravity. the nice thing about an accelerometer is that, yeah, it measures acceleration and lateral,
you know, X, Y, but the Z is always kind of there.
Whenever you're around, you're always measuring gravity.
So fortunately or unfortunately,
accelerometers always are able to sense gravity.
And that's actually a big deal
because with just that amount of measurement,
you can actually always tell where your head is up.
And you can put that into a phone, put it into a tablet,
put that into anything,
and it becomes the tablet's ability
for you to be able to spin it around,
and you always get the thing
vertically looking up at you.
And most of that is used
by the accelerometers.
What they can't give you
with the gaming systems,
for instance,
is that an accelerometer
has somewhat abrupt changes
across a lot of the directional things.
So what gamer guys do
is they put a gyro in there
so that when you're spinning your wand
or your Wii controller around and you're turning it,
it has a nice smooth rotation added to your own hand motion.
So it combines both the accelerometer and the gyro
and it gets a really nice simulation of the reality
that you see on your screen.
So that's if you're using those signals directly.
But when you mash them together, you get something even better.
When you fuse those sensors with like a Kalman filter.
Sure, sure, yeah.
What do you get?
Yeah, so an excellent application of the accelerometer gyro is like what I suggested.
For instance, you rotate something around and it can tell what's up and what's down.
It can tell where you're pointed in some sense.
But once you start moving around, let's say you're in a plane or a boat
or a car or something where you are actually accelerating or decelerating,
all of a sudden that measurement of an angle of gravity
doesn't know where it's coming from.
You don't know whether your angle of gravity is coming from
actual tilt change in gravity or whether you're accelerating or decelerating.
So now the algorithm becomes a little more complicated.
So how do you handle that?
Traditionally, the way a navigator works is that you use the gyros
to rotate and calculate your angles.
And very, very good gyros drift very, very little.
And so you don't have to do very much to them.
And you integrate up the rotational angular change of rotation and you get angles that are representative
of where the body is being tilted.
Even if it's moving.
Even if it's moving, right.
So you can tell body tilt with just the accelerometers
as long as you're not moving much.
Right.
And if you have really great gyros
that never have errors and never bias and never drift,
then you wouldn't need anything else
if you just use the gyros or anything.
But the reality is...
We had those gyros. Right if we had those gyros.
Right.
We had those gyros.
And some folks have those gyros.
I mean, the planes you fly around and you folks fly around and the jumbo jets and whatever
else, they have gyros that are approximately, you know, 10 to the four times better than
anything that we even produce as a high-end product at Memsic or Graspo or Sister and
Donner.
And those systems are very, very expensive. I mean mean they're half a million dollars quarter million dollars but they're
designed to not need anything but to guide your plane say from los angeles to new york
and hit the square ball of about two miles and that's kind of the going going performance that
they get of course you know if you're designing a UAV or designing a Google car
and your Google car was only
worth, what, $30,000, $40,000
or whatever it is, you're not going to want
to spend a quarter million dollar, half a million dollar
inertia money. It's not going to work, right?
So people realize, hey, there's things
we can do algorithm-wise to blend
these two signals together and blend the gyro
information and blend the accelerometer information
and then even beyond that, blend GPS. You bring GPS in and now you can blend all things.
Well, before we did GPS, there's magnetometers. Ah, yes, magnetometer, right.
And that helps provide an external
reference. Right, exactly, right. So accelerometers are for
stationary, gyros are for moving, and magnetometers are for real.
Right. Well, so when Excel,
what Excel is good at,
like I was saying before, is a tilt. So Excel can tell you
whether you're pitching forward, right,
or down, the azimuth as it were,
or pitching
to the left or to the right.
But it can't tell you if you're flat and turning
around in a circle, like as if
you were a car or
a person just turning around,
spinning on end.
Where am I headed?
Where's my heading?
Where am I going?
I'm going south, north, east, west.
Which way am I facing?
Again, the full gyro solution gives you all those angles.
It does.
If you have completely unbiased centers, you know.
And you knew which way you were facing to start with.
And you knew which way you were facing to start with, right.
So let's say you're parked in a road that says I'm facing due north because the road says you are, right?
Because the map says you are.
You start from there and you have a perfect gyro.
You start integrating everything around.
And eventually you'll always know where you're headed as well as how you're tilted and how you're rolled.
Fortunately, of course, you get errors.
And so the accelerometers give you the ability to stabilize the tilt angles.
But it doesn't give you anything about where am I looking, where am I headed.
And that's where the magnetometers come in.
Magnetometers are a great measurement of the Earth magnetic field.
The Earth magnetic field is a very small signal vector,
but it's a very gigantic vector that's always present.
It's always constant, and it's always coming down in any one direction.
Well, it's constant constant but not necessarily consistent.
That's not consistent, yes.
There are, well, yeah, yeah.
The reality is it's, you know, to simulate it, right,
it's a 14th order harmonic model.
So it's not exactly the simplest thing in the world.
It's got weird nulls and all kinds of bizarre things.
Sure, let me pop that into my tiny, tiny processor.
Right, exactly.
So there's a lot involved with getting the mags to kind of
work the way you want them to work but ultimately the mag what it does is it measures earth magnetic
field and its ability to measure the earth magnetic field gives you the ability to give
you a reference for a heading so now you're here with the stabilize all of it using very cheap
sensors well okay so now we've we've pretty much covered most of what was on the previous ins show um but
how do you mush these things together in order to start looking at errors and and that's where
the kalman comes in right exactly right right and uh uh there's a lot there's there's a few ways you
could do it obviously there's lots of different approaches you can take to try to fuse all this
data together you can take a very sort of heuristic different approaches you can take to try to fuse all this data together. You can take a very
heuristic approach and say I'm
going to do this, this, this and correct
this, this, absolutely.
The problem with a lot of that is that when
the sensors do things you don't
expect or when they behave in a certain
manner that's unmodeled
in your heuristical model.
What kind of heuristics?
Is this like,
I know that if,
if my,
if I have a three-axis sclerometer
and a three-axis
magnetometer,
to some extent
they give me
some of the same
information.
Exactly.
If I,
if I turn it 90 degrees
or 180,
I should see
actions on both of those
and if I don't,
then one of them
is wrong in some way.
Exactly.
Right. But I don't know which one, them is wrong in some way. Exactly, right.
But I don't know which one, do I?
No, you don't.
There's no easy way to tell.
Except maybe one of them is rated to be higher or less.
Right, right. Or you are able to somehow put in some kind of reference model
or reference simulation in your own code
that you can beat against as well.
You can compare against your own reference model.
And some people do as well.
But again, you have to have a lot of
processing to do that.
But what the common
filter does is that the common filter actually
allows you to
add uncertainty to all
these different sensors. It allows
you to put measurement
confidence on
all these different parts of your algorithm.
And if you've set up your common filter correctly, it knows how to handle when sensors behave
incorrectly or correctly in different scenarios, different situations.
For instance, like a maneuvering, accelerating vehicle or a static vehicle or a vehicle that's
just sitting there like on the ocean, just rocking back and forth.
A common filter can be set up to handle these different scenarios,
different situations,
and put different confidence levels on the sensors
to provide the best answer that you can get.
But even not knowing your environment,
your Kalman can be set up with basically the equivalent
of whatever your sensors are rated for
and handle confidences just
based on data sheets yeah it can again that's sort of what you what you want to do with a common
filter there's two two types of tuning you do with a common filter the first one is you want
to tune your own model you know based on what you think uh the navigation should be doing. So let's talk about a navigation vector.
So a navigation vector is position, velocity, and attitude, typically.
That's a navigation vector.
So you want to know where you are in the Earth, position, XYZ.
You kind of want to know how fast you're going, again, XYZ and velocity.
And then you want to know how you're oriented,
whether you're rolled or pitched or what heading is, what direction you're going.
Because you could be going to Canada from here
at some high velocity
and you need to know if you're upside down.
Exactly, and velocity doesn't give you the whole picture.
Multiple things.
Think of a helicopter flying due north
but its nose is pointed due east
and they can't do that, helicopters can.
They can fly, hover and fly to the left, right? Velocity vector is going to tell you you're going north but where are is pointed to east and they can't do that helicopters can they can fly hover and fly to the left right velocity vector is going to tell you going north or where you really
point at your point you do east so you don't really get a good picture just from you know
velocity information for say gps but again once you blend everything together you can improve
the entire solution for this navigation vector but the first thing you got to do is understand well
here's my navigation vector how does it propagate in you've got to do is understand, well, here's my navigation vector. How does it propagate in space?
What does it do?
What are the fundamental dynamics
of a navigation vector
and what is it supposed to do?
And you say, well,
I integrate accelerometer
to get velocity, right?
I integrate one
and it's like my own atomic position.
And integration twice is great
except for those plus C's
which can bite you.
Right, so you get noise.
Now you're integrating noise.
The only thing about integrating Brownian motion, you get an exponential rise in the
amount of error you're going to get just from integrating.
So a lot of times that's also problematic and cause issues, but that's what you want
to model.
You want to model that into your algorithm to say, well, how is my position going to
move?
I have a P dot and
that's velocity. Cool. I know what that is. What is V dot? Okay. V dot is now my accelerometers.
I have a direct measurement or I have a direct way of characterizing how V dot will probably
get in space based on my excels. Okay. The other thing is accelerometers sort of tell you where
you are based on your body, right? Where you are referenced to your own body orientation.
Whether or not I'm upside down.
Whether or not I'm upside down, right.
But doesn't it tell you how you're moving over the face of the earth?
That's kind of a different question.
If you want to move over the face of the earth, you have to account for the fact that you
want to change your coordinate axes from your body to navigation axes.
People call it navigation frame, tangential frame.
I used to have lots of different favorite terms for it.
I think I frustrated you once because I changed five different terms in one document and you had
to go back and then make them all one i remember um i don't recall that but yeah yeah well you you
did uh anyways uh but the reality is it's just it's just a frame that will allow you to uh define
how you're moving over the face of the earth it It's just key to navigation, key to where you want to go.
And unfortunately, the accelerometers have to be rotated
from the body, from wherever they're pointed,
to this navigation frame.
So now you have the definition of having to know
how your body is rotated.
So now the gyros come into effect.
And that's how the gyros are used in this whole algorithm.
So the gyros are able to integrate the angular rate
and give you the angle representation
of where the body is pointed. Now you have that orientation, then you can then level the
accelerometer. So you always use the term level because it's just basically taking the body
frame of the excels into the navigation frame. And now your final end goal, your position is now based on what?
It's based on accelerometer and gyro information.
So both of them are contributing to your final solution.
So both of them are in your state model.
So when you're designing a column filter and you want to tune what your model should be doing,
you want to put in what you expect the errors from your gyros and excels to be and then let it go.
And then what you do is errors from your JARs and Excel's to be, and then let it go, right?
And then what you do is then you then get your real data, so let's say your real sensors and you pull out of an IMU, and you start doing the same exact math, and you see exactly
where your real errors kind of go, and the two models should be the same.
That's the first part of tuning a common filter.
You want to tune your own expectation of what your model should do, because that the first part of it the second part of it is your measurements so what are you going
to measure um so i'm i'm slowly catching up sure um so the first thing you want to do with the
common filter is to set it up to have the errors you expect it to have. Exactly. And then you run it, and it should show you those errors.
Exactly.
And if it doesn't, if you aren't getting real reality,
if your model is not reflecting reality, fix your model.
Fix your model.
Okay, so that's a pretty standard,
I have a model, now I need to know if it's working.
Right.
Okay, so at this point I have tuned model now I need to know if it's working right okay so I at this point I have
tuned my Kalman filter so that it is producing the same errors the same sorts of errors as my
sensor is exactly okay now right now so now now you want to figure out what is your measurement
going to be for the system um in the case of of a vertical gyro in A-hearts... It's a vertical gyro.
So a vertical gyro is a system where you only
use accelerometers and gyros
to stabilize
roll and pitch. So like I was saying before
that the accelerometers
can stabilize your roll
and pitch angles because they have a really good reference
of gravity. They know where down is.
And so you
can do that with just only gyros and accelerometers.
Who would use a vertical gyro?
People that, for instance, don't necessarily care about where they're headed,
but they want to control the position.
They want to understand what the position and the azimuth and the L of an antenna,
for instance. They don't necessarily care what their heading is.
They just want to control the pointing of it.
They would use rolling pitch.
Other people, for instance,
they care more about just observations of an avionics display.
They care about the plane's orientation.
Again, they don't necessarily care about heading per se,
but they care about how the plane is pitched up or down.
Oh, like when you see that circle display
and it's blue on top and brown on the bottom,
and if you're pretending to fly a. Yep. And if you're pretending
to fly a plane
or maybe if you're
really flying a plane,
it can tilt the brown
and blue
so that you can see
if you're headed
towards the earth
or headed towards the sky.
Right.
And that's a vertical gyro.
That's a vertical gyro.
Okay.
Because you don't really care
about which direction
you're faced
and whether or not
you're going to face
towards the ground.
Not in that display.
Exactly.
You care about
whether your augerings
stay down on the ground
and typically when you turn, most planes don't turn their cars. to face towards the ground. Not in that display, exactly. You care about whether you're augering straight down the ground.
And typically when you turn, most planes don't turn their cars.
They always bank the turn.
Most planes will bank to the right or bank to the left when they want to exactly turn.
And a lot of hovering maneuver in a plane is to actually bank at a certain angle.
You're just going to stay there and go around in circles.
And so they want to control. They call some testing involving some awful stuff horrible planes and making them do nearly acrobatic we'd go up there and sometimes we'd go for an hour
at a certain angle pulling a certain g forever and go into turns yeah we do this horrible you
have knife edge dives and all these things yeah it's pretty fun stuff making sure that your
artificial horizon that's the name of it that That's exactly it. The artificial horizon. So that's a vertical gyro.
And so the accelerometers give you that reference
to stabilize that.
And so in your common filter,
you can actually mechanize that.
You can actually mechanize
when I want to use
the accelerometer now
as a measurement
for my attitude.
Because now my position velocity
and angle measurement system
is based on
how can I
stabilize my model?
So now I've got my model and the air is going to be growing.
How do I stabilize that model?
Well,
I can actually stabilize the angles with this independent measurement.
There's a little bit of a circularity in there in the sense that you're using
accelerometers to propagate your model,
but then you're also using them as a reference.
Okay.
You get away with that by,
by tuning as well.
And your accelerometer,
in terms of it being a measurement of angle itself,
you can assign a gain to that
and it's part of the measurement model in the common filter.
That's the second part of the tuning.
So now what am I going to measure in my common filter
to add the corrections that I need
to make sure that my drifting model,
my error model that's growing, to knock that down and make it flat.
It does seem like you're using, I mean, you know, when we make equations,
you can't use the same equations to eliminate other variables
because that doesn't work.
But in this case...
In this case it does.
Part of the reason why it sort of works is because most of the measurements come in
and you can allow noise.
Noise is part of the model in a sense.
And so once you've got a system
that's got a markup process to it,
that noise can be used as a tuning factor in some sense.
You actually assign what level of noise
you're expecting from the sensor
in terms of your measurement. Do you hear that world? Your random walk is not going to stop us.
No, it's not. And the reality is, is that you make that gain sort of the way you want it. So
in the case of an accelerating body, like if I'm accelerating, I can add some heuristics there as
well. I can say, hey, I'm about to accelerate or I'm feeling my overall measurement of gravity changing.
So now if I take the norm
or take the magnitude of all my accelerometers
on more than 1G, hey, guess what?
You know what?
I'm probably accelerating.
I'm now no longer just measuring gravity.
I'm measuring more than gravity.
Or if you're measuring a lot less than 1G.
Exactly.
I mean, because you're falling out of the sky.
Whoops.
Either way, you're no longer longer your reference of gravity becomes less and so how would what would
you do the common filter well i would go ahead and make that noise of my cells now very very big
and that basically makes the common filter say hey you know what i'm not going to trust the
cells as a measurement right now because i'm accelerating. And that's the sort of tuning that you do for that part of it.
The mags would be the same way.
When you say you're tuning it,
you're tuning it offline as a process.
Right, exactly.
And you're teaching it to recognize these cases
and to modify the Kalman, not the state.
No, the state we already covered. It's not the state. It's not the estimation. It's the measurement model. The measurement model. You modify the Kalman, not the state. No, the state we already covered.
It's not the state.
It's not the estimation.
The measurement model.
The measurement model.
You modify the measurement model.
Ultimately, yeah, the basis of a Kalman filter
is you have a state model
and you have a gain sort of associated with the state model.
Then you have a measurement model
and you have a gain sort of associated
with the measurement model.
And the overall gain of the entire system
essentially is sort of a ratio of the measurement to the state
and how these things move in and out
depending on whatever modeling you're throwing in on the one side
and depending on whatever noise that you characterize
for your measurements on this side,
the gains will go up and down depending on, again,
like I was saying, what you put into the system.
Well, there's the gains part,
but the thing that I was always fascinated with the Kalman is that it actually estimates the error for each sensor.
Ah, right, right.
You are going to have 30 more complications, right?
So the next part of it.
So let's finish up the measurement.
Well, that part seemed like magic.
Yeah, let's finish up the measurement.
Okay, so magnetometers.
Magnetometers, you apply the same kind of rule to the measurement.
You have noise, you assign.
That's really good when you think you have a good measurement of the mag field. rule to the measurement. You have noise, you assign. That's really good when you think
you have a good measurement of the mag field.
So that's good to know that.
But again, like everything else,
mags are sensitive to local magnetics.
And if you know anything about magnetics,
everything.
I remember the time I used a rare earth magnet
next to your office.
That killed everything.
Everything has magnetics. The whole
electromagnetic force is a real truism. I mean, everything creates magnetic field. Your watch,
your screen. Yourself. Yeah, yourself. Everything affects magnetics on the system. And so
every time that you have something more than earth magnetic field strength, which is about half a
gauss, same thing. You also know that you're probably now in a place that you have something more than earth magnetic field strength which is about half a gauss same
thing you also know that you're probably now in a place that you're being disturbed what does that
mean well that means the mags probably aren't giving you a very good measurement of the earth
magnetic field hence my heading measurement not quite to be trusted right now and unlike
accelerometers which if they aren't doing 1g if if their norm isn't 1G, then you're actually getting a little bit different information.
You are in an accelerating frame.
Right.
The magnetometers, if they aren't giving you half a gauss, then you really only get to say something's broken and you don't get the additional information of what it might be.
Oh, yeah, exactly. It's something broken or just exactly.
Or you're walking through a mag field.
Or you're walking through a stray magnetic field.
Or you're somehow have been disturbed, magnetically speaking.
Or you walk through one of those weird nodes in the Earth mag field concept that you want to try to generate a good way of
controlling how much confidence you want to give to the magnetometers depending on the
scenario for that.
And then finally, you have GPS, right?
So you have velocity and position measurements from GPS, or some people like to use the term
tightly coupled, which means you've got pseudo rangesranges and pseudo-range rates to every satellite.
Either way, it's basically the same idea.
You're eventually getting some measurement
of where you are on the Earth's surface
and where your little point mass,
I'm going to use the term very carefully there,
where your point mass is moving in space
relative to the Earth.
And those two measurements coming from the column filter.
And they can be related directly into your own navigation estimation, your navigation
model.
A lot of times it's one to one.
So you have velocity, you're trying to estimate velocity, so there's a measurement.
So your gain is really one, right?
Or at least your model for your measurement is one.
But GPS itself also has errors.
GPS itself will also sometimes give you bad solutions for position velocity.
We know that very well.
When we started this, GPS wasn't in the precision mode it is now.
Right.
There was always error and big error.
Imposed errors.
Yes, they wanted errors.
They wanted errors because they wanted people to be able to use GPS in the way that they realized they could.
Although people found ways around that as well.
Smart people did.
But again, GPS does also give you errors as well.
So there's times when GPS should not be trusted.
There's lots of ways to skin that cat as well.
You can devise your own algorithms to do that.
They're complicated.
But there's methods of doing that based on dynamics, based on standard heuristics of what typical GPS systems are designed to do. Some GPS systems are better than others,
and you'd have to kind of characterize how they do under dynamics, under motions,
or you can trust the GPS itself. A lot of times GPS will give you a measure of its own confidence,
how it thinks it's doing. You know, it tells you, GPS will say, Hey, my position is really good
right now. I, you know, use a measure of one or, hey, I really don't think I have a good lock on my position,
so I'm going to give you a measurement of 10 in there.
There's the H-Dob parameters.
It's called dilution of precision.
It's horizontal and vertical.
There's the geo, which is the full three.
And typically you want to incorporate that into your measurement model as well,
and that's how you assign the noise to your GPS measurements.
It's as though the GPS is using its own Kalman filter
and knows what we need.
It typically does.
GPSes have their own Kalman filters,
or they leave squares,
or there's always some measure of goodness that it knows,
that it can tell.
And a lot of it, it's in bread algorithms themselves,
or it's just basic math that you can look at and say,
yeah, of course it's going to have an error based on where you are on the Earth,
or based on how fast you're moving, or based on my electronics,
or based on my timing reference, whatever it is that they're using to get their signal,
there's always some measurement of how good it thinks it is.
And so you're, as a designer, as an implementer of an IMU,
an INS GPS system, whatever it is you're putting together,
you'd want to take advantage of that measurement.
So back in the day when is you're putting together, you'd want to take advantage of that measurement. So back in the day
when we were doing this together,
you and I wrote a paper
about GPS-INS integration.
I think we did two. Yeah, we did a couple.
And those
still come up. Somebody found it
kind of, somebody I work with now
found it kind of randomly and said,
oh, my boss needed me to
do something around this and your paper was the first one that came up and i was like well okay
that's very cool what do you want to ask me because i don't think i can remember what those
papers say yeah yeah i mean well they were um i think i think a lot of those papers were um
i remember the time we didn't want to give away a lot of the secrets we had come up with
it was a definite balance between going to the Institute of Navigation and saying,
see what we can do and having enough technical information to make it interesting.
Or at least to pique the right people to ask the right questions.
We didn't want to give away the whole cow, obviously.
And so we definitely held back some.
There was a lot of performance stuff
that we put in those papers
to just show how our little $2,000 system
compared against a quarter million dollar system
was ultimately what we did.
That was so cool.
It was very cool because we showed,
hey, we're stable, we can perform, we do well.
And heck, ours was only $2,000.
And now they're getting away with two $300 systems
that do almost the same thing.
It's pretty crazy.
Okay, so you went, again, I went back to where you were in your career,
but you left Cistern Donner about a year ago to go to Memsik.
To go to Memsik, right.
Or sorry, to come back home, as it were.
There are a lot of the Crospo folks.
Yeah, yeah.
Kind of there.
This world, this whole...
This valley.
This whole valley,
this business I kind of...
Navigation.
...on myself into,
it's kind of a small world.
It's actually a small world.
You always,
you tend to run into the same folks,
the same folks travel from company to company.
There's not that many company doing it.
There's really not that many people in the world
that I would consider really good at it necessarily.
No, because once you get to Quaternion it's like three quarters of people turn back and say no
there's a lot of highfalutin math in it for sure there's a lot of a lot of highfalutin math
you know when colin first uh submitted his dissertation which is what his paper is based on
he passed he passed the exam not because it was so good because actually his paper is kind of hard
to read and he does have two or three errors in it,
but it was because all his advisors,
and these are hardcore guys, obviously,
in the early 60s in USC,
they had no idea what the hell he was talking about.
No idea whatsoever.
They looked at it and just went,
yeah, sounds good, and they just passed him right along.
And at the time, no one even realized
what the advantages of a calling filter could have.
No one even foresaw that.
And it took a while to get going,
but once it actually did,
obviously it was something to be reckoned with.
But now, like I said, it's in everything.
It's about what we have, all our toys, all our systems.
They use them in one way or another.
But that high-fluid math is hard,
and it's hard to get past.
It's tough to get your head around some of that stuff.
Do you know if commons are being used anywhere else,
or is it primarily navigation?
No, no, I think commons are used in a lot of multimedia in some sense.
I mean, a lot of systems that try to reduce noise,
say in your stereos, they have little common filters running around,
you have to take measurements of things,
trying to optimally estimate noise and reduce noise and there's lots of different kinds of
column filters on too and lots of fancy different approaches to column filtering because column
filter once you start looking at all the highfalutin math you kind of realize man there's a lot of
calculations you got to do and to do all the equations the way the confidence is set up it
takes a pretty intensive processor um and now it's it's kind of come back full circle because now processors are so cheap and floating
point is so cheap now that it's almost like well you know what i'll make my coffee the way i want
and just put it in wherever because now everything's so cheap but even then there was a time when when
you know it's hard and expensive to do these things and to fit them in the right things and
fit them in the right places we want to fit them into. And so people started to design different kinds of common
filters. They started to design filters that didn't require a lot of equation calculation
in real time. They designed filters that were already set and predefined gains and used
table lookups for things and predid a lot of stuff. And so the simplification of common
filters kind of made it proliferate in lots of different ways. There's Kalman filters in most of the washing machines.
So how do I decide?
I mean, I understand with navigation,
I want to use a Kalman in order to put together two sensors
and estimate the errors for each
in order to generate a combined solution
trusting the most trustworthy of the data.
Right. Is that pretty much how, that's when you decide to use a Kalman generate a combined solution trusting the most trustworthy of the data.
Is that pretty much how, that's when you decide to use a Kalman or is there more?
No, that, that's again, that's, that's, uh, that's probably a good, good, good way of saying anything else.
Yeah.
Typically you have, you have a lot of estimation to do, right?
You have lots of different things you want to estimate.
You have a lot of sensors, you know, at your disposal.
You have a decent idea about how to correlate those sensors into the things you want to estimate.
So you have some understanding.
So like accelerometers into position.
Sure, exactly.
And know theoretically how to do that, but I know there's a lot of error.
And think of the extension of that.
Think of video.
Think of video detection.
Think of some of these algorithms that people use now using video processing to determine where they are and how things are moving just by looking at video changes and pixel algorithms. Those are sensors as well in some sense. You think of them in that terms and that sense information could be transformed into a position measurement, which I can use directly in a common filter. And again, think of any kind of sensor that you can relate in some way to navigation,
and all that can be combined in your algorithm.
And so what's the straightforward method
of combining it all in a common filter?
Because that's the definition of a common filter.
You have a large state that you want to estimate.
You have a large vector of measurements
you can take.
And you have the best expected estimate
based on all the measurements you have now
and all the measurements you had in the past to give you that best estimate.
That's a column filter.
And that's different than calibration.
When we talk about errors and temperature compensation or just simple calibration,
those are fixed.
But these errors that we're talking about are changing just because that's life.
Exactly.
Because, again, there's stuff that happens in real time, real world, that's life. Exactly. Okay. Because again, there's, there's, there's stuff that happens real time, real world that you
can't model.
And obviously you can't calibrate a sensor for every single dynamic situation it's going
to run into.
It's impossible.
I mean, you could try, um, you could, you could try to calibrate a sensor to do some
kind of motion under specific set of dynamics.
Um, but that's all we'll be able to do.
Once you pull it out of that small all it will be able to do.
Once you pull it out of that small regime,
your calibration will fail, undoubtedly.
And so you want to generically understand how to calibrate in the factory based on, again,
things you can measure heuristically.
Temperature.
Temperature, good one.
And you want to then have a good model for that
so you take out as much of the air as you can.
And so the factory gives you a certain level of calibration
and error cancellation that's good up to a certain level.
But once you want to move beyond that,
you have to then apply real-time techniques.
And common filter is another recursive real-time technique
that gives you the ability to estimate based on measurement.
And you asked before about how to use a common filter
for estimating the errors of a sensor.
So again, if you look at the equations,
the equations say that, again,
I integrate position once to get velocity,
and integrate velocity again to get the main acceleration.
I integrate acceleration twice to get to position.
The actual equation involves the accelerometer vector
being acceleration plus noise plus error. That's really the accelerometer vector being acceleration plus noise plus error.
That's really your accelerometer vector.
Rather, your accelerometer signaling.
It's not just acceleration.
You have acceleration true plus acceleration noise plus acceleration error.
And this is how we get into matrix math.
That's how you get into matrix math.
Big monster matrix math.
Because now every single element is not just one.
It's really based on several of them.
And when you break down
the algorithm and the equation,
you can see that your error,
your bias error,
is directly also proportional clearly
to how your state model is moving
and proportional to how the gain
on your measurement model
is going to be working.
So now you have a way of saying,
hey, well, guess what?
My algorithm can also tell me about my error in my sensor.
So I'm going to make that one of my states.
I'm going to make that a state in my column filter, try to estimate those errors.
The bug or the problem you have to be careful with is to not put so many states in your column filter
that it requires hours know hours and hours and
hours of dynamics and various types of dynamics to even be able to see some of these some of these
estimates if you have to have the data necessary to be able to get good estimates on some of these
some of these states that you're trying to get that's called observability so you want to avoid
situations where you know you have to have tons of dynamics and tons of time
before you actually even have enough data
in the common filter
to be able to estimate some errors.
So a lot of people get wrapped around
having more and more states in their system.
Yeah, more states is more information.
Right, right.
But the problem is
it could actually bite you in the butt
because what happens is the common filter,
ultimately it's still, it's not, you know,
it's a neural network,
but even neural networks have sort of the same idea.
You don't, ultimately they don't know what they don't know.
And so they're going to,
a neural network and a common filter
is going to make an assumption.
It's going to say, you know what?
I think the air belongs here
because I don't know any better.
So now you've got an air growing in some state
that you realize shouldn't be there, right?
But the common filter doesn't know, so it sticks it in there.
It can't do any better.
So what should be an estimate of some teeny, teeny, teeny error now becomes fodder for the common filter.
That's a term I like to use.
It sticks a bunch of error in there because it has no other place to put it.
And now you've got something that's mismodeled.
And that pushes other errors and all of a sudden you get it wrong and you get an unstable filter.
So it's dangerous to do that.
So you want to try to limit the amount of a sudden you get it wrong and you get unstable filter. So it's dangerous to do that. So you want to try to limit
the amount of states that you have
and you want to try to have your states have
a really good level of observability.
And the first error modes
on the sensor typically are good.
Bias is a good one.
Scale factor is another good one. That's about
all you want to really tackle.
Do you want to go off to x squareds?
You can try. Like I said, you can try.
But again, it depends on how much dynamics,
how much time you have, right?
How many sensors you have as well.
When you say dynamics,
do you mean loop-de-loops in planes
and being able to set the system state
to be like bound to the earth
or available in the air air what do you mean by
dynamics yeah so dynamics is really the the i use the term dynamics in the traditional sense the
dynamics of a moving body how fast it's turning um how fast the change of the rate of the turn
is happening the acceleration of the angular acceleration how fast the velocity is changing
the acceleration how fast the acceleration is changing the acceleration, how fast the acceleration is changing itself,
and with the jerk,
all these different terms of the dynamics
affect how the sensor can measure
and affect the ability to measure
and then also affect the errors
that you're going to build up
in your own navigation solution.
But the advantage is that
if you've done your math right,
if you've done your state model right,
and you've done your measurement model right,
then the more dynamics you pull, the more corner cases you have on all your extremes and dynamics, the more you're going to be able to really characterize everything
in your state.
You're going to be able to observe some of these errors.
Because some of these errors won't occur until you're really able to differentiate the parameters,
to differentiate the errors.
So like a high G-coordinated turn leads to a special set of dynamics that shows you certain
state errors.
Certain state errors, exactly.
More than others.
And maybe stopping really, really fast shows you a different set of state errors.
Right, right.
Okay.
And you want to try to play a careful balance game that you don't weigh, like I was saying,
too much on something that's really unobservable unless you throw a lot of dynamics in. If you're
a boat, for instance, you're not going to be doing loop-de-loops and well-turns.
If you're seeing a lot of, if the GPS tells you you're way above sea level and you're
a boat, there's some error there and the Kalman can help disperse it.
Exactly.
Right.
Okay. Okay. So I think I'm done with Kalman because my brain's full. Okay. This happens often when I talk to it. Exactly. Right. Okay. Okay. So I think I'm done with Calmex.
My brain's full.
Okay.
This happens often when I talk to Tony.
Sorry.
But usually there's more math involved.
There is.
Yeah.
So you're at Memsic now.
Right.
And you, what products can we talk about?
Oh, no.
We can talk about, well, so fortunately or unfortunately, we can talk about all the products that you and I actually still worked on even back when we were at Crossbow.
So Memsic purchased Crossbow.
Yes.
Memsic bought.
Part of Crossbow.
Part of Crossbow.
The bigger part of Crossbow.
The military and government contract work that Crossbow was doing was not bought by Memsic.
Memsic is sort of a Chinese-American company.
So it's an American company based out of Andover, Massachusetts,
but it has significant leadership positions in China held by Chinese nationals.
And so clearly there's some requirements that we cannot have military programs available to foreign nationals,
as well as some of the government programs.
So Crossbow had a couple of those, and so they kept those,
but they sold all the civilian and commercial and industrial work that was non-military, non-government based.
They sold that to MEMSIC.
And that included all the FAA products
that you and I had worked on,
the AHRS 500, the AHRS 510,
all these products that eventually were certified
by the FAA, used in avionics.
That was all purchased by MEMSIC.
As well as the follow-on products as well.
There's a line of IMUs, vertical gyros,
and AHRS calledola 440 line.
There was an extension
of the original 400s
that I started
and you kind of perfected for me.
They were all produced
by Memsic as well.
And all those products
are still being sold.
They're still being sold.
They're still being made.
They still come back
to the office.
The other day I got
back an Ahars 400
circa 1999.
But I know for a fact I must have calibrated back then.
Oh, you hand calibrated a lot of those puppies.
You were the only one with the smooth skill to do it.
Yeah.
And I came back.
We got the rate table.
I came back and I had to figure out something to do.
They're like, what the heck did I do?
It's like the museum.
I know.
The customer wanted something back. But these products have a long life. They have a, what the heck did I do? It's like, I never used it. I know. The customer wanted something back.
But these
products have a
long life.
They have a
very,
very long
life.
They stay
out in the
field.
Because they're
OEMed into
other systems.
And so it's
not just
building the
IMUs to be
done.
It's supporting
these companies
to build their
own devices.
And this whole
business of
having non-moving
parts for the
sensors has
really turned
out to be
the real
thing.
Set MEMs and non-moving sensors, non-moving parts for the sensors is real it's really turned out to be the real thing set mems and non-moving sensors non-moving parts and sensors is a key thing these things last forever i broke a fiber optic gyro it was like my third day at crossbow i know
yeah it was so heartbreaking because those cost more than the whole units they did they did they
were expensive but uh okay things last so the big ones are still around, but we don't care
because we only want to hear about the big ones.
Yeah.
So when I started Memzik,
I realized, I was like,
yeah, I know that product.
Yeah, I know that product.
I know this product.
Yeah, I wrote the software for that guy.
So I went and talked to the hiring manager at the time.
His name was Paul Zervaki.
He was the president of Memzik.
I said, hey, Paul, this is great,
I definitely contribute here,
but what have you guys been doing?
It was a little bit my slant.
And there was a real push
to have someone come into Memzik
and kind of drive new product developments.
They wanted to see new products come out,
taking advantage of whatever cutting edge thing there was.
So that became my prime focus.
I wanted to come in,
observe the team that we had,
which is the people that were there from Crossbow were very good.
And so that was a good starting point for a team.
And I had to hire my own folks as well
because we were very, very small when I started Memzik.
And so I started hiring some folks
and hiring some good people.
And we started doing new product developments
based on very current sensor technologies um and the the availability
of sensors now is is great there's so many companies not doing sensors um at the very very
small small chip i see i'm talking three by three millimeter type three axis sensors and these are
three axis digital sensors which is even more beautiful.
And the performance on these is outstanding.
It's equivalent or better than really than the performance we were getting
back when we made three-inch by three-inch boxes
with mem sensors and all that stuff.
So it's a whole new world.
The cost has gone way down on these systems,
so now we can compete on a whole different level.
We can go after some of the bigger guys
and throw in some of our own knowledge after some of the bigger guys and throw in
some of our own knowledge,
some of our own
intellectual property
and develop even
better algorithms
and future algorithms
based on very inexpensive
platforms.
And so that's our first
introduction.
It's called the 380 line.
It's a whole family
of products.
And the first introduction
will be the IME 380,
which is obviously
the first thing you want to do
is just get your core,
get your sensors out there.
And that's the accelerometers
and the gyros.
Does that come with magnetometers?
It does come with magnetometers, too.
It's all nine of those guys.
They're a very small form factor.
They aren't going to go through a count,
and they're just going to be the data.
They're just going to be the data.
There's a very complex calibration algorithm
to do, again, the factory cal.
And it gets to a certain point.
There's also a very sort of, I think,
nice and elegant output methodology for it.
Both digital, actually, it's all digital,
but both UART and RC32 asynchronous
and synchronous as well, which is nice.
So OEM guys can embed the system
into their own product lines.
Or standalone guys can take this data
and use it as a standalone unit as well.
So the IMU will be the first one,
but as we have other product lines in the past for Crossbow and now MEMSIC,
we'll have vertical gyros, we'll have AHARs,
and we'll have INH GPS as well.
And a very, very teeny small form factor,
which will be pretty exciting.
It is tiny.
I'm used to these 3x3 boxes
because that's what inertial measurement units were for me.
Yeah, exactly. these three by three boxes because that's what inertial measurement units were for me yeah exactly
and now it's like a quarter inch by an inch by three right and it i mean man it's only twice
as big as my fitbit yeah it's a pretty small it's really small yeah very and that really opens us up
to lots of different applications you know that we weren't able to get in before home drones is the thing you know i mean just uavs to go play with electric airplanes amazon
has said amazon has said hey we're no longer going to deliver your stuff your amazon stuff
by foot car or whatever they're gonna fly the uav to your front door and have the UAV ring the doorbell and go,
here's your package, sir. And then the UAV's going to fly off.
Of course, the first time that UAV flies through
somebody's kitchen window, there'll probably be somebody
talking about it. But that's
where things like this will be exciting.
Because as the algorithms
get better, as people are able
to fuse more data together in these
applications, it makes for an
exciting future.
And how much is this going to be?
Is the price set? Yeah, the price
is set in high volumes, we're talking
in the hundreds, and
smaller volumes, we're talking closer
to the thousand, but still way, way low
compared to everything we had before. It's in the hundreds
for just about every level
of purchasing you get.
And as we add more features to it,
the vertical gyro will be a little more,
the acres will be a little more.
Well, yeah, because you're paying for the software.
You're paying for the software.
You're paying for the smarts.
You're paying for all the things that we've added
to the sensors alone
to make it more of a full solution for the customer.
Well, I'm excited
because I did a little bit of the work on this.
Yeah, Alicia, you came on board and helped us out when we needed some help, which is great.
And got us going, really, on this product line.
And we're just about ready to release it.
And we're very excited about it.
And it should be the catalyst for some big future endeavors.
It was fun to come in this week and see not just one.
And I guess I had seen one, but I hadn't touched it
because it was always the only one available.
But to see the pile of 10 getting ready to be shipped out to customers.
Oh, yeah.
And I just wanted to hold them.
Right.
I'm going to need one just for myself.
Oh, we're probably seeing that.
And we're going to make a run of 500 coming up pretty soon.
And the eventual goal
for this thing
is to move it offshore
to our manufacturing facility
in China
and to really start getting
on the order of 10,000 a month
with big enough customers
to buy this product line
at those numbers.
That'll be exciting.
That'll be exciting, yeah.
Okay, so I just have
a couple more questions
and I guess the first is putting on your forecasting hat.
What do you see happening with MEMS sensors in the future?
Different sensors or just improvements on what we have?
More than likely it'll be improvements.
There'll be different sensors, sure.
There'll be different capabilities that'll'll be different um capabilities that'll
go down to the mems size level that people will start to exploit for these different things the
internet of things whether you want it to or not it's coming everything you'll pretty soon
there'll be everything will be on the internet everything will be communicating it's so cheap
now to wirelessly broadcast signals and accept signals from the outside that everything is going to be going down that path um and obviously the next clear integration with all that is sensing you want
to have these things these internet of things not just be able to talk to the internet back and
forth but also be aware of their surroundings that's really kind of the key thing um the
internet of things is really fuel this idea that eventually we're going to have the trillion sensor movement.
And that's another kind of buzzword that's going around now.
The trillion sensor guys are saying that, yeah,
we're going to eventually get to the point where there'll be a trillion sensors.
That's a big market.
That's a big opportunity, too, for integrators, module designers,
sensor manufacturers.
The sensor manufacturers are duking it out right now pretty big time.
The chip guys, as well as the high-end guys even, as well,
because they realize that as the lower end,
or what used to be lower end,
but now it's actually reasonable performing systems,
start to go down to $5, $1, $0.10, $0.03,
they can no longer offer similar performance and say,
hey, I'll buy my sensor for a thousand bucks.
They can't.
So they themselves are always going to have to be pushing
their own technology to get those down in price
because everything will require sensing.
Everything will require awareness.
We're headed that way.
Terminator, here we come.
And let's see, you're hiring, right?
I'm hiring right now, yes.
What are you hiring for? I'm hiring, I have I'm hiring right now, yes. What are you hiring for?
I'm hiring, I have two software openings right now.
I have a test software opening and an embedded software opening.
And the test software opening is to get from the 500 to 10,000
and make sure it all still works.
Exactly.
It's like to run our AT systems, database guys,
to really kind of give us the ability to monitor and track our trends
in our manufacturing and trends in our manufacturing
and trends in our own
pilot R&D runs.
To work more
with that rate sensor
or rate table?
The rate table,
the ovens,
the mag cage.
Make it all just work well.
We're going to buy
a vibration device as well
which we're going to add
into our test process.
Yeah,
so I'm going to do that
and so the test software
guy will do that.
The embedded software guy will be sort of a replacement for alicia in some sense um alicia has been
incredibly valuable but obviously alicia also has other interests and other things and so i do need
somebody kind of full-time now it seems like with all the things that we're thinking about doing
yeah you hired an algorithms guy and he's been taking care of the embedded systems and and he's
been coming pretty good oh man he's embedded systems. He's become pretty good.
Oh man, he learned fast.
He's become pretty good.
But he wants to go back to algorithms.
It's a little bit like where I was
when I started Crossbow 2.
Because I was an algorithms guy coming from the Aerospace Corporation
in UCLA and all I knew was
algorithms and I was thrust into this world of
Mike Horton telling me, hey, you've got to
stick your stuff into this little chip.
I'm like, what? I had no idea what he was talking about but okay here's a compiler go for it like okay you're totally typing away and making code which you came by and saw later and
you weren't too impressed by but no i wasn't i just didn't think you should run it all in an
interrupt right exactly but uh but clearly we needed an embedded person i needed a better
person right when you were you were perfect for that.
And optimizing, running out of space.
I mean, this system so far is in good shape,
but it just needs care and attention.
And as things get better and bigger and does more,
it needs somebody to take care of it.
Full time, exactly.
And so I'm hiring for that person,
embedded software guy.
I'm hiring, I'm looking to hire a mechanical guy as well. I still need to get the approval for that, but I do believe ultimately we're still designing electrical mechanical systems. You can't get away from the fact that everything we make is in some way determined also by the packaging, by the ability of the packaging and how we mechanize that package to be able to withstand environment.
You can do a lot with electronics and software,
but sometimes you just really need a good isolator
or sometimes you really need a good way
of taking the heat out of something
and a good mechanical engineer, designer
is what I need for that as well.
So I'm hiring for that.
I know a mechie, so maybe we'll talk after.
Yeah, there's that.
And then I'm still trying to make a case
for our facility to move into more
of a rigorous sort of manufacturing capability.
Right now we are manufacturing.
We do make boxes at our facility,
but we really are an R&D house.
And so when we do make boxes,
what little production we do have,
we're always having to do a lot of hand manipulation
of documentation and procedures and processes.
So I would like to set up more of a rigorous, you know, actual manufacturing group there at our facility.
You'll need that if you do FAA again.
We will. We will.
It'll be very difficult to offshore some of the manufacturing FAA products.
And so we'll need that in place at our facility.
And so I'm gearing up for that as well.
And again, since we are electromechanical systems,
PCB design is key to everything we do.
And I've got two, almost really three PCB designers now,
but I need even more.
So I'm looking to hire yet another doubly guy.
Hardware hardware electrical engineering
um embedded software test software mechanical it sounds like you need a whole team yeah i do i do
um again there's a certain critical mass that you need to be able to handle multiple products and
there's there's a certain level of support that that that people uh, that products need to be able to get
from concept to
full fruition. And
if you have one team doing
all of it, it really takes forever to do
one project. And so
the whole expectation that we're going to be
able to get new products out the door in a
quick time will not
work without having more people.
And so that's the reason why we're pushing.
All right.
If you're interested,
go ahead and send your resume to hr at memsic.com.
That's hr at m-e-m-s-i-c.com.
It'll be in the show notes so you can see it there.
You can also contact me
and I can forward things along to Tony, but resumes really should go to HR.
If you want to add in a note that you heard it from on the show, that would be nice just to give me brownie points.
Not making any money there, but I don't care because M6 has been nice to me so far.
I think that's about it for the show. Any last thoughts?
No, no. I think I've about it for the show. Any last thoughts? No, no.
I think I've talked,
talked up a storm.
I really enjoyed it.
Thanks very much for having me.
And it's great that you're doing this and you found a good venue
for all your wonderful thoughts and abilities.
Ability to talk and talk and talk.
No, no.
I read, I read,
I can't say I read your whole book,
but I definitely read a lot of your book and I was really impressed. It was good, good job.. No, no. I read, I read, I can't say I read your whole book, but I definitely read a lot of your book
and I was really impressed.
It was good, good job.
Thank you.
Good work, yeah.
Thank you for being on the show.
You're welcome.
Glad to be here.
My guest has been
Tony Rios,
director at MEMSIC.
If you,
or director of engineering
at MEMSIC.
If you have questions
or comments,
there is a contact link
at embedded.fm or email us at
show at embedded.fm i will forward messages to tony if you want to to talk to him and if you
want to apply for a job definitely hr at memsic if you're enjoying the show uh please consider
writing a review on itunes or stitcher or wherever you get your podcast from.
It does help us.
Thank you to Christopher White, the show's Able producer,
who is responsible for a lot, a lot that goes on around here.
It looks like this is my show, but it is definitely ours.
And now a final thought.
This is apparently a true story that took place just outside of Munich, Germany with Werner Heisenberg. He went for a drive, got stopped by a traffic cop, passed. Do you know how fast you were going? Heisenberg replied, no, but I know where I am.