Spelling suggestions: "subject:"[een] SENSOR FUSION"" "subject:"[enn] SENSOR FUSION""
191 |
Multi-sources fusion based vehicle localization in urban environments under a loosely coupled probabilistic framework / Localisation de véhicules intelligents par fusion de données multi-capteurs en milieu urbainWei, Lijun 17 July 2013 (has links)
Afin d’améliorer la précision des systèmes de navigation ainsi que de garantir la sécurité et la continuité du service, il est essentiel de connaitre la position et l’orientation du véhicule en tout temps. La localisation absolue utilisant des systèmes satellitaires tels que le GPS est souvent utilisée `a cette fin. Cependant, en environnement urbain, la localisation `a l’aide d’un récepteur GPS peut s’avérer peu précise voire même indisponible `a cause des phénomènes de réflexion des signaux, de multi-trajet ou de la faible visibilité satellitaire. Afin d’assurer une estimation précise et robuste du positionnement, d’autres capteurs et méthodes doivent compléter la mesure. Dans cette thèse, des méthodes de localisation de véhicules sont proposées afin d’améliorer l’estimation de la pose en prenant en compte la redondance et la complémentarité des informations du système multi-capteurs utilisé. Tout d’abord, les mesures GPS sont fusionnées avec des estimations de la localisation relative du véhicule obtenues `a l’aide d’un capteur proprioceptif (gyromètre), d’un système stéréoscopique(Odométrie visuelle) et d’un télémètre laser (recalage de scans télémétriques). Une étape de sélection des capteurs est intégrée pour valider la cohérence des observations provenant des différents capteurs. Seules les informations validées sont combinées dans un formalisme de couplage lâche avec un filtre informationnel. Si l’information GPS est indisponible pendant une longue période, la trajectoire estimée par uniquement les approches relatives tend `a diverger, en raison de l’accumulation de l’erreur. Pour ces raisons, les informations d’une carte numérique (route + bâtiment) ont été intégrées et couplées aux mesures télémétriques de deux télémètres laser montés sur le toit du véhicule (l’un horizontalement, l’autre verticalement). Les façades des immeubles détectées par les télémètres laser sont associées avec les informations_ bâtiment _ de la carte afin de corriger la position du véhicule.Les approches proposées sont testées et évaluées sur des données réelles. Les résultats expérimentaux obtenus montrent que la fusion du système stéréoscopique et du télémètre laser avec le GPS permet d’assurer le service de localisation lors des courtes absences de mesures GPS et de corriger les erreurs GPS de type saut. Par ailleurs, la prise en compte des informations de la carte numérique routière permet d’obtenir une approximation de la position du véhicule en projetant la position du véhicule sur le tronc¸on de route correspondant et enfin l’intégration de la carte numérique des bâtiments couplée aux données télémétriques permet d’affiner cette estimation, en particulier la position latérale. / In some dense urban environments (e.g., a street with tall buildings around), vehicle localization result provided by Global Positioning System (GPS) receiver might not be accurate or even unavailable due to signal reflection (multi-path) or poor satellite visibility. In order to improve the accuracy and robustness of assisted navigation systems so as to guarantee driving security and service continuity on road, a vehicle localization approach is presented in this thesis by taking use of the redundancy and complementarities of multiple sensors. At first, GPS localization method is complemented by onboard dead-reckoning (DR) method (inertial measurement unit, odometer, gyroscope), stereovision based visual odometry method, horizontal laser range finder (LRF) based scan alignment method, and a 2D GIS road network map based map-matching method to provide a coarse vehicle pose estimation. A sensor selection step is applied to validate the coherence of the observations from multiple sensors, only information provided by the validated sensors are combined under a loosely coupled probabilistic framework with an information filter. Then, if GPS receivers encounter long term outages, the accumulated localization error of DR-only method is proposed to be bounded by adding a GIS building map layer. Two onboard LRF systems (a horizontal LRF and a vertical LRF) are mounted on the roof of the vehicle and used to detect building facades in urban environment. The detected building facades are projected onto the 2D ground plane and associated with the GIS building map layer to correct the vehicle pose error, especially for the lateral error. The extracted facade landmarks from the vertical LRF scan are stored in a new GIS map layer. The proposed approach is tested and evaluated with real data sequences. Experimental results with real data show that fusion of the stereoscopic system and LRF can continue to localize the vehicle during GPS outages in short period and to correct the GPS positioning error such as GPS jumps; the road map can help to obtain an approximate estimation of the vehicle position by projecting the vehicle position on the corresponding road segment; and the integration of the building information can help to refine the initial pose estimation when GPS signals are lost for long time.
|
192 |
Multisensor Dead Reckoning Navigation On A Tracked Vehicle Using Kalman FilterKirimlioglu, Serdar 01 October 2012 (has links) (PDF)
The aim of this thesis is to write a multisensor navigation algorithm and to design a test setup. After doing these, test the algorithm by using the test setup. In navigation, dead reckoning is a procedure to calculate the position from initial position with some measured inputs. These measurements do not include absolute position data. Using only an inertial measurement unit is an example for dead reckoning navigation. Calculating position and velocity with the inertial measurement unit is highly erroneous because, this calculation requires integration of acceleration data. Integration means accumulation of errors as time goes. For example, a constant acceleration error of 0.1 m/s^2 on 1 m/s^2 of acceleration will lead to 10% of position error in only 5 seconds. In addition to this, wrong calculation of attitude is going to blow the accumulated position errors. However, solving the navigation equations while knowing the initial position and the IMU readings is possible, the IMU is not used solely in practice. In literature, there are studies about this topic and in these studies / some other sensors aid the navigation calculations. The aiding or fusion of sensors is accomplished via Kalman filter.
In this thesis, a navigation algorithm and a sensor fusion algorithm were written. The sensor fusion algorithm is based on estimation of IMU errors by use of a Kalman filter. The design of Kalman filter is possible after deriving the mathematical model of error propagation of mechanization equations.
For the sensor fusion, an IMU, two incremental encoders and a digital compass were utilized. The digital compass outputs the orientation data directly (without integration). In order to find the position, encoder data is calculated in dead reckoning sense. The sensor triplet aids the IMU which calculates position data by integrations. In order to mount these four sensors, an unmanned tracked vehicle prototype was manufactured. For data acquisition, an xPC&ndash / Target system was set.
After planning the test procedure, the tests were performed. In the tests, different paths for different sensor fusion algorithms were experimented. The results were recorded in a computer and a number of figures were plotted in order to analyze the results. The results illustrate the benefit of sensor fusion and how much feedback sensor fusion is better than feed forward sensor fusion.
|
193 |
Approaches to Mobile Robot Localization in Indoor EnvironmentsJensfelt, Patric January 2001 (has links)
QC 20100621
|
194 |
Wireless video sensor network and its applications in digital zooKarlsson, Johannes January 2010 (has links)
Most computing and communicating devices have been personal computers that were connected to Internet through a fixed network connection. It is believed that future communication devices will not be of this type. Instead the intelligence and communication capability will move into various objects that surround us. This is often referred to as the "Internet of Things" or "Wireless Embedded Internet". This thesis deals with video processing and communication in these types of systems. One application scenario that is dealt with in this thesis is real-time video transmission over wireless ad-hoc networks. Here a set of devices automatically form a network and start to communicate without the need for any previous infrastructure. These devices act as both hosts and routers and can build up large networks where they forward information for each other. We have identified two major problems when sending real-time video over wireless ad-hoc networks. One is the reactive design used by most ad-hoc routing protocols. When nodes move some links that are used in the communication path between the sender and the receiver may disappear. The reactive routing protocols wait until some links on the path breaks and then start to search for a new path. This will lead to long interruptions in packet delivery and does not work well for real-time video transmission. Instead we propose an approach where we identify when a route is about to break and start to search for new routes before this happen. This is called a proactive approach. Another problem is that video codecs are very sensitive for packet losses and at the same time the wireless ad-hoc network is very error prone. The most common way to handle lost packets in video codecs is to periodically insert frames that are not predictively coded. This method periodically corrects errors regardless there has been an error or not. The method we propose is to insert frames that are not predictively coded directly after a packet has been lost, and only if a packet has been lost. Another area that is dealt with in this thesis is video sensor networks. These are small devices that have communication and computational capacity, they are equipped with an image sensor so that they can capture video. Since these devices in general have very limited resources in terms of energy, computation, communication and memory they demand a lot of the video compression algorithms used. In standard video compression algorithms the complexity is high for the encoder while the decoder has low complexity and is just passively controlled by the encoder. We propose video compression algorithms for wireless video sensor networks where complexity is reduced in the encoder by moving some of the image analysis to the decoder side. We have implemented our approach on actual low-power sensor nodes to test our developed algorithms. Finally we have built a "Digital Zoo" that is a complete system including a large scale outdoor video sensor network. The goal is to use the collected data from the video sensor network to create new experiences for physical visitors in the zoo, or "cyber" visitors from home. Here several topics that relate to practical deployments of sensor networks are addressed.
|
195 |
Intelligent Body Monitoring / Övervakning av mänskliga rörelserNorman, Rikard January 2011 (has links)
The goal of this project was to make a shirt with three embedded IMU sensors (Inertial Measurement Unit) that can measure a person’s movements throughout an entire workday. This can provide information about a person’s daily routine movements and aid in finding activities which can lead to work-related injuries in order to prevent them. The objective was hence to construct a sensor fusion framework that could retrieve the measurements from these three sensors and to create an estimate of the human body orientation and to estimate the angular movements of the arms. This was done using an extended Kalman filter which uses the accelerometer and magnetometer values to retrieve the direction of gravity and north respectively, thus providing a coordinate system that can be trusted in the long term. Since this method is sensitive to quick movements and magnetic disturbance, gyroscope measurements were used to help pick up quick movements. The gyroscope measurements need to be integrated in order to get the angle, which means that we get accumulated errors. This problem is reduced by the fact that we retrieve a correct long-term reference without accumulated errors from the accelerometer and magnetometer measurements. The Kalman filter estimates three quaternions describing the orientation of the upper body and the two arms. These quaternions were then translated into Euler angles in order to get a meaningful description of the orientations. The measurements were stored on a memory card or broadcast on both the local net and the Internet. These data were either used offline in Matlab or shown in real-time in the program Unity 3D. In the latter case the user could see that a movement gives rise to a corresponding movement on a skeleton model on the screen.
|
196 |
Design Of Kalman Filter Based Attitude Determination Algorithms For A Leo Satellite And For A Satellite Attitude Control Test SetupKutlu, Aykut 01 October 2008 (has links) (PDF)
This thesis presents the design of Kalman filter based attitude determination
algorithms for a hypothetical LEO satellite and for a satellite attitude control test
setup.
For the hypothetical LEO satellite, an Extended Kalman Filter based attitude
determination algorithms are formed with a multi-mode structure that employs the
different sensor combinations and as well as online switching between these
combinations depending on the sensor availability. The performance of these
different attitude determination modes are investigated through Monte Carlo
simulations. New attitude determination algorithms are prepared for the satellite
attitude control test setup by considering the constraints on the selection of the
suitable sensors. Here, performances of the Extended Kalman Filter and Unscented
Kalman Filter are investigated. It is shown that robust and sufficiently accurate
attitude estimation for the test setup is achievable by using the Unscented Kalman
Filter.
|
197 |
Sensor Fusion and Control Applied to Industrial ManipulatorsAxelsson, Patrik January 2014 (has links)
One of the main tasks for an industrial robot is to move the end-effector in a predefined path with a specified velocity and acceleration. Different applications have different requirements of the performance. For some applications it is essential that the tracking error is extremely small, whereas other applications require a time optimal tracking. Independent of the application, the controller is a crucial part of the robot system. The most common controller configuration uses only measurements of the motor angular positions and velocities, instead of the position and velocity of the end-effector. The development of new cost optimised robots has introduced unwanted flexibilities in the joints and the links. The consequence is that it is no longer possible to get the desired performance and robustness by only measuring the motor angular positions. This thesis investigates if it is possible to estimate the end-effector position using Bayesian estimation methods for state estimation, here represented by the extended Kalman filter and the particle filter. The arm-side information is provided by an accelerometer mounted at the end-effector. The measurements consist of the motor angular positions and the acceleration of the end-effector. In a simulation study on a realistic flexible industrial robot, the angular position performance is shown to be close to the fundamental Cramér-Rao lower bound. The methods are also verified in experiments on an ABB IRB4600 robot, where the dynamic performance of the position for the end-effector is significantly improved. There is no significant difference in performance between the different methods. Instead, execution time, model complexities and implementation issues have to be considered when choosing the method. The estimation performance depends strongly on the tuning of the filters and the accuracy of the models that are used. Therefore, a method for estimating the process noise covariance matrix is proposed. Moreover, sampling methods are analysed and a low-complexity analytical solution for the continuous-time update in the Kalman filter, that does not involve oversampling, is proposed. The thesis also investigates two types of control problems. First, the norm-optimal iterative learning control (ILC) algorithm for linear systems is extended to an estimation-based norm-optimal ILC algorithm where the controlled variables are not directly available as measurements. The algorithm can also be applied to non-linear systems. The objective function in the optimisation problem is modified to incorporate not only the mean value of the estimated variable, but also information about the uncertainty of the estimate. Second, H∞ controllers are designed and analysed on a linear four-mass flexible joint model. It is shown that the control performance can be increased, without adding new measurements, compared to previous controllers. Measuring the end-effector acceleration increases the control performance even more. A non-linear model has to be used to describe the behaviour of a real flexible joint. An H∞-synthesis method for control of a flexible joint, with non-linear spring characteristic, is therefore proposed. / En av de viktigaste uppgifterna för en industrirobot är att förflytta verktyget i en fördefinierad bana med en specificerad hastighet och acceleration. Exempel på användningsområden för en industrirobot är bland annat bågsvetsning eller limning. För dessa typer av applikationer är det viktigt att banföljningsfelet är extremt litet, men även hastighetsprofilen måste följas så att det till exempel inte appliceras för mycket eller för lite lim. Andra användningsområden kan vara punktsvetsning av bilkarosser och paketering av olika varor. För dess applikationer är banföljningen inte det viktiga, istället kan till exempel en tidsoptimal banföljning krävas eller att svängningarna vid en inbromsning minimeras. Oberoende av applikationen är regulatorn en avgörande del av robotsystemet. Den vanligaste regulatorkonfigurationen använder bara mätningar av motorernas vinkelpositioner och -hastigheter, istället för positionen och hastigheten för verktyget, som är det man egentligen vill styra. En del av utvecklingsarbetet för nya generationers robotar är att reducera kostnaden men samtidigt förbättra prestandan. Ett sätt att minska kostnaden kan till exempel vara att minska dimensionerna på länkarna eller köpa in billigare växellådor. Den här utvecklingen av kostnadsoptimerade robotar har infört oönskade flexibiliteter i leder och länkar. Det är därför inte längre möjligt att få den önskade prestandan och robustheten genom att bara mäta motorernas vinkelpositioner och -hastigheter. Istället krävs det omfattande matematiska modeller som beskriver dessa oönskade flexibiliteter. Dessa modeller kräver mycket arbete att dels ta fram men även för att identifiera parametrarna. Det finns automatiska metoder för att beräkna modellparametrarna men oftast krävs det en manuell justering för att få bra prestanda. Den här avhandlingen undersöker möjligheterna att beräkna verktygspositionen med hjälp av bayesianska metoder för tillståndsskattning. De bayesianska skattningsmetoderna beräknar tillstånden för ett system iterativt. Med hjälp av en matematisk modell över systemet predikteras vad tillståndet ska vara vid nästa tidpunkt. Efter att mätningar av systemet vid den nya tidpunkten har genomförts justeras skattningen med hjälp av dessa mätningar. De metoder som har använts i avhandlingen är det så kallade extended Kalman filtret samt partikelfiltret. Informationen på armsidan av växellådan ges av en accelerometer som är monterad på verktyget. Med hjälp av accelerationen för verktyget och motorernas vinkelpositioner kan en skattning av verktygspositionen beräknas. I en simuleringsstudie för en realistisk vek robot har det visats att skattningsprestandan ligger nära den teoretiska undre gränsen, känd som Raooch mätstörningar som påverkar roboten. För att underlätta trimningen så har en metod för att skatta processbrusets kovariansmatris föreslagits. En annan viktig del som påverkar prestandan är modellerna som används i filtren. Modellerna för en industrirobot är vanligtvis framtagna i kontinuerlig tid medan filtren använder modeller i diskret tid. För att minska felen som uppkommer då de tidskontinuerliga modellerna överförs till diskret tid har olika samplingsmetoder studerats. Vanligtvis används enkla metoder för att diskretisera vilket innebär problem med prestanda och stabilitet. För att hantera dessa problem införs översampling vilket innebär att tidsuppdateringen sker med en mycket kortare sampeltid än vad mätuppdateringen gör. För att undvika översampling kan det motsvarande tidskontinuerliga filtret användas för att prediktera tillstånden vid nästa diskreta tidpunkt. En analytisk lösning med låg beräkningskomplexitet till detta problem har föreslagits. Vidare innehåller avhandlingen två typer av reglerproblem relaterade till industrirobotar. För det första har den så kallade norm-optimala iterative learning control styrlagen utökats till att hantera fallet då en skattning av den önskade reglerstorheten används istället för en mätning. Med hjälp av skattningen av systemets tillståndsvektor kan metoden nu även användas till olinjära system vilket inte är fallet med standardformuleringen. Den föreslagna metoden utökar målfunktionen i optimeringsproblemet till att innehålla inte bara väntevärdet av den skattade reglerstorheten utan även skattningsfelets kovariansmatris. Det innebär att om skattningsfelet är stort vid en viss tidpunkt ska den skattade reglerstorheten vid den tidpunkten inte påverka resultatet mycket eftersom det finns en stor osäkerhet i var den sanna reglerstorheten befinner sig. För det andra har design och analys av H∞-regulatorer för en linjär modell av en vek robotled, som beskrivs med fyra massor, genomförts. Det visar sig att reglerprestandan kan förbättras, utan att lägga till fler mätningar än motorns vinkelposition, jämfört med tidigare utvärderade regulatorer. Genom att mäta verktygets acceleration kan prestandan förbättras ännu mer. Modellen över leden är i själva verket olinjär. För att hantera detta har en H∞-syntesmetod föreslagits som kan hantera olinjäriteten i modellen. / Vinnova Excellence Center LINK-SIC
|
198 |
Cooperative people detection and tracking strategies with a mobile robot and wall mounted camerasMekonnen, Alhayat Ali 18 March 2014 (has links) (PDF)
Actuellement, il y a une demande croissante pour le déploiement de robots mobile dans des lieux publics. Pour alimenter cette demande, plusieurs chercheurs ont déployé des systèmes robotiques de prototypes dans des lieux publics comme les hôpitaux, les supermarchés, les musées, et les environnements de bureau. Une principale préoccupation qui ne doit pas être négligé, comme des robots sortent de leur milieu industriel isolé et commencent à interagir avec les humains dans un espace de travail partagé, est une interaction sécuritaire. Pour un robot mobile à avoir un comportement interactif sécuritaire et acceptable - il a besoin de connaître la présence, la localisation et les mouvements de population à mieux comprendre et anticiper leurs intentions et leurs actions. Cette thèse vise à apporter une contribution dans ce sens en mettant l'accent sur les modalités de perception pour détecter et suivre les personnes à proximité d'un robot mobile. Comme une première contribution, cette thèse présente un système automatisé de détection des personnes visuel optimisé qui prend explicitement la demande de calcul prévue sur le robot en considération. Différentes expériences comparatives sont menées pour mettre clairement en évidence les améliorations de ce détecteur apporte à la table, y compris ses effets sur la réactivité du robot lors de missions en ligne. Dans un deuxiè contribution, la thèse propose et valide un cadre de coopération pour fusionner des informations depuis des caméras ambiant affixé au mur et de capteurs montés sur le robot mobile afin de mieux suivre les personnes dans le voisinage. La même structure est également validée par des données de fusion à partir des différents capteurs sur le robot mobile au cours de l'absence de perception externe. Enfin, nous démontrons les améliorations apportées par les modalités perceptives développés en les déployant sur notre plate-forme robotique et illustrant la capacité du robot à percevoir les gens dans les lieux publics supposés et respecter leur espace personnel pendant la navigation.
|
199 |
Integer Occupancy Grids : a probabilistic multi-sensor fusion framework for embedded perception / Grille d'occupation entière : une méthode probabiliste de fusion multi-capteurs pour la perception embarquéeRakotovao Andriamahefa, Tiana 21 February 2017 (has links)
Pour les voitures autonomes, la perception est une fonction principale où la sécurité est de la plus haute importance. Un système de perception construit un modèle de l'environnement de conduite en fusionnant plusieurs capteurs de perception incluant les LIDARs, les radars, les capteurs de vision, etc. La fusion basée sur les grilles d'occupation construit un modèle probabiliste de l'environnement en prenant en compte l'incertitude des capteurs. Cette thèse vise à intégrer le calcul des grilles d'occupation dans des systèmes embarqués à bas-coût et à basse-consommation. Cependant, les grilles d'occupation effectuent des calculs de probabilité intenses et difficilement calculables en temps-réel par les plateformes matérielles embarquées.Comme solution, cette thèse introduit une nouvelle méthode de fusion probabiliste appelée Grille d'Occupation Entière. Les Grilles d'Occupation Entières se reposent sur des principes mathématiques qui permettent de calculer la fusion de capteurs grâce à des simple addition de nombre entiers. L'intégration matérielle et logicielle des Grilles d'Occupation Entière est sûre et fiable. Les erreurs numériques engendrées par les calculs sont connues, majorées et paramétrées par l'utilisateur. Les Grilles d'Occupation Entière permettent de calculer en temps-réel la fusion de multiple capteurs sur un système embarqué bas-coût et à faible consommation dédié pour les applications pour l'automobile. / Perception is a primary task for an autonomous car where safety is of utmost importance. A perception system builds a model of the driving environment by fusing measurements from multiple perceptual sensors including LIDARs, radars, vision sensors, etc. The fusion based on occupancy grids builds a probabilistic environment model by taking into account sensor uncertainties. This thesis aims to integrate the computation of occupancy grids into embedded low-cost and low-power platforms. Occupancy Grids perform though intensive probability calculus that can be hardly processed in real-time on embedded hardware.As a solution, this thesis introduces the Integer Occupancy Grid framework. Integer Occupancy Grids rely on a proven mathematical foundation that enables to process probabilistic fusion through simple addition of integers. The hardware/software integration of integer occupancy grids is safe and reliable. The involved numerical errors are bounded and is parametrized by the user. Integer Occupancy Grids enable a real-time computation of multi-sensor fusion on embedded low-cost and low-power processing platforms dedicated for automotive applications.
|
200 |
Controle de posição com múltiplos sensores em um robô colaborativo utilizando liquid state machinesSala, Davi Alberto January 2017 (has links)
A ideia de usar redes neurais biologicamente inspiradas na computação tem sido amplamente utilizada nas últimas décadas. O fato essencial neste paradigma é que um neurônio pode integrar e processar informações, e esta informação pode ser revelada por sua atividade de pulsos. Ao descrever a dinâmica de um único neurônio usando um modelo matemático, uma rede pode ser implementada utilizando um conjunto desses neurônios, onde a atividade pulsante de cada neurônio irá conter contribuições, ou informações, da atividade pulsante da rede em que está inserido. Neste trabalho é apresentado um controlador de posição no eixo Z utilizando fusão de sensores baseado no paradigma de Redes Neurais Recorrentes. O sistema proposto utiliza uma Máquina de Estado Líquido (LSM) para controlar o robô colaborativo BAXTER. O framework foi projetado para trabalhar em paralelo com as LSMs que executam trajetórias em formas fechadas de duas dimensões, com o objetivo de manter uma caneta de feltro em contato com a superfície de desenho, dados de sensores de força e distância são alimentados ao controlador. O sistema foi treinado utilizando dados de um controlador Proporcional Integral Derivativo (PID), fundindo dados de ambos sensores. Resultados mostram que a LSM foi capaz de aprender o comportamento do controlador PID em diferentes situações. / The idea of employing biologically inspired neural networks to perform computation has been widely used over the last decades. The essential fact in this paradigm is that a neuron can integrate and process information, and this information can be revealed by its spiking activity. By describing the dynamics of a single neuron using a mathematical model, a network in which the spiking activity of every single neuron will get contributions, or information, from the spiking activity of the embedded network. A positioning controller based on Spiking Neural Networks for sensor fusion suitable to run on a neuromorphic computer is presented in this work. The proposed framework uses the paradigm of reservoir computing to control the collaborative robot BAXTER. The system was designed to work in parallel with Liquid State Machines that performs trajectories in 2D closed shapes. In order to keep a felt pen touching a drawing surface, data from sensors of force and distance are fed to the controller. The system was trained using data from a Proportional Integral Derivative controller, merging the data from both sensors. The results show that the LSM can learn the behavior of a PID controller on di erent situations.
|
Page generated in 0.0487 seconds