Journal of Robotics

Journal of Robotics / 2020 / Article

Research Article | Open Access

Volume 2020 |Article ID 8844979 | https://doi.org/10.1155/2020/8844979

Chunlei Luo, Yi He, Shitu Abubakar, "Solving Inverse Kinematics of the Shotcrete Manipulator Based on the Plane Two-Link Model and Trajectory Planning", Journal of Robotics, vol. 2020, Article ID 8844979, 12 pages, 2020. https://doi.org/10.1155/2020/8844979

Solving Inverse Kinematics of the Shotcrete Manipulator Based on the Plane Two-Link Model and Trajectory Planning

Academic Editor: Keigo Watanabe
Received28 May 2020
Revised04 Aug 2020
Accepted14 Aug 2020
Published01 Sep 2020

Abstract

Traditionally, the construction of tunnel support is to manually move the manipulator through the remote control. During the manual construction process, there is a large rebound rate and a reduction in the compactness of the concrete. Skilled operators can obtain better shot blasting quality, but training of a skilled worker is costly. In this study, an automatic shotcrete manipulator is proposed to complete spraying and improve the spraying quality. The model of the manipulator is simplified into a planar two-link manipulator, solved the inverse kinematics of the shotcrete manipulator, and implemented the automatic trajectory planning process. By simplifying the complex mechanical arm structure model into a simple planar two-link manipulator model, the inverse kinematics of the shotcrete manipulator is solved, and automatic trajectory planning software is developed, which can better help construction and reduce injury to personnel’s health and can also help the construction party save materials and improve economic efficiency and construction efficiency.

1. Introduction

Due to the large number of tunnel excavations and constructions in the construction of subways, high-speed rail, trains, and highways, the use of concrete wet spray machines is required to complete the tunnel support. The State Council of China had issued and implemented the “13th Five-Year Plan for the Development of Modern Comprehensive Transportation System” on February 3, 2017, see Table 1 for related indicators. The manual hand-held shotcrete or remote-controlled robotic arm shotcrete is commonly used in the current construction industry, and the quality (rebound rate and thickness) and efficiency of the construction depend on the technical ability of the workers. Often, manual construction will cause a large rebound rate. Thus, there is a lot of waste in the tunnel construction, which increases the construction cost [1]. The intensive labor resulted in workers’ fatigue, which cannot guarantee high construction efficiency. In addition, workers who work in dusty environments for a long time (see Figure 1) are prone to occupational hazards [2].


Operating mileage2015 (year)2020 (year)Increase

Railway operating mileage (10,000 km)12.1152.9
High-speed railway operating mileage (10,000 km)1.931.1
Highway operating mileage (10,000 km)45850042
Expressway operating mileage (10,000 km)12.4152.6
Operating mileage of urban rail transit (km)330060002700

Many algorithms have been proposed for the automatic control of industrial robotic arms, involving inverse kinematics, trajectory planning, motion planning, force control, and so on. Some general 6-degree-of-freedom inverse kinematics can solve the inverse solutions of some robotic arms that meet the Pieper principle [3]. Because inverse kinematics requires tedious matrix calculation processes and clever operation skills, a symbolic inverse kinematics solver is proposed [4]. For situations where formula methods cannot be used to solve inverse kinematics, numerical methods can be used [5]. Different trajectory planning methods are proposed to enable the robotic arm to produce continuous motion with excellent kinematic performance [68]. However, for the automatic control of the shotcrete manipulator, other aspects need to be considered.

Many researchers have studied the remote operation mode of the shotcrete manipulator, data acquisition during shotcrete, simulators, etc. These studies can help workers perform shotcrete [911]. Different methods have been proposed to automate the shotcrete process [1214]. Girmscheid and Moser demonstrated fully automatic shotcrete robot (Meyco). The manipulator has 8 degrees of freedom. Due to the complex mechanical structure of the shotcrete manipulator, a closed solution cannot be obtained. Therefore, it can only be solved iteratively. In this study, they set up three different modes for the shotcrete manipulator to adapt to different tunnel surface environments after blasting, including the manual mode, semiautomatic mode, and fully automatic mode. The blasting area is divided differently, and mobile spraying is performed at different speeds to ensure the designed thickness. Nabulsi et al. [13] also studied Putzmeister PM-407. This manipulator has 5 degrees of freedom. It uses incoupling and iterative techniques to solve inverse kinematics. When normal vectors cannot be extracted correctly, the surface of the design tunnel is used directly to calculate the normal vector. In such studies, a large number of matrix operations are used to solve inverse kinematics, and only numerical solutions can be provided.

The objective of this research is to model and develop an analytical solution of the shotcrete trolley of Henan Gengli Engineering Equipment Company. The manipulator has 7 degrees of freedom. By reducing the complex structure model of the robot arm to a simple planar two-link manipulator model, the inverse kinematics can be solved based on the analytical solution. Based on this, the motion trajectory of shotcrete was planned, and the control platform was developed. The structure of this paper is as follows. Section 2 studies the inverse kinematics of shotcrete manipulators in combination with shotcrete motion and presents theoretical relationships. Section 3 explains how to perform effective trajectory planning and analyzes the sudden changes in joint angles in motion. Section 4 develops a robot control platform based on the derived inverse kinematics formula and trajectory planning and verifies the correctness of the analytical solution and the rationality of trajectory planning. Section 5 presents the conclusions.

2. Inverse Kinematics

The shotcrete manipulator depicted in Figure 2 has 8 degrees of freedom, and the end nozzle has one degree of freedom designed for the craft, and the movement mode is to rotate around the axis to ensure the uniformity of shotcrete. This degree of freedom is not in the control system of the manipulator. Also, there are two moving joints in the same direction. Since these two moving joints control the displacement in the same direction, they are regarded as one moving joint in the inverse kinematics model. In order to reduce the rebound of the concrete as much as possible and improve the uniformity and compactness of the shotcrete, it is necessary to keep the nozzle and the sprayed surface vertical and, at the same time, keep the nozzle and the sprayed surface at a distance of 1.5 to 2 meters [15]. The principle of the structural design of the shotcrete manipulator is to facilitate the operation of the worker, and the automatic control of the manipulator is not considered. Thus, the inverse kinematics of the shotcrete manipulator may not meet the design principles of the industrial manipulator. For example, the axes of the last three joints intersect at a point so that the inverse kinematics of the shotcrete robotic arm has a closed solution. Although the axis of the shotcrete robot that we studied meets the intersection of the axes of the last three joints, it introduces redundant degrees of freedom when controlling the position of the nozzle.

2.1. Kinematics Model of the Shotcrete Manipulator

The Denavit and Hartenberg (D-H) modeling method was used to construct the coordinate system of the shotcrete manipulator as shown in Figure 3, the D-H parameters are given in Table 2, and the added nozzle coordinate system describes the target position and the sprayed surface angular relationship and distance. The two moving joints are merged into one joint and described by coordinate system 4.


Joint no. (°) () () (°)Angle limit ()

1000−180∼180
290000∼70
30−20∼110
4−90000∼4600
5000−180∼180
69000−120∼120
700

The initial values are  = 0,  = 1.5500,  = 88.4500,  = 3406.0,  = −90, and  = 0. The constant values are  = 3272.0,  = 452.5,  = 442.0, and  = 398.1.
2.2. Inverse Kinematics Solution

In the inverse kinematics solution, the coordinate system e of the nozzle is not considered, which simplifies the solution process. Forward kinematics can be described aswhere

The vector P is a 3 × 1 position vector, R is a 3 × 3 rotation matrix, and the first, second, and third columns are orthogonal vectors to each other. According to the structure of the manipulator, it is known that the front 4 joints determine the end position, but due to the redundant degrees of freedom, there are 3 known parameters here, and 3 equations can be established, but there are four unknowns, which are not directly solved according to the formula. The 1 to 4 numbers of joint will be solved by shotcrete trajectory analysis combined with geometric methods, and joint 5 and joint 6 will be solved by separating the variables using equation (1).

The 1 to 4 numbers of the joint of the manipulator (joint 1, joint 2, joint 3, and joint 4) are described as seen in Figure 4. The offset value of joint 3 is ignored here so that joint 2 and joint 3 can be described as a two-link model. The purpose is to be able to analyze the problem more conveniently. By solving the joint angle value using () under this model, the joint angle value can also be solved in the original coordinate system model. Joint 1 shown in Figure 4 also includes joint 2 at the same time. In order to clearly describe the effect of joints on angle, joint 2 is not expressed, and the same is true in b in Figure 4. The rotation of joint angle 1 can determine the direction of the robot arm, so joint angle 1 can be obtained by the value of the nozzle in the X-Y plane:

Separating variables to obtain equation (4)where and .

Let (2, 1) and (2, 2) elements on both sides of equation (4) be equal.

Equations (5) and (6) are squared and added, respectively, and can be solved:

By dividing equations (5) and (6), can be solved:

When computing , .

The four joint variables determine the position of the tip nozzle and their functional relationship is:

Detailed description of their specific relationship is given through the following formulas:

As explained earlier, only three joint angles are required to determine the position of the end nozzle. There are four joint angles, and redundant degrees of freedom are introduced. The following is an analysis of the motion trajectory of the shotcrete manipulator to add constraints so that the equation can be solved. There are formulas for calculating joint angle 2 and joint angle 3 without adding constraints; however, they cannot really calculate the joint value:where and . cannot be equal to −90 degree and 90 degree. Solving the joint 2 angle value is based on the geometric method (see Figure 5):where . .

The moving area of the spray nozzle at the end of the shotcrete manipulator is divided into four pieces (see Figure 6). Due to the limitation of the mechanical structure of the manipulator and the range of motion of the joint, area3 and area4 are areas that the robotic arm cannot reach. When moving joint 4 is completely retracted, is 0. Area2 represents the maximum range that the two links can move when equals to zero. When the nozzle moves in area2, this mode is called mode 1; if we change d4, making it more than the zero distance, the manipulator can reach farther area, and when joint 4 moves to another limit position, equals to the maximum distance. Therefore, area1 implies the movement range of two links when is greater than zero and less than the maximum distance. When the nozzle moves in area1, this mode is called mode 2. There are five movement statuses; statuses 1, 2, and 5 lie in area1, and all of them mean that is greater than zero; statuses 3 and 4 lie in area2; both of them also mean that is equal to zero. If the nozzle moves to area2, then and can be solved. If the nozzle moves to area1, the nozzle moves from one position to another. The two appropriate ways to solve the problem are changing the value of joint 2 and joint 3 simultaneously and changing the value of joint 3 and joint 4 simultaneously like CCD algorithm ideas [16]. When the shotcrete manipulator sprays the concrete in the tunnel, the manipulator will move to the back joints as fast as possible to complete spraying because the manipulator has a large amount of inertia. When the mode is changed from mode 1 to mode 2, then is set to zero mile. However, when the mode is changed from mode 2 to mode 1, will be computed according to the position of joint 3 and the desire position:where ,, and are the position components (x, y, z) of the target point and , , and are the position components (x, y, z) of coordinate 3 ( = 0).

2.3. Kinematic Model considering Offset

In the aforementioned simplified kinematics model, we ignored the offset value between joint 3 and joint 4. The position value of the end point is different from the actual end point position . Now, considering the offset value (see Figure 7), the formula can be used to calculate the virtual position from the actual expected position . So, the inverse kinematics formula derived above can describe the actual joint angle value:

Then, we can compute the virtual desire position (  = 0) using the real desire position:where is the real desire position and is the virtual desire position.

3. Trajectory Planning

To improve the performance of the manual operation of the shotcrete manipulator, reasonable trajectory planning of the spraying robotic arm is required. The nozzle needs to maintain a distance of 1.5–2 m from the sprayed surface, and the nozzle needs to be vertical to the sprayed surface. Therefore, the end nozzle needs to control position and attitude parameters to represent its spatial pose. For the position parameters, it needs to control 3 parameters (x, y, z), and the attitude parameters need to control 2 parameters (roll and yaw) (see Figure 8). These parameters are specified relative to the base coordinate system. After blasting, the tunnel surface would have been overexcavated and underexcavated as depicted in Figure 9. The overexcavation part requires more concrete construction than the blasted surface, and the underexcavation part needs further processing to enable shotcrete. In normal blasting, the area is sprayed once during the spraying process (from the tunnel side to the other side). During the spraying process, a thick construction can be completed, and the overdigged part is filled. Also, several shots of this area need to be shot back and forth.

3.1. Trajectory Generation

Tunnel models of various sizes were not considered in this research because environmental sensing such as Lidar is not incorporated. It is assumed that the geometric model of the tunnel is a semicircle, and the real blasted surface is not considered when trajectory planning is performed. The attitude of the nozzle is calculated by a mathematical model. In general, the trajectory of the nozzle is rectangular, and this geometry is used in the present study. By manually adjusting the shotcrete manipulator to specify the initial position and the distance between the tunnel trajectories, path length, and tunnel geometry, automatic trajectory planning program can generate a complete shot trajectory (see Figure 10(b)). Figure 10(a) specifically shows the detail in trajectory planning. This trajectory is only a schematic diagram, where d is along the arc direction described in the actual trajectory planning.

3.2. Problems in Shotcrete Manipulator Movement

During the inverse kinematics solution, the movement of some joints is restricted, and artificially added constraints may cause joint values to jump during the movement (see Figure 11). The shotcrete manipulator in Figure 11(a) is working in mode 1. State 0 indicates that joint angle 3 has reached the limit of positive values. When the shotcrete manipulator continues to move upward, the positive value of joint angle 3 is exceeded. If the shotcrete manipulator cannot meet state 1, it will jump to state 2 and cause the joint values of 2 and 3 to change suddenly. The shotcrete manipulator in Figure 11(b) works in mode 2. State 3 indicates joint 3 has reached the limit of positive values. If the shotcrete manipulator continues to move, the values of joints 2 and 3 will also change suddenly. Because in the shot trajectory planning, linear motion is used, this mode is also one of the reasons that causes the joint value to jump. We propose a solution. When joint angle 3 of the shotcrete manipulator approaches the extreme position, it does not move in the area’s motion mode or a straight line but changes the motion mode or moves in an arc path or combines the two (see Figure 12); this can prevent the angular value of joint 2 and joint 3 from jumping.

4. Trajectory Planning Simulation

4.1. Verification of Inverse Kinematics

The inverse kinematics solution calculates the current joint angle value based on the previous joint angle vector value and the current motion mode. As it can be seen from Table 3, when the shotcrete robot moves in mode 1, the value of joint 4 is constant, and the movement of joints 2 and 3 and joint 1 enables the tip nozzle to reach the desired position. From Table 4, it can be seen that when the shotcrete manipulator moves in mode 2, the value of joint 2 is constant. The movement of joints 3 and 4 and joint 1 enables the tip nozzle to reach the desired position. From Table 5, we can see that the changes of the joint angle are continuous when switching between mode 1 and mode 2. Therefore, it is verified that the inverse kinematics solution combined with trajectory planning is correct.


Solution no.

 10.0800180.456693−0.2279123.4060000.7576251.029767
 20.0798280.456685−0.2293163.4060000.7583061.030003
 30.0796380.456667−0.2307033.4060000.7589871.030239
 40.0794480.456642−0.2320743.4060000.7596681.030475
 50.0792580.456607−0.2334303.4060000.7603491.030712
 60.0790680.456566−0.2347693.4060000.7610291.030949
 70.0788790.456516−0.2360943.4060000.7617101.031188
 80.0786890.456458−0.2374033.4060000.7623901.031426

Pose no.

 16.1577670.9477362.294252−0.773213−0.1508692.833495
 26.1590440.9466542.289542−0.773320−0.1522632.833642
 36.1603220.9455722.284829−0.773430−0.1536492.833789
 46.1615990.9444912.280118−0.773545−0.1550282.833936
 56.1628780.9434092.275403−0.773662−0.1564002.834083
 66.1641550.9423272.270694−0.773784−0.1577642.834230
 76.1654320.9412442.265984−0.773910−0.1591202.834378
 86.1667110.9401632.261270−0.774039−0.1604702.834526


Solution no.

 10.0052810.046679−0.0318883.4404531.0284331.200126
 20.0051190.046679−0.0332653.4415851.0290131.200762
 30.0049570.046679−0.0346383.4427231.0295921.201399
 40.0047940.046679−0.0360113.4438691.0301711.202038
 50.0046320.046680−0.0373823.4450211.0307491.202678
 60.0044700.046682−0.0387553.4461791.0313271.203319
 70.0043080.046683−0.0401283.4473451.0319051.203963
 80.0041460.046682−0.0414983.4485171.0324821.204607

Pose no.

 16.7007040.4878960.291913−0.999891−0.3009592.949828
 26.7019810.4868140.287199−1.000311−0.3018862.950126
 36.7032590.4857320.282486−1.000733−0.3028102.950425
 46.7045360.4846500.277768−1.001155−0.3037332.950724
 56.7058130.4835680.273064−1.001579−0.3046502.951024
 66.7070910.4824860.268356−1.002004−0.3055662.951324
 76.7083680.4814040.263644−1.002430−0.3064812.951625
 86.7096460.4803220.258920−1.002857−0.3073942.951926


Solution no.

 10.0944660.541054−0.2839323.4886240.7060871.013583
 20.0942710.541054−0.2853173.4884750.7067801.013781
 30.0940760.3927740.0002743.4060000.7074731.013979
 40.0938800.399768−0.0148363.4060000.7081661.014177
 50.0110030.058919−0.0072613.4060001.0079311.178817
 60.0108380.0466790.0153293.4060001.0085221.179401
 70.0106740.0466780.0139283.4069001.0091131.179987
 80.0105090.0466810.0125233.4078081.0097041.180574

Pose no.

 16.0619551.0288852.647606−0.736393−0.1162842.818948
 26.0632321.0278032.642895−0.736463−0.1176892.819082
 36.0645071.0267212.638190−0.7924890.0078692.822333
 46.0657861.0256392.633476−0.7898170.0003192.822551
 56.6559900.5257650.456821−0.983323−0.2785222.938954
 66.6572690.5246830.452097−0.986286−0.2680432.939934
 76.6585460.5236010.447382−0.986667−0.2690502.940218
 86.6598230.5225190.442673−0.987049−0.2700552.940503

A linear motion path containing two motion modes and conversion between modes is selected to verify the proposed inverse kinematics algorithm. Tables 35 only provide part of the data on the path to illustrate the correctness of the inverse kinematics algorithm. Solution no. means the calculated joint angle, and pose no. represents the corresponding end point pose.Where step = 0.005 m, the initial position of the movement is

The end position is

4.2. Results of Automatic Trajectory Generation

Based on the correct inverse kinematics algorithm and trajectory planning algorithm, we use OpenGL and Qt to develop host computer control software for controlling the shotcrete manipulator (see Figure 13). Simulation is included in control software to verify the correctness of the trajectory. If the parameters set are not reasonable, the parameters can be adjusted to regenerate the trajectory. Control software can monitor the motion status of the shotcrete manipulator in real time displaying the real shotcrete manipulator movement in the simulation graphical interface. Control software provides a friendly human-machine interaction interface that is simple and convenient to operate. The design principle of the control system does not change the original-spraying robot arm as much. Additional motion controller communicates with the original motion controller to achieve the motion control of the shotcrete manipulator.

By setting reasonable set of parameters, control software generates a set of executable trajectories, and simulations in software show this process (see Figure 14).

5. Conclusions

A simple and effective inverse kinematics calculation method was proposed. Based on this inverse kinematics, trajectory planning of the shotcrete manipulator was realized. The two-link manipulator model is used to solve the inverse kinematics of the 6-degree-of-freedom shotcrete manipulator. The process is simple and efficient, does not require a large number of matrix operations, and can easily be obtained.

A combination of the motion trajectory shotcrete manipulator and its control principles is presented. Therefore, reasonable constraints enable the inverse kinematics of the robotic arm to be solved. In the simplified geometry model, it is described that, by giving some initial parameters, spraying trajectory can be automatically generated. Based on the inverse kinematics solution and automatic trajectory generation proposed, manipulator control software was developed using OpenGL and QT, which provides a friendly human-computer interaction interface.

In this study, a simple geometry tunnel model is used. In the future, the real tunnel model will be obtained by sensing the environmental information with Lidar. At the same time, the normal vector of the tunnel section after blasting can be calculated to give the attitude of the tip nozzle, which can be more perpendicular to the sprayed surface to a large extent, ensuring a smaller rebound rate and better compaction.

Data Availability

The data used to support the findings of this study are included within the article.

Conflicts of Interest

The authors declare that there are no conflicts of interest regarding the publication of this paper.

Acknowledgments

The authors thank Sha Hao and Song FeiFei for their help in writing the article and colleague Wang Hu for his help in the work. This research was supported by the Changsha Important Science and Technology Specific Projects (grant no. kq1703022).

References

  1. J. Höfler, J. Schlumpf, and M. Jahn, “Sika sprayed concrete handbook,” in Chapter 19: “Sprayed Concrete Applications”, Zürich and Aichtal, Putzmeister, Aichtal, Germany, 2011. View at: Google Scholar
  2. R. M. Kessel, R. Mauermayer, and G. J. Praml, “Changes in lung function after working with the shotcrete lining method under compressed air conditions,” Occupational and Environmental Medicine, vol. 46, no. 2, pp. 128–132, 1989. View at: Publisher Site | Google Scholar
  3. D. Redl and J. F. Canny, “Efficient inverse kinematics for general 6R manipulators,” IEEE Transactions on Robotics and Automation, vol. 10, no. 5, pp. 648–657, 1994. View at: Publisher Site | Google Scholar
  4. D. Zhang and H. Blake, “IKBT: solving closed-form inverse kinematics with behavior tree,” Journal of Artificial Intelligence Research, vol. 65, pp. 457–486, 2019. View at: Publisher Site | Google Scholar
  5. S. R. Buss, “Introduction to inverse kinematics with jacobian transpose, pseudoinverse and damped least squares methods,” IEEE Journal of Robotics and Automation, vol. 17, no. 16, pp. 1–19, 2004. View at: Google Scholar
  6. L. Biagiotti and C. Melchiorri, “Trajectory planning,” in Trajectory Planning for Automatic Machines and Robots , Springer Science & Business Media, Berlin, Germany, 2008. View at: Publisher Site | Google Scholar
  7. R. L. Williams, “Simplified robotics joint-space trajectory generation with a via point using a single polynomial,” Journal of Robotics, vol. 2013, Article ID 735958, 6 pages, 2013. View at: Publisher Site | Google Scholar
  8. S. Macfarlane and A. C. Elizabeth, “Jerk-bounded manipulator trajectory planning: design for real-time applications,” IEEE Transactions on Robotics and Automation, vol. 19, no. 1, pp. 42–52, 2003. View at: Publisher Site | Google Scholar
  9. C. E. Mower, W. Merkt, A. Davies, and S. Vijayakumar, “Comparing alternate modes of teleoperation for constrained tasks,” in Proceedings of the IEEE 15th International Conference on Automation Science and Engineering (CASE), Vancouver, Canada, August 2019. View at: Publisher Site | Google Scholar
  10. Á. Rodríguez and O. Río, Analysis of Real Time Technical Data Obtained while Shotcreting: An Approach towards Automation, Spanish National Research Council, Madrid, Spain, 2010.
  11. J. Estévez, A. Suescun, G. Velez, and F. Ordás, “Development of a shotcrete training simulator for civil works,” International Journal of Robotic Engineering, vol. 4, no. 1, 2019. View at: Publisher Site | Google Scholar
  12. G. Girmscheid and S. Moser, “Fully automated shotcrete robot for rock support,” Computer-Aided Civil and Infrastructure Engineering, vol. 16, no. 3, pp. 200–215, 2001. View at: Publisher Site | Google Scholar
  13. S. Nabulsi, A. Rodriguez, and O. Rio, “Robotic machine for high-quality shotcretingprocess,” in Proceedings of the ISR 2010 (41st International Symposium on Robotics) and ROBOTIK 2010 (6th German Conference on Robotics), Munich, Germany, June 2010. View at: Google Scholar
  14. M. Honegger, G. Schweitzer, O. Tschumi, and F. Amberg, “Vision supported operation of a concrete spraying robot for tunnelingwork,” in Proceedings of the Fourth Annual Conference on Mechatronics and Machine Vision in Practice, Toowoomba, Australia, September 1997. View at: Publisher Site | Google Scholar
  15. L. Uotinen and J. Suikkanen, “8th sprayed concrete web-proceedings,” in Proceedings of the Eight International Symposium on Sprayed Concrete-Modern Use of Wet Mix Sprayed Concrete for Underground Support, Trondheim, Norway, June 2018. View at: Google Scholar
  16. A. Martín, A. Barrientos, and J. Del Cerro, “The natural-CCD algorithm, a novel method to solve the inverse kinematics of hyper-redundant and soft robots,” Soft Robotics, vol. 5, no. 3, pp. 242–257, 2018. View at: Publisher Site | Google Scholar

Copyright © 2020 Chunlei Luo et al. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.


More related articles

 PDF Download Citation Citation
 Download other formatsMore
 Order printed copiesOrder
Views906
Downloads638
Citations

Related articles

Article of the Year Award: Outstanding research contributions of 2020, as selected by our Chief Editors. Read the winning articles.