Estrategia

Previous  home  Next   

pathdriver_path1

 

El bloque de función controlador de ruta crea una ruta que primero conecta los puntos a recorrer con una línea recta.

 

El robot es conducido con un punto de recorrido virtual (indicado con un punto rojo en la figura superior). Dada la posición actual del robot, el punto de recorrido virtual se colocará en la ruta de forma que la distancia entre el robot y el punto virtual del recorrido sea dp (distancia al punto virtual). El punto virtual del recorrido sólo puede moverse a lo largo de la ruta hacia el final, es decir, si el robot se mueve alejándose del punto virtual del recorrido, permanece inalterable. Debido a la regulación en el punto virtual, la ruta es alisada (suavizada). Cuando mayor sea dp, mayor será el alisamiento.

 

Parametrización de la velocidad angular

La velocidad angular ω(dφ) se especifica por medio del diálogo del bloque de función, dependiendo del error angular dφ. dφ es el ángulo entre la actual orientación del robot y la línea desde el centro del robot hasta el punto virtual del recorrido.

 

Parametrización de la velocidad

La velocidad también se especifica dependiendo de dφ y se denomina v(dφ). Así que es posible ralentizar el movimiento si el robot no está correctamente orientado.

 

Para poder reducir la velocidad si la ruta tiene una curva, la velocidad también viene especificada como una función v(dn) de la distancia entre el punto virtual y el siguiente punto virtual del recorrido. Una típica curva de v(dn) es

pathdriver_v_dn

Es decir, la velocidad disminuirá si el robot está cerca del punto del recorrido.

 

Pero queremos hacer andar más despacio al robot según el ángulo αn. αn es el ángulo entre el segmento actual y el siguiente en la ruta. Si αn = 180° (es decir, la ruta discurre de forma recta a lo largo del punto en el recorrido) la velocidad no va a reducirse. Si αn se acerca a 0° (una curva muy pronunciada) el robot debe reducir su velocidad drásticamente. Por lo tanto, la función v(αn) es necesaria. Una típica curva de v(αn) se parece a esto

pathdriver_v_a

Es decir, cuanto más pequeña sea αn más baja será la velocidad.

 

Estos tres perfiles de velocidad (dφ), v(dn) y v(α) se utilizan para calcular la velocidad total V(dφ,dn,α):

 

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

 

Conducir al último punto del recorrido

Para reducir velocidad cuando se alcanza el final de la ruta, la velocidad, que depende de la distancia a conducir, se especifica y se denomina v(d). Se supone que se ha alcanzado el objetivo cuando la velocidad, en función de la distancia remanente a conducir, es cero.

 

La velocidad sin alisamiento resulta:

 

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

 

Alisamiento de la velocidad y la velocidad angular

Hay otros dos parámetros disponibles para alisar el movimiento.

El acoplamiento de velocidad es el tiempo en milisegundos que se necesita para el acoplamiento vCC entre la velocidad calculada Vp(dφ,dn,α) y la velocidad real para alcanzar el valor 1.

El acoplamiento de la velocidad angular es el tiempo en milisegundos que se necesita para el acoplamiento omegaCC entre la velocidad angular calculada ω(dφ) y la velocidad real omega para alcanzar el valor 1.

 

dv = vCC * ( Vpt - Vpt-1 )

velocidad = Vpt-1 + dv

 

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

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

 

El subíndice t significa el valor en el tiempo t. t-1 significa el valor un paso de tiempo antes de t.

 

Al reiniciar vCC se incializa a 0 y aumenta a 1 dentro del tiempo especificado por el acoplamiento de velocidad.

Al reiniciar omegaCC se incializa a 0 y aumenta a 1 dentro del tiempo especificado por el acoplamiento de velocidad angular.

 

Si el punto virtual salta a un nuevo segmento de la ruta, vCC y omegaCC son restablecidos a 0.