Using the path planning functionality

Several objects (or entities) have to be specified to the path planning module in order to define a path planning object:

  • a collidable or measurable robot entity: this entity represents the device that should avoid obstacles and is referred to hereafter as robot.
  • a start dummy: the start dummy represents the initial configuration of the robot. The robot entity should be built on top of the start dummy. Make sure that the center of the robot approximately matches the position of the start dummy.
  • a goal dummy: the goal dummy represents the desired configuration of the robot. The path planning algorithms will try to move the start dummy towards the goal dummy while avoiding collisions between the robot and obstacle.
  • a collidable or measurable obstacle entity: this entity represents the obstacles that the robot should avoid. It is referred to hereafter as obstacle.
  • a path: the path acts as a container for a trajectory calculated by the path planning algorithm. The path will also enable the robot to be moved along the trajectory. The start dummy should be built on top of the path and assigned to be fixed on the path (refer to dummies and paths for more information on how to assign a dummy to a path). Make sure the path is empty before proceeding, in order to keep current start dummy's configuration intact (select the path, then click [Menu bar --> Edit --> Empty Last Selected Path]).
  • Following figure illustrates a typical path planning task:

    [Path planning task example]


    In above example, the path planning task is performed in a 3-dimensional configuration space (two perpendicular translations and one rotation). The start dummy initial configuration represents the path planning task's configuration space reference frame. Following 9 holonomic path planning task configuration spaces are supported:

    [Holonomic path planning configuration spaces (1) X, Y, (2) Z, Delta, (3) X, Y, Z]


    [Holonomic path planning configuration spaces (1) X, Y, Delta (2) Alpha, Beta, Gamma, (3) X, Y, Z, Delta]


    [Holonomic path planning configuration spaces (1) X, Alpha, Beta, Gamma (2) X, Y, Alpha, Beta, Gamma, (3) X, Y, Z, Alpha, Beta, Gamma]


    In addition to being able to specify the configuration space for a path planning task, the user is also able to specify the area and direction in which the search has to be performed:

    [Illustration of search area and direction for an (X, Y, Delta) configuration space]


    It is important to appropriately limit the search area in order to: (1) reduce calculation times, and (2) make the path planning task realizable. Following figure illustrates the effect of the search direction:

    [Illustration of search direction]


    The path planning algorithm operates by searching collision-free configurations (taking into account the search area) and then trying to link adjacent collision-free configurations by moving no more than a given linear and angular step size. Choosing large step sizes reduces calculation time, however the robot might jump through obstacles. The user is in charge of correctly selecting those step sizes as illustrated by following figures:

    [Effect of step sizes. (1) too large step size, (2) correct step size]


    Non-holonomic path planning tasks are handled in a similar way as for holonomic path planning tasks. Following figure illustrates the direction of movement of a non-holonomic vehicle:

    [Non holonomic path planning task]


    The vehicle can only move forward with a certain maximum turning circle diameter. There is no lateral movement possible (i.e. along the Y-axis), nor can the vehicle move backward.

    Path planning tasks in V-REP make sure that each searched configuration is collision-free (i.e. the robot and the obstacle don't collide). However, since a searched configuration is a discreet position/orientation in space, it can happen that the robot still collides with the obstacle when its position along the path is interpolated between two collision-free configurations. This usually happens rarely, but the occurrence can even be reduced by using smaller linear/angular step sizes. Another, better way of handling those situations, is to use a minimum distance threshold test instead of a collision test. Indeed, using a minimum allowed distance between the robot and the obstacle can not only guarantee no collisions at all, but can also provide the robot with a safety buffer during motion along the path. The only drawback to this is that the minimum distance checking takes more computation time that the collision checking.


    Recommended topics

  • Path planning
  • Path planning dialog