`
`UNITED STATES DISTRICT COURT
`SOUTHERN DISTRICT OF TEXAS
`HOUSTON DIVISION
`
`WESTERNGECO LLC
`
`VS.
`
`ION GEOPHYSICAL
`CORPORATION, FUGRO
`GEOTEAM,
`INC., ET AL
`
`09—CV—1827
`
`Houston, Texas
`
`7:39 a.m.
`
`July 27, 2012
`
`JURY TRIAL
`
`Volume 5
`
`BEFORE THE HONORABLE KEITH P. ELLISON
`UNITED STATES DISTRICT JUDGE
`
`APPEARANCES:
`
`FOR THE PLAINTIFF:
`
`Lee L. Kaplan
`SMHSER, 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.CHJman
`KIRKLAND &EL‘.I'..IS]'_.I.P
`Citigroup Center
`153 East 53rd Street
`
`New York, New York 10022
`212.446.6435
`
`TRNEQGPYIGNENFY _
`SW39?“
`
`flwfifigfima
`
`Johnny C. Sanchez, RMR, CRR — jcscourtrepOrter@aol.com
`
`WESTERNGECO Exhibit 2108, pg. 1
`PGS v. WESTERNGECO
`IPR2014-00687
`
`
`
`Redirect—Triar1 Lafyllou/By Mr. LoCascio
`
`Claims that pertain to your testimony?
`
`A.
`
`Yes, I think it does.
`
`MR. LOCASCIO: No further questions, Your
`
`THE COURT: Okay. Anything further?
`
`M. 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.
`
`M. LOCASCIO: Sure.
`
`THE COURT: Yes, sir.
`
`If you'd make your way
`
`M. 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
`
`Johnny C. Sanchez, RMR, CRR ~ 7'cscourtreporter@aol.com
`
`10
`
`11
`
`12
`
`13
`
`14
`
`15
`
`16
`
`17
`
`18
`
`19
`
`2O
`
`21
`
`22
`
`23
`
`24
`
`25
`
`WESTERNGECO Exhibit 2108, pg. 2
`PGS v. WESTERNGECO
`IPR2014-00687
`
`
`
`nothing but the truth?
`
`THE WITNESS:
`
`I do.
`
`THE COURT: Have you been in the courtroom for
`
`03:03:40
`
`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.
`
`M. GILMAN:
`
`For its next witness, WesternGeco
`
`03:03:49
`
`10
`
`ll
`
`l2 calls Dr. John Leonard, who is a professor at MIT.
`
`13 Dr. Leonard is a specialist in navigation and robotics,
`
`14 with an emphasis on underwater vehicles. We heard a little
`
`03:04:06
`
`l5 bit with the last two witnesses how some of the defendant's
`
`l6 products work.
`
`17
`
`Dr. Leonard is here to talk about the
`
`18 source code that's used,
`
`the computer programs that are
`
`19 used inside of that —— those product and what information
`
`20 is being passed back and forth in those products.
`
`21
`
`22
`
`Permission to approach the witness.
`
`THE COURT: Yes. You don't need to ask
`
`23 permission.
`
`24
`
`25
`
`Johnny C. Sanchez, RMR, CRR — jcscourtreporter@aol.com
`
`WESTERNGECO Exhibit 2108, pg. 3
`PGS v. WESTERNGECO
`IPR2014-00687
`
`
`
`DirecL—Leonard/By Mr. Gilman
`
`JOHN LEONARD,
`
`CDKOCD‘JChLN¢>L0B)F4
`
`F4
`
`after having been first cautioned and duly sworn, testified
`
`as follows:
`
`BY MR. G:LMAN:
`
`DIRECT EXAMINATION
`
`Q.
`
`A.
`
`Q.
`
`A.
`
`Q.
`
`Good afternoon, Dr. Leonard.
`
`Good afternoon.
`
`Would you please introduce yourself to the jury.
`
`My name's John Leonard, and I'm a professor at MIT.
`
`What do you do at MIT?
`
`F4 F4
`
`A.
`
`I perform research in robotics, and I teach
`
`F4 PO
`
`F4 LU
`
`mechanical engineering.
`
`Q. What kind of education do you have to get to where
`
`you are today?
`
`A.
`
`Undergraduate degree is in electrical engineering
`
`from the University o: Pennsylvania, and my Ph.D. is from
`
`the University of Oxford.
`
`Q. What did you study in both of those schools?
`
`A.
`
`So electrical engineering as an undergrad, and then I
`
`focused in robotics, and my Ph.D. is in engineering
`
`science from Oxford.
`
`Q. What was the topic of your thesis for your Ph.D.
`
`studies?
`
`A.
`
`I worked on the problem of how a robot can build a
`
`map and concurrently use that map to navigate. And so,
`
`Johnny C. Sanchez, RMR, CRR — jcscourtreporter@aol.com
`
`WESTERNGECO Exhibit 2108, pg. 4
`PGS v. WESTERNGECO
`IPR2014-00687
`
`
`
`Dircct—Leona rd/By Mr. Gilman
`
`that involved a lot of advanced work in source code and
`
`Kalman filtering and a lot of the algorithms related to
`
`that.
`
`Q.
`
`So if we could take a look at your —— some of the
`
`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?
`
`I 2 3 4 5
`
`6 7 8
`
`9 A”
`
`Yeah. This is a slide 2 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?~
`
`0m0&48
`
`THE WITNESS:
`
`I'm a full professor.
`
`Johnny C. Sanchez, RMR, CRR - jcscourtreporter@ao1.com
`
`WESTERNGECO Exhibit 2108, pg. 5
`PGS v. WESTERNGECO
`IPR2014-00687
`
`
`
`Dl'rect~LeonarcZ/By Mr. Gilman
`
`THE COURT: Full professor. Thank you.
`
`THE WITNESS:
`
`I teach measurement,
`
`instrumentation, robotics, design, historically
`
`programing, even some -— lots of topics.
`
`THE COURT: Okay.
`
`Thank you.
`
`THE WITNESS: Sure.
`
`BY MR. GILMAN:
`
`Q.
`
`A.
`
`How long have you been a full professor at MIT?
`
`Let's see.
`
`I was promoted to full professor in --
`
`10
`
`sorry -— '96, assistant. Let's see. Yeah, about, 2005 I
`
`ll
`
`became -— let's see, yeah.
`
`2005,
`
`I think. Yeah.
`
`12 Q.
`
`And how long overall have you been investigating
`
`13
`
`these type of research problems,
`
`these type of engineering
`
`14 problems?
`
`15 A.
`
`Pretty much since I object started my Ph.D.
`
`in l997.
`
`L6 So 25 years.
`
`I think I became a full professor in 2006.
`
`L7
`
`M. GILMAN:
`
`If we could go to the second
`
`L8 slide.
`
`19 BY M. GILMAN:
`
`20 Q.
`
`Now,
`
`I understand that you're here to discuss source
`
`21
`
`code.
`
`22
`
`Could you explain what source code is?
`
`23 .A.
`
`Yeah.
`
`Source code is the instructions inside a
`
`24
`
`computer to implement a piece of software, and it's
`
`25 written in what we call a human readable computer language
`
`Johnny C. Sanchez, RMR, CRR — jcscourtreporter@aol.com
`
`WESTERNGECO Exhibit 2108, pg. 6
`PGS v. WESTERNGECO
`IPR2014-00687
`
`
`
`Direct —Leonard/By Mr. Gilman
`
`you'll hear C, C Plus Plus, other languages,
`
`JAVA, PASCAL.
`
`And another thing that source code has its coments, which
`
`are sort of text written, not for the computer to
`
`interpret, but for one programer to sort of specify or to
`
`communicate to another.
`
`And so,
`
`in examining a piece o: source
`
`code,
`
`like the complex software systems in this case,
`
`the
`
`comments actually give a Lot of information.
`
`Q.
`
`A.
`
`And is this an example at the bottom of this slide?
`
`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 coments 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.
`
`Q.
`
`Why would a programmer put in these things that you
`
`call comments into their computer code?
`
`A.
`
`So comments are really important in software
`
`Johnny C. Sanchez, RMR, CRR — jcscourtrepartcr@aol.com
`
`WESTERNGECO Exhibit 2108, pg. 7
`PGS v. WESTERNGECO
`IPR2014-00687
`
`
`
`Di'reCt—Leonard/By Mr. Gilman
`
`development.
`
`They sort of specify how code works, and
`
`sometimes it's important to write comments, not just for
`
`other programers 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.
`
`Q.
`
`If we could go to your next slide. Can you describe
`
`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 DigiFZN software, which runs on the actual
`
`DigiFINs, one of which is over there across the room.
`
`Q.
`
`As part of the research that you do, do you use
`
`source code yourself?
`
`A.
`
`Yes.
`
`Q. What times of source code do you work in?
`
`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.
`
`Johnny C. Sanchez, RMR, CRR — jcscourtreporter@aol.com
`
`WESTERNGECO Exhibit 2108, pg. 8
`PGS v. WESTERNGECO
`IPR2014-00687
`
`
`
`Direct—Leona rd/By Mr. Gi lman
`
`Q. What did you do to analyze the source code that's at
`
`issue in this case?
`
`A.
`
`So we looked at the code on two computers provided by
`
`Q.
`
`And how long did you spend looking at the code on the
`
`computers?
`
`A.
`
`.C
`So because of the sensitive nature o-
`
`the material,
`,.,_.
`
`we could only look at the code at a law o:'"ce 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.
`
`Q.
`
`How did you choose what pages to produce and to
`
`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.
`
`Q.
`
`And what did you do with the source code after you
`
`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
`
`Johnny C. Sanchez, RMR, CRR — jcscourtreporter@aol.com
`
`WESTERNGECO Exhibit 2108, pg. 9
`PGS v. WESTERNGECO
`IPR2014-00687
`
`
`
`Direct —T,eonard/By Mr. Gi lman
`
`l
`
`on the flow of information between the different modules.
`
`2 Q.
`
`So just walking through these three parts with
`
`3
`
`4
`
`respect to the DigiFIN, how much of the source code did
`
`you end up bringing back with you?
`
`5 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.
`
`Q.
`
`And in addition to this source code, you said you
`
`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.
`
`Q.
`
`If we could turn to the next slide, let's start with
`
`DigiFIN itself first.
`
`Based on your investigation, how does the
`
`Johnny C. Sanchez, RMR, CRR ~ jcscoz1rtreporter@aol.com
`
`WESTERNGECO Exhibit 2108, pg. 10
`PGS v. WESTERNGECO
`IPR2014-00687
`
`
`
`Direct—Leor2ard/By Mr. Gilman
`
`1
`
`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 DigiF:N. And it
`
`Johnny C. Sanchez, RMR, CRR — jcscourtreporterc-5aol.com
`
`WESTERNGECO Exhibit 2108, pg. 11
`PGS v. WESTERNGECO
`IPR2014-00687
`
`
`
`D1’ rect — Leonard/By Mr. Gilman
`
`handles this interaction with the sensors and the motor.
`
`Q.
`
`There's an embedded little computer inside the
`
`DigiFIN?
`
`A.
`
`Yes.
`
`Q.
`
`Is that true for each of the DigiFINs that's in our
`
`system?
`
`A.
`
`Yes.
`
`Q.
`
`So if you have an array of a hundred DigiFINs,
`
`there
`
`$3C0~JCfiLN¢>to$0F4
`
`are a hundred little computers spread out?
`
`10
`
`A.
`
`Yes, a hundred microcontrollers.
`
`11
`
`12
`
`13
`
`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 --
`
`14
`
`BY MR. GILMAN:
`
`15
`
`16
`
`17
`
`18
`
`19
`
`20
`
`21
`
`22
`
`23
`
`24
`
`25
`
`Q.
`
`In terms of the ~— some of the specific software
`
`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.
`
`Q.
`
`Please.
`
`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
`
`Johnny C. Sanchez, RMR, CRR — jcscourtreporter@aol.com
`
`WESTERNGECO Exhibit 2108, pg. 12
`PGS v. WESTERNGECO
`IPR2014-00687
`
`
`
`Direct—Leonard/By Mr. Gilman
`
`computer software,
`
`that sort of handles talking to the
`
`motor and the sensors. And the software in terms 0: a
`
`quick summary of what it does, it receives the FIN
`
`comands 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 of: FIN angle if the
`
`microprocessor program thinks that it's possibly
`
`interfering with the depth control.
`
`Q.
`
`And with respect to that backup algorithm,
`
`I believe,
`
`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.
`
`Q.
`
`So these are the actual files that you got from ION's
`
`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
`
`Digi FIN .
`
`Johnny C. Sanchez, RMR, CRR — j(:scourtreporter@aol.com
`
`WESTERNGECO Exhibit 2108, pg. 13
`PGS v. WESTERNGECO
`IPR2014-00687
`
`
`
`Direct~Leonard/By Mr. Gilman
`
`Q.
`
`And from these particular files what did you find out
`
`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.
`C _
`
`It says, well, if
`
`I'm ~— 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 :'m not
`
`going to back off.
`
`I'm just going to -- I'm just going to
`
`stay with the current command.
`
`Q.
`
`And this code is being run in the little computer
`
`Johnny C. Sanchez, RMR, CRR — jcscourtreporte-r@aol.com
`
`WESTERNGECO Exhibit 2108, pg. 14
`PGS v. WESTERNGECO
`IPR2014-00687
`
`
`
`Direct ~Leonard/By Mr. Gilman
`
`that's on each DigiFIN?
`
`A.
`
`Yes.
`
`Q.
`
`And so,
`
`throughout the entire array all these little
`
`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.
`
`Q.
`
`So if we turn to your next slide and that was the
`
`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.
`
`Q. What computer language was the ORCA's software
`
`written in?
`
`THE COURT: Let me caution you. Try to slow
`
`6
`
`8 9
`
`10
`
`ll
`
`12
`
`13
`
`14
`
`15
`
`16
`
`17
`
`18
`
`19
`
`20
`
`21
`
`22
`
`23 down just a little bit.
`
`24
`
`THE WITNESS:
`
`ORCA is written in a C
`
`25 programming language.
`
`Johnny C. Sanchez, RMR, CRR ~ jcscourtreportcr@ao1.com
`
`WESTERNGECO Exhibit 2108, pg. 15
`PGS v. WESTERNGECO
`IPR2014-00687
`
`
`
`Direct—Leonard/By Mr. Gilman
`
`1 BY MR. GILMAN:
`
`Q.
`
`If you turn to the next slide, one of the things
`
`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
`
`, 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
`
`2 U
`
`0 4 5 6 7 8 9 0
`
`ll
`
`network control node. And the NCN implements the Kalman
`
`2
`
`filter.
`
`L3
`
`:\ ¢>
`
`]\ U‘!
`
`|—‘ OW
`
`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.
`
`Q.
`
`What in general is a Kalman
`
`filter?
`
`How do they
`
`}—~‘ \1
`
`work?
`
`I-4 (D
`
`I——‘ KO
`
`l\) G
`
`K) I-‘
`
`I\J l\)
`
`I\) U)
`
`[\) »I>-
`
`[\3 O‘!
`
`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
`
`Johnny C. Sanchez, RMR, CRR — jcscourtroportcr@ao1.com
`
`WESTERNGECO Exhibit 2108, pg. 16
`PGS v. WESTERNGECO
`IPR2014-00687
`
`
`
`Diroct—Leonard/By Mr. Gi lman
`
`l
`
`times.
`
`Each time new measurements,
`
`so there's a
`
`prediction cycle and an update prediction and update.
`
`Q.
`
`Are all Kalman filters the same?
`
`o'I.J>oaN»—4otooo<o\o—I
`
`
`
`I\I‘.:‘:‘+—\
`
`,‘ OW
`
`A.
`
`No, there's a basic Kalman filter algorithm that was
`
`published in l960. 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.
`
`Q.
`
`So let's look at the specific Kalman
`
`filter that's
`
`used in ORCA and maybe we can move along and go to slide
`
`number 9.
`
`A.
`
`Yes.
`
`So what “'m.‘irst 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 estima:ed 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.
`
`Johnny C. Sanchez, RMR, CRR — jcscourtreporter@aol.com
`
`WESTERNGECO Exhibit 2108, pg. 17
`PGS v. WESTERNGECO
`IPR2014-00687
`
`
`
`d)\lO\U'1aJ>bOl\)}—‘
`
`Direct —Leonard/By Mr. Gilman
`
`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.
`
`Q.
`
`And where specifically in the source code is this
`
`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 coment.
`
`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.
`
`Q.
`
`And those north, south and east, west directions, how
`
`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
`
`Johnny C. Sanchez, RMR, CRR — jcscourLreportez'@aol.com
`
`WESTERNGECO Exhibit 2108, pg. 18
`PGS v. WESTERNGECO
`IPR2014-00687
`
`
`
`Direct—Leonard/By Mr. Gilman
`
`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 3? and star means times, multiply in a
`
`computer, S dot lat dot, L—ArT—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.
`
`Q.
`
`So if we go back to the previous slide, this box with
`
`the top, this is from the actual source code that you got
`
`Johnny C. Sanchez, RMR, CRR — jcscourtreporte-r@aol.com
`
`WESTERNGECO Exhibit 2108, pg. 19
`PGS v. WESTERNGECO
`IPR2014-00687
`
`
`
`Di'rect—Leonard/By Mr . Gi lman
`
`from ION's computer?
`
`A.
`
`Yes.
`
`Q. Where was this source code running?
`
`A.
`
`This runs in ORCA.
`
`Q.
`
`And going forward past the latitude and longitude,
`
`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
`
`Johnny C, Sanchez, RMR, CRR — jcscourtreporter@aol.com
`
`WESTERNGECO Exhibit 2108, pg. 20
`PGS v. WESTERNGECO
`IPR2014-00687
`
`
`
`DireCt~Leonard/By Mr . Gilman
`
`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.
`
`Q.
`
`So here where you're showing the Kalman filter and
`
`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.
`
`Q.
`
`Why can't you just rely on the measurements as to
`
`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.
`
`Q. What type of measurements are going into the position
`
`determination in ORCA?
`
`A.
`
`Okay.
`
`So ORCA takes multiple types of measurements
`
`for example, compass data, acoustic ranging data,
`
`some GPS
`
`based measurements.
`
`Johnny C. Sanchez, RMR, CRR — jcscourtreporter'@aol.com
`
`WESTERNGECO Exhibit 2108, pg. 21
`PGS v. WESTERNGECO
`IPR2014-00687
`
`
`
`Directnieonard/By Mr. Gilman
`
`I thought I would just review the basic
`
`principal o: 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.
`
`Q.
`
`How accurate are these acoustic ranges when used
`
`under water?
`
`A.
`
`Okay.
`
`So with any measurement there's some
`
`uncertainty no measurement is perfect. And the —— for
`
`Johnny C. Sanchez, RMR, CRR — jcscourtreporter@aol.com
`
`WESTERNGECO Exhibit 2108, pg. 22
`PGS v. WESTERNGECO
`IPR2014-00687
`
`
`
`Direct —Leonard/By Mr. Gi lman
`
`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.
`
`Q.
`
`Let's talk about those two scenarios. Going back one
`
`1 2 3 4 5 6 7 8 9
`
`1O
`
`11
`
`12
`
`13
`
`14
`
`slide first --
`
`15
`
`A.
`
`Yes.
`
`16
`
`17
`
`18
`
`19
`
`20
`
`21
`
`22
`
`23
`
`24
`
`25
`
`Q.
`
`~— what happens if you're ~~ you might just be a
`
`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
`
`Johnny C. Sanchez, RMR, CRK — jcscourtreporter@aol.r:om
`
`WESTERNGECO Exhibit 2108, pg. 23
`PGS v. WESTERNGECO
`IPR2014-00687
`
`
`
`Di rect—Leonard/By Mr. Gilman
`
`®kOOO<OW(J‘|sl>-C;Jl\)}-‘
`
`i—'
`
`I~—‘ F-‘
`
`F4 l\)
`
`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.
`
`Q.
`
`And then if we go ahead two slides, what happens if
`
`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 unlikely that the
`
`device just suddenly jumped 500 feet or 450 ahead of where
`
`we predicted it would be..
`
`So what the Kalman filter let's you do is
`
`Johnny C. Sanchez, RMR, CRR
`
`jcscourtreporter@aol.com
`
`WESTERNGECO Exhibit 2108, pg. 24
`PGS v. WESTERNGECO
`IPR2014-00687
`
`
`
`Di rect nbeona rd/By Mr. Gi lma [1
`
`sJ>U)[\>}—-‘
`
`R.)I—*CDkOOO\lO\(J‘|
`
`:=+‘
`
`I
`I\
`
`L»
`
`F4 +15-
`
`|—‘ U1
`
`l—‘ O‘\
`
`F--‘ \I
`
`I-4 00
`
`F4 ®
`
`K) G
`
`l\.) I-‘
`
`l\) I\)
`
`I\) D.)
`
`l\) »b
`
`l\J U‘|
`
`use your uncertainty in your prediction, your confidence
`
`level to reject outliers.
`
`In the ORCA code that is called
`
`KO or kick out. You kick out the bad measurements. Okay?
`
`And so, for this substance here if we got a 500—foot
`
`measurement and next what we would do is we would reject
`
`it. We would say I don't believe that measurement and
`
`then your best estimate of position would simply be the
`
`predicted position.
`
`So here is showing the green best estimate
`
`is just using the position prediction.
`
`So this is the
`
`second key way in which the predictive update enter
`
`leaving steps