annual report on development of a simulator for airborne
TRANSCRIPT
Annual Report on
Development of a Simulator for Airborne Altimetric LiDAR
Work conducted under RESPOND programme of ISRO
Department of Civil Engineering Indian Institute of Technology Kanpur Kanpur-208 016, INDIA
National Remote Sensing Agency Indian Space Research Organisation Balanagar, Hyderabad
Principal Investigator
Dr. Bharat Lohani Assistant Professor
Department of Civil Engineering Indian Institute of Technology Kanpur
Kanpur-208 016, INDIA Tell: +91-512-259 7413 Fax: +91-512-259 7561
2
Preface
This report describes development of a simulator for airborne altimetric LiDAR. The
main aim is to simulate LiDAR data collection process as nearly as possible and generate
data for a given terrain with specified sensor and trajectory parameters. The simulator has
mainly three components, viz., platform, sensor, and ground. The platform component
involves simulation of the trajectory of the platform using the accelerations, velocities
and attitude parameters. Mathematical functions that produce pseudo random values are
used to generate the accelerations and attitude parameters. The acceleration and attitude
are simulated to resemble a normal flight. Using these, the coordinates of the laser head
and attitude parameters at the instance of each firing of laser pulse are determined.
Simulation of sensor component involves replicating the scanning mechanism and is
designed to account for various sensor parameters such as scan frequency, firing
frequency, scan angle, etc. The terrain is modeled using various mathematical surfaces.
Attempt is also made to develop a raster approach for bare terrain and above ground
objects. Different objects such as buildings, cylindrical objects, roads, and slant roofed
buildings are modeled. The firing of laser is replicated using a laser vector which is
defined by the coordinates of laser head and direction cosines in a specified coordinate
system for the laser fired. The laser vector equation is solved to obtain the intersection of
the laser beam with the mathematical surfaces representing terrain to get the LiDAR data.
Numerical methods and different algorithms are used to solve complex problems of
determining the intersection of laser vector and ground surfaces. The algorithms
developed are coded in JAVA programming language to make it platform independent,
i.e., it can run on any operating system viz. Windows, Linux, Solaris, etc. The object
oriented software engineering approach is used for software development. A GUI is
developed to make the simulator user friendly. The simulator can be helpful in
understanding LiDAR data collection process, in teaching and laboratory exercises in
class rooms and for algorithm testing in research of LiDAR data processing. This report
presents the details of aforesaid wok and outlines the work to be performed in future.
3
Contents 1 Introduction................................................................................................................... 5
1.1 Background....................................................................................................... 5 1.2 Principal of LiDAR........................................................................................... 5 1.3 Concept of simulator......................................................................................... 5 1.4 Need of simulator.............................................................................................. 6
2 Design consideration for the simulator ......................................................................... 7
3 Methodology................................................................................................................. 7
3.1 User input.......................................................................................................... 8 3.2 Platform component.......................................................................................... 9 3.3 Sensor component........................................................................................... 11 3.4 Terrain component .......................................................................................... 15 3.5 Integration of components .............................................................................. 15 3.6 Error introduction in data................................................................................ 18
4 Software development ................................................................................................ 18
4.1 Realization of algorithms in software ............................................................. 20 4.2 Generation of pseudo random trajectory......................................................... 25
5 Results......................................................................................................................... 27
5.1 Results for simple surfaces ............................................................................. 27 5.2 Results for complex surfaces .......................................................................... 28 5.3 Result for city model....................................................................................... 29
6 Comparison of different data sets generated by simulator.......................................... 30
6.1 Data sets with and without Roll, Pitch and Yaw for complex surface ........... 30 6.2 Data sets without RPY and with Roll only for complex surface .................... 30 6.3 Data sets without RPY and with Pitch only for complex surface................... 31 6.4 Data sets without RPY and with Yaw only for complex surface ................... 31 6.5 Data sets with lower and higher ax (Acceleration) for simple surface ........... 32 6.6 Data sets with different scan angles for simple surface.................................. 32 6.7 Data sets with different height for simple surface .......................................... 33 6.8 Data sets with and without normal error......................................................... 33
7 Work proposed to be done in future ........................................................................... 34
7.1 Development of LiDAR simulator as a complete software package.............. 34 7.1 Modification in Ground component................................................................ 34 7.2 Provision for error simulation at every stage.................................................. 34 7.3 Output of the simulator ................................................................................... 35 7.4 Modification in trajectory ............................................................................... 35 7.5 Modification in Sensor Component ................................................................ 35 7.6 Arrangement of INS, Laser head, and GPS within the body of aircraft ......... 36 7.7 Waveform digitization/multiple return: .......................................................... 36 7.8 Model viewer .................................................................................................. 36 7.9 Point cloud viewer .......................................................................................... 36 7.10 Check .............................................................................................................. 36
4
8 Conclusion .................................................................................................................. 37
9 Acknowledgement ...................................................................................................... 38
10 Bibliography ............................................................................................................... 39
List of Figures
Figure 1: Components and their integration in simulator. .................................................. 8 Figure 2: Schematic of laser vector intersection with a surface and various coordinate systems employed. .............................................................................................................. 9 Figure 3: Variation of θ i.e. movement of scan mirror with time.................................... 12 Figure 4: Illustration of algorithm used to solve for intersection of laser vector with the complex surface. ............................................................................................................... 17 Figure 5: General system design for software. ................................................................. 19 Figure 6: Platform component. ......................................................................................... 20 Figure 7: Sensor component. ............................................................................................ 21 Figure 8: Roll, Pitch and Yaw........................................................................................... 22 Figure 9: Error simulation................................................................................................. 22 Figure 10: Surface type..................................................................................................... 23 Figure 11: City model ....................................................................................................... 24 Figure 12: Trajectories...................................................................................................... 26 Figure 13: LiDAR data for simple surface ....................................................................... 27 Figure 14: Lidar data for complex surface........................................................................ 28 Figure 15: Lidar data for complex surface displayed in voxler. ....................................... 28 Figure 16: Lidar data for complex surface displayed in surfer. ........................................ 29 Figure 17: Comparison of datasets with and without RPY............................................... 30 Figure 18: Comparison of data sets without RPY with Roll only. ................................... 30 Figure 19: Comparison of data sets without RPY and with Pitch only. ........................... 31 Figure 20: Comparison of data sets without RPY and with Yaw only............................. 31 Figure 21: Comparison of data sets with lower and higher Accelerations. ...................... 32 Figure 22: Comparison of data sets with different scan angle.......................................... 32 Figure 23: Comparison of data sets with different flight height. ...................................... 33 Figure 24: Comparison of data sets with and without normal error. ................................ 33
5
1 Introduction
1.1 Background
The last decade has seen manifold growth in the use of airborne altimetric LiDAR (Light
Detection and Ranging) technology. LiDAR data are complimenting several other
remotely sensed data for various applications. At the same time LiDAR is competing
with existing topographic data collection techniques. The main advantage of LiDAR is
that highly dense and accurate topographic data are captured at high speed. In view of its
typical characteristics and ease in data capture the LiDAR technology is also finding
applications in several new areas which were not considered feasible hitherto with
conventional techniques.
1.2 Principal of LiDAR
LiDAR works by measuring time of travel of laser pulses fired from an airborne
platform. The location and attitude of laser head are determined using onboard GPS
(Global Positioning System) and IMU (Inertial Measuring Unit). The range computed
using time of travel measurement is combined with the laser scan angle and attitude
values to yield the laser vector. Transformation of laser vector from the laser head
coordinate system to WGS-84 coordinate system is carried out to determine the WGS-84
coordinate of the point on ground hit by laser. The forward motion of platform combined
with scanning in transverse direction measures a large number of points across a wide
swathe on the ground.
1.3 Concept of simulator
A LiDAR simulator is aimed at faithfully replicating the LiDAR data capture process as
discussed above with the use of mathematical models under a computational
environment. Basically, data generated by simulator should exhibit all characteristics of
the data acquired by an actual LiDAR sensor. Further, the simulator should possess
flexibility of operation as in case of actual sensor.
6
Literature reveals that only a few attempts have been made by researchers to develop
simulator for LiDAR instrument. These efforts are limited in their scope as either these
consider effect of only single parameter on one kind of object (Holmgren et al., 2003) or
inaccurate scanning pattern (Beinat and Crosilla, 2002). More focused and
comprehensive efforts have been made to simulate the return waveform from a footprint
(Sun and Ranson, 2000; Tulldahl and Steinvall, 1999).
1.4 Need of simulator
Considering the significance of technology there is need to (1) Carry out research in the
area of information extraction from LiDAR data and error analysis of LiDAR data, (2)
Introduce LiDAR technology to students at undergraduate and postgraduate level.
LiDAR data with varied specifications are fundamental for LiDAR research and for
classroom teaching and laboratory exercises. In research, particularly testing of
information extraction algorithm, finding optimum data parameters for information
extraction it is required to have data with varied specifications. Similarly, for effective
teaching a large amount of data which is readily and cheaply available is desirable.
Furthermore, in both the above areas it is required to have full and accurate ground truth.
LiDAR instrument and data are costly. Further, generating data with varied specification
is quite prohibitive considering the cost. Collection of full and accurate ground truth
from field is also not possible. In addition, several of educational institutions can not
afford the cost of LiDAR data collection.
A simulator can generate various kinds of data, as and when desired, at minimal or no
cost. Considering the above limitations of LiDAR data, the simulated data could be very
useful for research and training. User control over the entire data generation process in
simulator can also help students in understanding the functioning and limitation of
LiDAR instrument. Further, error sources and their effect on LiDAR data can be
understood. In any laboratory exercises and research availability of ground truth is
fundamental. While it may be difficult and expensive to collect ground truth in case of
actual LiDAR data, for simulated data the ground truth is readily and accurately
available.
7
2 Design consideration for the simulator
Considering the aforesaid applications the following benchmarks are set for the
simulator:
1. Simulator should employ a user-friendly GUI (Graphical User Interface.)
2. Simulator should be designed for wider distribution over various computational
platforms.
3. The simulator should come along with a help/tutorial system which can explain
concepts of LiDAR using user-friendly multimedia techniques.
4. It should simulate a generic LiDAR sensor and some widely available sensors in
market.
5. The simulator should facilitate selection of trajectory and sensor parameters as in
actual case along with the facility of introducing errors in various component
systems of LiDAR.
6. Simulator should facilitate data generation for actual earth-like surfaces.
7. The output data should be available in commonly used LiDAR formats.
3 Methodology
In view of the aforesaid requirements the programming language JAVA has been chosen
for developing the simulator. This language offers good numerical and graphical
programming besides, and most importantly, being platform independent and object
oriented. The simulator is composed of three basic components in addition to input and
output modules as shown in Figure 1.
These components take the form as per the user input, while their integration generates
LiDAR data as desired by user. Each of these components is realised using a
mathematical model. The following paragraphs describe development of these
components as implemented in present version of simulator.
8
Figure 1: Components and their integration in simulator.
3.1 User input
Through a GUI the user is prompted to input various parameters as required to define the
three individual components and output format. To help the user in understanding
various terms and processes in LiDAR technology a help module is activated at any
instance during the parameter input.
Sensor component Platform component Ground component
Scanning Mechanism Trajectory generation Terrain modeling
Scan pattern Trajectory coordinatesAttitude parameters
1. Surface type 2. Object type
Integration of components
Input
Output
Normal error addition in data
9
3.2 Platform component
As shown in Figure 2 two coordinate systems are considered. The first coordinate system
is (X, Y, Z), which is absolute. All trajectory and terrain coordinates are determined in
this system. A system (shown with green lines) which translates with platform and
remains parallel to absolute coordinate system is considered at the laser head and is
referred to as gyro coordinate system henceforth. The second coordinate system is the
body coordinate system (shown with dashed lines), which has its origin at laser head and
is affected by roll, pitch and yaw rotations. The laser vector (shown with red ray) at any
instance is defined using direction cosines (α,β,γ) and coordinate of laser head in gyro
coordinate system ((cosαi, cosβi, and cosγi). The location and attitude parameters, as
required at the instance of each laser pulse firing, are simulated as following.
Figure 2: Schematic of laser vector intersection with a surface and various coordinate
systems employed.
10
3.2.1 Location
The trajectory is defined by the location of laser mirror centre (point of origin of laser
vector) in the absolute coordinate system at each instance of firing of laser pulse. To
simulate the trajectory and to incorporate a possibility of introducing errors in trajectory
parameters the following procedure is employed.
Let:
Firing frequency = F.
Time interval between firing of successive pulses= dt = 1/F
Total number of points on trajectory wherefrom pulses are fired = n
Velocity of platform in flight direction (which is considered here as X axis) at ith point on
trajectory = u xi
Laser head coordinate at ith point on trajectory = (Xi, Yi, Zi)
At each successive dt interval one needs to compute the location of laser head. The aerial
platform is subject to internal and external force fields. While the external forces result
in accelerations in X, Y and Z directions the internal force attempts to maintain a uniform
speed and the designate trajectory. The net effect is that the platform is subject to
random accelerations in three axes directions. The following system is employed to
simulate accelerations. This system ensures a pseudo-random generation of acceleration
values.
(3.1)
Where axi is the acceleration at ith point in X direction. T is the total duration of a
trajectory. The parameters of this equation J, K, A, B, C, D, and m control the nature of
curve. Developed software permits selection of these parameter values within ranges that
generate accelerations as may be observed in a normal flight. Similarly, ayi and az
i are
also generated with different values of parameters in the above equation. Using the
1 1
2 2sin ( ( )) cos ( ( )) ( )J K
iX j j t k k t t
j ka A B id C D id m id
T Tπ π
= =
⎛ ⎞ ⎛ ⎞= + +⎜ ⎟ ⎜ ⎟⎝ ⎠ ⎝ ⎠
∑ ∑
11
acceleration values at ith point the new location of laser head (i.e., Xi+1, Yi+1, Zi+1 ) after dt
interval is computed using equations similar to:
1 212
i i i ix t x tX X u d a d+ = + + (3.2)
3.2.2 Attitude As in case of acceleration, due to internal and external force fields, the attitude will
change within certain limits and may exhibit a random behaviour. To realise this, the
attitude values (i.e. ωi, φi, κi) at any ith point are determined using the equation 3.1.
Similar to the case of acceleration, the developed simulator permits selection of these
parameter values in the ranges which generate attitude values as in case of a normal
flight.
The outcome of aforesaid is that at each point wherefrom a laser pulse is fired the attitude
values and coordinate of point are known in the absolute coordinate system.
3.3 Sensor component
The sensor component aims to replicate the scanning mechanism of sensor as per the user
input parameters. The following differential equation is employed to simulate sinusoidal
scanning pattern.
2
2 0d kdt Rθ θ+ = (3.3)
Where θ is the instantaneous scan angle measured from the z axis of body coordinate
system. k and R are the driving acceleration and radius of the scanning mirror,
respectively. Solution of equation (3) gives value of θ at any time t as:
12
2
14
sin( )sin( )
S kR
kf R
tθ = (3.4)
Where S is full scan angle and f is the scanning frequency as input by the user. At t=0
=> θ=0, i.e. beginning of scan, i.e. laser vector along z axis in body coordinate system.
At t=0.25*time period => θ=S/2. The variation of san mirror is shown in Figure 3.
Figure 3: Variation of θ i.e. movement of scan mirror with time.
3.3.1 Computation of scan angle values in body coordinate system
The absolute angles of laser pulse travel direction with the body coordinate axes of the
platform are as follows. Referring to the Figure 3.
• Angle with x axis (θ1) = 90о
• Angle with y axis (θ2) = 90о - θinstantaneous
• Angle with z axis (θ3) = 180о - θinstantaneous
13
The above absolute angles with the 3 body coordinate axes are called as, θ1 , θ2 and θ3 at
any given time interval, with x, y and z axes respectively throughout this work. These
angles are measured in clockwise direction. θinstantaneous will be positive when the scan
mirror moves towards the positive y direction. In the Figure 3 these are shown as θ.
3.3.2 Laser pulse direction in gyro coordinate system
The roll, pitch and yaw are measured in the gyro coordinate system. Initially at the start
of the flight the gyro coordinate system and the body coordinate system of the platform
coincides. But because of the roll, pitch and yaw (ω, φ, κ) the angles of the laser travel
direction with the gyro coordinate system changes. The resultant angles with the X, Y,
and Z axes because of the roll, pitch and yaw can be calculated using the rotation
matrices. Let the direction cosines of the angles of the laser pulse in the body coordinate
system form a 1 × 3 matrix:
The rotation matrix for the roll (R ω):
The rotation matrix for the roll (R φ):
The rotation matrix for the roll (R κ):
14
Let if the resultant direction cosine matrix in gyro coordinate system after applying
the rotations (roll, pitch and yaw) is,
Then
(3.5)
At this point, the direction cosines of the laser vectors in gyro coordinate system are
available. As this system is parallel to the absolute coordinate system therefore the
direction cosines in absolute coordinate system and gyro coordinate system will be same.
They will be referred to as a, b and c which are given as cos(αi) = a, cos(βi) = b and
cos(γi) = c from now onwards. Now the equation of the laser pulse can be written as:
(3.6)
The point (Xi, Yi, Zi) is ith point on the flight path. If Xit, Yi
t ,Zti is the point on the terrain
where laser intersects, i.e., LiDAR data, the equation 3.6 can be written as:
(3.7)
At this stage to obtain the LiDAR data we need to solve for the intersection of these laser
vectors with the given terrain. The following section explains the modelling of the
terrain.
15
3.4 Terrain component
The basic philosophy of the terrain component is to model a ground surface so that the
model will be compatible to obtain the intersections of the laser pulses with the terrain
and also it should represent natural terrain as nearly as possible.
Two approaches have been investigated for simulating the bald earth surfaces and above
ground objects.
3.4.1 Vector approach
In this, a terrain is represented using mathematical equations, which yield earth like
surfaces. A few of these are:
[sin( / ) sin( / )][sin( / ) sin( / )]
Z AX BY CZ A X B XY C DZ A X Y XY B C
= + += − += − +
(3.8)
The GUI permits selection of these surfaces and their parameters.
3.4.2 Raster approach
In this the surfaces resulting from above equations are rasterized. Most importantly, this
approach permits populating the raster with above ground objects so as to create the
terrain like a 3D city model. Those cells where an over ground object is desired to be
placed take new values as per the height and shape of object.
3.5 Integration of components
In the heart of simulator lies generation of the laser vector and its intersection with
simulated terrain. The point of intersection yields the coordinate of terrain point. As
shown in Figure 2, for any ith point on trajectory there exists a laser vector. The equation
of laser vector is given in equation 3.7.
16
The LiDAR data are determined (coordinates in gyro coordinate system) by solving for
the intersection of laser vector with mathematical surfaces. The simple and complex
surfaces are used for modeling terrain. A few examples of numerical approach adopted
are given below:
3.5.1 Solving for intersection for simple surfaces
In this work simple surfaces are considered to be of the form Z = f(X) + g(Y ) . Suppose
the ground surface is of the form AX + BY + CZ + D = 0 and if (Xt, Yt , Zt) is the point
on the terrain then putting the values of Xt and Yt from the laser equation 3.7 we obtain
(3.9)
From which we can calculate the value of Zt. By substituting the value of Zt in the
equation 3.7 we can calculate Xt and Yt. The (Xt, Yt, Zt) is the LiDAR data for the point
hit by laser. By varying the values of A, B, C and D one can find the data for those
different terrain types.
3.5.2 Solving for intersection for complex surfaces
In this work the complex surfaces are considered as the surfaces for which a direct
solution for intersection is not available. However, these surfaces are required to be
simulated as they represent terrain better. Suppose Z = f(X, Y ) is a surface, then
replacing Xt and Yt from the equation 3.6, if the resulting equation is a complex equation
which can not be solved directly, the surface formed with such equations are referred as
complex. Some surfaces which have been simulated are as follows.
Z = A*(sin(X/B) − sin(XY/C)) + D
Z = A* (sin(X/B) + sin(XY/C)) + D 3.10
Z = A*(sin(X/B) − cos(XY/C)) + D
Z = A*(cos(X/B) + sin(XY/C)) + D
By giving different values to A, B, C and D different surfaces can be obtained.
17
• Solution for intersection of complex surfaces
Consider that the platform is situated at (Xi, Yi, Zi). Consider a plane parallel to the
datum and situated at height h0 above the datum and below the point on the trajectory
from where the laser pulse is fired. The equation of the plane is therefore Zt = h0. The
intersection of the plane and the laser vector therefore takes place at point P1 with planar
coordinates as:
(3.11)
Now drop a perpendicular from P1 towards another surface parallel to datum as shown in
Figure 4. Calculate the value h1 = f(Xt, Yt) using the equation of terrain. Put h0 = h1 and
repeat this process until the change in the values of heights is not significant. The
algorithm is illustrated in the Figure 4. This algorithm is used for solving the Complex
surface equations and the laser pulses.
Figure 4: Illustration of algorithm used to solve for intersection of laser vector with the complex surface.
18
3.6 Error introduction in data
In present version of simulator a normal error is introduced in the terrain coordinates
computed in the above step in X, Y and Z directions separately. The system for
introducing error in X direction is shown below:
2( , )i i
T t X XX X N μ σ= + (3.12)
Where Xti is the X coordinate value with error. Similar systems with different values of
parameters are used for Y and Z coordinates. It is assumed that errors in X, Y and Z
directions follow normal distribution. Further, when introducing these errors it is ensured
in algorithm that there is no spatial auto-correlation of error. The parameters of this
distribution are known from field experience and are reported by the vendors of sensors.
The simulator facilitates variation of these parameters.
4 Software development
To incorporate the algorithms developed earlier in better way, object oriented software
engineering approach has been employed for software development. This approach
suggests that the natural objects (i.e. entities) occurring in a problem should first be
identified and then implemented. By using this approach the reusable solutions can be
develop for recurring problems. In this software the new modules can be easily
incorporated.
For software development, JAVA programming language has been chosen. This language
is chosen because it offers good numerical and graphical programming besides and most
importantly, being platform independent. Also, the object oriented software development
approach can be easily implemented by using JAVA. JAVA offers much better facilities
to develop software than other programming languages. The general system design is
shown in Figure 5.
19
Figure 5: General system design for software.
Start
Platform component 1. Flight parameter
Flight velocity Flight height
Flight distance Initial coordinate
2. Acceleration parameters
Sensor component Firing frequency Scan frequency
Scan angle
Roll, Pitch, Yaw 1. Simulated RPY
2. RPY from file
Error simulation With normal error
Without normal error
Error simulation With normal error
Without normal error
Surfaces 1. Simple surface
2. Complex surface
City Model 1. Building, 2.SRF, 3. Cylinder
4. Road
Process of scanning i.e. solving Laser vector with terrain type
Lidar data (X, Y, Z) Report
Stop
20
4.1 Realization of algorithms in software
GUI based software is designed for the simulator. GUI makes this software user friendly.
User can use this software by taking little training. The functions of this software are
given as follows.
4.1.1 GUI for platform component
The very first icon is for platform component. This is shown by Flight icon. After
clicking on this icon, a new window opens for platform component. This window has
menus for flight parameters and acceleration parameters. In flight parameters the user is
prompted to enter flight velocity, flight height, flight distance and initial coordinate. In
acceleration parameters the user is prompted to enter values of Ai, Bi, Ci and Di for
equation 3.1 (This simulates pseudo random accelerations in X, Y and Z directions).
Platform component is shown in Figure 6.
Figure 6: Platform component.
21
4.1.2 GUI for sensor component
The second icon is for sensor component. After clicking on this icon the user is prompted
to enter radius of mirror, firing frequency, scan frequency and scan angle. This is shown
in Figure 7.
Figure 7: Sensor component.
4.1.3 Roll, Pitch, and Yaw
Third icon from the left is made for simulating attitude (Roll, Pitch and Yaw). After
clicking on this icon, a new window opens. This window has menus for simulated roll,
pitch, yaw and roll, pitch yaw from file. In simulated roll, pitch, yaw menu, the user is
prompted to enter values of Ai, Bi, Ci and Di for equation 3.1 (This simulates pseudo
random attitude value). There is also option for without roll, pitch, and yaw. In roll, pitch
yaw from file user can read attitude values from file. Roll, Pitch, and Yaw is shown in
Figure 8.
22
Figure 8: Roll, Pitch and Yaw.
4.1.4 Error Simulation Fourth icon from the left is for error simulation. After clicking on this icon the user is
prompted to enter error induction in each directions. This adds normal error in X, Y and
Z coordinate. There is also option for without error. Error simulation is shown in Figure
9.
Figure 9: Error simulation
23
4.1.5 Surface type
Fifth icon from the left is for surface type. After clicking on this icon, a new window is
opens. This window has menu for create surface. In this menu, the user is prompted to
select surface type i.e. simple surface or mathematical surface. These all are
mathematical surfaces. User can also change the A, B, and C values of the selected
surface. When user select surface, he has to click on the OK button, it will generate
LiDAR data(X, Y, Z coordinate) for the selected surface. Surface type is shown in
Figure10.
Figure 10: Surface type
24
4.1.6 City model
Sixth icon from the left is for city model. After clicking on this icon a new window
appears. This window has buttons for Building, S.R.F. (Slant roof building), cylindrical
building and Road. Clicking on the buttons prompts to enter parameters for objects. For
example if one clicks on Building button, it will ask to enter, position, length, width and
height of the building. User can place any number of objects within the flight distance.
This way the user can place different objects on the surface. After completing this task,
one has to click on the create city model sub menu which is given in file menu. This will
generate simulated Lidar data (X, Y, Z coordinates) for the created city model. City
model is shown in Figure 11.
Figure 11: City model
25
4.1.7 Report
Seventh icon from the left is for generating report on whole LiDAR data collection
process. This also includes input parameters given by the user. One example of the report
is given below.
Report on LiDAR data collection process
Flight parameters: 1. Flight velocity: 60.0 m/s. 2. Flight height: 1100.0 m. 3. Flight distance: 1480.0 m. 4. Flight time: 24.67 s. Sensor parameters: 1. Radius of scan mirror: 0.01 m. 2. Firing frequency: 20000.0 Hz. 3. Scan frequency: 48.0 Hz. 4. Scan angle: 50.0 Deg. Ground parameters: 1. Initial coordinate: (172.0,122.0,0.0) 2. Total no of points: 493333.0 3. Swath: 1026 sq.m. 4. Total area covered: 1518298 sq.m. 5. Surface type: Simple Surface 6. Surface equation: Ax+By+Cz+D=0 7. Values of A, B, C & D is: A= 0.0, B= 0.0, C= 1.0, D= -1100.0
4.1.8 Help
Help option is given in the men menu of the software. It contains the details about how to
use this software effectively. This has complete details of each and every steps of this
software.
4.2 Generation of pseudo random trajectory
For implementing the pseudo random behaviour of the acceleration and attitude, the
equation 3.1 is used with different values of Ai, Bi, Ci and Di. Certain boundary values
26
have been investigated for Ai, Bi, Ci and Di which exhibit near normal behaviour for
acceleration and attitude. This is shown in Figure 12.
Figure 12: Trajectories
1000 T 0.001 dt 0.004 m 4.34 D2
7.23 D1
1.24 C2
0.78 C1
5.45 B2
4.38 B1
0.25 A2
1.0 A1
j=2, k=2)())(2(cos))(2(sin
11ttk
K
kktj
J
jj
iX idmid
TDCid
TBAa +⎟
⎠⎞
⎜⎝⎛ ∏
+⎟⎠⎞
⎜⎝⎛ ∏
= ∑∑==
T
dt
m
100
D3
D2
0.0
D1
C3
2.77
C2 1.77
C1
B3
1.51
B2 4.45
B1 2.38
A3
0.65A2 2.75A1
j=3, k=3
0.6
80
0.35
3.38
100
0.006
27
5 Results
5.1 Results for simple surfaces
Data generated by simulator for simple surfaces is shown in Figure 13.
Figure 13: LiDAR data for simple surface
Equation of the surface: AX+By+CZ+D=0. (A=0, B=0, C=0, D= -1100) Flight velocity: 60 m/s. Flight height: 70 m. Distance: 60 m. Firing frequency: 5000 Hz. Scan frequency: 48 Hz. Scan angle: 50 deg.
28
5.2 Results for complex surfaces Data generated by simulator for simple surfaces is shown in Figure 14 and Figure 15
Figure 14: Lidar data for complex surface
Figure 15: Lidar data for complex surface displayed in voxler.
Equation of the surface: Z=sin(X/10)-sin(XY/90)-60. Flight velocity: 60 m/s. Flight height: 60 m. Distance: 30 m. Firing frequency: 5000 Hz. Scan frequency: 48 Hz. Scan angle: 50 deg.
29
5.3 Result for city model
Data generated by simulator for city model is shown if Figure 16.
Figure 16: Lidar data for complex surface displayed in surfer.
Flight velocity: 60 m/s. Flight height: 1610 m. Distance: 1500 m. Firing frequency: 20000 Hz. Scan frequency: 48 Hz. Scan angle: 50 deg.
30
6 Comparison of different data sets generated by simulator
6.1 Data sets with and without Roll, Pitch and Yaw for complex surface
Figure 17: Comparison of datasets with and without RPY.
6.2 Data sets without RPY and with Roll only for complex surface
Figure 18: Comparison of data sets without RPY with Roll only.
Equation of the surface: Z=sin(X/10)-sin(XY/90)-60. Flight velocity: 60 m/s. Flight height: 60 m. Distance: 30 m. Firing frequency: 5000 Hz. Scan frequency: 48 Hz. Scan angle: 50 deg.
Equation of the surface: Z=sin(X/10)-sin (XY/90)-60. Flight velocity: 60 m/s. Flight height: 60 m. Distance: 30 m. Firing frequency: 5000 Hz. Scan frequency: 48 Hz. Scan angle: 50 deg.
31
6.3 Data sets without RPY and with Pitch only for complex surface
Figure 19: Comparison of data sets without RPY and with Pitch only.
6.4 Data sets without RPY and with Yaw only for complex surface
Figure 20: Comparison of data sets without RPY and with Yaw only.
Equation of the surface: Z=sin(X/10)-sin(XY/90)-60. Flight velocity: 60 m/s. Flight height: 60 m. Distance: 30 m. Firing frequency: 5000 Hz. Scan frequency: 48 Hz. Scan angle: 50 deg.
Equation of the surface: Z=sin(X/10)-sin(XY/90)-60. Flight velocity: 60 m/s. Flight height: 60 m. Distance: 30 m. Firing frequency: 5000 Hz. Scan frequency: 48 Hz. Scan angle: 50 deg.
32
6.5 Data sets with lower and higher ax (Acceleration) for simple surface
Figure 21: Comparison of data sets with lower and higher Accelerations.
6.6 Data sets with different scan angles for simple surface
Figure 22: Comparison of data sets with different scan angle.
Equation of the surface: AX+By+CZ+D=0. (A=0, B=0, C=0, D= -65) Flight velocity: 60 m/s. Flight height: 65 m. Distance: 60 m. Firing frequency: 5000 Hz. Scan frequency: 48 Hz. Scan angle: 50 deg
Equation of the surface: AX+By+CZ+D=0. (A=0, B=0, C=0, D= -65) Flight velocity: 60 m/s. Flight height: 65 m. Distance: 60 m. Firing frequency: 5000 Hz. Scan frequency: 48 Hz. Scan angle: 50 deg.
Equation of the first surface: AX+By+CZ+D=0. (A=0, B=0, C=0, D= -65) Flight velocity: 60 m/s. Flight height: 65 m. Distance: 60 m. Firing frequency: 5000 Hz. Scan frequency: 48 Hz. Scan angle: 30 deg.
33
6.7 Data sets with different height for simple surface
Figure 23: Comparison of data sets with different flight height.
6.8 Data sets with and without normal error
Figure 24: Comparison of data sets with and without normal error.
Equation of the surface: AX+By+CZ+D=0. (A=0, B=0, C=0, D= -1100) Flight velocity: 60 m/s. Flight height: 1100 m. Distance: 100 m. Firing frequency: 5000 Hz.
Equation of the surface: AX+By+CZ+D=0.(A=0, B=0, C=0, D= -1000) Flight velocity: 60 m/s. Flight height: 1000 m. Distance: 60 m. Firing frequency: 5000 Hz. Scan frequency: 48 Hz. Scan angle: 50 deg.
Equation of the surface: AX+By+CZ+D=0.(A=0, B=0, C=0, D= -500) Flight velocity: 60 m/s. Flight height: 500 m. Distance: 60 m. Firing frequency: 5000 Hz. Scan frequency: 48 Hz. Scan angle: 30 deg.
34
7 Work proposed to be done in future At present work is directed to further improve the present version of simulator. The
following are the areas where improvement can be realized. In the rest duration of the
project it will be attempted to develop simulator consisting of some of the following.
7.1 Development of LiDAR simulator as a complete software package
At present the first version of this software has been developed. There is need of many
modifications in the software for making it comprehensive, more efficient and user
friendly. Finally the aim is to develop this software as complete independent software
package. Several modifications and additions have been planned. A few are being listed
below.
7.1 Modification in Ground component
a. More simple surfaces.
b. More complex surfaces. A lot of investigation is needed to be carried out about
these surfaces. The parameter selection should result only in proper surfaces and
not in weird surfaces.
c. A virtual environment on screen for choosing different types of surfaces (Simple
and complex).
d. On screen facility for placing different real objects like buildings, road, trees etc.
on the chosen surface type.
7.2 Provision for error simulation at every stage
The error in actual sensor occurs when what the instrument is doing is not actually
being measured by the instrument. What is measured, e.g., laser range or yaw angle or
scan angle etc. has some error in it. This could be systematic or random. The available
literature can provide the limits of these errors particularly, the random. The actual
simulated measurements can be corrupted by these errors at different stages of the
simulator. Thereby, one will have two sets of data with error and data without error. This
will help in understanding the role of errors in this process.
35
7.3 Output of the simulator
At present the output of the simulator is ground coordinates (X, Y, Z). The output can
be written as:
a. XYZ.
b. Time and RPY.
c. Time and ax, ay, az.
d. TXYZRPYaxayaz all in one.
e. Trajectory data (Ideal and actual).
f. A report on over all processes which also includes input parameter.
The output can be in .las format as well as in ASCII format. User will have facility to choose one or more output from the above.
7.4 Modification in trajectory
• Initial trajectory is coming from equation 3.1. This is the desired trajectory in
which the plane is required to be flown without any disturbances due to 6DoF
(Six Degrees of Freedom). This trajectory will be known as a file with XYZT
values of aircraft locations. The effect of 6DoF is to change this ideal trajectory to
actual looking trajectory.
• Simulation of 6DoF:
• Using developed equation way as in this report.
• Using the screen (by using mouse) in which a user can specify directly on screen
how these parameters change with time.
7.5 Modification in Sensor Component
a. The sensor selection could be a generic or commercially available one.
b. For generic any possibility (within certain limits) of parameters should be there.
c. For commercial sensors: A few of commercially available sensors can be
programmed in such a way that when a user selects any of those the selection of
sensor and other parameters is governed by these only. The parameters required
in these can vary within the limits of these sensors. As well as other aspects like
36
scanning mechanism should also be governed automatically by these selected
parameters.
d. More scanning patterns (zigzag, elliptical, parallel lines etc.) can be added.
7.6 Arrangement of INS, Laser head, and GPS within the body of aircraft
This will allow to include errors in these vectors and to replicate their actual
measurement and the effect of boresight errors. The computation might become lengthy.
There will be flexibility to put these three anywhere in the given body of aircraft by user.
7.7 Waveform digitization/multiple return: The present algorithm can be extended to produce multiple returns. It may also be
possible to simulate the waveform digitization corresponding to each pulse.
7.8 Model viewer
An attempt could be made to display the mathematical model generated for the ground.
This is nothing but the kind of display we generate in Matlab for a mathematical form.
The idea is to see the mathematical model of the ground created.
7.9 Point cloud viewer
It will be better if some of the point cloud processing capabilities can be included in the
simulator. The aim is to develop few visualization tools.
7.10 Check
For the simulator generated confirm from actual data that they represent the actual
trajectory and sensor characteristics. This can be done by comparing the simulated with
the actual in terms of the frequency, amplitude etc. The sensor motion can be compared
by generating the data for parameters over a flat ground for which actual data is also
available. These two can be compared. In addition, the sensor parameters used in
simulator can be generated from the (reverse computation) known pattern o the ground
and by knowing a few parameters of the sensor.
37
A check can also be realized during the actual flight. The data that have been generated
by an actual flight for selected parameters can be compared with simulated data for
similar parameters over terrains which can be simulated (e.g., flat road, roofs, gavel
roofs, large fields, ramps etc.)
8 Conclusion The developed simulator facilitates generation of LiDAR data for the user created terrain
as per the specified sensor and trajectory parameters. The simulator can be highly useful
in a classroom for demonstrating LiDAR data capture process and the effect of changes
in flight-sensor parameters and error. Different kinds of data that can be generated along
with accurate and full ground truth will help in conducting laboratory exercises. Further,
the simulator can help in algorithm testing and in understanding the effect of errors in
LiDAR data generation process.
The present version of simulator is being modified to incorporate more faithfulness by
introducing separate GPS and IMU data collection and their integration; by introducing
concepts of separation of GPS antenna, laser head and INS; by facilitating for multiple
returns, and by making the scope of simulator more comprehensive, etc. Further efforts
are on to generate a full waveform digitization. The main stumbling block in this
development is simulation of bald earth and above-ground objects. Attempt will be made
to find an efficient and accurate solution for this.
38
9 Acknowledgement
This work is supported under RESPOND programme of ISRO. The facilities of IIT
Kanpur have been used to pursue this work. Parmeshwar Reddy worked in this project
during his M.Tech. dissertation and contributed in algorithm development. Rakesh
Kumar Mishra who is working in this project as Project Associate has been mainly
responsible for entire software engineering involved in this work and is also contributing
in algorithm and concept development.
39
10 Bibliography
[1] Abshire J. M., McGarray J. F., Pacini L. K., Blair J. B., and Elman G. C. Laser
Altimetry Simulator version 3.0, 1994.
[2] Agarwal N., Agarwal N. K., and Lohani B. Development of an altimetric lidar
simulator. Technical report, Department of civil engineering, IIT Kanpur, India, 2004.
[3] Allan A. Maths for map makers. Whittles publishing, Roseleigh House,
atheronwheel, KW5 6DW, Scotland, UK, second edition.
[4] Baltsavias E. P. Airborne laser scanning: basic relations and formulas. ISPRS Journal
of Photogrammetry and Remote Sensing, 54 : 199 − 214, 1999.
[5] Bae S. and Schutz B. R. Precision attitude determination. Geoscience Laser Altimeter
System (GLAS). Algorithm Theoretical Basis Document(ATBD) Version 3.0, October
2002.
[6] Chapra S. C. and Canale R. P. Numerical methods for engineers with software and
programming applications. Tata Mcgraw-Hill, 7, West Patel Nagar, New Delhi 110 008,
India, fourth edition.
[7] Filin S. and Csatho B. An efficient algorithm for the synthesis of laser altimeter
waveforms. Technical report, Byrd Polar Research Center(BPRC), 2004.
[8] Gardner C. S. Ranging performance of satellite laser altimeters. IEEE transactions on
geoscience and remote Sensing, 30(5) : 1061 − 1072, 1992.
[9] Grewal B.S. Higher Engineering Mathematics. Khanna publishers, 2-B, Nath Market,
Nai Sarak, Delhi 110 006, India, thirtyfifth edition.
[10] Holmgren J., Nilsson M., and Olsson H. Simulating the effect of lidar scanning
angle for estimation of mean tree height and canopy closure. Canadian Journal of Remote
Sensing, 29(5) : 623 − 632, 2003.
[11] Horstmann C. S. and Cornell G. Core JavaTM2, Volume1- Fundamentals. Pearson
education, 482 FIE, Patpaganj, Delhi 110 092, India, seventh edition.
[12] Leica Geosystems. http : //gi.leica − geosystems.com/default.aspx. [13] Maron I.A.
Problems in calculus of one variable. Mir Publishers, 485, Jain Bhavan, Bhola Nath
Nagar, Delhi-110 032.
40
[14] Moore J. B. Direct kalman filtering approach for gps/ins integration. IEEE
transactions on aerospace and electronic systems, 38(2), April 2002.
[15] Ni-Meister W., Jupp D. L. B., and Dubayah R. Modeling lidar waveforms in
heterogeneous and discrete canopies. IEEE transactions on geoscience and remote
sensing, 39(9), September 2001.
[16] National Oceanic and Atmospheric Administration(NOAA), Coastal Services. http :
//www.csc.noaa.gov/crs/rsapps/sensors/lidar.htm.
[17] Peterson B., Ni-Meister W., Blair J.B., Hofton M.A., Hyde P., and Dubayah R.
Modeling lidar waveforms using a radiative transfer model. International Archives of
Photogrammetry and Remote Sensing, XXXIV(3/W4), 2001.
[18] Pratap R. MATLAB, A quick introduction for scientists and engineers. Oxford
university press, 198, Madison Avenue, New York, 10016, sixth edition.
[19] Rottensteiner F., Kager H., Briese C., and Kraus K. Lidar activities, at the viennese
institute of photogrammetry and remote sensing.
http : //www.ipf.tuwien.ac.at/publications/frcolumbus02/rottensteineretal.pdf.
[20] Schutz B. E. Laser footprint location(geolocation)and surface profiles. Geoscience
Laser Altimeter System (GLAS) Algorithm Theoretical Basis Document (ATBD) version
3.0, October 2002.
[21] Tulldahl H. M. and Steinvall K. O. Analytical waveform generation from small
objects in lidar bathymetry. Applied Optics, 38(6), 20 February 1999.
[22] Vaughn C. R., Bufton J. L., Krabill W. B., and Rabine D. Georeferencing of
airborne laser altimeter measurements. International Journal of Remote Sensing,
17 : 2185 − 2200, 1996.
[23] Wehr A. and Lohr U. Airborne laser scanning -an introduction and overview.
ISPRS Journal of Photogrammetry and Remote Sensing, 54 : 68 − 82, 1999.
[24] Beinat, A. and Crosilla, F., 2002. A generalized factored stochastic model for optimal registration of LIDAR range images, International Archives of photogrammetry an remote sensing and spatial information sciences, 34(3/B), pp. 36-39. [25] Sun, G. and Ranson, K. J., 2000. Modeling Lidar returns from forest canopies, IEEE trans. On geosciences and remote sensing, 38(6), pp. 2617-2626.