Simulation of Obstacle Avoidance for Mobile Robots using Vector Field Histogram in Player/Stage Platform

DOI : 10.17577/IJERTCONV4IS19002

Download Full-Text PDF Cite this Publication

Text Only Version

Simulation of Obstacle Avoidance for Mobile Robots using Vector Field Histogram in Player/Stage Platform

T. Mohanraj

Assistant professor, Department of Mechatronics Engineering,

Kongu Engineering College, Erode.

S. Prasanth

Undergraduate Student, Department of Mechatronics Engineering,

Kongu Engineering College, Erode.

G. Kalaiarasan

Assistant Professor, Mechatronics Division, VIT University, Vellore.

Abstract Mobile robot is an automatic machine which can move in a given environment. It can v i s u a l i z e , feel and understand the circumstances and accordingly make decisions. With the growing importance of these machines, its functionality and algorithmic advancement also improved. In such a scenario, obstacle avoidance is widely recognised as a fundamental and most complexes problem in Robotics. Obstacle avoidance is achieved by many methods like Edge-detection, Potential Field method and Vector Field Histogram (VFH). It is found that VFH overcomes the limitations of other methods. In this work, the obstacle avoidance for mobile robots has been implemented by the vector field histogram (VFH). This method permits the detection of unknown obstacles and avoids collisions while simultaneously steering the mobile robot toward the target. The voidance of obstacle was simulated in Player/Stage platform in Linux Ubuntu 9.04 and verified the obstacle avoidance by changing the different obstacles in the environments.

KeywordsMobile robots, Obstacle, Player/Stage, Vector Field Histogram.


    A mobile robot is an automatic machine that is capable of movement in a given obtained by pre-defined set of instructions or should be able to analyze the data by processing the information received from its sensors and make decision accordingly. Third, it should be able to act according to the decisions made to fulfill the task completion. For the mobile robot to navigate through the environment, the path planning is necessary. Path planning is the art of deciding which route to take based on and expressed in terms of the current internal representation of the terrain. Path planning involves identifying a trajectory that will cause the robot to reach the goal location when executed. The second competence is equally important but occupy the opposite, tactical extreme.

    Obstacle avoidance focuses on changing the robots trajectory as informed by its sensors during robot motion. The resultant robot movement is both a function of the robots current or recent sensor readings and its goal position and relative location to the goal position. The obstacle avoidance

    algorithms presented below depend to varying degrees on the existence of a global map and on the robots precise knowledge of its location relative to the map. As the mobile robot moves, it keeps on observing the environment and continuously detects the obstacles through its sensor and actuators which is a part of the in-built device; which for development purposes was incorporated by calling simulator software called Player/Stage.

    1. Edge detection method

      One popular obstacle avoidance method is based on Edge Detection by [2]. In this method, an algorithm tries to determine the position of the vertical edges of obstacle and then steer the robot around either one of the "visible" edges. The line connecting two visible edges is considered to represent one of the boundaries of the obstacle. This method was based on using ultrasonic sensors for obstacle detection. A drawback with present implementations of this method is that the robot stops in front of obstacles to gather sensor information. However, this is not an inherent limitation of edge-detection methods; it may be possible to overcome this problem with faster computers. In another edge-detection approach (using ultrasonic sensors), the robot remains stationary while taking a panoramic scan of its environment. After the application of certain line-fitting algorithms, an edge-based global path planner is instituted to plan the robot's subsequent path.

    2. Potential field method

      The idea of imaginary forces acting on a robot has been suggested by [5] and named it as potential field method. In this method, obstacles exert repulsive forces, while the target applies an attractive force to the robot. A resultant force vector r, comprising the sum of a target-directed attractive force and repulsive forces from obstacles, is calculated for a known robot position [2]. With r as the accelerating force acting on the robot, the new position of the robot for a given time interval is estimated, and the algorithm is checked continuously. This concept further enhanced by taking into consideration the robot's velocity in the vicinity of

      obstacles [8, 9]. Thorpe has applied the potential field method to off-line path planning and the combined method for global and local path planning, which uses a "generalized potential field" approach was suggested by [9]. Newman and hogan introduce the construction of potential functions through combining individual obstacle functions with logical operations [10]. While each of the above methods features valuable refinements, none have been implemented on a mobile robot with real sensory data. By contrast, brooks and arkin used a potential field method on experimental mobile robots [1, 6] (equipped with a ring of ultrasonic sensors). The implementation treats each ultrasonic range reading as a repulsive force vector [6]. If the magnitude of the sum of the repulsive forces exceeds a certain threshold, the robot stops and turns into the direction of the resultant force vector, and move on. In this implementation, however, many a times the mobile robot is trapped in local minima and it cannot move further.

    3. Vector field histogram

    A new methodology for obstacle avoidance called the vector field histogram (VFH) which is a real-time obstacle avoidance method that permits the detection of unknown obstacles and avoids collisions while simultaneously steering the mobile robot towards the target [2]. The VFH method uses a two-dimensional Cartesian histogram grid as a world model. This world model is updated constantly with range data sampled by on-board range sensors. The VFH method employs a two stage data reduction process in order to compute the desired control commands for the vehicle. In the first stage the histogram grid is reduced to a one-dimensional polar histogram that is constructed around the robot's momentary location. Each sector in the polar histogram contains a value representing the polar obstacle density in that direction. During the second stage, the algorithm selects the most suitable sector from among all polar histogram sectors which has low obstacle polar density, and the steering of the robot is associated with that direction [3].

    Fig. 1. histogram grid and sectors

    The histogram grid and sectors [3] is shown in figure 1. A typical obstacle setup is shown in figure 2. Note that the gap between obstacles b and c is 1.2m and that a is a

    lean pole of 0.75" diameter. The obtained histogram grid after partially traversing this obstacle course is shown in figure 3.

    Fig. 2. an obstacle course

    Fig. 3. The corresponding histogram grid representation

    The (smoothed) polar histogram corresponding to the momentary position of the robot o is shown in figure 4. The directions (in degrees) in the polar histogram correspond to directions measured counterclockwise from the positive x- axis of the histogram grid. The peaks a, b, and c in the polar histogram are the reslts from the obstacle clusters a, b, and c in the histogram grid. Figure 5 shows the polar form of the exact same polar histogram as figure 4, overlaying part of the histogram grid of figure 3.

    Fig. 1 polar obstacle density relative to the robots position at o (in figure 3)

    Fig. 5 polar histogram form and overlaying part of the histogram grid

    A smoothed polar histogram typically has peaks, i.e., sectors with high polar obstacle density (POD), and valleys, i.e., sectors with low pod. Any valley comprised of sectors with pods below a certain threshold is called a candidate valley. Figure 6 visualizes the match between candidate valleys and the actual environment. Based on the threshold and the polar histogram of figure 5, candidate valleys are shown as lightly shaded sectors in figure 6, while unsafe directions (i.e., those with pods above the threshold) are shown in darker shades. VFH algorithm selects the one that most closely matches the direction to the target.

    Fig 6 a threshold on the polar histogram determines the robots directions for subsequent travel


    Player/Stage is a robot simulation tool, it comprises of one program, Player, which is a Hardware Abstraction Layer. It talks to the bits of hardware on the robot (like a claw or a camera) and let us controls them with our code. Stage is a plug in to Player which listens to what Player is telling it to do and turns these commands into a simulation of our robot. It also simulates sensor data and sends this to Player which in turn makes the sensor data available to our code. A simulation then, is composed of three parts

    • Our code: This talk to Player.

    • Player: This takes our code and sends instructions to a robot. From the robot it gets sensor data and sends it to our code.

    • Stage: Stage interfaces with Player in the same way as a robot's hardware would. It receives instructions from Player and moves a simulated robot in a simulated world; it gets sensor data from the robot in the simulation and sends this to Player.

      Player / Stage are simulation tool, used in robotic applications uses. To work with Player Stage simulation firstly we need to understand different kinds of files. There are 3 such files [4,7] :

      • world file (Stage)

        World file stage describes the layout and items that populate the robot world. Also file .inc can be included in the world file, comes after the same syntax and helps in additional information on model of the robot.

      • cfg file (Player)

        This file deals with the Player Server about the interface and driver (piece of code to communicate directly to the hardware) information of the robot. Here there is no use of robot hardware exactly, since drivers are built into the Player server which helps to overcome the actual scenario. To send and receive information from Player an interface is used as routine [12].

      • inc file (Player / Stage)

    This is similar as world file, with an act of including. An object can be included in various worlds, about robot models and description of robots [12].

    1. Implementation of Player / Stage

      Robot programming can be difficult to perform and tends to be time consuming. Multiple and distributed robot systems are even more complicated by network programming difficulties. The same applies when one needs to have several sensor modalities; that is, several proxies to a robot-server. In order to overcome these difficulties, Player / Stage Project provide an Open Source API that makes it simple and easier to develop multiple-robot teams. The Player/Stage is an excellent combination of flexibility, and intelligibility speed which incur results in making useful robot development. The Player/Stage software works on a variety of independent, style-neutral and non-locking devices such as a multi-robot, distributed-robot and sensors network systems. Player is the robot device server and Stage is the simulator. Player makes the device network apparent for robot control and Stage is the lightweight and highly configurable robot/device, sensor simulator that wires large populations of said items and modalities.


    In order to simulate in Player/Stage, First we need to develop a mobile robot for a simulation. We will describe the physical properties of the robot, such as size and shape. Then we will add sensors onto it so that it can interact with its environment. The first thing we need to do is describe its

    basic shape, to do this we need to know our robot's dimensions in meters. The basic shape of Mobile robot drawn onto some Cartesian coordinates, the coordinates of the corners of the robot has been recorded [12].

    When we tell Player to build a world we only give it the .cfg file as an input. This .cfg file needs to tell us where to find our .world file, which is where all the items in the simulation are described. To start building an empty world we need a .cfg file. First create a document called filename.cfg and write the code into it. To build the simulation Player needs to look in the world file called which is stored in the same folder as the .cfg. If it was stored elsewhere we would have to include a file path, for example ./worlds/ Comments begin with the hash symbol (#). Obviously the name of the world file should be changed depending on what we called it though. Now a basic configuration file has to be written, it is time to tell Player/Stage what to put into this simulation. This is done in the .world file. A world file is basically just a list of models that describes all the stuff in the simulation. This includes the basic environment, robots and other objects.


    Obstacle avoidance for the mobile robots by the two methods namely the Edge detection and Vector Field Histogram is performed and compared. From the simulation, Edge detection method was found ineffective for the mobile robot to traverse at circular obstacles as it could not find perfect edges and it made collision on them as shown in the figure 7.

    Fig 8 Obstacle Avoidance by Vector Field Histogram


Mobile Robotics is a technology which is rapidly illustrating many industrial applications. It has wide range of effects on several industrial areas which may include complex working environments. In such conditions, mobile robots must ensure a safe path by avoiding the obstacles. Simulation of obstacle avoidance for Mobile Robots using Vector Field Histogram through Player/Stage is one such trial to make the robots visualize the world and act to accomplish the assigned task.


Fig 7 Obstacle Avoidance by Edge Detection

In VFH method, the drawback of the Edge detection method is overcome. Mobile robot could sense obstacle intelligently taking regard of all the edges so as to travel to its target point successfully providing safe collision-free navigation in the environment as shown in figure 8.

  1. Arkin, R. C., (1989) "Motor Schema-Based Mobile Robot Navigation." The International Journal of Robotics Research, pp. 92- 112.

  2. Borenstein, J. and Koren, Y., (1988) "Obstacle Avoidance With Ultrasonic Sensors." IEEE Journal of Robotics and Automation, Vol. RA-4, No. 2, pp. 213-218.

  3. Borenstein, J., Koren, Y., (1991) The Vector Field Histogram Fast Obstacle Avoidance for Mobile Robots. IEEE Journal of Robotics and Automation, 7, 278288.

  4. Brain p. Gerkey (2003) The Player/Stage Project: Tools for Multi- Robot and Distributed Sensor Systems, [Online] Paper no.317. Available:

    /icar03 player.pdf

  5. Brock, O., Khatib, O., (1999) High-Speed Navigation Using the Global Dynamic Window Approach, in Proceeding of the IEEE International Conference on Robotics and Automation, Detroit.

  6. Broos, R. A. and Connell, J. H., (1987) "Asynchronous Distributed Control System for a Mobile Robot." Proceedings of the SPIE, Mobile Robots, Vol. 727, pp. 77-84.

  7. Jennifer Owen, (2009) How to Use Player/Stage, [Online] Availablefrom: structions_2.0.pdf

  8. Krogh, B. H., (1984) "A Generalized Potential Field Approach to Obstacle Avoidance Control." International Robotics Research Conference, Bethlehem, Pennsylvania.

  9. Krogh, B. H. and Thorpe, C. E., (1986) "Integrated Path Planning and Dynamic Steering Control for Autonomous Vehicles." Proceedings of the 1986 IEEE International Conference on Robotics and Automation, San Francisco, California, April 7-10, pp. 1664- 1669.

  10. Newman, W. S. and Hogan, N., (1987) "High Speed Robot Control and Obstacle Avoidance Using Dynamic Potential Functions." Proceedings of the 1987 IEEE International Conference on Robotics

    and Automation, Raleigh, North Carolina, March 31-April 3, pp. 14- 24.

  11. Philippsen, R., Siegwart, R., (2003) Smooth and Efficient Obstacle Avoidance for a Tour Guide Robot, in Proceedings of the IEEE International Conference on Robotics and Automation (ICRA 2003), Taipei, Taiwan.

  12. Richard T, Andrew Howard and Brian P. Gerkey (2003) Player/Stage project, [Online] Available from:

  13. Thorpe, C. F., (1985) "Path Relaxation: Path Planning for a Mobile Robot." Carnegie-Mellon University, The Robotics Institute, Mobile Robots Laboratory, Autonomous Mobile Robots, Annual Report, pp. 39-42.

  14. Ulrich, I., Borenstein, J., (2000) VFH*: Local Obstacle Avoidance with Look-Ahead Verification, in Proceedings of the IEEE International Conference on Robotics and Automation, San Francisco, May 2428.

Leave a Reply