Complexity Issues in Robot Motion Planning icon

Complexity Issues in Robot Motion Planning


Similar
Positioning complexity theory within planning theory and practice...
Biomimetic robot II: Hydrodynamics and mechanics of swimming and design of swimming robot...
Financial issues, about accommodation, employment, health and welfare...
Applications of gis and Operations Research Logistics Planning Methods for Arkansas Rural...
Global Issues: Integrating global issues into language teaching...
Part V of the Planning and Development Act 2000 as amended by the Planning and Development...
International conference «issues of multiculturalism and multilingualism in modern education...
Complexity of Children’s Nursing Care...
Complexity Science and Health Care Management...
Adaptive and generative learning: implications from complexity theories....
Iii. Computational Complexity of Mechanical Devices and their Movement Problems...
Lab 5: Brownian Motion...



Загрузка...
скачать

Complexity Issues in Robot Motion Planning








Elif Tosun




MTH 353

Final Paper




May 4, 2001


1 Introduction

Robotics is a broad domain of research. This paper will cover only a small portion of this domain, namely Robot Motion Planning. Robots are mechanical devices equipped with actuators and sensors under the control of a computing system. They perform tasks by executing motions in space that is populated by various objects. Motion planning is aimed at providing robots with the capability of deciding automatically which motions to execute in order to achieve their tasks without colliding with other objects in the workspace. Some economic considerations mandate the use of a cost function on robot’s motion such as the time duration or the amount of energy required. Furthermore, it’s important to take into account physical limitations of the robot such as friction with surface. There has been a great deal of work by algorithm developers and computational geometers in finding lower bounds on the complexity of motion planning problems. This paper will summarize the main complexity results in several fields of motion planning.

1.1 Motivation

The reason that there is so much research in motion planning is based greatly on technological advances of our time. Motion planning problem is directly related to many robot applications and in general programming complex automatic systems. Today, many manufacturers choose to use robots in their factories to decrease the cost of production. Robots started taking the place of doctors in several fields of medical surgery namely the ones that require perfect precision such as brain surgeries. However, the applications of robot motion planning are not limited with the ones directly related to robotics. Motion planning can be used in molecular biology to model the motions of molecules, especially protein folding which is a current open problem. In computer graphics motion planning is one of the key concepts in creating virtual environments and allowing characters navigate through such environments. Some specific questions in motion planning apply to vehicle, aircraft and spacecraft navigations. Although there are many more applications to motion planning the ones listed above are the most important ones. For more information on the applications and motivations behind studying motion planning the reader is referred to the sources listed in bibliography.

^ 1.2 Preliminaries and Definitions

In this section some definitions are listed in order to help the reader understand the terminology used in the following sections.

A robot is a mechanical system consisting of one or more rigid bodies possibly connected by various joints and hinges. The physical space, also known as the workspace, is the environment (2D or 3D) in which the robot moves. Configuration of a robot is the specification of the position of every point in the robot relative to a fixed frame of reference. The configuration space of a robot is the space C of all configurations of a robot. Free space is the configuration space C minus the space occupied by obstacles.

Degrees of freedom, also known as DOF, is the number of real parameters that define the space occupied by the robot at a given instant. It can also be defined as the number of dimensions along which the robot can move itself or some part of itself. For example, free objects in three dimensions have six degrees of freedom, three for position and three for orientation. A path from an initial configuration to a final configuration is a continuous map in C. Finally, the basic motion planning problem is to compute a path in free space between two input configurations, the initial configuration and the final

configuration. More terminology specific to some problems will be introduced in the relevant sections.

1.3 Overview

In section 2, generalized motion planning problem will be introduced with the results in complexity. In sections 3 through 6 some specific questions in motion planning such as shortest path, dynamic motion planning, motion planning with uncertainty, and motion planning with manipulation will be stated and explained. In section 7 some approximation methods will be introduced followed by section 8 with some general concluding points and open questions.

^

2 Basic Motion Planning


2.1 Generalized Mover’s Problem


The generalized mover’s problem is to plan a collision-free motion of a robot with an arbitrary number of degrees of freedom to a goal position in 2-D or 3-D space avoiding a set of obstacles stationary in space. This was the first problem examined from an algorithmic point of view and it has been studied extensively under different names such as “FIND-PATH”, “furniture mover’s problem”, “piano mover’s problem” by many researchers. The complexity of this problem depends heavily on the specifics of the input, which brings up several sub-questions.

In the 3D version the robot is described as a set of linked polyhedra, and the obstacles are polyhedra fixed in 3-space. In 1979, Reif showed that the generalized 3-D mover’s problem is PSPACE-hard when the robot has n links. The proof uses the robot’s degrees of freedom to encode the configurations of the robot to be simulated with a polynomial space bounded Turing Machine. However, if the robot has only a constant number of degrees of freedom then the problem is solvable in polynomial time provided that the geometric constraints on the motion can be stated algebraically as shown by Schwartz and Sharir in 1983. A year later Hopcroft, Schwartz, and Sharir showed that the PSPACE-hardness lower bound results also hold true for the 2-D version of the general mover’s problem.

There are two complete general motion planning algorithms that propose solutions to the preceding problems. The older one is due to Schwartz and Sharir and it takes doubly exponential time. Their method partitions an n-dimensional space into cells whose connectivity can easily be determined. The best complete algorithm known for the general motion planning problem is due to Canny which takes singly exponential time.

His algorithm is based on a roadmap, which generates a 1-D subset of the possible motions of the robot.

^ 2.2 Robot Arm Motion Planning

A different version of this problem comes up in the motion planning of a robot arm. Although these problems seem different from a perspective of configuration space they are identical. For example, deciding whether a planar arm with links in some initial configuration can be moved so that a certain joint reaches a given point in the plane in the absence of obstacles is PSPACE-hard. On the other hand, motion planning of a planar arm within an empty circle is in P. Another planar robot arm motion planning problem is the following: Consider a planar arm consisting of arbitrarily many links serially connected by revolute joints such that all the links are constrained to move in the plane.

Planning a free path for such an arm among a finite number of polygonal obstacles between two given configurations is also proved to be PSPACE-hard.

^ 2.3 Multiple Robots

Another extension of the general problem is the case with multiple robots or multiple robot arms. In this case each robot (or arm) is a potential obstacle to the other. A method to deal with multiple robots is to treat them as a single but multi-bodied robot so that planning a path for all robots would be equivalent to planning a path in the cross product of their configuration spaces. For example planning a path in the configuration space of a multi bodied robot consisting of all rectangles (or planning a path for several rectangular robots) is PSPACE-hard.

The motion planning problem of a robot with multiple arms in a 3-D polyhedral environment is also proved to be PSPACE-hard.

^

3 Optimal Motion Planning


The preceding section only described results for determining the existence of a collision free motion between two configurations. However, optimality is a very important consideration in practice. Only two types of optimality will be discussed in this paper although there are many more in which extensive research has been done.

^ 3.1 Minimal-Time Trajectory Planning

It’s important to maximize the efficiency of a robot’s motions under the function of time. In the future robots are expected to take on more tasks in manufacturing and manual labor so it’s crucial to minimize time for the most efficient use of high cost robots.

One approach to finding a minimal time trajectory is to plan a geometric free path and then iteratively deform it to reduce travel time. However, no bound has been established on the running time of this approach or the correctness of the output. Although currently there are no correct algorithms for this planning, in theory such a computation was proved to be NP-hard for a point robot under Newtonian mechanics in 3-space.

^ 3.2 Shortest Path Motion Planning

Shortest path motion planning is of interest because it’s the simplest instance of a minimum cost motion planning problem where the cost is simply the length of the path according to some metric that is not necessarily Euclidian.

In the planar case, the problem can be solved with an efficient algorithm that runs in O(nlogn) time for Euclidian, L1 or L metric. However the problem in 3-D is much more difficult. One of the difficulties of dealing with shortest paths in 3D is that although shortest paths are sequences of line segments that start and end on obstacle edges, they don’t necessarily pass through obstacle vertices. Furthermore, the length of the minimal length path as well as the coordinates, which it passes through, may not be rational numbers. Although there is a polynomial-time algorithm for finding the shortest path on the surface of a convex polyhedron between two points, it can only be used only when the robot can walk over the obstacles in 3-space. In general, finding the single source - single destination shortest path is an NP-hard problem in 3D. The motion planning problem of finding the shortest path between two points in 3-dimensional space with polyhedral obstacles ( not necessarily convex ) is known to be PSPACE-hard. And there exist doubly exponential (Sharir and Schorr, 1984) and singly exponential algorithms (Reif and Storer, 1994) that suggest a solution to this problem. It’s proved by Canny and Reif by reduction from 3SAT that determining even the sequence of edges in the environment that are touched by the shortest path is NP-hard. However, there also exist a fully polynomial algorithm proposed by Papadimitriou in 1985 for computing an approximate rational shortest path.

^

4 Dynamic Motion Planning


Dynamic motion planning is an important class of problems in motion planning because of its applications in robotic collision avoidance, car collision avoidance, aircraft collision avoidance and spacecraft navigation. In this paper, it is explored in two main subsections dealing with the general problem and a more specific case of it, called the asteroid avoidance problem.

^ 4.1 General Dynamic Motion Planning

The general dynamic motion planning problem is to plan a collision-free motion of a robot which is free to move within some 2-D or 3-D space S, containing several obstacles which move in S along known trajectories independent of the motion of the robot. The obstacles are allowed to rotate. As stated in the general problem if there are no constraints on the motion of the robot and if the trajectories of the obstacles can be described algebraically in space and time then the problem is solvable in polynomial time in 2D. However, when the problem is moved to 3-D the complexity changes drastically and the problem becomes intractable. By using time-related configuration changes to encode Turing Machine states, it’s proven that the problem in 3D is PSPACE-hard even for systems with small and fixed number of degrees of freedom when the robot is given a

velocity bound. When the robot has no constraints in velocity then the problem is

NP-hard.

^ 4.2 Asteroid Avoidance

An asteroid avoidance problem is the dynamic motion planning problem where each of the obstacles is a polygon (or a polyhedron in 3D) with a fixed translational velocity and the robot is a convex polygon (or a polyhedron) which may make arbitrary translational movements but with a bounded velocity. Neither the robot nor the obstacles may rotate. This problem is named after a well-known video game called ASTEROID where a spacecraft of limited velocity must be maneuvered to avoid moving asteroids. In 2D there are two significant results: The motion planning for a point in the plane with velocity bounds in NP–hard even when the moving obstacles are convex polygons moving with constant linear velocity without rotation. However, if the robot is polygon instead of a point and if there are a constant number of obstacles then the problem is can be solved in polynomial time. On the other hand in 3D, asteroid avoidance problem becomes PSPACE hard if the robot is a convex polygon and if there are arbitrarily many polygonal obstacles that are translating. Advances in the asteroid avoidance problem bring up the question of optimality. A common optimality criterion is time, which leads to the problem of minimum-time asteroid avoidance: Planning a collision free movement of a robot, which will take it from an initial configuration to a final one in the shortest possible. In this problem the robot is allowed to contact but not penetrate into any of the obstacles. The results of this problem can be summarized as follows: In 1-D, it can be solved in O(nlogn) time, in 2-D the problem can be solved in O(n2(k+2)k) time and in time 2n^(O(1)) in the 3-D case, where n is the total number of edges in the whole environment and k is the number of degrees of freedom.

^
5 Motion Planning with Uncertainty

In real life, robots deviate from their planned paths due to errors in control and position sensing. To avoid running into problems in real life the problem should be re-formulated as to produce a plan which is guaranteed to succeed even if the robot cannot perfectly execute it due to control error.

This notion of uncertainty brings several advantages as well as disadvantages. Advantages can be listed as follows: (1) It’s possible to naturally introduce a powerful notion of feedback control so the computation is a continuous online process rather than an offline as in the case with general motion planning problem. (2) The obstacles don’t have to be stationary since very little information is processed at each step. In contrast, the disadvantages of motion planning in uncertainty are as follows: (1) Since no preplanning is possible, optimality cannot be achieved. (2) The problem dimensionality cannot be made arbitrarily hard, meaning that not too many choices can be available at each step.

The general problem in motion planning with uncertainty is the problem of moving a robot from an initial region to a final region in configuration space allowing compliant motion along the way. Compliant motion occurs when a robot is commanded to move into an obstacle, but rather than stubbornly obeying its motion command it complies with the geometry of the obstacle by sliding along it. It’s proved that compliant motion planning with uncertainty in a three-dimensional polyhedral configuration space with an arbitrarily large number of faces is NEXPTIME-hard. This result was the first instance of a provably intractable problem in robotics. Planning with uncertainty requires concurrent selection of: (1) Regions of configuration space representing the intermediate goals. (2) Motion directions to go from intermediate goals to other intermediate goals. (3) Goal-recognition functions. The greatest difficulty in such motion planning problems is the fact that these choices have the possibility of interacting along the way.

There are several algorithmic motion-planning approaches to this problem with different complexities. The following sub-sections will deal with these different approaches.

^ 5.1 One-Step Planning

One way to simplify planning is to restrict each termination condition so that the robot recognizes the goal of its motion command independently of the region in which it started. In other words, this is the case where you plan just one step at a time. It is possible to plan each step in time O(q2logq), where q is the number of edges in the environment by an algorithm proposed by Briggs. (Note that the running time depends greatly on the complexity of the workspace, the robot and the obstacles.)

^ 5.2 Multi-Step Planning

In principle, the approach presented above could be extended to the general case of multiple steps however it is difficult in practice. Instead the more common approach for multi-step planning has been proposed by both Canny and Donald based on algebraic computations. Both algorithms check the satisfiability of a first order algebraic formula to plan the movement of the robot. Canny’s approach takes doubly exponential time in the number of steps whereas Donald’s approach takes singly exponential time.

^ 5.3 Landmark Based Planning

A landmark is an easily recognizable, unique element of the environment that the robot can use to get information about its bearings. Sometimes a workspace contains such features that can be reliably sensed and used to precisely localize the robot. Each such landmark creates a region in configuration space called the landmark area from which the robot can sense the corresponding landmark feature. When the robot is in such a landmark area then it know its position exactly, however, when outside of all areas the robot has no direct position information. Lazanas and Latombe introduced a motion planner that considers a point robot among n circular obstacles and O(n) circular landmark areas. Using this information it is possible to plan the motion of such a robot such that the robot will move from landmark areas to landmark areas until each reaches the goal in time O(n4logn) . Although this approach has efficient results, the environment might not have such landmarks at all times.

^

6 Manipulation Planning


Many robot tasks consist of moving objects around in a workspace to reach a final arrangement. Such objects are movable, meaning they cannot move by themselves and they need to be moved by a robot to reach their final configurations. The objects may be grasped and displaced by robots or they may be pushed. In this paper only the pushing scenario will be explored.

A problem in manipulation planning is the following, which has a polynomial time solution. Given a robot and a movable object that are both convex polygons in a polygonal workspace, bring both of them to specific positions. The robot is only allowed to translate. While the robot pushes the movable object, one of the edges of each polygon should coincide exactly so that they start moving together as one rigid object. An exact algorithm has been proposed by Wilfong in 1991 that runs in O(n2) time after O(n3log2n) preprocessing, where n is the total number of edges in the workspace, the robot and the movable object.

In the rest of this section two motion planning games will be introduced that deal with manipulation planning.

6.1 Sokoban

Sokoban, which means a warehouse person in Japanese, is a puzzle game that was first introduced as a video game in Japan. The game consists of a pusher (robot) who must push a number of boxes into a set of designated storage locations, without getting himself or the boxes stuck. The warehouse (workspace) is a set of barriers, passages and storage areas. In a more general sense everything in the warehouse are squares in a two dimensional grid. Some important rules are that the pusher can push only one box at a time, cannot pull a box, and it cannot occupy the same place as a box at a given instant. The puzzle is solved only if all boxes are pushed into storage locations.

This problem was proved to be PSPACE-hard by Culberson in 1998, therefore proving that all puzzles of this sort are PSPACE-complete. The proof is based on simulating a Turing Machine in linear time using an infinite version of the puzzle in which only a finite number of boxes need to be placed into the storage areas. The PSPACE-hardness result comes from the fact that the tape is restricted to finite length.

6.2 PushPush

PushPush is a particular case of a general pushing blocks puzzle. It’s inspired by another computer game initially written for the Macintosh. The problem is defined on an integer grid consisting of until square blocks. An agent (robot) may push blocks but never pull them in order to move between given an initial and a final position. In the general problem the agent can push only one block at a time and the block moves only one square. However, in this particular case although the robot can still only push one block at a time, each block when pushed slides the full extent of the available empty space in the direction in which it was pushed. The problem was initially proved to be NP-hard in 3-dimensions and then was proved to be NP-hard in the two-dimensional case as well.

Both proofs are based on a reduction from SAT. However, it’s still an open question whether this NP-hardness result can be strengthened in either direction: either by proving PushPush is in NP in which case it is NP-complete, or by showing that PushPush is PSPACE-complete.

^

7 Algorithmic Motion Planning


Motion planning algorithms can be classified according to the methods used and the outcomes of the algorithms. The most common classes in algorithmic motion planning are complete algorithms, probabilistic algorithms and heuristic algorithms, which would be explained in detail in the following subsections. An important point to note is that the different algorithmic methods other then complete algorithms were proposed to solve the motion planning time in less time than the lower bounds known.

^ 7.1 Complete Algorithms

A motion planning algorithm is complete if it is guaranteed to find a free path between two given configurations whenever such a path exists, and report that there is no free path otherwise. Complete algorithms are sometimes referred to as exact algorithms.

Most complete algorithms deal with the connectivity of the free space by first capturing it on a graph. There are two main methods for doing this: the cell decomposition technique or the roadmap technique. In cell decomposition, free space is partitioned into a collection of cells and the motion of the robot is planned among the connected cells. On the other hand in the roadmap technique, a network of curves is extracted from the free space and again finding a path is based on the connectivity of different “roads”.

The complete motion planning algorithms can be divided into two categories: General complete planners and specific complete planners. General complete planners apply to virtually any robot with an arbitrary number of degrees of freedom whereas the specific complete planners apply to a restricted family of robots usually with a fixed small number of degrees of freedom.

Although, a lot of work has been done in this field, because of the PSPACE-hardness result due to Reif, it’s not open to any more improvements. (The only improvement was by Canny in decreasing the running time from doubly exponential time to singly exponential.)

^ 7.2 Probabilistic Algorithms

Computational complexity of robot motion planning for robots with many degrees of freedom made researchers come up with different algorithms where they had to trade off exactness against running time. One such class of algorithms is the probabilistic ones.

Such randomized probabilistic techniques do not guarantee a solution will be found, but if a solution is possible, it is very likely they will find it relatively quickly. An example of such algorithms is the probabilistic roadmap algorithm, which works in the following way: This algorithm avoids computing explicit geometric representation of the free space. Rather, it uses an efficient procedure to compute distances between bodies in the workspace. Then it samples the configuration space by selecting a large number of configurations at random and marking only the free configurations as milestones of the algorithm. In the next step, each pair of milestones is checked in order to see if there exists a collision free path between the two. By using this information a graph G(V, E) is constructed where V is the set of milestones and E are the edges between them. Two vertices have an edge connecting them if there exists a collision free path between them.

This resulting graph is called the probabilistic roadmap, which then can be used as the general roadmap to plan the motion of a complicated robot. Experimental results show that this algorithm takes less than one second to reach a result.

Although such randomization algorithms cannot be used for extremely precise applications such as medical surgeries, they are widely used in maintenance of aircraft engines.

^ 7.3 Heuristic Algorithms

Another approach to speed up motion planning was to use heuristic techniques. Several of such techniques have been proposed, but although many of them work well in practice they usually offer no performance guarantee.

Heuristic algorithms usually deal with a regular grid defined over the configuration space. Path planning is based on generating a path as a sequence of adjacent grid points, which require extensive use of a search method. An example of such a search method is the potential field that is a function over the free space that has a global minimum at the goal configuration. The potential field causes the robot to get pulled to the goals as it is being repelled by the obstacles. The problem with this model is the evaluation of these repulsive and attractive fields where local minima might attract the robot in some wrong direction in which it can get stuck. Although potentials without local minima have been proposed they have the same running times as the complete algorithms.

Another heuristics approach widely used is the hierarchical space decomposition. In this approach unlike exact cell decomposition specific cells are chosen to be decomposed more than other in a hierarchical fashion. Although this algorithm can run in polynomial time, the time and space complexity of this model grows quickly with the dimension of the configuration space, so it’s applicable only when the dimension of the configuration space is small.

Both these approaches have great room for improvement and active research has been conducted in the past years on these heuristics.

^

8 Conclusions and Open Problems


Over the past decade, robot motion planning has grown into an extensive research field.

The topic has been explored in many different viewpoints of computer scientists, mathematicians and mechanical and electrical engineers. There are extremely many results in all the topics covered in this paper and many other topics that were not and it would have been impossible to cover all of them. This paper was particularly designed to give the reader a broad sense of the hardness of motion planning without giving too much detail in any of the topics. For details and proofs of the results given in this paper the reader is referred to the sources listed in the last section.

Despite the research that has already been done, there are extremely many open problems and a lot of room for improvement in the field, and this is one of the biggest reasons why it attracts so much attention. The topics within robot motion planning that have space for improvement include motion planning with uncertainty, minimum time motion planning, assembly planning, manipulation planning, approximation algorithms, and probabilistic algorithms. On the other hand, there are a lot of open problems regarding motion planning with flexible objects, motion planning using sensors, reconfigurable robot motions, motions of robots with sensors that need to obtain information from the environment. Another open problem is putting all the different versions of the basic problem together, such as “What happens if there’s need to plan motion for a robot with kinematic constraints, uncertainty and moving obstacles?”

As the number of such open problems grow, the interest in the basic motion planning has been fading away since the types of problems given above have more realistic applications than the basic question. This is mostly because today, most of the research done in this field is aimed for real life applications rather than theoretical solutions. In conclusion, as robots take over more things in our lives the interest in theory of robot motion planning and computational complexity results is expected to subside whereas the interest in approximation algorithms and applications will grow more and more.

9 Bibliography


Amato, N.,Wu, Y^ . A randomized roadmap method for path and manipulation planning.

Proc. IEEE Int. Conf. on Robotics and Automation, pp. 113--120, 1996


Brady, M. Robot Motion: Planning and Control

MIT Press, Cambridge, MA 1982


Canny, J. The Complexity of Robot Motion Planning

MIT Press, Cambridge, MA 1988


Canny, J., Reif, J.H. ^ Lower Bounds for Shortest Path and Other Related Problems

Culberson, J. Sokoban is PSPACE-Complete.

Proc. International Conf. Fun with Algorithms. pp. 65-76.

Elba, Italy, June 1998. Carleton Scientific

Demaine,E.D., Demaine,M.L, O'Rourke, J. PushPush is NP-hard in 2D.

Technical Report 066, Smith College, Northampton, MA, January 2000.


Goodman, J.E, O'Rourke, J., eds. Handbook of Discrete and Computational Geometry.

CRC Press, Boca Raton, FL 1997.


Halperin, D., Kavraki, L.E., Latombe, J.C. Robot Algorithms

CRC Handbook of Algorithms and Theory of Computation

CRC Press, Boca Raton, FL, 1998. Ch. 12.


Lamiraux, F.,Laumond, J.P. On the Expected Complexity of Random Path Planning

IEEE International Conference on Robotics and Automation (ICRA'96),

1996, pp.3014-3019.


Latombe, J.C. A Journey of Robots, Molecules, Digital Actors and Other Artifacts

Int. J. of Robotics Research, Special Issue on Robotics at the Millenium – I

18(11):1119-1128, November 1999


Latombe, J.C. ^ Controllability, Recognizability, and Complexity Issues in

Robot Motion Planning.

Proc. 36th Annual Symposium on Foundations of Computer Science,

pp.484-500, 1995.


Latombe, J.C. Robot Motion Planning

Kluwer Academic Publishers, Boston, MA 1991


Lumelsky,V. Algorithmic and complexity issues of robot motion in an uncertain

environment,

J. Complexity, 3 (1987), pp. 146--182.


Reif, J.H., Sharir, M. Motion Planning in the Presence of Moving Obstacles.

Proc.of 25th IEEE Symposium on Foundations of Computer Science,

pp. 144--154, 1985


Reif, J.H, Storer, J.A. A single-exponential upper bound for finding shortest paths in

three dimensions.

Journal of the Association for Computing Machinery,

41(5):1013--1019, September 1994.


Tate, S.R. Arithmetic Circuit Complexity and Motion Planning

Technical report DUKE--TR--1992—05, 1992.






Download 44.92 Kb.
leave a comment
Date conversion29.09.2011
Size44.92 Kb.
TypeДокументы, Educational materials
Add document to your blog or website

Be the first user to rate this..
Your rate:
Place this button on your site:
docs.exdat.com

The database is protected by copyright ©exdat 2000-2017
При копировании материала укажите ссылку
send message
Documents

upload
Documents

Рейтинг@Mail.ru
наверх