Abstract:
It is described an autonomous system for tracking an individual, comprising: wheeled vehicle; 3D depth camera, distance and/or touch sensors; at least two motors, each to drive one or more wheels respectively from both sides, left and right, of the mentioned vehicle; data processing module, comprising a decision unit configured to: if the 3D depth camera detects that the distance between the system and the individual to follow is inferior to a predetermined limit, decrease the speed of the two motors; if the 3D depth camera detects that the person to be followed exceeds a predetermined limit on the left or right of a horizontal predefined point, increase the engine speed on the right, slowing the speed of the left engine, or vice versa.

Description:
TECHNICAL FIELD 
       [0001]    It is described as a completely autonomous robotic system and its operation methods, comprised of motors, batteries, control boards, processing units, sensors and 3D depth cameras. It is able to follow a given person or move independently in space. 
         [0002]    This way, it is thus useful for the transportation of objects in different day-to-day situations. It can be used by everyone, including people with reduced mobility. This system has application in retail areas or any other area that benefits from object carrying technologies that make use of image recognition and artificial intelligence. 
       BACKGROUND 
       [0003]    According to the International Labour Organization, there are over 600 million people with disability [1] in the world. About 100 to 140 million suffer from physical disabilities and forecasts point to an increase of almost 29,000 people per year [2]. 
         [0004]    Considering only the EU countries, the numbers of elderly and/or disabled people are between 60 and 80 million [3]. These numbers are growing and it is estimated that by the year 2020, 25% of the population will have some type of disability. In the U.S., approximately 54 million people have a disability, 61% of those are still in working age, it is estimated that this number will double in just 15 years. 
         [0005]    Physical disability and specifically the problem of mobility are prevalent in about 40% of the population with disabilities in the European Union [4] and 7% of the American population [5]. Recent data showed an increase of 22% (2.7 M to 3.3 M) from 2008 to 2009, regarding people in wheelchair. [6] 
         [0006]    The circumstances that cause this condition are not always result from aging. Although a large part is due to cerebrovascular accidents (CVA—stroke) and arthritis, typically associated with aging, other situations such as multiple sclerosis, lack or loss of lower limbs, paraplegia and orthopedic problems, not correlated with age, also have significant expression in these numbers. 
         [0007]    Regarding the elderly [7], it is expected that in 2050 the number of seniors will exceed the number of young people for the first time in history. Currently, there are about 800 million elderly. In 2050 this number will exceed 20 billion people. 
         [0008]    By analyzing the market and our national customers, considering only the two largest commercial groups, it can be seen that Sonae group [8] has about 1,000 stores, while Jerónimo Martins&#39; group [9] has about 350 stores. These numbers show our market&#39;s potential in terms of shopping, considering only two trade groups. We must not forget that the solution can also be adopted by the industry and other commercial groups. 
         [0009]    Analyzing the international market, in the USA [10] there are approximately 105,000 shopping centers. In Europe [11], in 2007, data points to the existence of nearly 5,700 shopping centers of “traditional format”. Airports are another scenario where the present device, herewith described as wi-go, can be applied. According to data, there are about 15,000 airports, only in the United States. In the European Union [12] 800 million passengers were registered only in 2010. 
         [0010]    These are just a few numbers that help us realize the importance of developing solutions that can take into account what will be the future of societies. Many of the difficulties these people face also have to do with mobility problems. In this sense, we believe we can pay our contribution in order to improve the quality of life, since the solutions and the developed products put technology at the service of social integration, cohesion and responsibility. 
       REFERENCES 
       [0000]    
       
         1. Facts on Disability in the World of Work”, International Labour Organization (ILO) 
         2. Estimative data from the European Disability Forum: About Disability and National Center for Health Statistics 
         3. World Health Organization (WHO) 
         4. European Disability Forum: About Disability, http://www.edf-feph.org/Page_Generale.asp?DocID=12534 
         5. National Center for Health Statistics. 
         6. U.S: Census Bureau, 2010 (www.census.gov) 
         7. População e Envelhecimento: Factos e Números. http://www.unric.org/html/portuguese/ecosoc/ageing/Idosos-Factos.pdf 
         8. Actividade no ano de 2010 da Sonae—http://www.sonae.pt/fotos/editor2/20110316pr_resultadosfy2010_vf — 1300982276.pdf 
         9. Informação Jerónimo Martins—http://www.jeronimomartins.pt/pt/distribuicao_alimentar/portugal_pd.html 
         10. http://www.icsc.org/srch/faq_category.php?cat_type=research&amp;cat_id=3 
         11. http://www.icsc.org/srch/faq_category.php?cat_type=research&amp;cat_id=3 
         12. http://europa.eu/rapid/pressReleasesAction.do?reference=MEMO/11/857&amp;format=HTML&amp;aged=0&amp;language=PT&amp;guiLanguage=en 
       
     
         [0023]    The document WO2007034434A2 describes a device and a computer program to recognize the movement of an object or a person by capturing conventional video frames (eg RGB). The video frames are processed by means of logic processing, using corresponding block codes. The correspondence block defines a pixels block in a frame search block and pixels in an area of the next frame, and by the location of the search area in the next frame, the correspondence is automatically adjusted based on the measured values. 
         [0024]    The document US2007045014A1 describes a conventional scooter controlled by a joystick, which is used to transport people and to circulate in the street. It has no basket for shopping, it does not follow people, it has no cameras and the system of motors and steering has axis which link the wheels and serve to give direction. 
         [0025]    The document WO2004039612A2 describes a system/platform similar to the base of a caterpillar which enables the coupling of wheelchairs, for example, so that they are able to cross difficult terrain, which they wouldn&#39;t be able to on their own (such as the stairs). It does not use cameras, nor follows people. 
       SUMMARY 
       [0026]    It is described an autonomous system designed to follow a person, comprising:
       1. Vehicle with wheels;   2. 3D depth camera;   3. Distance and/or touch sensors;   4. At least two motors, each one to drive one or more wheels respectively of each side, left and right of the vehicle, and a data processing module, comprising a decision unit configured to:
           Based on the person&#39;s location in space, the system will calculate an error. Based on this error, the system will then alter the speed of each motor so it can be moved to an optimal position behind the user;   If the person&#39;s location has a deviation to the right or to the left, the motors are given different speeds generating a curved path, thus allowing the system to turn;   If the person&#39;s location has a deviation forward or backward, the motors are given the same speed values to make the system follow a linear path, thus allowing to follow the user in a straight line forward or backward;   
               
 
         [0034]    In a preferential embodiment, the system is additionally configured to stop the engine if it detects both the proximity and/or touch of an object by the mentioned distance and/or touch sensors. 
         [0035]    In a preferential embodiment, the system is additionally configured to stop both motors if the 3D depth camera detects that the distance between the system and the individual&#39;s position to be followed is inferior than a predetermined limit of safety. 
         [0036]    In a preferential embodiment, the system is further configured to, prior to following an individual, recognize the individual to be followed by face recognition, predefined gesture recognition, RFID tag or bar code. 
         [0037]    In a preferential embodiment, the system is further configured to, prior to following an individual:
       Detect the presence of a human form with 3D depth camera;   Recognizing the individual to be followed by a pre-defined recognition gesture, face traits or position;   Assigning an unique identifier of the recognized individual to the detected human form;   Activate the tracking of the recognized individual.       
 
     
    
     
       BRIEF DESCRIPTION OF THE FIGURES 
         [0042]    The following figures provide preferred embodiments for illustrating the description and should not be seen as limiting the scope of invention. 
           [0043]      FIG. 1   a : Schematic side plan of an embodiment, in which:
       (A) represents the tracking device coupled to a shopping cart;   ( 1 ) represents engines and batteries;   ( 2 ) represents a 3D depth camera;   ( 3 ) represents obstacle sensors (distance and/or touch).         
           [0048]      FIG. 1   b b: Schematic representation of a embodiment, in which:
       (A) represents the tracking device, coupled to a shopping cart;   (B) represents a wheelchair, on which the user, moves;   ( 1 ) represents engines and batteries;   ( 2 ) represents a 3D depth camera;   ( 3 ) represents obstacle sensors (distance and/or touch), and   ( 4 ) represents the control and power supply elements.         
           [0055]      FIG. 1   c : Schematic representation of an embodiment, in which are represented:
       ( 1 )—3D Depth Camera   ( 2 )—H Bridge—Left Motor   ( 3 )—H Bridge—Right Motor   ( 4 )—Motion and Direction Indicator   ( 5 )—Serial Communication   ( 6 )—RS 232   ( 7 )—USB   ( 8 )—Distance Sensors   ( 9 )—Sensor Control Unit   ( 10 )—Motor Control Unit   ( 11 )—Main Control Unit         
           [0067]      FIG. 2 : Schematic representation of the system&#39;s method of operation. 
           [0068]      FIG. 3 : Schematic representation of the method of user detection and recovery. 
           [0069]      FIG. 4 : Schematic representation of the method of active follow. 
           [0070]      FIG. 5 : Schematic representation of the method of obstacle detection and avoidance. 
           [0071]      FIG. 6 : Schematic representation of the system&#39;s method of operation, in which are represented:
       ( 1 )—Get Skeletal Image From 3D Camera   ( 2 )—User Detection and Recovery Algorithm   ( 3 )—Active Follow Algorithm   ( 4 )—Motor Control Unit Communication         
           [0076]      FIG. 7 : Schematic representation of the method of user detection and recovery, in which are represented:
       ( 1 )—Get Skeleton Array   ( 2 )—Detect New Users   ( 3 )—User is Lost   ( 4 )—Update user Skeletal Information   ( 5 )—No Skeleton to Track   ( 6 )—New Skeleton to Track.         
           [0083]      FIG. 8 : Schematic representation of the method of active follow, in which are represented:
       ( 1 )—Skeleton Position Data   ( 2 )—Calculate Side Error with PID for Side Position   ( 3 )—Calculate Distance Error with PID for Distance Position   ( 4 )—Calculate Motor Speed from Distance Error   ( 5 )—Calculate Motor Speed from Side Error   ( 6 )—Obstacle Detection and Avoidance Algorithm   ( 7 )—Calculate Final Speed.         
           [0091]      FIG. 9 : Schematic representation of the method of obstacle detection and avoidance, in which are represented:
       ( 1 )—Get Sensor Readings   ( 2 )—Update Sensor Data Information (Distance, Sensor Name and Position)   ( 3 )—Check sensor distance and locations from Parametized Security Ranges   ( 4 )—Obstacle detected on one side of wigo   ( 5 )—Obstacle detected on multiple sensors facing same direction   ( 6 )—Create speed modifier for both motors to slow down.   ( 7 )—Create speed modifier based on sensor reading location to both motors independently.         
           [0099]      FIG. 10 : Schematic representation of the system view parameters, in which are represented:
       ( 1 )—Ideal Position (SetPoint)   ( 2 )—Origin Point(wi-GO)   ( 3 )—Maximum Threshold X axis   ( 4 )—Minimim Threshold X axis   ( 5 )—Z Axis/Ideal X Position   ( 6 )—Maximum Threshold Z axis   ( 7 )—Ideal Z Position   ( 8 )—Minimum Threshold Z   ( 9 )—X Axis         
           [0109]      FIG. 11 : Schematic representation of the turning method, in which are represented:
       ( 1 )—User Skeleton Position (z,x)   ( 2 )—wiGO (0,0)   ( 3 )—Right Wheel   ( 4 )—Left Wheel   ( 5 )—Reference Z Axis   ( 6 )—Alpha, Angle Between ( 5 ) and ( 1 )   ( 7 )—Alpha, same Angle as ( 6 )   ( 8 )—Right Wheel Desired Position   ( 9 )—Left Wheel Desired Position   ( 10 )—Distance Between Wheels   ( 11 )—Turn Radius   ( 12 )—Instantaneous Center of Curvature         
       
    
    
     DETAILED DESCRIPTION 
       [0122]    The system works as an autonomous device, designed to follow people, disabled or not, thus allowing to carry objects without difficulty, making life easier for them, providing more comfort and safety to those who already face several daily obstacles. 
         [0123]    Among the main features of the product, emphasis on:
       Assistance in the transport of objects by people with reduced mobility and everyone else;   Clear and aligned tracking of a particular person along a path;   Detection of obstacles and dangers and its avoidance;   Image recognition based on real 3D depth cameras, preventing the need of having a device to communicate with the system.       
 
         [0128]    From the aesthetic point of view, the invention may be presented with the same dimensions of regular shopping carts, which can be found in supermarkets. In addition, having in mind its mass production, as well as the purpose of its use, it is possible to redesign the product, thus meeting the customer&#39;s needs, increasing the performance of the car itself, i.e. particular luggage carts, baby strollers, an additional wheelchair, an autonomous shopping cart, transportation of any kind of goods, amongst others. 
         [0129]    As it can be seen in  FIG. 1 , the system comprises one or more: motors, batteries, 3D depth cameras, distance sensors, control boards (i.e. control sensor board, control motors board and general control board) and processing units (i.e. tablet, PC or a components of a PC) that can be applied to any physical system. 
         [0130]    This combination of components and technologies, associated with a suitable method of operation, it&#39;s the point of our invention and introduces a new concept in the field of tracking and objects transportation. 
         [0131]    In the illustration, it can be observed the way the components comprising our system communicate and connect in accordance with a preferential embodiment. 
       Description of Each Component 
       [0132]    Motors—component that gives power to the system and enables it to move.
       Battery—component that provides energetic autonomy to the system.   3D depth cameras—component with the capacity of visualization of the environment, allowing the recognition of people, human faces, human voices, gestures and surrounding objects accurately and in a 3D environment.   Distance sensors—components that analyze the distances of the system in accordance to the objects of the environment in which it operates. With this component, the system can detect and avoid collisions.   Control boards—this component receives and sends data to the several components, as well as the distribution of energy from the battery. The control boards include all the boards in the systems.   Processing unit—this unit processes all the information from all the components, as well as all the processing software created.       
 
         [0138]    Once the components are combined, we obtain a system capable of tracking one person that can be applied in:
       Shopping centers—to transport purchases by customers or restocking by employees.   Airports—for luggage transportation, either by customers or employees.   Home—transportation of objects in the residence.   Hospitals—to transport medication, meals, clothing, processes or other objects needed by the several departments.   Industry—to transport objects between sections.   or any other scenario that needs transportation of products or needs an autonomous system.       
 
         [0145]    We shall underline that the system for shopping malls, airports and residence is designed for people with disabilities or reduced mobility, but it can be used by anyone. Regarding hardware (see  FIG. 2 ), the system consists of two main units: Control and Acquisition Unit and the Decision Unit. 
         [0146]    The Control and Acquisition Unit is the hardware and software module which transmits orders for motors and performs value’ reading of the distance sensors. This will communicate with the Decision Unit through a data connection, i.e. Ethernet or USB. Most movement commands are received by the Decision Unit. However, in situations of close proximity of obstacles, this module (Control and Acquisition Unit) has the power to order the immediate stop or to recalculate the path. Then, it shall transmit the information from the sensors to the Decision Unit. 
         [0147]    The Decision Unit is the software module which is connected to a 3D depth camera. This camera provides the identification of the current user and, based on its position towards the system, allows the decision module to calculate motion or stop commands. 
         [0148]    Concerning software, the scene capture (see  FIG. 3 ) enables the system to identify objects and people. Using the 3D depth camera, the system can obtain the distances from these objects. The 3D depth camera has the capacity to detect a human form. This is accomplish by a projection of an infrared matrix in from of the camera. A sensing depth camera is able to read the location of the infrared points in the matrix and calculate the distances from one another. The algorithms embedded in the 3D depth camera libraries, allow the recognition of a person&#39;s shape through these data. 
         [0149]    Biometric Data can be calculated, using variables such as height, length of arms, legs, basically the entire human physiognomy. 
         [0150]    The identification of objects is made through the same depth camera, by adding the RGB camera functionalities, therefore providing higher data reliability on objects, since color is added to the shape. 
         [0151]    Regarding the person&#39;s recognition, as soon as the system is on and ready to go, it will rely on the interaction with people. As explained earlier, the depth camera has the purpose of identifying a human physiognomy. Through gestures, position, voice or personal features (structure and/or facial recognition) it is created a virtual connection of the system to the person recognized by the depth camera. As long as the person stays in the viewing angle of the depth camera, the system will not lose the user. 
         [0152]    Another alternative recognition system implemented is based on the use of bar codes or two-dimensional codes (QR Codes) which will be placed by the person in front of the camera and, using the proper algorithm, will associate the person to the system. This system was designed for people with problems in their physical movements and that are unable to make the preset gesture. 
         [0153]    Another embodiment has to do with the use of voice commands or facial recognition. The procedure of recognition and analysis is the same as the one used in the person recognition. 
         [0154]    The calibration consists in adjusting the camera towards people, as their physical characteristics vary immensely from one individual to another. The depth camera has an engine allowing the adjustment of the angle within the horizontal plane. When the first identification occurs, we can adjust the camera to ensure that the person fits within the image area received from the depth camera. 
         [0155]    Regarding the operation, as the system recognizes a person, it will track and follow the one using it. In this process, the algorithm absorbs the data collected by the depth camera and processes it, so that it can be able to identify the person&#39;s movements. 
         [0156]    The depth camera gathers data from the person whom is following. This data structure contains the information on both the distance and position of the user. Based on these distances and relative positions, differentiating values can be seen when identifying the user and allowing the system to follow the person. 
         [0157]    This way, the system can identify where the person is moving to (forward, back, side, rotate, etc.). The system keeps the person at its center of vision at a fixed distance that is presented and programmable. When one moves laterally, and leaves the system&#39;s center of vision, it calculates the error (distance from the person to the center of vision) and calculates the force that must be applied to the left and/or right motor, so it can adjust back and have the person at its center of vision, depending on whether the person moves to the left and/or right. 
         [0158]    Regarding front and back speed, based on the depth camera, the system identifies how far the person is from the it, and it will always keep the same distance. When the user moves, the error is calculated (position of the user regarding the ideal distance separating the system from the him) and correct commands will be provided to correct those distances. This process allows the front and rear movement of the system to maintain the ideal distance with the person, always keeping a constant alignment with them. Combining these data, the system follows the person to all possible directions. 
         [0159]    The diagrams of  FIG. 4  show the operation described above. 
         [0160]    Respecting the system&#39;s artificial intelligence, this document describes a decision support system (see  FIG. 5 ) based on heuristics and artificial intelligence algorithms, which give assistance in specific tasks such as:
       Face Recognition;   Voice recognition;   Curvatures and Paths;   Braking;   Escape routes;   Acceleration;   Battery Management;   Ability to react to unexpected situations;   Ability to react to errors;   Ability to avoid obstacles;   Improved recognition of people and objects;       
 
         [0172]    Concerning security systems, the device also comprises distance sensors planned to avoid collisions with the surrounding environment. The sensors are able to analyze obstacles, sending ultrasound signals and, depending on the time it takes to reach an obstacle and bounce back to the sensor, therefore calculating the distance to the object. Based on this information, the system verifies if there are any obstacles in the way, complying a safe distance specified, in which the system has to stop or create a curved path around the object in order to prevent collision. These distances have millimetric precision in a preferential embodiment. 
         [0173]    At a minimum doubt or a sign that the system is not following the operation mode set in the algorithm, the system is forced to stop by default. 
         [0174]    In a preferential embodiment, a set of sound alerts and written notifications on the screen are defined to indicate the correct functioning of the system. Starting by the battery level warning, to a notification that indicates if the system has lost the person or if any component is malfunctioning or crashed, amongst others. 
         [0175]    One of the main components of the system is the 3D depth camera. Additional cameras can be considered to be used in the system, such as the Microsoft&#39;s Kinect Sensor, the Asus&#39; Xtion Pro Sensor, PrimeSense Capri or any other device with the same technical specifications and functioning. 
         [0176]    The system can be developed using the official Microsoft&#39;s SDK or the OpenNI open source SDK, which detects all hardware from any 3D depth camera, thus allowing the system development regardless of the camera used. 
         [0177]    Concluding, any depth sensing camera capable of capturing a real time scenario, as well as capable of human form segmentations and recognition may be used by the system. 
         [0178]    The following embodiments, though more specific, are also applicable to the overall disclosure. 
         [0179]      FIG. 6  describes the algorithm&#39;s overall functioning. First, we rely on the 3D depth camera to retrieve a skeletal frame ( 1 ), consisting on a data structure of skeletons. A skeleton is a data structure which contains information about the user&#39;s joints and bones, as well as its global position. In case there are available skeletons, that data is sent to the User Detection and Recovery Algorithm ( 2 ). This will return a user to follow or not. If there are no users to track, the system will do nothing and will wait for the next cycle. If there are users to track, the system will provide the active follow algorithm with the user&#39;s skeleton tracked ( 3 ). This procedure will return the final speed to send to the motors, through the Motor Control Unit Communication module ( 4 ), and then the loop is repeated. 
         [0180]    The user&#39;s Detection and Recovery Algorithm ( FIG. 7 ) describes how the system creates a virtual link to a user&#39;s skeleton. Once it gets a collection of skeletons, it will check whether it&#39;s a new user or not, by finding if it was already following someone. In case it was not following anyone, it will try to lock on a user by voice, facial, gesture or posture detection. This procedure consists on locking on the user and returning a skeleton and skeleton ID to track. 
         [0181]    If the system was already following a user, it will check if the collection of skeletons has the same tracking ID of the previously tracked user. If the same user ID is found, the skeletal information of that user is updated and returned. If the collection of skeletons does not have the current tracked ID, the system assumes to have lost the user. 
         [0182]    The Active Follow Algorithm ( FIG. 8 ) accepts a user skeleton and parses its global position ( 1 ). X defines how far to the side the user is. Z defines how far the user is to the device, as explained on  FIG. 10 . Based on that information, two different PID controllers provided with those values, one for each axis. The PIDs will return two errors based on predefined set points. Set points are the optimal position on which the user must be, which are configured in the PID. These two errors will define whether the system moves forwards, backwards, to the left or to the right. Having those errors ( 2 )( 3 ), a final speed will be calculated ( 4 )( 5 ). In case those errors are bigger than a predefined threshold, we join the different speeds into a final speed ( 7 ) and return the value. In parallel, the Obstacle Detection and Avoidance Algorithm will return a speed modifier to be multiplied in the final speed calculation ( 7 ). A speed modifier is a value between 0 and 1 which represents the percentage of the speed to be taken into account, 1 being maximum speed, and 0 being minimum speed. 
         [0183]    This procedure will act as a braking system that will make the wheels slow down, in case there is an obstacle approaching. 
         [0184]    Speed Modifier is a value between 0.0 and 1.0 that will reduce or not, motor&#39;s speed, independently for obstacle avoidance or both for obstacle detection. 
         [0185]      FIG. 9  describes the Obstacle Detection and Avoidance Algorithm. This component reads information from distance sensors ( 1 ), parses and updates the data structure ( 2 ). There is a verification in each sensor to check for distances that are smaller than predefined safe zones ( 3 ). If the sensors detect an obstacle in the direction, forwards or backwards of the device ( 5 ), the system will calculate a speed modifier to both motors ( 6 ), slowing down or stopping the device. If the sensors detect an obstacle on the side of the device ( 4 ), the system will calculate two different speed modifiers ( 7 ) to give to each motor, resulting in a curve movement, allowing the avoidance of the obstacle. 
         [0186]      FIG. 10  represents the schematic view of the system. This describes the actuation method of the device ( 2 ). The device ( 2 ) follows the user at all times by correcting its position in relation to the user, so the user remains inside the Safe Zone/No Actuation Zone. 
         [0187]    The system has two axis of actuation, the X axis ( 9 ) and the Z axis ( 5 ). The X axis represents the user&#39;s position sideways in relation to the device. The Z axis represents how far or how close the user is to the device. 
         [0188]    The system has thresholds, minimum ( 4 ) and maximum ( 3 ) X axis thresholds and minimum ( 8 ) and maximum ( 6 ) Z axis threshold. These thresholds will define when the system actuates. If the user to inside these thresholds, the device will not move. If the user is outside those bounds, the device will start moving. If the user is farther from the maximum Z threshold ( 6 ), the device will follow the user. If the user is closer than the minimum threshold, the device will go back. 
         [0189]      FIG. 11  describes how the system calculates the amount of acceleration each wheel needs to be provided with to follow a user during a curved path. 
         [0190]      FIG. 11   a  describes a scenario where the user ( 1 ) is on the right of the device&#39;s ( 2 ) reference setpoint ( 5 ). In this scenario, the system needs to calculate how much acceleration it has to give to the left ( 4 ) and right ( 3 ) motors, so it calculates the angle the user is making with the reference setpoint/Z axis ( 5 ). 
         [0191]    In  FIG. 11   b , the system calculates the angle the user is making ( 6 ). It can create the same angle of curvature ( 7 ) in order to calculate the acceleration for the wheels to create the outer curved path ( 9 ) and inner curved path ( 8 ). These paths will correct the angle ( 6 ) to zero, as shown in  FIG. 11   c.    
         [0192]      FIG. 11   d  describes the speed calculation method for both wheels. The final speed for both left wheel ( 9 ) and right wheel ( 8 ) is calculated with: 
         [0000]      Left Wheel=( R+b/ 2)*Alpha 
         [0000]      Right Wheel=( R−b/ 2)*Alpha 
         [0193]    where R is the Turn Radius ( 11 ), b is the Distance between wheels ( 10 ) and Alpha is the rotation angle ( 7 ). The Instantaneous Center of Curvature ( 12 ) will define on which point the device will turn around. If the Turn Radius is zero, the ICC will be half the distance between the wheels. 
         [0194]    The above embodiments are combinable. The following claims set out particular embodiments of the invention.