`
`UNITED STATES DISTRICT COURT
`SOUTHERN DISTRICT OF TEXAS
`HOUSTON DIVISION
`
`09-CV-1827
`Houston, Texas
`
`7:39 a.m.
`July 27, 2012
`
`*
`*
`
`**
`
`***
`
`WESTERNGECO LLC
`VS.
`ION GEOPHYSICAL
`CORPORATION, FUGRO
`GEOTEAM, INC., ET AL
`
`JURY TRIAL
`Volume 5
`
`BEFORE THE HONORABLE KEITH P. ELLISON
`UNITED STATES DISTRICT JUDGE
`
`APPEARANCES:
`FOR THE PLAINTIFF:
`Lee L. Kaplan
`SMYSER, KAPLAN & VESELKA, LLP
`700 Louisiana, Suite 2300
`Houston, Texas 77002
`713.221.2300
`
`Gregg F. LoCascio
`KIRKLAND & ELLIS LLP
`655 Fifteenth Street Northwest
`Washington, DC 20005
`202.879.5290
`
`Sarah Tsou
`Timothy K. Gilman
`KIRKLAND & ELLIS LLP
`Citigroup Center
`153 East 53rd Street
`New York, New York 10022
`212.446.6435
`
`Johnny C. Sanchez, RMR, CRR - jcscourtreporter@aol.com
`
`123456789
`
`10
`11
`12
`13
`14
`15
`16
`17
`18
`19
`20
`21
`22
`23
`24
`25
`
`PGS v. WESTERNGECO (IPR2014-00689)
`WESTERNGECO Exhibit 2055, pg. 1
`
`
`
`1498
`
`Redirect-Triantafyllou/By Mr. LoCascio
`
`claims that pertain to your testimony?
`A.
`Yes, I think it does.
`MR. LOCASCIO: No further questions, Your
`
`Honor.
`
`THE COURT: Okay. Anything further?
`MR. PIERCE: No.
`THE COURT: Okay. Thank you. You're free to
`go. Thank you.
`
`Do you wish to call another witness?
`MR. LOCASCIO: We do. At this time,
`WesternGeco calls Dr. John Leonard. Bring him up.
`THE COURT: Why don't we take back some of the
`things we gave the last witness.
`MR. LOCASCIO: Sure.
`THE COURT: Yes, sir. If you'd make your way
`
`up here.
`
`MR. ARNOLD: Are we clear up here?
`CASE MANAGER: Yes.
`THE COURT: We're going to have you in the seat
`nearest me, sir.
`
`Before you take your seat, Mrs. Loewe will
`administer the oath.
`THE CASE MANAGER: Do you solemnly swear that
`the testimony you are about to give in the matter now
`before the Court will be the truth, the whole truth and
`
`123456789
`
`10
`11
`12
`13
`14
`15
`16
`17
`18
`19
`20
`21
`22
`23
`24
`25
`
`Johnny C. Sanchez, RMR, CRR - jcscourtreporter@aol.com
`
`03:02:32
`
`03:02:39
`
`03:03:16
`
`03:03:24
`
`03:03:30
`
`PGS v. WESTERNGECO (IPR2014-00689)
`WESTERNGECO Exhibit 2055, pg. 2
`
`
`
`1499
`
`nothing but the truth?
`THE WITNESS: I do.
`THE COURT: Have you been in the courtroom for
`
`a while.
`
`THE WITNESS: Yes.
`THE COURT: You know the drill, then. Okay.
`Try to speak into the mike.
`MR. GILMAN: I know it's late in the day, so
`I'll try to move quickly, Your Honor.
`THE COURT: Thank you.
`MR. GILMAN: For its next witness, WesternGeco
`calls Dr. John Leonard, who is a professor at MIT.
`Dr. Leonard is a specialist in navigation and robotics,
`with an emphasis on underwater vehicles. We heard a little
`bit with the last two witnesses how some of the defendant's
`products work.
`
`Dr. Leonard is here to talk about the
`source code that's used, the computer programs that are
`used inside of that -- those product and what information
`is being passed back and forth in those products.
`Permission to approach the witness.
`THE COURT: Yes. You don't need to ask
`
`permission.
`
`123456789
`
`10
`11
`12
`13
`14
`15
`16
`17
`18
`19
`20
`21
`22
`23
`24
`25
`
`03:03:40
`
`03:03:49
`
`03:04:06
`
`03:04:17
`
`Johnny C. Sanchez, RMR, CRR - jcscourtreporter@aol.com
`
`PGS v. WESTERNGECO (IPR2014-00689)
`WESTERNGECO Exhibit 2055, pg. 3
`
`
`
`Direct-Leonard/By Mr. Gilman
`
`1500
`
`JOHN LEONARD,
`after having been first cautioned and duly sworn, testified
`as follows:
`
`DIRECT EXAMINATION
`
`BY MR. GILMAN:
`Good afternoon, Dr. Leonard.
`Q.
`A.
`Good afternoon.
`Would you please introduce yourself to the jury.
`Q.
`A.
`My name's John Leonard, and I'm a professor at MIT.
`What do you do at MIT?
`Q.
`A.
`I perform research in robotics, and I teach
`mechanical engineering.
`What kind of education do you have to get to where
`Q.
`you are today?
`A.
`Undergraduate degree is in electrical engineering
`from the University of Pennsylvania, and my Ph.D. is from
`the University of Oxford.
`What did you study in both of those schools?
`Q.
`A.
`So electrical engineering as an undergrad, and then I
`focused in robotics, and my Ph.D. is in engineering
`science from Oxford.
`What was the topic of your thesis for your Ph.D.
`Q.
`studies?
`A.
`I worked on the problem of how a robot can build a
`map and concurrently use that map to navigate. And so,
`
`123456789
`
`10
`11
`12
`13
`14
`15
`16
`17
`18
`19
`20
`21
`22
`23
`24
`25
`
`Johnny C. Sanchez, RMR, CRR - jcscourtreporter@aol.com
`
`03:03:46
`
`03:05:03
`
`03:05:11
`
`03:05:25
`
`03:05:38
`
`PGS v. WESTERNGECO (IPR2014-00689)
`WESTERNGECO Exhibit 2055, pg. 4
`
`
`
`Direct-Leonard/By Mr. Gilman
`
`1501
`
`that involved a lot of advanced work in source code and
`Kalman filtering and a lot of the algorithms related to
`that.
`So if we could take a look at your -- some of the
`Q.
`slides that you put together.
`Starting off with your first slide,
`Leonard 1, could you describe what it is that you do today
`at MIT, what areas do you focus your research on?
`A.
`Yeah. This is a slide I give in talks to give sort
`after quick overview in the interests of time of some of
`my background. So the topics and pictures from underwater
`vehicle vehicles, the Arctic, worked on mine-hunting for
`the Navy, and also as the team leader for MIT's entry in
`something called the DARPA Urban Challenge, which is -- we
`built a self-driving car and drove it in traffic. And so,
`my research generally addresses these problems of mapping,
`navigation and control of autonomous vehicles, with a
`special focus on underwater vehicles.
`THE COURT: At MIT, are you in a research
`position, or do you also have teaching responsibilities?
`THE WITNESS: Yes. I'm a faculty member, so I
`have teaching responsibilities.
`THE COURT: Are you an assistant professor or
`an associate?
`THE WITNESS: I'm a full professor.
`
`123456789
`
`10
`11
`12
`13
`14
`15
`16
`17
`18
`19
`20
`21
`22
`23
`24
`25
`
`Johnny C. Sanchez, RMR, CRR - jcscourtreporter@aol.com
`
`03:05:54
`
`03:06:11
`
`03:06:25
`
`03:06:41
`
`03:06:48
`
`PGS v. WESTERNGECO (IPR2014-00689)
`WESTERNGECO Exhibit 2055, pg. 5
`
`
`
`Direct-Leonard/By Mr. Gilman
`
`1502
`
`THE COURT: Full professor. Thank you.
`THE WITNESS: I teach measurement,
`instrumentation, robotics, design, historically
`programming, even some -- lots of topics.
`THE COURT: Okay. Thank you.
`THE WITNESS: Sure.
`BY MR. GILMAN:
`How long have you been a full professor at MIT?
`Q.
`A.
`Let's see. I was promoted to full professor in --
`sorry -- '96, assistant. Let's see. Yeah, about, 2005 I
`became -- let's see, yeah. 2005, I think. Yeah.
`And how long overall have you been investigating
`Q.
`these type of research problems, these type of engineering
`problems?
`A.
`Pretty much since I object started my Ph.D. in 1997.
`So 25 years. I think I became a full professor in 2006.
`MR. GILMAN: If we could go to the second
`
`slide.
`BY MR. GILMAN:
`Now, I understand that you're here to discuss source
`Q.
`code.
`
`Could you explain what source code is?
`A.
`Yeah. Source code is the instructions inside a
`computer to implement a piece of software, and it's
`written in what we call a human readable computer language
`
`123456789
`
`10
`11
`12
`13
`14
`15
`16
`17
`18
`19
`20
`21
`22
`23
`24
`25
`
`Johnny C. Sanchez, RMR, CRR - jcscourtreporter@aol.com
`
`03:06:57
`
`03:07:10
`
`03:07:19
`
`03:07:34
`
`03:07:51
`
`PGS v. WESTERNGECO (IPR2014-00689)
`WESTERNGECO Exhibit 2055, pg. 6
`
`
`
`Direct-Leonard/By Mr. Gilman
`
`1503
`
`you'll hear C, C Plus Plus, other languages, JAVA, PASCAL.
`And another thing that source code has its comments, which
`are sort of text written, not for the computer to
`interpret, but for one programmer to sort of specify or to
`communicate to another.
`And so, in examining a piece of source
`code, like the complex software systems in this case, the
`comments actually give a lot of information.
`And is this an example at the bottom of this slide?
`Q.
`A.
`Yes. This is the first example from my favorite
`programming book, and it's just a program that prints out
`"Hello World." And what you can point and want to pull up
`there is where you see the slash star, a simple C program
`to print out "hello world star slash," that's an example
`of a comment. And we'll see comments later in the
`presentation.
`
`And then below that and is a function that
`pretty much just prints out "Hello world," it has other
`things, like semicolons and back slashes and things that
`we don't see in our normal sort of -- in normal documents,
`so -- but a programmer can sort of read that as a sort of
`language.
`Why would a programmer put in these things that you
`Q.
`call comments into their computer code?
`A.
`So comments are really important in software
`
`123456789
`
`10
`11
`12
`13
`14
`15
`16
`17
`18
`19
`20
`21
`22
`23
`24
`25
`
`Johnny C. Sanchez, RMR, CRR - jcscourtreporter@aol.com
`
`03:08:12
`
`03:08:23
`
`03:08:40
`
`03:08:51
`
`03:09:03
`
`PGS v. WESTERNGECO (IPR2014-00689)
`WESTERNGECO Exhibit 2055, pg. 7
`
`
`
`Direct-Leonard/By Mr. Gilman
`
`1504
`
`development. They sort of specify how code works, and
`sometimes it's important to write comments, not just for
`other programmers to look and understand your code, but
`even yourself. You might come back two years later to a
`piece of code you haven't looked at, and it helps lay out
`what the variables are, what the goals of the code are.
`If we could go to your next slide. Can you describe
`Q.
`what specific code you looked at for your investigation in
`this case?
`A.
`Yes. So I was asked to investigate three pieces of
`software for this case. So the ORCA system and the
`lateral controller, and those both run on the ship. And
`then the DigiFIN software, which runs on the actual
`DigiFINs, one of which is over there across the room.
`As part of the research that you do, do you use
`Q.
`source code yourself?
`A.
`Yes.
`What times of source code do you work in?
`Q.
`A.
`So for our robots, we have to write a lot of complex
`software, and we typically use the language of C and C
`Plus Plus. And in my career, years ago, I wrote big
`complex programs with tens of thousands of lines of code
`of C, and more recently I manage graduate students and
`postdocs that create many tens of thousands of lines of
`code in these languages to control robots.
`
`123456789
`
`10
`11
`12
`13
`14
`15
`16
`17
`18
`19
`20
`21
`22
`23
`24
`25
`
`Johnny C. Sanchez, RMR, CRR - jcscourtreporter@aol.com
`
`03:09:19
`
`03:09:33
`
`03:09:52
`
`03:10:02
`
`03:10:19
`
`PGS v. WESTERNGECO (IPR2014-00689)
`WESTERNGECO Exhibit 2055, pg. 8
`
`
`
`Direct-Leonard/By Mr. Gilman
`
`1505
`
`What did you do to analyze the source code that's at
`Q.
`issue in this case?
`A.
`So we looked at the code on two computers provided by
`ION.
`And how long did you spend looking at the code on the
`Q.
`computers?
`A.
`So because of the sensitive nature of the material,
`we could only look at the code at a law office in Houston.
`So flew down, spent a few days selecting which code that
`we could what's called produce.
`So we printed out selected pages of the
`code, and then I was able to subsequently look at those
`printed pages to do a more detailed investigation of the
`flow of information in the software.
`How did you choose what pages to produce and to
`Q.
`continue investigating?
`A.
`Yes. So before I traveled to Houston, I was provided
`with some user manuals and other documentation. And from
`that, I sort of -- that sort of informed what we could --
`what we -- sorry. That informed what I chose to produce
`or select when I was down in Houston.
`And what did you do with the source code after you
`Q.
`produced it and took it back with you back to Boston?
`A.
`So I analyzed the code to try to deduce how it works
`with respect to the lateral control, with also an emphasis
`
`123456789
`
`10
`11
`12
`13
`14
`15
`16
`17
`18
`19
`20
`21
`22
`23
`24
`25
`
`Johnny C. Sanchez, RMR, CRR - jcscourtreporter@aol.com
`
`03:10:30
`
`03:10:45
`
`03:10:58
`
`03:11:13
`
`03:11:31
`
`PGS v. WESTERNGECO (IPR2014-00689)
`WESTERNGECO Exhibit 2055, pg. 9
`
`
`
`Direct-Leonard/By Mr. Gilman
`
`1506
`
`on the flow of information between the different modules.
`So just walking through these three parts with
`Q.
`respect to the DigiFIN, how much of the source code did
`you end up bringing back with you?
`A.
`Okay. So the -- for the DigiFIN and the lateral
`controller, we were able to print out all the code, an
`order of hundreds of pages to represent that. But ORCA's
`a lot bigger. It has other functions that aren't
`specifically connected to a lateral control, and so ORCA
`actually is 3.8 million lines of computer code. And so,
`informed by the documents and -- that I had, we selected
`the sort of subset that relates to the Kalman filter, the
`calculating streamer separations, things that are relevant
`in this case.
`And in addition to this source code, you said you
`Q.
`also looked at some of the depositions and some of the
`documentations in the case?
`A.
`Yes. I looked at -- there were a few, like, for
`example, an internal ION presentation that -- and an
`internal ION document that explained some of the
`calculations and also the depositions of a couple of the
`key programmers.
`If we could turn to the next slide, let's start with
`Q.
`the DigiFIN itself first.
`Based on your investigation, how does the
`
`123456789
`
`10
`11
`12
`13
`14
`15
`16
`17
`18
`19
`20
`21
`22
`23
`24
`25
`
`Johnny C. Sanchez, RMR, CRR - jcscourtreporter@aol.com
`
`03:11:45
`
`03:12:04
`
`03:12:19
`
`03:12:31
`
`03:12:44
`
`PGS v. WESTERNGECO (IPR2014-00689)
`WESTERNGECO Exhibit 2055, pg. 10
`
`
`
`Direct-Leonard/By Mr. Gilman
`
`1507
`
`DigiFIN work?
`A.
`Okay. So this slide gives an overview of the
`components of the DigiFIN. So we -- so source code is a
`way to really look and see what's actually going on inside
`these devices. And so, I think in a complex system like
`this, it's really important to do this, and I feel a
`certain privilege that I had the chance to do this. And
`I -- the goal is -- the nice thing is the source code
`really tells the story, so there's no debate what -- the
`source code, if it has a formula, that's what it's doing.
`So let me back up a little bit. So what
`is a DigiFIN? You've seen it here in the courtroom. It
`has hardware and software. Hardware has sensors, sensors
`to measure temperature, depth, wing angle, pitch and roll.
`So pitch is this direction, so if the plane is taking off
`it pitches up. Roll is this angle, and the -- so those
`are the sensors.
`
`It also has a motor which controls the fin
`angle. And it has what we call a microcontroller. A
`microcontroller is a special type of microprocessor that's
`designed to interface with sensors and what we call
`actuators. So the motor is an example of an actuator.
`And so, it's just a -- it's a computer
`that runs in what we call an embedded system. The
`computer's sort of embedded inside the DigiFIN. And it
`
`123456789
`
`10
`11
`12
`13
`14
`15
`16
`17
`18
`19
`20
`21
`22
`23
`24
`25
`
`Johnny C. Sanchez, RMR, CRR - jcscourtreporter@aol.com
`
`03:12:59
`
`03:13:16
`
`03:13:35
`
`03:13:50
`
`03:14:07
`
`PGS v. WESTERNGECO (IPR2014-00689)
`WESTERNGECO Exhibit 2055, pg. 11
`
`
`
`Direct-Leonard/By Mr. Gilman
`
`1508
`
`handles this interaction with the sensors and the motor.
`There's an embedded little computer inside the
`Q.
`DigiFIN?
`A.
`Yes.
`Is that true for each of the DigiFINs that's in our
`Q.
`system?
`A.
`Yes.
`So if you have an array of a hundred DigiFINs, there
`Q.
`are a hundred little computers spread out?
`A.
`Yes, a hundred microcontrollers.
`THE COURT: Are those what we call local ones?
`THE WITNESS: Yes. That's a -- yes, I would
`interpret that as a local controller. But that's --
`BY MR. GILMAN:
`In terms of the -- some of the specific software
`Q.
`that's run on these local computers in each DigiFIN, if we
`could turn to the next slide?
`A.
`Right. Well, actually, can I just stay on this, and
`I forget to mention one thing in relation to the software.
`Please.
`Q.
`A.
`I mentioned the hardware, so the software is written
`in the C language, which is one I've used extensively in
`my career.
`
`It also has a bit of what's known as
`assembly language, which is kind of lower level form of
`
`123456789
`
`10
`11
`12
`13
`14
`15
`16
`17
`18
`19
`20
`21
`22
`23
`24
`25
`
`Johnny C. Sanchez, RMR, CRR - jcscourtreporter@aol.com
`
`03:14:20
`
`03:14:27
`
`03:14:39
`
`03:14:53
`
`03:15:04
`
`PGS v. WESTERNGECO (IPR2014-00689)
`WESTERNGECO Exhibit 2055, pg. 12
`
`
`
`Direct-Leonard/By Mr. Gilman
`
`1509
`
`computer software, that sort of handles talking to the
`motor and the sensors. And the software in terms of a
`quick summary of what it does, it receives the FIN
`commands and controls the motor to achieve those desired
`requested FIN angles.
`And it also checks for some out of bounds
`conditions, is it too shallow, does it roll too much,
`should it -- and there's something called the back off
`algorithm where it will back off FIN angle if the
`microprocessor program thinks that it's possibly
`interfering with the depth control.
`And with respect to that backup algorithm, I believe,
`Q.
`is that one of the specific features you looked at in some
`detail?
`A.
`Yes. So here on the next demonstrative here's some
`examples of those comment things I told you early in my
`hello world program, so the slash star, star slash. And
`these are throughout the code. And so, here's some
`examples of the actual code that runs on the DigiFIN.
`So these are the actual files that you got from ION's
`Q.
`computer?
`A.
`Yes, these are example pages from the many hundreds,
`thousands of pages. But in particular, these are examples
`from the smaller subset of files that relate to the
`DigiFIN.
`
`123456789
`
`10
`11
`12
`13
`14
`15
`16
`17
`18
`19
`20
`21
`22
`23
`24
`25
`
`Johnny C. Sanchez, RMR, CRR - jcscourtreporter@aol.com
`
`03:15:21
`
`03:15:36
`
`03:15:48
`
`03:16:09
`
`03:16:23
`
`PGS v. WESTERNGECO (IPR2014-00689)
`WESTERNGECO Exhibit 2055, pg. 13
`
`
`
`Direct-Leonard/By Mr. Gilman
`
`1510
`
`And from these particular files what did you find out
`Q.
`the backup algorithm works on the DigiFIN?
`A.
`So the way -- in general if you -- the DigiFINs as
`it's performing the lateral control, it's turning the wing
`angle to generate a sideways force. And based on it will
`say you either need to move to the left, you need to move
`to the right.
`
`But if for some reason the DigiFIN rolls,
`then the force component that it's generating is not just
`going to be horizontal, but it's going to have some
`vertical aspects as well.
`So the basic sort of baseline back off
`algorithm will seek to bring the FIN back to a natural
`position, so that it doesn't interfere with the depth
`control. So that's the back off algorithm.
`But then on top of that there's something
`called the depth aware back off algorithm, where using the
`target depth that's transmitted to the DigiFIN, it has
`some sort of logic, it makes decisions. It says, well, if
`I'm -- if I'm rolled and the forced component I'm
`generating has some vertical component to it, but that's
`actually helping me keep the right depth, then I'm not
`going to back off. I'm just going to -- I'm just going to
`stay with the current command.
`And this code is being run in the little computer
`Q.
`
`123456789
`
`10
`11
`12
`13
`14
`15
`16
`17
`18
`19
`20
`21
`22
`23
`24
`25
`
`Johnny C. Sanchez, RMR, CRR - jcscourtreporter@aol.com
`
`03:16:39
`
`03:16:54
`
`03:17:10
`
`03:17:29
`
`03:17:44
`
`PGS v. WESTERNGECO (IPR2014-00689)
`WESTERNGECO Exhibit 2055, pg. 14
`
`
`
`Direct-Leonard/By Mr. Gilman
`
`1511
`
`that's on each DigiFIN?
`A.
`Yes.
`And so, throughout the entire array all these little
`Q.
`computers are working at the same time, doing their own
`little thing that's coordinated?
`A.
`Yes, they're sent commands from the lateral
`controller. And we'll get to that a little bit later in
`terms of the flow of information to the DigiFINs.
`So if we turn to your next slide and that was the
`Q.
`just the DigiFIN code, the next part of the code that you
`looked at was the ORCA code?
`A.
`Yes. So shown here in the yellow outline box is the
`ORCA system. Now, ORCA runs on a work station on the
`ship. It runs in an operating system known as Lenox,
`perhaps some may not have heard of Lenox, but it's just an
`alternative to Windows or the McIntosh operating system.
`It's a free version of the Unix operating system. So
`that's the operating system for the ORCA computer, and
`next we'll talk a bit about its ORCA.
`What computer language was the ORCA's software
`Q.
`written in?
`THE COURT: Let me caution you. Try to slow
`down just a little bit.
`THE WITNESS: ORCA is written in a C
`programming language.
`
`123456789
`
`10
`11
`12
`13
`14
`15
`16
`17
`18
`19
`20
`21
`22
`23
`24
`25
`
`Johnny C. Sanchez, RMR, CRR - jcscourtreporter@aol.com
`
`03:18:03
`
`03:18:15
`
`03:18:34
`
`03:18:49
`
`03:18:59
`
`PGS v. WESTERNGECO (IPR2014-00689)
`WESTERNGECO Exhibit 2055, pg. 15
`
`
`
`Direct-Leonard/By Mr. Gilman
`
`1512
`
`BY MR. GILMAN:
`If you turn to the next slide, one of the things
`Q.
`we've heard about a few times so far is a Kalman filter.
`Before we get into the coded, specifically could you just
`say in general what a Kalman filter is?
`A.
`Sure. Let me backtrack a little bit in that sense.
`ORCA is a big complex program with many components, but as
`I mentioned I was asked to investigate the interaction
`with the lateral controller, so that -- the documentation
`indicated for us to focus on something called the NCN, the
`network control node. And the NCN implements the Kalman
`filter.
`
`So that's what I've chosen to go into some
`detail here about the Kalman filter because it's important
`to its operation with respect to the lateral control.
`What in general is a Kalman filter? How do they
`Q.
`work?
`A.
`So a Kalman filter is an algorithm that produces
`estimates for a system that changes over time, a system
`that moves, by combining measurements from your sensors
`with predictions from a dynamic novel. And so, it has
`these two key aspects of prediction and then updating.
`In the actual ORCA software they use the
`word adjustment, prediction and adjustment. It's the same
`prediction and updating. And these happen repeatedly over
`
`123456789
`
`10
`11
`12
`13
`14
`15
`16
`17
`18
`19
`20
`21
`22
`23
`24
`25
`
`Johnny C. Sanchez, RMR, CRR - jcscourtreporter@aol.com
`
`03:19:12
`
`03:19:29
`
`03:19:44
`
`03:19:59
`
`03:20:18
`
`PGS v. WESTERNGECO (IPR2014-00689)
`WESTERNGECO Exhibit 2055, pg. 16
`
`
`
`Direct-Leonard/By Mr. Gilman
`
`1513
`
`times. Each time new measurements, so there's a
`prediction cycle and an update prediction and update.
`Are all Kalman filters the same?
`Q.
`A.
`No, there's a basic Kalman filter algorithm that was
`published in 1960. And Kalman filters are used in a wide
`variety of systems. And for particular systems, one has
`to sort of choose the right way to implement it, which
`is -- varies greatly system by system.
`So let's look at the specific Kalman filter that's
`Q.
`used in ORCA and maybe we can move along and go to slide
`number 9.
`A.
`Yes. So what I'm first going to do is focus on that
`prediction step in ORCA. Okay? And I've attempted to
`create a simple example to just try to explain the essence
`of what's going on here. But what we can do in a slide or
`two is then couple that simple example to exactly what's
`happening in the ORCA software.
`So here, we have -- so the -- as I
`mentioned we have this cyclic process that repeats,
`prediction and update, prediction and update. And so, at
`the beginning of each cycle we have a prior position. We
`have a previously estimated position for -- you'll hear
`the term node. So like the DigiFINs are one example of
`nodes, different elements along the array. So each almost
`is a node.
`
`123456789
`
`10
`11
`12
`13
`14
`15
`16
`17
`18
`19
`20
`21
`22
`23
`24
`25
`
`Johnny C. Sanchez, RMR, CRR - jcscourtreporter@aol.com
`
`03:20:35
`
`03:20:51
`
`03:21:10
`
`03:21:25
`
`03:21:43
`
`PGS v. WESTERNGECO (IPR2014-00689)
`WESTERNGECO Exhibit 2055, pg. 17
`
`
`
`Direct-Leonard/By Mr. Gilman
`
`1514
`
`And so, we have a prior position from our
`last cycle and the prediction step in ORCA takes that
`prior position and it adds on to it the elapsed time
`multiplied by the speed. And that gives you your
`predicted position.
`And where specifically in the source code is this
`Q.
`calculation done?
`A.
`If we go to the next slide. So here is an excerpt.
`So four lines out of that 3.8 million lines of code, and
`it has -- actually five lines we have a comment. So it's
`a state. So the word state just refers to the things
`you're estimating. So state in this case is the position
`and the velocity of the nodes. And we're concerned here
`with the horizontal plane. So we have -- we have position
`in the north, south direction, and position in the east,
`west direction, and then we have their velocity. So
`velocity in the north, south direction, velocity in the
`west, east direction.
`And those north, south and east, west directions, how
`Q.
`are they expressed in the source code?
`A.
`Sure. That's latitude and longitude. And so let me
`come back to that in a second. So I think because we have
`a demonstrative. But I'll just explain if we move one
`forward now.
`
`So what I'm showing here is taking some
`
`123456789
`
`10
`11
`12
`13
`14
`15
`16
`17
`18
`19
`20
`21
`22
`23
`24
`25
`
`Johnny C. Sanchez, RMR, CRR - jcscourtreporter@aol.com
`
`03:22:01
`
`03:22:20
`
`03:22:38
`
`03:22:52
`
`03:23:07
`
`PGS v. WESTERNGECO (IPR2014-00689)
`WESTERNGECO Exhibit 2055, pg. 18
`
`
`
`Direct-Leonard/By Mr. Gilman
`
`1515
`
`variables in the code, which is a little hard to interpret
`I'm sure. But just to try to really connect it right back
`to the actual source code, here are some variables we have
`S dot lack, plus DT and star means times, multiply in a
`computer, S dot lat dot, L-A-T-D-O-T. And so there
`there's three variables. And the S dot lat dot is your
`prior position. Your -- S dot lat is your prior position,
`DT is your change in time, and lat -- S dot lat dot is
`your speed.
`
`And that's how -- the prior positions are
`profligate forward in time from the previous time step up
`to the current time step.
`And if we go to the next slide here I just
`a little reminder for those that might not have seen it,
`you know, so that the names you just saw LAT and LON, lat
`and LON, are -- come from latitude and longitude. And so,
`latitude is -- represents your north, south position on
`the globe and longitude -- lines of longitude, your east,
`west.
`
`So here's an example. I'm hoping to catch
`a plane tonight to Boston. And we're here in Houston and
`you can see the latitude and longitudes for Boston and
`Houston just as some examples.
`So if we go back to the previous slide, this box with
`Q.
`the top, this is from the actual source code that you got
`
`123456789
`
`10
`11
`12
`13
`14
`15
`16
`17
`18
`19
`20
`21
`22
`23
`24
`25
`
`Johnny C. Sanchez, RMR, CRR - jcscourtreporter@aol.com
`
`03:23:33
`
`03:23:56
`
`03:24:11
`
`03:24:27
`
`03:24:43
`
`PGS v. WESTERNGECO (IPR2014-00689)
`WESTERNGECO Exhibit 2055, pg. 19
`
`
`
`Direct-Leonard/By Mr. Gilman
`
`1516
`
`from ION's computer?
`A.
`Yes.
`Where was this source code running?
`Q.
`A.
`This runs in ORCA.
`And going forward past the latitude and longitude,
`Q.
`how does the overall -- if you go to the next slide -- how
`does the overall Kalman filter then use these predicted
`positions?
`A.
`So what I attempted to do here was to just -- I have
`sort of an illustrative example. So a simple example of
`how the Kalman filter works. So we've color coded it so
`the yellow is the prediction we just talked about. And
`we're also going to get a measurement in blue, and then
`from that we're going to compute an update, which we're
`going to show in green.
`Now, I'm sure you're familiar if you're
`driving down the highway and you're at a certain position,
`say you're driving at 60 miles an hour, and let's say
`30 minutes later, you know, you might -- what would be
`your predicted position if you -- so if you just take --
`just take speed times direction and add that to your
`position, you get your new position.
`And so, here I just chose an example to
`where we let's say we're moving at 5 feet per second and
`you've heard about this 10 second cycle between the shots
`
`123456789
`
`10
`11
`12
`13
`14
`15
`16
`17
`18
`19
`20
`21
`22
`23
`24
`25
`
`Johnny C. Sanchez, RMR, CRR - jcscourtreporter@aol.com
`
`03:24:54
`
`03:25:07
`
`03:25:26
`
`03:25:40
`
`03:25:57
`
`PGS v. WESTERNGECO (IPR2014-00689)
`WESTERNGECO Exhibit 2055, pg. 20
`
`
`
`Direct-Leonard/By Mr. Gilman
`
`1517
`
`and the streamer arrays. So if we had a previous position
`and then we were a previous velocity, and we take 5 feet
`per second, times 10 seconds is 50 feet, that's our
`prediction for this little example. And that's the yellow
`arrow.
`So here where you're showing the Kalman filter and
`Q.
`ORCA, you're also showing a measured position?
`A.
`Yes. So the second half of the cycle, the updating
`step takes information from actual measurements.
`Why can't you just rely on the measurements as to
`Q.
`where things actually are in the system?
`A.
`Okay. Well, you might be able to produce a system
`that tried to only use the current measurements, but this
`Kalman filter based system that incorporates the
`predictions, is superior in a couple of ways, and greatly
`superior in my expert opinion.
`And I'll give some illustrations of how
`that might work. So first, let me just show that -- let's
`suppose we have a measurement. I think -- why don't we go
`to the next demonstrative and come back to this.
`What type of measurements are going into the position
`Q.
`determination in ORCA?
`A.
`Okay. So ORCA takes multiple types of measurements
`for example, compass data, acoustic ranging data, some GPS
`based measurements.
`
`123456789
`
`10
`11
`12
`13
`14
`15
`16
`17
`18
`19
`20
`21
`22
`23
`24
`25
`
`Johnny C. Sanchez, RMR, CRR - jcscourtreporter@aol.com
`
`03:26:16
`
`03:26:31
`
`03:26:47
`
`03:27:00
`
`03:27:14
`
`PGS v. WESTERNGECO (IPR2014-00689)
`WESTERNGECO Exhibit 2055, pg. 21
`
`
`
`Direct-Leonard/By Mr. Gilman
`
`1518
`
`I thought I would just review the basic
`principal of acoustic ranging because it's just so
`important for this type of system. So here's an example
`of a bat. And a bat uses sonar to navigate. That's
`acoustic ranging. And let's say that a bat sends out a
`sound pulse, and it bounces off say the wall and comes
`back to the back. And this is a little more than 5 feet,
`but let's say we're 5 feet away.
`So in air sound travels at about one foot,
`it goes one foot distance every one thousandth of a
`second. So one foot per millisecond. And if the bat
`knows the time that elapses between, it sends out a sound
`and when it receives the echo, say it's 10 milliseconds,
`the bat can say oh, the sound traveled 10 feet and it went
`both ways. I can divide that by two and get 5 feet away
`to the wall.
`
`So that principle of acoustic ranging is
`happening with the streamer arrays with sound going
`between different devices along the -- in the system. And
`typically those are one way travel times. So just sound
`going from one node to another.
`How accurate are these acoustic ranges when used
`Q.
`under water?
`A.
`Okay. So with any measurement there's some
`uncertainty no measurement is perfect. And the -- for
`
`123456789
`
`10
`11
`12
`13
`14
`15
`16
`17
`18
`19
`20
`21
`22
`23
`24
`25
`
`Johnny C. Sanchez, RMR, CRR - jcscourtreporter@aol.com
`
`03:27:30
`
`03:27:47
`
`03:28:06
`
`03:28:19
`
`03:28:33
`
`PGS v. WESTERNGECO (IPR2014-00689)
`WESTERNGECO Exhibit 2055, pg. 22
`
`
`
`Direct-Leonard/By Mr. Gilman
`
`1519
`
`example, one source of error might be -- you might not
`know the sound velocity perfectly well. And so, some
`measurements are sort of almost right, but a bit off.
`And -- but sometimes you get measurements
`that are really off. They're just crazy measurements.
`They're serious. And this happens a lot in undersea
`acoustics due to sounds actually propagates in a very
`complex way under water. And you get multiple echos that
`can cancel each other out.
`So it's actually quite common to get what
`are called dropouts. And so it would be as if the bat,
`instead of measuring 5 feet, measured 50 feet.
`Let's talk about those two scenarios. Going back one
`Q.
`slide first --
`A.
`Yes.
`-- what happens if you're -- you might just be a
`Q.
`little bit off between what you're predicting and what
`you're measuring?
`A.
`So if you're a little bit off, there's uncertainty in
`your measurement and there's uncertainty in your
`prediction from your dynamic model. And you know both of
`them -- they both have some merit, but you're not sure
`exactly how to weight those together.
`And the thing that Kalman came up is an
`optimal way under certain assumptions to actually weight
`
`123456789
`
`10
`11
`12
`13
`14
`15
`16
`17
`18
`19
`20
`21
`22
`23
`24
`25
`
`Johnny C. Sanchez, RMR, CRR - jcscourtreporter@aol.com
`
`03:28:48
`
`03:29:05
`
`03:29:17
`
`03:29:26
`
`03:29:40
`
`PGS v. WESTERNGECO (IPR2014-00689)
`WESTERNGECO Exhibit 2055, pg. 23
`
`
`
`Direct-Leonard/By Mr. Gilman
`
`1520
`
`those together, a way to get a good answer.
`So for new example here I assumed -- let's
`say our measurement was 55 feet, and our prediction was
`50 feet, and the Kalman filter might choose a best
`estimate of position of 53 feet. It's not necessarily
`just the mean. It has some weighting depending on which
`is more or less accurate. So this is an example of a full
`predict update cycle for a good measurement. And I was
`asked earlier about why is this predictive approach
`better.
`
`So one way in which it's better is that
`you're combining two pieces in information, instead of
`just relying on one. You're getting a better answer.
`And then if we go ahead two slides, what happens if
`Q.
`there's a big difference between what you're predicting
`and what you measure?
`A.
`Right. So let's assume that due to some crazy
`reflections we had a measurement of 500 feet and not
`50 feet.
`
`Now if, you know, for these systems we
`know the velocity the boat is moving. We have a general
`trust in our velocity and it's highly