`
`UNITED STATES DISTRICT COURT
`SOUTHERN DISTRICT OF TEXAS
`HOUSTON DIVISION
`
`WESTERNGECO LLC
`
`VS.
`
`ION GEOPHYSICAL
`
`CORPORATION, FUGRO
`GEOTEAM,
`INC., ET AL
`
`*X—*X~*X-*
`
`O9—CV—l827
`
`Houston, Texas
`
`7539 a.m.
`
`July 27, 2012
`
`JURY TRIAL
`
`Volume 5
`
`BEFORE THE HONORABLE KEITH P. ELLISON
`UNITED STATES DISTRICT JUDGE
`
`APEEARANES:
`
`U300\JCHCH4>LOPOF4
`
`10
`
`11
`
`12
`
`13
`
`14
`
`15
`
`FOR THE PLAITIFF:
`
`16
`
`17
`
`18
`
`19
`
`Lee L. Kaplan
`SMYSER, KAPLAN & VESELKA, LLP
`700 Louisiana, Suite 2300
`Houston, Texas 77002
`713.221.2300
`
`Gregg F. LoCascio
`KIRKLAND & ELLIS LLP
`
`20
`
`655 Fifteenth Street Northwest
`
`Washington, DC 20005
`202.879.5290
`
`21
`
`22
`
`23
`
`Sarah Tsou
`Timothy K. Gilman
`KIRKLAND & ELLIS LLP
`24 Citigroup Center
`153 East 53rd Street
`
`25 New York, New York 10022
`212.446.6435
`
`‘§RE?E§;§PY1cERTIFY
`$WE3~'
`
`
`
`Johnny C. Sanchez, RMR, CRR — jcscourtreporter@aol.com
`
`WESTERNGECO EXhibit’2108, pg. 1
`PGSVWNESTERNGECO
`|PR2014~00688
`
`WESTERNGECO Exhibit 2108, pg. 1
`PGS v. WESTERNGECO
`IPR2014-00688
`
`
`
`Redirect~Triantafyllou/By Mr. LoCascio
`
`1498
`
`1
`
`claims that pertain to your testimony?
`
`2 A”
`
`Yes,
`
`I think it does.
`
`3
`
`M. LOCASCIO: No further questions, Your
`
`4 Honor.
`
`03:02:32
`
`5
`
`6
`
`7
`
`THE COURT: Okay. Anything further?
`
`MR. PIERCE: No.
`
`THE COURT: Okay. Thank you. You're free to
`
`8 go.
`
`Thank you.
`
`03:02:39
`
`9
`
`10
`
`Do you wish to call another witness?
`
`MR. LOCASCIO: We do. At this time,
`
`11 WesternGeco calls Dr. John Leonard. Bring him up.
`
`12
`
`THE COURT: Why don't we take back some of the
`
`13 things we gave the last witness.
`
`03:03:16
`
`14
`
`15
`
`16 up here.
`
`MR. LOCASCIO: Sure.
`
`THE COURT: Yes, sir.
`
`If you'd make your way
`
`17
`
`18
`
`19
`
`MR. ARNOLD: Are we clear up here?
`
`CASE MANAGER: Yes.
`
`THE COURT: We're going to have you in the seat
`
`03:03:24
`
`20 nearest me, sir.
`
`21
`
`Before you take your seat, Mrs. Loewe will
`
`22 administer the oath.
`
`23
`
`THE CASE MANAGER:
`
`Do you solemnly swear that
`
`24 the testimony you are about to give in the matter now
`
`03:03:30
`
`25 before the Court will be the truth,
`
`the whole truth and
`
`Johnny C. Sanchez, RMR, CRR ~ jcscourtreporter@aol.com
`
`WESTERNGECO Exhibit 2108, pg. 2
`PGS V. WESTERNGECO
`IPR2014-00688
`
`WESTERNGECO Exhibit 2108, pg. 2
`PGS v. WESTERNGECO
`IPR2014-00688
`
`
`
`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.
`
`M. 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
`
`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.
`
`03:03:40
`
`03:03:49
`
`03:04:06
`
`03:04:17
`
`00xiOWLNJ>toDOF4
`
`10
`
`11
`
`12
`
`13
`
`14
`
`15
`
`16
`
`17
`
`18
`
`19
`
`20
`
`21
`
`22
`
`23
`
`24
`
`25
`
`Johnny C. Sanchez, RMR, CRR — jcscourtreporter@aol.com
`
`WESTERNGECO Exhibit 2108, pg. 3
`PGS V. WESTERNGECO
`IPR2014-00688
`
`WESTERNGECO Exhibit 2108, pg. 3
`PGS v. WESTERNGECO
`IPR2014-00688
`
`
`
`Direct—Leonard/By Mr. Gilman
`
`JOHN LEONARD,
`
`1500
`
`after having been first cautioned and duly sworn, testified
`
`as follows:
`
`BY MR. GILMAN:
`
`DIRECT EXAMINATION
`
`Q.
`
`Good afternoon, Dr. Leonard.
`
`A.
`
`Good afternoon.
`
`Q. Would you please introduce yourself to the jury.
`
`A.
`
`My name's John Leonard, and I'm a professor at MIT.
`
`Q. What do you do at MIT?
`
`A.
`
`I perform research in robotics, and I teach
`
`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 of 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.
`
`1 2 3 4 5 6 7 8 9
`
`10
`
`11
`
`12
`
`13
`
`14
`
`15
`
`16
`
`17
`
`18
`
`19
`
`20
`
`21
`
`22
`
`03:03:46
`
`03:05:03
`
`03:05:11
`
`03:05:25
`
`23
`
`studies?
`
`24
`
`25
`
`03:05:38
`
`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@ao1.com
`
`WESTERNGECO Exhibit 2108, pg. 4
`PGS V. WESTERNGECO
`IPR2014-00688
`
`WESTERNGECO Exhibit 2108, pg. 4
`PGS v. WESTERNGECO
`IPR2014-00688
`
`
`
`Di'rect—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.
`
`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?
`
`An
`
`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
`
`1 2 3 4 5 6 7 8 9
`
`10
`
`11
`
`12
`
`13
`
`14
`
`15
`
`16
`
`17
`
`18
`
`19
`
`20
`
`21
`
`22
`
`23
`
`03:05:54
`
`03:06:11
`
`03:06:25
`
`03:06:41
`
`24
`
`an associate?»
`
`03:06:48
`
`25
`
`THE WITNESS:
`
`I'm a full professor.
`
`Johnny C. Sanchez, RMR, CRR ~ jcscourtreporter@aol.com
`
`WESTERNGECO Exhibit 2108, pg. 5
`PGS V. WESTERNGECO
`IPR2014-00688
`
`WESTERNGECO Exhibit 2108, pg. 5
`PGS v. WESTERNGECO
`IPR2014-00688
`
`
`
`Direct—LeonaroZ/By Mr. Gilman
`
`1502
`
`H300\JChLNd>LUPOF4
`
`10
`
`ll
`
`12
`
`13
`
`14
`
`15
`
`16
`
`17
`
`03:06:57
`
`03:07:10
`
`03:07:19
`
`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:
`
`Q.
`
`A.
`
`How long have you been a full professor at MIT?
`
`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.
`
`Q.
`
`And how long overall have you been investigating
`
`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
`
`18
`
`slide.
`
`19
`
`BY MR. GILMAN:
`
`03:07:34
`
`20
`
`Q.
`
`Now,
`
`I understand that you're here to discuss source
`
`21
`
`code.
`
`22
`
`23
`
`24
`
`25
`
`03:07:51
`
`Could you explain what source code is?
`
`AM
`
`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
`
`Johnny C. Sanchez, RMR, CRR — jcscourtreporter@aol.com
`
`WESTERNGECO Exhibit 2108, pg. 6
`PGS V. WESTERNGECO
`|PR2014-00688
`
`WESTERNGECO Exhibit 2108, pg. 6
`PGS v. WESTERNGECO
`IPR2014-00688
`
`
`
`Direct —Leonarcl/By Mr . Gilman
`
`1503
`
`CO~JCfiLfl¢>U0POF4
`
`10
`
`11
`
`12
`
`13
`
`14
`
`15
`
`16
`
`17
`
`18
`
`19
`
`20
`
`21
`
`22
`
`23
`
`24
`
`25
`
`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 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.
`
`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 coments into their computer code?
`
`A.
`
`So comments are really important in software
`
`Johnny C. Sanchez, RMR, CRR — jcscourtreporter@aol.com
`
`03:08:12
`
`03:08:23
`
`03:08:40
`
`03:08:51
`
`03:09:03
`
`WESTERNGECO Exhibit 2108, pg. 7
`PGSVWNESTERNGECO
`|PR2014~00688
`
`WESTERNGECO Exhibit 2108, pg. 7
`PGS v. WESTERNGECO
`IPR2014-00688
`
`
`
`Direct —Leonard/By Mr . Gilman
`
`1504
`
`development.
`
`They sort of specify how code works, and
`
`sometimes it's important to write coments, 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 DigiFIN 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?
`
`00\JONLN¢>toDOF4
`
`10
`
`ll
`
`12
`
`13
`
`14
`
`15
`
`16
`
`17
`
`A.
`
`Yes.
`
`18
`
`19
`
`20
`
`21
`
`22
`
`23
`
`24
`
`25
`
`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
`
`03:09:19
`
`03:09:33
`
`03:09:52
`
`03:10:02
`
`03:10:19
`
`WESTERNGECO Exhibit 2108, pg. 8
`PGS V. WESTERNGECO
`IPR2014-00688
`
`WESTERNGECO Exhibit 2108, pg. 8
`PGS v. WESTERNGECO
`IPR2014-00688
`
`
`
`Direct—Leonard/By Mr. Gilman
`
`1505
`
`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
`
`ION.
`
`Q.
`
`And how long did you spend looking at the code on the
`
`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.
`
`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
`
`1 2 3 4 5 6 7
`
`1O
`
`11
`
`12
`
`13
`
`14
`
`15
`
`16
`
`17
`
`18
`
`19
`
`20
`
`21
`
`22
`
`23
`
`24
`
`25
`
`WESTERNGECO Exhibit 2108, pg. 9
`PGSVWNESTERNGECO
`|PR2014~OO688
`
`03:10:30
`
`03:10:45
`
`03:10:58
`
`03:11:13
`
`03:11:31
`
`WESTERNGECO Exhibit 2108, pg. 9
`PGS v. WESTERNGECO
`IPR2014-00688
`
`
`
`Direct~Leonard/By Mr. Gilman
`
`1506
`
`l
`
`2
`
`on the flow of information between the different modules.
`
`Q.
`
`So just walking through these three parts with
`
`respect to the DigiFIN, how much of the source code did
`
`you end up bringing back with you?
`
`03:11:45
`
`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
`
`03:12:04
`
`actually is 3.8 million lines of computer code. And so,
`
`ll
`
`12
`
`13
`
`14
`
`15
`
`16
`
`17
`
`18
`
`19
`
`20
`
`21
`
`22
`
`03:12:19
`
`03:12:31
`
`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.
`
`23
`
`Q.
`
`If we could turn to the next slide, let's start with
`
`24
`
`25
`
`03:12:44
`
`the DigiFIN itself first.
`
`Based on your investigation, how does the
`
`Johnny C. Sanchez, RMR, CRR ~ jcscourtreporter@aol.com
`
`WESTERNGECO EXhibit2108, pg. 10
`PGS V. WESTERNGECO
`IPRZO14-00688
`
`WESTERNGECO Exhibit 2108, pg. 10
`PGS v. WESTERNGECO
`IPR2014-00688
`
`
`
`Direct —Leonard/By Mr . G1’ lman
`
`1507
`
`DigiFIN work?
`
`A.
`
`Okay.
`
`So this slide gives an overview of the
`
`components of the DigiF1N.
`
`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
`
`Johnny C. Sanchez, RMR, CRR — jcscourtreporter@aol.com
`
`1 0
`
`0\JO\LN¢>toDJ
`
`10
`
`11
`
`12
`
`13
`
`14
`
`15
`
`16
`
`17
`
`18
`
`19
`
`20
`
`21
`
`22
`
`23
`
`24
`
`25
`
`WESTERNGECO Exhibit 2108, pg. 11
`PGS V. WESTERNGECO
`IPRZO14-00688
`
`03:12:59
`
`03:13:16
`
`03:13:35
`
`03:13:50
`
`03:14:07
`
`WESTERNGECO Exhibit 2108, pg. 11
`PGS v. WESTERNGECO
`IPR2014-00688
`
`
`
`Direct~Leonard/By Mr . Gilman
`
`1508
`
`1 handles this interaction with the sensors and the motor.
`
`2 Q.
`
`There's an embedded little computer inside the
`
`3 DigiFIN?
`
`4 A.
`
`Yes.
`
`03:14:20
`
`5 Q.
`
`Is that true for each of the DigiEINs that's in our
`
`6
`
`system?
`
`7 A”
`
`Yes.
`
`8 Q.
`
`So if you have an array of a hundred DigiFINs,
`
`there
`
`9 are a hundred little computers spread out?
`
`03:14:27
`
`10 A”
`
`Yes, a hundred microcontrollers.
`
`11
`
`12
`
`THE COURT: Are those what we call local ones?
`
`THE WITNESS: Yes. That's a —— yes,
`
`I would
`
`13 interpret that as a local controller. But that's --
`
`14 BY MR. GILMAN:
`
`03:14:39
`
`15 Q.
`
`In terms of the —— some of the specific software
`
`16
`
`that's run on these local computers in each DigiFIN, if we
`
`17
`
`could turn to the next slide?
`
`18 A”
`
`Right. Well, actually, can I just stay on this, and
`
`19
`
`I forget to mention one thing in relation to the software.
`
`03:14:53
`
`20 Q.
`
`Please.
`
`21 A”
`
`I mentioned the hardware, so the software is written
`
`22
`
`in the C language, which is one I've used extensively in
`
`23 my career.
`
`24
`
`It also has a bit of what's known as
`
`03:15:04
`
`25
`
`assembly language, which is kind of lower level form of
`
`Johnny C. Sanchez, RMR, CRR — jcscourtreporter@aol.com
`
`WESTERNGECO EXhibit2108, pg. 12
`PGS V. WESTERNGECO
`IPRZO14-00688
`
`WESTERNGECO Exhibit 2108, pg. 12
`PGS v. WESTERNGECO
`IPR2014-00688
`
`
`
`Direct —Leonard/By Mr . Gi lman
`
`1509
`
`03:15:21
`
`03:15:36
`
`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
`
`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 off 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
`
`00~JCHCHtoNJF4
`
`10
`
`ll
`
`12
`
`13
`
`14
`
`detail?
`
`03:15:48
`
`15
`
`A.
`
`Yes.
`
`So here on the next demonstrative here's some
`
`16
`
`17
`
`18
`
`19
`
`20
`
`21
`
`22
`
`23
`
`24
`
`25
`
`03:16:09
`
`03:16:23
`
`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
`
`DigiFIN.
`
`Johnny c. Sanchez, RMR, CRR - jCscourtreporter@aol.com
`
`WESTERNGECO EXhibit2108, pg. 13
`PGS V. WESTERNGECO
`IPR2014-00688
`
`WESTERNGECO Exhibit 2108, pg. 13
`PGS v. WESTERNGECO
`IPR2014-00688
`
`
`
`Direct ~Leonarcl/By Mr . Gilman
`
`1510
`
`O3
`
`:16:
`
`39
`
`O3:
`
`16:
`
`54
`
`03:
`
`17:
`
`10
`
`O3:
`
`17
`
`:29
`
`O3:
`
`17
`
`:44
`
`00\JCHLflJ>LUPOF4
`
`10
`
`11
`
`12
`
`13
`
`14
`
`15
`
`16
`
`17
`
`18
`
`19
`
`2O
`
`21
`
`22
`
`23
`
`24
`
`25
`
`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.
`
`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.
`
`Q.
`
`And this code is being run in the little computer
`
`Johnny C. Sanchez, RMR, CRR — jcscourtreporter@aol.com
`
`WESTERNGECO EXhibit2108, pg. 14
`PGS V. WESTERNGECO
`IPRZO14-00688
`
`WESTERNGECO Exhibit 2108, pg. 14
`PGS v. WESTERNGECO
`IPR2014-00688
`
`
`
`Direct ~Leonard/By Mr . Gilman
`
`1511
`
`¢>0)DJF4
`
`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
`
`03:18:03
`
`5
`
`little thing that's coordinated?
`
`6 A.
`
`Yes,
`
`they're sent commands from the lateral
`
`7 controller. And we'll get to that a little bit later in
`
`8
`
`terms of the flow of information to the DigiFlNs.
`
`9 Q.
`
`So if we turn to your next slide and that was the
`
`03:18:15
`
`10
`
`just the DigiFIN code,
`
`the next part of the code that you
`
`11
`
`looked at was the ORCA code?
`
`12 A.
`
`Yes.
`
`So shown here in the yellow outline box is the
`
`13 ORCA system. Now, ORCA runs on a work station on the
`
`14
`
`ship.
`
`It runs in an operating system known as Lenox,
`
`03:18:34
`
`15 perhaps some may not have heard of Lenox, but it's just an
`
`16 alternative to Windows or the McIntosh operating system.
`
`17
`
`It's a free version of the Unix operating system.
`
`So
`
`18
`
`that's the operating system.for the ORCA computer, and
`
`19 next we'll talk a bit about its ORCA.
`
`03:18:49
`
`20 Q. What computer language was the ORCA's software
`
`21 written in?
`
`22
`
`THE COURT: Let me caution you. Try to slow
`
`23 down just a little bit.
`
`24
`
`THE WITNESS:
`
`ORCA is written in a C
`
`03:18:59
`
`25 programming language.
`
`Johnny C. Sanchez, RMR, CRR ~ jcscourtreporter@aol.com
`
`WESTERNGECO EXhibit2108, pg. 15
`PGS V. WESTERNGECO
`IPRZO14-00688
`
`WESTERNGECO Exhibit 2108, pg. 15
`PGS v. WESTERNGECO
`IPR2014-00688
`
`
`
`Direct—LeonarCZ/By Mr . Gilman
`
`1 5 12
`
`03m9n2
`
`BY MR. GILMAN:
`
`OOQOWUW»-!>-(,«)[\)l—‘
`
`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
`
`I mentioned I was asked to investigate the interaction
`
`9 with the lateral controller, so that -- the documentation
`
`03m929
`
`l0 indicated for us to focus on something called the NCN,
`
`the
`
`ll network control node. And the NCN implements the Kalman
`
`12
`
`filter.
`
`13
`
`So that's what I've chosen to go into some
`
`14 detail here about the Kalman filter because it's important
`
`033944
`
`15
`
`to its operation with respect to the lateral control.
`
`16 Q.
`
`What in general is a Kalman filter? How do they
`
`17 work?
`
`18 Au
`
`So a Kalman filter is an algorithm.that produces
`
`l9 estimates for a system that changes over time, a system
`
`o3n9w9
`
`20
`
`that moves, by combining measurements from.your sensors
`
`21 with predictions from a dynamic novel. And so, it has
`
`22
`23
`
`these two key aspects of prediction and then updating.
`V
`In the actual ORCA software they use the
`
`24 word adjustment, prediction and adjustment.
`
`It's the same
`
`039038
`
`25 prediction and updating. And these happen repeatedly over
`
`Johnny C. Sanchez, RMR, CRR — jcscourtreporter@aol.com
`
`WESTERNGECO EXhibit2108, pg. 16
`PGS V. WESTERNGECO
`IPRZO14-00688
`
`WESTERNGECO Exhibit 2108, pg. 16
`PGS v. WESTERNGECO
`IPR2014-00688
`
`
`
`Direct —Leonard/By Mr . Gi lman
`
`1513
`
`03:20:35
`
`CD~JCHCH¢>C0D0F4
`
`times. Each time new measurements, so there's a
`
`prediction cycle and an update prediction and update.
`
`Q.
`
`Are all Kalman filters the same?
`
`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.
`
`Q.
`
`So let's look at the specific Kalman filter that's
`
`03:20:51
`
`10
`
`used in ORCA and maybe we can move along and go to slide
`
`11
`
`number 9.
`
`03:21:10
`
`03:21:25
`
`12
`
`13
`
`14
`
`15
`
`16
`
`17
`
`18
`
`19
`
`20
`
`21
`
`22
`
`23
`
`24
`
`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
`
`03:21:43
`
`25
`
`is a node.
`
`Johnny C. Sanchez, RMR, CRR — jcscourtreporter@aol.com
`
`WESTERNGECO EXhibit2108, pg. 17
`PGS V. WESTERNGECO
`IPRZO14-00688
`
`WESTERNGECO Exhibit 2108, pg. 17
`PGS v. WESTERNGECO
`IPR2014-00688
`
`
`
`Direct —LeonarcZ/By Mr. Gilman
`
`1514
`
`And so, we have a prior position from our
`
`03:22:01
`
`03:22:20
`
`03:22:38
`
`03:22:52
`
`K)03~JChLNJ>L050F4
`
`10
`
`11
`
`12
`
`13
`
`14
`
`15
`
`16
`
`17
`
`18
`
`19
`
`20
`
`21
`
`22
`
`23
`
`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
`
`24
`
`forward now.
`
`03:23:07
`
`25
`
`So what I'm showing here is taking some
`
`Johnny C. Sanchez, RMR, CRR — jcscourtreporter@aol.com
`
`WESTERNGECO EXhibit2108, pg. 18
`PGS V. WESTERNGECO
`IPRZO14-00688
`
`WESTERNGECO Exhibit 2108, pg. 18
`PGS v. WESTERNGECO
`IPR2014-00688
`
`
`
`Direct—Leonard/By Mr . Gilman
`
`1515
`
`¢>LUPOP4
`CO\JO\LN
`
`10
`
`11
`
`12
`
`13
`
`14
`
`15
`
`16
`
`17
`
`18
`
`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—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,
`
`19
`
`west.
`
`20
`
`21
`
`22
`
`23
`
`24
`
`25
`
`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
`
`03:23:33
`
`03:23:56
`
`03:24:11
`
`03:24:27
`
`03:24:43
`
`Johnny C. Sanchez, RMR, CRR ~ jcscourtreporter@aol.com
`
`WESTERNGECO EXhibit2108, pg. 19
`PGSVWNESTERNGECO
`|PR2014~O0688
`
`WESTERNGECO Exhibit 2108, pg. 19
`PGS v. WESTERNGECO
`IPR2014-00688
`
`
`
`Di'rect—LeonarcZ/By Mr . Gilman
`
`1516
`
`00~JONLNJ>L0B0F4
`
`10
`
`ll
`
`12
`
`13
`
`14
`
`15
`
`16
`
`17
`
`18
`
`19
`
`20
`
`21
`
`22
`
`23
`
`24
`
`25
`
`03:24:54
`
`03:25:07
`
`03:25:26
`
`03:25:40
`
`03:25:57
`
`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
`IPRZO14-00688
`
`WESTERNGECO Exhibit 2108, pg. 20
`PGS v. WESTERNGECO
`IPR2014-00688
`
`
`
`Direct —Leonard/By Mr . Gi lman
`
`1517
`
`03:26:16
`
`03:26:31
`
`03:26:47
`
`03:27:00
`
`1
`
`and the streamer arrays.
`
`So if we had a previous position
`
`CO~JCHLN¢>L0B3
`
`10
`
`ll
`
`12
`
`13
`
`14
`
`15
`
`16
`
`17
`
`18
`
`19
`
`2O
`
`21
`
`22
`
`23
`
`24
`
`and then we were a previous velocity, and we take 5 feet
`
`per second,
`
`times lO 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
`
`03:27:14
`
`25
`
`based measurements.
`
`Johnny C. Sanchez, RMR, CRR — jcscourtreporter@aol.com
`
`WESTERNGECO Exhibit 2108, pg. 21
`PGS V. WESTERNGECO
`IPRZO14-00688
`
`WESTERNGECO Exhibit 2108, pg. 21
`PGS v. WESTERNGECO
`IPR2014-00688
`
`
`
`Direct —Leonard/By Mr . Gilman
`
`1518
`
`03:27:30
`
`03:27:47
`
`03:28:06
`
`03:28:19
`
`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
`
`00~JOWLND0NOP4
`
`10
`
`ll
`
`12
`
`13
`
`14
`
`15
`
`16
`
`to the wall.
`
`17
`
`18
`
`19
`
`20
`
`21
`
`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.
`
`22
`
`Q.
`
`How accurate are these acoustic ranges when used
`
`23
`
`under water?
`
`24
`
`25
`
`03:28:33
`
`A.
`
`Okay.
`
`So with any measurement there's some
`
`uncertainty no measurement is perfect. And the —— for
`
`Johnny C. Sanchez, RMR, CRR — jcs