CompaRob: The Shopping Cart Assistance Robot

Technology has recently been developed which offers an excellent opportunity to design systems with the ability to help people in their own houses. In particular, assisting elderly people in their environments is something that can significantly improve their quality of life. However, helping elderly people outside their usual environment is also necessary, to help them to carry out daily tasks like shopping. In this paper we present a person-following shopping cart assistance robot, capable of helping elderly people to carry products in a supermarket. First of all, the paper presents a survey of related systems that perform this task, using different approaches, such as attachable modules and computer vision. After that, the paper describes in detail the proposed system and its main features. The cart uses ultrasonic sensors and radio signals to provide a simple and effective person localization and following method. Moreover, the cart can be connected to a portable device like a smartphone or tablet, thus providing ease of use to the end user. The prototype has been tested in a grocery store, while simulations have been done to analyse its scalability in larger spaces where multiple robots could coexist.


Introduction
Recently, the proliferation of big supermarkets and shopping centers, added to the rapid development of robot technology, has produced robotic systems for helping people in these particular environments. Some specific types of applications, such as enhancing the physical capabilities of the user, helping in the transport of products by providing a mobile shopping basket, and improving the information given to the user in a more intelligent manner, have been described in scientific literature.
Assisting elder people in their environments is a way of significantly improving their quality of life. As an example, networks of sensors and actuators embedded in buildings (i.e., Ambient Intelligence) can provide useful functions. In fact, several European Union projects have focused on this particular subject. However, helping elderly people outside their usual environment is also necessary, to help them to carry out daily tasks like shopping.
Population ageing is a concern for most developed countries and it is forecast that it will accelerate in the years to come. The main goal in the field of assistance robotics is to help users in their everyday lives, in tasks such as moving around, handling objects, or interacting, possibly remotely, with other people, either friends or relatives, or professionals. In this context, robot devices are aimed not only at assisting people, instead of replacing them, but also at adopting the role of companions. Therefore, they must be designed to interact with untrained people, and a great effort must be made to enable users to accept them easily.
Moreover, these assistance robots may have to operate in unstructured environments that cannot be customized, such as homes, shops, or parks. This implies a need for the robot that is conscious of its surroundings, which requires the use of a variety of sensors. In addition, many of the things that need to be handled, such as food, do not come in standard sizes and shapes, as they often do in an industrial context.
In this paper we present a person following shopping cart and assistance robot named CompaRob, the companion robot (Figure 1), capable of easily helping elderly people to carry products in a supermarket. First of all, the paper presents a survey of related systems designed to help people in supermarkets and commercial malls [1][2][3] and to help people shopping and carrying their articles in a supermarket [4,5] using different approaches, such as attachable modules and computer vision. After that, the paper describes in detail 2 International Journal of Distributed Sensor Networks Figure 1: CompaRob: a person following shopping cart assistance robot based on the Erratic robotic mobile platform equipped with a shopping basket.
the proposed system: a mobile platform that implements person following behaviour that uses ultrasound and radio transmissions technology to provide robustness and ease of use from the point of view of the user. Finally, the paper analyzes the scalability of this system for increasing the number of robots in a simulated environment and its usability in a small grocery store.

Information and Help Systems.
In the context of information and help systems, the services that those systems provide to the customers in malls and big supermarkets are mainly centered on indicating the location of certain shops and offering nonspecific advertisement information based on customer identification.
In [1] a system is described that has the ability to accompany the user in the search of a list of articles previously specified. The system does not carry the food. Moreover, the robot performs navigation and obstacle detection by using a camera and a laser range finder.
Using a Robovie IIF platform with humanoid aspect, in [2] a system is described that interacts with the persons in a mall and is able to give them directions about the localization of the products or even recognizing them through RFID tags. The user input is provided by means of a speech recognition system. An intelligent multirobot system for big stores is proposed in [3], where the robots may develop cooperative tasks in order to detect available space in the shelves, checking the real location of the products by looking at their barcodes, knowing the number of articles in a shelf by using RFID tags, making an inventory of the available products, and helping customers to localize specific articles.

Shopping Cart Robots.
In recent years, some studies have addressed the idea of developing an autonomous shopping cart. As an example, the possibility of developing a porting system for large-sized facilities like a shopping mall or an airport is studied in [4,5]. To achieve this purpose, they have attached a drive system to a shopping cart, in order to transmit power to the cart wheels. To perform the desired person following capability, they use a stereo camera installed in front of the cart. One advantage of this system is that the person does not have to wear any attached element. In contrast, as they are using recognition by colour segmentation, the person has to wear clothes of a specific colour. Additionally, they have to face all the problems related to computer vision: high computational cost, light variability problems, background colour interference problems, and so forth.
A more complete prototype is proposed in [6], composed of two robots, a companion and a carrier. In order to localize the position of the companion, a set of cameras is used, which allows the detection of robots and humans present in the scenario. The carrier robot is able to follow the companion one, which is able to guide the customer to the desired position, as well as follow him while waiting for the next action to be performed. A system for tracking shopping carts in indoor environments is developed in [7]. This system consists of the installation of a computer and a video camera on the shopping carts, for them to be able to self-localize and send their position to a centralized system. We find this system interesting, as it could also be a first step to having an autonomous cart with person following capabilities, but as a disadvantage, it requires a complex system to be installed on the cart, and a building with preexistent infrastructure.
The study carried out in [8] concludes that elder people interact in a better way with robots carrying the shopping basket when they have a humanoid aspect and provide conversational capabilities, although this fact implies a high cost and complex system. In [9,10] a shopping help system is developed, able to obtain the shopping list from a mobile device through a QR code, carry the shopping basket and show at each moment which articles are on it, and communicate with the supermarket computer system to inform about the location of articles. It uses a laser range finder, sonar, and contact sensors (bumpers) to navigate.
A special case is presented in the system proposed in [11], where the user controls the robot remotely by specifying the products to be grasped. Then, the robot navigates through the supermarket to perform the task autonomously. A lot of work is provided in the design of the artificial hand used to grasp a wide variety of food products. No details are provided in the paper about the localization and navigation techniques used by the robot. It seems a very useful system for handicapped people. On the other hand, some elderly people prefer being present in the supermarket to touch the products and make a more detailed selection.

Robot Person following Behaviour.
Person following performed by a robot (see Figure 2) has traditionally been an important research topic in the machine vision area. It is natural to imagine that mobile robots of the future, especially those operating in public places, will be expected to have this skill. As an example, in [12,13], two different efficient persontracking algorithms for a vision-based mobile robot using International Journal of Distributed Sensor Networks 3 Figure 2: Robot following an elder person using ultrasound and radio sensors. An ultrasound ring transmitter is attached to the elder person's leg. The robot can follow the elder person using the received signals.
two independently moving cameras are presented. With this approach it is possible to carry out real-time person following in indoor environments. In [14], the authors describe a robot with following function and returning function using a monocular camera.
A different human tracking method using template matching in range data obtained from a laser range finder (LRF) is described in [15]. The block matching is performed using stored templates, which correspond to appearances of human legs. In [16], the authors use laser scans and filtering techniques for tracking moving objects and persons. In [17], the authors use a laser-based person-tracking method and two different approaches to person following, directionfollowing and path-following, and a combination of both methods is proposed, a hybrid approach, with the robot automatically selecting which method to use. In [18] the laserbased leg detector is combined with a Kinect system to detect the user position, predict its trajectory, and make the vehicle follow it. In [19], the laser range finder is combined with two cameras to detect the user position and the presence of obstacles, while the main goal of the paper is to provide the robot with different behaviour strategies (e.g., Go To User, Follow User, Local Search, and Global Search) and motion ways (Free Space and Cluttered Space) selecting the appropriate one in every situation. A robot tracking system based on a camera and a lightemitting device is used in [20]. Their purpose is to develop an autonomous mobile robot which can follow a human being. The robot with a camera looks at a human having a lightemitting device. The device consists of two LEDs. The robot can estimate the position of the human from the distance between two LEDs, and the direction, from the position of the LED on the captured image.
In [21], a double sensor system is used to perform person following by a robot. The robot can accompany a person using vision-based target detection and avoid obstacles with ultrasonic sensors while following the person. In [22] a camera is used to detect both the person to be followed and the environmental obstacles, while RFID tags are used to obtain the robot's localization.
In [23], a shopping help robot is proposed for visually impaired people, using RFID tags for product identification and a laser range finder for localization and navigation, while, in [24], RFID is mixed with visio techniques to identify the user in a crowd and track his or her position in order to make it possible to follow him.
As can be seen, several approaches have been developed using different kinds of sensor information: computer vision, laser range finder devices, light-emitting diodes used as a light pattern, ultrasonic sensors to detect obstacles, and so forth. In Table 1, a comparison between the reviewed systems is shown.
The system proposed in this paper is a shopping cart robot that implements a person following behaviour. The objective is to have a simple and robust system, easy to use, specially for older people, and that represents a relatively low cost solution compared to other approaches. The proposed person following system is based on a combination of radio and ultrasound signals to perform measurements between the person and the robot. Once the system takes a pair of measurements, a simple operation estimates the position of the human to be followed. The implementation requires a couple of measurement devices installed on the robot and an ultrasound ring attached to the person's leg. This detection technique, as different to other implementations, avoids the use of cameras and the large amount of computation necessary to image processing.
This system has already proven its efficiency in the context of the EU GUARDIANS project [25,26], where the risky and low visibility environments required a robust and reliable system. Its strong points are the simplicity, robustness, and its independence to changes in visibility conditions. Compared to other proposed methods, computational requirements are low, so it is possible to implement the whole system in a costeffective programmable board.

System Description: The Shopping Cart Assistance Robot
In this section, the proposed shopping cart assistance robot named CompaRob is presented. The temporal development of the system and the achieved milestones are represented in Figure 4. To the best of the authors' knowledge, it is the first shopping assistance robot that combines modularity, simplicity, and ease of use at a reasonable cost that is especially targeted to help the elderly people in such a common activity like doing shopping. As it will be described below, it is based on a commercial robotic platform and several accessories like an RFID tag reader that provides additional control of the products that are being added to the cart. Moreover, when the system is connected to a mobile device like a tablet computer or smartphone, it provides additional information to the user and allows the adjustment of different person following parameters.

The Mobile Platform.
The CompaRob is based on the Erratic-Videre mobile robot platform [27], a platform which has been equipped with a shopping basket. It is a compact 4 International Journal of Distributed Sensor Networks and powerful platform and is capable of carrying a full load of robotics equipment, including an integrated PC, laser range finder, and other sensors. The selection was motivated because it is a simple platform, reasonably priced, highly expandable, and robust. Additionally, this platform is very flexible, as it has been designed to work either with an onboard PC, using the power supply from the robot batteries, or with a laptop, with its own battery. Additionally, the hardware is compatible with Player/Stage [28] and ROS (Robot Operating System) [29], both open-source and widely employed in the robotics community. The platform is equipped with three 12V 7AH lead-acid batteries, providing a reasonable autonomy for the described purpose (around 2 hours for a normal shopping use). The platform weighs 13.5 Kg including the base, batteries, and accessories. The supported payload is 20 Kg.

Ultrasound Localization
System. The localization system used in the shopping cart robot has been adapted from the previous results obtained in the field of person following under emergency situations and low visibility conditions [30,31]. This system uses ultrasound-based signals to make measurements between two points (see Figure 3). It also uses radio signals for synchronization purposes. The developed ultrasonic localization system involves the following devices: (i) Hagisonic sonars (transmitters/receivers): two different models of ultrasonic sonar [32] have been studied and used for implementing time difference of arrival (TDoA) in order to derive position information.
Those sensors (HG-M40DAI and HG-M40DAII) are ultrasonic object detectors and range finders that offer very-short-to-medium-range detection. The AII model offers a special narrow directional response, 25∼30 degrees in vertical direction to minimize the reflection of unwanted sound waves.
(ii) Radio modules, standard radio transmitter/receiver working at 433 MHz: those modules allow the modulation of digital signals up to 1 KHz at maximum distances of around 20-30 m. Those wireless modules are intended to provide a synchronization mechanism, by sending real-time signals between the different robots that could be present.
(iii) Handy Board, general purpose board based on the 68HC11 microcontroller [33]: it is widely used in the field of mobile robots for educational, hobbyist, and industrial purposes.

TDoA with RF and Ultrasound.
With this approximation, we try to determine the 2D position of a physical target (i.e., a person) with respect to a mobile robot by using the time difference of arrival of two different signals each one with a known propagation speed (i.e., radio and ultrasound; see Figure 5). The first step was to determine the feasibility of the use of ultrasound signals to obtain distances. In order to do that, several laboratory experiments have been done to evaluate some available ultrasound transmitters/receivers using wires to connect both transmitter and receiver. Those sensors (HG-M40DAI and HG-M40DAII) are ultrasonic object detectors and range finders that offer very-short-to-medium-range detection. The AII model offers a special narrow directional response, 25-30 degrees in vertical direction to minimize the reflection of unwanted sound waves. We obtain larger transmission distances by removing the frontal cover of the sensors that acts as an anisotropic filter.
After performing those experimentations, we concluded that the measurement of the time of flight of ultrasound waves could be a feasible way of estimating distances. The estimation of distances by measuring the time of propagation of ultrasonic waves can be useful for several localization methods based on the knowledge of some distances. Further experimentation demonstrated that this technique offered a good performance of the sensors for distances up to 7-8 meters.
The next step was to introduce synchronization radio signals in order to estimate distances between two independent nodes (i.e., a robot and the person or two robots). To achieve this purpose, the theoretical idea of the time difference of arrival (TDoA) was implemented (see Figure 5). The idea is to measure the time of flight of the ultrasound signals using the radio signal as synchronization method. The time of flight of the radio signal is considered constant for the range of distances that we are going to measure (from 0 to a maximum of 8 meters).
The most challenging task for implementing the TDoA was to find a hardware platform that could take those measurements, being able to control both, radio and ultrasound sensors. After exhaustive research about its capabilities, the Handy Board [33], widely used for teaching purposes in Jaume I University, was used. Some additional electronics were necessary for coupling those components to the board (see Figure 6). The programming of the board was done with a mixture of C programming language for the global routine and assembly language for the real-time reading and writing of signals.   Figure 5: TDoA principle for measuring distances between robots by using the time difference of arrival of two different signals (electromagnetic and ultrasonic) each one with a known propagation speed.

Measurement system board
Ultrasound module Rx radio module The measurement capabilities of the boards were tested, and the result is that the obtained measurements were quite accurate, being able to measure up to 8 meters with a maximum error of around 3 cm.

Trilateration for Position Determination.
The prototype presented in this paper uses a couple of measurement boards to determine the 2D position of the person. The two radio/ultrasound measurement systems (see Figure 7) are separated by a known distance . Figure 7: Erratic robot prototype, to be used as a shopping cart, equipped with a couple of radio/ultrasound measurement systems.

Measurement units
With this configuration, and using an algebraic trilateration method (see [34] for a nonalgebraic approach based on constructive geometric arguments), we can measure the distances from an emitter located at point (see Figure 8). The point is the position of the person that we want to locate (i.e., the elderly; see Figure 3).
In order to obtain the ( , ) coordinates of the point we proceed as follows: the point is in the intersection of the two circumferences 1 and 2 . Let the equation of the circumference be ( − ) 2 + ( − ) 2 = 2 , where ( , ) is the center, is the radius, and ( , ) are the points of the circumference.
Knowing both center points (− /2, 0) and ( /2, 0), and the distances 1 , 2 from the object located at ( , ), we can write the following system of equations: (1) Solving this system of equations, we obtain the point ( , ) where the emitter is located: The equation for the coordinate provides two solutions (positive and negative), but we only use the positive solution because ultrasound sensors are only receiving signals from both positive quadrants, as they are mounted in positive direction and not in negative direction. Once we know the relative position of the point with respect to the robot, a control algorithm computes the resultant linear and angular speeds for controlling the robot.
International Journal of Distributed Sensor Networks 7 P(x, y)

Trilateration Geometrical Error Study.
In order to assess the error produced by individual measurements when using the above trilateration method, a geometrical study was made for the most common configurations. When using the implemented trilateration technique, two independent measurements 1 and 2 are taken by two measuring devices (see Figure 8(a)), from the receiving points (− /2, 0) and ( /2, 0) to the object located at ( , ), equipped with a transmission device. Individual measurement errors in 1 and 2 produce an uncertainty area (see Figure 8(b)) when calculating ( , ) by trilateration.
As an example, in Figure 9, we present a geometrical representation of the uncertainty areas in which the point ( , ) could be if we consider an individual error for each measurement of ±5 cm (an upper bound, typical error is around ±1 cm). The uncertainty area is represented for increasing distances from the emitter to the receivers (from 1 to 8 meters). In this figure, the emitter is situated at 40 ∘ from the perpendicular to the segment that connects the two receivers. When increasing the distance, the uncertainty area becomes bigger for the horizontal coordinate (becomes wider) but remains small for the vertical coordinate. The horizontal uncertainty is asymmetric due to the angular displacement of the emitter. The error region increases with the distance from the transmitter to the receivers but it can be reduced by increasing the separation distance ( ) between receivers that, in practice, is limited by the robot dimensions.
Even this theoretical error study reveals that the position determined by the method can be affected by an important horizontal error; in practice, the individual measures obtained from the devices are much smaller than the theoretical maximum, so the position of the person can be accurately determined and tracked by using a simple filtering technique.

Attachable Ultrasound Ring.
The shopping cart assistance robot is able to follow an elderly person that has an ultrasound ring attached to his or her leg (see Figure 10). This prototype device is composed of a 9 V battery, a radio transmitter, and five ultrasound transmitters. The device is  continuously emitting radio and ultrasound signals in order to indicate to the assistance robot the position of the elderly person.
The particular design of the prototype was chosen so that it can be easily attached to the leg and simple in usage from the point of view of the user (only requires to use an on/off switch). Its design is simple and discrete, and its simplicity implies also reliability. It is also important to take user acceptability into account, especially when designing products that are designed for the elderly. After testing the system with a small pilot group and gathering the opinion of several potential users, we can conclude that the device is well accepted among elderly people. It would even be desirable not having to use any attached device, the ultrasound ring is a necessary element for the robot to work, and it does not affect in any way the mobility of the person.

RFID Tag
Reader. The CompaRob has been equipped with an RFID tag reader, allowing it to keep control of the products that are being added to the basket (see Figure 11). The list of products is sent to a user interface (described in Section 3.8) so the user can see the list of purchased products and their total cost. The tag reader is a Skyetek SkyeModule M2, which connects to the on-board computer using a USB interface.
The software architecture includes a C++ server running in the robot's on-board computer, which provides a TCP/IP interface to an Android device. At the moment of writing the server is running on a Windows Virtual Machine, due to some drivers issues, which made it impossible to run the server directly on the Linux operating system and ROS platform.

User
Interface. The CompaRob is connected wirelessly to a tablet computer or smartphone, allowing the user to check the shopping list. Moreover, the user can control some parameters of the robot related to the person following functionality (described in Section 4) by means of a setup configuration screen.
In this context, the user is able to, for example, adjust the following distance, as well as modifying the following speed and the robot turn delay (see Figure 12). This will allow the user to tune the way he/she wants the robot to perform. Moreover, by using this interface, the user can know other robot parameters, like the battery status and so forth.

Person following Functionality
The person following functionality is implemented in a computer program allocated on the on-board PC of the robot.
The PC runs an Ubuntu 12.04 LTS distribution, and the robot is controlled using ROS, thanks to the erratic player node that wraps the Erratic driver found in Player project. The system functionality is partially implemented in Java (the interface to the measurement units and the positioner) and Python (using rospy, a pure Python client library for ROS), to implement the person following functionality and to interface with ROS and the hardware platform controller.
The person following functionality is implemented using a 4-state machine (see Figure 13). Each state represents one different position of the followed person with respect to the robot (see Figure 14). The 4 states are described as follows: (i) Follow: the current position ( , ) of the followed person is into the working area tagged as Follow (see Figure 14). The control program computes the robot speed in a way that the position of the person ( , ) converges to the desired position ( , ). To achieve this goal, the rotation speeds of both robot wheels are computed using a proportional controller.
(ii) Wait 1: the current position ( , ) of the followed person is into the nearest area, tagged as Wait 1, at a distance from the robot that is less than that desired. This situation happens, for example, when the person comes back to take something else from the shelves, or when the person puts something into the cart. In this state, the robot can behave in two different ways depending on the user configuration: (1) to stop moving, so that the person can approach the robot to put something on the basket or (2) to slightly move backwards, providing more freedom to the user when moving forwards and backwards. In this latter case, the user can leave things in the basket by approaching to the robot from the side (Wait 2 state).
(iii) Wait 2: in this state, the person has moved to the side of the robot and leaves the coverage area of ultrasound receivers. This situation happens, for example, when the person wants to leave something on the basket, or when the person changes direction. In this case, the robot waits for a configurable period of time (turn delay), just in case the person comes back to the coverage area. If the person comes back to the coverage area, the new state will be Wait 1 or Follow. Otherwise, after waiting an amount of time, the program will transition to the Search state.
(iv) Search: the robot starts rotating slowly in order to search for the person. This situation happens, for example, after the person has changed direction. Once the person has been located, the possible next states will be Follow or Wait 1.
When the program starts its execution, both measurement units installed on the robot are queried. Depending on the read value, the initial state will be one of the following: Follow, Wait 1, or Wait 2. After the initialization, the program will evolve as described above.
International Journal of Distributed Sensor Networks 9 (a) (b) Figure 11: RFID tag reader, allowing keeping control of the products that are being added to the basket (a). The list of products is sent to a tablet computer (b).
(a) (b) Figure 12: User interface to get the actual products' list (a) and adjusting some parameters related to the robot person following navigation (b).

Follow Wait_1
Wait_2 Search Figure 13: Person following behaviour 4-state machine. Each state represents a different position of the followed person with respect to the robot.

Simulation Results
Several 2D simulations of the robots using Player/Stage and ROS have been carried out to test the feasibility and scalability of the presented system and are described below. The videos of the simulations are available online [35].

Small Grocery Store
Simulation. The first simulation recreates a small grocery store (see Figure 15), in which there are five people doing shopping and five robots each one following one of the five persons. The environment is based on a small grocery, consisting of three corridors with shelves on each side. The customers move along the corridors and stop in front of the shelves to pick a product.
We were particularly interested in the scalability of our system; that is, how would the system perform as the number of robots increases? Due to the interferences between the sonar sensors of different robots, the frequency of the pulses is decreased. In this simulation the positioning system provides new measurements at a rate of merely 2 Hz. Such low frequency allows the group of robots to make measurements of each person in turn, without overlapping.
Robots are programmed to follow the persons at a target distance of 1 m. Each robot follows the person depicted in the same colour. Figure 16 presents the distances between International Journal of Distributed Sensor Networks  each person and the corresponding follower robot, during an interval of 70 seconds. In such an interval, a common person performs between three and five stops and motions.
When a person starts to move, the distance to the robot increases momentarily, with peaks at about 2.2-2.4 m, since the velocities of robots are limited, and the feedback control loop is purely proportional. But the positioning system guides the robot towards the person, following the appropriate path until the person stops again in front of a shelf.
Upon the person approaching the robot below a given threshold, it will move slowly backwards to keep the preselected distance (e.g., see the distance of the robot r 5 in the plot between seconds 60 and 70), according to the person following functionality described in Section 4.

Large Grocery Store Simulation.
The previous follower algorithm works only for small distances. We have tested a more complex follower behaviour in a larger shopping environment. Figure 17 depicts the new simulation environment, consisting of a larger shop with a higher number of corridors and shelves. The robots are programmed to calculate a trajectory towards the position of the person, given the map of the environment, and a proper self-positioning system. We have run a simulation of the five people doing shopping over a period of six minutes. Distances between each person and the corresponding follower robot are shown in Figure 18. Each robot updates the position of the followed person at 1 Hz. The preprogrammed distance is 1 m and most of the time the robots remain within a distance to the person shorter than 2.5 m. But the distance may increase due to the delay in the update, and the moving obstacles (other persons and/or robots). With our available sensors, the positioning of the person can be reliably determined up to a distance of 8 m (threshold shown in the figure). Two robots (r 1 and r 4) approach such distance in two instants of the simulation. In such cases, the robot should stop and wait for the person to come within the detection distance once more.

Field Experiments (I): Person following Functionality in a Small Grocery Store
To evaluate the usability, feasibility, and most convenient robot following parameters in a real environment, several experiments were carried out in a small grocery store ( Figure 19). The system was tested with a small pilot group of elderly people, with the aim to get some feedback related to usability and adequate robot parameters. All of them were required to do their usual shopping, following approximately the trajectory shown in Figure 20. Two different linear following speeds were selected, first at 0.2 m/s and then at 0.3 m/s, following the preferences of the users. For each selected speed, the distance from the robot to the person was recorded during an interval of 70 seconds, as in the first simulation experiment. The  aim now is to test the robustness of the proposed following method at low measuring rates (i.e., 2 Hz) coming from the positioning system. Also, different following distances were tested = {0.2, 0.5, 1.0}, to observe the behaviour at different linear speeds. As can be seen in Figure 21 (linear speed 0.2 m/s), when the person starts to move, the distance to the robot increases and the robot tries to minimize it (using a simple proportional controller) to the preselected following distances depicted in horizontal lines. The small ripple pattern that can be observed in all the graphs corresponds to the walking pattern, as the ultrasonic ring was attached to the person's leg. This pattern does not affect the follower functionality in any way. As can also be observed, when the person does a stop to pick something up, the distance decreases as the robot approaches the person. This happens faster in Figure 22 as the linear speed is 0.3 m/s, slightly greater than in the experiments depicted in Figure 21 (0.2 m/s). When the person approaches the robot, for example, to put something into the basket, the robot remains static if the user approaches from the side, according to the state machine explained in Section 4. Contrarily, if the user approaches from the front, the robot begins to move slowly backwards to keep the predefined distance, providing more freedom to the user when moving along the corridor.
For the tested following distances, the robot behaves adequately, but if greater distances were required (i.e., a user that prefers a greater robot distance), an obstacle avoidance system should be used to avoid collisions. To tackle this issue, the platform is also equipped with a Hokuyo URG-04LX Scanning laser range finder (LRF) [36] and uses a local planner for obstacle avoidance, based on the Dynamic Window Approach [37] to local navigation on a plane. Given the reference position of the person to follow and a costmap obtained by a laser range finder, the local planner produces velocity commands to send to the mobile base. The information for the sonar needs to be combined with the laser measurements in order for the detected person not to be treated as an obstacle. Nevertheless, with the use of an LRF this device increases significantly the cost of the platform, so as an alternative, a much cheaper optical triangulation-based distance sensor (like the Sharp GP2D12 distance measuring sensor) could be used instead. Further details, like a video with the person following system in action and some preliminary usability results can also be seen online [35].

Field Experiments (II): Usability Tests with Two Robots in a Large Grocery Store
Based on the first user experiments and suggestions, an improved version of the robot has been designed, and a first prototype (named CompaRob-2; see Figure 23) was tested in a larger grocery store (see Figure 24). In the evolved version, a standard shopping cart bag was fitted to the robot by means of a PVC structure, improving the ergonomics and the aesthetics. The previous prototype had a 22 × 25 × 40 cm ( × × ) bag, while the improved one is 65 × 29 × 44 cm (see the details in Figure 25). The upper part of the PVC structure can be used as a handle both to slightly lean on it and to move the cart. Also, the height of the bag has been increased, making it easier to put articles inside and increasing as well the capacity of the cart. Below the bag, a specific protected space has been enabled to hold the computer and sensors.
In this second experiment, the new platform was teleoperated, using a remote laptop connected wirelessly to the computer on board the robot, and using the ROS teleop package. The objective at this prototyping stage was to get as much feedback as possible from users before the design and  Appropriateness of the attachable leg ring: Appropriateness of the use of a hand watch: Overall satisfaction with the CompaRob robot: Overall satisfaction with the CompaRob-2 robot: comfortable than the previous one, mainly with the new design of the bag. A summary of the main ideas brought by the users in order to improve the system is the following: (i) Make the robot even more light, in order to allow the user to move it manually in case of necessity.
(ii) Design a tool or elevator that helps elder people to extract the goods in a simple and easy manner.
(iii) The use of an intelligent arm watch instead of an attachable belt to the leg.
Moreover, a set of four questions was asked to the four people that tested the robots. Their responses to a Likert 1-5 scale are summarized in a chart ( Figure 26). As can be seen, all of them are very satisfied with the new design, and they mainly suggest the use of an intelligent arm watch as an interaction device with the robot.

Conclusion and Future Work
In this paper we have presented a person following system for a mobile assistance robot that is based on a combination of radio and ultrasound signals to perform measurements between the person and the robot. One of the objectives of the work was to develop a simple, reliable, and easy to use system that could provide freedom of movements for the elderly people. To do so, the mobile robot follows the person by reading the signals from an ultrasound ring attached to the person's leg.
A second important objective was the user acceptability. After testing the system with some potential users, we were able to conclude that this shopping cart robot is well accepted among elderly people, because they understand that it is an improvement in their lives, a technological advance, instead of something that replaces their physical capabilities.
As future work, we are planning to integrate the recently proposed indoor radio-based localization system [38] into the shopping cart. This system is based on fingerprinting techniques and can be applied to robot and person localization in order to know their position in a particular environment [39], just using simply the WiFi/ZigBee transceiver information, and providing a 1.5 m localization error. This could improve the robot navigation inside a shopping center, and the robot could also show the person where to go in order to find a particular product. Combining the radio/sonar localization for navigation and the fingerprinting global approach, more sophisticated applications will be possible. In fact, further work can, for example, provide a more intuitive user interface by providing the possibility of searching for the available products in the store, creating a wish list, and let the robot conduct the user to the proper place in an efficient and autonomous manner. This would require a better integration of the robot interface with the store database. On the other hand, if the user wants to lead the navigation, the smartphone