Novel 3 D Modelling System Capturing Objects with Sub-Millimetre Resolution

This paper presents novel 3D modelling system providing three-dimensional shaded models of objects, with representing brightness and smoothness of it’s surface. Proposed device is based on laser scanner and robotic manipulator, which empowers high flexibility since it is programmable in 6 degrees of freedom. Exchangeable laser scanners empower capability of building models of both tiny detailed structures and large object. Device is primarily intended to use at health care domain, where it brings lot of expenses savings compared to presently used scanning systems, but it could be used in many other applications. Scanning system constitution, operation and parameters are discussed.


Introduction
Three-dimensional scanning systems are very frequently requested devices today, its market is rapidly growing and its development also move forward very fast.Hand in hand with these new technologies, also their new applications appear.3D computer models are more and more used in situations, where state of any object must be preserved in permanent, timeinvariant state.In this case, colour-covered 3D models seems to be the best modality [20].Also the domain of object cloning is rapidly growing presently.There are lots of 3D printers available on the market now and each of them requires tool for building 3D model to be printed [14].Finally, computer 3D models are, due to its plasticity, becoming more and more used for visualization of objects, which are unreachable (contaminated, dangerous areas) [18], [24] or environments, which are invisible without invasive surgery (human inner structures) [12].Another objects are visible, but its important details are too tiny (human outer structures) and it is necessary to enlarge them plastically [9].All these applications requires the same device: 3D scanner.
In present state, 3D scanners are based on several technologies.Contact 3D scanners uses probe to follow surface of scanned object [10].The most of available 3D scanners are contact-less and uses laser beam, which serves as a base for 3D model computation.Some scanners are based on distance measurements (time-of-flight, triangulation, modulated light), some detects deformation of projected pattern (structured light) [10].All these scanners has common featurethey have to know its position.The most approaches uses linear gantry systems (precise 3D scanners) or ICP computation (hand-held scanners) as a source of scanners position [16].This paper presents 3D modelling system based on novel constitution, which uses combination of 6 DOF industrial robotic manipulator and laser scanner.This solution provide high flexibility as ICP based scanning systems [16] together with high precision and reliability of gantry systems [13].
Result of this work is high accurate and very flexible 3D modelling system, useful for many different applications in medical domain such as monitoring of tissue recovery process, body measurements for rehabilitation purposes or ergonomic splints design; but also at other domains from archiving of historical materials in museums, through design, models for computer games and industrial inspection to 3D object cloning.
As mentioned above, proposed device is based on combination of robotic manipulator and laser scanner.High accuracy is reached by using precise manipulator with accurate laser scanner and high flexibility is caused by programmable scanning trajectory in six degrees of freedom and by replaceability of laser scanner, which provides possibility of scanning both tiny and large structures.
The main purpose, what this device has been developed for, is capturing models of parts of human body.Presently, building such models for these purposes is done by very uneconomical way: there is a detailed model created by Magnetic Resonance Imaging, which contains a lot of information about inner structures.But in many cases, these information are useless for our purposes -just information about outer surface is required.Magnetic Resonance Imaging is very expensive device as well as its operation, creating these models takes a long time and by building our models, patients who need MRI images for more important reasons are blocked.
Scanning system described in this paper is much cheaper as well as its operation is cheaper and creating three-dimensional models is faster.

3D Scanner Architecture
Proposed 3D modelling system can be divided into two subsystems: the first is Robotic 3D Scanner, what is a system, that receives desired scanning trajectory as its input and outputs three-dimensional point cloud.It is composed from commercially available manipulator and scanner, equipped with software fully developed by us in .NET framework.Second is 3D modelling software, which specifies scanning trajectory and processes data from 3D scanner into the form of final 3D model.This software is also made in .NET and fully developed by ourselves.
This chapter describes architecture of the first mentioned subsystem, second subsystem is decribed in chapter 3. Robotic 3D scanner consists of industrial robotic manipulator and planar laser scanner, which is mounted directly on the manipulator's end-point (Fig. 1) and can be easily unmounted by unscrewing fixing screws and unplugging Ethernet and power cable.It allows easy change of used laser scanner in dependence on object size and complexity.Both devices are connected by Ethernet interface to computer, which is equipped with software for controlling both devices.
Controlling software moves with laser scanner along predefined trajectory, and measures distance profiles from each point at scanning trajectory.Since position and looking direction of scanner is known at each point of trajectory, measured data can be transformed to default coordinate system and produced as point cloud (Fig. 2).This approach is more explained in following text.
If scanned object is a large structure, the measuring range must be as wide as possible, so laser scanner based on TOF principle is used.On the other hand, if scanned object is a tiny structure, the accuracy is decisive factor, so we use scanner based on triangulation principle [21].

Laser Scanner Measurements
As mentioned above, this system uses different laser scanners according to the measured object.Each of them have different controlling mechanism, but we want to have unified interface, which doesn't matter on the scanner currently connected.As a result of this, C# driver with unified interface has been created for each used scanner.This approach provides independence on particular device.
At each point from scanning trajectory, distance profile is captured.Every point from this profile contains information about distance from laser scanner, rotation of measuring mechanism, reflected intensity of laser beam, and in case of some triangulation scanners, also width of reflected beam.
Distance and rotation is used for computing position of measured point in default coordinate system, what is described in section 2.3.
Reflected intensity and reflection width determines object's material parameters and are used for surface colouring at fi- nal model.As shown on Fig. 3, intensity of reflected light refers to lightness of surface colour, and reflection width refers to smoothness or sleekness of surface.Smooth surfaces reflects narrow beam, so they are darker coloured than background paper, which is more coarse.The dependence of beam width on smoothness clearly illustrates engraved letter on metallic surfacethey causes changes in reflected width, but the intensity is the same.
It has to pointed out, that reflected intensity refers to amplitude of particular frequency of laser emitter, not to lightness as is visible by eye.It is clear on two plastic film on left: first one is black, what means that this surface absorbs all frequencies including red, what is the colour of laser beam, so, the reflected intensity is low.
Second one is blue, what means, that blue frequency is dominant in reflected light, but also other frequencies are present since the colour is not exactly monochro- matic.Presence of red frequency causes higher value of reflected intensity than at black material.

Robotic Manipulator Control
Robot ordinarily executes program, which has been written in manufacturer-designed scripting language SPEL+ and uploaded into the Control Unit before starting robot's operation.It doesn't allow the flexible reaction on external events received from surrounding systems, what is important for our purposes.However, SPEL+ includes instructions for receiving and transmitting data over Ethernet, so this could be solved by solution shown on Fig. 4.There is a SPEL+ programme which receives commands over TCP/IP and performs desired actions.On the other side of Ethernet link, there is a C# driver which receives requests over its interface and transmits commands to the SPEL+ program.The real-time manipulator control (by C# application) is then empowered [8].
Each command sent from C# driver is acknowledged by robot after it is finished.There are also commands, that return actual position of robotic arm, so there is full control of robot's operation.Driver implement's most of commands available in SPEL+ language, including commands for continuous path navigation through points, which are defined in 6 coordinates -three Cartesian axis defining position of robotic end-point and three rotation coordinates describing its RPY rotation [3].There is not necessary to compute inverse kinematics, since it is computed inside the Control Unit.

3D Point-Cloud Computing
Kernel part of Robotic 3D Scanner represents software, which block scheme is illustrated on Fig. 5 as a block called 3D Scanner.
It receives desired scanning trajectory in form of list of points, where each of them is described by 6 coordinates.Output of this block is a 3D point cloud, what is a set of points described by three Cartesian coordinates and values representing additional informations like a reflection intensity and width.This block encapsulates several others blocks: Trajectory Realization block receives list of points, which should be visited by scanner and from which measuring should be performed.Each point is defined by x, y, z coordinates and by three angles of rotation according to Roll-Pitch-Yaw convention [3].This block consequently instructs manipulator's driver with point to be moved to, and waits for its response.When desired point is reached, driver passes confirmation to Trajectory Realization block, which triggers capturing data from scanner.In the same time, request for real precise position of robotic manipulator, and send these data to Homogeneous Transformation block.
Capturing Data from Scanner block acquires data from laser scanner via scanner's driver.Scanner measures distances along the linear profile and data are acquired in form of distance and angle of actual rotation of sweeping mechanism.It is possible to switch between several laser scanners and its drivers, depending on character of actually scanned object.Measured values are also passed to Homogeneous Transformation block.
Homogeneous Transformation block provides mathematical transformations of acquired data into the form of point cloud.It computes position of measured point in default uniform coordinate system (x 0 ,y 0 ,z 0 ) using data from manipulator encoders and data from laser scanner (Fig. 6).
As an input of this block, there are constants values x t , y t , z t , u t , v t and w t , which describes position of laser scanner relative to robotic manipulator's endpoint.These values are time invariant.Other Input values x, y, z, u, v and w represents position of manipulator's end-point at the time of profile capturing using laser scanner, and they are different for each profile.Values d and α represents measured data from laser scanner.
Let's divide entire system into particular systems, where each of them has its own coordinate system (Fig. 7).System 0 is default coordinate system in which measurement results should be presented.System M is own coordinate system of manipulator.Its origin is placed in the centroid of bottom mounting plate.System E is system with origin at the manipulator's end-point.System S is coordinate system of laser scanner and finally, system L is system of measuring laser beam emitter.Entire homogeneous transformation (H 0L ) from measured values to point in default coordinate system could be defined as sequence of essential transformations between neighbour coordinate systems: Then homogeneous coordinates of measured point in coordinate system 0 (P 0 ) are defined as: where P L represents measured point in coordinate system L and is defined in Eq. (3).
There is a sweeping mechanism, which rotates with this laser source in xy plane of scanner's coordinate system S. Coordinate systems S of each used scanner are shown on Fig. 8.Because system L is system S rotated along z axis by angle α, homogeneous transformation between coordinate systems L and S is defined by matrix H SL (Eq.( 4)), where α is instant deviation from negative x axis of coordinate system S and is also returned by laser scanner.
This laser scanner is mounted on the manipulator's end-point.Centroid of manipulator's end-point defines origin of coordinate system E. Homogeneous transformation from system E to S is combination of translation in all axes and rotation described by RPY model [22] (Eq.( 5)), where c u = cos(u t ), s u = sin(u t ), c v = cos(v t ), ... and x t , y t and z t defines translation of system S in system E along appropriate axis, u t is roll, v t is pitch and w t is yaw of system S in coordinate system E. Parameters x t , y t , z t , u t , v t and w t describe mounting of laser scanner and could be acquired from documentation of each laser scanner and its mounting holder.
This homogeneous matrix defines dimensions and constitution of scanner.Be aware, that in our case, only these parameters are different for different scanners.Other parameters (and consequently other matrices H ab ) are same for every scanner.
Actual position of manipulator's endpoint (eg.origin of system E) is placed inside own manipulator's coordinate system M .Homogeneous transformation from system M to E is once again combination of translation in all axes (x, y and z) and rotation described by RPY model (u is roll, v is pitch and w is yaw) [22] (Eq.( 6)), where c u = cos(u), s u = sin(u), c v = cos(v), ... x, y and z is actual position of manipulator's endpoint in own manipulator's coordinate system M , u is its roll, v is pitch and w is yaw.These parameters are time-variant and could be acquired from manipulators driver.
The coordinate system of manipulator M is placed inside a default coordinate system 0, which we want to transform measured points into.The homogeneous transformation from system 0 to M is H 0M .In our case, system 0 is identical with system M .If it is not, another matrix similar to H M E could be used.

Scanning System Accuracy
Term accuracy can be defined as maximal distance between computed (measured) position of point relative to true position of point at 99.7 % of measurements (±3σ) [4].Overall accuracy of proposed 3D scanning system ∆ P it then defined as composition of robotic manipulator positioning uncertainty ∆ M , laser scanner measuring uncertainty ∆ S and uncertainty ∆ H caused by precision of holder connecting scanner and manipulator's end-point: Enumeration of ∆ H is not possible, since its value depends on present distance of laser scanner from object.But be aware of fact, that precision of currently mounted holder is constant, time-invariant value, so it can be significantly minimizable by calibration, which is described in the following section.Considering calibrated device, overall accuracy describes equation: where both ∆ M and ∆ S are values specified in documentation of each device.Last parameter ∆ C is a residual uncertainty in case, when calibration has been performed.By calibration process (which is discussed in following section) the value of ∆ H is significantly decreased, so ∆ C ∆ H .In the worst case, value of ∆ C could be defined as in Eq. ( 10), so the overall accuracy of device according to [4] is then given by equation: Note, that proposed uncertainty estimation defines the worst case (3σ) and it is experimentally verified, that in real operation, overall accuracy is usually much more better.
For most of capturing sessions, the high resolution is the important factor, so we use MicroEpsilon scanner and according to Eq. 9, overall accuracy in this case is 0.18 mm.But this laser scanner disposes with measuring range only 10 cm long [2], so we can capture just in proximity of manipulator's operating area.In case of capturing larger structures (e.g. as buildings), we use laser scanner SICK LMS400.In this configuration, overall accuracy is lower (12.06 mm), but measuring range is up to 3 m from robotic end-point and these structures are usually so big, that this resolution is sufficient.

Calibration
The aim of calibration procedure is to compensate deviations of real dimensions of mounting holder compare to dimensions stated in its documentation.If these deviations are compensated, then equation for overall accuracy Eq. ( 8) is valid.In fact, it is looking for 6 calibration constants determining translation and rotation of scanner in 6-DOF caused by imprecision of mounting holder.
Proposed method is based on principle, that if some scene is firstly captured from one direction, and then the same scene is captured from another direction, deviations in mounting holder dimensions causes shifting and deforming of scene, but in both cases differently.From differences among these two images of the same scene, we can compute desired calibration constants.This approach would work in case of any scene, but for the simplification of image processing, we use scene of cuboid laying on the flat ground [7].
Significant advantage of this method is, that it is based on general object, without any requirements on its precision.If we use common calibration method based on reference object with known dimensions, it will be very difficult to manufacture reference object with enough precision.
Detailed description of computing of each calibration parameter can be found at [7], here it is not presented in order to be concise.

Residual Error after Calibration
Calibration procedure search for identical points in two scans of the same scene and evaluates such transformation, which merges these points together.Lets imagine the worst case of this -there is only one point measured from 2 places.Each representation of point is measured with maximal deviation from true value ∆ = ∆ M + ∆ S , so if we merge there points together, we can cause residual error ∆ C , which maximal value is: Each uncertainty of ∆ C is composed from uncertainty type A and type B [19].When number of measurements increases, the uncertainty type A is being minimized and measured value converges in direction to true value.Because calibration procedure uses several thousands of points, also residual error ∆ C after calibration will be smaller than at Eq. (10).
As a result of this, the overall accuracy will be usually better than maximal guaranteed error defined in Eq. ( 9), what is a limit value of error.

Evaluating Benefits of Calibration
To be able to evaluate benefits of calibration, the criterion function has been introduced.For each point from one scan, distance to every point from second scan is computed and square of distance to the nearest point is added to the sum: where I 1 and I 2 are scans which correlation we are looking for and xy is a distance between points x and y.The task of calibration procedure is to compute such combination of calibration constants, which provides the smallest value of f err .
Beside the criterion function values, also averageabsolute error ∆ abs and root-mean-square error ∆ abs were computed in order to provide illustrative demonstration of calibration influence using equations [17]: Influence of calibration is demonstrated in Fig. 9 and in Tab. 1.  Fig. 10: Block scheme of entire scanning system focused on higher software layer enclosing the kernel 3D scanner.

3D Modelling By Robotic Scanner
Previous chapter deals with kernel scanning system, which produces cloud of points in three dimensional space.But it is not the entire system, since the visualization of objects in form of point cloud is not illustrative enough; there are also other modules as shown on Fig. 10, which processes generated point cloud to form of three-dimensional shaded model, covered with texture representing reflected intensity or reflection width data (examples in section 3.5.).Beside this, user friendly environment for scanning trajectory defining has been provided, introducing simple scripting language for trajectory definition.

Trajectory Planning
Trajectory planning module generates scanning trajectory in form of list of points to be visited.Each point is defined by three Cartesian coordinates and three rotation angles, which uniquely determines position of manipulator's end-point with mounted scanner and direction, where is scanner looking to.At each point robotic manipulator stops, triggers capturing of single profile by laser scanner and after that, continues to the next point.
This approach brings high flexibility, because scanning trajectory could be adjusted according to the type of scanned objects, and because of 6 DOF movements of manipulator, is practically limited only by its dimensions.Comparing to common three-dimensional scanners, which usually uses sliding carriages similar to carriage in common optical 2D scanner, it is much more flexible.
Possibility of defining directly each point of trajectory provides flexibility, but low comfort for users defining trajectory.To make work with device more comfortable, there is also environment, which allows defining trajectory using scripting approach (Fig. 11).There are several commands for essential geometrical shapes, which trajectory could be assembled from, such as moving along line between two points and capturing defined number of profiles, moving along the arc defined by three points, etc.These commands are translated to the list of points by Trajectory Planning processor and then sent to the Trajectory Realization block.
To see programmed trajectory before it is sent to manipulator, in order to avoid possible malfunction in case of trajectory wrong defined, there is a visualization tool, showing position of manipulator's end-point and direction, where scanner looks at (Fig. 12).

Surface Generation
Surface Generator module processes measured point cloud to form of three-dimensional shaded and texture covered model.This process consists in determination of three points on the surface in neighbourhood, which can be connected into the triangle, what is an essential primitive of graphic devices [11].
In this 3D modelling system, we use two different methods: one of them is a Delaunay Triangulation [6].This is a common mesh generation method, which is usable for totally unorganized sets of points [5] and is significantly slow.Because of that, we use it just in cases, where measured sample is a complex non-convex object or consists of many unconnected parts.
But in most cases, the sample is solid one-piece object without any cavities.For these purposes, we developed significantly faster method, which is based on polyhedral terrain model [5].It uses not only pure point cloud data, but also additional information about order in which they were scanned and which point of scanning trajectory they were scanned from.
Since object meets defined preconditions, each of its particular small areas of surface can be considered as terrain map projected into the plane perpendicular to direction where scanner looks at.And in this view, the nearest neighbours on the surface are points, which were scanned just in sequence, one after another.
If we also define scanning trajectory in a way, that its tangent is always perpendicular to measuring plane of laser scanner, the nearest neighbours on the surface are also points, which were scanned with same ordering number in two subsequently captured profiles.This condition is satisfied in most cases, because in most cases it is the trajectory with best view to object.
From these two findings about neighbours, we can formulate links between points as: C(P i,j ) = {P i,j+1 , P i,j−1 , P i+1,j , P i−1,j , P i+1,j+1 ,P i−1,j+1 , P i+1,j−1 , P i−1,j−1 }, (14) where C(P i,j ) is a set of connections from point P i,j to points inside the set, i is the number of profile and j is the number of sample in profile.All these sets of connections creates desired triangle-consisted surface, displayable by graphic device.

Saving Models
Created 3D models are saved to file in format, which is based on XML architecture.Root element encapsulates several child elements: • Metadata: XML formatted metadata information about creator, time of creation, configuration, with which the model was captured, etc.Each information is saved in separate XML element.
• Vertices: Base64 encoded binary data containing 3D coordinates of points belonging to model.Each coordinate is saved in 4 bytes of float format.• Trajectory: Text encoded scanning trajectory for purposes of post-processing, eg.recomputing of data acquired with uncalibrated system, etc.
• Reflected Intensity: Base64 encoded binary data containing reflected intensity of points belonging to model.Each value is saved in 2 bytes of short integer format.
• Reflection Width: Base64 encoded binary data containing reflected intensity of points belonging to model.Each value is saved in 2 bytes of short integer format.
The Base64 encoding of large data blocks is used from compress reasons of resulting file.Due to modular structure of file, this format is easily extensible, some block can be missing and also supports backward compatibility.The advantage of this structure is also easy loading of data in different viewing modes (more at following section).

Model Viewer
An integral part of proposed 3D modelling system is the viewer of created models (Fig. 13).As same as all other software applications related to this 3D system, it has been created on our own to keep full control of its operation.
Among basic features for viewing of 3D models (like rotating, moving or scaling), allows switching between different viewing modes: • Surface Only: Surface of object is covered with uniform colour to express pure spatial representation of object (Fig. 15).
• Reflectivity: Surface of object is covered with colour expressing intensity of reflected laser beam (Fig. 16).
• Refl.Width: Surface of object is covered with colour expressing width of reflected laser beam (Fig. 17).
Both Reflectivity and Reflection Width data can be displayed in both Grayscale and Rainbow colour representation.

Examples of Generated 3D Models
Examples of resulting shaded models generated by this 3D modelling system are in Fig. 14, Fig. 15, Fig. 16, Fig. 17 and Fig. 18. Figure 14, Fig. 15, Fig. 16 and Fig. 17 were captured using precise triangulation scanner MicroEpsilon scanCONTROL 2750-100 with measuring accuracy 0.04 mm [2].Visibility of pleats of skin    on knuckles or distinguishability of particular vessels proves very high resolution of proposed 3D scanner.
Figure 15 shows model of human hand figured in pure surface model mode.Figure 16 displays 3D model, covered by colour related to surface reflectivity.Its clear, that reflectivity-driven colouring of surface turns model into more friendly visualization than in case of pure surface.The golden ring on the finger is not significantly visible, because its brightness is similar to brightness of skin around.Bigger differences between ring and skin shows Fig. 17 with colouring related to reflection width (lightest colour means highest divergence of laser beam).The narrowest beam is reflected from shiny ring, bigger beam divergence causes skin, and the widest beam is detected at nails, what is caused by its diffuse structure.
Figure 14 shows, that hairs does not affect surface of model, but they are detectable at reflectivity image since they absorb/diffuse laser beam.
There is also a model of entire body captured by TOF laser scanner SICK LMS400 with measuring accuracy 4 mm [1] presented (Fig. 18).The lower accuracy causes surface corrugation.Waves on patient's belly are caused by non zero time between measurement of particular profiles, what is a common problem when scanning living creatures.Possible solution could be speeding up of whole scanning process.

Conclusions
This paper presents novel 3D modelling system based on robotic manipulator and laser scanner.Due to use of ones of the most accurate devices, scanning system is capturing models with submillimetre resolution, however, proposed solution is universal and can be re-peated with any robotic manipulator and with any scanner.
Essential part of entire 3D modelling system is 3D scanner producing cloud of spatial measurements.Due to robotic manipulator's motion in 6 degrees of freedom, its scanning trajectory can be almost arbitrary, what brings very high flexibility of 3D modelling system usage.Together with exchangeable laser scanners, proposed system is an universal 3D modelling tool capable of capturing almost any object -in case of tiny structures, we can use triangulation-based scanners, if high accuracy is not so important for us (in case of large structures), we can use TOF laser scanner.
If the used laser scanner provides besides distance data also intensity of reflected beam, the 3D model can be coloured according to this additional information, what makes resulting 3D models more authentic to the original object.
In future work, this system could be extended by data fusion of 3D surface model and texture from CCD camera [23], [15].We are also planning to implement functions for computing object volume and surface area from 3D model, what could be useful for medical domain.
In case of use of this system in health care domain, it could bring significant savings in acquisition costs and operation costs with keeping quality of service at the same level, since in many cases, this 3D scanning system can supply Magnetic Resonance Imaging, what is one of the most expensive diagnostic tool available.This device is developed in cooperation with St. Anne's University Hospital, where final Robotic 3D Scanner should be installed and used for several diagnostic examinations.

Fig. 3 :
Fig. 3: Visualization of surface data, reflected intensity and reflection width of different materials -from left: two smooth plastic films, metallic polished surface with engraved letters and transparent tape on paper.

Fig. 5 :
Fig. 5: Block scheme of scanning system with accent on kernel software.

Fig. 7 :
Fig. 7: Overview of coordinate systems used in homogeneous transformation block.

Fig. 8 :
Fig. 8: Example of coordinate systems S of both scanners used at our particular application of proposed 3D scanning system [2], [1].

Fig. 9 :
Fig. 9: Influence of calibration.On the left, point-cloud measured without previous calibration is presented.On the right, there is a point-cloud measured by calibrated device.On both figured, two scans of one scene captured from different positions are presented.One scan is displayed in blue, second in red.

Fig. 11 :
Fig. 11: Screenshot of Trajectory Manager, the tool for scanning trajectory definition and management.

Fig. 12 :
Fig. 12: Screenshot of trajectory visualization tool.Dots represents scanner positions and arrows directions, where scanner looks at.

•
Indices: Base64 encoded binary data containing indices of points defining the triangles.Each index is saved in 4 bytes of integer format.Vertices and indices are separated the same way as in graphic device, what empowers very easy file readingvertex and index buffers are simply copied into the graphic device's memory.

Fig. 16 :
Fig. 16: 3D model of hand with ring on finger -reflectivity expressed by Grayscale colouring.

Fig. 17 :
Fig. 17: 3D model of hand with ring on finger -reflection width expressed by Grayscale colouring.

Fig. 18 :
Fig. 18: Surface covered model of human body created with SICK LMS400 scanner.
Tab. 1: Illustrating influence of calibration.Values of criterion function demonstrates benefits of proposed calibration procedure.