Indoor Mobile Robot Navigation and Obstacle Avoidance Using a 3D Camera and Laser Scanner

Thanks to the developing sensor technology in mobile robot navigation and obstacle avoidance there are new and affordable solutions which can be used to accomplish smooth, safe and reliable robot movement in an indoor environment. A laser scanner is a commonly used sensor for detecting obstacles as well as for navigation, but a laser scanner is unable to detect all the different obstacles and terrain features by itself. In this article complementary sensors are examined, on a real mobile robot platform. Communication between the sensors and the controller and the basic control possibilities are also discussed. Finally, an advertising mobile robot is described.


Introduction
In map based autonomous mobile robot navigation a key sensor is always a precise distance measurement sensor, which can scan the area in front of the robot. For this purpose, the most commonly used sensor is laser scanner or LIDAR. The typical method to measure distance is based on time-of-flight measurement. A wave packet is transmitted and having been reflected from the target it gets back to the transmission point and is sensed. Knowing the propagation speed of the wave and the running time, the distance can be calculated. This method is called Time-of-Flight (TOF) measurement. Transmitting sound causes slow and inaccurate measurement, so usually laser light is used. To accomplish two dimensional scanning, a rotation mirror makes the measuring beam scan in a given opening angle. The problem with this sensor is it can only scan plains, so three dimensional scanning requires some additional mechanics to bend the sensor body and change the vertical angle. (Picture 1) With this extra mechanism 3D scanning can be done, but the measurement speed for scanning the whole area in the front of the robot increases considerably.
An experiment was done, using an SICK LMS100 laser scanner. This is one of the smallest and cheapest scanners on the market with 20 m measuring range and 0.25° phase resolution in 270° scanning angle. A 2D scanning takes at least 20 ms, so if more measurements have to be taken with different bending angles, and the mechanics need some time to reach the desired position, the 3D scanning can take a second or even more. If the robot is moving, such a long measuring time is not acceptable.
Laser scanners not only measure distance in different angles, but the reflected signal strength (received signal strength indicator -RSSI) can also be measured. The RSSI value can be immensely useful to accomplish beacon-based navigation. If special reflectors are installed in the area where the robot is moving, the robot can relate its position to the reflector, by detecting higher RSSI, and measuring the distance of the reflectors. (Figure 1) For this purpose the laser scanner has to be installed horizontally at the height of the reflectors, to ensure sight between the scanner and the reflectors. Because of the above mentioned reasons, the horizontal installation of the laser scanner is recommended to ensure fast measurement and navigation. An additional bendable laser scanner for obstacle detection could obviously be useful, but it also increases the price significantly.

Complementary Sensor
There are cheaper sensors that can substitute for the bendable laser scanner, and can even work faster and more reliably. On Figure 2 typical obstacle types can be seen. Ditch detection can be done using short range sensors on the front and back of the robot. (Figure 2/A) Since there is no need for point-like measurement, ultrasonic range finder can be used. In case of short distances (~10 cm) one measurement can be done in a few milliseconds.
If the laser scanner is installed at a relatively low horizontal position, it can detect ground obstacles, steps, but it cannot detect obstacles located higher than the horizontal measuring plain. (Figure 2 There is a need for a sensor which can "see" a 3D area in front of the robot. Using these measurements and considering the physical dimensions of a robot a proper path can be planned.
The most common method for 3D image acquisition is stereo vision, developed in the last decades by many researchers and engineers. The big advantage of stereo vision measurement is that it doesn't need any emitted signals, there are no difficult mechanical structures and moving parts, and it achieves high resolution and simultaneous acquisition of the entire range image. However, stereo vision systems still need custom trimming for the given environment, which makes general purpose implementation difficult. There are different stereo vision solutions on the market, but they are expensive and not too easy to synchronize.
Because of the progress of time-of-flight vision systems, nowadays a new technology, 3D matrix cameras are available at an affordable price (much cheaper than the stereo vision and laser scanners). [2] The Photomixing Detector (PDM) cameras operate on the concept of TOF, and consist of an illumination source emitting modulated infrared light, an optical lens and a PDM chip. The PDM chip is a special complementary metal-oxide semiconductor (CMOS) pixel array which can detect the phase shift between the transmitted and received light and from the phase shift time and distance from the reflection point can be calculated.

IFM O3D201 PDM 3D Camera
The tested camera is an IFM O3D201. It has 64 × 50 pixel resolution, 20 Hz sampling rate, and about 6 m measuring range. The angle of aperture is 30° horizontally and 40° vertically. For reliable detection the object must be detected by at least two pixels. (Table 1  From the Table 1 and Figure 4 it can be seen that with O3D201, a small mobile robot (~600 mm wide), can detect obstacles when they are about 1 m away, but at this distance a 22 mm reflecting surface is needed. If the object is smaller, the robot does not detect it, but when it is closer, it falls out of the view of the 3D camera, and probably causes the robot to run into it. The real measurements with the camera show that even much smaller objects can be detected, but the reflecting surface quality also influences the size of the detectable object. A more expensive 3D camera with better resolution can solve such problems. This example only explains the limitation of the camera used.

Camera Interface
There are two IP ports used for the interface of the camera, one for setting up the camera, and one for getting the image data. The two ports are interfaced completely separately, with the exception that the camera trigger in manual mode is done through the settings port. As default, the settings port is set to 8080, and the data port is set to 50 002, but these can be changed with a configuration software, like the IP address. In addition to the two network interfaces, the camera also has a manual trigger and several IO ports with other purposes. The settings port is interfaced with XML-RPC commands. The camera manufacturer supplies a configuration software and a software library to make the integration easier.

Experimental Mobile Advertising Platform
In this article a real mobile robot application is described, which has been built at Óbuda University, in Hungary. The aim of the robot is to advertise companies at fairs and exhibitions by moving between visitors, playing advertisement videos, and carrying leaflet holders. It is essential for the robot to be absolutely safe. It is not allowed to run over the visitors, or to move to other companies' stands. The accomplished system can be seen in Picture 2.
Peter KUCSERA: Indoor Mobile Robot Navigation and Obstacle Avoidance Using a 3D Camera…

Control
The controlling system is based on a Phoenix industrial controller (Programmable Logic Controller -PLC). A medium class PLC is used, which can handle Ethernet TCP/IP and RS232, serial communication. There are on-board integrated I/O-s and industrial bus couplers, so with connected extension modules new functions can be integrated. Only two servo drive modules (connected next to the PLC) are needed to handle the servos. This results in a very flexible system, which can be easily improved. Our whole controlling algorithm required only 32% CPU usage, so there is still opportunity to improve the program. It is really practical that the Ethernet port is integrated, since it makes it easy to communicate with other devices like the laser scanner, the 3D camera and the operator panel (Human Machine Interface -HMI).

Actors and Mechanics
The simplest mechanical structure was chosen, which has two independently driven wheels by two brushed DC motors. A third support wheel is used to make the platform stable, and support it. Encoders were used to have feedback from the wheels. The wheel speed is controlled by the drives using PID 2 closed control loop. Applying this structure has a great advantage. From the rotation of the wheels, when they are not slipping, the position can be calculated and used for navigation.

Additional Sensors
As it was mentioned before, for ditch detection an ultrasonic distance measurement sensor can be used. A TURK industrial sensor was chosen with a measuring range of 3-30 cm, and 4-20 mA analogue output.
The robot has a moving frame around the robot body. If the robot bumps into something, the frame movement can be detected by inductive proximity sensors (and the frame also decreases the collision force).
At exhibitions and fairs a colour detecting sensor can also be installed to detect ground colour. With this sensor, the robot can be kept on a coloured carpet.

Communication
Standard Ethernet communication was used for the whole system. Since the PLC, the laser scanner, the 3D camera, the operator and a webcam were connected, a switch was needed to connect these components together. Standard WLAN communication was used to communicate with the operator. In the system, industrial Ethernet components were used. This equipment is more expensive than the office components, but it is more reliable, it is easier to handle them, and they also have some extra functions. When the communication between the laser scanner and the PLC was tested, it was possible to mirror one communication port of the switch to another. This way, with a network analyser program, we could see the TCP/ IP packages between the two communicating devices, although the packages were not sent to our computer. The WLAN devices have a fast roaming function, so when a large area has to be covered by more than one Access Points, the client can switch faster between them.

Power Supply
In case of a mobile robot, providing energy for the electric systems is quite an important problem. On our robot we have two DC motors with 120 W maximum power consumption. We also placed an industrial PC on the robot, which has about 80 W power need. Compared to these two loads the power consumption of other components is negligible. At least one hour continuous working is needed, so a 12 Ah maintenance-free lead-gel rechargeable battery can supply the system properly.

Operator Panel (HMI)
To operate the system, an operator computer is used. On this computer, it is possible to monitor the state of the robot, manipulate its behaviour, switch to manual mode and give commands manually, and also see the pictures coming from the camera which is on the robot. Reading values from the PLC is possible by using a special server program, called OPC server. The OPC server gives us an open source platform to read the PLC registers. The visualisation of the read values can be accomplished with an embedded software, but in industry, there are ready-to-use software packages, called SCADA software. Since we used a Phoenix Contact Controller, it was logical to use the SCADA of the same company which is called Visu+. With Visu+ it was simple to establish communication with the PLC, reading and writing registers, and also to visualise the picture of the camera. The whole control system structure with the main components can be seen in Figure 5.

Controlling Algorithms
The control of the robot can be divided into two main parts: • Obstacle detection and avoidance and safety control; • Navigation, position control and path tracking. The robot can detect obstacles with the laser scanner, in which different zones can be defined, and if an obstacle is detected in a zone, a two-state output of the scanner changes logical state, and this signal can be used in the safety controller.
The data measured by 3D camera can also be read and obstacles can be detected. For this, a trigger has to be sent to the camera and the IP packages coming from the camera have to be received and processed.
The ultrasonic range sensors and the bumper are also wired to the safety controller, and an emergency switch is also installed. The emergency controller has the right to switch off the drives and, in case of a collision, initiate a short back movement. This part of the program has to be run on a higher priority task and cannot be overridden by the rest of the program.
The actual position can be calculated from the wheel movement, but this calculation always has some errors, and the errors are integrated. Detecting the reflectors with the laser scanner, beacon based navigation can be accomplished (but in case of this measurement it has to be considered that the robot is moving). Using these two methods, fast and accurate positioning can be achieved. The robot has to follow a predefined path. If there is an obstacle on the path, the robot stops, and waits. After a given time, the operator is warned. The operator can switch to manual mode and using a live picture coming from an IP camera, the robot can be controlled and can bypass the obstacle.
The block structure of the control algorithm can be seen in Figure 6.

Summary
In this article, an autonomous advertising mobile robot development was introduced. The aim of the project was to develop a working advertising mobile robot platform for exhibitions. Mainly industrial components were used in the robot. The navigation is based on a laser scanner, which detects special reflector beacons and calculates its position from these reference objects. The obstacle avoidance is accomplished with a 3D camera and ultrasonic distance measurement sensors. The main controller is a PLC, the communication is based on industrial WLAN, and Ethernet components. For the operation and manual control an industrial PC with SCADA software is used. The project has been exhibited with great success at many fairs and exhibitions.