Embedded - 43: A Lot of High-Falutin' Math

Episode Date: March 19, 2014

Tony 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)
Starting point is 00:00:00 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.
Starting point is 00:00:29 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.
Starting point is 00:00:46 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.
Starting point is 00:01:09 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
Starting point is 00:01:35 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
Starting point is 00:02:06 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
Starting point is 00:02:13 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.
Starting point is 00:02:20 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,
Starting point is 00:02:28 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.
Starting point is 00:02:35 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
Starting point is 00:02:48 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.
Starting point is 00:03:06 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
Starting point is 00:03:22 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.
Starting point is 00:03:41 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.
Starting point is 00:03:57 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
Starting point is 00:04:14 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,
Starting point is 00:04:43 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
Starting point is 00:05:01 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
Starting point is 00:05:28 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,
Starting point is 00:05:38 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.
Starting point is 00:05:58 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
Starting point is 00:06:20 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
Starting point is 00:06:38 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
Starting point is 00:06:54 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
Starting point is 00:07:10 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.
Starting point is 00:07:21 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
Starting point is 00:07:45 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.
Starting point is 00:08:15 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
Starting point is 00:08:30 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
Starting point is 00:08:40 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
Starting point is 00:08:57 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.
Starting point is 00:09:23 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.
Starting point is 00:09:48 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.
Starting point is 00:10:11 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.
Starting point is 00:10:24 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
Starting point is 00:10:44 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
Starting point is 00:11:12 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.
Starting point is 00:11:32 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,
Starting point is 00:11:54 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?
Starting point is 00:12:07 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.
Starting point is 00:12:21 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.
Starting point is 00:12:43 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.
Starting point is 00:13:07 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
Starting point is 00:13:26 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
Starting point is 00:14:05 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.
Starting point is 00:14:21 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
Starting point is 00:14:31 they give me some of the same information. Exactly. If I, if I turn it 90 degrees or 180, I should see
Starting point is 00:14:39 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.
Starting point is 00:14:48 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
Starting point is 00:15:05 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
Starting point is 00:15:22 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
Starting point is 00:15:50 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.
Starting point is 00:16:26 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
Starting point is 00:16:53 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
Starting point is 00:17:12 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,
Starting point is 00:17:32 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.
Starting point is 00:17:45 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
Starting point is 00:18:05 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.
Starting point is 00:18:30 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.
Starting point is 00:19:06 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
Starting point is 00:19:24 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,
Starting point is 00:19:59 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.
Starting point is 00:20:48 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
Starting point is 00:21:06 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
Starting point is 00:21:35 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.
Starting point is 00:21:54 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,
Starting point is 00:22:16 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
Starting point is 00:22:30 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.
Starting point is 00:22:36 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.
Starting point is 00:22:42 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.
Starting point is 00:22:58 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.
Starting point is 00:23:30 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
Starting point is 00:23:41 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.
Starting point is 00:23:55 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,
Starting point is 00:24:12 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,
Starting point is 00:24:31 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
Starting point is 00:24:54 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.
Starting point is 00:25:28 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.
Starting point is 00:25:41 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.
Starting point is 00:26:09 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.
Starting point is 00:26:27 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
Starting point is 00:26:40 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,
Starting point is 00:27:00 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.
Starting point is 00:27:17 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,
Starting point is 00:27:33 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,
Starting point is 00:27:52 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.
Starting point is 00:28:31 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
Starting point is 00:29:11 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,
Starting point is 00:29:35 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.
Starting point is 00:29:55 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.
Starting point is 00:30:17 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.
Starting point is 00:30:36 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.
Starting point is 00:31:09 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.
Starting point is 00:31:29 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,
Starting point is 00:31:47 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,
Starting point is 00:32:10 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
Starting point is 00:32:25 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.
Starting point is 00:33:01 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,
Starting point is 00:33:15 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.
Starting point is 00:33:38 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...
Starting point is 00:33:49 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.
Starting point is 00:33:59 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,
Starting point is 00:34:28 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.
Starting point is 00:34:45 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,
Starting point is 00:35:02 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,
Starting point is 00:35:23 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
Starting point is 00:36:02 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
Starting point is 00:36:37 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?
Starting point is 00:37:02 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.
Starting point is 00:37:21 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.
Starting point is 00:37:57 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,
Starting point is 00:38:16 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.
Starting point is 00:38:35 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.
Starting point is 00:38:58 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.
Starting point is 00:39:15 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.
Starting point is 00:39:36 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.
Starting point is 00:39:59 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,
Starting point is 00:40:11 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.
Starting point is 00:40:28 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
Starting point is 00:41:06 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
Starting point is 00:41:20 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
Starting point is 00:41:35 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.
Starting point is 00:41:48 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
Starting point is 00:42:07 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?
Starting point is 00:42:23 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
Starting point is 00:42:44 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
Starting point is 00:43:12 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,
Starting point is 00:43:29 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.
Starting point is 00:43:50 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
Starting point is 00:44:16 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.
Starting point is 00:44:30 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.
Starting point is 00:44:52 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.
Starting point is 00:45:09 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
Starting point is 00:45:48 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.
Starting point is 00:46:05 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.
Starting point is 00:46:17 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.
Starting point is 00:46:29 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.
Starting point is 00:46:43 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
Starting point is 00:46:48 life. They stay out in the field. Because they're OEMed into other systems. And so it's
Starting point is 00:46:53 not just building the IMUs to be done. It's supporting these companies to build their own devices.
Starting point is 00:46:59 And this whole business of having non-moving parts for the sensors has really turned out to be the real
Starting point is 00:47:04 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,
Starting point is 00:47:34 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,
Starting point is 00:47:45 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.
Starting point is 00:48:02 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
Starting point is 00:48:21 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
Starting point is 00:48:51 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,
Starting point is 00:49:05 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
Starting point is 00:49:13 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
Starting point is 00:49:20 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.
Starting point is 00:49:31 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.
Starting point is 00:49:48 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,
Starting point is 00:50:04 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.
Starting point is 00:50:24 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
Starting point is 00:51:09 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.
Starting point is 00:51:25 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
Starting point is 00:51:42 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
Starting point is 00:51:53 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.
Starting point is 00:52:15 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.
Starting point is 00:52:36 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
Starting point is 00:52:50 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
Starting point is 00:53:02 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
Starting point is 00:53:29 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,
Starting point is 00:54:12 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,
Starting point is 00:54:33 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.
Starting point is 00:54:53 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.
Starting point is 00:55:13 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.
Starting point is 00:55:28 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
Starting point is 00:55:35 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
Starting point is 00:55:50 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
Starting point is 00:56:13 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
Starting point is 00:56:38 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.
Starting point is 00:57:01 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
Starting point is 00:57:35 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.
Starting point is 00:57:52 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.
Starting point is 00:58:15 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.
Starting point is 00:58:40 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
Starting point is 00:59:12 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.
Starting point is 00:59:27 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.
Starting point is 01:00:01 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.
Starting point is 01:00:19 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.
Starting point is 01:00:28 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,
Starting point is 01:00:37 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
Starting point is 01:01:00 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.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.