Curva serpentinoide

De WikiRobotics
Revisión del 08:19 28 jun 2010 de Obijuan (Discusión | contribuciones) (Definición)

Saltar a: navegación, buscar
Gráfica de una curva serpentinoide

Introducción

La curva serpentinoide la descubrió en 1976 el profesor Hirose, cuando realizaba su tesis doctoral en el Instituto de tecnología de Tokyo. Investigaba la biomecánica de las serpientes para su aplicación a la construcción de robots.

La curva serpentinoide es indispensable para el estudio y construcción de robots ápodos (gusanos y serpientes). El autor de este artículo la ha estudiado en su tesis doctoral para aplicarla a la locomoción de estos robots.

En este documento se describe la curva/onda serpentinoide, sus parámetros, sus propiedas y se presentan los scripts de Octave/Matlab que las implementan.

Curva Serpentinoide Continua

Definición

La curva serpentinoide es aquella cuya curvatura varía sinusoidalmente con la distancia a lo largo de la curva. Su curvatura está dada por la ecuación:

<math>K(s) = -\frac{2\pi k}{l}\alpha\sin\left(\frac{2\pi k}{l}s\right)</math> (ec. 1)

donde:

l Longitud de la curva. l>0
s Distancia a lo largo de la curva. <math>s\in\left[0,l\right]</math>
k Número de ondulaciones. k>0
<math>\alpha</math> Ángulo de serpenteo. <math>\alpha\in\left[0,121\right]</math>

Ángulo de serpenteo <math>\alpha</math>

El ángulo de serpenteo <math>\alpha</math> es la pendiente de la curva en el punto s=0 y determina la forma que tendrá la curva.

En la figura 1 se muestra la forma para ángulos de serpenteo de 0, 30, 60 y 90. Para <math>\alpha=0</math> es una recta situada sobre el eje x de longitud l. Al aumentar <math>\alpha</math> la curva se eleva, ganando en altura pero reduciéndose en anchura.

En la figura 2 se muestra la curva serpentinoide para <math>\alpha=121</math> grados, que es su valor máximo. A partir de ahí se producen colisiones entre los puntos de la curva.

Figura 1: Forma de la curva serpentinoide para diferentes valores del ángulo de serpenteo (<math>\alpha</math>) (click para ampliar)
Figura 2: Curva serpentinoide de ángulo de serpenteo (<math>\alpha</math>) máximo. Se muestran dos ondulaciones (k=2) (click para ampliar)

Variación de la forma con <math>\alpha</math>

Serp continuous alpha anim.gif

Número de ondulaciones (k)

El parámetro k determina el número de ondulaciones de la curva serpentinoide.

En la figura 3 se han representado tres curvas con el mismo valor del ángulo de serpenteo (<math>\alpha=70</math>) y misma longitud pero con diferentes valores de k. Al aumentar k, aumenta el número de ondulaciones, disminuye la altura pero la anchura permanece constante

Figura 3: Forma una curva serpentinoide de longitud l para diferentes valores del parámetro k, manteniendo fijo el valor de <math>\alpha</math> a 70 (click para ampliar)

Variación de la forma con k

En la siguiente animación se muestra cómo varía la forma de una curva serpentinoide continua de longitud fija l=1 y ángulo de serpenteo <math>\alpha</math>=70 con el parámetro k. Se puede apreciar una propiedad muy importante: La anchura en el eje x NO varía con k

Serp continuous k anim.gif

Longitud (l)

La longitud l de la curva determina su escala. En la figura 4 se muestra una curva serpentinoide con valores fijos del ángulo de serpenteo (<math>\alpha</math>) y de las ondulaciones (k) pero con distintas longitudes. La forma es la misma, pero escalada.

Figura 4: Forma de la curva serpentinoide con valores fijos del ángulo de serpenteo <math>\alpha=70</math> y k=1 para diferentes valores de la longitud l. La longitud determina la escala (click para ampliar)

Puntos de Interés

Puntos de curvatura 0

Los puntos de la curva serpentinoide en los cuales la curvatura es 0 se calculan igualando la ecuación 1 a cero:

<math>K\left(s\right)=0\,\Longrightarrow\, s=0,\,\frac{1}{2}\frac{l}{k},\,\frac{l}{k},\,\frac{3}{2}\frac{l}{k},\,2\frac{l}{k},\,\ldots\frac{1}{2}\frac{l}{k}n</math> con n = 0, 1, 2 ...

Puntos de Máxima curvatura

Los puntos donde la curvatura es máxima se calculan igualando la derivada del valor absoluto de la curvatura a cero:

<math>\frac{d\left|K\left(s\right)\right|}{ds}=0\,\Longrightarrow\, s=\frac{1}{4}\frac{l}{k},\,\frac{3}{4}\frac{l}{k},\,\frac{5}{4}\frac{l}{k},\ldots\frac{1}{4}\frac{l}{k}\left(2n+1\right)</math>

Icono aviso.png POR HACER: gráfica con k=2, alpha=45-60, mostrando los puntos maximos (rojos) y de curvatura 0 (negros)].


Pendiente de la curva <math>\alpha_s</math>

Denotamos la pendiente del vector tangente a la curva por el punto s como <math>\alpha_s</math>

Por definición, la curvatura se define como el ritmo de cambio del vector unidad tangente a la curva, es decir:

<math>K(s)=\frac{d\alpha_{s}}{ds}</math>

A partir de esa ecuación calculamos la pendiente de la curva mediante integración:

<math>\alpha_{s}=\alpha+\int_{0}^{s}K(s)ds</math>

llegando a la expresión:

<math>\alpha\cos\left({2\pi k\atop l}s\right)</math> (ec. 2)

Formulación

Icono aviso.png En construcción].

Curva Serpentinoide Discreta

El ángulo de doblaje varía de forma sinusoidal a lo largo del eje corporal:

Ángulo de doblaje

Icono aviso.png En construcción].

Autor

Licencia

Cc logo.png This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 Spain License.

Repositorio

Para obtener la versión actual del SVN:

svn co http://svn.iearobotics.com/serpenoid/trunk

Bibliografía

  • S. Hirose. Biologically Inspired Robots (Snake-like Locomotor and Manipulator). Oxford Science Press, 1993.

Noticias

  • 28/Jun/2010: Animación de la forma de la curva continua con el parámetro k
  • 22/Jun/2010: Animación de la forma de la curva continua con el parámetro alfa
  • 15/Jun/2010:
    • Script Octave de la curva serpentinoide migrado a Matlab
    • Documentación sobre los parámetros l, k y <math>\alpha</math>
  • 16/Enero/2009: Creado repositorio y comenzada esta página