El proyecto persigue el diseño, construcción e implementación de un robot bípedo capaz de realizar caminatas cuasiestáticas.
El objetivo antes descrito se alcanzará de la siguiente manera. Las posiciones o configuraciones por las que pasa el bípedo durante el ciclo de caminata se digitalizarán y almacenarán en el sistema. Luego, el robot recordará las posiciones y su orden relativo. Inicialmente el enfoque es determinista, pero sería factible agregar por encima una etapa de aprendizaje. El enfoque determinista prescribe que el robot "imita" una serie de movimientos preprogramados.
La inteligencia del robot está distribuída en dos nodos bien diferenciados: uno que se ocupa del control de los actuadores (motores) a bajo nivel (control muscular), y otro que se ocupa de la lógica de más alto nivel. El primer nodo se implementa en un microcontrolador PIC 18F4320 y el segundo en un PC Windows con Java. La comunicación entre estos dos nodos es a través de una interfaz serial RS-232, utilizando un protocolo definido para este propósito.
Los actuadores utilizados son servomotores Futaba S3003 a los cuales se les hace una modificación: además de tener los tres conductores habituales (alimentación, tierra y línea de control), se les agrega un cuarto conductor a través del cual se mide la posición del eje del servomotor. Esto permite implementar un control en lazo cerrado.
El prototipo final se construye en aluminio por ser un material de baja densidad, relativamente resistente y fácilmente trabajable. Las articulaciones de más de un grado de libertad se realizan con varios motores dispuestos de tal forma que sus ejes de rotación converjan en un punto en todo momento. Esto es una mejora respecto a las articulaciones realizadas como concatenación de varios segmentos independientes, ya que en estos últimos el movimiento de uno de los motores de la articulación no es independiente de los demás, por lo que nuestro enfoque es más cercano a la idealidad de una articulación esférica.
Está implementado en lenguaje ensamblador para obtener la mayor performance posible. El código está estructurado en torno a un programa principal que realiza un polling de algunas banderas. Dichas banderas indican la necesidad de realizar cierta tarea o cálculo por el programa principal, y las mismas son establecidas en las rutinas de atención a interrupción. Las interrupciones atendidas son las siguientes:
La lógica de alto nivel está a su vez estructurada en distintos niveles o capas, a saber:
Facultad de Ingeniería - Universidad de la República
Instituto de Computación -
Instituto de Ingeniería Eléctrica
Última actualización:
Thu Apr 07 21:51:36 UYT 2005
Pagina mantenida por: Alexander Sklar usando HTMLC