Strategy

<< Click to Display Table of Contents >>

Navigation:  Function block library > Navigation > Path driver >

Strategy

Previous pageReturn to chapter overviewNext page

pathdriver_path1

 

The path driver function block creates a path which first connects the way points straight-lined.

 

The robot is driven with a virtual way point (painted as a red dot in the figure above). Given the robot's current position, the virtual way point will be placed on the path that the distance between robot and virtual way point is dp (distance virtual point). The virtual way point can only move along the path towards the path's end, i.e. if the robot moves away from the virtual way point, it remains unchanged. Due to the regulation on the virtual point, the path will be smoothed. The greater dp is, the greater is the smoothing.

 

Angular velocity parameterization

The angular velocity ω(dφ) is specified via the function block dialog dependent from the angular error dφ. dφ is the angle between the robot's current orientation and the line from the robots center to the virtual way point.

 

Velocity parameterization

The velocity is also specified dependent from dφ and named v(dφ). So it is possible to slow down the movement if the robot is no longer oriented properly.

 

To be able to reduce velocity if the path has a bend, the velocity is also specified as a function v(dn) of the distance between the virtual point and the next way point. A typical curve of v(dn) is

pathdriver_v_dn

I.e. the velocity shall decline if the robot gets closer to the way point.

 

But we want to slow down the robot depending on the angle  αn. αn is the angle between the current and the next path segment. If αn = 180° (i.e. the path leads straight-forward through the way point) the velocity is not to be reduced. If αn approaches 0° (a very strong bend) the robot must be slowed down strongly. Therefore the function v(αn) is needed. A typical curve of v(αn) looks like this

pathdriver_v_a

I.e. the smaller αn is the smaller is the velocity.

 

These three velocity profiles v(dφ), v(dn) und v(α) are used to calculate the overall velocity V(dφ,dn,α):

 

Vp(dφ,dn,α) = min(  v(dφ), max( v(dn), v(α) ) )

 

Driving to the last way point

To slow down when the end of the path is reached, the velocity depending on the remaining distance to be driven is specified and called v(d). The target is supposed to be reached when the velocity as a function of the remaining distance to be driven is zero.

 

The unsmoothed velocity results in:

 

V(d,dφ,dn,γ) = min( v(d),  Vp(dφ,dn,γ) )

 

Smoothing of velocity and angular velocity

There are two other parameters available to smooth the movement.

The velocity coupling is the time in milliseconds that is needed for the coupling vCC between the calculated velocity Vp(dφ,dn,α) and the real velocity to reach the value 1.

The angular velocity coupling is the time in milliseconds that is needed for the Coupling omegaCC between the calculated angular velocity ω(dφ) and the real velocity omega to reach the value 1.

 

dv = vCC * ( Vpt - Vpt-1 )

velocity = Vpt-1 + dv

 

domega = omegaCC * ( ω(dφ)t - ω(dφ)t-1 )

velocity = ω(dφ)t-1 + domega

 

The subscript t means the value at time t. t-1 means the value one time step before t.

 

At restart vCC is initialized with 0 and increases to 1 within the time specified by the velocity coupling.

At restart omegaCC is initialized with 0 and increases to 1 within the time specified by the angular velocity coupling.

 

If the virtual point jumps to a new path segment, vCC and omegaCC will be reset to 0.