Diferencia entre revisiones de «Curva serpentinoide»
(→Altura y anchura de la curva serpentinoide) |
(→Curva Serpentinoide Continua) |
||
Línea 124: | Línea 124: | ||
=== Altura y anchura de la curva serpentinoide === | === Altura y anchura de la curva serpentinoide === | ||
+ | |||
+ | {| {{tablabonita}} | ||
+ | | [[Imagen:Icono_aviso.png]] En construcción]. | ||
+ | |} | ||
+ | |||
+ | |||
+ | === Scripts en octave/Matlab === | ||
+ | |||
+ | {| {{tablabonita}} | ||
+ | | [[Imagen:Icono_aviso.png]] En construcción]. | ||
+ | |} | ||
== Curva Serpentinoide Discreta == | == Curva Serpentinoide Discreta == |
Revisión del 05:52 29 jun 2010
Contenido
- 1 Introducción
- 2 Curva Serpentinoide Continua
- 3 Curva Serpentinoide Discreta
- 4 Autor
- 5 Licencia
- 6 Repositorio
- 7 Bibliografía
- 8 Noticias
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.
Variación de la forma con <math>\alpha</math>
![]() |
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
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
![]() |
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.
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>
En la figura 5 se muestra la situación de estos puntos en una curva serpentinoide de dos ondulaciones y ángulo de serpenteo de 70 grados. Los puntos de mínima curvatura coinciden con los cortes con el eje x. Lo puntos de máxima curvatura coinciden con los puntos con valor absoluto de sus ordenadas mayores
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_{s}=\alpha\cos\left(\frac{2\pi k}{l}s\right)</math> | (ec. 2) |
En la figura 6 se muestra el valor de <math>\alpha_s</math> sobre una curva serpentinoide. En los puntos de máxima curvatura <math>\alpha_s=0</math> y en los de curvatura nula |<math>\alpha_s</math>|=<math>\alpha</math>
Formulación en coordenadas cartesianas
![]() |
Altura y anchura de la curva serpentinoide
![]() |
Scripts en octave/Matlab
![]() |
Curva Serpentinoide Discreta
El ángulo de doblaje varía de forma sinusoidal a lo largo del eje corporal:
Ángulo de doblaje
![]() |
Autor
Licencia
![]() |
Repositorio
- SVN del proyecto http://svn.iearobotics.com/serpenoid/
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