JAMRIS 2017 Vol 11 No 3

Page 1

VOLUME 11 N°3 2017 www.jamris.org pISSN 1897-8649 (PRINT) / eISSN 2080-2145 (ONLINE)

Indexed in SCOPUS


JOURNAL OF AUTOMATION, MOBILE ROBOTICS & INTELLIGENT SYSTEMS

Editor-in-Chief

Typesetting:

Janusz Kacprzyk (Polish Academy of Sciences, PIAP, Poland)

Ewa Markowska, PIAP

Advisory Board:

Piotr Ryszawa, PIAP

Dimitar Filev (Research & Advenced Engineering, Ford Motor Company, USA) Kaoru Hirota (Japan Society for the Promotion of Science, Beijing Office) Witold Pedrycz (ECERF, University of Alberta, Canada)

Webmaster: Editorial Office:

Co-Editors:

Industrial Research Institute for Automation and Measurements PIAP Al. Jerozolimskie 202, 02-486 Warsaw, POLAND Tel. +48-22-8740109, office@jamris.org

Roman Szewczyk (PIAP, Warsaw University of Technology) Oscar Castillo (Tijuana Institute of Technology, Mexico) Marek Zaremba (University of Quebec, Canada)

Copyright and reprint permissions Executive Editor The reference version of the journal is e-version. Printed in 300 copies.

Executive Editor: Anna Ładan aladan@piap.pl

Associate Editor:

The title receives financial support from the Minister of Science and Higher Education of Poland under agreement 857/P-DUN/2016 for the tasks: 1) implementing procedures to safeguard the originality of scientific publications, and 2) the creation of English-language versions of publications.

Maciej Trojnacki (PIAP, Poland)

Statistical Editor: Małgorzata Kaliczynska (PIAP, Poland)

Editorial Board: Chairman - Janusz Kacprzyk (Polish Academy of Sciences, PIAP, Poland) Plamen Angelov (Lancaster University, UK) Adam Borkowski (Polish Academy of Sciences, Poland) Wolfgang Borutzky (Fachhochschule Bonn-Rhein-Sieg, Germany) Bice Cavallo (University of Naples Federico II, Napoli, Italy) Chin Chen Chang (Feng Chia University, Taiwan) Jorge Manuel Miranda Dias (University of Coimbra, Portugal) Andries Engelbrecht (University of Pretoria, Republic of South Africa) Pablo Estévez (University of Chile) Bogdan Gabrys (Bournemouth University, UK) Fernando Gomide (University of Campinas, São Paulo, Brazil) Aboul Ella Hassanien (Cairo University, Egypt) Joachim Hertzberg (Osnabrück University, Germany) Evangelos V. Hristoforou (National Technical University of Athens, Greece) Ryszard Jachowicz (Warsaw University of Technology, Poland) Tadeusz Kaczorek (Bialystok University of Technology, Poland) Nikola Kasabov (Auckland University of Technology, New Zealand) Marian P. Kazmierkowski (Warsaw University of Technology, Poland) Laszlo T. Kóczy (Szechenyi Istvan University, Gyor and Budapest University of Technology and Economics, Hungary) Józef Korbicz (University of Zielona Góra, Poland) Krzysztof Kozłowski (Poznan University of Technology, Poland) Eckart Kramer (Fachhochschule Eberswalde, Germany) Rudolf Kruse (Otto-von-Guericke-Universität, Magdeburg, Germany) Ching-Teng Lin (National Chiao-Tung University, Taiwan) Piotr Kulczycki (AGH University of Science and Technology, Cracow, Poland) Andrew Kusiak (University of Iowa, USA)

Mark Last (Ben-Gurion University, Israel) Anthony Maciejewski (Colorado State University, USA) Krzysztof Malinowski (Warsaw University of Technology, Poland) Andrzej Masłowski (Warsaw University of Technology, Poland) Patricia Melin (Tijuana Institute of Technology, Mexico) Fazel Naghdy (University of Wollongong, Australia) Zbigniew Nahorski (Polish Academy of Sciences, Poland) Nadia Nedjah (State University of Rio de Janeiro, Brazil) Dmitry A. Novikov (Institute of Control Sciences Sciences, Russian Academy of Sciences, Moscow, Russia) Duc Truong Pham (Birmingham University, UK) Lech Polkowski (Polish-Japanese Institute of Information Technology, Poland) Alain Pruski (University of Metz, France) Rita Ribeiro (UNINOVA, Instituto de Desenvolvimento de Novas Tecnologias, Caparica, Portugal) Imre Rudas (Óbuda University, Hungary) Leszek Rutkowski (Czestochowa University of Technology, Poland) Alessandro Saffiotti (Örebro University, Sweden) Klaus Schilling (Julius-Maximilians-University Wuerzburg, Germany) Vassil Sgurev (Bulgarian Academy of Sciences, Department of Intelligent Systems, Bulgaria) Helena Szczerbicka (Leibniz Universität, Hannover, Germany) Ryszard Tadeusiewicz (AGH University of Science and Technology in Cracow, Poland) Stanisław Tarasiewicz (University of Laval, Canada) Piotr Tatjewski (Warsaw University of Technology, Poland) Rene Wamkeue (University of Quebec, Canada) Janusz Zalewski (Florida Gulf Coast University, USA) Teresa Zielinska (Warsaw University of Technology, Poland)

Publisher: Industrial Research Institute for Automation and Measurements PIAP

If in doubt about the proper edition of contributions, please contact the Executive Editor. Articles are reviewed, excluding advertisements and descriptions of products. All rights reserved © Articles

1


JOURNAL OF AUTOMATION, MOBILE ROBOTICS & INTELLIGENT SYSTEMS VOLUME 11, N° 3, 2017 DOI: 10.14313/JAMRIS_3-2017

CONTENTS 45

3

Modeling of IR Proximity Sensors with the Use of Interval Mittag-Leffler Function Krzysztof Oprzędkiewicz, Maciej Garbacz DOI: 10.14313/JAMRIS_3-2017/22

Application the GPS Code Observations in BSSD Method for Recovery the Position of the Aircraft Kamil Krasuski, DOI: 10.14313/JAMRIS_3-2017/27

A Comprehensive Aproach to Teaching Mobile Robotics Łukasz Chechliński, Daniel Koguciuk DOI: 10.14313/JAMRIS_3-2017/23

Development and Improvement of Systems of Automation and Management of Technological Processes and Manufactures Nadirbek Yusupbekov, Farukh Adilov, Farkhod Ergashev DOI: 10.14313/JAMRIS_3-2017/28

7

15

Manipulation and Path Planning for KUKA (LWR/ LBR 4+) Robot in a Simulated and Real Environment Tarwadi Parag Jitendra, Arockia A. Selvakumar, Juan Antonio Corrales Ramon DOI: 10.14313/JAMRIS_3-2017/24 22

The System for EMG and MMG Singals Recording for the Bioprosthetic Hand Control Andrzej Wołczowski, Michał Błędowski DOI: 10.14313/JAMRIS_3-2017/25 30

Extensible, Fast And Secure Scala Expression Evaluation Engine Arkadiusz Janik, Roman Janusz DOI: 10.14313/JAMRIS_3-2017/26

2

Articles

53

58

Aggregation and Related Functions in Fuzzy Set Theory: Dualities and Monotonicity-Based Generalizations Radko Mesiar, Anna Kolesarova DOI: 10.14313/JAMRIS_3-2017/29 62

On Automatic Metric Radio Map Generation for the Purpose of WiFi Navigation Piotr Bigaj, Jakub Bartoszek DOI: 10.14313/JAMRIS_3-2017/30


Journal of Automation, Mobile Robotics & Intelligent Systems

VOLUME 11,

N° 3

2017

Modeling of IR Proximity Sensors with the Use of Interval Mittag-Leffler Function Submitted: 17th December 2016; accepted 11th July 2017

Krzysztof Oprzędkiewicz, Maciej Garbacz DOI: 10.14313/JAMRIS_3-2017/22 Abstract: In the paper new, interval models of IR proximity sensors are presented. The dependence between distance and signal from sensor is described with the use of exponential function and two parameter Mittag-Leffler function with interval parameters. Identification method for was also proposed. Results of experiments show, that two parameter Mittag-Leffler function most accurate describes a behaviour of proximity IR sensor, than exponential function. Keywords: IR proximity sensors, IR reflex sensors, interval models, Mittag-Leffler function

1. Introduction IR reflex proximity sensors are available for a wide range of applications as ready-to-use components known as couplers, transmissive sensors (or interrupters), reflex couplers and reflex sensors. Increased automation in industry in particular has heightened the demand for these components. One of main areas of applications of these devices is mobile robotics, where they are applied to short range obstacle detecting. Advantages of application this kind of sensors are obvious: they are easy in use and no to expansive, they can measure both ambient and reflective light. A proper model of IR sensor is also necessary to construct a robust control system for each device using it, for example a mobile robot. However it is important to notice that measurements done with the use of IR sensors are strongly influenced by ambient conditions: light, temperature, reflectivity of detected object. An example of output signal vs distance from object for different reflecting surfaces is shown in the Fig. 1. Notice that the set of characteristics shown in the Fig. 1 can be shown as a sector limited by borders obtained for white and black objects. Consequently, a mathematical model should describe all situations during work of sensor. This implies, that reasonable is to propose an interval model. The goal of this paper is to propose new, interval parameter models using Mittag-Leffler function describing IR proximity sensors. Proposed models are expected to properly describe the work of sensor for different reflecting surfaces and ambient conditions

przeszkoda w kolorze białym, włączone oświetlenie przeszkoda w kolorze białym, wyłączone oświetlenie przeszkoda w kolorze drewna, włączone oświetlenie przeszkoda w kolorze drewna, wyłączone oświetlenie przeszkoda w kolorze czarnym, włączone oświetlenie przeszkoda w kolorze czarnym, wyłączone oświetlenie

Fig. 1. Collection of characteristics IR sensor for different materials and ambient light: white object (red), natural wood (blue) and black (black) (temperature, light). The paper is organized as follows: at the beginning one- and two parameter Mittag-Leffler functions are presented. Next interval models using two-parameter Mittag-Leffler function are proposed and verified with the use of experimental results.

2. Mittag-Leffler Functions

The one parameter Mittag-Leffler function is a generalization of exponential function ex and it is broadly applied in non-integer order calculus, but of course it can be also used to another goals. It is expressed as follows: xk k =0 G(ka + 1) ∞

E a (x ) = ∑

(1)

Where aÎR, G(x) denotes the Gamma function: ∞

G(x ) = ∫ t x −1e − t dt 0

(2)

The Mittag-Leffler function turns to exponential function for order a=1: E1(x)=ex. Next the two parameter Mittag-Leffler function is expressed as underneath: xk k =0 G(k a + b ) ∞

E a,b (x ) = ∑

(3)

For b=1 the two parameter Mittag-Leffler function (3) turns to one parameter function, described by (1).

3


Journal of Automation, Mobile Robotics & Intelligent Systems

VOLUME 11,

N° 3

2017

Relation analogical to (5) in the case of Mittag-Leffler functions is not so obvious, as for exponential function. Limits of Mittag-Leffler function with interval parameters can be uniquely assigned for certain combinations of parameters a, β and a with constant (not interval!) values of other parameters. They are given underneath. For interval orders a, β and a=const the borders are expressed as follows: U MLf 2 (l ) = U0 E a,b ( − al ) U MLf 2 (l ) = U0 E a,b ( − al )

For β =1, a = const and interval a equations (7) reduce to interval model with one parameter MittagLeffler function:

Fig. 2. Mittag-Leffler functions: E0.5(-x) (red) E0.5,0.5,(-x)(green) vs exp(-x) (blue)

U MLf 1 (l ) = U0 E a ( − al ) U MLf 1 (l ) = U0 E a ( − al )

(8)

Elementary properties of Mittag-Leffler functions are presented by many Authors, for example in [2]. Exemplary diagrams of Mittag-Leffler functions (1) and (3) vs exponential function are given in the Fig. 2

For a, β =const and interval a the borders of Mittag-Leffler function are defined analogically to (5):

Mathematical model of the sensor, dedicated to apply in robotics is required to properly describe a level of output signal from sensor as a function of distance between sensor and obstacle. It is important to notice, that this model should be correct for different conditions (temperature, light, reflecting properties of object, etc.). This implies that a sensible option is the use of an interval model. Elementary information about interval analysis are given for example in fundamental book [7]. The shape of function shown in the Figure 1 suggests the use an exponential function or Mittag-Leffler function with interval coefficients. The diagram of function with interval parameters has the form of sector, limited by border values of applied function. Firstly the exponential function will be proposed. It has the following form:

It is important to notice that estimation of borders, analogical to (5)–(9) for all interval parameters: a, β and a cannot be given. This implies that the another form of interval functions describing sensor indicating different objects should be proposed. The simple idea is to identify sets of interval parameters for both border measurements (black and white object) separately and next use they to the whole sector estimation. More details about it will be given in the next section.

3. Interval Expansion of Estimating Functions

U exp (l ) = U0e − bl

(4)

Where U0 = [U0 ;U0 ] denotes the level of signal in minimal distance, b = [b;b] denotes interval parameter and l denotes a distance between sensor and object. The border values of interval function (4) are expressed as follows:

(5)

Next, the model using the two parameter MittagLeffler function can be proposed. It is expressed as underneath: (6) U MLf 2 (l ) = U0 E a,b ( − al ) 4

(7)

Where U0 = [U0 ;U0 ] , a = [a;a] , a ∈[ a ; a] , b ∈[ b ; b] .

Articles

U MLf 2 (l ) = U0 E a,b ( − al )

U MLf 2 (l ) = U0 E a,b ( − al )

(9)

4. Identification of Interval Models

In a real situation characteristics generated by a model is compared to real measurements done in discrete, separated distance points. Assume that the maximal range of distance is equal L and Ks measurements can be done. Then the k-th point of measurement is done for distance: kL/Ks. These values will be written as U(k) and Um(k), respectively. Furthermore, these values in each step are expressed by intervals to describe a broad spectrum of environmental conditions: U(k ) = U(k ),U(k )

U m (k ) = U m (k ),U m (k )

(10)

Where U(k) denotes the measurement in k-th distance point. The lower value U(l ) describes the characteristics for black object and the upper value U(l ) describes the characteristics for white object. Next, Um(k)denotes the response of model in the same point and for the same object, described by (5), (6) or (8). The interpretation of both border values is the same, as for real measurements (lower value for black object and upper value for white object). Denote the difference between measurement and model response in k-th point as e(k):


Journal of Automation, Mobile Robotics & Intelligent Systems

VOLUME 11,

(11)

e(k ) = U(k ) − U m (k )

Both measurement and model are described by intervals (10), what causes that the error (11) is also interval, expressed as underneath: e(k ) = e(k ),e(k )

Where borders of interval (12) are equal: e(k ) = U(k ) − U m (k )

(12)

N° 3

2017

Table 1. Parameters of interval exponential function (4) U0

a

MSE

[1154;

0.0290

1.9398e+05

3944]

0.0911

6.8454e+06

(13)

e(k ) = U(k ) − U m (k )

An identification of the all considered models can be done with the use of typical MSE cost function: MSE =

1 Ks

Ks

∑ (e(k )) k =1

2

(14)

The cost function (14) is dedicated to describe models with known parameters. In the considered case it will be applied to estimate borders of all interval functions Um(k). This will be shown in the next section.

5. Experiments

Experiments were done with the use of IR proximity sensor Vishay TCRT5000 mounted at Khepera III mobile robot. Description of this sensor in given by [3]. The analog signal from sensor is converted to 12 bit number and next it is transferred to computer via USB link. Set of signal vs distance characteristics is given in the Fig. 1. From Fig. 1 it can be concluded, that borders of interval function (9) are drawn by diagrams for white and black materials. They are shown in the Fig. 3. The number of samples during experiments was equal: Ks=72. Diagrams shown in Fig. 3 were applied to estimate borders of interval functions (4) and (6). Results are given in Tables 1 and 2. Sectors estimated with the use both proposed models are shown in Figures 4 and 5. Based on figures 4 and 5 it is visible, that two-parameter Mittag-Leffler function describes characteristic of IR proximity sensors much better than exponential function- because of its specific shape.

Fig. 4. Sector limited by exponential function Table 3.Parameters of interval two-parameter Mittag-Leffler function (6) U0

a

b

a

MSE

[1154;

0.2347

1.8192

0.1775

828.1

3944]

0.0622

1.2317

0.0394

6851.3

Fig. 5 .Sector limited by the two-parameter Mittag-Leffler function

6. Conclusions

Fig. 3 . Border characteristics of sensor

Final conclusions from the paper can be formulated as underneath: Using of interval models of IR proximity sensors enable construct universal model of sensors characteristic. This universal model is necessary to collision-free tracking of Khepera III mobile robot in various workspace. Normally, value of measurements Articles

5


Journal of Automation, Mobile Robotics & Intelligent Systems

of IR proximity sensors depend on material features of obstacles such color, kind of material and illumination intensity in the room. For example, the black obstacles are visible for IR proximity sensors much later than the white ones. So, it is necessary to improve universal application to detect obstacles independently of its features. Using of Mittag-Leffler function enabled to create satisfactory model of IR proximity sensors. Especially, the two-parameter Mittag-Leffler function describes the characteristic of IR proximity sensors much better than exponential function and can be used in collision-free path planning applications in unknown environment. For example, in [9] path planning algorithms with obstacle avoidance based on IR proximity sensors was presented. During a lot of experiments it turned out to propose algorithms insensitive to for example color of obstacles. In this case using of two-parameter Mittag-Leffler function to describe a behavior of IR proximity sensors was successful.

ACKNOWLEDGEMENTS

This work was supported by the AGH (Poland) project no 11.11.120.815.

AUTHORS

Krzysztof Oprzędkiewicz*– AGH University, Faculty of Electrotechnics, Automatics, Informatics and Biomedical Engineering, Dept of Automatics and Biomedical Engineering, al. A. Mickiewicza 30, 30-059 Kraków, Poland. E-mail: kop@agh.edu.pl. Maciej Garbacz – AGH University, Faculty of Electrotechnics, Automatics, Informatics and Biomedical Engineering, Dept of Automatics and Biomedical Engineering, al. A. Mickiewicza 30, 30-059 Kraków, Poland. E-mail: mgarbacz@agh.edu.pl. *Corresponding author

REFERENCES

[1] C. Escriba, Campo E., Estève D. . Fourniols J.Y, “Complete analytical modeling and analysis of micromachined thermoelectric uncooled IR”, Sensors and Actuators. A: Physical, vol. 120, issue 1, 29 April 2005, 267–276. DOI: 10.1016/j. sna.2004.11.027. [2] H. J. Haubold, A. M. Mathai, R. K. Saxena, “Mittag-Leffler Functions and Their Applications”, Journal of Applied Mathematics, vol. 2011. DOI: 10.1155/2011/298628. [3] van Hodgkin A., Kowalewski B., Tomkinson D., Teaney B. P., Corbin T., Driggers R., “Modeling of IR sensor performance in cold weather”. In: Proc. of

SPIE The International Society for Optical Engineering, June 2006.  DOI: 10.1117/12.664436.

6

Articles

VOLUME 11,

N° 3

2017

[4] Isermann R., Muenchhof M., Identification of Dynamic Systems. An Introduction with Applications, Springer 2011. [5] Ljung L., Glad T., Modeling of dynamic systems, Prentice Hall 1994. [6] Moore R., Kearfott R.B., Cloud M.J., Introduction to interval analysis SIAM, 2009. [7] Zhang G., “Identification of interval models for a class of uncertain systems via linear programming”. In: Proc. of American Control Conference 2010, DOI: 10.1109/ACC.2010.5530961. [8] http://www.vishay.com/docs/80107/80107.pdf [9] Garbacz M., Zaczyk M., Path planning algorithms in unknown environment for Khepera III mobile robot, semi-annual of AGH University: Automatyka, 2009, vol. 13, no. 3, part 1, ISSN 1429-3447.


Journal of Automation, Mobile Robotics & Intelligent Systems

AC

A

VOLUME 11,

T

M

N◦ 3

2017

R

Submi ed: 10th February 2017; accepted: 4th August 2017

Łukasz Chechliński, Daniel Koguciuk DOI: 10.14313/JAMRIS_3-2017/23 Abstract: Mobile robo cs can be an interes ng subject for many students in a variety of engineering science fields. It builds a bridge between the pure theore cal digital world and the real, open environment. Several research results show that learning mobile robo cs gives not only the ability to control certain types of robots but also develop many science-related a ributes, technical and social skills. On the other hand, programming mobile robots is hard, and without a good guide, students are likely to lose their inspira on. For this purpose, we decided to develop a set of four exercises showing mobile robo cs in the accessible and comprehensive way. The tasks were prepared for two types of wheeled robots: first equipped with a webcam, and second with sonar range finders. Both robots run using the ROS framework, as we find it the most popular robo cs tool. The exercises are also designed considering the limited budget of educa onal ins tu ons. Finally, guides for the tasks described in this paper have been shared on-line with the robo cs community. Keywords: teaching, mobile robo cs

1. Introduc on The latest research show that the educational aspect of mobile robotics can be more important than teaching constructors of autonomous mobile robots, because it can bring direct bene its to a wider range of students. This resulted in many publications and special issues in high-indexed journals. In this article, we present a modern set of exercises designed to provide engineering students a rapid and engaging introduction to the programming of mobile robots, as well as to aid in the development of skills in problem solving, arti icial intelligence, computer vision and general programming. In [3] and [9] the large scale research shows that students of any age can bene it from educational robotics, improving their technical and social skills, such as computational thinking, general programming, computer science, scienti ic investigation, self-ef iciency, problem solving, goal setting skills and team-work attributes. In luence of amateur robotics competitions (i.e. competitions for pupils and students constructing low-budged robots for such tasks as line follower, mini-sumo or micro mouse) is presented in [13]. Also [6] shows that team work and solving well-de ined robotics problems can result in the evolution of engi-

neering skills. Several researches were made on developing low-cost, printable educational robots [2] [14] [11]. An interesting usage of such robots is presented in [8], in which low-cost wheeled mobile robots together with a simulator builds a multi-robot formation control platform. Hardware-oriented robotics student projects are described in [16], [7] and [4]. The topic of educational robotics is also present in the Journal of Automation, Mobile Robotics & Intelligent Systems. Impact of mobile robotics into modern engineering skills is presented in [5]. More social and generally-technical aspects are presented in [10], where common learning of pre-school children, pupils and grandparents is presented. Article [12] suggest, that the ROS is the best tool for learning robotics. As far as we know, no better tool is available for free, because the ROS gives not only a piece of useful code, but also a large community support. Our approach has several similarities to these mentioned above. Developed exercises are based on ROS;, we also focus on the idea of the general technical and social skills improvement. To our best knowledge, this article describes some novels: education in ields of robotics and computer vision is merged, presented tasks are easily applicable to some popular kinds of robots (the lack of well-described exercises was noticeable previously). We think that journals such as this one are the best place for discussing engineering education topics. On the one hand, an international character allows worldwide idea sharing, and on the other hand popularity in the region facilitate sharing educational materials directly in a students’ native language. Also, aspects of the engineering education management and inancing can be discussed. Students after a third year of robotics studies are the main target for our course. Background in general programming skills and computer vision is necessary. In our opinion, effective teaching of robotics is hard, but the bene its are worth it. This article presents the irst step of our methodology. On each step, the lecturer is active mainly during the lecture, while during the laboratories he keeps on asking the questions, preventing students from time-wasting mistakes and directly answering only the dif icult questions. All steps are enumerated below: 1) control robot inputs and outputs, programming simple behavioural agents (15 h of lectures and 20 h of laboratories), 2) enrich agents with Arti icial Intelligence in well7


Journal of Automation, Mobile Robotics & Intelligent Systems

VOLUME 11,

N◦ 3

2017

de ined environments (20 h of lectures and 10 h of laboratories), 3) develop a software for regular autonomous mobile robots (20h of lectures and 10 h of laboratories) As we can see only the last step is dedicated only for the future mobile robots’ developers, while irst two steps focus on developing general skills. During the irst step students are more strictly guided to get knowledge, abilities and habits necessary to program robots, as well as other devices equipped with sensors and actuators. The second step should keep attention on teaching AI ideas, while giving space for unassisted solving problems introduced in the irst step. Finally, the third step should be project-oriented, during it student’s teams with the theoretical knowledge from lectures and practical skills and habits from previous steps independently solves the given problem of mobile robotics. Our methodology is motivated by the idea of giving the student rather the skeletal frame of knowledge, skills and habits than a set of abilities. Many students can never in their future carrier program a mobile robot, but it is quite possible that they will solve some problem connecting a hardware and Arti icial Intelligence. Debugging of programs cooperating with a hardware is more dif icult than pure software debugging and mistakes can cause in high costs. On the other hand, we cannot teach skills and habits without any detailed example of hardware. We think that mobile robot is a good choice for it, because it is at once complex, well described and universal. In presented exercises we use two types of robots, both running under the ROS. The programming language chosen for exercises is C++, but it can be switched to Python. The robots should in general meet following requirements: - type A is a mobile robot equipped with a webcam, - type B is a mobile robot equipped with at least 4 sonar range inders and a quite accurate odometry system. For each robot we prepared two exercises, e.g.: - Exercise A1 – Visual Line-follower, - Exercise A2 – Visual Sumo, - Exercise B1 – Sonar-based Corridor-follower,

8

Fig. 1. The Amigobot robot upgraded with a RS232 (the default interface of the robot) – Bluetooth adapter

2. Robots Preparing a mobile platform for a lexible and convenient operation is a key matter. In our lab, we have two Pioneer (3-AT and 3-DX models) and two Amigobot robots, both from Adept MobileRobots. Originally all three types are just bare slave devices – they must be connected from a host computer with the RS-232 interface, which sends commands and receives a sensor data. Basically, there are three options of the system architecture: 1) the robot is constantly connected to a PC via a cable – this solution does not need any hardware modiications, and one can start programming straight away. The main drawback is a dependency of the host computer and a necessity of a stable communication between the robot and the host, 2) the robot is constantly connected to a PC via the radio – here we consider that the robot communitaces with the host PC via some radio interface such as Bluetooth or Wi-Fi. This solution is more mobile compared to the previous one, but it is still limited to the range of the user interface, 3) the robot has an embedded PC on the board – this is the most time-consuming solution to build, but it is also the most lexible one. The operational area is not limited here with the range of any interface and the robot can also perform autonomous actions independently. Another advantage is a possibility to connect any other sensing device directly to the ePC and build a complex, mobile and independent platform.

- Exercise B2 – Sonar based Micro-mouse.

2.1. Amigobots

We had in mind that splitting exercises into two blocks will result in a more lexible scheduling. It does not matter if a student will start from A1 or B1, or if after exercising A1 will he exercise B1 or A2. It is only important to exercise A2 after A1 and B2 after B1. The rest of this paper is organized as follows. In the section 2 robots used in our exercises are brie ly described. Sections 3.1, 3.2, 3.3, 3.4 describes successive exercises, students’ opinion poll is presented in the section 4 while conclusions are presented in the section 5.

Considering the fact of limited free space in the Amigobot chassis, upgrading the robot with an embedded computer was rejected from the very beginning. We also do not want to run the robot on a leash so the only reasonable option here is a wireless interface. We assume Amigobot robots will operate only in our laboratory so the Bluetooth technology seems to be enough for us. The chosen Bluetooth module is HC-05v2 interconnected with a serial – RS232 adapter to complete communication compatibility. The Amigobot ro-


Intel 7260 WiFi

U.FL

mini-PCIe

Power in

Power out

mini-PCIe

Jetson TK1

Pioneer 3-AT

VOLUME 11,

N◦ 3

2017

- Xbox joystick handling program,

Serial

Serial

Journal of Automation, Mobile Robotics & Intelligent Systems

- robot manual operation program, - transformation publishing program (via ROS TF mechanism),

USB

Laser Scanner

USB Camera

Xbox joystick adapter

Fig. 2. Pioneer robot hardware configura on bot with the Bluetooth adapter is shown in the Figure 1. 2.2. Pioneer Robots Both Pioneer robots (3-AT and 3-DX shown in the Figure 3) have enough space to put an embedded PC inside. In the near future, we plan to launch some parallel processing on-board and that is why we choose the Jetson TK1 development board with 192 CUDA cores from NVIDIA. The inal con iguration of both Pioneer robots is shown in the Figure 2. The Jetson board is powered with 12 V and connected with RS-232 interface to the robot. We also added the Intel 7260 Wi-Fi card in the mini-PCIe slot to connect the robot with the outer world. We also equipped both robots with the Hokuyo URG-04LX-UG01 laser scanner, an USB camera and the Xbox joystick adapter for remote control.

Fig. 3. The Pioneer robots: 3-DX on the le and 3-AT on the right It is worth to mention that the serial port of the Pioneer robot is slightly different from the external one and requires logic high state on the DTR signal (pin 4) with positive voltage level (about 5V). To meet this requirement, we looped DTR (pin 4) with RI signal (pin 9) on the robot side. 2.3. Low-level So ware As many of the papers considered in the introduction, we also use the ROS framework [15] for software development. We have developed the basic packages (amigobot_driver and pioneer_drver) which can be used as low-level drivers and made them opensource [1]. One can ind there: - robot communicating program (RosAria), - URDF model spawning program,

- laser scanner communicating program (for Pioneer robots). After starting an appropriate roslaunch ile all topics and services allowing for control of the robot and sensor state reading are available for a further usage.

3. Exercises The design of the exercises starts with answering some basic questions about a main target audience and a required background of the participants. Being in touch with our students gives us the impression of their strong theoretical knowledge in many ields of science needed in mobile robotics, but one can feel their lack of practical experience in its implementation. The presented reasoning gives us the opportunity to prepare attractive exercises with assumptions of knowledge of participants about linear algebra, the basis of the various sensors, machine vision and control theory. It is widely known that the UNIX operating system has many tools facilitating development of the software for above mentioned ields and it is hard to imagine a robot with a Windows instead. The same analogy one can ind using a ROS framework – it is possible to create a robotic system without it, but it provides many useful tools and let a student or a scientist focus on a solution of the real-world problem. A dif icult part for our students with using the ROS framework is large entry-work. Many of them sees the UNIX system for the irst time and is not luent in inding and understanding articles written in English, so we had decided to prepare a script, which deals with this matter. The paper starts with a gentle introduction to LINUX and helps the reader to understand basic concepts of the ROS framework based on an example of simple package creation. The second very important script is about different coordinate frames in the ROS, which knowledge we required of, before students can perform the exercise B2. A separate script is also provided for each exercise. All mentioned documents can be found on our website [1]. Educational materials are prepared in Polish, as this is the of icial language of our course. If you would be interested in other language versions, please contact us via an e-mail. Having four robots described above, we can perform four exercises at once, where each task is prepared for maximum 4 participants (groups are up to 15 students). We believe it is a reasonable situation, where four-person team can discuss details of the problem within a group resulting in valuable experience of the whole process of the solution inding procedure. We assume 5 lesson units for each exercise (5 times 45 minutes) and this is a typical time, where every group could inish their solution to a problem. 9


Journal of Automation, Mobile Robotics & Intelligent Systems

VOLUME 11,

N◦ 3

2017

Exercises are divided in two groups – one for each type of a robot. The irst exercise for both groups (A1 and B1) is strictly guided so it introduces to a student the basis of robot programming – including dealing with a given set of sensors or programming tools. The student irst learns how the correct robot program should look like – the program structure is given and an only student task is to ” ill the gaps” in the code. In the second exercise (A2 and B2) only the scratch of the program code is given, but the problem solution is described in detail in the script. We hope that such approach keeps students of from wasting a time on technical problems and at once gives them possibly large space for testing their own ideas. In the following sections of this chapter each exercise will be described in detail. Fig. 5. Robot base and image frame scheme

Fig. 4. The 3-DX robot in the camera based line-following exercise 3.1. Exercise A1: Visual Line-follower In the very beginning of the visual line-follower exercise ( igure 4) students learn how to work with a robot with the on-board computer. They can try a direct connection to a robot with a display, keyboard and mouse – this shows that the robot uses a common computer architecture. This is also a very basic way of programming robot, allowing to solve all lowlevel problems. For the majority of tasks this approach seems to be the most comfortable, due to a low latency and independence from a local net connection. However, direct connection reduces a robot mobility. To overcome this limitation a mobile robot developer should know some remote access techniques. For this reason, two other approaches are introduced to students: - system-level remote access, via SSH connection – most useful for development,

After that, students start writing their own code, illing the gaps in prepared source iles. To introduce communication between ROS nodes, the task of line following is divided between two programs. The irst one inds the line based on the camera input and publishes it over the ROS in the form of a point cloud. The second one receives the point cloud and use it to calculate robot control commands. The relation between the robot base frame and the image frame is shown in the igure 5, which is a part of the exercise script. The resulting point cloud can be visualized in the rViz program. As mentioned above, a source code is prepared and the only students’ task is to ill some gaps. Communication with the camera, a robot controller and between nodes is ready. The remaining tasks are: - image binarization for line inding, - conversion from an image to a point cloud, - point cloud data analysis and control calculation With the obtained skills students can move forward and start more self-directed robot programming in the exercise A2.

- ROS-level connection via topics, services etc. – most useful for runtime. This exercise introduces several other basic tasks, such as: - launching, stopping and restarting robot drivers, - enabling and disabling robot control over an USB joystick, - robot sensor data visualization in the rViz program. 10

Fig. 6. The 3-AT robot in the camera based sumo exercise


Journal of Automation, Mobile Robotics & Intelligent Systems

3.2. Exercise A2: Visual Sumo The aim of this exercise is development of a robot software for vision-based sumo as shown in the Figure 6. The robot should keep moving on a green mat, looking for adversaries in the form of black and red carton boxes. When it meets one, the robot should try to move it out of the mat. After a success looking for adversaries should be continued. In this exercise only a short scratch of the program is prepared, so a list of student’s tasks elongates, including: - camera input handling,

VOLUME 11,

N◦ 3

2017

The other task is a development of an adversaries’ detection algorithm. This task is quite like the mat detection, but the similarity of the robot and the adversary colours causes the necessity of the input image masking. The result is shortly presented in the Figure 8.

- ROS communication setup, - reading joystick data – our robo- ighter keeps moving, so motors-enable control is necessary,

Fig. 8. The result of the adversary search algorithm sketched in the exercise script

- computer vision algorithm development, - control algorithm development. The computer vision algorithm development is divided into several tasks, sketched in the exercise script. First, the student’s algorithm should control whether the robot is on the green mat or not. This is achieved in four steps: - input image size is reduced, then the image is median blurred and converted to the HSV colour space, - image is binarized by a HSV in-range thresholding, - erosion is performed to reduce noise, - the number of mat pixels is counted for left and right halves of the image. Absence of the mat in either of halves means that the robot reached the mat’s edge.

3.3. Exercise B1: Sonar Corridor-Follower The exercise B1 is quite like the A1, presented in 3.1, but this time a robot moves along a corridor with carton walls. The main sensors are sonars, which are less reliable than the camera, so the robot way is much simpler – it resembles a curve from the beginning of a driving license test. Again, students start with getting known with the mobile robot. They turn it on, perform a self-driving test, establish an USB or Bluetooth communication and run the robot driver. Then they get familiar with robot sensors and a control over the ROS, especially the rViz program, which is presented in the igure 9. Finally, student ill gaps in a prepared source code, in a similar way like in the exercise A1. Their job consists of the following tasks: - understanding a sensor data structure, - implementation of a stop condition – reaching the end of the corridor, - calculation of a robot moving direction, - development of a PID-based robot direction controller, - optionally reducing a robot speed at curves and increasing it on straight lines. Tasks presented above are supported with the schemes in the exercise script. The Figure 10 presents two of them: one for sonar data structure, and the second for the calculation of the robot moving direction.

Fig. 7. Steps of the green mat detec on algorithm: (a) the input image (b) the resized, median blurred image (c) result of the HSV in-range thresholding (d) the eroded binary image Algorithm steps are visualized in the igure 7.

3.4. Exercise B2: Sonar Micro-Mouse In the exercise B2 students develop software for a micromouse-like robot shown in the Figure 11. The aim of the robot is to explore the labyrinth with a righthand rule – no mapping or shortest path inding is required. Students start with a short code skeleton and implements their own ideas. The main tasks are: - obtaining information about walls from the sonar range sensors, - understanding the role of coordinate frames in a robot movement programming, - teaching the robot to move exactly one step forward (the step is the size of the labyrinth’s cell), 11


Journal of Automation, Mobile Robotics & Intelligent Systems

VOLUME 11,

N◦ 3

2017

Fig. 9. A screenshot from the rViz program, enabling the sensor data visualiza on and the robot velocity control

Fig. 10. Schemes from the exercise script. (a) The robot sensor data structure explana on – the robot is equipped with 8 sonars and they readings are formed as a cloud of ordered points. Knowledge of a sonars’ order simplifies development of the control algorithm. (b) Simple calcula on of the robot moving direc on – the algorithm developed by students calculates points A and B presen ng the corridor’s centre respec vely at a robot posi on and in front of the robot. Finally the point D is calculated to normalize the distance ahead the robot. Y-coordinate (Y is oriented from the le to the right) of the point D is then used to control the robot movement direc on.

- teaching the robot to rotate exactly 90◦ left or right, 12

Fig. 11. The labyrinth with the Amigobot robot inside, used for both micro-mouse and corridor follower tasks.

- development of a right-hand rule labyrinth solving algorithm.

4. Students’ Opinion Poll To measure the students’ feedback in a systematic way, after inishing the course students were asked to ill the anonymous poll. Only 28 students have participated in it. In seven questions students were asked to give the mark (from 1 to 10) marking different aspects of the course, results are presented in the


Journal of Automation, Mobile Robotics & Intelligent Systems

VOLUME 11,

Table 1. Another two questions concerned particular exercises – a student marked the most interesting one and one which needs to be improved in the irst order, see the Table 2. Finally, a student divided 100 points between 7 aspects of future work, results are presented in the Table 3. Tab. 1. Pool results - ques ons marked from 1 to 10 Question General course mark Hardware state mark Educational materials (instructions) Essential background of the lecturer Cooperation with the lecturer Improvement of student’s skills Student’s self-activity mark

Average Mark 8.5 8.0 7.9 9.2 9.0 7.8 8.1

Carrying out this pool improved our plans. Keeping in mind that some high scores can be caused by students’ courtesy, relative values present which aspects may be modi ied. Tab. 2. Pool results - which exercise is the most interes ng and which should be improved firstly in students’ opinion Exercise A1 A2 B1 B2

Is interesting? 15% 35% 35% 15%

Should be improved? 21% 50% 21% 8%

Tab. 3. Pool results - vo ng for aspects of future work. Each student divided 100 points between aspects. Aspect Purchase of modern robots (same type) Purchase of other types of robots (drones, walking robots) Educational materials improvement Improving essential background of the lecturer Improvement of cooperation with the lecturer Development of new exercises Increasing number of laboratory hours in the course

Votes 10.5% 31.2% 4.2% 0.1% 2.5% 16.5% 35.0%

5. Conclusions We wrote this paper just after the end of the second edition of described laboratory exercises. About 50 students have taken part in the course. The presented exercises have received remarkably positive feedback from the course participants according to the educational level, as well as skills and knowledge they obtained. We also tried to it their remarks about hard

N◦ 3

2017

and not well-explained tasks. We consider that the resulting set of educational materials, scripts, robot software and hardware is worth attention. That is why we decided to share with the community as much as possible. Future work is based on the pool results and our own perception. Some students feel a lack of time during the laboratories, which suggests that they may be not well-prepared. To prevent this, the scripts should be further improved. Exercises presented in this paper must be kept up to date (e.g. with the ROS updates). In our opinion, no more exercises can be performed during the limited didactic hours. This turns us to focus on improving other courses, presented in the introduction of the methodology. The developed set of exercises is a part of the methodology presented in the article introduction. It gives not only specialized skills, useful for future mobile robots’ developers, but also a set of general skills, enriching the experience of every engineer.

AUTHORS Łukasz Chechliński – Institute of Automatic Control and Robotics, Faculty of Mechatronics, Warsaw University of Technology, ul. Boboli 8, 02-525 Warsaw, e-mail: lukasz.chechlinski@gmail.com, www: www.wutrobotics.mchtr.pw.edu.pl. Daniel Koguciuk∗ – Institute of Automatic Control and Robotics, Faculty of Mechatronics, Warsaw University of Technology, ul. Boboli 8, 02-525 Warsaw, e-mail: daniel.koguciuk@gmail.com, www: www.wutrobotics.mchtr.pw.edu.pl. ∗

Corresponding author

REFERENCES [1] “WUTRobotics research group wutrobotics.mchtr.pw.edu.pl. on: 2017-06-09.

website”. Accessed

[2] L. Armesto, P. Fuentes-Durá , and D. Perry, “Lowcost Printable Robots in Education”, Journal of Intelligent & Robotic Systems, vol. 81, no. 1, 2016, 5–24, DOI:10.1007/s10846-015-0199-x. [3] S. Atmatzidou and S. Demetriadis, “Advancing students’ computational thinking skills through educational robotics: A study on age and gender relevant differences”, Robotics and Autonomous Systems, vol. 75, Part B, 2016, 661 – 670, DOI:10.1016/j.robot.2015.10.008. [4] C. Avsar, W. Frese, T. Meschede, and K. Brieß, “Developing a Planetary Rover with Students: Space Education at TU Berlin”, Journal of Automation, Mobile Robotics and Intelligent Systems, vol. 8, no. 1, 2014, 20–29, DOI:10.14313/JAMRIS_12014/3. [5] A. Eguchi, “Educational robotics to promote 21st century skills and technological understanding among underprivileged undergraduate students”. In: Integrated STEM 13


Journal of Automation, Mobile Robotics & Intelligent Systems

Education Conference (ISEC), 2015 IEEE, vol. 1, 2015, 76–82, 10.1109/ISECon.2015.7119949, DOI:10.1109/ISECon.2015.7119949. [6] A. Eguchi, “RoboCupJunior for promoting STEM education, 21st century skills, and technological advancement through robotics competition”, Robotics and Autonomous Systems, vol. 75, Part B, 2016, 692 – 699, DOI:10.1016/j.robot.2015.05.013. [7] A. El-Fakdi, X. Cufı́, N. Hurtó s, and M. Correa, “Team-Based Building of a Remotely Operated Underwater Robot, an Innovative Method of Teaching Engineering”, Journal of Intelligent & Robotic Systems, vol. 81, no. 1, 2016, 51–61, DOI:10.1007/s10846-015-0203-5. [8] E. Fabregas, G. Farias, S. Dormido-Canto, M. Guinaldo, J. Sá nchez, and S. D. Bencomo, “Platform for Teaching Mobile Robotics”, Journal of Intelligent & Robotic Systems, vol. 81, no. 1, 2016, 131–143, DOI:10.1007/s10846-0150229-8. [9] M. Kandlhofer and G. Steinbauer, “Evaluating the impact of educational robotics on pupils technical- and social-skills and science related attitudes”, Robotics and Autonomous Systems, vol. 75, Part B, 2016, 679 – 685, DOI:10.1016/j.robot.2015.09.007. [10] M. Kandlhofer, G. Steinbauer, S. HirschmuglGaisch, and J. Eck, “A cross-generational robotics project day: Pre-school children, pupils and grandparents learn together”, Journal of Automation, Mobile Robotics and Intelligent Systems, vol. 8, no. 1, 2014, 12–19, DOI:10.14313/JAMRIS_12014/2. [11] F. M. Ló pez-Rodrı́guez and F. Cuesta, “AndruinoA1: Low-Cost Educational Mobile Robot Based on Android and Arduino”, Journal of Intelligent & Robotic Systems, vol. 81, no. 1, 2016, 63–76, DOI:10.1007/s10846-015-0227-x. [12] S. Michieletto, S. Ghidoni, E. Pagello, M. Moro, and E. Menegatti, “Why teach robotics using ros”, Journal of Automation, Mobile Robotics and Intelligent Systems, vol. 8, no. 1, 2014, 60–68, DOI:10.14313/JAMRIS_1-2014/8. [13] G. Nugent, B. Barker, N. Grandgenett, and G. Welch, “Robotics camps, clubs, and competitions: Results from a US robotics project”, Robotics and Autonomous Systems, vol. 75, Part B, 2016, 686 – 691, DOI:10.1016/j.robot.2015.07.011. [14] R. Pé rula-Martı́nez, J. M. Garcı́a-Haro, C. Balaguer, and M. A. Salichs, “Developing Educational Printable Robots to Motivate University Students Using Open Source Technologies”, Journal of Intelligent & Robotic Systems, vol. 81, no. 1, 2016, 25–39, DOI:10.1007/s10846-015-0205-3. [15] M. Quigley, K. Conley, B. Gerkey, J. Faust, T. B. Foote, J. Leibs, R. Wheeler, and A. Y. Ng, “ROS: an open-source Robot Operating System”. In: ICRA Workshop on Open Source Software, vol. 1, 2009. 14

VOLUME 11,

N◦ 3

2017

[16] H. Yi, C. Knabe, T. Pesek, and D. W. Hong, “Experiential Learning in the Development of a DARwIn-HP Humanoid Educational Robot”, Journal of Intelligent and Robotic Systems, vol. 81, no. 1, 2016, 41–49, DOI:10.1007/s10846-0150200-8.


Journal of Automation, Mobile Robotics & Intelligent Systems

VOLUME 11,

N° 3

2017

Manipulation and Path Planning for KUKA (LWR/LBR 4+) Robot in a Simulated and Real Environment Submitted: 30th November 2016; accepted: 8th August 2017

Tarwadi Parag Jitendra, Arockia Selvakumar Arockia Doss, Juan Antonio Corrales Ramon DOI: 10.14313/JAMRIS_3-2017/24 Abstract: Robotics has accomplished its greatest triumph to date in the world of industrial manufacturing and academia. This work aims to perform path planning using a KUKA (LWR/ LBR 4+) robot platform as well as a simulator to grasp the object. This whole implementation will be carried out in a ROS environment with Ubuntu (Linux) as an operating platform. The KUKA (LWR/ LBR 4+) has 7 degrees of freedom with several joints and linkages. It uses KR C2 LR as the main hardware controller. The robot gets visual information of an object by Microsoft Kinnect RGB-D camera and carries out necessary actions to clasp the object using a shadow hand and Barrett hand. The simulation and manipulation of robot gantry is performed by using C++ and python as a programming language. The bilateral robot platform and main PC hub are linked together by using Ethernet cable. The obtained results from the current research are found to be satisfactory and can be proven beneficial for researcher as a reference.

feedback system, it enables automation engineers and researchers to develop new industrial and service robotic applications. Figure 1 represents the KUKA LWR/ LBR 4+ [25].

Keywords: ROS (Indigo), motion planning, moveIt simulation, OMPL, robotics, KUKA LWR robotic arm Fig. 1. Snapshot of KUKA LWR/ LBR 4+ [25]

1. Introduction Robots have the potential to improve efficiency of proposed work, safety and convenience of human endeavors. To realize this hidden potential, research in robotics necessarily involves investigation into a broad range of various disciplines [3]. A fundamentally vital discipline is that of motion planning and manipulation. It is important because motion is a primary requirement, which is common to all robots [6], [12]. While the fact remains that all robots necessarily move, the actual motion execution is highly dependent on the robot under consideration, the task it fulfils and the constraints it operates under. Therefore, numerous algorithms, concepts and theories have been developed for solving specific classes of motion problems [2]. The bilateral research collaboration between Institute of Robotics and Mechatronics and KUKA Roboter GmbH at the German Aerospace Center (DLR) leads to the development of KUKA LWR [7]. Due to its remarkable features like programmable active compliance, high payload ratio and torque sensor

Nowadays, due to rapid increase in production rate, automation plays a vital role in industrial environment [22]. Generally, the robots are often required to pick some object and place it at an exact or different place in working environment [16] where the robots are programmed to follow a path with knowledge of motion planning and manipulation [24]. This entire task is crucial and requires speedy operation with accuracy. Recently, a very luxuriant literature related to motion planning and manipulation of robots is available. Chettibi et al. have developed a minimum cost trajectory planning path for robot manipulators. By considering dynamic equations of motion as well as bounds on joint positions, jerks, velocities and torques, it contains linking of two points in the operational space while minimizing a cost function [1]. Lars Blackmore et al. have presented an algorithm for robot path planning with obstacles. By using a Disjunctive Program, they are able to use existing constrained optimization methods to generate minimum trajectories. The proposed method plans entirely in the manipulator working area by minimizing the cost of the

15


Journal of Automation, Mobile Robotics & Intelligent Systems

16

process of mapping the obstacles from the workspace into the configuration space [2]. John et al. have introduced a general motion planning approach based on evolutionary computation that is suitable for both real-time and offline adaptive motion planning for robots under multiple optimization criteria and manipulator constraints in environments with obstacles having changes not known as a priority. The outcome of testing results demonstrates the effectiveness and efficiency of the approach [3]. Dmitry has described the design of efficient algorithms for special instances of robot motion planning problems and prediction of motion of fluids. The intricate nature of these problems may manifest itself in enhanced computational complexity. The main contribution of this work is a brilliant approach for motion planning problem for multiple tasks distributed in an open space. This algorithm computes the minimum-time frame of robotic motion considering orientation constraints of the robot end-effector during task execution and for a given velocity [4]. Solteiro Pires et al. have presented a multi-aim genetic algorithm based technique to address the problem of a non-trivial optimization in generating manipulator trajectories while considering obstacle avoidance and multiple objectives. Multiple criteria are optimized by considering up to five different objectives. The outcome of simulation is incorporated for robots with two and three degrees of freedom, considering two and five optimizations. A subsequently correct analysis of the spread and solution distribution along with the converged nondominated Pareto front is carried out, in terms of achieved diversity [5]. GĂźnter Schreiber et al. have described the capabilities of interface, the practical realization within the KUKA LWR robotic manipulator control architecture and first application of the real-time interface. In this, the development of the Fast Research Interface for the KUKA Lightweight Robot was carried out by the researchers to provide such an interface [7]. Yanyu Su et al. have introduced a most significant approach to develop a kinematic controller for any serial type of robots using MoveIt! Simulator and PMAC, which is a commercially available product for motion control and also an embedded system to manipulate the motion, amplify signals and acquire sensory information. MoveIt! is a simulation software for kinematics based manipulators [8]. Asad Yousuf et al. have examined ROS based introduction of kinematics for robotic manipulator. ROS implements tool for kinematic transforms, as a unique part for the ROS Core Libraries [9]. Stephen Hart et al. have described a ROS package for quickly programming, adjusting and executing robot applications in RViz environment. This developed package extends the capabilities of RViz interactive markers by allowing an operator to specify grasp poses in object-centric coordinate frames and multiple end-effector waypoint locations and to adjust these waypoints in order to meet the run-time demand of the task [10]. Mathew et al have explained their software architecture and hardware choices, which ensure human loop control of a 28 degree-of-freedom ATLAS humanoid robot over a limited bandwidth link [11]. Philipp et al. have Articles

VOLUME 11,

N° 3

2017

described a Robot Operating System based middleware software framework for the NimbRo-OP. This software provides functionality for visual perception, hardware abstraction and behavior generation [12]. Ioan et al. have developed many state-of-the-art motion planning algorithms. These all algorithms included in an Open Motion Planning Library for sampling based motion planning. The library is designed with minimum input for solving a complex motion planning problems [12], [14]. Coleman et al. have presented a case study related to the lowering of the barrier of an entry in the MoveIt! framework, which is an open platform tool for a mobile manipulation in ROS. ROS allows user to quickly get basic motion planning functionality with minimal initial setup, automate its configuration and customized components. In short, the developed best practices are summarized into a set of the barrier to entry design principles applicable to the other major robot software packages [15]. Dirk et al. have represented a generalized system for mobile manipulators based automated kitting with focus on de-palletizing task. In order to allow low cycle time, they prepare particularly efficient solution for motion planning and execution as well as object perception [16]. Jorg Stuckler et al. have proposed a system for de-palletizing and localizing objects as well as analysis and verification for found object, which does not differ from the known object modes. Their approach is based on the multi-resolution surfel model [17]. Stephan et al. have developed a system, which includes RGB-D camera for surveillance of the common working place, an optical distance sensor to control shadowing effects of the RGB-D camera and a laser range finder to detect a co-worker. This ROS software is based on the behavior of the co-worker and predicts collision and path planning [18]. Marsette et al. have developed an open hardware mobile manipulator for teaching robotic software and algorithm that uniquely combines a 3DOF arm and gripper, low and high level processors, portability, a mast-mounted camera and the possibility to be incrementally assembled in different configurations [19]. Rhama Dwiputra et al. have presented the development of a distinct Modelica model for the youBot manipulator. Apart from other robotic simulators Modelica allows the modeling of the manipulator controller and motors [20]. Dereck et al. have implemented a navigation based planner on a Pioneer 3-AT mobile robot using the ROS software library. They updated the existing ROS software to enable functionality and compatibility with Michigan Tech’s Pioneer robot [21]. The research in this project would lead to more efficient and generalized solution to automate the pick and place operation of KUKA robotic arm by using OMPL. The working hypothesis throughout the paper is that, it is possible to have a generic software framework for robot motion planning and manipulation, which can be configured to solve specific robot motion tasks [5]. The contribution of this paper is the validation of the hypothesis via realization and real-world testing of such a framework. Additionally, the research work also resulted in the development of


Journal of Automation, Mobile Robotics & Intelligent Systems

a software library which can be used by software programs to interact with the framework [8], [15]. The main objective of this research work is to manipulate the KUKA robot by feedback of visual information for assisting a shadow hand and Barrett hand to grasp the object. This research work can be further used in the fields of robotics, manufacturing line, material handling systems; food industry and automotive industry for pick and place operation [9].

2. Methodology

VOLUME 11,

N° 3

2017

a main controller [19] [25]. Figure 3 represents the complete research work. In which the robot gets visual information of object by Microsoft Kinnect RGB-D camera [18] and carries out necessary actions to clasp the object using a shadow hand or Barrett hand. The simulation and manipulation of robot gantry is performed by using C++ and python programming languages. The robot platform and main hub are linked together by using Ethernet [20].

Figure 2 represents the complete methodology for whole research work. Manual robots teaching using tech pendant is performance wise disadvantageous over automatic robot teaching [3], [10]. To overcome this issue visual feedback with programming autoFig. 3. Block Diagram of the whole task

Fig. 4. Experimental setup for the proposed work Figure 4 shows the experimental setup of proposed work. In which a bilateral platform of KUKA LWR/ LBR 4+ robot with its controller and software arrangements are shown.

2.2. Software Simulation

A. Simulation of KUKA LWR in Rviz Environment with Interactive Marker In MoveIt! the set up assists in decrease of motion planning process time, a default self-collision matrix generator algorithm was used to prevent collision of link pairs and helps to disable them safely [22]. These pairs of links are disabled when the links are adjacent

Fig. 2. Methodology of the proposed work mated control is useful. For this, the simulation version of real robot was made using a URDF architectural file and RViz software package in ROS. Desired movement of robot is achieved by using C++ code, while testing is performed using interactive markers. At the final stage integration of developed software package and the real robot was made.

2.1. Hardware Overview

The KUKA (LWR/ LBR 4+) has 7 degrees of freedom with several links and joints. It uses KR C2 lr as

Fig. 5. Generation of Self Collision Matrix Articles

17


Journal of Automation, Mobile Robotics & Intelligent Systems

to each other on the kinematic chain or when they are never in collision, always in collision, in collision in the KUKA LWR/ LBR 4+ robot’s primary position. The calculation of how many random the KUKA LWR/ LBR 4+ robot positions to check for self collision specifies the sampling density. The lower densities have a higher possibility of disabling pairs that should not be disabled while higher densities require more computational time. The standard value is 10,000 collision checks. Collision checking is done in parallel to decrease processing time [23]. The generation of self collision matrix is shown in Figure 5.

VOLUME 11,

N° 3

2017

The motion planning for KUKA LWR robot in MoveIt! [14], [23] is done by using interactive marker. Start state was the home state of KUKA LWR robot, while final goal state was selected by interactive marker as shown in Figure 6. Then plan and execution command will be initialized.

B. Simulation of Bilateral KUKA LWR Platform in Rviz Environment with Interactive Markers Figure 7 represents the motion planning for bilateral KUKA LWR robot platform in MoveIt! In which selection of final goal state is defined by using interactive marker, the command plan and execution was used for movement of arm. For minimum trajectory path selection for arm OMPL (Open motion Planning Library) was used [13].

Fig. 7. Motion planning for Bilateral KUKA LWR Robot Platform in Moveit! using interactive marker C. Simulation of Bilateral Kuka LWR Platform in Rviz and Real Environment Using C++ Code Figure 8 shows the motion planning and manipulation of bilateral KUKA LWR robot platform in MoveIt! using C++ programming code. For this case there is no need of any RViz command was required i.e. Plan and

Fig. 8. Motion planning for bilateral Kuka LWR robot platform in MoveIt! using C++ Code

Fig. 6. Motion planning for KUKA LWR robot in MoveIt! using interactive marker 18

Articles

Execution etc. in which .cpp file with programming code was generated and it was executed by creating launch file in catkin workspace with required dependencies. For minimum trajectory planning for arm, OMPL was used. For this particular application, OMPL uses inverse kinematic solver to design required path. Figure 9 shows the real bilateral KUKA LWR robot movement by following the path of simulated robot in RViz environment [21] using C++ code.


Journal of Automation, Mobile Robotics & Intelligent Systems

Fig. 9. Motion planning for real bilateral KUKA LWR robot platform in MoveIt! software using C++ Code

VOLUME 11,

N° 3

2017

Fig. 10 Representation for axis of rotation [25]

Figure 10 shows the representation of axis of rotation for the KUKA robot platform. Figure 11 shows the comparison for Simulated and Real Robot in terms of degrees of rotation of each joint.

3. Results and Discussion

Table 1 shows the particular translational and rotational axis of bilateral KUKA LWR robot with respect to particular time. It also gives RPY value i.e. rotation of joint along x- axis, y- axis and z- axis, respectively. Table 2 shows the maximum torque for each axis of the robot.

Fig. 11. Comparison for simulated and real robot

Table. 1. Representation of particular translational and rotational axis Axis of rotation Run Time (msec.)

3431.476

Translational

[0.000, 0.001, 1.039]

Rotational In Quaternion

In RPY

[0.000, 0.000, 0.000, 1.000]

[0.000, -0.000, 0.000]

3432.576

[-0.454, -0.220, -0.724]

[0.000, -0.140, 0.954, -0.265]

[-0.271, 0.074, -0.2610]

3434.476

[-0.454, -0.220, -0.724]

[0.000, -0.140, 0.954, -0.265]

[-0.271, 0.074, -0.2610]

3433.575

[-0.454, -0.220, -0.724]

Table. 2. Maximum Torques Axis

Maximum torque

A1 (J1)

200 Nm

A2 (J2)

200 Nm

E1 (J3)

100 Nm

A3 (J4)

100 Nm

A4 (J5)

100 Nm

A5 (J6)

30 Nm

A6 (J7)

30 Nm

[0.000, -0.140, 0.954, -0.265]

[-0.271, 0.074, -0.2610]

4. Conclusion This research work has presented a software package for manipulation and motion planning for real and simulated KUKA LWR/LBR4+ robotic arm. Based on the OMPL suit of MoveIT, KUKA arm gains some advanced features like an effortless way to define couple degrees of freedom and modify the planning accordingly, smooth parameterization for planners, the dynamic simulation and integration with task planner. The validation of the hypothesis via realization and real-world testing of such a framework was carried out. Although the software framework works satisfactorily and is a sufficient proof for the concept, it has not yet been fully developed. As described in this paper earlier, to perform object detection and localizaArticles

19


Journal of Automation, Mobile Robotics & Intelligent Systems

tion using visual feedback, we want to integrate the developed libraries of bilateral KUKA LWR platform with libraries of Microsoft Kinnect camera, Barrett hand and shadow hand. Further, we will plan variety of motions for bilateral KUKA LWR platform like palletizing application in industrial environment [11] [16]. Finally but not limited to, we will use Python programming language to develop graphical user interface for each joint of bilateral KUKA LWR platform [17].

AUTHORS

Tarwadi Parag Jitendra – School of Mechanical and Building Sciences, VIT University, Chennai Campus Chennai, India. Arockia Selvakumar Arockia Doss*– Mechatronics Research Group, School of Mechanical and Building Sciences, VIT University, Chennai Campus, Chennai, Tamil Nadu-600127, India. E-mail:arockia.selvakumar@vit.ac.in Juan Antonio Corrales Ramon – Image, Systems of Perception, Robotics (ISPR), Institute Pascal, Clermont-Ferrand, France. *Corresponding author

VOLUME 11,

8.

9.

10.

11.

12.

REFERENCES

20

1. T. Chettibi, H.E. Lehtihet, M. Haddad, S. Hanchi, “Minimum cost trajectory planning for industrial robots”, European Journal of Mechanics, Solids, 23, 2004, 703–715. http://dx.doi.org/10.1016/j.euromechsol.2004.02.006 2. L. Blackmore, B. Williams, “Optimal Manipulator Path Planning With Obstacles Using Disjunctive Programming”, IEEE, 1–3, 2012. http://dx.doi.org/10.1109/ACC.2006.1657210 3. John Vannoy and Jing Xiao, “Real-Time Adaptive And Trajectory-Optimized Manipulator Motion Planning”, IEEE, 1–6, 2013. http://dx.doi.org/10.1109/IROS.2004.1389401 4. Dmitry Chibisov, “Design of Algorithms for Motion Planning and Motion Prediction”, IEEE, Technical University of Munchen, 2009, 1–73. http://citeseerx.ist.psu.edu/viewdoc/ summary?doi=10.1.1.665.2817. 5. E.J. Solteiro Pires, P.B. de Moura Oliveira, J.A. Tenreiro Machado, “Manipulator Trajectory Planning Using A MOEA”, Applied Soft Computing, 2006, 659–667. http://dx.doi.org/10.1016/j.asoc.2005.06.009 6. Charles C. Kemp, Aaron Edsinger, Eduardo Torres, “Challenges For Robot Manipulation In Human Environments”, IEEE Robotics & Automation Magazine, 2007, 20–29. DOI: 10.1109/MRA.2007.339604. 7. Günter Schreiber, Andreas Stemmer and Rainer Bischoff, “The Fast Research Interface for the Articles

13.

14. 15.

16.

17.

18.

N° 3

2017

KUKA Lightweight Robot”, ICRA, 2011, 15–21. http://citeseerx.ist.psu.edu/viewdoc/download? DOI=10.1.1.471.3844&rep=rep1&type=pdf. Yanyu Su, Yongzhuo Gao, Yan Wu, Wei Dong, Weidong Wang And Zhijiang Du, “YARC - A Universal Kinematic Controller For Serial Robots Based On PMAC And Moveit!”, IEEE, 2014, 1–6. http://dx.doi.org/10.1109/APSIPA.2014. 7041708. Asad Yousuf, William Lehman, Mir M. Hayder, “Introducing Kinematics with Robot Operating System (ROS)”. In: 122nd ASEE Annual Conference and Exposition, 2015, 1–18. http://dx.doi.org/10.18260/p.24361 Stephen Hart, Paul Dinh, Kimberly Hambuchen, “The Affordance Template ROS Package For Robot Task Programming”. In: NASA Human Robotics Systems Project, 2014, 1– 8. http://dx.doi.org/10.1109/ICRA.2015.7140073 Mathew DeDonato, Velin Dimitrov, Ruixiang Du And Ryan Giovacchini, “Human-in-the-loop Control of a Humanoid Robot for Disaster Response: A Report from the DARPA Robotics Challenge”, Journal of Field Robotics, 2015, 1–18. http://dx.doi.org/10.1002/rob.21567. Philipp Allgeuer, Max Schwarz, Julio Pastrana, “A  ROS-based Software Framework for the NimbRo-OP Humanoid Open Platform”. In: 13th IEEERAS International Conference on Humanoid Robots (Humanoids), 2013, 1–6. http://citeseerx.ist.psu.edu/viewdoc/ summary?doi=10.1.1.645.3441. Dmitry Berenson, Pieter Abbeel, Ken Goldberg, “A Robot Path Planning Framework that Learns from Experience“. In: IEEE International Conference on Robotics and Automation (ICRA), 2012, 3671–3678. http://dx.doi.org/10.1109/ICRA.2012.6224742 Ioan A. Sucan, Lydia E. Kavraki, “The Open Motion Planning Library”, IEEE Robotics & Automation Magazine, 2012, 1–10. http://dx.doi.org/10.1109/MRA.2012.2205651 D. Coleman, I. A. Sucan, Sachin Chitta, N. Correll, “Reducing the Barrier to Entry of Complex Robotic Software: a MoveIt! Case Study”, Journal of Software Engineering for Robotics, 2014, 1–14. https://arxiv.org/abs/1404.3785. Dirk Holz, Francesco Rovida, Sven Behnke, “A SkillBased System for Object Perception and Manipulation for Automating Kitting Tasks”. In: 20th IEEE International Conference on Emerging Technologies and Factory Automation (ETFA), 2015, 1–9. http:// dx.doi.org/10.1109/ETFA.2015.7301453. Jorg Stuckler, Angeliki Topalidou-Kyniazopoulou, Dirk Holz, “Real-Time Object Detection, Localization and Verification for Fast Robotic Depalletizing”. In: IEEE International Conference on Intelligent Robots and Systems (IROS), 2015, 1–8. http://dx.doi.org/10.1109/IROS.2015.7353560 Stephan Kallweit, Robert Walenta, Michael Gottschalk, “ROS Based Safety Concept for Collaborative Robots in Industrial Applications”, HAL Archives, 2016, 1–9. http://dx.doi.org/10.1007/978-3-319-21290-6_3.


Journal of Automation, Mobile Robotics & Intelligent Systems

VOLUME 11,

N° 3

2017

19. Marsette Vona and Shekar NH, “Teaching Robotics Software with the Open Hardware Mobile Manipulator”, IEEE Transactions on Education, 2015, 1–6. http://dx.doi.org/10.1109/TE.2012.2218657. 20. Rhama Dwiputra, Alexey Zakharov Roustiam and Chakirov, “Modelica Model for the youBot Manipulator”, 10th International Modelica Conference, 1205–1212, 2014. http://dx.doi.org/10.3384/ecp140961205. 21. Dereck Wonnacott, Matias Karhumaa and James Walker, “Autonomous Navigation Planning with ROS”, Michigan Technological University (Report), 2012, 2–12. http://cs.mtu.edu/~jwwalker/files/cs5881.pdf. 22. http://robohub.org/ros-101-intro-to-the-robotoperating-system/ 23. http://moveit.ros.org/documentation/concepts. 24. http://robotnor.no/expertise/fields-of-competence/ motion-planning/ 25. Kuka Lightweight Robot 4+ Operating Manual, 2012, 1–77.

Articles

21


Journal of Automation, Mobile Robotics & Intelligent Systems

VOLUME 11,

N° 3

2017

The System for EMG and MMG Signals Recording for the Bioprosthetic Hand Control Submitted: 2nd January 2017; accepted: 2nd August 2017

Andrzej Wołczowski, Michał Błędowski, Jerzy Witkowski

DOI: 10.14313/JAMRIS_3-2017/25 Abstract: The process of biosignal acquisition has a significant impact on the reliability of the control of the multi-functional hand prosthesis. The paper discusses the nature of EMG and MMG signals and noise associated with their registration. The measuring system developed on the basis of these premises, as well as the measurement procedure are described. Keywords: bioprothesis, EMG, MMG, signal recognition, biosignals measurement

1. Introduction A rehabilitation understood as a branch of medicine aims to improve the health status and the life quality of patients. For this purpose, are commonly used technical devices, an example of which are prostheses used by handless patients [1]. Increasingly popular in this area are bioprostheses controlled by signals retrieved from the patient’s body [2, 3]. The information about the patient movement intentions contained in these signals, after proper recognition, control the prosthesis. Recognition process, due to the time required for execution leads to the discrete control by subsequent decision commands [4, 5, 6, 7]. As carriers of information about the patient’s intentions most often electromyographic (EMG) and/or mechanomyographic (MMG) signals are used – rarely electro-encephalographic (EEG) signals [8, 9, 10]. Currently, designing of robotic hand is a challenge in two aspects: • to design of a multi-articulated anthropomorphic construction, mimicking the human hand in terms of shape, weight and mobility of fingers, but also feeling of sensory interaction with the grasped object [7]; • building the control system, able to recognize the various intentions of a man (depending on the situation and type of object to be gripped) and pass them in the form of specific control commands to prostheses motor control [4, 6, 11, 12]. The recognition process can be divided into four main stages (Fig.1). Fig. 1. Diagram of the recognition process 22

(1) On the first step bio-signals from the human body are measured. In the case of EMG and MMG signals, they are recorded on the surface (on the skin) of the prosthetized limb stump (the so-called surface electromyography/mechanomyography that is completely non-invasive) [5, 6, 8]. The signals are analyzed after registering to reduce their size by extraction (2) of appropriate features. There are many methods of signal analysis, which use different areas of the signal. For example, in the frequency domain frequently used method is the Short-Time Fourier Transform (STFT), and the time and frequency domain method of discrete wavelet transform (DWT) [14]. Features pass the selection and/or reduction process (3) using methods such as principal component analysis (PCA) [15] or the factorization of matrix and tensor (TF) [16]. The final stage of the decision-making process is the classification (4), which distinguishes the class of the expected movement – that determines the decision to control [8, 9, 10]. The basic problem at hand prosthesis control is reliability in interpreting user intent. Wrong recognition causes movement of the prosthesis inadequate for a situation which disorganize user action and in extreme cases can be dangerous both to user and his surroundings. Therefore, it is crucial to achieve high reliability of recognition (close to 100%). The task of the artificial hand is to help the user in his everyday life. Depending on the type of object and the intended manipulating-gripping action, the hand should allow to diversification of its ability up to a dozen different grips. Unfortunately, along with enlarging the repertoire of possible movements of the prosthesis decreases drastically the reliability of the recognition process. Reliability depends on each step of the process component (in a simplified, general reliability is taken as the probability of correct operation. It is the product of the reliability of every subsequent steps). Therefore, it is important to optimize each stage. Optimization of the extraction, feature selection and classification were dedicated several studies [6, 10, 16, 18]. In this article we focus on the problem of optimizing the registration process of bio-signals – understood as the pursuit of registration signals (including the construction of a measurement system) that ceteris paribus, maximizes the reliability of recognition. Destiny of developed system is not only registration bio-signals for many people and for different movements but also creation a databases of signals, which allows to experimental testing of me-


Journal of Automation, Mobile Robotics & Intelligent Systems

thods of analysis bio-signals (including methods of extraction and feature selection and classification). In chapter 2 was described physiology of bio-signals, factors disturbing theirs registration, methods to eliminate / reduce disturbance and premises for construction of the recognition system. Chapter 3 describes the recognition system and registration procedure which allow both repeatability and high value of movements discrimination of recorded signals. Chapter 4 summarizes the obtained results.

2. Bio-Signals – the Nature and the Problems of Measurement 2.1. The Nature of Bio-Signals

The activity of skeletal muscle is accompanied by the appearance of the electric potentials, so-called myo-potentials. They are the result of movement of (Na+) and (K+) ions flowing in and out from the surrounding environment to the interior of muscle cells stimulated to contraction. The contraction of the monofilament is accomplished on an all-or-nothing, and the strength and shrinkage rate of the whole muscle depend on the number of activated fibers. The individual muscle fibers are activated by the incoming to them axons of motor neurons (called motoneurons). A single motor neuron can connect to multiple muscle cells. The cells activated simultaneously by a common motor neuron are called the motor unit of the muscle. The activity of individual motor units in the working muscle varies randomly in time. They are alternately activated (recruited) and released, but their number remains constant and is proportional to the required muscle strength. The myocyte excitation is accompanied by a change in electrical potential between the inside of the cell and its environment from -60 mV to +50 mV. This potential change can propagate through the surrounding tissues, reaching up to the surface of the limb. Superposition changes potentials of all active muscle cells can be registered on the skin over the active muscles, as the surface electromyographic signal A superposition of potential changes from the all active muscle cells can be registered on the skin over the active muscles as the surface electromyographic signal (EMG signal). The rms value of the EMG signal from human skeletal muscle, depending on their level of excitation, may be between 0–1.5 mV, and assumes the highest value in the range of 50–150 Hz. Changes of the potentials for the individual myocytes have the same waveform, but their superposition on the body surface, due to the spatial filtering of signals in the tissue (different damping of different frequency components), critically depends upon the spatial position of active muscle cells with respect to the locations of measurement electrodes on the skin. Hence the form of the EMG signal carries information about which muscles are active. Various movements of fingers engage different muscle groups of the forearm, so ultimately EMG signals carry information about the type of hand movement. Another type of signals associated with the activity of skeletal muscle are mechanical vibrations. The-

VOLUME 11,

N° 3

2017

se vibrations are formed during the activation of the individual fibers in the muscle motor units, changes muscles outer geometry – during shrinkage, and friction of moving relative to each other muscles as well as from the movement of tendons and joints. The vibration, similarly as myo-potentials, spread through the limb tissues and reach the surface, and there they superposition can be registered using a microphone or a vibrometer placed on the skin, as a mechanomyo-graphic signals (EMG signals). As in the case of EMG signals, the form of MMG signal reaching the skin surface also depends on the active muscles, and thus carries information about the type of movement. Due to the different nature of the two types of signals the contained therein information (or lack of information caused by interference) can complement each other giving the synergy effect. This will be explained in section 2.2.

2.2. The Problems Accompanying the Biosignal Registration

As it has been stated in Chapter 1, the biocontrol is based on the classification of measured biosignals. To each recognized class of signal a particular decision control of the prostheses movement (or the movement other technical devices) is assigned. To the recognition of the information contained in the biosignals could be reliable the character of signals recorded during the same hand movement should always be the same (unchanged). However, both discussed above physiological phenomena which underlie the formation of bio-signals and their measurement process itself, they do not provide a constant form of signals. The physiological cause of EMG and MMG signal changes are the changes in the recruitment pattern of motor units due to fatigue/weakness of muscle. The fatigue is a result of changes in the concentration of electrochemical metabolites in the environment of muscle fibers (outside the fiber membrane accumulate K+ ions). Conduction velocity is reduced and the signals change The speed of propagation is reduced and the signals change Fatigue can be detected by monitoring the mean or median frequency or distribution envelope of signal (RMS). This phenomenon must be considered in the measurement methodology. While the external causes related to the EMG signal measurement process are: • external electromagnetic fields overlapping the signal, and • changes in the conditions of electrode contact with the skin (resulting from changes in skin conductance due to perspiration, changes in the composition of sweat, changes in adhesion of the electrodes, etc.). The electromagnetic smog (usually at a frequency of 50 Hz electricity network, but also in mobile telephone, radio and TV bands) can induce on the skin a noise amplitude of 103 times greater than the useful signal. In turn, changes in electrode contact with the skin affected by the change ratio of the amplitude of the registered signal to noise ratio. In the case of MMG signals, the primary source of interference is the outside noise, and (in the case of Articles

23


Journal of Automation, Mobile Robotics & Intelligent Systems

a prosthesis) the sounds coming from the activity of the prosthesis and its interaction with the grasped object. These phenomena are changing patterns of classes used by the recognition algorithm, increasing the spread within the class of measured signals and thus impairing the reliability of signals recognition and control decision making. So, during the constructing of the measurement circuit you should aim to reduce these noise. The ambient noise can be effectively eliminated by using a differential measuring system. Such a system consists of two active electrodes placed directly over the examined muscle and a reference electrode placed as far as possible, over the electrically neutral tissue (directly above the bone, joint, etc.). The signals obtained from the active electrodes (measured relative to the reference electrode) are subtracted from each other and amplifies. The common part of these signals, which is composed of background noise is thus removed, and the useful signal contained in the difference of these signals is amplified. The idea of differential measurement is shown in Fig. 2

Fig. 2. The Idea of differential measurement; S1, S2 – useful signal, Z – noise

24

Others of interference said, related with measurement process (from the adhesion of the electrode to the skin and the movement of the cables connecting the electrodes of the measuring amplifier), can be significantly reduced by the use of high impedance amplifier, many times higher than skin impedance, and a low output impedance – and position it directly at the electrodes. In this way, there is the concept of “active” electrodes, integrated with a preamplifier that delivers the signal resistant to external interferences [6, 19]. Another problem are the interference from overlapping signals (crosstalk) from other skeletal muscles – eg. as a result of performing the grip during the movement of the whole arm (for example, reaching for an object at a high shelf) [18]. This applies to both electrical and mechanical signals. It should be noted that unlike the invasive measurement (consisting in the stick of electrode in the determined site in muscle), which allows you to register a signal from only one place, the surface measuring, by its nature, records the superposition of the signals generated by all active myocells of the human body. This phenomenon is illustrated in Section 2.1. The components of EMG (and MMG) signals derived from the active muscles of the forearm, from the point of view of the motion recognition, are the desirable elements while the other components derived from skeletal muscle are the inArticles

VOLUME 11,

N° 3

2017

terference. These disturbances are eliminated at the classification stage [18]. In commercial embodiments of prosthetic hand most often are used the measuring systems based on two electrodes [16, 17]. The presented above considerations indicates that each measuring electrode, regardless of its location on the hand stump, records signals from all active muscles, however, as a result of spatial filtration, the greater amplitude in the registered signal have components derived from the muscles closer to the electrode. So we can expect that for the given repertoire of prosthesis movements and for the individual amputations case, there are such locations of electrodes for which the recorded signals provide the best efficacy of movements discrimination. An important part of the optimization of biosignals registration process is thus to determine on the forearm the electrode position. In the presented approach the experimental selection based on the number of redundant electrodes (measurement system channels) and determination of the best located electrodes by analyzing the effect of information obtained from the individual channels on the recognition quality, was proposed.

3. Bio-Signals Acquisition 3.1. Measurement Setup

Measuring (Fig. 3) circuit consists of analog parts which includes the differential probe with high input impedance, gain of 10V/V and CMRR ratio (Common Mode Rejection Ratio) about 80 dB. Next stage of analog circuit consist of filtering amplifier of gain of 100 V/V and transfer function shown in Fig. 4. Before last step of amplification a 50 Hz notch filter is applied, to prevent the successive stage from saturation in case of hazardous area. Transfer function of microphone amplifier has the same shape but maximum gain of about 20 V/V and is devoid the notch filter.

Fig. 3 Analog part of measurement experimental setup

Fig. 4. Transfer function of filtering part of analog circuit with activated and disactivated 50Hz notch filter In presented results the total gain of analog circuit was adjust for about A = 10×100×15 = 15 000 V/V.


Journal of Automation, Mobile Robotics & Intelligent Systems

N° 3

2017

Examples of power density vs frequency are shown in Fig. 6. In this case the notch filter was not activated and fringes of 50 Hz are clearly seen. Although the power of these fringes is small, according to the authors, the filter should be used in practical solutions to avoid blocking final amplifier and AD converter, in any hazardous environment. Applying the notch filter the total signal power (in bandwidth of 500 Hz) can drops. This is shown in Fig.  7. As seen 50 Hz fringes are affectively suppressed but the total energy drops by 1.5 to 2.4 dB. To check the effective signal bandwidth, a cumulative sum of power density was investigated. Results are shown in Fig. 8. It is seen that 95% of the signal energy is included in the frequency range from 30 to 250 Hz and 99% do not excide range above 300 Hz. One can conclude that in practice the sampling frequency can by reduced down to 1 kHz leaving 500 Hz effective bandwidth. It was also checked that in this case a aliasing power (from band 500 hz to 1 kHz) is about 30 dB below the signal power. 1.5

3

X: 50 2

Y: 1.427

1

[V

[V

2

2

/Hz]

/Hz]

1

0

0.5

0 100

200

300

400

500

100

f (Hz)

200

300

400

500

300

400

500

f (Hz)

2

0.6

1.5

/Hz] 2

2

/Hz]

0.4 1

[V

[V

Including the premises described in Chapter 2, a 16-channel system for recording biosignals was designed. The system consists of: • 8 integrated measurement probes enabling simultaneous recording 8 points in both signals EMG and MMG; • 16 channel filters-amplification system (8 for EMG and 8 for MMG signals); • Set of 16 analog to digital converter (PCIE-1816 by Advantech). Technical details developed measuring system is described in [19]. Each probe includes two metal strip electrodes (Ag wire) directly connected to the differential EMG preamplifier circuit, and electret microphone collecting MMG signals. These components are integrated in the housing (see Figure 5) constituting: • a support structure for them; and simultaneously, • isolator for EMG electrodes; and • acoustic chamber for the microphone MMG. The analog parts of measuring system is shown in Fig. 3. The probe contains a high input impedance differential amplifier, of 10 V/V gain and CMRR ratio (Common Mode Rejection Ratio) about 80 dB, for EMG signal. Each probe cooperates with two channels of filtering and amplifying system consisted of filtering amplifier, for EMG signal of gain of 100 V/V and for MMG signal of gain of about 20 V/V, and transfer function shown in Fig. 3.2. Before last step of amplification a 50 Hz notch filter is applied to prevent the successive stage from saturation in case of hazardous area. The Characteristics of the EMG and MMG amplifier circuit show graphs 6 and 7. An amplifier of the EMG signal (with a probe – 10 V/V) amounts about 14000–15000 V/V, and the microphone channel about 10–20 V/V. For more detailed investigation of dynamic of EMG signals the analog-digital conversion with sample frequency of 10 kHz and 16 bit resolution was applied.

VOLUME 11,

0.2

0.5

0

0 100

200

300

400

500

100

f (Hz)

200

f (Hz)

Fig. 6. Examples of power density EMG signals. Notch filter not active. Energy of the signals are (left to right and down): 7.01; 8.6; 7.00; 12.8 V2

0.6

0.8

0.6

/Hz]

2

0.2

[V

[V

0.4

2

/Hz]

0.4

0.2

0

0 100

200

300

400

500

100

f (Hz)

200

300

400

500

300

400

500

f (Hz) 1.5

0.8

0.6

/Hz] [V

[V

2

2

/Hz]

1 0.4

0.5

0.2

0

0 100

200

f (Hz)

Fig. 5. Integrated EMG, MMG probe: (a) inner view – EMG front-end circuit, (b) electrode and acoustic chamber view

300

400

500

100

200

f (Hz)

Fig. 7. Examples of power density EMG signals. Notch filter active. Energy of the signals are (left to right and down): 4.4; 4.9; 4.4; 9.0 V2 Articles

25


Journal of Automation, Mobile Robotics & Intelligent Systems

VOLUME 11,

100

80

70

60

Energy [%]

50

40

3.2. Measurement Software

30

20

10

0 50

0

100

150

200

250

300

350

450

400

500

f (Hz)

Fig. 8. Cumulative sum of power density for four examples of EMG signals like in Fig. 7 To check a dynamic range of EMG signals noise of the output voltage was investigated. Fig. 9 shows the power of noise of the EMG signal in case when muscles are relaxed. It is seen that the noise of relaxed muscle is higher (2 to 6 times) than that calculated from catalog data of used amplifier (28nV/√Hz) and Johnson’s noise for 100 kOhm resistor in temperature of 300K (40nV/√Hz). So the dynamic range of EMG signal can by estimated to (signal power from Fig. 7 to noise power from Fig. 9) 20–26 dB witch is quite small value. It means that the resolution of AD converter of 16 bits is oversized and in practical application can be significantly reduced. 10

-3

2

10

Fig. 10. Main window of EMG_Rejestrator

1.5

/Hz]

/Hz]

1

2

2

[V

[V

2

0.5

0

0 100

200

300

400

500

100

f (Hz) 10

-3

1.5

300

400

500

10

300

400

500

-3

/Hz]

/Hz]

1

2

2

0.5

[V

[V

200

f (Hz)

1

0

0.5

0 100

200

f (Hz)

300

400

500

100

200

f (Hz)

Fig. 9. Noise power density for relaxed muscles. Energy of the noise are (left to right and down): 0.06; 0.026; 0.017; 0.02 V2

26

Filter-amplifier circuits of the system were placed in a one housing and by means of multi-core signal cable combined with a analog-to-digital card PCIE-1816 – Advantech (inserted in the PC). The card has 16 independent, 16-bit, A/C transducers. Sampling the signal in each channel is proceeded with a frequency of f = 1 kHz (sampling period T f = 1 ms). Card driver buffers in interior memory 20 next samples for each of the 16 channels and saves them to a text file. When Articles

The second part of the developed measuring stand is a data acquisition software combining both hardware requirements and a methodology of measurement. To register bio-signals the EMG_Rejestrator software was developed. The software works together with the controller of PCIE-1816 card of described above system. It was written in C++ programming language and the Qt libraries. The program allows, at the stage of measurement, the pre-analysis, and elimination of those measurements, which differ from the others, allowing to record only the correct data. An assessment is made by the person supervise the experiment, based on observations of how the movement was made and on overview of the graphic form of the registered signal.

-3

4

1.5

2017

the driver is initiated, a buffer address (to which the driver has to prescribe a number of samples from the card) and a procedure address (the procedure rewrites the data from the buffer to a text file – 16 samples of 20 value) have to be put. Next data samples are saved to database every 20 ms. For a single measurement (it lasts by default 2 s) there are samples, which are rewritten 100 times.

90

6

N° 3

Recorded signals are presented up to date on the screen in the form of time charts. They are stored in the memory buffer and after the completion and acceptance the measurement they are transcribed to a text file database. The program assists in the run of the experiment: • Allowing to establish the registration parameters and the type of experiment (the measurement of EMG and/or MMG; the time of single measurement; the time of rest; the way of scaling charts; the number of measurements repetitions; the data file name); • Visualizing the recorded signals, signaling by sound the beginning of measurement and displaying a progress bar during the measurement; • Waiting for approval after the measurement; • Activating the progress bar of time of rest and preparing to make next move • Counting the measurements and after established number of repetitions finishing acquisition. EMG_Rejestrator application communicates with the user through an intuitive, graphical interface. The main application window can be divided into 4 sectors: – The top menu bar, where the research can be begun (option “Rejestruj” – Fig. 11a) or settings of


Journal of Automation, Mobile Robotics & Intelligent Systems

applications can be changed (option “Ustawienia” Fig. 11a); – Below the menu bar there are presented 16 charts, 8 for EMG and 8 for MMG signals. During registration signals are presented in real time, so that the operator can control the correctness of the study.; – Under charts, there are two progress bars: green which determines the progress of current measure, which by default takes 2 seconds and red which determines the progress of the break/rest, which lasts for 3 seconds; – At the bottom of the window, during the test, there are shown the name of the file and the number of current measurement.

Fig. 11. Menu of EMG_Rejestrator; a – settings or recording; b – begin of recording In experiments dedicated to recognizing hand movements based on bio-signals, an analog system (filters and amplifiers) was used closed in a common housing and, connected via a multi-wire cable with 16-bit analog-to-digital converter (ADC) r PCIE-1816 by Advantech. Sampling frequency of f = 1 kHz was used (sampling period T f = 1 ms). ADC driver caches in memory 20 consecutive samples for each of the 16 channels and saves them to a text file at the address given by the program recorder. To initiate the PCIE driver, several information are requested: address of a buffer (in the recorder) to which the driver has to prescribe a set number of samples, and the address of the procedure, which rewrites the data from the buffer to a text file (16 strings samples after 20 value). This means another portion of the data recording to a text file every 20 ms. For a single measurement (for each repeat each test movement), of duration of default 2 s, collected by the card samples are rewritten 100 times.

3.3. Methodology of Measurement

At the time of a single measurement, the tested person performs one iteration of the movement, including: – Preparation of grip (lifting and moving the forearm in the direction of the gripped object and position of fingers on the object); – Griping (clamping fingers on the object and lifting the object). Putting aside the gripped object is realized in the “rest phase”. The application signalizes the beginning of each measurement with a sound and a green progress bar displaying on the screen. The end of the progress bar indicates the end of the registration of a movement. The person putts aside gripped object and prepares for the next measurement. At that time an supervisor evaluates and accepts (by pressing any

VOLUME 11,

N° 3

2017

key) or rejects the measurement (by pressing Escape). The assessment is made based on an observations of how a movement was made and on graphic form of a time course of signal. This initial analysis allows to avoid errors due to inattention or mental fatigue and write only valid data. An approval runs red progress bar (Fig. 10), which lasts 3 seconds. The result of an accepted measurement is stored in a text file in the previous specified directory. If the movement was not accepted the result is not saved. It is activated the progress bar of “break” and the movement and measurement of signals EMG/ MMG are repeated.

3.4. Placement of Electrodes

The task of the developed measuring system is the registration of bio-signals for many people and for different hand movements. It causes the need for multiple clamping of electrodes in next studies. Therefore, when the placement of electrodes was chosen, there was need to obtain good reproducibility of deployment. The adopted arrangement of electrodes was show in Fig. 12. Electrodes are arranged in two rows (upper and lower side of forearm) of 4 electrodes in every row, in such a way as they form a straight line running from the thumb (sensor 1) to the elbow (sensor 4) and from the small finger (sensor 5) to the elbow. Fig. 12. Placement of electrodes on forearm: inside and outside

4. Conclusions The paper presents the concept of the construction of the measurement stand for concurrent recording EMG and MMG signals, developed at the Faculty of Electronics of Wroclaw University of Science and Technology. The purpose of the stand is the registration of bio-signals for many people and for different movements, leading to the creation of Signal Base, that allows the experimental study of biosignal analysis methods (including methods of feature extraction and selection, and classification). The results of the measurement session carried out with the developed position, confirm the correctness of the adopted assumptions (in the design of integrated probes, measuring circuits, and also software and the procedures for carrying out measurements) which are the result of years of research of the authors into the use of biosignals in the construction of human-machine interface. The developed measuring system eliminates the most known artefacts meet in data acquisition of EMG and MMG signals. As for the quantitative estimation, the noise own electronic circuit (parameter of used front-end amplifier), and Johnson noise of “body” modeled as resistor are smaller than that of relaxed muscle signal. Signal to noise ratio (dynamic) understood as the ratio of EMG Articles

27


Journal of Automation, Mobile Robotics & Intelligent Systems

signal of active muscle to relaxed muscle is quite small and can be estimated to 20–26  dB. This conclude that the 16-bit resolution ADC seems to be oversized in this application. Electromagnetic smog high-frequency (radio-frequency, cellular, Wi-Fi etc.) have been effectively eliminated by filtration, and screening systems. It was shown that bandwidth of EMG signals do not excite about 300 Hz, so the sampling frequency as low as 1  kHz is sufficient in practice. The most difficult to eliminate in medical measurements is 50  Hz hum (USA 60  Hz). It generally has two components – a common of large amplitude and a differential - much smaller. Common component was reduced by: – placing pre-amplifier directly with electrodes, which reduces the possibility of capacitive coupling, – the use of a differential amplifier having a high CMRR. Differential component of the hum was eliminated applying 50 Hz active notch filter which can be activated in hazardous electromagnetic environment to prevent next stage amplifier from saturation. The integration of probes measuring two different modalities enables the study of the impact of the synergy of different information to improve the efficiency of further process steps to recognize human intentions. The solution is not free of drawbacks. Certain problems by producing acoustic noise and restricting movement in the conducted experiments bring the cables connecting probes with amplifying circuits. The current works are aimed to replace these wires by wireless communication which will result in autonomous probes.

AUTHORS

Andrzej Wołczowski – Chair of Cybernetics and Robotics, Electronics Faculty, Wroclaw University of Technology, ul.  Janiszewskiego 11/17, Wrocław, Poland. E-mail: andrzej.wolczowski@pwr.wroc.pl. Michał Błędowski* – Chair of Cybernetics and Robotics, Electronics Faculty, Wroclaw University of Technology, ul.  Janiszewskiego 11/17, Wrocław, Poland. E-mail: michal.bledowski@pwr.wroc.pl.

Jerzy Witkowski – Chair of Electronic and Quantum Electronic Systems, Electronics Faculty, Wroclaw University of Technology, ul.  Janiszewskiego 11/17, Wrocław, Poland. E-mail: jerzy.witkowski@pwr.wroc.pl. *Corresponding author

REFERENCES

[1]

28

E. Biddiss, T. Chau, “Upper-limb prosthetics: Critical factors in device abandonment”, American J. of Physical Medicine and Rehabilitation, vol. 86, no. 12, 2007, 977–87. http://dx.doi.org/10.1097/PHM.0b013e3181587f6c.

Articles

VOLUME 11,

[2]

N° 3

2017

B. Hudgins, P. Parker, R. N. Scott, “A new strategy for multifunction myoelectric control”, IEEE Trans. Biomed. Eng., vol. 40, 1993, no. 1, 82–94. http://dx.doi.org/10.1109/10.204774. [3] A. Wołczowski, “Smart hand: the concept of sensor based control”. In: Proceedings of MMAR conference, Miedzyzdroje, 2001, 783–790. [4] A. Wołczowski, M. Kurzyński, “Human-machine interface in bioprosthesis control using EMG signal classification”, Expert Systems, vol. 27, 2010, no. 1, 53–70. http://dx.doi.org/10.1111/j.1468-0394.2009.00526.x. [5] A. Wolczowski, J. Jakubiak, “Control of a multi-joint hand prosthesis – an experimental approach”. In: Proc 9th Int Conf Computer Recognition Systems CORES 2015, ser. Advances in Intelligent Systems and Computing. Springer International Publishing, 2016, chapter 52, 553–563. http://dx.doi.org/10.1007/978-3-319-26227-7_52. [6] M. Kurzynski, M. Krysmann, P. Trajdos, A. Wolczowski, “Multiclassifier system with hybrid learning applied to the control of Bioprosthetic hand”, In: Computers in Biology and Medicine, vol. 69, 2016, 286–297, 2016. http://dx.doi.org/10.1016/j.compbiomed.2015.04.023. [7] A. Wolczowski, M. Kurzynski, “Control of hand prosthesis using fusion of biosignals and information from prosthesis sensors”. In: Computational Intelligence and Efficiency in Engineering Systems. Eds. G. Borowik, chapter 19, Springer Int. Publishing, 2015, 259–273. http://dx.doi.org/10.1007/978-3-319-15720-7_19. [8] M. Kurzynski, A. Wolczowski, “Multiple Classifier System Applied to the Control of Bioprosthetic Hand Based on Recognition of Multimodal Biosignals”. In: Proc. of 15th Int. Conf. on Biomedical Engineering, chapter 147, Springer Int. Pub., 2014, 577–580. http://dx.doi.org/10.1007/978-3-319-02913-9_147. [9] Y. Su, C.R. Allen, A. Wołczowski, G.D. Bell, “Telerobotic control using instructions from human hand motion”. In: Robot Control 2003. (SYROCO ’03). Proc 7th IFAC Symposium, vol. 2, ed. by I. Dulęba and J. Z. Sąsiadek. Oxford, UK, Elsevier, 2004, 527–532. http://dx.doi.org/10.1016/S1474-6670(17)33448-1. [10] M. Kurzynski, A. Wolczowski, T.G. Amaral, “Control of bioprosthetic hand based on EMG and MMG signals recognition using multiclassifier system with feedback from the prosthesis sensors”. In: Proc. of 2nd Int. Conf. on Sys. and Cont., [11] Marrakech, Morocco, June 2012, 280–285.[11] T.V. Camata, J. L. Dantas, T. Abro, et al., “Fourier and wavelet spectral analysis of EMG signals in supramaximal constant load dynamic exercise”. In: Engineering in Medicine and Biology Society (EMBC), 2010 Annual International Conference of the IEEE, August 2010, 1364–1367. http://dx.doi.org/10.1109/IEMBS.2010.5626743. [12] N. F. Güler, S. Kocer, “Classification of EMG signals using PCA and FFT”, Journal of Medical Systems, vol. 29, no. 3, 241–250, 2005. http://dx.doi.org/10.1007/s10916-005-5184-7.


Journal of Automation, Mobile Robotics & Intelligent Systems

VOLUME 11,

N° 3

2017

[13] A. Cichocki, R. Zdunek, A. Phan, S. Amari, Nonnegative Matrix and Tensor Factorizations: Applications to Exploratory Multi-way Data Analysis and Blind Source Separation, Wiley and Sons, 2009. http://dx.doi.org/10.1002/9780470747278. [14] H. M. Al-Angari, G. Kanitz, S. Tarantino, C. Cipriani, “Distance and mutual information methods for EMG feature and channel subset selection for classification of hand movements”, Biomedical Signal Processing and Control, vol. 27, May 2016, 24–31. http://dx.doi.org/10.1016/j.bspc.2016.01.011. [15] A. Wołczowski, J. S. Witkowski, Stanowisko badawcze do akwizycji biosygnałów, Report of the Institute of Computer Engineering, Control and Robotics of Wroclaw University of Technology 2013, Ser. PRE no. 47, Wrocław, 2013. (in Polish) [16] W. Sobczak, W. Malina, Metody selekcji i redukcji informacji, WNT, Warsaw, 1985. (in Polish) [17] C.J. De Luca, Electromyography. Encyclopedia of Medical Devices and Instrumentation, John Wiley Publisher, 2006, 98–109. [18] bebionic, http://bebionic.com/the_hand/grip_ patterns/key_grip [19] ottobock, http://www.ottobock.pl/ [20] delsys http://www.delsys.com/

Articles

29


Journal of Automation, Mobile Robotics & Intelligent Systems

E

,F

A S

VOLUME 11,

S

E

E

N∘ 3

2017

E

Submi ed: 25th March 2017; accepted: 26th October 2017

Arkadiusz Janik, Roman Janusz DOI: 10.14313/JAMRIS_3-2017/26 Abstract: Scrip ng and expression evalua on engines are popular tools in the Java so ware ecosystem which is understood as any environment using Java Virtual Machine (JVM) to execute code (which does not have to be generated from Java language). With the current, wide-spread popularity of Java and Java bytecode compliant languages it means that both: tradi onal, stand-alone Java programs as well as enterprise systems run on applica on servers or even systems deployed in microservices architecture can be considered. Expression evalua on engines are o en used for purposes like defining document templates, enhancing various sta c configura on formats with dynamically evaluated snippets or defining data binding for user interfaces. However, most of these solu ons employ dynamically typed languages and suffer from limited performance and lack of any concern for security. This effec vely makes it impossible to use expression language as a feature exposed to end users. This paper presents a new approach to implemen ng an expression engine. It uses Scala as the expression language and leverages its sta c type system as well as its rich feature set to create an expression evalua on engine with expressive and concise language, high evalua on performance and fine grained security control. In the paper we present use case built for the domain of telecommunica on networks. In large telecommunica on networks one can find hundreds of devices for which configura on has to be updated either periodically or on-demand when a given event occurs. Contents of configura on files may have to be generated dynamically (based on some data associated with a given device). On top of that, since communica on networks are heterogeneous environments with hardware delivered by different providers, exact form of each config file may vary depending on a type of a device and its manufacturer. Moreover, as structure and size of telecommunica on networks evolve as new devices are added, there is a need to dynamically and remotely support completely new types of devices with a completely new format of configura on. This paper presents how the problem can be solved by using configura on file templates with placeholders that would be filled by some data associated with a given device. Each template is an expression that evaluates to exact configura on file. Performance is crucial (due to size of network) and so is security: the solu on should allow to control what kind of configura on and by whom may be applied to devices while s ll allowing network operators to use a Graphical User Interface to define (or redefine) configura on file templates. 30

Keywords: expression evalua on engine, Scala

1. Introduc on Embedding scripting environments inside larger software systems is a commonly used technique where the system serves as a container for some specialized, domain speci ic logic that can be loaded and executed dynamically. Such environments allow implementing features that cannot be expressed by simple graphical interfaces without losing much of inegrained control and generality provided by a scripting language. Perhaps the most ubiquitous example of such a system is any web browser. The scripting language that it embeds is of course JavaScript and the browser serves as an execution environment for scripts. Embedded scripting enables dynamic loading and execution of entire programs. A more lightweight and limited version of scripting engine is an expression evaluation engine. Instead of scripts that can be long and complex, an expression engine allows only simple expressions to be evaluated, with no access to constructs like loops, de initions of functions or classes, etc. Expressions usually consist of method or function invocations and operator applications that operate on expression input and produce some output data. Therefore, unlike script execution, expression evaluation is usually not allowed to cause any side effects. One of the most challenging aspects of embedded scripting and expression evaluation engines is security. Loading and executing code provided dynamically by some third party poses a serious threat of letting malicious program execute which could result in either damage to the host system or unauthorized access to sensitive data. The more freedom a scripting engine allows, the harder it is to secure it. An expression engine is much easier to secure than a full-blown embedded scripting engine like browser-embedded JavaScript. A good example of an expression evaluation use case is an expression-enhanced administrative panel. Such panel may be used, for example, to adjust a greeting message that is displayed to users upon logging into a web portal. The message would be con igured as an expression (template) that has access to the data of the user logging in. Another example could be an administrative interface for massive data processing system where a user could dynamically specify a data crunching job to be executed on a large amount of potentially distributed


Journal of Automation, Mobile Robotics & Intelligent Systems

data (e.g. a map-reduce job). An expression would deine actual transformations performed on that data. The domain that authors of this paper focused on when building the real-life use case, though, is telecommunication networks where there is a need to update con iguration of network devices (or provide con iguration of newly added devices) in some situations such as device recon iguration, device decommissioning, network topology change etc. The proposed solution has been successfully used to built a device management platform that allows telco operators to monitor and manage devices installed in their networks. As mentioned above the system has to work in network with virtually unlimited number of devices. The devices can be automatically or manually grouped into hierarchies so that it is possible to manage them in bulk but still allowing ine-grained differences between con igurations if required. Network devices have to be recon igured remotely and it can be easily done with con iguration iles periodically fetched by devices from management systems. As part of con iguration content is attributes (or metadata) of a given device, con iguration ile templates can be used. In other words: each template is an expression that evaluates to a con iguration ile. In order to adapt to changing topology of a network and to be able to support new types of devices with a new format of con iguration iles there is a need to provide a user interface to network operators allowing them to de ine new formats dynamically. The system guarantees a ine-grain security control over information that can/cannot be de ined in the template. The evaluation engine built is part on an internal scripting language that has to be lexible as both: format of con iguration expected by a given device as well as output format used by a given device can vary but should be uni ied for end-user experience. By end-user we understood network administrators with some technical background. The evaluation engine allows them to (re)adjust the system for needs of a given customer without rebuilding and redeploying the system. This paper describes an attempt to create an expression engine running on the JVM that is good for use cases like the ones described above. More systematically, the essential requirements for such engine are: - very high evaluation performance - a single expression, compiled once, is likely to be evaluated massively, for many inputs - ine grained security control - ability to easily reject potentially dangerous expressions by limiting what constructs and what API can be used - lexibility and extensibility of the expression language All of these requirements have a common denominator: to allow the expressions to be dynamically provided in runtime by means of graphical (e.g. administrative) interfaces without fear of security breaches and performance bottlenecks. The research described in the paper allowed aut-

VOLUME 11,

N∘ 3

2017

hors to build a domain-speci ic language in Scala (that was used to de ine allowed language syntactical constructs and calls to control and limit evaluations in terms of security) and to build a real-life, working and commercially used system that utilizes the evaluation engine to remotely manage devices in telecommunication networks.

2. Related Work The paper [19] presents the algorithm for evaluating physical expressions and performing automatic conversions between quantities measured in different physical units. The paper describes CellML - the XMLbased modelling language that can be used to represent units and expressions in a way that allows their easy validation and unit conversion. The authors described the two phases, partial evaluation algorithm. The solution, although very interesting cannot be used in our research as it only provides a part of required features. It proposes checking physical units at the level of the modelling language, removing the need for the support in the programming language. Also - due to a nature of the solution - security problems are not addressed at all. Similarly, although [23] presents a novel approach to interpretation for abstract equations using table-driven pattern matching it does not address security problems and cannot be used to evaluate general expressions. An interesting idea to build an expression evaluation engine is to use XQuery as a base and one of available XQuery engines as the execution environment. This could be achieved directly in Java - for instance by using XQuery Processor for Java solution. The paper [20] presents XQuery as a very convenient expression evaluation engine. The paper summarizes nonstandard applications of XQuery - using it to solve recreational problems and puzzles or - speaking more generally - using it as a problem-solving language. A special case of an evaluation engine is regular expression searching engine. A regular expression can be understood as a domain speci ic language (DSL) that has to deal with text-parsing. There is a variety of engines available for Java platform. FIRE/J is one of them [21]. What makes the solution unique is its speed. According to the authors of the publication their solution is the fastest one which is one of goals of our project. FIRE/J has a major limitation, though. It’s developed as a tool for direct code generation. FIRE/J transforms each regular expression into a class ile that is tailored speci ically for the expression. As a result the solution cannot be used to provide a real, run-time expression evaluation engine. Regular expression evaluation engine is also a part of [29]. Even though the main subject of the paper is improving ef iciency on spam iltering techniques some ideas presented may be useful in the broader context of evaluation engines. The paper focuses on evaluating regular expressions in a fast and ef icient way. Despite of a lack of support for general expressions, the solution focuses on C/C++ platform. Although the major subject of the paper [30] is 31


Journal of Automation, Mobile Robotics & Intelligent Systems

combining textual and visual programming by displaying Python and Java objects in a visual way some ideas presented could be utilized in the general concept of evaluation engine. Extending the evaluation engine so that it allows a user to specify the expression as a combination of text (expression code) and visual constructs may improve the user experience. One of test cases presented summarizes a visual editor of regular expressions. Nevertheless, the paper focuses on Visual Programming Languages (VPL) thus making it only partially useful in the context of our research. Another example of a special case of expression evaluation engine is a database query engine. The good description of an algorithm for evaluating database queries is described in [22]. Queries are represented as expressions in a logical language. The recursive algorithm computes values of (sub)expressions in such a way that re-evaluation is avoided. To increase performance additional techniques are used such as transformations of the input expression. Although the performance of the proposed algorithm is high the solution focuses on a database queries only. Moreover, it does not describe the whole engine. Security aspect due to a nature of queries - is not addressed, neither. Another example of research done on building eficient query engines is presented in [28]. What constitutes the research particularly interesting for our work is Scala language that has been selected to implement LegoBase - a query engine being analysed by authors. The paper is part of abstraction without regret manifesto. Authors claim that database query compilers should allow both: productivity (by using high level languages) and high performance. It means that developers should not be forced to use low-level abstraction to program database management systems in order to obtain high performance. The approach taken by authors is to use Scala (which means: a highlevel language) which is then optimized to optimized, low-level C code for each SQL query. Authors used Scala to emit C code. Generative (meta)programming in Scala takes advantage of the type system of the language which ensures that abstractions such as generic data-structures or function calls are optimized away during code generation. Similar concept has been selected in our research: each evaluation is compiled to Java bytecode (.class), loaded to JVM and then instantiated. Such an instance is ready for evaluation. As mentioned before a regular expression language is an example of a domain speci ic language (DSL), sometimes ”little languages”. A DSL is a concise programming language designed to express in a clear way a small domain of problems. A particularly interesting case for our purposes is embedded DSL which lives inside a host language which allows developers to use existing language instead of learning a new syntax. The paper [24] addresses signi icant problem of such languages. As DSLs exist inside a general purpose language it is dif icult for them to exploit domain knowledge. To deal with the problem there is a need for virtualizable languages - the ones that provide environment for embedded languages that gua32

VOLUME 11,

N∘ 3

2017

rantee embedded languages identical to corresponding stand-alone language implementations when it comes to safety, performance and expressiveness. The above mentioned paper mentions major safety problems related with language virtualization and DSL. However, the paper does not focus on safety thus not provide a solution. The work presented in [24] was the initial survey of the area and has been continued by the team of Tiark Rompf and Hassan Cha i later on. One of interesting applications of DSL is described in [25]. The work is driven by the need to support increasing size of datasets and limited amount of computational power. Authors propose an alternative to MATLAB: OptiML - a domain-speci ic language for machine learning. The major problem authors focused on is heterogenous environment which, despite of lots of advantages requires researchers to have expert knowledge in different programming models (aimed at a speci ic component of a computing system: messagepassing libraries, threaded libraries, data parallel programming models etc.). What makes this research particularly interesting is fact that OptiML is embedded in Scala. Its complier is implemented in Scala so OptiML programs are also valid Scala programs. OptiML uses technique called lightweight modular staging to build an intermediate representation of a program. Several static and dynamic optimization techniques are used including pattern rewriting, op fusing, best effort computing or relaxed dependencies. Authors focus on performance aspect of the problem but security control is beyond the scope of the research. It has to be underlined that signi icant difference between our research and OptiML is OptiML’s dependency on Scala-Virtualized [26]. Scala-Virtualized is a branch of the Scala compiler and standard library that contains a few additions to provide even better support for embedded DSLs. The major contribution is overloadable control structures (whileloops, if-then-else, pattern matching), variables, object creation, etc. In Scala-Virtualized concept of translating for-comprehensions into method calls (to allow a programmer to change the meaning of a forcomprehension by implementing these methods in a required way) has been generalized to all control low operators. An extremely interesting and practical application of Lightweight Modular Staging is Lancet - a Just-InTime (JIT) compiler framework for a Java bytecode [27]. Traditional JIT compilers use rather simple statistics to determine piece of code to be compiled (such as a number of a method’s calls) and use speculative (”optimistics”) inlining decisions (which means that later on, during program’s exeecution the method call may resolve to a different target thus forcing JIT compiler to deoptimize compiled code and compile/inline again). What Lancet adds on top of techniques used by modern JIT compilers is ”access” to many other information that could be exploited runtime. Mixing DSLexpressions in a more general program allows explicit compilation and compile-time computation. Expli-


Journal of Automation, Mobile Robotics & Intelligent Systems

cit (on-demand) compilation is utilized by invoking JIT compilation directly by programs which gives an possibility to relay warning (or error) messages to the program. That, combined with several techniques of code optimization (namely controlled inlining, dead code elimination and aggressive partial evaluation) allows the compiler to guarantee (in same cases) that the part of compiled code will never allocate objects on the heap. As a result, that part of code can excluded from garbage collector’s tracking. Compile-time computation is a technique that allows JIT compiler to call back into the running program. In other words, the JIT compiler is provided access to a ”context” - proper ”smart” library provided by a programmer of an application allows smart, domain-speci ic compilation optimizations. Even though the goal of authors - more eficient, better native code generated by JIT compilers - is beyond the scope of our work some concepts presented in the above mentioned paper have been included into our research. For instance SyntaxValidator trait implements similar logic to a part of Lancet called ”taint-analysis” which tracks what happens to user input. It is assumed that input is tainted and validation is performed to check whether the tainted data is ”leaked” to branched part of code etc. Dedicated Expression Engines JVM has a signi icant number of expression evaluation engine implementations. In this article, particular three are of our interest: - Java Uni ied Expression Language (JUEL) [1] - Spring Expression Language (SpEL) [2, ch.8] - MVFLEX Expression Language (MVEL) [3] JUEL is an implementation of the Uni ied Expression Language standardized as a part of JSR-245 speci ication - Java Server Pages [4]. In JSP and JSF (Java Server Faces [6], its successor) an expression language is used mostly as a data binding layer between a web interface and an underlying business layer. Expressions are embedded inside JSP/JSF pages to specify what data various UI components link to. This is a good example of a template-based user interface development, where a web page is a template that has some ”holes” that need to be illed up in concrete context by an expression evaluation. SpEL is an expression language used by the Spring Framework [2], primarily for enhancing con iguration of application components (called beans) in the IoC (Inversion of Control) container. In particular, expressions can be embedded in XML iles that con igure beans or inside Java annotations in source code of application components. This allows setting dynamic values to various con iguration properties that can’t be expressed by simple literal values. MVEL is a general purpose expression engine with a hybrid dynamically-statically typed language and an optional compilation to JVM bytecode which signi icantly improves performance. The three listed expression engines use mostly dynamically typed, ad-hoc, simple expression languages.

VOLUME 11,

N∘ 3

2017

JUEL and SpEL were designed to be used in static resources of applications that use them. None of the three engines have any security features or means of easily achieving it.

Expression Engine on Top Exis ng Language Perhaps the most well known speci ication of an embedded scripting engine on the JVM is the JSR-233 standard, Scripting for the Java Platform [5]. It speci ies standard data types and interfaces that must be provided by an engine that allows dynamic script execution inside a running JVM program. This standardized API primarily de ines the way that host a program can communicate with an embedded script - a glue layer. It is agnostic of the actual scripting language. There is a vast amount of JSR-233 implementations for many standalone programming languages as well as custom, ad-hoc scripting languages. These include Java, JavaScript, Groovy, Scala, Ruby, Python, PHP, etc. An JSR-233 scripting engine could be used as a basis for an expression engine providing that there is a way to limit the scripting language to simple expressions with proper security enforcement. The standard itself does not de ine any means to achieve that, but concrete implementations and the scripting language that they use may have such capability. If a programming language has a standalone interpreter or compiler to JVM bytecode that by itself also runs under JVM, it could be used directly instead of relying on a JSR-233 implementation. In general, suitability of an JSR-233 implementation or a standalone compiler for implementing an expression evaluation engine depends heavily on traits of the language itself. Since the new expression engine targets the JVM, we are only considering languages that have a JVM implementation. Also, requirements for evaluation performance and ability to statically analyze expression code suggest that languages with at least some form of static typing should more easily meet these requirements than dynamically typed languages. Three languages have been chosen for evaluation in this paper: - Java [7] - statically typed but verbose and in lexible in many aspects - Groovy [9] - concise and lexible in many ways, but mostly dynamically typed (static typing as an option) - Scala [8] - statically typed, with conciseness and lexibility potentially on par with dynamically typed languages thanks to type inference and other features Scala and Groovy are normally languages compiled to JVM bytecode, but this does not mean there’s no point in them supporting JSR-233. The point of JSR233 is not just interoperability with JVM objects but dynamic, embedded execution without need for explicit compilation and deployment. 33


Journal of Automation, Mobile Robotics & Intelligent Systems

VOLUME 11,

3. Language Comparison In order to choose a programming language that could serve as a basis of an expression evaluation engine, we must recognize what features in detail should the expression language provide. The new expression engine should be considered as a potential replacement or alternative to already existing engines and therefore should support most of expression language constructs that these engines provide. More in-depth research on engines mentioned earlier (JUEL, MvEL, SpEL) as well as a closer look on general purpose programming languages that could be a basis for the new expression engine reveals the following set of commonly supported constructs:

2017

of additional features that are important for the programmer who sets up the expression evaluation context. In particular, he/she must be able to in luence how expressions in concrete context are compiled and evaluated and what constructs, API and types are available to the author of expressions. In detail, these features include: - ability to de ine what top-level functions and objects are available in the expression - pluggable strategies for implementing dynamic object property access and method calls - enhancing API of existing types, e.g. by adding additional methods to standard data types like strings

- essential constructs: literals, constants, arithmetic and logical operators

- limiting the API of well-known types only to a desired set of methods, ields, etc.

- variable assignments and references

- de ining additional automatic type conversions - custom operators and operator overloading

- function and method calls - class instantiation - operators for concise access to array, list and map elements (like square brackets for array access in Java) - concise syntax for array, list and map creation - ield references and assignments - anonymous functions (lambdas) - basic higher-order functions for collections like iltering and transformation - automatic type coercion - null-safe dereference, e.g. the .? operator in Groovy [10]. Example: expression obj.?field will evaluate to null when obj is null instead of failing with an exception. - default value operator (e.g. Groovy Elvis - ?: [11]) Makes it possible to concisely provide a fallback value that should be used when another value is null. Example: obj.name ?: "unknown" - conditional expressions (e.g. ternary operator ?: in Java) - structural and if-else etc.)

imperative

constructs

(loops,

- template expressions - string literals with ”holes” that will be illed by actual expressions. An example of atemplate expression in SpEL (see [2, p.189]): My name is ${person.name} where person is the input object containing a property name. - standard C/C++ and Java like syntax for function and method invocations and operators (this excludes Lisp or Haskell like languages) The features listed above are only the purely syntactical constructs used by the end user who will actually write expressions. However, there is also a set 34

N∘ 3

- ability to statically (during expression compilation) analyze the expression code and reject potentially unsafe or forbidden constructs and invocations JUEL, MVEL and SpEL engines as well as the languages Java, Groovy and Scala were all veri ied in detail if features mentioned above are supported by them in any form. Table 1 summarizes the results of this research. As we can see, Scala and Groovy seem to be the most promising. They have most of the language features required for an expression engine and they are the only two technologies with possibility of static expression code analysis, which is probably the most important requirement for the new expression engine considering its need for security enforcement. Additionally, after more detailed analysis, Scala seems to be the winning option over Groovy since the latter is severely limited in its static analysis capabilities by dynamic typing. Although it is possible to force static typing in Groovy and obtain some type information during compilation (by means of Groovy’s ASTTransformation feature), this cripples other language features like dynamic method calls or ability to enhance API of existing types. Adding language features and extensibility mechanism listed in Table 1 to already existing languages would be a non-trivial task requiring probably creating a fork of each language and modifying their compilers/interpreters accordingly. Therefore, Scala is selected as the most suitable technology for implementing the extensible, fast and secure expression engine described in this article. It is worth explaining how the constructs to be exposed in language comparison were chosen. Expression language is not meant to be a full programming language. In order to implement use cases like the one described in the paper (con ig ile templates) we only need the ability to de ine relatively small, pure functions. For that, constructs like ield/property selection, function/method/operator application, ’if’-’else’ expressions, lambda expressions, literals and constants are suf icient. Expression engine will not be used


Journal of Automation, Mobile Robotics & Intelligent Systems

VOLUME 11,

N∘ 3

2017

Tab. 1. Language comparison summary Feature constants and literals arithmetic and logical expressions variables object property access and assignment method calls class instantiation concise collection and map element access concise collection and map creation basic higher order functions for collections lambda expressions automatic type coercion null-safe dereference default value operator conditional expressions imperative and structural statements template expressions pluggable dynamic property access and assignment strategies pluggable dynamic method invocation strategies enhancing API of existing types limiting API of existing types custom automatic type conversions custom operators and operator overloading static expression code analysis

Java 3 3

Groovy 3 3

Scala 3 3

JUEL 3 3

SpEL 3 3

MVEL 3 3

3 3

3 3

3 3

3 3

3 3

3 3

3 3 7

3 3 3

3 3 3

3 7 3

3 3 3

3 7 3

7

3

3

3

3

3

3

3

3

7

3

3

3 7 7 7 3 3

3 7 3 3 3 3

3 3 3 3 3 3

7 3 7 7 3 7

7 3 3 3 3 7

3 3 3 7 3 3

7 7

3 3

3 3

3 3

3 3

3 3

7

3

3

7

3

7

7 7 7

3 3 7

3 3 3

7 3 3

3 3 3

7 7 3

7

3

3

7

3

7

7

3

3

7

7

7

to implement complex algorithms, side-effecting programs, low-level programs or large codebases. Therefore, there is no need to support language constructs like methods or classes, which are associated with code reuse, abstraction, modularity, readability and long-term maintenance. Supporting minimal, suficient subset of language features also makes it way easier to secure the engine against exploits and write UI tools for syntax highlighting, suggestions, etc.

4. Scala as Expression Language In this section we will present a quick overview of essential properties of the Scala programming language and discuss in detail how its various features are suf icient to meet requirements discussed earlier. See [12] and [13] for more complete overview of the language. Scala [8] is a programming language for the JVM aiming to blend the object oriented and functional programming paradigms and retain good interoperability with Java. It is a statically typed language with type inference and very complex, ine-grained type system. At the same time it aims to be close in its conciseness and

lexibility to dynamically typed programming languages. Scala version 2.10 introduces important metaprogramming facilities - re lection and macros which are key for implementing security features of the expression engine. Scala naturally supports essential constructs like constants, arithmetic expressions, object property access and method calls, constructors, etc. Expressions in Scala mostly have a syntax similar to Java. Differences include e.g. usage of square brackets instead of angle brackets to denote generic types. For example, Arrays.<String>asList("str") in Java becomes Arrays.asList[String]("str") in Scala (the type can however be usually omitted due to type inference). In Scala, there is no clear difference between a method and an operator. Every operator can be though as if it’s a method with a symbolic name. At the same time every method which takes exactly one argument can be called with an in ix syntax. All of the following constructs are correct: 1 + 2 35


Journal of Automation, Mobile Robotics & Intelligent Systems

N∘ 3

2017

1.+(2) set.contains(element) set contains element

List(1, 2, 3, 4).filter(_ % 2 == 0) List(1, 2, 3, 4).filter(i => i %2 == 0) List(1, 2, 3, 4).map(_.toString)

An unique feature of Scala is an ability to de ine implicit conversions [12, ch.15] between types. In an expression evaluation engine, this can be used for two purposes: - to provide custom automatic type coercion

Scala does not have a ternary conditional operator (?:) from Java but it does not explicitly need it, because - unlike in Java - the if-else statement is an expression in Scala which means that is has a value. This means that if-else can be used instead of ternary operator:

- to enhance API of existing types with new methods, ields, etc. The API enhancing is possible thanks to the so called implicit views. By introducing an implicit conversion from type A to type B we effectively enhance API of A with API of B. Methods in type B become extension methods of type A. This is often realized in Scala using a syntactic sugar called implicit classes. The following example enhances type String with an additional capitalize method: implicit class richStr(str: String) { def capitalize = str(0).toUpper + str.substring(1) } It is worth noting that extension method can also be called with an in ix syntax, so it is effectively possible to create and overload operators. Scala also has a number of syntactic sugars that increase conciseness. For example, when a method is called apply, it can serve as an overloaded function application operator, i.e. obj.apply(arg) can be rewritten just as obj(arg). Thanks to this, we can have concise collection creation constructs like: List(1, 2, 3, 4) Array("str", null, "sth") Map("one" -> 1, "two" -> 2)

val yes: Boolean = ??? val repr = if(yes) "yes" else "no" Scala also does not have null-safe dereference operator or default value operator, but it is possible to create a custom operator in Scala that serves both purposes. We will not show the implementation in this article, but as a guideline, the technique used to do this involves either macros or an implicit conversion that takes its input as an by name argument (another distinct feature of Scala). As a result, following syntax is possible: obj.prop.method(arg) ? defaultValue The expression in above example will evaluate to defaultValue either when left-hand-side operator evaluates to null or when evaluation of left-hand-side would result in a NullPointerException. So the ? operator is actually a combination of null-safe dereference and fallback value operator. In version 2.10, Scala introduced string interpolation syntax. It allows to splice identi iers and expressions into a string literal instead of concatenating all the parts with the + operator. The syntax happens to be similar or identical to template expression syntax in JUEL/SpEL/MVEL and therefore, string interpolations can directly serve as a realization of template expressions.

The example above also uses a few other, independent Scala features: - variadic arguments (the apply method takes a variable number of arguments of the same type)

val name = "John" val surname = "Kowalski" val greeting = s"Hello, $name $surname!"

- irst-class objects (List, Array and Map are actually singletons associated with their corresponding collection types - so called companion objects)

An area where Scala is perhaps more limited than dynamically typed expression languages is the ability to provide pluggable strategies for dynamic property access and method invocations on arbitrary types. The limitation is caused primarily by the static typing in Scala. However, this feature is often used in JUEL/SpEL/MVEL as a method for API enhancement which has already been shown to be possible in Scala using implicit classes. Scala allows dynamic method and property access on types that the programmer has control of (is their author). There is a special trait (base type) in Scala scala.Dynamic that can be extended by classes that need to support dynamic property/method access. In order to actually provide the property or method resolution strategy, that class needs to implement selectDynamic and applyDynamic methods. It is important to remember that selectDynamic and applyDynamic still are statically typed - they have

- type inference (the apply methods on objects List, Array and Map are generic) - custom operators (the -> is a custom operator that creates a pair out of its operands) The apply method can also be used to implement concise access to collection elements, e.g. someList(2), someMap("key"). It is important to remember that implicit conversions are resolved statically, based on types known at compile-time (unlike type coersions in JUEL/SpEL/MVEL which use runtime type information). Scala is a functional language, so it naturally supports constructs like lambda expressions and higher order functions. Examples: 36

VOLUME 11,


Journal of Automation, Mobile Robotics & Intelligent Systems

a statically typed arguments and a static return type. So this feature cannot be used to somehow introduce dynamic typing into Scala.

5. Metaprogramming in Scala Metaprogramming is the method used by Scalabased expression engine to enforce security of evaluated expressions. Therefore it deserves a separate overview in this article. Scala Compiler Metaprogramming techniques in Scala are heavily related to internal architecture of the Scala compiler. Therefore we will brie ly describe the compilation process and data types used by the compiler to represent various entities in compiled programs. These data types are also exposed by the re lection API, which is used in both runtime re lection and macros (described later). A compiler run consists of several phases [14]. Each phase takes as an input the output of the previous phase. In most cases, that input and output is the abstract syntax tree (AST) of the program. Each phase performs some modi ications and re inements on the AST. In total, there is about 30 phases. Phases can be divided logically into two stages, according to a standard, generic architecture of compilers: - Stage of analysis is responsible for extracting as much information as possible from the textual source code and transforms it into canonical intermediate representation ready to be compiled into JVM bytecode. The most important phases of analysis are the parser, namer and typer. Parser transforms the textual code into an initial AST. Namer is responsible at least for resolution of imports and typer - the most complex and time consuming phase performs the typechecking of the code. - Stage of synthesis gradually transforms the AST into more raw forms, closer to the inal representation which is ultimately translated into JVM bytecode. It contains several phases which are not of an interest in this article. The compiled program is represented inside the compiler primarily by three types of objects which refer to each other: - Tree is a representation of abstract syntax tree that is an input and output of most of the phases. Trees have immutable, hierarchical structure and mutable attributes. The structure of the tree heavily depends on what phase is being executed. For example, a tree just after parsing is closest in its structure to textual source code - no syntactic sugars have not yet been expanded, no types inferred, no implicit conversions applied, etc. The tree is still closest to its textual form in this phase because things like import resolution, type inference and implicit resolution have not been performed yet. On the other hand, all of this information is explicitly represented in the tree after it exists the typechecker phase. - Type is a representation of every Scala data type. Types are one of the attributes associated with most

VOLUME 11,

N∘ 3

2017

of the trees after they are typechecked. Types have a rich API which, among other things, makes it possible to inspect what members are available on various types or perform operations like type conformance tests. - Symbol objects represent various entities found in the source code. For example, each variable, method, class, object, etc. has a symbol. Symbols are divided into two subcategories - term symbols (values, variables, objects, etc.) and type symbols (classes, traits, abstract types, type aliases, etc.). Symbols are also associated with most of the trees after typechecking. For example, a tree representing a method invocation will have the symbol of the method being invoked associated with it. Reec on and Macros Trees, types and symbols are not only used by the compiler internally, but they are also exposed by the Scala re lection API [15]. This API is used by two metaprogramming facilities in Scala runtime re lection an macros. Runtime re lection [17] allows a programmer to work with trees, types and symbols in runtime, as the name suggests. It is possible to obtain types and symbols for runtime objects and extract various information from it. Macros [16] are a form of compile time metaprogramming in Scala. A macro is a special declaration in the Scala source code which is syntactically similar to a regular method. The difference between a macro and a method is that while a method works in runtime - on values of its arguments and returns some other value - a macro is invoked during compilation and takes as its input and output a Tree for each argument. It can inspect these trees and modify them before returning a inal tree that will replace the macro invocation and eventually be compiled to JVM bytecode. Macros are expanded inside the typechecker phase. This means that the trees that macros work on carry maximum information, including types and symbols. Macros can also trigger compilation errors during their expansion. Macros are the key feature for implementing security in a Scala based expression evaluation engine. They effectively allow a static analysis of expression code which can inspect what language constructs are being used in an expression being compiled and what methods are being invoked by it. Upon detection of a forbidden construct or invocation, the macro can simply trigger a compilation error.

6. Scala Expression Engine Implementa on This section describes the core API of the Scala expression evaluation engine as well as gives more details about the underlying implementation. Essen al Components and Types The central component of the Scala expression engine is the ScexCompiler object. It encapsulates the actual Scala 37


Journal of Automation, Mobile Robotics & Intelligent Systems

compiler and provides the toplevel API for expression compilation. The most important method for expression compilation has the following signature: import scala.reflect .runtime.universe.TypeTag def getCompiledExpression[ C <: ExpressionContext[_, _] : TypeTag, T: TypeTag]( profile: ExpressionProfile, expression: String, template: Boolean = true, header: String = ""): Expression[C, T] The types used in above signature and other API elements are: - TypeTag is a type from Scala runtime re lection API. The syntax T: TypeTag denotes that method getCompiledExpression will have access to runtime information about type T. - Expression[C,T] is a function that takes an expression context (type C) as an input and returns some arbitrary value of type T. This is what we understand as expression evaluation. - ExpressionContext[R,V] is the input of the expression and serves two purposes: - It encapsulates the root object of the expression an object of arbitrary type R whose API is directly exposed to be used by expression code. Root object is also de facto the actual input data of the expression. - It serves as a container for variables of an arbitrary type V which can be accessed inside the expression. - ExpressionProfile customizes the way expression is compiled. The pro ile consists of: - SyntaxValidator de ines what language constructs are allowed to be used by the expression. - SymbolValidator de ines which methods can be invoked and which ields can be accessed for particular types. - Expression header - code that will be compiled along each expression. Header is primarily used to provide import clauses for expression code. - Expression utils - implementation of additional API that can be used inside expressions. This can be used to implement some API in Scala in situation when application using the expression evaluation engine is by itself written in Java. Symbol validator and syntax validator are the core components performing static analysis of expressions and security enforcement. The way they are created and con igured will be described in more detail later in this paper. - The template parameter controls whether an expression is compiled as a template expression. - The header parameter provides additional header that will be compiled in expression code. Its purpose is similar to the header speci ied in expression 38

VOLUME 11,

N∘ 3

2017

pro ile, but can be different for each expression that uses the same pro ile. Compila on Process Expression Compilation is Performed in the Following Steps: 1) ExpressionDef object is created. This intermediate object contains full information about how the expression should be compiled, what the expression code is and what are the input and output types. 2) ExpressionDef object is optionally preprocessed. Preprocessing may include any modi ication of expression de inition (e.g. additional pre-translation of code) 3) Expression code is wrapped into a proper Scala source ile that contains the expression class implementing Expression trait. The bare expression code is wrapped into an invocation of securityenforcing macro. 4) Source ile is passed into the Scala compiler for actual compilation. 5) During typer phase, the security-enforcing macro is expanded. The macro uses syntax validator and symbol validator to analyze expression code for forbidden constructs and invocations. 6) Expression class is compiled into JVM bytecode and .class iles are generated. 7) Expression class is loaded into the JVM, instantiated and returned as a compiled expression. ConďŹ gura on of Validators As described earlier, the programmer can decide what language constructs and invocations can be used inside expression code by providing a SyntaxValidator and a SymbolValidator instance through ExpressionProfile. This section describes how these two components are con igured. Syntax validator is a following trait: import scala.reflect.macros.Universe trait SyntaxValidator { def validateSyntax (u: Universe)(tree: u.Tree): (Boolean, List[u.Tree]) } The tree is a fully typechecked tree representing the expression code. Since it contains type information, it may be used for much deeper validation than just syntax validation. However, validation of types and symbols is much more complex in its implementation and was done as a separate component - the symbol validator. Syntax validator is intended to be used to look for forbidden syntactic constructs, like de initions or loops. Such validation can be easily implemented using pattern matching on particular cases of trees. This is what is usually done inside the validateSyntax method. The validateSyntax method returns a pair that denotes whether the tree passed the validation and


Journal of Automation, Mobile Robotics & Intelligent Systems

a list of children trees that need to be validated next. This way syntax validation descends through the entire expression tree. By default, the expression engine provides a standard implementation of a syntax validator that allows only simple expressions to be used. This includes constants, identi icators, method calls, operator applications, lambda expressions, conditional statements, simple blocks and constructor invocations. No assignments, declarations, de initions or loops are allowed. Symbol validator is much more complex to implement and requires some more convenient con iguration layer to avoid dealing with raw Tree objects. In order to create an instance of SymbolValidator, the programmer needs to provide an ACL-like structure (Access Control List). In a program using Scala expression engine, this ACL is represented by type List[MemberAccessSpec]. Each element, a MemberAccessSpec instance either allows or denies usage of some symbol (method, ield or constructor, including methods visible through implicit views) on a particular type. In detail, the MemberAccessSpec contains following information: - information about the type - signature of the member of that type that is being denied or allowed by this element - optional signature of implicit conversion that is used to obtain an implicit view that causes that member to be available on that type - information about whether this element denies or allows usage of given symbol on given type Symbol Valida on DSL Instances of MemberAccessSpec and the ACL are not created by the programmer manually. Instead, a dedicated Scala DSL (domain speci ic language) has been created for that purpose. That DSL is an example of a technique called language virtualization, which essentially means to replace standard semantics of some language (in this context Scala) with some custom semantics, i.e. leverage syntax and type system of Scala for a different purpose than compilation of Scala program. Language virtualization in symbol validation DSL is realized by another set of Scala macros, allow and deny. Each of these macros take a speci ic block of code (format described below) and generate code that evaluates to a part of the ACL. These parts can be later concatenated into a full ACL using standard Scala list concatenation operator ++. The blocks being passed as inputs to allow and deny contain a references to scala types and their members that the programmer wants to allow or deny. References are represented as lambda expressions or simple method calls (i.e. lambda expressions and method calls are virtualized as references to symbols). If a programmer wants to allow or deny usage of some static Java member or member of Scala toplevel object, the reference to that member is put directly into the block passed as input to allow or deny. If the

VOLUME 11,

N∘ 3

2017

programmer wants to allow or deny usage of a nonstatic member on some type, that reference must be additionally put inside an on statement which speciies the exact type on which the member is allowed or denied. Simple example of ACL created with symbol validation DSL: val acl = allow { String.valueOf(_: Int) } ++ deny { on { obj: java.lang.Object => obj.wait() obj.notify() obj.equals _ } } In the example above, the acl value will have the type List[MemberAccessSpec] which can be concatenated with other ACL parts or eventually used to create a symbol validator. The above example allows usage of a static method valueOf that takes a single Int argument of a class java.lang.String and denies instance methods wait, notify and equals on type java.lang.Object. As in all ACL-like structures, if more than one element in the ACL matches invocation that is being validated, the element earlier in the list has a priority over the latter one. Symbol validator DSL also provides additional convenience constructs for allowing or denying the entire sets of members with single statements. Below is presented a comprehensive list of all available constructs in the DSL (examples are assumed to be inside allow or deny block): - static members (explicitly) Integer.parseInt(_: String) - instance members (explicitly) - either available directly or by an implicit view on { str: String => str.substring(_: Int) str.substring(_: Int, _: Int) str.toString() } - all static members of some Java class allStatic[String].members - all static members of some Java class with a given name allStatic[String].membersNamed.valueOf - all members available on a given type on { str: String => str.all.members } 39


Journal of Automation, Mobile Robotics & Intelligent Systems

This deliberately excludes members declared in toplevel types Any and AnyRef, i.e. equals, hashCode, == etc. since they are available on all types (or all reference types) and it’s not usually the intention of a programmer to include them. - all members available on given type with given name on { str: String => str.all.membersNamed.substring } - all members available on a given type declared in class representing that type on { str: String => str.all.declared.members } This includes all members declared in that class directly and all members that this class overrides. - all members available on a given type declared in a class representing that type and not inherited from supertypes on { str: String => str.all.introduced.members } This includes all members declared in that class that don’t override a member from superclass. - all members available on given type by an implicit view to some type on { str: String => str.implicitlyAs[StringOps] .all.members } - a single constructor for a given type new java.util.Date - all constructors for a given type on { str: String => str.all.constructors } - all bean getters, bean setters, scala getters or scala setters available on a given type on { jb: SomeJavaBean => jb.all.beanGetters jb.all.beanSetters } on { sc: ScalaClass => sc.all.scalaGetters sc.all.scalaSetters } Constructs listed above can be freely combined to form more complex patterns, e.g. on { o: SomeType => o.implicitlyAs[OtherType] .all.introduced.beanGetters } 40

VOLUME 11,

N∘ 3

2017

Detailed Security Analysis Syntax and symbol validators provide means to achieve tight security enforcement, but they must be used carefully and with full awareness of possible vulnerabilities. Every security feature protects only against some particular class of attacks. This section describes possible security vulnerabilities that could be exposed by expression engine and makes it clear which of them the Scala expression engine protects against. It also discusses which security problems must be addressed separately, in other layers of the software that uses an expression engine. Exposing expressions to a malicious user could generally cause three types of security breaches: - unauthorized access to sensitive data - unauthorized access to operations that could damage or compromise the host system - exhaustion of resources used by the host system or abnormally high utilization of these resources All of these breaches could obviously be caused by exposing an expression API that is insecure by itself. It is a responsibility of the programmer/administrator to ensure that functions and operations that can be used in an expression are internally secure. If they aren’t, the engine itself has no way of knowing this, since it only uses compile-time information for validation. So the most basic rule of designing secure expression API is to make sure each exposed method is secure by itself. However, sometimes it may not be obvious that some operation is insecure. For that reason, we give examples of common ways in which a member of expression API may become a security hole. - Exposing toString() Allowing toString() calls is an easy way to leak sensitive information. The toString() method should only be allowed on simple data types that have an obvious implementation of toString(). Therefore, one should be extremely careful when allowing calling toString() on: - classes encapsulating something else than immutable data, e.g. some internal state - classes and interfaces that are a base of an open type hierarchy - even if the base type itself is secure, any of its subtypes may no longer be so - generic containers, e.g. collections For example, allowing calling toString() on type List[Any] is an obvious security issue. List’s toString() implementation internally calls toString() on its elements and the expression engine doesn’t know about it, because this information is not available in compile time. This effectively gives us access to results of toString() on any value that could be inside a list. List[Any]#toString() is therefore as insecure as Any#toString(). - Exposing API that internally uses toString() In any API which exposes string manipulation methods, there usually are some functions and opera-


Journal of Automation, Mobile Robotics & Intelligent Systems

tors which take arbitrary values as their arguments and call toString() on them internally. The + operator for concatenation of strings and arbitrary values is perhaps the most apparent example of such API. Therefore, when exposing these API fragments, one must be as careful as with the toString() - Exposing untyped operations It is highly recommended that the exposed expression API is as strongly, statically typed as possible. This way we have much more information to work with in compile time and we can be vastly more precise when de ining security rules using symbol validator DSL. - Exposing API with non-constant time or memory complexity. This could lead to easy exhaustion of host system resources, especially considering the fact that expressions are meant to be evaluated massively, on multiple pieces of input data. Even more dangerous than exposing methods with just non-constant (e.g. linear) complexity is exposing APIs with complexity determined by runtime values passed to them. For example, Scala standard library provides an * operator on the String class which takes an integer argument and replicates a string given number of times. Simply by passing a large integer value, e.g. "abc"*10000000, expression writer can easily cause allocation of very large amounts of memory. Apart from securing the API itself, one must also take some measures to secure the syntax. Scala is a general-purpose programming language, but the Scala expression engine enables only a small portion of its syntactic constructs. This is done on purpose, to disallow elements which could easily exhaust resources of the host systems (e.g. loops). Although it is possible to provide custom syntax validator and allow more, it is highly recommended to stay with the prede ined simple-expression syntax subset of Scala. In other words, we should keep the expression engine an expression engine and not make it a scripting engine, which is much harder to secure. Exhaustivity of security heavily depends on the language constructs exposed. That’s why it’s important to keep them minimal. The simpliest general example of an API secured with our evaluation expression would be exposing desired subset of some Java class and forbidding usage of common methods that could lead to information leaking (toString, concatenation with Strings, getClass, etc.) or low-level operations that could disrupt the entire process (wait, notify, etc.). Finally, one must be aware that usage of CPU and memory during expression evaluation is at least proportional to the overall complexity of the expression. Therefore, some limits must be enforced in this area. For example, one may want to limit the textual length of an expression or maximum depth of its syntax tree. The latter case can be easily implemented with a custom syntax validator.

VOLUME 11,

N∘ 3

2017

7. Usage Example This section outlines a typical use case for Scala expression engine and explains how its features make it a viable solution that retains good performance and enforces tight security. Dynamic Serving of Configura on Files Scala expression engine could be used in a system for mass management and con iguration of devices, e.g. telecommunication devices like routers. These devices usually require dynamic, remote recon iguration. This may be easily done with con iguration iles periodically fetched by devices from the management system. However, contents of con iguration iles may need to be generated dynamically, based on some data associated with particular device asking for con iguration. Additionally, the exact format of each con ig ile may need to be different for various device types. Above all this, system operators may want to change the contents and structure of served con iguration iles on a regular basis, without recon iguring and restarting the management system itself. This problem can be easily addressed with an expression engine: operators could use some user interface to de ine con iguration ile templates. Each template may have placeholders that would be illed by some data associated with the device when that device asks for con iguration ile. In other words, each template would be an expression that evaluates to exact con iguration ile contents based on particular device data. For example, let’s assume that the data associated with a device is represented by following Scala trait: trait DeviceData { def id: String def currentIP: String def modelName: String def manufacturer: String def wifiSSID: String def wifiPassword: String def wifiEncryption: String } This data is either sent by the device when it asks for con iguration ile (e.g. current IP) or is stored in the system database (e.g. WiFi parameters to be set). It may also come from some external systems. Let’s assume that we need to send con iguration ile to a group of home routers in order to setup the WiFi network. The con iguration ile format accepted by devices may look like this: [wifi] ssid=homeWifi password=secretPassword encryption=WPA2 System operator could then de ine a template for such con iguration ile. This template would be a SCEX 41


Journal of Automation, Mobile Robotics & Intelligent Systems

expression that could look like below. This is assuming that the programmer has de ined the expression API for this particular purpose to contain a value deviceData which is of type DeviceData.

- Scala 2.11.1 Comparison was done against: - SpEL for Spring Framework 4.0.6

[wifi] ssid=${deviceData.wifiSSID} password=${deviceData.wifiPassword} encryption=${deviceData.wifiEncryption}

- MVEL 2.2.1

However, some types of devices may not accept the values in the same format as they are stored in the system database. For example, let’s assume that encryption mode saved in database is exactly ”WPA2”, but the device accepts only lowercase ”wpa2”. System operator can quickly de ine a separate template for this particular type of device and adjust to device behavior: encryption= ${deviceData.wifiEncryption.toLowerCase} Thanks to the fact that an expression engine allows us to dynamically de ine small snippets of code, the operator has very detailed control over what exactly is being sent to devices. Also, since such strange issues may be very unpredictable, it is very hard to precon igure the management system to handle all device types properly. The possibility of dynamic loading and rede inition of templates is very useful here. Use case described above has all the important needs that SCEX addresses: - templates (expressions) are de ined and loaded dynamically - templates are de ined by system users, possibly using graphical interfaces - security enforcement is needed - single template is typically evaluated and applied on large number of devices - evaluation performance is important

8. Performance A set of performance tests was carried out to conirm that the evaluation of expressions in the new engine is comparable to performance of raw bytecode. The engine was compared with statically compiled Scala code and engines described earlier - JUEL, SpEL and MVEL. Also, a simple compilation performance test was carried out. The purpose of tests is not to give any precise numeric coef icients since evaluation and compilation performance greatly depend on what kind of expressions are actually compiled and evaluated. The tests consisted of series of evaluations or compilations of expressions in a loop. Tables below present the results. The numbers are in milliseconds and serve only for comparison with each other. Following con iguration was used in the test case: - processor Intel Core i7-3520M 2.90GHz - Microsoft Windows 7 64bit - Oracle JDK 8 update 20 64bit 42

VOLUME 11,

N∘ 3

2017

- JUEL 2.2.7

Evaluation Scala Scala engine SpEL JUEL MVEL

1312 2312 150565 161567 14627

Compilation Scala engine SpEL JUEL MVEL

115868 51 56 1039

The tests show that evaluation performance is indeed close to raw Scala code compiled statically, but the price is a heavyweight compilation process. This is however well-suited for requirements de ined in this article - a single, compiled expression is expected to be evaluated massively, on multiple inputs. It is also worth mentioning where differences between SpEL, JUEL and MVEL come from. In SpEL and JUEL expressions are interpreted fully dynamically and compilation step involves only basic parsing of an evaluation. As a result their compilation time is better but evaluation signi icantly worse.

9. Summary We have presented a new approach to implementing an expression evaluation engine for the JVM. The key goals of that approach is high evaluation performance and secure compilation and evaluation of expressions so that they can be safely created by potentially malicious users, possibly using graphical system interfaces. These properties should not result in a less rich or lexible expression language than ones provided by existing solutions. We have shown that already existing solutions, represented primarily by engines JUEL, SpEL and MVEL do not meet these requirements. We have also evaluated already existing, general purpose programming languages for suitability of building an expression engine on top of them. The language of choice was Scala. Its primary advantage over other languages is static type system which guarantees good performance and makes it possible to statically analyze code using macros, a compile metaprogramming facility. Despite being statically typed, Scala still retains much of the lexibility and conciseness of dynamically typed languages. We have described how exactly Scala features can be leveraged for an expression language and presented a quick overview of its metaprogramming capabilities. Then we have outlined the most important elements of API and architecture of the new expression engine. As one of the most important elements, a DSL


Journal of Automation, Mobile Robotics & Intelligent Systems

for specifying what invocations are allowed inside expression code was presented in more detail. Finally we have shown that the new expression engine meets its performance requirements by being comparable to statically compiled Scala code.

AUTHORS Arkadiusz Janik∗ – AGH University of Science and Technology, al. Mickiewicza 30, 30-059 Krakow, Poland, e-mail: arkadiusz.janik@agh.edu.pl. Roman Janusz – AGH University of Science and Technology, al. Mickiewicza 30, 30-059 Krakow, Poland, e-mail: romeqjanoosh@gmail.com. ∗

Corresponding author

[1] Java Uni ied Expression Language. http://juel.sourceforge.net/juel.pdf access: September 2014. [2] R. Johnson et al. Spring Framework Reference Documentation, 3.2.4.RELEASE, 2013. Language.

[4] K.M. Chung JavaServer Pages™Speci ication Version 2.3, Maintenace Release 3. May 2013. [5] M. Grogan JSR-223 – Scripting for the Java Platform. Final Draft Speci ication, version 1.0. Sun Microsystems, 2006. [6] E. Burns JavaServer™Faces Speci ication, Version 2.2. Oracle America, Inc, March 2006. [7] J. Gosling et al. The Java®Language Speci ication, Java SE 7 Edition Oracle America, Inc, February 2013. [8] M. Odersky Scala Language Speci ication, Version 2.8. Programming Methods Laboratory, EPFL, September 2013. [9] The Groovy programming http://groovy.codehaus.org/ access: September 2014.

N∘ 3

2017

[14] Overview of Scala Compiler Phases https://wiki.scala-lang.org/display /SIW/Overview+of+Compiler+Phases access: September 2014. [15] Scala Re lection API: Symbols, Trees and Types http://docs.scala-lang.org/overviews /reflection/reflection/ symbols-trees-types.html access: September 2014. [16] E. Burmako, M. Odersky Scala Macros, a Technical Report. Ecole Polytechnique Fé dé rale de Lausanne (EPFL), July 2012. [17] Y. Coppel Re lecting Scala. Laboratory for programming methods, EPFL, January 2008. [18] E. Burmako Scala Macros: Let Our Powers Combine! EPFL, July 2013.

REFERENCES

[3] MVFLEX Expression http://mvel.codehaus.org/ access: September 2014.

VOLUME 11,

language

[10] Groovy Safe Navigation Operator http://groovy.codehaus.org/Operators #Operators-SafeNavigationOperator %28?.%29 access: September 2014. [11] Groovy Elvis Operator http://groovy.codehaus.org/Operators #Operators-ElvisOperator%28?:%29 access: September 2014. [12] M. Odersky Scala by Example Programming Methods Laboratory, EPFL, June 2014. [13] M. Odersky, L. Spoon, B. Venners Programming in Scala: a comprehensive step-by-step guide, 1st edition. Artima Press, 2008.

[19] J. Cooper, S. McKeever A model-driven approach to automatic conversion of physical units Software: Practice and Experience, vol. 38, no 4, 10 April 2008, 337–-359. DOI: 10.1002/spe.828. [20] P. Kilpelainen Using XQuery for problem solving Software: Practice and Experience, vol. 42, no.12, December 2012, 1433–-1465. DOI: 10.1002/spe.1140. [21] V. Karakoidas, D. Spinellis FIRE/J—optimizing regular expression searches with generative programming Software: Practice and Experience, vol. 38, no. 6, May 2008, 557–-573. DOI: 10.1002/spe.841. [22] J. H. M. De Vet A practical algorithm for evaluating database queries Software: Practice and Experience, vol. 19, no. 5, , October 2006, 491–-504. DOI: 10.1002/spe.4380190505. [23] C. Hoffman, M. O’donnell, R. Strandth Implementation of an interpreter for abstract equations Software: Practice and Experience, vol. 15, no. 12, October 2006, 1185–-1204. DOI: 10.1002/spe.4380151205. [24] C. Hassan, Z. DeVito, A. Moors, T. Rompf, A. Sujeeth, P. Hanrahan, M. Odersky, K. Olukotun, ”Language Virtualization for Heterogeneous Parallel Computing”. In: Proceedings of the ACM international conference on Object oriented programming systems languages and applications, 2010, 835–847. DOI: 10.1145/1869459.1869527. [25] K. Sujeeth, Arvind, Lee, HyoukJoong, J. Brown, Kevin, et al. OptiML: an implicitly parallel domainspeci ic language for machine learning. In: Proceedings of the 28th International Conference on Machine Learning, ser. ICML, Pages 609-616, 2011. [26] Rompf, Tiark, Amin, Nada, Moors, Adriaan et al. Scala-Virtualized: linguistic reuse for deep embeddings Higher-Order and Symbolic Computation, March 2012, 165–207. DOI: 10.1007/s10990-013-9096-9, 43


Journal of Automation, Mobile Robotics & Intelligent Systems

[27] Tiark Rompf, Arvind K. Sujeeth, Kevin J. Brown, HyoukJoong Lee, Hassan Cha i, Kunle Olukotun. Surgical precision JIT compilers. In Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’14). ACM, New York, NY, USA, 41-52., 2014 DOI: 10.1145/2594291.2594316, [28] Yannis Klonatos, Christoph Koch, Tiark Rompf, Hassan Cha i. Building ef icient query engines in a high-level language.In: Proc. VLDB Endow. 7, 10 June 2014, 853–864. DOI: 10.14778/2732951.2732959. [29] N. Perez-Diaz, F. Fdez-Riverola, J. Mendez Wirebrush4SPAM: a novel framework for improving ef iciency on spam iltering services Software: Practice and Experience, vol. 43, no. 11, November 2013, 1299–1318. DOI: 10.1002/spe.2135, [30] G. French, J. Kennaway, A. Day Programs as visual, interactive documents Software: Practice and Experience, Volume 44, Issue 8, pages 911–930, August 2014. DOI: 10.1002/spe.2182,

44

VOLUME 11,

N∘ 3

2017


Journal of Automation, Mobile Robotics & Intelligent Systems

VOLUME 11,

N° 3

2017

Application the GPS Code Observations in BSSD Method for Recovery the Position of the Aircraft Submitted: 19th June2017; accepted: 27th September 2017

Kamil Krasuski

DOI: 10.14313/JAMRIS_3-2017/27 Abstract: In this paper, the results of aircraft positioning based on GPS code observations in air aviation are presented. The aircraft position was recovery using Between Satellite Single Difference (BSSD) method in GPS system. The BSSD method was applied for designation the precise position of Cessna 172 plane in flight test in air navigation. The coordinates of Cessna 172 plane were determinated using least square estimation in XYZ geocentric frame. The average accuracy of aircraft position equals to 0.797 m for X axis, 0.496 m for Y axis and 0.966 m for Z axis, respectively. In addition, the protection level of HPL parameter amounts to 4.991 m and 5.749 m for VPL term. In paper, the XYZ coordinates of Cessna 172 plane were also compared with PPP solution from GAPS software. The value of RMS bias is about 1.642 m for X axis, 0.902  m for Y axis and 0.892 m for Z axis, respectively. Keywords: GPS, BSSD method, air navigation, least square estimation, air transport

1. Introduction In the 21st century the GNSS satellite technique became a universal method of the positioning of the aircraft in air transport area. The special use of the GNSS satellite technique in the air transport is possible due to application of the assist systems ABAS, SBAS and GBAS. The ABAS system enables to locate the aircraft based on registered satellite observations by the onboard GNSS receiver installed in the aircraft. Moreover, also essential role in the ABAS system fulfils module and a mechanism of appointing the position of the aircraft. The algorithm of appointing the position of the aircraft is usually based on mathematical model of the RAIM system for GNSS observations. System RAIM guarantees continuity, monitoring, integrity and the accuracy of determination of position the aircraft. Moreover a detection of blunder errors from GNSS observations is important in RAIM system component [12]. The system of SBAS support enables to use differencing corrections for locating the aircraft. Differencing corrections are being sent from satellites of geostationary systems circulating among the Earth.

Universally used EGNOS system is an example of such a geostationary system in Europe. Ultimately the system of SBAS support has to improve the position of the aircraft for the range of the accuracy from 1 m to 5 m. Moreover, the system of SBAS support is intended for applying in the civil aviation for approach the landing of the type SBAS APV-I [6]. The system of GBAS support requires the installation of the expensive technical infrastructure for the airport. By design the GBAS system is supposed to provide the radio navigation aids during the approach of aircraft to the landing with the application for the reference RTK GNSS station. The position of the aircraft is determined based on differencing corrections sent from the network of GNSS receivers, installed at the airport. System GBAS in practice has to be applied for a precise approach of aircraft to landing PA of category I [10]. Specific methods or techniques of the precise positioning of the aircraft for air transport are implemented in each supporting systems ABAS, SBAS and GBAS. In the case of ABAS system the most universal methods of positioning of the aircraft can be: – Single Point Positioning method (positioning method with L1-C/A code) [15], [18], [20]; – Precise Point Positioning method (method of the precise positioning for undifference code observations P1/P2 and phase L1/L2 in GNSS system) [5], [7], [21]; – Between Satellite Single Difference method (differential the GNSS observations between the satellites) [16]; – Doppler method (Use Doppler effect to determine the speed of the aircraft) [17], [25], [31]. The SBAS support system mainly uses the Single Point Positioning (SPP) method for code observation L1-C/A [2], [3]. As part of the SBAS system, satellites position, satellite clock bias, ionosphere and troposphere delays are corrected. SBAS differential corrections in “EMS” format are used in calculations [13]. There are two methods of positioning an aircraft in the GBAS support system: – DGPS method (correction of aircraft position for the use of code measurements) [9], [23]; – RTK-OTF method (correction of aircraft position for the use of phase measurements) [2], [9], [30], [32]. The basic purpose of this research paper is the accuracy assessment of aircraft positioning in air transport based on solution of Between Satellite Single

45


Journal of Automation, Mobile Robotics & Intelligent Systems

VOLUME 11,

Difference (BSSD) method. For this purpose, the aircraft coordinates, the standard deviations of aircraft coordinates, the HPL and VPL integrity parameters, the DOP coefficients were designated and analyzed in the paper. All obtained parameters were determined with a probability of 95% for the global Chi-square test. Numerical calculations used navigation data from the Topcon HiperPro receiver placed onboard the Cessna 172, which performed a test flight around Dęblin aerodrome. The position of the aircraft was reproduced in the author’s APS software (Aircraft Positioning Software) in the Between Satellite Single Difference module. The calculations were made in post-processing mode for GPS code observations.

2. The Mathematical Model of BSSD Positioning Method

The basic observational equations in the BSSD positioning method are based on the application of a single difference operation for code observations in GPS system as follows [1]:

(1)

where: Δ – the single difference operator for code measurements allows to determine the difference in code measurements from two satellites tracked by one receiver in the same measurement period, P1ij = P1i — P1j – the value of a single code difference between satellites i and j on L1 frequency in GPS (expressed in meters), i – satellite index, j – satellite index, cc – light speed (expressed in m/s), ρij = ρi − ρ j – difference in geometry distance between satellites i and j on L1 frequency in GPS (expressed in meters),

46

ρi =

( x − X i )2 + ( y − Yi )2 + ( z − Zi )2

ρj =

( x − X j ) + ( y − Yj ) + ( z − Z j ) 2

2

2

,

,

(x, y, z) – coordinates of the aircraft, (Xi , Yi , Zi) – i-th satellite coordinates, (Xj , Yj , Zj) – j-th satellite coordinates, dtsji– difference in satellites tracking between i and j satellites on L1 frequency in GPS system (expressed in seconds), Iij – difference in ionosphere delay between i and j satellites on L1 frequency in GPS (expressed in meters), Tij – difference between the values of the troposphere delay between satellites i and j on L1 frequency in GPS (expressed in meters), SDCBij,L1 – difference between hardware delay values between satellites i and j on L1 frequency in GPS (expressed in meters), Mij,L1 – difference in value of multipath effect and measurement noise between satellites i and j on L1 frequency in GPS (expressed in meters). Articles

N° 3

2017

The observational equation (1) was recorded for code observations P1 on the carrier frequency L1 in the GPS navigation system. In equation (1) the unknown parameters are the coordinates of the aircraft, entangled in the geometric distance factor. The GPS satellite coordinates are derived from Kepler orbital motion model or interpolated from precision ephemeris. The satellite clock bias corrections are based on onboard ephemeris navigation data or interpolated from precision ephemeris. In addition, the precision values of the satellite clock correction can be determined using a universal „CLK” format. The ionospheric delay parameter in the BSSD method is based on the Klobuchar model, and the tropospheric correction is based on the tropospheric deterministic model. The values of multipath and measuring noise are determined on the basis of empirical models or omitted from the observation equation (1). Equation (1) also includes parameters of hardware delays for SDCB satellites, referenced to L1 frequency. It is worth noting that in the math equation (1) there is no parameter of the receiver clock correction, which is eliminated from the observation equations using the single difference operator. The coordinates of the aircraft are determined in a stochastic process for applying the least squares method as follows [26]:  Q X = N -1 ⋅ L   v = A ⋅ Q X - dl  [pvv ]   m0 post = n−k  C = m02 ⋅ N -1 post  Qx mQx = diag CQx 

(

)

(2)

where: Qx – vector with unknown parameters, N = A T ⋅ p ⋅ A – matrix of the normal equations frame, A – matrix of coefficients, matrix is full rank, p – matrix of weights, p=

1

m02priori

⋅ ml 2

,

m0priori – standard error of unit weight a priori, m0priori = 1, ml – matrix with mean errors of pseudoranges, 2

 ml0   ml0  ml =   ,  +  sin( Eli )   sin( El j )  2

ml0 – standard deviation of code measurement P1 in GPS system, ml0 = 1 m, Eli – elevation angle for satellite i-th, El, – elevation angle for satellite j-th, L = A T ⋅ p ⋅ dl – vector of absolute terms, dl – vector with difference between measurements and modeled parameters, m0post – standard error of unit weight a posteriori, n – number of observations, k – number of designated parameters,


Journal of Automation, Mobile Robotics & Intelligent Systems

k = 3 for each measurement epoch, v – vector of residuals, CQx – variance-covariance matrix of parameters designates in the XYZ geocentric frame, mQx – standard deviations of the designated parameters referenced to the XYZ geocentric frame. The stochastic process of developing kinematic GPS observations is carried out sequentially for all recorded measured epochs by a satellite receiver mounted on an aircraft. In addition, the standard deviations of the coordinates of the aircraft are also determined in the stochastic process of GPS observations. It is worth noting that the determined coordinates of the aircraft and their accuracy are related to the geocentric coordinate XYZ frame.

3. The Experiment and Results

Verification and reliability of the presented mathematical aircraft positioning model has been tested for kinematic GPS observations obtained from the Topcon HiperPro dual-frequency geodetic receiver. The Topcon HiperPro receiver was placed in the cockpit of the Cessna 172. The geodetic receiver recorded GNSS observations during the flight test for air navigation. Registered GNSS observations were used to reconstruct the trajectory of the Cessna 172 aircraft and to assess the accuracy of the designated position [4]. The coordinates of the Cessna 172 aircraft in the XYZ geocentric frame were determined by the APS software (Aircraft Positioning Software), which operates in the Scilab 5.4.1 language environment. The APS software is a free software tool for developing kinematic post-processing GNSS observations. The APS software enables the implementation of GNSS code observations for GPS and GLONASS. In addition, the APS software has 3 basic computing modules, as: −− SPP (Single Point Positioning) module, −− IF LC (Ionosphere-Free linear combination) module, −− BSSD (Between satellite Single Difference) module [18]. −− For calculation purposes, the BSSD module has been configured as follows: −− GNSS system: GPS system, −− type of observations: P code at 1st frequency, −− type of RINEX file: 2.10, −− source of satellite ephemeris data: precise ephemeris from the CODE Analysis Center [33], −− source of satellite clock data: precise ephemeris from the CODE Analysis Center [33], −− method of satellite position computation: 9-degrees Lagrange polynomial, −− method of satellite clock bias computation: 9-degrees Lagrange polynomial, −− satellite clock bias correction: satellite clock bias from precise ephemeris is corrected using Differential Code Biases for code observations in BSSD method [27], −− effect of Earth rotation and time of pseudorange travelling through atmosphere: applied, −− relativistic effect: applied,

VOLUME 11,

N° 3

2017

−− −− −− −− −− −− −− −−

ionosphere source: Klobuchar model, troposphere source: Simple model, Time Group Delays (TGD): not applied, Satellite Differential Code Biases (SDCB): applied, instrumental bias for receiver: eliminated, receiver clock bias: eliminated, multipath and measurement noise: not applied, satellite and receiver phase center offset: based on ANTEX file from IGS service, −− Sagnac effect: applied, −− -cutoff elevation: 50, −− positioning mode: kinematic, −− computation mode: post-processing, −− mathematical model of solution: least square estimation in iterative scheme, −− adjustment processing: applied, −− maximum number of iteration in single measurement epoch: N=10, −− number of unknown parameters: k=3, for each measurement epoch, −− number of observations: n>3, for each measurement epoch, −− interval of computations: 1 s, −− initial coordinates of aircraft position: based on header of RINEX file, −− time of GNSS system: GPS Time, −− reference frame: IGS’08, −− format of output coordinates: geocentric XYZ and ellipsoidal BLh, −− local test of residuals: applied, −− global statistical test: test Chi-square, −− value of m0post after adjustment processing: , −− significance level: , −− DOP coefficients: estimated, −− coefficients value for HPL and VPL level: kHPL = 6 and kVPL = 5.33 [8]. The Cessna 172 coordinates (x, y, z) of the IGS’08 frame were determined in the course of the studies (see Fig. 1). Dispersion of the resulting coordinates along the X axis are between 3687676.312 m and 3707691.906 m; respectively along the Y axis are between 1456985.549 and do 1493528.844 m; while along the Z axis are between 4955328.731 m and 4974526.934 m. For the designated (x, y, z) coordinates of the Cessna 172, their accuracy was also determined (see Fig.  2). The average accuracy of the X coordinate is 0.797 m and the median is 0.782 m. The X coordinate accuracy is between 0.253 m and 1.505 m. The average accuracy of the Y coordinate equals 0.496 m and the median is 0.489 m. In addition, the accuracy dispersion for the Y coordinate is between 0.115 m and 0.839m. The average accuracy of the Z coordinate equals 0.966 m and the median is 0.951 m. On the other hand, the dispersion of the obtained Z coordinate accuracy is between 0.494 m and 1.877 m. Figure 3 presents the positioning accuracy of the Cessna 172 aircraft with respect to the ellipsoid coordinate BLh frame (B – Latitude, L – Longitude, h –ellipsoidal height). The accuracy values of the aircraft Articles

47


Journal of Automation, Mobile Robotics & Intelligent Systems

VOLUME 11,

N° 3

2017

Fig. 4. The MRSE parameter for aircraft position

Fig. 1. The trajectory of Cessna 172 aircraft along XYZ axis

Fig. 2. The accuracy of aircraft position in XYZ geocentric frame

position of Figure 3 were determined on the basis of the transformation from the geocentric coordinate XYZ frame to the ellipsoidal BLh frame [22]. The average accuracy of B coordinate equals 0.696 m and the median is 0.680 m. The accuracy of the coordinate B is between 0.306 m and 1.383 m. The average accuracy of the L coordinate is 0.407 m and the median is 0.401  m. In addition, the dispersion of accuracy results for the L coordinate is between 0.103 m and 0.692  m. The average accuracy of the h-coordinate equals 1.079  m and the median is 1.056  m. The dispersion of the obtained h coordinate accuracy is between 0.466  m and 1.973 m. The Annex 10 to the Chicago Convention specifies the technical standards for the admission of a GPS system for use in air transport [11]. The typical accuracy of aircraft positioning for horizontal navigation must not be less than 17  m. From the obtained results of the accuracy of the determination of horizontal coordinates B and L it follows that the maximum values of the standard deviation of the coordinate B are better than 1.4 m and for the coordinate L better than 0.7 m. In addition, the vertical navigation accuracy of the ICAO instruction equals 37 m. The accuracy of the ellipsoidal height determination from the APS program is better than 2 m. Therefore, the developed aircraft positioning system for horizontal and vertical navigation meets the ICAO accuracy criteria. Figure 4 presents the values of the aircraft position error in the 3D space (MRSE parameter). The MRSE parameter was derived from the dependency [29]: MRSE = mB 2 + mL2 + mh 2

Fig. 3. The accuracy of aircraft position in BLh ellipsoidal frame 48

Articles

(3)

where: mB – accuracy of Latitude (see Figure 3), mL – accuracy of Longitude (see Figure 3), mh – accuracy of ellipsoidal height (see Figure 3). The mean average of MRSE parameter equals to 1.350 m, whereas the median is about 1.324 m. The magnitude order of MRSE term is between 0.567 m and 2.497 m.


Journal of Automation, Mobile Robotics & Intelligent Systems

VOLUME 11,

A key element in the implementation of GPS satellite technology in air transport is the determination of the positioning integrity of the aircraft. The integrity of satellite positioning in air transport is determined by HPL and VPL protection levels. A simplified formula for determining the HPL and VPL parameters can be written as follows [14]: 2 2  HPL = k HPL ⋅ mB + mL  VPL = kVPL ⋅ mh 

(4)

where: kHPL = 6, for horizontal plane, kVPL = 5.33, for vertical plane. Figure 5 presents the values of the HPL and VPL protection levels for the presented test method. The average HPL value equals 4.991 m and the median is 4.890 m. The spread of HPL results ranges from 1.995 m to 9.554 m. The average value of the VPL parameter equals 5.749 m and the median equals 5.630 m. In addition, the dispersion of the VPL parameter results is between 2.483 m to 10.516 m. Determining HPL and VPL protection levels using GPS satellite technology is possible for NPA GNSS non-precision approach [11]. The Annex 10 to the

N° 3

2017

Chicago Convention sets the HPL and VPL protection levels for the NPA GNSS non-precision approach using the GPS navigation system. As part of the LNAV (Lateral Navigation) horizontal navigation, the limit value of satellite positioning integrity shall not exceed 556 m. Based on the results obtained, the HPL value can be found to be satisfied that the horizontal positioning reliability limit has been met. The HPL results are significantly lower than the critical HPL level for the NPA GNSS approach. For the VPL parameter, no ICAO technical standards have been introduced for navigation in the vertical plane VNAV (Vertical Navigation). Therefore, at this stage of the study it is not possible to compare the results of the VPL test with the ICAO technical standards. Figure 6 shows the results of DOP precision factors. The values of the HDOP, VDOP and PDOP coefficients were determined in the tests performed [18], [19]. The PDOP scores are from 1.1 to 2.1, with an average of 1.2. The HDOP parameter dispersion is between 0.6 and 13.5 and the mean is 1.5. It should be noted that the results of the VDOP above 13 were observed for the first 5 measuring epochs, i.e. when the number of GPS tracking satellites was 5. The PDOP results is between 1.3 and 4.1, and the average equals 1.8.

4. Discussion

The discussion evaluated the reliability parameters of the developed calculation system for the BSSD positioning method. In the first stage a statistical analysis of the obtained results was performed. During the calculations, a global statistical test Chi-square was performed. The criterion for verification, control and monitoring of the Chi-square test results is based on dependence [28]: where:

Fig. 5. The value of HPL/VPL parameters in flight test

Fig. 6. The value of DOP coefficients

(5)

– sum of weighted squares of residuals, f –number of freedom degrees, f = n – k, (1 – α) – significance level, α = 0.05. Figure 7 presents the results of the statistical test Chi-square . The average value of the parameter is equal to 30.3, with a dispersion of the results obtained from 7 to 42. In turn the mean value of the statistical parameter equals 44.1, for the dispersion of results from 14.1 to 58.1. It should be noted that throughout the duration of the air test parameter does not exceed the statistical value . Therefore, it can be inferred that the global statistical test Chi-square has been completed. In the second test, the designated (x, y, z) coordinates of aircraft were verified. For this purpose, the (x, y, z) coordinates obtained from the APS program and the GAPS program were compared. The GAPS program makes it possible to determine the position of an aircraft in the global reference IGS’08. The mathematical model for determining coordinates in kinematic mode in GAPS is based on the PPP positioning Articles

49


Journal of Automation, Mobile Robotics & Intelligent Systems

VOLUME 11,

Fig. 7. The values of statistical test Chi-square method. The GAPS program allows you to recreate the position of an aircraft with high accuracy [19]. The study examines the difference in aircraft coordinates (x, y, z) between the APS and GAPS solutions. The difference in (x, y, z) coordinates is defined as follows: (6) where: xAPS – x coordinate of aircraft based on APS solution (see equation (1)), xGAPS – x coordinate of aircraft based on GAPS solution, yAPS – y coordinate of aircraft based on APS solution (see equation (1)), yGAPS– y coordinate of aircraft based on GAPS solution, zAPS – z coordinate of aircraft based on APS solution (see equation (1)), zGAPS – z coordinate of aircraft based on GAPS solution.

N° 3

2017

Figure 8 presents values of (dx, dy, dz) coordinates based on the comparison between APS and GAPS. The mean difference for the x-coordinate of the aircraft equals -1.141 m and the median parameter equals about -0.764 m. In addition, the dispersion of results for parameter dx is between -7.269 m and +2.778 m. It is worth noting that the RMS error [24] for the dx parameter equals 1.642 m. The mean difference for the y coordinate of the aircraft equals -0.861 m and the median parameter is -0.584 m. In addition, the dispersion of results for the dy term is between -3.693 m and +0.739 m. It should be noted that the RMS error for the dy parameter equals 0.902 m. The mean difference for the coordinate from the aircraft equals -1.656 m and the median parameter is -1.758 m. In addition, the dispersion of results for the dz term is between -4.469 m and +1.700 m. It should be noted that the RMS error for the dz parameter equals 0.892 m.

5. Conclusions

This article presents the results of research on the implementation of GPS satellite navigation technology In particular, the position of the Cessna 172 aircraft was determined using GPS code observations. The study used the BSSD method to reconstruct the aircraft position within the ABAS support system. The P1 code observations recorded by a GPS receiver aboard an aircraft were used in the calculations. Aircraft position calculations were performed in the APS program in the Scilab 5.4.1. language environment. The designation of the Cessna 172 aircraft in the APS program was expressed in geocentric coordinates XYZ in reference IGS’08 frame. Typical aircraft positioning accuracy in geocentric coordinates XYZ is better than 2 m. It should be added that the accuracy of aircraft position obtained meets the ICAO criteria for the use of GPS in air transport. The MRSE parameter is calculated in the paper, whose accuracy is higher than 3 m. In addition, the article sets the integrity parameters of the satellite positioning of HPL and VPL in air transport. The accuracy of the HPL and VPL parameters is higher than 11 m. The work was also carried out to control the calculations by conducting a global Chi-square statistical test at a confidence level of 0.95. The Chi-square test confirmed the internal consistency of the calculated results in the APS program. In the article in the external audit, the geocentric coordinates of the aircraft were compared with the results of the GAPS program. On the basis of the comparison between the APS and GAPS programs, it was found that the RMS values for Y and Z coordinates are less than 1 m, and for the X coordinate less than 2 m. In the future, the BSSD method for GLONASS code observations will be tested in kinematic mode.

ACKNOWLEDGEMENTS

Fig. 8. The difference of XYZ coordinate of aircraft based on APS and GAPS solution 50

Articles

The author would like to thanks for Ph.D. Henryk Jafernik (PAFA, Dęblin) for available RINEX files from flight experiment in Dęblin 2010.


Journal of Automation, Mobile Robotics & Intelligent Systems

VOLUME 11,

AUTHOR Kamil Krasuski* – Faculty of Geodesy, Cartography and Cadastre, District Office in Ryki, 08-500 Ryki, Poland. E-mail: kk_deblin@wp.pl *Corresponding author

REFERENCES

Beran T., Single-frequency, single-receiver terrestrial and spaceborne point positioning, Technical Report no. 257, Department of Geodesy and Geomatics Engineering, University of New Brunswick, 2008, 34-36. [2] Ciećko A., Grzegorzewski M., Oszczak S., Ćwiklak J., Grunwald G., Balint J., Szabo S., “Examination of EGNOS Safety-Of-Life service in Eastern Slovakia”, Annual of Navigation, 22/2015, 65–67. DOI: 10.1515/aon-2015-0021. [3] Ciećko A., Grunwald G., “Examination of autonomous GPS and GPS/EGNOS integrity and accuracy for aeronautical applications”, Periodica Polytechnica Civil-Engineering, ISSN 1587-3773. DOI:https://doi.org/10.3311/PPci.10022, 2017. [4] Ćwiklak J., Jafernik H., “The monitoring system for aircraft and vehicles of public order services based on GNSS”, Annual of Navigation, no. 16, 2010, 15–24. [5] El-Mowafy A., “Precise Point Positioning in the airborne mode”, Artificial Satellites, vol. 46, no.  2, 2011, 33–45, DOI: 10.2478/v10018-0110010-6. [6] Fellner R., “Analysis of the EGNOS/GNSS parameters in selected aspects of Polish transport”, Transport Problems, vol. 4, issue 4, 27–37, 2014. [7] Gao Y., Wojciechowski A., “High precision kinematic positioning using single dualfrequency GPS receiver”, The International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences, vol. 34, Part XXX, 2004, 845–850. [8] Grunwald G., Ciećko A., Bakuła M., Kaźmierczak R., ”Examination of GPS/EGNOS integrity in northeastern Poland”, IET Radar, Sonar & Navigation, 10 (1), 2016, 114–121. DOI:10.1049/ietrsn.2015.0053. [9] Grzegorzewski M., “Navigating an aircraft by means of a position potential in three dimensional space”, Annual of Navigation, no. 9, 1–111, 2005. [10] Grzegorzewski M., Ćwiklak J., Jafernik H., Fellner A., ”GNSS for an Aviation”, TransNav, vol. 2, no. 4, 345–350, 2008. [11] International Civil Aviation Organization, ICAO standards and recommended practices (SARPS), Annex 10 volume I (Radio navigation aids), 2006, The paper is available at website: http://www.ulc.gov.pl/pl/prawo/prawo-

[1]

[12]

[13]

[14]

[15] [16] [17] [18]

[19]

[20]

[21]

[22] [23] [24]

N° 3

2017

mi%C4%99dzynarodowe/206-konwencje, current version: 27 January 2015. (in Polish) Jafernik H., Krasuski K., Michta J., “Assessment of suitability of radionavigation devices used in air”, Scientific Journal of Silesian University of Technology. Series Transport, 2016, 90, 99–112. ISSN: 0209-3324. DOI: 10.20858/sjsutst.2016.90.9. Jimenez-Baňos D., Powe M., Matur A. R., Toran F., Flament D., Chatre E., “EGNOS Open Service guidelines for receiver manufacturers”, Proceedings of the 24th International Technical Meeting of The Satellite Division of the Institute of Navigation (ION GNSS 2011), 2505–2512, 2011. Jokinen A., Feng S., Milner C., Schuster W., Ochieng W., Hide C., Moore T., Hill C., Precise Point Positioning and integrity monitoring with GPS and GLONASS, Conference Paper: European Navigation Conference 2011 at London, United Kingdom, 2011. Kaniewski P., “Aircraft positioning with INS/ GNSS integrated system”, Molecular and Quantum Acoustics, vol. 27, 149–168, 2006. Krasuski K., Utilization single difference method for determination of aircraft’s position”, Aparatura Badawcza i Dydaktyczna, nr 4, 2014, 329– 332 (in Polish). Krasuski K., “Application of Doppler effect for determination of aircraft position”, Zeszyty Naukowe, no 2(25), 77–86, 2015. (in Polish) Krasuski K., “Application the GPS observations in SPP method for aircraft positioning in flight experiment in Dęblin, Poland (01.06.2010)”, Journal of Automation, Mobile Robotics & Intelligent Systems, vol. 11, no. 1, 2017, 43–47. DOI: 10.14313/JAMRIS_1-2017/5. Krasuski K., Ćwiklak J., “Application of GPS sensor for recovery of precise position of aircraft in air transport”, Proceedings of 16th International Scientific Conference Engineering for Rural Development, vol. 16, 222–229. DOI: 10.22616/ ERDev2017.16.N042, ISSN 1691-5976, 2426.05.2017 Jelgava, Latria. Lachapelle G., Cannon M. E., Qiu W., Varner C., “Precise aircraft single-ponit positioning using GPS psot-mission orbits and satellite clock corrections”, Journal of Geodesy, vol. 70, 562–571, 1996. Martín A., Anquela A., Berné J., Sanmartin M., “Kinematic GNSS-PPP results from various software packages and raw data configurations”, Scientific Research and Essays, vol. 7(3), 2012, 419–431, DOI: 10.5897/SRE11.1885. Osada E., Geodesy, Oficyna Wydawnicza Politechniki Wrocławskiej, ISBN 83-7085-663-2, 2001, Wrocław, 237–238 (in Polish). Petrovska O., Rechkoska Shikoska U., “Aircraft precision landing using integrated GPS/INS system”, Transport Problems, vol. 8, issue 1, 2013, 17–25. Przestrzelski P., Bakuła M., “Performance of real time network code DGPS services of ASG-EUPOS Articles

51


Journal of Automation, Mobile Robotics & Intelligent Systems

[25]

[26]

[27]

[28] [29] [30]

in north-eastern Poland”, Technical Sciences, 17(3), 2014, 191-207. Ryan S, Lachapelle G., Cannon M. E., “DGPS kinematic carrier phase signal simulation analysis in the velocity domain”, Proceedings of ION GPS 97, Kansas City, Missouri, September 16–19, 1997, 1035-1045. Sanz Subirana J., Juan Zornoza J. Hernández-Pajares M., GNSS Data Processing, Volume I: Fundamentals and Algorithms, ESA Communications, ESTEC, Noordwijk, Netherlands, ISBN: 978-929221-886-7, 2013, 139–151. Schaer S., Mapping and predicting the Earth’s ionosphere using Global Positioning System, PhD thesis, Neunundfünfzigster Band volume 59, ISBN: 3-908440-01-7, 1999, Zürich, Switzerland, 70, 121-122. Schüler T., On ground-based GPS tropospheric delay estimation, PhD thesis, Heft 73, Universität der Bundeswehr München, Germany, ISSN: 0173 – 1009, 2001, 93–96. Seeber G., Satellite Geodesy- 2nd completely revised and extended edition, Walter de Gruyter GmbH & Co. KG, 10785 Berlin, Germany, ISBN: 3-11-017549-5, 2003, 304. Shan S., Bevis M., Kendrick E., Mader G. L., Raleigh D., Hudnut K., Sartori M., Phillips D., “Kinematic GPS solutions for aircraft trajectories: Identifying and minimizing systematic height errors associated with atmospheric propagation delays”, Geophysical Research Letters, vol. 34, issue 23, DOI: 10.1029/2007GL030889, 2007.

[31] Szarmes M., Ryan S., Lachapelle G., Fenton P., “DGPS High Accuracy Aircraft Velocity Determination Using Doppler Measurements”, Proceedings of the International Symposium on Kinematic Systems (KIS), Banff, AB, Canada, June 3–6, 1997, 167–174. [32] Tsujii T., Harigae M., Inagaki T., Kanai T., “Flight test of GPS/GLONASS precise Positioning versus dual frequency KGPS profile”, Earth Planets Space, vol. 52, 825–829, 2000. [33] URL1: ftp://ftp.unibe.ch/aiub/CODE/2010/, current on 2017.

52

Articles

VOLUME 11,

N° 3

2017


Journal of Automation, Mobile Robotics & Intelligent Systems

VOLUME 11,

N° 3

2017

Development and Improvement of Systems of Automation and Management of Technological Processes and Manufactures Submitted: 9th August 2017; accepted: 23rd October 2017

Nadirbek Yusupbekov, Farukh Adilov, Farkhod Ergashev

DOI: 10.14313/JAMRIS_3-2017/28 Abstract: The development of means and systems of industrial automation, taking place along with the widespread use of modern information technologies, makes it possible to identify trends characteristic of this field of science and technology, and to predict the directions by which the most important changes will occur in the near future. It is shown that the main trend is a constant increase in the level of built-in artificial intelligence in control systems. From the standpoint of the most demanded and relevant areas of research and development, the driving forces and trends in the development and improvement of industrial automation systems are analyzed. Keywords: industrial automation, process management, enterprise management standards, operational dispatch management, business processes

1. Introduction Industrial automation is defined as the unification of all machines, processing systems, test installations and production sites, which are automated because of technological progress, which, on a global scale, is driven largely by growing economies around the world. The growth of the technological segment of many industrial and industrial enterprises stimulates the global growth of the Industrial automation market: products and solutions for industrial automation are manufactured in large varieties, each of which differs from the other by type of automation, control and metering devices, computers, analyzers, operation and geographic scale.

2. Driving Forces and Trends in the Development of Industrial Automation

The problem of algorithmization the management of production processes, reinforced by the powerful development of electronic and computer technology, has generated an abundant flow of research and fruitful developments in the field of control theory in general and in particular, optimization of management of production processes. The concept of centralized production management, which dominated the initial stages of automation, required the use of extremely complex multiparameter and multiply connected control algorithms,

for which the computing power of the existing computers was insufficient [1–2]. The emerging contradiction in the creation of an effective system of algorithmic support led to the need for a transition to a decentralized distributed control system in which individual problems of industrial production could be solved with a certain degree of autonomy by local means of automated or automatic control. This approach was realized due to the appearance of personal computers and the extensive use of industrial logic controllers [3]. However, any decentralization of management can remain effective only within certain limits. Fundamental principles of the system approach required a new round on the way to the centralization of management. As a result, new production standards for enterprise management and production – (resource management) – ERP, ERP-II, MRP-II, EAM, etc., have emerged. The development of appropriate algorithms for managing technological processes led to the creation of a concept of a human-machine interface, divided into SCADA (Supervisory Control and Data Acquisition) and DCS (Distributed Control System) technologies. At the same time, various solutions were developed for the construction of an operational control system for the standard MES (Manufacturing Execution Systems). Strategic changes in the principles of automated control of industrial production led to the corresponding changes in the structure of control algorithms. At the same time, if the content part of the algorithms for managing technological processes and production remained unchanged, then their optimization component underwent significant changes and resulted in a number of new developments, united by a common APC (Advance Process Control) methodology [4]. General processes of globalization of systems and increasing their openness updated in recent years, the establishment of information management systems in industrial enterprises, where the global Internet network has come, local and corporate networks have been developed and technological and technical systems are being upgraded. These processes have triggered a request for comprehensive information on the various aspects of the industrial enterprise’s activities– the information that is needed to support the acceptance of decisions [5–7]. To reflect on the practical implementation of the current methodology for the construction, implemen-

53


Journal of Automation, Mobile Robotics & Intelligent Systems

54

tation and operation of integrated information management systems in the chemical and oil and gas industries, in Uzbekistan, a class of full-featured integrated advanced Management Systems (Advance Process Control) with MMI/SCADA (man Mashine Interface Supervisory) management technologies control and data Acquisition is a man-machine interface/data collection and dispatch management system within a distributed multi-tier architecture. Modern chemical and petrochemical plants are complex, multifunctional enterprises, where the main production facilities are interacting and the main production of auxiliary, but not secondary, facilities, services and installations. The various automation systems (automated PI, automated power, automated warehouse, automated sale, automated personnel, CAM) are an integral part of ensuring and supporting the functioning of modern production, with the ultimate aim of providing a factory-level solution to the problems of efficient production. These include the operation and development of the enterprise, taking into account the changing operating conditions, both in terms of market conditions, environmental conditions and internal (need to upgrade aggregates, automated pi, reengineering of management tasks and business processes) [8]. The system and interrelatedness of the various aspects of the enterprise’s activities are becoming increasingly important in addressing these problems. Typically, by displaying a hierarchy of enterprise automation systems, a single pyramid is drawn, based on the field automation system, above the technology systems (material flow management). At the very top, the ERP system (resource management), in the middle of MES, is the system (operation and Dispatch control). Many specialists, considering such management as valid only in the analysis of local technical problems, are of the opinion that at least three pyramids should be used in the definition of the class of the Factory Information Management System ). The Automated field of control is presented in the form of a broad ring, on the outside of which the three types of automation object space is located– the main production that provides the economic and social sphere of the enterprise. Within the ring there is a field of management decision, making that takes into account the full range of criteria – technological, technical, economic and social. Such pyramids reflect vertical hierarchical relationships. The closer you get to the center of the circle, the fewer the links, the Pyramid narrows, but the more saturated and intense the horizontal function constraints become, the more difficult the tasks are. While there are almost one crochet measurement and management tasks on the periphery of the automation circle (sufficiently robust in local closed systems, tested instruments and known algorithms), the center is the assessment and management tasks that require complex algorithms. The problem of creating control systems based on the use of modern analytical information technologies Articles

VOLUME 11,

N° 3

2017

and oriented on the use of complex mathematical tools for the analysis of multidimensional situations, to forecast their development and to develop optimized recommendations is still a topical IIMS [9]. In order to address design problems, management analysis, development forecasts, new approaches are needed, and more sophisticated technical and integrated research is being developed. Existing technical solutions Honeywell provide the ability to create a single integrated information management system (IIMS) for complex production [10]. An analysis of the development of modern systems and means of industrial automation highlights a number of trends in this area of science and technology that can be used to anticipate possible areas where the most important changes will occur in the near future. Among the major trends in the development of automation systems and tools are the following. Widespread dissemination of industrial networks for “field” automation devices, which are digital sensors and converters, actuators, frequency-controlled transmission devices and other equipment [3]. The main trend here is the constant increase in built-in artificial intelligence, which previously provided for the normal conversion of an analog signal into a digital network. Digital functions are now increasingly complicated: – Solving the complex processing problems of multiple signals simultaneously; – inline calibration, self-diagnose and maintenance of the actual state of automation equipment [11]. In the near future, it is to be expected that an important leap forward is the establishment of “field” regulators. You can see that the digital part of the actuator spends the broad functions of traditional regulators, whose statutes come from the top-level subsystems of the management hierarchy. Such solutions allow a fairly successful transition to a truly distributed management system. The emergence of management systems of this architecture provides a significant increase in the reliability and vitality of the control, lowers the cost of the control controller by reducing the need for I/O modules, and dramatically reduces the need for cable products. An important phenomenon is the emergence of the latest models of digital sensors with radio output. This solution offers significant benefits, ranging from cable savings to significant reductions in capital costs for new construction. However, developers will have to solve a number of problems related to immunity, security of information from unauthorized access, etc. At present, the boundaries between control and telemechanic can be observed. Modern industrial automation tools allow for the creation of both classical controls and systems for the management of geographically distributed objects on the same software and hardware. However, a specific feature of the control architecture is the inclusion of additional hardware in the tap, such as locks, communications servers, protocol converters, etc. An important trend in the development of automation systems is the need for one enterprise to integrate itself into a single information system of control and diverse, yet local, energy accounting systems.


Journal of Automation, Mobile Robotics & Intelligent Systems

Integration is now carried out on heterogeneous software through the creation of a separate subsystem of automated. This approach brings together a variety of devices for the commercial accounting systems of different producers with individual exchange protocols, which is an extremely laborious work. The solution to the problem is to increase the intelligence of digital multiparametric sensors. A significant increase in the requirement for integrated Automation of Energy and Electrical Equipment (AEEE) is a feature of the recent stages of industrial development. In this regard, the task of integrating the control and AEEE enterprises into a single information system has come to the fore. As long as these types of control are created in a very different way, a tap should be expected to allow a homogeneous set of software and technical tools to configure both control and AEEE [10, 12]. One of the most important ways to significantly increase the efficiency of industrial enterprises is to create integrated enterprise management systems covering all levels of management (from process to finance) and operating in real time. The challenge is to implement the classic enterprise management Pyramid, which includes ERP levels, MES, DCS (Control), covering the automation of all business processes of the enterprise [13]. However, in the practical solution of this task, it has been found that the pyramid needs to be given another level– the level of consolidation of real-time data across the enterprise as a whole. Systems at this level should ensure that data are collected, preprocessed and archived from the grassroots automated and many others. It is likely that new and increasingly improved, competing software from leading producers will emerge in the near future to address this pressing issue. In recent years, another new area of activity has emerged for professionals in the MES system (Management Enterprise Systems), which implement core functions ranging from routine dispatch and the calculation of techno-economic indicators to resource and production planning as a whole [14–15]. There is now a trend towards a dramatic increase in the size of management systems new requirements for minimizing the total cost of systems, which can only be achieved by the emergence of innovative automation software (SCADA, PIMS-Plant Information System) that supports real-time distributed database operations. The task of implementing the project for the creation and implementation of such large-scale automated is not trivial in itself and requires strict adherence to modern international standards for project management. The above trends do not exhaust all the many ways in which the systems and means of automation are being developed, but they are nevertheless paramount to the nearest time [16–17]. An example of a single integrated information Management System (IIMS) is the ISUB system at the Kandym (Uzbekisatan) gas complex, which is planned to be put into operation in 2018. The basis of the IIMS in the proposed solutions from Honeywell is the software-hardware platform Experion.

VOLUME 11,

N° 3

2017

The Experion platform contains many different integrated hardware and software solutions, depending on the needs of the management environment. The Experion architecture is highly scalable, and the need for a given system node is conditioned by the required characteristics of the system. The Experion system supports most modern industrial communications protocols and has the necessary level of openness of interfaces required for integration with related systems and information systems of other business processes. A unique feature of the Experion software platform is the complete seamless integration of industrial safety subsystems, including automated fire and gas detection and fire-fighting systems, as well as automated complexes of engineering and safety equipment. For example, the technical solution Experion Industrial Security (EIS) is a top-level software-based platform that combines access control, video surveillance, real-time monitoring and verification, perimeter intrusion detection, employee health, and dynamic acoustic sensing. However, this classical model, which includes the main subsystems of the Security Engineering Complex (SEC), is not dogmatic. The Experion software and hardware platform provides maximum flexibility for interfaces and has a full range of tools to integrate the full spectrum of modern industrial safety subsystems. The Human-Machine Interface (HMI), provided by the Experion system, ensures the efficient interaction of operational data in unstaffed situations. The system provides a complete set of software for signaling, monitoring of the state of the system’s technical means, a set of standard displays for configuration and navigation throughout the system, and a versatile apparatus for configuring user displays. Another interesting trend of modernity, also implemented in the Kandym Gas Processing Complex (GPC) project, is the information complex of the ASMP or MES systems. ASUP is built as a system integrating subsystems that perform special functions related to individual business processes and to the work of individual business units. The Kandym Gas complex’s automated management system for the enterprise is designed to: – Centralized operational control of production and auxiliary facilities of the Kandym group of Kandym gas plant deposits; – Providing methodology and tools to improve the management of production processes for gas production, preparation, transfer and marketing of products, and to maintain reservoir pressure. One of the ways to further modernize a modern industrial facility may be to output the enterprise information model to the information cloud Honeywell. Although that the conceptual architecture of the Experion system is built on the basis of the classical model of information management systems, and yet the approach used to create the software and hardware of the Experion system is sufficiently flexible and Articles

55


Journal of Automation, Mobile Robotics & Intelligent Systems

56

adaptable to the rapidly changing scientific and technological advances. The concept of the Industrial Internet of Things (IIOT) is becoming an increasingly frequent theme of the reports and reports of the world’s scientific communities every day. The concept of IIOT solves the most pressing issues of improving the overall efficiency of equipment, reducing the cost of operating an enterprise, optimizing supply chains and increasing the productivity of processes at a fundamentally new level, fundamentally changing the approach to these issues. And here, the decisions of Honeywell, which is also one of the pioneers in implementing the concept of the Industrial Internet of Things and a recognized international expert in the field of IT-applications for industrial enterprises, with a vast experience and an information resource for the comparative analysis of the models and modes of operation of various industrial enterprises, they have been at the forefront of scientific and technological thinking. For users who want to extract more value from their data without getting to expensive and long-running large data analysis projects, the analysis tools integrated into the Honeywell solution can easily detect abnormal patterns and automatically track them. And the tasks of optimizing the operation of equipment to improve its productivity and service life, through a package of Honeywell solutions, are performed by comparing the performance of the equipment and the efficiency of the tools in the various industrial plants and making the necessary recommendations to the users. The market for industrial automation worldwide has become more attractive to organizations’ investments. The use of robots in industrial controller mechanisms is an established trend. On the other hand, the way to increase the introduction of industrial equipment for control and automation is open, and in the global industrial automation market, there is an interesting and legitimate trend in the use of new innovations and technological solutions, including research and development in some of the rapidly growing industries, which then become an integral part in other directions. Consider some aspects (A–D) of industrial automation, which are traceable to the world industrial automation market, and which can be defined as the basis for development trends (these are the dimensions of these companies, as: ABB Ltd. (Sweden), Honeywell International Inc. (United States), Siemens AG (Germany), Mitsubishi Electric Corporation (Japan), General Electric Company (USA), Schneider Electric SE (France), Rockwell Automation, Inc. (US), FANUC Corporation, the Mitsubishi Electric Corporation, Toshiba Machine Corporation LTD, Yokogawa Electric Corporation (Japan), Emerson Electric Company, Rockwell Automation, Inc.) (a) A reduction in the proportion of human participation in the interfaces in many processes and production (which, on the one hand, results in the loss of jobs in many industries, but the availability of innovative research reveals the potential for industrial Articles

VOLUME 11,

N° 3

2017

automation in the creation of jobs in other auxiliary segments, such as after-sales services, the installation of an automation system and the development of software for the management of industrial automation). (b) The main parts (details) used in the industrial automation market are the drives, measuring sensors, tracking and tracing sensors, metering units, servos and DC engines, industrial communications systems and robotic levers. There is an increasing role for automation, and the presence of such automation devices is becoming more common in the coming years, as a programmable logical controller (PLC), programmable automation controller (PAC), or a production computer (industrial PC), which causes factors such as faster response times and higher performance when investing in production automation. (c) On the basis of various types of automation, the world market for industrial automation segmented in such areas as distributed management systems (DCS, Distributed control System), programmable logical management systems (PLC, Programmable logic control system), machine vision systems, production systems (MES, manufacturing execution System), Human-machine interface (HMI, Man Machine Interface), movement control and data collection (SCADA, Supervisory Control and Data Acquisition), Product lifecycle Management (PLM , Product lifecycle Management), production asset management, numbered software-based routers (CNC, Computer numerical control), electronic control blocks (ECU, electronic control units), and other types. In addition, the world market for industrial automation segment (segments covered by the global industrial automation Market) is as follows: in the areas of automation and transport, metallurgy and mining, oil and gas, pulp and paper, hydropower, energy and electricity, chemical, material and food, measuring and control (for example, the demand for environment and construction technologies, heavy industry, energy) is growing rapidly [18]. (d) Regional perspectives on the Global Industrial Automation market: by region, the global industrial automation market is divided into five geographical areas, namely, North America, Europe, Asia and the Pacific, the Middle East and Africa, and South America. Europe now occupies the bulk of the market, followed by the Asia-Pacific region, North America, the Middle East and Africa and South America. The Asia-Pacific region is expected to grow rapidly with the growth of trade with North America and Europe.

3. Conclusion

Note that as these technologies evolve, analysts can evaluate and evaluate various opportunities. Examples of risk are the use of these technologies, before their viability and use in specific areas is proven, in determining what is valuable and when to invest. Basically, the information provided and the analytical information allow us to implement solutions to increase the productivity and efficiency of production processes for many industries and areas in the field of automation.


Journal of Automation, Mobile Robotics & Intelligent Systems

AUTHORS Nadirbek Yusupbekov* – Department of Automation of production processes, Tashkent State Technical University, Tashkent, 100095, Uzbekistan. E-mail: dodabek@mail.ru.

Farukh Adilov – General Manager of LLC “Ximavtomatika”, Tashkent, 100000, Uzbekistan, E-mail: Farukh.adilov@honeywell.com E-mail: adilov@himavtomatika.uz.

Farkhod Ergashev – Department of Automation of production processes, Tashkent State Technical University, Tashkent, 100095, Uzbekistan. E-mail: qwerty0409@mail.ru. *Corresponding author

REFERENCES [1]

N.R. Yusupbekov, R.A. Aliev, R.R. Aliev, A.N. Yusupbekov, Intelligent systems of management and decision-making, Uzbekiston Publishing House of Mill Encyclopedia, Tashkent, 2014, 490. [2] N.R. Yusupbekov, R.A. Aliev, F.T. Adilov, Sh.M. Gulyamov, Analytical information technologies of automation of production processes, Tashkent State Technical University, Tashkent, 2004, 159. [3] M.B. Shekhtman, “Trends in the development of industrial automation systems and new requirements for the training of automation specialists”, Journal of Industrial Automated Control Systems and Controllers, no. 4, 2008, 10–14. [4] F.T. Adilov, Construction of information-control systems for continuous industrial productions, Tashkent State Technical University, Tashkent, 2013, 192. [5] F.T. Adilov, “The problem of brand building in the field of industrial automation”, Automation in Industry, no. 1, 2003, 49–50. [6] N.R. Yusupbekov, Sh.M. Gulyamov, F.A. Ergashev, M.A. Rasuleva, “Short-term forecasting in the tasks of operational management of chemicaltechnological processes and industries”, Control. Diagnosis, 2016, no. 8, Moscow, 2016, 54–57. DOI:10.14489/issn.0201-7032. [7] T. Tommila, J. Hirvonen, L. Jaakkola, J. Peltoniemi, Next generation of industrial automation. Concepts and architecture of a component-based control system, VTT Technical Research Center of Finland, 2005, 58–63. [8] N.R. Yusupbekov, Sh.M. Gulyamov, F.A. Ergashev, M.A. Rasuleva, “Software and Hardware Implementation of Tasks Increasing Reliability of Measuring Information”, International Journal of Advanced Research in Science, Engineering and Technology, India, ISSN: 2350-0328, vol. 3, issue 2, February 2016, 1372-1378. [9] V. Marik, Research trends in control engineering /CeriCon A.S. Industrial review [10] Th. Bangemann et al., State of the Art in Industrial Automation, Springer International Publishing,

VOLUME 11,

N° 3

2017

Switzerland, 2014, 102-116. DOI:10.1007/9783-319-05624-1_2. [11] Fabio Mielli, Seven Trends for the Future of Mining Automation. White paper for mining automation, U.S. Mining, Automation and Control Center of Excellence, Schneider Electric USA, Inc. 2011, 78–89. [12] Global Industrial Automation Market: Overview /PRNewswire, 2017, 125–137. [13] https://www.automation.com/automationnews/article/automation-control-trends-in-2016 [14] http://www.reportlinker.com [15] A. Musayev, “Automation in Industry”, Algorithms for analytical control of production processes, No. 1, 2004, 18–25. [16] A.F. Gershberg, A.A. Musaev, A.A. Nosik, Yu.M. Sherstyuk, Conceptual basis of information integration of the automated process control system of a refinery. “Alliancestrake”, St. Petersburg, 2003, 242. [17] T.  B. Potapov, Information – control system. Evolution. Problem. Solutions. “Industrial Automated Control Systems and Controllers”, No. 7, 2000, 24–29. [18] Swapnil “Industrial Automation Market Demand for Effective Manufacturing Encourages Automation” Company Marketresearchreports , Albany, New York, USA, July, 2017. http://www.abnewswire.com/ /pressreleases/industrial-automation-market-demand-for-effective-manufacturing-encourages-automation_131957.html.

Articles

57


Journal of Automation, Mobile Robotics & Intelligent Systems

A

R M

VOLUME 11,

F -B

F G

S T

N∘ 3

2017

:D

Submi ed: 14th March 2017; accepted: 31th August 2017

Radko Mesiar, Anna Kolesarova DOI: 10.14313/JAMRIS_3-2017/29 Abstract: We discuss several extensions of binary Boolean func ons ac ng on the domain [0, 1]. Formally, there are 16 disjoint classes of such func ons, covering a majority of binary func ons considered in fuzzy set theory. We introduce and discuss duali es in this framework, stressing the links between dierent subclasses of considered func ons, e.g., the link between conjunc ve and implica on func ons. Special classes of considered func ons are characterized, among others, by par cular kinds of monotonicity. Relaxing these constraints by considering monotonicity in one direc on only, we generalize standard classes of aggrega on func ons, implica ons, semicopulas, etc., into larger classes called pre-aggrega ons, pre-implica ons, pre-semicopulas, etc. Note that the duali es discussed for the standard classes also relate the new extended classes of pre-func ons. Keywords: aggrega on func on, conjuctor, direc onal monotonicity, disjunctor, duality, implica on func on, pre-aggrega on func on, pre-implica on func on

1. Introduc on Fuzzy set theory introduced by Zadeh [11] was based on [0, 1]-extensions of Boolean functions. We will consider the binary functions only, though the other arities could be considered in a similar way. Recall that there are exactly 16 Boolean functions đ??ľ âˆś {0, 1} → {0, 1} , đ?›˝ ∈ {0, 1, ‌ , 15}, where

Boolean conjunction đ??ľ has resulted in đ?‘€đ?‘–đ?‘› operator, đ?‘€đ?‘–đ?‘›(đ?‘Ľ, đ?‘Ś) = min {đ?‘Ľ, đ?‘Ś} and đ??ľ has been extended to đ?‘€đ?‘Žđ?‘Ľ operator, đ?‘€đ?‘Žđ?‘Ľ(đ?‘Ľ, đ?‘Ś) = max{đ?‘Ľ, đ?‘Ś} (when linearity on simplices determined by vertices (0, 0), (0, 1), (1, 1) and (0, 0), (1, 0), (1, 1) was considered). Note that if the Boolean implication đ??ľ is extended in this way, the Ĺ ukasiewicz implication đ??ź âˆś [0, 1] → [0, 1] given by đ??ź (đ?‘Ľ, đ?‘Ś) = min{1, 1 − đ?‘Ľ + đ?‘Ś} is obtained. Also observe that when linearity on simplices determined by vertices (0, 1), (0, 0), (1, 0) and (0, 1), (1, 1), (1, 0) is considered, then the Ĺ ukasiewicz connectives đ?‘‡ and đ?‘† , as well as the Kleene-Dienes implication đ??ź are obtained. Recall that for each (đ?‘Ľ, đ?‘Ś) ∈ [0, 1] they are given by đ?‘‡ (đ?‘Ľ, đ?‘Ś) = max{0, đ?‘Ľ + đ?‘Ś − 1}, đ?‘† (đ?‘Ľ, đ?‘Ś) = min{1, đ?‘Ľ + đ?‘Ś}, and đ??ź (đ?‘Ľ, đ?‘Ś) = max{1 − đ?‘Ľ, đ?‘Ś}.

Considering a binary function đ??š âˆś [0, 1] → [0, 1] (a grupoid ([0, 1], đ??š)), we can distinguish 81 disjoint classes of such functions, depending on their values at Boolean inputs (0, 0), (0, 1), (1, 0) and (1, 1). Note that the value of đ??š at a Boolean input can be 0, 1 or can belong to ]0, 1[ (i.e., not being Boolean). We restrict our considerations to functions đ??š extending some of the Boolean functions from â„Ź, i.e., we will only discuss 16 classes of such functions. All such extensions form the class â„°â„Ź of extended Boolean functions, and â„°â„Ź , đ?›˝ ∈ {0, 1, ‌ , 15} denotes the class of all extensions of đ??ľ . It holds đ??š ∈ â„°â„Ź if and only if đ??š âˆś [0, 1] → [0, 1] satis ies đ??š| {0, 1} = đ??ľ .

đ?›˝ = 8đ??ľ (1, 1) + 4đ??ľ (1, 0) + 2đ??ľ (0, 1) + đ??ľ (0, 0). So, for example, đ??ľ (1, 1) = 0, đ??ľ (1, 0) = 1, đ??ľ (0, 1) = 1 and đ??ľ (0, 0) = 0. Observe that, e.g., đ??ľ is the Boolean conjunction, đ??ľ Boolean disjunction, đ??ľ Boolean implication, and đ??ľ is the Boolean bi-implication. Denote by â„Ź the set of all Boolean binary functions, i.e., â„Ź = {đ??ľ , đ??ľ , ‌ , đ??ľ }. A mapping đ?œ‘ âˆś â„Ź → â„Ź is called a duality whenever it is involutive, i.e., if đ?œ‘ ∘ đ?œ‘ = đ??źđ?‘‘ is the identity on â„Ź (đ??źđ?‘‘ is the trivial duality). It is not dif icult to check that there are exactly 8 dualities on â„Ź and when their composition is considered, they form an Abelian group isomorphic to (đ?‘? , +) . Zadeh in his introduction of fuzzy sets [11] has extended the Boolean range {0, 1} into the real unit interval [0, 1] and as the basic fuzzy connectives he has considered piece-wise linear extensions of the corresponding Boolean functions. Such an extension of the 58

Note that a similar study can be done when considering all 81 classes mentioned above. We restrict our discussion to 16 classes forming â„°â„Ź only for the sake of the transparency of our study. The dualities on â„°â„Ź are discussed in the next section. There we also recall particular extended Boolean functions characterized by some additional properties, including monotonicity constraints. In Section 3, we recall recently introduced concepts of directional monotonicity [1] and pre-aggregation functions [9]. In Section 4, we generalize some of the discussed classes of extended Boolean functions by relaxing the monotonicity constraints and replacing them by some directional monotonicity. In this way, new classes of pre-conjunctors or pre-implications are introduced and exempli ied, and moreover, their duality is shown to be inherited from the duality of conjunctors and implications considered in Section 2. Finally, some concluding remarks are added.


Journal of Automation, Mobile Robotics & Intelligent Systems

2. Basic Duali es in the Class of Extended Boolean Func ons Recall that there are just two unary non-constant Boolean functions, and both of them can be seen as dualities. Their linear extensions to the domain [0, 1] are just the functions đ?‘–đ?‘‘, đ?‘› âˆś [0, 1] → [0, 1] given by đ?‘–đ?‘‘(đ?‘Ľ) = đ?‘Ľ and đ?‘›(đ?‘Ľ) = 1 − đ?‘Ľ. Recall that đ?‘› was proposed by Zadeh [11] as a negation for building complements of fuzzy sets, and it is often called Zadeh’s or the standard negation. The mentioned 8 dualities on the class â„Ź can be straightforwardly extended to the dualities on the class â„°â„Ź as follows: For any đ??š ∈ â„°â„Ź and all (đ?‘Ľ, đ?‘Ś) ∈ [0, 1] we put đ?œ‘ đ?œ‘ đ?œ‘ đ?œ‘ đ?œ‘ đ?œ‘ đ?œ‘ đ?œ‘

(đ??š)(đ?‘Ľ, đ?‘Ś) (đ??š)(đ?‘Ľ, đ?‘Ś) (đ??š)(đ?‘Ľ, đ?‘Ś) (đ??š)(đ?‘Ľ, đ?‘Ś) (đ??š)(đ?‘Ľ, đ?‘Ś) (đ??š)(đ?‘Ľ, đ?‘Ś) (đ??š)(đ?‘Ľ, đ?‘Ś) (đ??š)(đ?‘Ľ, đ?‘Ś)

= = = = = = = =

đ??š(đ?‘Ľ, đ?‘Ś) (i.e., đ?œ‘ is the identity on â„°â„Ź); đ??š(đ?‘Ľ, 1 − đ?‘Ś); đ??š(1 − đ?‘Ľ, đ?‘Ś); đ??š(1 − đ?‘Ľ, 1 − đ?‘Ś); 1 − đ??š(đ?‘Ľ, đ?‘Ś); 1 − đ??š(đ?‘Ľ, 1 − đ?‘Ś); 1 − đ??š(1 − đ?‘Ľ, đ?‘Ś); 1 − đ??š(1 − đ?‘Ľ, 1 − đ?‘Ś).

Observe that đ?œ‘ (đ??š) is the dual to F in the sense of the standard duality of aggregation functions [7]. More about the group structure of dualities đ?œ‘ , ‌ , đ?œ‘ can be found in our recent paper [8]. Each of the introduced dualities preserves the partition of â„°â„Ź into the classes â„°â„Ź , ‌ , â„°â„Ź . So, for example, for any function đ??š ∈ â„°â„Ź (i.e., extending the Boolean conjunction), đ?œ‘ (đ??š) ∈ â„°â„Ź (i.e., đ?œ‘ (đ??š) extends the Boolean implication). Vice-versa, if đ??š ∈ â„°â„Ź then đ?œ‘ (đ??š) ∈ â„°â„Ź . More detailed information can be found in [8]. Note that there are also other types of dualities on â„°â„Ź, when instead of linear extensions of Boolean unary functions continuous involutive extensions are considered (i.e., the identity and strong negations). As the extension of our discussion considering dualities đ?œ‘ , ‌ , đ?œ‘ can be introduced to this more general setting in a direct way [8], we avoid this step to keep the transparency of our ideas. We now recall a few of the distinguished subclasses of â„°â„Ź that are often considered in fuzzy set theory: - coordinate-wise monotone extensions, in particular conjunctors (subclass of â„°â„Ź ), disjunctors (subclass of â„°â„Ź ), implications (subclass of â„°â„Ź ), co-implications (subclass of â„°â„Ź );

VOLUME 11,

đ??š (đ?‘Ľ + đ?‘?đ?‘&#x; , đ?‘Ś + đ?‘?đ?‘&#x; ) ≼ đ??š(đ?‘Ľ, đ?‘Ś). If đ??š is đ?‘&#x;-increasing Ě„ for some vector đ?‘&#x;,Ě„ đ??š is called directionally monotone. For any function đ??š âˆś [0, 1] → [0, 1], we denote by đ?‘… the set of all 2-dimensional vectors đ?‘&#x;Ě„ with unit length for which đ??š is đ?‘&#x;-increasing. Ě„ Note that đ?‘… = ∅, i.e., đ??š is not directionally monotone, whenever đ??š attains a strict local extreme on ]0, 1[ . If đ?‘… is maximal (i.e., it contains all possible directions) then, and only then, đ??š is a constant function. Consider the weighted Lehmer mean đ??ż( , ) related to positive weights đ?‘¤ , đ?‘¤ such that đ?‘¤ + đ?‘¤ = 1, given by đ??ż(

,

) (đ?‘Ľ, đ?‘Ś)

=

� � +� � � �+� �

with convention = 0. Then đ?‘… ( , ) = {( đ?‘¤ , đ?‘¤ )} is a singleton, i.e., đ??ż( , ) is directionally monotone, but it is increasing only in direction đ?‘&#x;Ě„ = (đ?‘¤ , đ?‘¤ ). For a class â„‹ of some functions from â„°â„Ź, we put đ?‘…â„‹ =

đ?‘… , ∈ℋ

i.e., đ?‘…â„‹ is the set of all directions đ?‘&#x;Ě„ for which any function đ??š ∈ â„‹ is đ?‘&#x;-increasing. Ě„ Thus đ?‘…â„‹ is a monotonicity characterization of the class â„‹. For example, for the class đ?’ž of all conjunctors, the class đ?’Ž of all semicopulas and đ?’Ź of all quasi-copulas, we have đ?‘…đ?’ž = đ?‘…đ?’Ž = đ?‘…đ?’Ź = đ?‘&#x;Ě„ ∈ â„? |đ?‘&#x; ≼ 0, đ?‘&#x; ≼ 0, đ?‘&#x; + đ?‘&#x; = 1 . It is not dif icult to check that if đ??š ∈ â„°â„Ź is directionally monotone, then, for any duality đ?œ‘ , đ?‘– = 0, 1, ‌ , 7, the function đ?œ‘ (đ??š) is also directionally monotone. In particular, we have the following result: Theorem 1. Let đ??š ∈ â„°â„Ź be đ?‘&#x;-increasing Ě„ for a direction đ?‘&#x;Ě„ = (đ?‘&#x; , đ?‘&#x; ). Then: đ?œ‘ (đ??š) = đ??š is đ?‘&#x;-increasing; Ě„ đ?œ‘ (đ??š) is (đ?‘&#x; , −đ?‘&#x; )-increasing; đ?œ‘ (đ??š) is (−đ?‘&#x; , đ?‘&#x; )-increasing; đ?œ‘ (đ??š) is −đ?‘&#x;-increasing; Ě„

- quasi-copulas, i.e., 1-Lipschitz semicopulas [6];

đ?œ‘ (đ??š) is −đ?‘&#x;-increasing; Ě„

- overlap functions, i.e., symmetric continuous conjunctors with annihilator 0 and no unit multipliers (đ??š(đ?‘Ľ, đ?‘Ś) = 1 only if đ?‘Ľ = đ?‘Ś = 1) [2].

đ?œ‘ (đ??š) is (−đ?‘&#x; , đ?‘&#x; )-increasing;

Directional monotonicity was introduced in [1] for đ?‘›-ary functions. We now recall this notion for binary functions only.

2017

De inition 1. Let đ??š âˆś [0, 1] → [0, 1] be a function and đ?‘&#x;Ě„ ∈ â„? a vector with unit length, i.e., đ?‘&#x;Ě„ = (đ?‘&#x; , đ?‘&#x; ) and đ?‘&#x; + đ?‘&#x; = 1. đ??š is said to be đ?‘&#x;-increasing Ě„ whenever for all (đ?‘Ľ, đ?‘Ś) ∈ [0, 1] and đ?‘? > 0 such that also (đ?‘Ľ + đ?‘?đ?‘&#x; , đ?‘Ś + đ?‘?đ?‘&#x; ) ∈ [0, 1] we have

- semicopulas, i.e., conjunctors with neutral element đ?‘’ = 1 [5];

3. Direc onal Monotonicity

N∘ 3

đ?œ‘ (đ??š) is (đ?‘&#x; , −đ?‘&#x; )-increasing; đ?œ‘ (đ??š) is đ?‘&#x;-increasing. Ě„ As already mentioned, all above introduced notions and results can be extended for arbitrary functions đ??š âˆś [0, 1] → [0, 1]. As a distinguished example, we recall aggregation functions [7] đ??´ âˆś [0, 1] → [0, 1] which 59


Journal of Automation, Mobile Robotics & Intelligent Systems

are characterized by the (Boolean) boundary conditions đ??´(0, 0) = 0 and đ??´(1, 1) = 1 (i.e., we consider functions belonging to the convex closure of the class â„°â„Ź âˆŞâ„°â„Ź âˆŞâ„°â„Ź âˆŞâ„°â„Ź ) and by directional monotonicity with respect to the directions from the irst quadrant (i.e., đ??´ is đ?‘&#x;-increasing Ě„ whenever đ?‘&#x;Ě„ ∈ đ?‘…đ?’ž ). Hence, for the class đ?’œ of all binary aggregation functions we have đ?‘…đ?’œ = đ?‘…đ?’ž = đ?‘&#x;Ě„ ∈ â„? |đ?‘&#x; ≼ 0, đ?‘&#x; ≼ 0, đ?‘&#x; + đ?‘&#x; = 1 . Recently, we have generalized the class đ?’œ, keeping the boundary conditions and directional monotonicity, but requiring the đ?‘&#x;-increasingness Ě„ for some đ?‘&#x;Ě„ ∈ đ?‘…đ?’œ only, see [9]. De inition 2. Let đ??ľ âˆś [0, 1] → [0, 1] be a function such that đ??ľ(0, 0) = 0, đ??ľ(1, 1) = 1 and let đ??ľ be đ?‘&#x;-Ě„ increasing for some đ?‘&#x;Ě„ ∈ đ?‘…đ?’œ . Then đ??ľ is called a preaggregation function. As an example of a proper pre-aggregation function (i.e., a pre-aggregation function that is not an aggregation function) we recall the above discussed weighted Lehmer mean đ??ż( , ) .

4. Generaliza ons of Some Subclasses of Extended Boolean Func ons Each particular subclass of â„°â„Ź recalled in Section 2 is characterized by some properties, including monotonicity, i.e., each subclass â„‹ is characterized by the set đ?‘…â„‹ of all directions đ?‘&#x;Ě„ such that any đ??š ∈ â„‹ is đ?‘&#x;-increasing. Ě„ Following the idea of pre-aggregation functions, see De inition 2, we propose the following generalization of a particular subclass â„‹ ⊂ â„°â„Ź. De inition 3. Let â„‹ ⊂ â„°â„Ź be completely characterized by đ?‘…â„‹ and some other properties forming a set đ?’Ťâ„‹ . Let the class đ?’˘â„‹ ⊂ â„°â„Ź consist of all functions đ??š ∈ â„°â„Ź satisfying all properties in đ?’Ťâ„‹ and being đ?‘&#x;-increasing Ě„ for some đ?‘&#x;Ě„ ∈ đ?‘…â„‹ . If functions đ??š in â„‹ are called â„‹functions, then functions đ??ş ∈ đ?’˘â„‹ will be called preâ„‹-functions. De inition 3 allows to introduce pre-conjunctors (subclass of â„°â„Ź ), pre-disjunctors (subclass of â„°â„Ź ), pre-implications (subclass of â„°â„Ź ), pre-semicopulas, pre-overlap functions, etc. Note that the notion of pret-norms was already introduced and discussed in [4]. Also observe that in some cases our generalization is empty. In particular, there is no proper pre-copula as well as no proper continuous pre-t-norm either pre-tconorm.

N∘ 3

2017

đ?‘‡ (đ?‘Ľ, đ?‘Ś) = max{0, đ?‘Ľ + đ?‘Ś − 1}, i.e., đ??š (đ?‘Ľ, đ?‘Ś)

= min {(đ?‘˜ + 1)đ?‘Ľđ?‘Ś, (đ?‘˜ + 1)đ?‘Ľđ?‘Ś − đ?‘˜đ?‘Ľ − đ?‘˜đ?‘Ś + đ?‘˜} = min {(đ?‘˜ + 1)đ?‘Ľđ?‘Ś, đ?‘Ľđ?‘Ś + đ?‘˜(1 − đ?‘Ľ)(1 − đ?‘Ś)} .

Then đ??š ∈ â„°â„Ź if and only if đ?‘˜ ∈ [0, 3], and then đ??š ∈ â„°â„Ź . đ??š has a neutral element đ?‘’ = 1 and an annihilator đ?‘Ž = 0. đ??š is a conjunctor (and thus a semicopula) only if đ?‘˜ = 0, and it is a proper pre-conjunctor (a proper pre-semicopula) if đ?‘˜ ∈]0, 1]. If đ?‘˜ ∈]1, 3], then đ?‘… = ∅. ( , )

|đ?‘Ą ∈ [đ?‘˜, ] . If đ?‘˜ ∈]0, 1], then đ?‘… = √ Note that đ??š is also a proper pre-overlap function whenever đ?‘˜ ∈]0, 1]. Example 2. Recall that for any conjunctor đ??ś ∈ đ?’ž, đ?œ‘ (đ??ś) = đ??ź ∈ â„? is an implication function. Thus, if we go back to Example 1 and put đ??ź = đ?œ‘ (đ??š ) for đ?‘˜ ∈ [0, 3], then evidently đ??ź ∈ â„°â„Ź . Then đ??ź âˆś [0, 1] → [0, 1] is given by đ??ź (đ?‘Ľ, đ?‘Ś) = 1 − đ??š (đ?‘Ľ, 1 − đ?‘Ś) = max {1 − (đ?‘˜ + 1)đ?‘Ľ(1 − đ?‘Ś), 1 − đ?‘Ľ(1 − đ?‘Ś) − đ?‘˜(1 − đ?‘Ľ)đ?‘Ś} , and đ??ź is an implication function only if đ?‘˜ = 0 (then đ??ź = đ??ź is the Reichenbach implication). For đ?‘˜ ∈]0, 1], đ??ź is a pre-implication function and đ?‘… = (

, )

|đ?‘Ą ∈ [đ?‘˜, ] . Note also that đ??ź (đ?‘Ľ, 0) = 1 − đ?‘Ľ and đ??ź (1, đ?‘Ś) = đ?‘Ś for all đ?‘Ľ, đ?‘Ś ∈ [0, 1] and đ?‘˜ ∈ [0, 3]. √

5. Concluding Remarks We have introduced and discussed some new looks at fuzzy connectives and related functions, including their generalizations based on replacing their monotonicity constraints by a weaker requirement of directional monotonicity. We have also discussed dualities in the class of extended Boolean functions, which can also be applied in a more general setting of binary functions (operations) on [0, 1]. Note that this look at fuzzy connectives allows to transform the results obtained in some particular subclass â„‹ of extended Boolean function to the dual class â„‹ obtained by the duality đ?œ‘ , đ?‘– ∈ {0, 1, ‌ , 7}. So, for example, all results known for conjunctors can be transformed into the corresponding results for disjunctors (when the duality đ?œ‘ is considered) or into the corresponding results for implications (when the duality đ?œ‘ is considered, see also [10]).

ACKNOWLEDGEMENTS

Dualities between particular subclasses of â„°â„Ź are also valid between the corresponding generalized subclasses.

The work on this contribution was supported by the project APVV–14–0013. Note that the contribution is related to an invited lecture presented at EUSFLAT 2017 Congress in Warsaw

Theorem 2. Let â„‹ ⊂ â„°â„Ź be given and let â„‹ = {đ?œ‘ (đ??š)|đ??š ∈ â„‹} , đ?‘– ∈ {0, 1, ‌ , 7}. Then đ?’˘â„‹ = {đ?œ‘ (đ??š)|đ??š ∈ đ?’˘â„‹ }.

AUTHORS

Example 1. For đ?‘˜ ∈ [0, ∞[, let đ??š âˆś [0, 1] → â„? be given by đ??š = (đ?‘˜ + 1)đ?‘‡ − đ?‘˜đ?‘‡ , where đ?‘‡ (đ?‘Ľ, đ?‘Ś) = đ?‘Ľđ?‘Ś and 60

VOLUME 11,

Radko Mesiar∗ – Faculty of Civil Engineering, Slovak University of Technology, RadlinskeĚ ho 11, 810 05 Bratislava, Slovakia, e-mail: radko.mesiar@stuba.sk.


Journal of Automation, Mobile Robotics & Intelligent Systems

VOLUME 11,

N∘ 3

2017

Anna Kolesarova – Faculty of Chemical and Food Technology, Slovak University of Technology, Radlinské ho 9, 812 37 Bratislava, Slovakia, e-mail: anna.kolesarova@stuba.sk. ∗ Corresponding author

REFERENCES [1] Bustince, H., Fernandez, J., Kolesá rová , A., Mesiar, R., ”Directional monotonicity of fusion functions”, European Journal of Operational Research, vol. 244, 2015, no. 1, 300–308. DOI: 10.1016/j.ejor.2015.01.018. [2] Bustince, H., Pagola, M., Mesiar, R., Hü llermeier, E., Herrera, F., ”Grouping, Overlap, and Generalized Bientropic Functions for Fuzzy Modeling of Pairwise Comparisons”, IEEE Transactions on Fuzzy Systems, vol. 20, 2012, no.3, 405–415. DOI: 10.1109/TFUZZ.2011.2173581. [3] Bustince, H., Fernandez, J., Mesiar, R., Montero, J., Orduna, R., ”Overlap functions. Nonlinear Analysis: Theory”, Methods and Applications, vol. 72, 2010, no. 3–4, 1488–1499. DOI: 10.1016/j.na.2009.08.033. [4] Dimuro, G.P., Bustince, H., Fernandez, J., Mesiar, R., Bedregal, B., ”New Results on Pre-aggregation Functions: introducing (light) pre-t-norms”. In: IFSA-SCIS 2017, Otsu, 2017. [5] Durante, F. Sempi, C., ”Semicopulæ”, Kybernetika, vol. 41, 2005, no.3, 315–328. [6] Genest C., Molina L., Lallena, L., Sempi C., ”A characterization of quasi-copulas”, J. Multivariate Anal., no. 69, 1999, 1193–1205. DOI: 10.1006/jmva.1998.1809. [7] Grabisch, M., Marichal, J.-L., Mesiar, R., Pap, E., Aggregation Functions: Encyclopedia of Mathematics, Cambridge University Press 2009. [8] Mesiar, R., Kolesá rová , A., Bustince, H., Fernandez, J., Dualities in the class of extended Boolean functions. ”Fuzzy Sets and Systems”, in press. Available online 20 April 2017. DOI: 10.1016/j.fss.2017.04.008. [9] Lucca, G., Sanz, J. A., Pereira-Dimuro, G., Bedregal, B., Mesiar, R., Kolesá rová , A., Bustince, H., ”Pre-aggregation functions: construction and an application”, IEEE Trans. on Fuzzy Systems, vol. 24, 2016, no.2, 260-–272. DOI: 10.1109/TFUZZ.2015.2453020. [10] Pradera, A., Beliakov, G., Bustince, H., De Baets, B., ”A review of the relationships between implication, negation and aggregation functions from the point of view of material implication”, Information Sciences, no. 329, 2016, 357–380. DOI: 10.1016/j.ins.2015.09.033. [11] Zadeh, L. A., ”Fuzzy Sets”, Information and Control”, 1965,no. 8, 338–358.

61


Journal of Automation, Mobile Robotics & Intelligent Systems

VOLUME 11,

N° 3

2017

On Automatic Metric Radio Map Generation for the Purpose of WiFi Navigation Submitted: 15th June 2017; accepted 17th October 2017

Piotr Bigaj, Jakub Bartoszek

DOI: 10.14313/JAMRIS_3-2017/30 Abstract: We present a novel method of fast and reliable data gathering for the purpose of location services based on radio signal strength services such as WiFi location/ navigation. Our method combines the acquisition of location and mapping based on computer vision methods with WiFi signal strength stochastic data gathering. The output of the method is threefold: 3D metric space model, 2D floor plan map and metric map of stochastic radio signal strength. The binding of location data with radio data is done completely automatically, without any human intervention. The advantage of our solution lies also in a significant speed-up and density increase of Radio Map generation which opens new markets for WiFi navigation services. We have proved that presented solution produces a map allowing location in office space of accuracy 1.06 m. Keywords: indoor positioning, radio map, mobile devices, WiFi fingerprint localization, path planning

1. Introduction In classic approach WiFi indoor location is based on fingerprinting [1, 4–10]. Fingerprinting is a way of representing a Radio Map as a set of metric positions combined with WiFi BSSID’s (Basic Service Set Identifier) and their RSSI (Received Signal Strength Indication). Such map is then used as a reference: a user willing to localize its terminal compares the radio-strength distance of its current location with the locations on the map and choosing the one with the closest distance. The most important aspect is a way of calculating the radio-strength distance between user’s location and locations from a map. Apart from location estimate methods there is a crucial aspect influencing the quality of location services: namely a Radio Map, the quality of which determines the accuracy of location itself. Therefore a construction of the Radio Map is fundamental for further location.

2. Problem Statement

62

In the research described within the scope of this paper the goal is twofold. The first is to propose a method that minimizes the time of gathering the large amount data for wireless Radio Map. For this purpose we support automa-

tic receive signal strength indication measurements with SLAM (Simultaneous Localization and Mapping) approach. The second goal is to propose novel method of location estimation based on previously prepared Radio Map. In this goal we want to minimize location errors represented by circular error probability measure. This is achieved by introducing divergences and metrics calculations for Radio Maps stored in a form of a set of probability distribution of RSSI signal.

3. Organization of the Paper

The remaining part of article is organized as follows: Paragraph 4: describes state-of-the-art for Radio Map generation method and their drawbacks. Paragraph 5: describes the motivation to create an automatic method for creating WiFi stochastic metric Radio Map. Paragraph 6: describes a high-level approach by presenting and distinguishing between two pipelines of calculations: SLAM and Wireless pipeline. Paragraph 8: Describes how metric locations are gathered and how a floor plan is calculated based on that measurement. Paragraph 9: Details how wireless measurements are taken and stored as well as it describes a list of methods to calculate the location data. A description of single-value and f-divergences are given. Paragraph 10: Explains results of experiments done for validation of proposed approach and to assess the quality of proposed solution. Paragraph 11 and 12: lines up conclusions of the work and presents future plans.

4. Current Radio Map Generation Methods

In current approaches [1, 2] a Radio Map is generated in a following sequence: a human user plans a path to walk through locations in which he will gather the RSSI. He stops on every planed point, measures the radio signal strength and moves to next point where the procedure of measurement repeats. While this approach is obvious and natural it also has serious limitations. (1) The user needs to position himself in the exact location as planned, otherwise the location measurement error will also include mismatch of the Radio Map. (2) The user needs an a priori known map (or plan of the building) to plan his path. (3) The output of such procedure is a list of locations with assigned radio signal strength information and it has no automatic correspondence with a map. (4) The location on such Radio Map has to be manually annotated with metric data, which excludes the use of such Radio Map from a systematic approach for POI placement.


Journal of Automation, Mobile Robotics & Intelligent Systems

Other approach of Radio Map generation involves collection of data samples gathered by service user [3, 11–12]. This approach, despite the many benefits and advantages over the classic methods of collection of data, also requires the preparation of an initial version of the map. Furthermore, in a dynamically changing environment, it is necessary to carry on, with a certain time interval, additional measurements for Radio Map verification.

5. The Motivation

There were a variety of motivation aspects for conducting a research on WiFi surveying. Apart from drawbacks mentioned in previous section the primary motivation to conduct this research was the lack of an automatic and fast method for generating metric Radio Maps. Such automation is especially important when wireless infrastructure changes over time or when an infrastructure needs a rapid setup for limited amount of time e.g. trade fair. In addition new research [13] on WiFi navigation, points out that stochastic measure of radio signals provides quantitatively and qualitatively better results than classic fingerprinting. This can be explained by a fact that RSSI varies a lot for particular AP in one location over time. This is shown in Fig. 1 – as the number of RSSI samples from AP increases (Fig.  1a) the distribution of RSSI changes significantly. In Fig.  1b samples from corridor-like scenario are shown with their distribution. Both data charts proves that compressing such distribution into one num-

a)

VOLUME 11,

N° 3

2017

ber causes loss of information and brings initial error source to location estimation. Stochastic data gathering is much simplified having an access to metric layer on the Radio Map. Another advantage of new method is that the spatial density of fingerprints is the most important impacting factor for WiFi location performance [3]. The last motivation was to provide a method that could be implemented on existing infrastructure (like scrubber driers in shopping malls) for creating and updating the Radio Map. Summarizing due to the (1) low speed of Radio Map generation in current approaches, (2) the need of metric, stochastic information in the Radio Map as well as (3) the low Radio Map density a new automatic way of metric Radio Map creation is highly desired for effective WiFi location services.

6. The Overview of New Approach

The proposed approach for Radio Map data gathering is to combine Simultaneous Localization and Mapping (SLAM) concept with WiFi data gathering (Fig. 2). The data are collected by RGB-D camera (SLAM pipeline) and WiFi network card (Wireless pipeline). SLAM pipeline aims in creating a metric 3D point cloud based on which a Metric Map is created. Wireless pipeline collects the RSSIs of APs visible at particular point. Therefore there are two layers of output data: Metric Map layer and Wireless Map i.e. RSSI layer. Both layers are combined to produce a dense metric Radio Map for further location purposes. Whole process is depicted in Fig. 2. SLAM pipeline aims at determining the current location of the apparatus. Together with SLAM pipeline a wireless data is gathered as the apparatus is moving. The wireless data contains information of BSSIDs and their RSSIs. The output is gathered in a form of histogram for particular BSSID and its RSSIs in particular location. Such approach is motivated by a fact of non-Gausianity of the RSSI distribution and is intended to provide as much valuable data for further location al-

b)

Fig. 1. a) A distribution of RSSI signal for one AP at different locations when number of RSSI sample is varying b) distribu-tion of RSSI in space for corridor-like scenario (user goes through corridor [just x-position is changed] and simultane-ously samples RSSI for particular AP)

Fig. 2. The procedure of Wi-Fi metric Radio Map data gather-ing in two pipelines: Wireless and SLAM Articles

63


Journal of Automation, Mobile Robotics & Intelligent Systems

VOLUME 11,

gorithm as possible (Fig. 1).This way a simple metrics as well as kernelized probabilistic locations approach can work on same Radio Map. The position of the apparatus calculated in SLAM pipeline allows updating histogram in particular location. One of advantages of using probabilistic approach is that it significantly reduces the influence of various inferences of radio signal that result in lowering the quality of location process. This means that the immunity of presented system is higher of those based on classic RSSI calculations. These influences are reduced by taking multiple samples of RSSI for each AP in particular location and build a probability distribution of these samples. In this method we assign a probability to particular value of RSSI i.e. we estimate what is the probability of this particular RSSI to be receive in that location. The influence of RSSI changes due to various inferences such as people passing by are therefore reduced since such distortion will be projected only in a part of signal strength distribution. This stochastic approach has also an impact on noise immunity.

N° 3

2017

a)

b)

7. Radio Map Construction

Metric Radio Map M is a set of points Mi. Each of the point on the WiFi metric Radio Map combines two values: (1)

Mi,loc – metric location. This location is calculated by SLAM pipeline (Fig. 2). Mi = (xi, yi). Pi – RSSI probability density function in location Mi,loc calculated by maximum likelihood estimation for samples gathered in location Mi,loc. This is calculated by Wireless pipeline (Fig. 2) The probability density function is multinomial: it contains information about probability distributions for multiple APs in the location Mi,loc: (2)

pAP1,i – RSSI probability density function in location Mi,loc for particular AP (APi) having particular value of RSSI. This probability density function is calculated by maximum likelihood estimation and therefore it can be considered as a scaled histogram.

8. SLAM Pipeline

64

SLAM produces a Metric Map consisting on a set of locations in which the apparatus was present (Mi,loc). Each time the apparatus moves producing new Mi,loc new location is added to Radio Map M. With the apparatus position changes RGB and Depth images are collected and compared with previous ones. The first comparison is done for RGB image for matching visual features. Algorithm used for this purpose is strictly dependent on the platform used for data collection. The user should make a choice between algorithms SIFT / SURF and ORB. The first two proposed algorithms allow for better accuracy, however, require more computing power. The third algorithm, which gives the worst results, is suitable for use on mobile platforms. Below (Fig. 3) Articles

Fig. 3. Comparison of matching algorithms due to: a) chang-ing the distance from the object. b) changing the orientation of the camera, Source: [14] one can find graphs showing the effect of changing the orientation of the camera and the distance from the captured object to the obtained results. These indicate clearly that in the case of using a mobile platform with less computing power it is necessary to ensure a stable position of the camera, and it’s relatively slow movement (slow walk). Moreover, the use of a platform with lower computing power will prevent collection of data in an environment with a low degree of differentiation and with low details (e.g. hallway with white walls). Second step of method is based on preselecting a pair wise (between two acquisition points) 6D transformation estimation: RANSAC [15] for visual data, Global Iterative Closest Point algorithm for point cloud. This order is result from the need to reduce the amount of calculations required to determine the exact camera shift. At the first the displacement is determined with less accuracy and next based on that the more detailed solution is calculated. In next step a pose graph optimization is run (g2o) on data from matched 3D point cloud. As a result point cloud (coloured by RGB image) is added to metric 3D model. Unfortunately, it is impossible to avoid drift occurring during data collection; therefore it is necessary to close the loop for long straight sections of the route (over 10m) in order to minimize the location error. The last step of proposed method is projecting 3D model (Fig.  4a) on XY surface to produce metric 2D map (Fig. 4b).


Journal of Automation, Mobile Robotics & Intelligent Systems

a)

b)

Fig. 4. Partial point cloud visualisation: a) Whole point cloud, b) Detected floor

The density of a map understood as an average distance between consecutive points is therefore dependent of the velocity of measuring device. With our implemented SLAM pipeline we have achieved an average density of 0.10 m in office space for average velocity of movement 1.4 m/s (typical walking speed of human). Feature matching, global pose estimation and 3D point cloud are generated whilst apparatus moves (i.e. all calculations are done online, without uploading it to a cloud). An example of three steps of map creation is shown in figure below (Fig. 5). Due to a drift in Global Pose estimation it is always better to close the loop while moving to reduce this drift. When the loop is not closed (Fig. 5a) straight segments of movement become curved due to drift. When feature matcher has matched “end” of the loop with the “beginning” (Fig. 5b) global pose graph optimization corrects such drift. Locations of Mi,loc do not have to be known a’priori, before the map building process is started. Mi,loc are calculated along with SLAM apparatus movement. The only limitation of the sampling locations is that during map building the apparatus needs to visits positions Mi,loc in which further location will be performed. This means that the apparatus needs to appear wherever human will need location service. On the other hand if the apparatus appear multiple times in one location or in the proximity of that location the map is updated by adding wireless signal information to that location. This means that deployment and maintenance cost of surveying system is negligible, as it needs only the SLAM aparathus.

VOLUME 11,

N° 3

2017

in Mi,loc in the Radio Map M). Based on this comparison we estimate L as L in the position in which Q was taken Therefore the key aspect in location is to calculate a distance between Q and Pi distribution. The comparison between Q and Pi is a comparision of a discreet probability density functions. In order to make such comparison we use and compare different approaches including: comparing single values represented by mean and median values, probability density divergences and density metrics i.e. f-divergences [16–18]. In current approach the number of Pi distributions equalling number for visited locations (Mi,loc) has an impact on systems performance. This is because the calculation of location estimation demands a comparison of Q and Pi distribution. The number of comparisons depend on number of points in the Radio Map in the linear manner and so does the time complexity of the location (O(n)). In practice we have calculated the location of a terminal on the map of order of 103 points (30 × 25m) in 5 ms on a typical desktop computer. In following chapters three groups of methods will be discussed.

a)

b)

c)

d)

9. WiFi Pipeline

Our method of wireless data gathering and processing can be described as follows: In order to perform location we need to find the metric position L = (xl, yl) in that particular point. To achieve that we sample the distribution Q of RSSI for multiple APs (Q = (qAP,1, …, qAP,n) is multimodal as Pi in each location Mi,loc is). Next we need to compare Q with Pi for each location Mi,loc. This comparison aims in providing a single number that shows how similar is the distribution of RSSI signals in the location that we currently measure (Q distribution) to each of previously measured distributions (Pi

Fig. 5. Consecutive steps of metric map generation by our algorithm at office space (30 x 25m). a) The loop is not closed and in further part of path a drift starts to play significant role b) the loop is closed and drift is minimised c) whole floor model, d) original floor plan Articles

65


Journal of Automation, Mobile Robotics & Intelligent Systems

VOLUME 11,

N° 3

2017

9.1. Single Value Based Calculations For single value based calculations we compress the distributions Q and Pi to single value of mean or median of these. The distance between Q and Pi is calculated as a distance between vectors of means or medians of Q and Pi . This is done in following steps: Calculate means or medians for distributions Q and Pi : . Calculate distance between vectors : (3)

a)

(4) S – a sensitivity of a receiver and μpAP,i is a mean value of RSSI in distribution pAP,i. For our case S = –120 (120 dBm is a sensitivity level of our wireless card). Calculate the norm of a vector:

9.2. Divergence-Based Calculations

(5)

In probability theory a divergence is a function that measures the difference between two probability distributions. We assume local independence of probability distribution for different AP. Thanks to this assumption the total divergence of and is a sum of divergences between distributions of the corresponding AP’s RSSI: (6)

b)

Fig. 6 a) Mean location error in function of number of samples gathered for non-kernel divergences (calculated by combining Method 1 of section 9.4 with divergences of (12),(15),(18),(21)) and Method 1 of section 9.4 with Hellinger distance of (24) ), b) 50-th percentile of location error in a function of number of samples for kernelled method (calculat-ed by combining Method 3 of section 9.4 with divergences of (12), (15), (18), (21) and Method 3 of section 9.4 with Hellinger distance of (24)). The error units are equal to Metric Map density, for this case was 1m 9.2.1. Kullback-Leiber Divergence

(7)

(10)

(8)

Ddiff(Q‖Pi) – divergence for AP’s that are present in distribution Q (location L) i.e. when pAP,1 = 0, Dcomm(Q‖Pi) – divergence for AP common in and Q, pα – is a small constant. Its function is explained below.

(11)

Note that D(Q‖Pi) is non symmetric i.e. in general D(Q‖Pi) ≠ D(Pi ‖Q). Therefore to symmetrise a symmetric divergence is introduced:

(9)

66

In our approach we use four different divergences: Kullback-Leiber [19–20], Jeffrey [21–22], Kagan and Exponential. Realisation of (7) and (8) is for these divergences presented below: Articles

9.2.2. Jeffrey Divergence

(12) (13)


Journal of Automation, Mobile Robotics & Intelligent Systems

VOLUME 11,

9.2.3. Kagan Divergence

(14)

N° 3

2017

Due to a fact that pa is very small e.g. 10–8 the difference between qAP,i and q’AP,i are very small. All divergences used here do not satisfy triangle inequality and therefore are premetric. Symmetrising corresponding divergences of (10) and (11), (13) and (14), (16) and (17), (19) and (20) by applying approach of (9) we end up with symmetric divergences. By applying (9) we end up with (12), (15), (18), (21) respectively for Kullback-Leiber, Jeffrey, Kagan and Exponential divergences.

9.3. Metrics-Based Calculations

(15)

(16) (17)

9.2.4. Exponential Divergence

(18)

(19)

(20)

The similarity between two probability distributions can also be calculated by Hellinger distance [23–25]. Its discreet form is as follows:

(23)

There is no need to deal with common and different AP in this Hellinger’s approach as non-existing AP zeroes particular expressions in the sum. Therefore smoothing is also not needed. The total Hellinger distance between two multimodal RSSI distributions is therefore equal to: (24)

9.4. Regression Methods Using solutions from (12), (15), (18), (21) or (24) one ends up with a table T of length imax (imax is a number of of data points on the Radio Map M). This table represents estimate of distances1 of the location where the measurement was taken (Q distribution) to each point Mi on the Radio Map with corresponding Pi distribution. In order to estimate the position of current measurement we can use one of three approaches: Method 1. Pick Pi for which T[i] has the smallest value i.e. choose the nearest neighbour. Method 2. Sort T increasingly and sort Mi,loc accordingly (so that Ti corresponds with location Mi,loc). Choose k-nearest neighbours and estimate the output location by regular weighted sum: (25)

(21)

Equations (10), (13), (16) and (19) are specific realisation of a sum (7), whilst (11), (14), (17) and (20) of (8). pα is a small constant (~108) used in (10), (13) and (16) to avoid taking logarithm of zero. Because pα is a Laplace-like smoothing stilling some mass probability from parameter the remaining probability distribution, namely qAP,i becomes q’AP,i in (10), (13) and (16). To do so it needs need to be renormalized:

Method 3. Sort T increasingly and sort Mi,loc accordingly (so thatv Ti corresponds with location Mi,loc)Choose k-nearest neighboursa and estimate the output location by kernel regression-based weighted sum: (26)

(22)

c – number of AP present in distribution Q and not present in distribution Pi = (pAP,I = 0).

1

Not in mathematical sense.

Articles

67


Journal of Automation, Mobile Robotics & Intelligent Systems

VOLUME 11,

(27) (28)

Β – is only a scaling factor added here not to lose numerical precision in case of large D(Q, Pi). It is different for particular realisation of D(Q, Pi): (12), (15), (18), (21) and (24). The kernel can take two forms: simple (27) or Gaussian kernel (28). Note that, sums of (25) and (26) are limited to nearest neighbours. For comparison we choose to correspond with positions of: mean (μ), 10-, 20-, 30-, 40-, 50-, 60-, 70-, 80-, 90-percentile, μ – σ and μ – 2σ (μ, σ are mean and standard deviation of T (for (25)) and k(T) (for (26)). Summarising each method of calculation (there are 7 methods) we use 4 types regression and for 3 of them we have 12 different k values. This gives us 273 variants of methods for quality comparison.

N° 3

2017

rapidly decrease for Radio Maps of at least 10 samples for AP this decrease is stabilised around Radio Map of 35 samples. On the other hand having a Radio Map of over 3000 samples per AP per location is redundant as the location performance for a Radio Map of over

a)

10. Experiments

10.1. Experiment 1: Estimation of Number of Needed Samples

68

In order to estimate the proper conditions for gathering Radio Map data we have measured what is the desired number of samples per location Mi,loc to create RSSI distribution Pi meaningful for the process of location estimation. Such information is needed since samples are gathered by WiFi pipeline while the whole apparatus is moving, therefore the desired number of samples per location limits the velocity of movement while gathering these samples. From one site (D1) one needs to limit number of samples per location Mi,loc since the number of samples affects sample gathering time in this particular location and this affects the total time for creation of full Radio Map M. On the other hand we need (D2) many samples to provide Pi distribution that would capture the true distribution of RSSI signals for different AP in location Pi. These demans: (D1) and (D2) are in contradiction and in order to build Radio Map effectively we need to find a good balance between these two. We have collected a large sample data from 20 locations i.e. a Radio Map consisted of 20 Mi points. Each Pi consisted of distributions of RSSI for particular AP as in (2). For each AP we have collected more than 3000 samples from which pAP,i distribution was build. Data collection for one Mi,loc took approximately 360 s giving approximately sampling speed of 150 samples/s. Next we have limited the number of samples per AP in each point Mi,loc to 1, 2, 3, …, 3000 and for such limitation we have build . Next we have extracted points Mi one by one and for each point of the Radio Map Mi we have estimated the location on such limited Radio Map M’ = M – {Mi} and calculated the error of this estimation. The average error is presented in Fig. 6a, whilst the 50th percentile of an error is presented in Fig. 6b. Units of error are not significant in this experiment as it strictly depend on how sparse the locations of Mi,loc are – only the dependency type is important here. One may notice that the error of location estimation both for average and 50th percentile starts to Articles

b)

c)

d)

Fig. 7. Location errors for different modes of calculations. Mean and median (first two) based calculations are provided as a baseline: a) nearest neighbour – section 9.4. Method 1, b) Weighted sum calculation – section 7.4. Method 2, c) Kernel based calculation for k_1 kernel – section 7.4. Method 3 d) Gauss kernel based calculation for k_2 kernel – section 7.4. Method 3. All methods (x-axis) are KL-Kullback Leiber, Jeffrey, Kagan and Exponential divergence, Hellinger Distance. k – limitation of length in weighted sum and kernel methods is set to be: p=0.1...0.9 – percentile 0.1...0.9 of distribution, μ – mean value of distribution, μ-σ – mean minus standard deviation, μ-2σ – mean minus two standard deviations


Journal of Automation, Mobile Robotics & Intelligent Systems

Fig. 8. RSSI signal from 6 different AP in the Radio Map M 1000 RSSI samples per AP is almost constant for such Radio Maps. Summarising: a time of 1 s of sampling gives on average 150 samples per AP. In the result we estimate, that 35 samples for AP is enough for efficient location using proposed methods. A time of 0.2(3) s of sampling in one location is therefore enough to produce Radio Map point Mi with effective calculation for methods described in chapter 7 Average number of APs for this scenario was 24 and points where gathered with density of 1 m. Since the process of RSSI sampling is continues in sense that the apparatus is in movement while measuring WiFi signal we have to assign some distribution Pi gathered on the movement to one location Mi,loc. Since the location accuracy of presented method i.e. the primary location accuracy of Mi,loc calculated by SLAM pipeline is several centimetres this location estimation has to be rounded to higher (worse accuracy) number e.g. 50 cm. This means that all RSSI samples in the range of 50 cm from M’i,loc will be bonded to that location (M’i,loc). Assuming a linear movement (constant velocity), sampling achieved speed of 150 samples/s, calculated 35 samples the and a map of a grid of 50 cm we achieve maximum velocity of apparatus of 2.14 m/s. The preferred walking velocity is 1.4 m/s, therefore our solution allows to exceed this velocity. When moving with the preferred walking velocity we can achieve over 54 samples per AP. On the other hand preferred walking velocity allows gathering samples of minimum quantity (35 samples per AP) with the grid of 30 cm. Summarizing the proposed method allows it to be used by both: walking human and a robot, because WiFi sampling time is low enough to gather the representative set of RSSI samples for further distance calculations.

10.2. Experiment 2: Office Location – Comparison of the Points of Radio Map

During this experiment a Radio Map M of an office building was taken by SLAM method described ear-

VOLUME 11,

N° 3

2017

lier. In this office space of approximately 30 m × 25 m a Radio Map M was created and set of locations (Lj, Qi) was taken in the same location. Number of Radio Map points is imax = 1172. The procedure of estimating location error was similar to the one described in section 10.1: for each i-th point in the Radio Map set this point as location L = Mi,loc, Q = Pi, and remove from the Radio Map M: = M – {Mi}. For each of point we have calculated location errors for each method: single value (section 9.1), divergences (section 9.2) and metrics (section 9.3). For all calculations we have used nonregression and regression methods according to section 9.4. Location errors for these combinations are shown in figure below (Fig. 7). Worst accuracy is achieved by Kagan Divergence for all modes of calculation (NN, weighted sum and kernel). In this scenario we have achieved best performance for non-kernelled NN methods. 50% of locations estimated by Nearest Neighbour Jeffrey divergence are inside a circle of radius of 0.079 m. For Exponential divergence NN 95% of locations provided by estimate are in 1.06 m of radius. Nearest Neighbour get the location of a point with smallest divergence/distance value. Therefore such good results for Nearest Neighbours can be explained by a fact that Radio Map is taken by SLAM with very high density of Mi,loc. In this Radio Map locations are distanced in average 0.059 m so that the Radio Map is very dense. Average number of APs was 35.

10.3. Experiment 3: Office Location – Location Accuracy

In this experiment we have created a Radio Map of environment M. A view of RSSI levels for several AP is presented in Fig. 8. In this experiment we have gathered the Radio Map M of the office space and a set of locations L of the same office space. M and L were gathered using our method for Radio Map gathering, therefore when calculating we were able to calculate an error EM,L of positioning by comparing it with L measured by SLAM. EM,L has two components: SLAM error component and WiFi location component. SLAM error component comes from the fact, that Metric Map produced by SLAM is not ideal: estimating location of each point of the Radio Map bears an error ESLAM (ESLAM is estimated in office space in our method approximately 0.3 m). The total EM,L for selected methods is shown in graphical form Fig. 9, whilst numeric values can be found in Tab. 2. In the best case (Hellinger distance with no-kernels) we have achieved a location accuracy of 1.06 m for 0.5 percentile of measurements (CEP=50) whilst almost all measurements (95th percentile) are below 3 m of error (see results and comparison with other methods in Fig. 10). The subsequent locations estimated by algorithm based on non-kernelized Hellinger distance well mirrors the original path as can be seen by trajectory and bindings presented in Fig. 9e. Please note that trajectory estimation is not supported by any other Bayesian-like filter, but rather is a raw output from location engine. A support of such filArticles

69


Journal of Automation, Mobile Robotics & Intelligent Systems

VOLUME 11,

N° 3

2017

1,0 0,9 Mean

CDF of location error

0,8

Median

0,7 0,6

Hellinger, no kernel

0,5 0,4 0,3 0,2 0,1 0,0

0

1

2

3

4

5

6

7

8

9

10

Error [m]

Fig. 10. Cumulative error probability for chosen methods

Fig. 9. Location errors for office-like scenario for different methods of location estimation. Bindings lines connect the location L with calculated estimate L̅. a) and b) are given as a baseline, c) and d) are worst results, e) and f) are best results. a) Single value calculation for mean value (section 9.1), b) Single value calculation for median value (section 9.1), c) Location estimated by Kagan divergence weighted sum for k=40th percentile of T ((18) with section 9.4, Method 2), d) Location estimated by Hellinger distance kernelled for k=90th percentile of T ((24)with section 9.4, Method 3, kernel k_2), e) Location estimated by Hellinger distance no kernelled ((24)with section 9.4, Method 1), f) Location estimated by Jeffrey divergence kernelled with k= μ(T) ((15)with section 9.4, Method 3, kernel k_1) Refer to Tab. 2 for numerical data ter would only increase quantitatively the quality of our results. In addition to presented test a cumulative distribution of location error was measured for this scenario. Fig. 10 refer to six selected examples of location estimation method (see Tab. 2 and Fig. 9). We achieve 80th percentile of below 2 m.

11. Related Work

70

Indoor navigation problem has recently been investigated with different contexts and principals of operation [26–30]. Despite large research attention, commercial indoor navigation solutions are still not very popular. Literature review state two reasons to support this fact [31–33], namely they are (1) Need of higher accuracy in comparison to outdoor solutions and (2) High cost of RF fingerprinting. Accuracy of the order that GPS provides for indoor scenarios: in a mall or in a train station can in fact mislead the user, as the location estimation error can cause pointing to a different store or platform. Unfortunately this problem is even more visible when we compare positioning accuracy in all three dimensions. In real conditions when device has been moved between ofArticles

fice floors most of available systems are not reliable in determining the right position. User has to move for a while to get the precise location. High cost of RF fingerprinting and a nessesity of repeating fingerprinting for building up-to-date map is another drawback of RF-based indoor location method. Even through RF fingerprints (signatures) are widely available in indoor environments they vary over time. Moreover the signatures are sensitive to high usage of APs, number of connected devices and even to human presence. A part from this in public places the infrastructure and is changing over time e.g.every shop is changing decoration every season. In the environments where global positioning system is not available, the most popular solutions are these based on training sets of signatures annotated with the ground truth (fingerprinting) [34–36]. They provide accurate results and in most cases they do not need any additional hardware. Latest proposed solution try to utilize already available wireless signals, mostly in form of received signal strength indicator – RSSI [32–37]. In this group of solutions that can be called a baseline, location accuracy is in a high correlation with fingerprinting density (e.g. PinLoc [38], Radar [34] and Horus [36]). This particular feature makes the fingerprinting process cost ineffective when higher accuracy is needed since the sample gathering process is manual, performed by a human operator. There are many elaborations proposing solutions to this problem, but most of them determine a set of locations that need more fingerprints. Another group of solutions is based on customised beacons placed in fixed positions that allow further optimisation for indoor localization algorithms. Those beacons make a use of vartiety of different wireless technologies e. g. RFID [39], Bluetooth [40], FM signal transmitters [41, 42], ultrasounds [43], infrared [44] and VLC [45–48]. Whilst in general they provide higher location accuracy, they demand additional infrastructure with further need of servicing that increases the overall cost of the system. The third group can be described as infrastructure-less or self-calibrating. In general those methods do not use any a priori known data about environment. In most cases, they do gather all of the used data directly from users. The biggest advantage of this group in comparison to previously mentioned systems is a low cost of deployment. Unfortunately they also provide the lowest accuracy. Recent elaboration intro-


Journal of Automation, Mobile Robotics & Intelligent Systems

ducing EZ [49] proposes a solution based on idea that location based on WiFi APs and RSSI can be improved by checking it with GPS on signal availability. Median accuracy achieved after such modification is between 2 and 7 m. Different approach to infrastructure-less localisation was introduced in [50, 51] where authors proposed a solution based on internal inertial sensors of mobile devices. Dead-reckoning accuracy in most cases suffers from the accumulated error from accelerometer [53]. To improve its performance modifications similar to [49] were tested [53, 54]. Slightly better performance was achieved by UnLoc [31] and other solutions [30, 55] that combine dead-reckoning approach with signature detection.

12. Conclusion

The goal of this research was threefold: First we wanted to speed-up a process of wireless Radio Map data gathering, reducing one of the main drawbacks of fingerprint-based location methods. Our approach of Radio Map data gathering uses capabilities of SLAM to correctly bind a metric location with WiFi radio strength signal. Thanks to such approach the output Radio Map is gathered automatically with correct binding of metric position and WiFi signal strength statistics. Our method outperforms classic approach of Radio Map data collection with respect to Radio Map density, location error, time needed for Radio Map creation and automatic generation of a ready-to-use Radio Map. Since the WiFi Radio Map is generated as the apparatus moves we have received up to 10 times faster Radio Map generation comparing with classic methods. This yields the usage of our approach in highly dynamic environments like trade fairs, shopping centres etc. The second goal was to propose novel method of location estimation based on previously prepared Radio Map. For the purpose of location estimation we proposed to use f-divergences (Kulback-Leiber, Jeffrey, Kagan and exponential divergence) and Hellinger distance together with nearest neighbour approach and 2 types of regression. It is legitimate to state that our method of Radio Map data gathering outperforms the classic, human assisted wireless Radio Map generation approach in sense of Radio Map creation speed and time and Radio Map density. Our method produces a Radio Map of density of 0.05 m (in comparison with approx. 2.5 m for classic approach) density with average speed of sample gathering of 0.2 s (approx. 2 s for classic approach). This result is a significant progress in WiFi surveying. Thanks to using multiple samples of RSSI the location process is immune to noise and abrupt RSSI changes caused by various inferences e.g. people passing by during sampling. This makes the process of building a Radio Map and then location estimation possible in non-laboratory conditions. This can be explained by the fact that we use stochastic methods for calculations thanks to which we assign small probability to events that occurs rarely in particular location dismissing their influence on further location estimation. The susceptibility to such events is a common issue for signal-strength based localization.

VOLUME 11,

N° 3

2017

Experimental results of location estimation error show also that proposed solution of using stochastic measures is superior to current solutions presented in the literature [56, 57] even though we do not use any additional source of information than WiFi RSSI. Our solution does not use any additional information to WiFi signal and still it outperforms new systems presented in literature. In space-like scenario we have achieved a result of circular error probability of 1,06 m for office and still show very good performance in 80th percentile of cumulative error probability equal to 2 m for office-like scenario.

13. Future Work

For future work we plan to introduce a method of estimating the quality of Radio Map built automatically so that our solution may be supplemented by autonomous robotic mobile platform that would gather the Radio Map automatically without human intervention.

ACKNOWLEDGEMENTS

The project has been financed by the National Science Center under Decision No. DEC-2012/07/N/ ST7/03470.

AUTHORS

Piotr Bigaj* – assistant professor at Industrial Research Institute for Automation and Measurements PIAP, Warsaw, Poland. E-mail: pbigaj@gmail.com Jakub Bartoszek – research specialist at Industrial Research Institute for Automation and Measurements PIAP, Warsaw, Poland. *Corresponding author

REFERENCES

[1] [2]

[3]

[4]

[5]

M. Honary, L. Mihaylova, C. Xydeas, „Practical Classification Methods for Indoor Positioning”, Open Transportation Journal, no. 6, 2012, 31–38. J. Biswas, M. Veloso, „WiFi localization, navigation for autonomous indoor mobile robots”. In: 2010 IEEE International Conference on Robotics, Automation – ICRA, 4379–4384. DOI: 10.1109/ ROBOT.2010.5509842. P. Kemppi et al., „Hybrid positioning system combining angle-based localization, pedestrian dead reckoning, map filtering”. In: IPIN– 2010 International Conference on Indoor Positioning, Indoor Navigation, 2010. DOI: 10.1109/ IPIN.2010.5646682. P. Mirowski et al., „KL-Divergence Kernel Regression for Non-Gaussian Fingerprint Based Localization”. In: International Conference on Indoor Positioning, Indoor Navigation, Guimaraes, Portugal, 2011. N. Le Dortz et al., „WiFi fingerprint indoor positioning system using probability distribution comparison”. In: 2012 IEEE International Conference on Acoustics, Speech, Signal Articles

71


Journal of Automation, Mobile Robotics & Intelligent Systems

[6] [7]

[8]

[9]

[10]

[11]

[12]

[13] [14] [15]

[16] [17] 72

Processing – ICASSP, 2301–2304. DOI: 10.1109/ ICASSP.2012.6288374. D. R. Brown, D. B. Dunn, „Classification schemes of positioning technologies for indoor navigation”. In: 2011 Proceedings of IEEE Southeastcon, 125–130. DOI: 10.1109/SECON.2011.5752919. V. Moghtadaiee, A. G. Dempster, „WiFi fingerprinting signal strength error modeling for short distances”. In: International Conference on Indoor Positioning, Indoor Navigation, 1–6, 2012, Sydney, Australia. DOI: 10.1109/ IPIN.2012.6418852. C. Beder et al., „Predicting the expected accuracy for finger-printing based WiFi localisation systems”. In: International Conference on Indoor Positioning, Indoor Navigation, 1–6, 2011, Guimaraes, Portugal. DOI: 10.1109/ IPIN.2011.6071939. Z. Hengzhou et al., „Indoor Location Service Based on Finger-printing, Distance Relative Attenuation Model”. In: 2014 Sixth International Conference on Measuring Technology, Mechatronics Automation ICMTMA, 341–344. DOI: 10.1109/ICMTMA.2014.84. C. Beder, M. Klepal, „Fingerprinting based localisation revisited: A rigorous approach for comparing RSSI measurements coping with missed access points, differing antenna attenuations”. In: International Conference on Indoor Positioning, Indoor Navigation, Sydney, Australia, 1–7, 2012. DOI: 10.1109/IPIN.2012.6418940. J. Ledlie, „Mole: A scalable, user-generated WiFi positioning engine”. In: International Conference on Indoor Positioning, Indoor Navigation, 1–10, 2011, Guimaraes, Portugal. DOI: 10.1109/ IPIN.2011.6071942. P. Bolliger, „Redpin –adaptive, zero-configuration indoor localization through user collaboration”. In: Proceedings of the first ACM international workshop on Mobile entity localization and tracking in GPS-less environments – MELT’08, 2008, 55–60. DOI: 10.1145/1410012.1410025. P. Mirowski et al., „Probability kernel regression for WiFi localisation”, Journal of Location Based Services, vol. 6, 2012, 81–100. DOI: 17489725.2012.694723. E. Khvedchenya, Feature descriptor comparison report. http://computer-vision-talks.com/ articles/2011-08-19-feature-descriptor-comparison-report/, 2011. Available on 07.08.2014 M. A. Fischler, „Random sample consensus: a paradigm for model fitting with applications to image analysis, automated cartography. Communications of the ACM, vol. 24, no. 6, 1981, 381–395. DOI: 10.1145/358669.358692. H. V. Poor, „Fine quantization in signal detection, estimation”, IEEE Transactions on Information Theory, vol. 34, no. 5, 1988, 960–972. DOI: 10.1109/18.21219. F. Liese, I. Vajda, „On Divergences, Informations in Statistics”, IEEE Transactions on Information Theory, vol. 52, no. 10, 2006, 4394–4412. DOI: 10.1109/TIT.2006.881731.

Articles

VOLUME 11,

N° 3

2017

[18] M. C. Pardo, I. Vajda, „On asymptotic properties of information-theoretic divergences”, IEEE Transactions on Information Theory, vol. 49, no. 7, 2003, 1860–1867. [19] D. L. Donoho, X. Huo, „Large-sample modulation classification using Hellinger representation”. In: First IEEE Signal Processing Workshop on Signal Processing Advances in Wireless Communications, 1997, 133–136. [20] J. R. Hershey, „Approximating the Kullback Leibler Divergence Between Gaussian Mixture Models”. In: IEEE International Conference on Acoustics, Speech, Signal Processing – ICASSP 2007, vol. 4, 2007, 317–320. DOI: 10.1109/ ICASSP.2007.366913. [21] C. Liu, H-Y. Shum, „Kullback-Leibler boosting”. In: Proceedings of 2003 IEEE Computer Society Conference on Computer Vision, Pattern Recognition, vol. 1, 2003, 587–594. [22] V. N. Murali, „Autonomous navigation, mapping using monocular low-resolution grayscale vision”. IN: IEEE Computer Society Conference on Computer Vision and Pattern Recognition Workshop, 2008. DOI: CVPRW.2008.4563136. [23] J. Svihlik, „Model Parameters Estimation Using Jeffrey Divergence”. In: 17th International Conference Radioelektronika, 2007. DOI: 10.1109/RADIOELEK.2007.371654. [24] F. Topsoe, „Some inequalities for information divergence, related measures of discrimination”, IEEE Transactions on Information Theory, vol. 46, no. 4, 2000, 1602–1609. DOI: 10.1109/18.850703. [25] A. Ferrante, „Hellinger Versus Kullback–Leibler Multivariable Spectrum Approximation”, IEEE Transactions on Automatic Control, vol. 53, no. 4, 2008, 954–967. DOI: 10.1109/TAC.2008.920238. [26] Z. Yang et al., „Mobility Increases Localizability: A Survey on Wireless Indoor Localization using Inertial Sensors”, ACM Comput. Surv., vol. 47, no. 3, 2015. DOI: 10.1145/2676430. [27] I. Constandache, R.R. Choudhury, I. Rhee, „Towards mobile phone localization without wardriving”. In: 2010 Proceedings IEEE INFOCOM. DOI: 10.1109/INFCOM.2010.5462058. [28] M. Alzantot , M. Youssef, „CrowdInside: automatic construction of indoor floorplans”. In: Proceedings of the 20th International Conference on Advances in Geographic Information Systems, 2012. DOI: 10.1145/2424321.2424335. [29] S. Ayub et al., „Indoor pedestrian displacement estimation using smartphone inertial sensors”, International Journal of Innovative Computing, Applications, vol. 4, no. 1, 2012, 35–42. [30] S. Hilsenbeck et al., „Graph-based data fusion of pedometer, WiFi measurements for mobile indoor positioning”. In: Proceedings of the 2014 ACM International Joint Conference on Pervasive, Ubiquitous Computing, 2014. [31] H. Wang et al., „No need to wardrive: unsupervised indoor localization”. In: Proceedings of the 10th international conference on Mobile systems, applications, services, 2012.


Journal of Automation, Mobile Robotics & Intelligent Systems

[32] Y. Chen et al., „FM-based indoor localization”. In: Proceedings of the 10th international conference on Mobile systems, applications, services, 2012. [33] C. Laoudias et al., „The Airplace Indoor Positioning Platform for Android Smartphone”. In: Proceedings of the 2012 IEEE 13th International Conference on Mobile Data Management, 2012, 312–315. DOI: 10.1109/MDM.2012.68. [34] P. Bahl, V. N. Padmanabhan, „RADAR: An InBuilding RF-based User Location, Tracking System”. In: Proceedings of INFOCOM, 2000. DOI: 10.1109/INFCOM.2000.832252. [35] A. Haeberlen et al., „Practical robust localization over large-scale 802.11 wireless networks”. In: Proceedings of the 10th annual international conference on Mobile computing and networking, 2004. DOI: 10.1145/1023720.1023728. [36] M. Youssef, A. Agrawala, „The horus WLAN location determination system”. In: Proceedings of the 3rd international conference on Mobile systems, applications and services, 2005. DOI: 10.1145/1067170.1067193. [37] A. Varshavsky et al., „Gsm indoor localization”, Pervasive Mob. Comput., vol. 3, no. 6, 2007, 698– 720. DOI: 10.1016/j.pmcj.2007.07.004. [38] S. Sen, B. Radunovic, R. R. Choudhury, T. Minka, „You are facing the Mona Lisa: spot localization using PHY layer information”. In: Proceedings of the 10th international conference on Mobile systems, applications, services, 2012. DOI: 10.1145/2307636.2307654. [39] L. M. Ni, Y. Liu, Y. C. Lau, A. P. Patil, „Landmarc: indoor location sensing using active RFID”, Wireless Networks, vol. 10, no. 6, 2004, 701–710. DOI: 10.1023/B:WINE.0000044029.06344.dd. [40] R. Bruno, F. Delmastro, Design, analysis of a bluetooth-based indoor localization system, Series: Personal Wireless Communications, Lecture Notes in Computer Science, 2003. [41] A. Matic, A. Popleteev, V. Osmani, O. MayoraIbarra, „FM radio for indoor localization with spontaneous recalibration”, Pervasive Mob. Comput., vol. 6, no. 6, 2010, 642–656. DOI: 10.1016/j.pmcj.2010.08.005. [42] S. Yoon, K. Lee , I. Rhee, „FM-based indoor localization via automatic fingerprint DB construction, matching”. In: Proceeding of the 11th annual international conference on mobile systems, applications, and services, 2013. DOI: 10.1145/2462456.2464445. [43] N. B. Priyantha, A. Chakraborty, H. Balakrishnan, „The cricket location-support system”. In: Proceedings of the 6th annual international conference on mobile computing and networking, 2000. DOI: 10.1145/345910.345917. [44] R. Want, A. Hopper, V. Falcão, J. Gibbons, „The active badge location system”, ACM Trans. Inf. Syst, vol. 10, 1992. DOI: 10.1145/128756.128759. [45] Z. Yang, Z. Wang, J. Zhang, C. Huang, Q. Zhang, „Wearables Can Afford: Light-weight Indoor Positioning with Visible Light”. In: Proceedings of the 13th annual international conference on

VOLUME 11,

[46]

[47] [48]

[49]

[50]

[51]

[52]

[53]

[54]

[55]

[56]

N° 3

2017

mobile systems, applications, and services, 2015. DOI: 10.1145/2742647.2742648. Y-S Kuo, P. Pannuto, K-J Hsiao, P. Dutta, „Luxapose: indoor positioning with mobile phones, visible light”. In: Proceedings of the 20th annual international conference on Mobile computing, and networking, 2014. DOI: 10.1145/2639108.2641747. L. Li, P. Hu, C. Peng, G. Shen, F. Zhao, „Epsilon: a visible light based positioning system”. In: Proceedings of the 11th USENIX Conference on Networked Systems Design, Implementation, 2014. G. B. Prince, T. D. Little, „A two phase hybrid RSS/AoA algorithm for indoor device localization using visible light”. In: 12th IEEE Global Communication Conference, 2012. DOI: 10.1109/ GLOCOM.2012.6503631. K. Chintalapudi, A. Iyer, V. Padmanabhan, „Indoor localization without the pain”. In: Proceedings of the sixteenth annual international conference on mobile computing, networking, 2010. DOI: 10.1145/1859995.1860016. O. Woodman, R. Harle, „Pedestrian localisation for indoor environments”. In: Proceedings of the 10th international conference on Ubiquitous computing – UbiComp’08, 2008. DOI: 10.1145/1409635.1409651. F. Li et al., „A reliable, accurate indoor localization method using phone inertial sensors”. In: Proceedings of the international conference on Ubiquitous computing – UbiComp’12, 2012. DOI: 10.1145/2370216.2370280. A. R. Jimenez, F. Seco, C. Prieto, J. Guevara, „A comparison of pedestrian dead-reckoning algorithms using a low-cost MEMS IMU”. In: Proceedings of IEEE International Symposium on Intelligent Signal Processing, 2009. DOI: 10.1109/ WISP.2009.5286542. M. Youssef et al., „Gac: Energy-efficient hybrid gps-accelerometer-compass gsm localization”. In: 2010 IEEE Global Telecommunications Conference GLOBECOM 2010. DOI: 10.1109/GLOCOM.2010.5684304. J. Liu et al., „Accelerometer assisted robust wireless signal positioning based on a hidden Markov model”. In: Proceedings of the IEEE/ ION Position Location, Navigation Symposium, 2009. DOI: 10.1109/PLANS.2010.5507251. A. W. S. Au et al., „Indoor Tracking, Navigation Using Received Signal Strength, Compressive Sensing on a Mobile Device”, IEEE Transactions on Mobile Computing, vol. 12, no. 10, 2013, 2050–2062. DOI: 10.1109/TMC.2012.175. L. Hongbo et al., „Accurate WiFi Based Localization for Smartphones Using Peer Assistance”, IEEE Transactions on Mobile Computing, vol. 13, no. 10, 2014, 2199– 2214.

Articles

73


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.