Archivo de la categoría: Electrónica

Walbi, el bípedo que aprende a caminar

Conozca a Walbi, un humanoide a escala 50% con programas Arduino para captura y reproducción de movimiento. Se mueve a mano, graba y reproduce luego los movimientos. El WALink BIped es un robot creado por Pedro y Gil Tavares, de Lisboa, para un proyecto de aprendizaje automático que no se concretó.

Walbi usa un Arduino Nano como «cerebro», servos LX-16A de «músculos», y partes plásticas impresas en 3D como «huesos». Los servos LewanSoul LX-16A son servos ideales para pequeños proyectos robóticos, ya que son livianos, pueden mover cargas de más de 19 kg/cm, y se conectan con un solo cable que va de servo a servo, lo que hace que el cableado del robot sea un juego de niños.

Walbi es un humanoide a escala 50%: sus piernas miden 55 cm de altura desde el talón hasta la cintura, y pesan 1,1 kg. Las partes blancas de su cuerpo fueron impresas en 3D, pero podrían haberse hecho fácilmente con madera resistente y liviana.

La programación de Walbi es muy sencilla. Usted puede descargar los dos programas necesarios para realizar la captura y reproducción de movimientos, y entonces puede hacer que Walbi camine, se arrastre, suba, salte o baile. Solo tiene que mover sus piernas a una postura deseada, registrar esa postura, darle forma a Walbi en otra postura, grabarla y así sucesivamente, y luego, cuando haya grabado la secuencia completa, puede sentarse y ver cómo se desempeña hábilmente siguiendo los movimientos que aprendió.

Qué se necesita

Componentes de hardware (sí, siempre hay que comprar algunas cosas):

Aplicaciones de software y/o servicios en línea: Arduino IDE

Herramientas manuales y máquinas de fabricación: Impresora 3D (genérica)

Construyendo a Walbi

Las piezas de Walbi se imprimieron en 3D, con plástico PLA, utilizando una impresora FlashForge Creator Pro. Descargar los archivos STL de Thingiverse, o usar un método alternativo para construir los pies, los “huesos” de las piernas y la cintura, utilizando madera o metal. Los soportes de los servos encajan en estas partes, y unen los servos con ellas.

Como se muestra en el dibujo de abajo, necesitará soportes metálicos de los cuatro tipos diferentes disponibles para adjuntar los servos a las partes impresas, y entre sí.

Conexionado

Para controlar los servos LX-16A se necesita una placa de LewanSoul llamada Bus Linker.

Ésta recibirá comandos desde un puerto serie en el Arduino Nano. Como utilizamos la USART del hardware de Arduino para comunicarnos con la computadora, recurrimos a la biblioteca SoftwareSerial para crear un segundo puerto serie en el Nano, que nos sirve para conectarnos a la placa Bus Linker.

El cableado se minimiza con estos servos serie. Hay un cable que va de cada servo al siguiente (un cable serie provisto con los servos) y los servos se enchufan directamente a la placa de depuración. Su computadora se conecta al puerto USB de Arduino, y Arduino se conecta a la placa de depuración mediante tres cables (TX, RX y GND) conectados a los pines de Arduino que fueron configurados para SoftwareSerial.

Los servos utilizan una velocidad de comunicación serie en baudios de 115200 (que es demasiado alto y falta investigar si se modificar). Esta velocidad en baudios es alta para SoftwareSerial, por lo que tuvimos que implementar funciones de comprobación de errores y reintento. En algunos casos se necesitaba persistencia para obtener una lectura correcta.

Fuerza

Los servos pueden proporcionar 19,5kg.cm a 7,4v. Usamos 6v y la corriente en estado quieto resultó inferior a tres amperios.

   

Programación

Puedes obtener el código Arduino en el repositorio de Github del proyecto.

Se utilizan dos programas para la captura y reproducción de movimiento, una técnica similar a la que se usa en las películas. Empiezas poniendo al robot en una pose. Como los servos están predeterminados para apagar el motor, se pueden girar los servos a mano. Una vez que se tiene el robot en la posición deseada, se usa el programa Walbi_record para leer y mostrar todos los ángulos de servo. Usted luego alimenta esas lecturas de ángulo en la variable poseAngles en Walbi_play, y usa el programa para reproducir la secuencia de poses grabadas a una velocidad establecida por la variable timeToMove (en milisegundos).



Aquí hay algunos consejos y trucos aprendidos al crear Walbi:

  • Los soportes para el LX-16A solo se acoplan al servo en UNA posición, por lo que es muy fácil conectarlos incorrectamente, especialmente a las partes impresas en 3D. Tuvimos que reensamblar a Walbi un par de veces para corregir errores de montaje que eran bastante difíciles de detectar.
  • Los servos vienen con identificación ID 1 por defecto. Asigne a cada servo una ID diferente antes de montarlos en el robot, o será imposible comunicarse con varios servos serie conectados con la misma ID.
  • El uso de bridas para cables realmente mejora la apariencia.

  • Los servos vienen con los tornillos necesarios para conectar el disco de acoplamiento de los servos, y el disco a los soportes. Los soportes vienen con los tornillos necesarios para sujetarlos a los servos. Tendrá que comprar tornillos por separado para sostener las conexiones y para el soporte de las piezas de plástico. Se utilizan tornillos y tuercas DIN912 M2-6 y M2-10.
  • Es posible mejorar la tracción pegando almohadillas de silicona en las plantas de los pies del robot.

  • Es preferible usar discos de acoplamiento de metal para servo, ya que las de plástico que vienen provistas con los servos se romperán en el caso de que las piernas se golpeen durante las pruebas. Si estas piezas se rompen, el robot se aflojará y la reproducción del movimiento perderá precisión. De otra manera, es esta reproducción es sorprendentemente buena.

Piezas a medida

STL para piezas impresas en 3D (Originalmente impreso en un Flash Forge Creator Pro.)

Código Programas Arduino para control de movimiento y reproducción

En Alienexpress encontré algunas publicaciones que pueden servir de guía para obtener los elementos:

SERVO
JUEGO DE SERVO Y ACCESORIOS
SERVO Y PIEZAS DE MONTAJE

Raspberry Pi 2, nueva plaqueta mini-computadora

La nueva plaqueta Raspberry Pi 2 incluye un CPU ARM de 900 MHz Cortex-A7 de cuatro núcleos (~ 6x rendimiento), 1 GB de SDRAM LPDDR2 (2x memoria), total compatibilidad con Raspberry Pi 1. Debido a que tiene un procesador ARMv7, puede correr la gama de distribuciones ARM GNU/Linux, incluyendo Snappy Ubuntu Core, así como Microsoft Windows 10

BCM2836 y Raspberry Pi 2

Nos comenta Eben Upton, fundador de raspberrypi.org, que desde que lanzaron la original Raspberry Pi Modelo B, allá por el 2012, realizaron una enorme cantidad de trabajo de software para sacar lo mejor del procesador BCM2835 de Broadcom y el CPU ARM11 de 700 MHz. «Hemos gastado mucho dinero en la optimización de una amplia variedad de bibliotecas y aplicaciones de código abierto, incluyendo WebKit, LibreOffice, Scratch, Pixman, XBMC/Kodi, libav y PyPy. Al mismo tiempo, el proyecto Raspbian, dirigido por Peter Green y Mike Thompson, nos ha proporcionado una reconstrucción de Debian compatible con ARMv6 con soporte de hardware de punto flotante, y Gordon, Dom y Jonathan [miembros del equipo de desarrollo de Raspberry Pi] han gastado miles de horas de trabajo en el firmware y soporte de la tarjeta para hacer Raspberry Pi la computadora en una plaqueta más estable del mundo. Vale la pena ir y ver una imagen de la vieja tarjeta SD de 2012 para tener una idea de lo lejos que hemos llegado».

Sin embargo, llega un momento en que ya no hay nada más por hacer para seguir adelante que tener más memoria y un mayor rendimiento de la CPU. «Nuestro desafío era encontrar la manera de conseguirlo sin lanzar a la nada nuestra inversión en la plataforma ni echar a perder todos esos proyectos y tutoriales que se basan en los detalles precisos del hardware de Raspberry Pi. Afortunadamente para nosotros, Broadcom estuvo dispuesto a dar un paso adelante con un nuevo SoC (Sistema en un chip, o System on a Chip en inglés), el BCM2836. Conserva todas las características del BCM2835, pero cambia el ARM11 de 700MHz único con un complejo ARM de cuatro núcleos Cortex-A7 de 900 MHz: todo lo demás se mantiene igual, por lo que no se da una transición dolorosa o una disminución de la estabilidad».

Una vez que estuvieron seguros de que BCM2836 funcionaba como se esperaba, diseñaron una serie de prototipos hasta llegar a la Raspberry Pi 2 Modelo B, que se acaba de lanzar el lunes (2 de febrero de 2015). Tiene una forma idéntica a la existente Raspberry Pi 1 Modelo B+, pero se las arregla para contener tanto el nuevo BCM2836 y un 1 GB de SDRAM de Micron. Todos los conectores están en el mismo lugar y tienen la misma funcionalidad, y la tarjeta todavía se puede ejecutar conectada a un adaptador de corriente micro-USB de 5V.

Raspberry Pi 2 está disponible para su compra desde los socios del fabricante element14 y RS Components. Su precio de venta es de u$s 35 (el mismo precio que el modelo B+ existente). Se requiere un NOOBS (New Out Of the Box Software) actualizado, la imagen Raspbian, incluyendo el kernel ARMv7 y módulos, que se pueden descargar gratuitamente. Al lanzamiento, se está utilizando el mismo espacio de usuario ARMv6 Raspbian tanto en la Raspberry Pi 1 como en la 2; pero en los próximos meses ellos investigarán si pueden obtener un mayor rendimiento con el Debian ARMv7, o si pueden reemplazar selectivamente una pequeña cantidad de bibliotecas para obtener lo mejor de ambos mundos. Ahora que están usando un núcleo ARMv7, también se puede ejecutar Ubuntu: ya está disponible un Snappy Ubuntu Core y estará disponible un paquete NOOBS en el próximo par de semanas.

Windows 10

Durante los últimos seis meses han estado trabajando estrechamente con Microsoft para producir el próximo Windows 10 para Raspberry Pi 2. Microsoft tendrá mucho más para compartir en los próximos meses. La versión de Windows 10 compatible con Raspberry Pi 2 estará disponible en forma gratuita para los creadores.

Indican que se debe visitar WindowsOnDevices.com para participar en el Programa de Desarrollo de Windows para IoT (Internet of Things, Internet de las Cosas) y recibir actualizaciones a medida que estén disponibles.

Preguntas frecuentes

¿Se descontinuará los Raspberry Pi 1 Modelo B y B+?

No. Tenemos una gran cantidad de clientes industriales que querrán seguir con el Raspberry Pi 1 por el momento. Vamos a seguir construyendo Raspberry Pi 1 Modelo B y el Modelo B+, siempre y cuando haya demanda de ellos. Ambas placas se seguirán vendiendo por u$s 35.

¿Qué pasa con el Modelo A+?

El modelo A+ sigue siendo el Raspberry Pi para iniciarse con un valor de u$s 20. Aunque la nueva plaqueta se llama Raspberry Pi 2 Modelo B, no tenemos planes para introducir una Raspberry Pi 2 Modelo A antes del final de 2015.

¿Qué pasa con el Módulo de Cálculo?

Esperamos introducir un módulo de cálculo basado en el BCM2836 en el mediano plazo, pero por ahora estamos enfocados en el lanzamiento de Raspberry Pi 2 Modelo B.

¿Todavía usa VideoCore?

Sí. VideoCore IV 3d es el único núcleo de gráficos 3d públicamente documentado para SoCs basados en ARM, y queremos mantener Raspberry Pi abierto.

¿De dónde viene la cifra «rendimiento 6x»?

El aumento de velocidad varía entre aplicaciones. Hemos visto pruebas de referencia de la CPU con un único subproceso que acelera por lo menos 1,5 veces, mientras que Sunspider resulta alrededor de 4 veces más rápido, y los códecs de vídeo NEON habilitados para multinúcleo pueden ser más de 20 veces más rápidos. 6x es un número típico para una prueba de comparación de CPU multi-hilo como SysBench.

¿Es esta una versión completa de Windows 10?

Por favor, consulte WindowsOnDevices.com.

Especificaciones Raspberry Pi 2

  • Procesador de cuatro núcleos Broadcom BCM2836 ARM Cortex-A7
  • GPU VideoCore IV doble núcleo con soporte OpenGL ES 2.0, aceleración por hardware OpenVG, 1080p 30 frames, H.264
  • 1 GB LPDDR2 SDRAM
  • Salida de vídeo 1080p
  • Salida vídeo compuesto (PAL / NTSC)
  • Salida de audio estéreo
  • Ethernet 10/100 Base
  • HDMI 1.3 y 1.4
  • Audio compuesto jack 3,5 mm
  • 4 puertos USB 2.0
  • MPI CSI-2
  • Socket MicroSD
  • Conector Serie
  • GPIO 40 pines




Precio y disponibilidad Raspberry Pi 2

RS, uno de los dos distribuidores principales, ya tiene a la venta el nuevo modelo. El precio es idéntico al anterior: 35 dólares, ofreciendo entonces más potencia al mismo precio en esta mini-computadora con base ARM y sistema operativo Linux en formato de placa única.

Fuente: RaspberriPi.com


Algunas notas sobre programación del robot didáctico programable

En esta publicación: Robot Programable: Diagrama Básico en Bloques prometo, al final, que voy a continuar con los detalles de circuito y de programación. En la entrada: El microcontrolador «cerebro» del robot programable (básico) hay mucho de circuito (hardware), ya que el artículo contiene una descripción bastante detallada de las secciones del chip microcontrolador que utilizamos por ahora, y también detalles de configuración y uso del chip que tienen una enorme relación con la programación.

Concretamente, que algo he cumplido de la promesa.

Los artículos hasta ahora venían más o menos sincronizados con el avance de las clases, pero para esta fecha obviamente estamos en receso de verano y no hay actividad, ni la habría aunque me lo propusiera, ya que por suerte los chicos asisten a una colonia de verano. A mí tampoco el calor me favorece mucho para mover las neuronas, por eso estuve dedicando algunos artículos a la mecánica, a la búsqueda de soluciones para abaratar la construcción de la base mecánica del robot.

De eso aún falta, me quedan algunas cosas por solucionar, y me dedico casi diariamente al tema. Ya les contaré.

El robot programableRobot programable

Pero hay un programa básico ya escrito con el que hemos trabajado en clase, haciendo mover al robot. Este programa (escrito en assembler, o ASM) permite ordenar una secuencia de movimientos al robot. El programa tiene tres niveles: 1) las instrucciones básicas para mover los motores en el lenguaje del microcontrolador (son las mismas para toda la familia PIC16F, y se podrían utilizar en todos los modelos disponibles, si bien nuestro chip elegido es el PIC16F876A), 2) la inclusión posterior de las instrucciones básicas dentro de subrutinas a las que se puede llamar programando con palabras en castellano en lugar de con los mnemónicos de la programación ASM, lo cual facilita la comprensión, y finalmente 3) la conversión de estas subrutinas en macros.




Utilizando macros se programa directamente con la palabra que hemos definido para el comando; ni siquiera hace falta utilizar la instrucción CALL de ASM que se necesita para hacer correr una subrutina.

Voy a explicar poco a poco la programación, en todos los pasos.

Primero que nada: la configuración inicial del chip

Recordemos primero el diagrama en bloques, ya que hay que definir las funciones de las patas del chip teniendo en cuenta este circuito.

Diagrama básico en bloquesDiagrama en bloques
Veamos las instrucciones ASM en la parte de configuración:

 

Es conveniente que vayamos explicando las líneas de instrucciones por partes:

La indicación list P es muy directa, con ella se le dice al programa de compilación que vamos a trabajar en un programa para el PIC16F876A.

La indicación include incluye en el programa, en el momento de compilarlo, todo el texto que se encuentra dentro del archivo que se indica a continuación P16f876a.inc. En estos archivos (provistos por el fabricante) se definen nombres en letras para todas las partes del microcontrolador, que de otro modo deberían estar indicadas en el programa con números hexadecimales. Esta práctica evita el trabajo de estar memorizando o buscando en una tabla estos números, y facilita la comprensión al leer el programa, y permite un fácil intercambio de programas (migración) entre diferentes microprocesadores.

Por ejemplo, dentro de P16f876a.inc define así al puerto A: PORTA EQU H’0005′. Podríamos cambiar la declaración dentro de este archivo y llamar al puerto con un nombre en español, por ejemplo: PuertoA EQU H’0005′. Luego podríamos programar utilizando este nombre y funcionaría correctamente.


Esta línea no es imprescindible y se utiliza para evitar molestas indicaciones de aviso cuando se cambia de banco de RAM en el programa. Las indicaciones no son necesarias si en el programa hemos realizado correctamente los cambios de banco.


Los microcontroladores poseen una serie de configuraciones que se fijan por única vez al principio de la operación y definen ciertas partes esenciales de su funcionamiento. En el ejemplo:

_CP_OFF (Code Protection) define que no protegeremos el código de ser leído desde la memoria de programa del chip. Es posible definir _CP_ON cuando ya tenemos un programa totalmente probado en un equipo que vamos a entregar y no deseamos que alguien se lo copie leyéndolo desde la memoria de programa del microcontrolador.

_XT_OSC define el modo de oscilador de reloj del chip. En este caso, la opción _XT_OSC indica que se utilizará un cristal o resonador conectado al chip para definir la frecuencia de trabajo.

_WDT_OFF está relacionado con la función de «Despertador» («Watchdog timer» en inglés) que se utiliza en aquellos casos en que se desea que el microcontrolador sea «despertado» de posibles estados en que haya quedado detenido, sea porque quedó esperando una señal de activación externa o porque falló su programa o porque se lo puso intencionalmente en ese estado por programa. El watchdog timer (WDT) puede producir un reinicio del microcontrolador PIC cada cierto período de tiempo, y recomenzar la ejecución del programa. Esto es para evitar que el dispositivo entre en un lazo infinito (se «cuelgue»), o se quede en una espera muy prolongada por un determinado evento que no ocurre. Durante la operación normal, el watchdog timer (en español «perro guardián» o «despertador») genera un reinicio del microcontrolador PIC después del final de su período WDT. También cumple la función de sacar al dispositivo del modo Sleep («Dormir»). En este caso el watchdog timer ocasiona que se despierte el microcontrolador PIC y continúe con la operación normal (sin producir reinicio), lo que se conoce como despertar WDT. No lo utilizamos en este programa en particular, de modo que fijamos _WDT_OFF, o sea, Watchdog Timer apagado.

_PWRTE_ON (Power-up Timer) Habilita un temporizador que se dispara en el encendido y permite que, durante su espera, se estabilicen todos los circuitos antes de comenzar a correr el programa.

_LVP_OFF define el modo en que se puede programar el chip. Esta definición en OFF determina que no se puede programar el chip utilizando un sistema de programación de bajo voltaje. Los programadores de PICs utilizan un voltaje de 12 volts en la pata MCLR del chip para poder escribir en su memoria de programa. Al definir el estado OFF de esta configuración se previene una programación accidental (que modificaría el programa y dejaría no operativo al microcontrolador) con los voltajes estándar de funcionamiento en sus patas.

_BODEN_OFF El bit BODEN (Brown Out Reset) en la configuración define la activación o no de una detención del microcontrolador por un descenso de voltaje de alimentación. Puede ser útil, pero no lo utilizamos en este diseño, por eso lo definimos en OFF.


En este bloque se declaran las variables que necesitaremos utilizar (y se reservan sus espacios en la memoria RAM). Por defecto, las variables son bytes (8 bits).


Las líneas de inicialización en este bloque están ampliamente explicadas con comentarios. En la última parte, debo aclarar que los registros TRIS son los que definen si una pata de entrada/salida es una entrada o una salida. Hay un registro TRIS para cada puerto: TRISA, TRISB y TRISC. Un 0 las define como salidas, un 1 las define como entradas. Por último, los microcontroladores con puertos cuyas patas se pueden definir como entradas al módulo Convertidor Analógico Digital (Analog/Digital Converter, o ADC, en inglés) tienen un registro de configuración en el que se debe definir si se utilizarán o no esas patas como entradas analógicas. Esto lo define el registro ADCON1 y el valor a definir para utilizar todas las patas como entrada/salida digital (tal como las utilizaremos por el momento) es 0x06 (hexadecimal 06).

Esencial: La parte del programa en sí

Observando el diagrama en bloques del robot programable, y con una lectura al artículo de apoyo sobre el chip de manejo de motores, podemos determinar que uno de los motores, el derecho, se maneja a través de dos patas del puerto A, RA0 y RA1, y el otro (izquierdo) a través de las patas RA2 y RA3 del puerto A.

La tabla de señales de control para los motores es como sigue:

     MOTOR DERECHO     
|
       MOTOR IZQUIERDO       
    RA0     RA1     ACCIÓN | RA2 RA3 ACCIÓN
    1     0     AVANCE | 0 1 AVANCE
    0     1     RETROCESO | 1 0 RETROCESO
    0     0     DETENIDO | 0 0 DETENIDO
    1     1     DETENIDO | 1 1 DETENIDO


Por lo tanto, las instrucciones de manejo de los motores se pueden definir del siguiente modo:

Para realizar un movimiento necesitamos definir tiempos, y para eso, para empezar, podemos utilizar un simple rutina de «pérdida de tiempo» (el microcontrolador se queda «perdiendo tiempo» dentro de esta subrutina, y no hace ninguna otra cosa). La rutina la calculé utilizando los servicios del sitio Delay Code Generator donde se puede crear un código de retardo para PICs definiendo algunos parámetros (en el futuro usaremos un módulo TIMER del microcontrolador, pero cada cosa a su tiempo).

La rutina de pérdida de tiempo es:


Veamos entonces cómo es un programa que utilice estas subrutinas para ordenar al robot un movimiento en L.


El programa completo en ASM con el método de llamado a subrutinas es el que sigue. Más abajo encontrarán un enlace para bajarse el archivo en formato TXT con el programa completo en ASM listo para compilar. En el próximo artículo presentaré la conversión del programa al método de programación con MACROS y una serie de ejemplos de programas con distintas rutinas de movimiento.


El archivo ASM se puede bajar de AQUÍ.

El insecto palo robótico HECTOR da sus primeros pasos

Un equipo de investigadores de la Universidad de Bielefeld ha tenido éxito en enseñarle la forma de caminar al único robot de su tipo en el mundo. Sus primeros pasos fueron registrados en un video. El robot se llama HECTOR y su construcción se basa en las formas de un insecto palo (Phasmatodea)

Con un diseño inspirado en los insectos, HECTOR tiene juntas elásticas pasivas y un exoesqueleto ultraligero. Lo que lo hace único es que está equipado con un gran número de sensores y que funciona de acuerdo con un concepto inspirado en la biología, un control reactivo descentralizado: el Walknet. Para el 2017, el robot andante estará equipado con habilidades adicionales dentro de un importante proyecto en el Centro de Excelencia de Tecnología de Interacción Cognitiva (CITEC).

Dibujo de diseño de HECTOR

El robot andante ha sido construido por el grupo de investigación en biomecatrónica. En el futuro, HECTOR servirá como una plataforma para los biólogos y expertos en robótica para poner a prueba las hipótesis sobre la locomoción animal. Un aspecto importante será la fusión de grandes cantidades de datos de los sensores de manera que el robot pueda caminar de modo más autónomo que antes. Una cuestión clave más será una óptima coordinación de los movimientos en un robot con articulaciones elásticas.




«La forma en que actúa la elasticidad en las unidades de HECTOR es comparable a la forma en que los músculos actúan en los sistemas biológicos», dice el profesor Dr. Axel Schneider. Él dirige el grupo de investigación biomecatrónica y coordina el proyecto CITEC junto con el Profesor Dr. Volker Dürr del Departamento de Cibernética Biológica de la Facultad de Biología. Schneider y su equipo desarrollaron sus propios actuadores elásticos. HECTOR tiene 18 de esos. Gracias a la elasticidad inspirada en la biología que poseen sus unidades, HECTOR puede adaptarse con flexibilidad a las propiedades de las superficies sobre las que camina.

«Sin embargo, la elasticidad por sí sola no es suficiente para que HECTOR pueda caminar a través de un entorno natural que contiene obstáculos», dice Schneider. «El reto era desarrollar un sistema de control que se encargara de coordinar los movimientos de sus patas en entornos difíciles, también».

El colega de Schneider Jan Paskarbeit fue responsable del desarrollo y la construcción del robot. Él también programó una versión virtual de HECTOR con el fin de poner a prueba enfoques de control experimental sin dañar el robot. «Todos los subsistemas tienen que comunicarse entre sí para que el robot camine sin ninguna dificultad», dice Paskarbeit. «De lo contrario, por ejemplo, HECTOR podría tener demasiadas patas en el aire al mismo tiempo, volverse inestable y caerse. Por otra parte, las patas tienen que ser capaces de reaccionar a las colisiones contra obstáculos. Hemos Solucionado esto implementando un comportamiento reflejo para subir por encima de los objetos», explica el investigador del CITEC.

En el Centro de Excelencia CITEC, ocho grupos de investigación se han unido durante tres años en un proyecto a gran escala para optimizar a HECTOR. Los científicos vienen de los campos de la informática, la biología, la física y la ingeniería.

En la actualidad, los investigadores están trabajando en el equipamiento de la sección frontal de HECTOR con sensores de largo alcance, como en una cabeza. Ya tienen un prototipo con dos cámaras laterales y dos antenas táctiles. Tanto el sistema visual como el táctil están inspirados en los de los insectos; sus espacios de funcionamiento y su resolución son similares a los de modelos animales.

Equipo de diseño de HECTOREquipo de trabajo

«Un gran reto ahora será encontrar una forma eficaz de integrar estos sensores de largo alcance con los sensores de posición y los sensores de las articulaciones. HECTOR es la plataforma ideal de investigación para hacer esto», dice Volker Dürr.

A hexapod walker using a heterarchical architecture for action selection

Por otra parte, hasta la fecha Hector ha sido un sistema reactivo: Reacciona a los estímulos de su entorno; gracias al programa de software «Walknet” puede caminar con un paso de insecto; y gracias a otro programa llamado «Navinet» es capaz de encontrar el camino hacia cualquier objetivo distante. Pero Schillling y Cruse también han desarrollado un programa llamado «reaCog» que se activa cuando dos de los otros programas no son capaces de resolver un problema dado.

Este nuevo software permite al robot simular un «comportamiento imaginado» para resolver dicho problema: Héctor busca nuevas soluciones y evalúa si estas acciones tendrían sentido, en vez de completar automáticamente cualquier operación predeterminada. El hecho de ser capaz de imaginar acciones es una característica central de una forma simple de conciencia.

Autoconciencia

Pero en breve, además, Héctor demostrará cómo funciona la nueva arquitectura de software para él creada y que le proporcionará la “autoconciencia”. De momento, esta arquitectura solo ha sido probada en simulaciones informáticas.

Como explica Holk Cruse, «el ser humano posee conciencia reflexiva cuando no solo puede percibir lo que experimenta, sino que también tiene la capacidad de experimentar que está experimentando algo. Por tanto, la conciencia reflexiva existe si un sistema técnico o humano puede verse a sí mismo ‘desde fuera de sí mismo’, por así decirlo».

Cruse y Schilling han demostrado como puede surgir conciencia reflexiva de un robot. «Con el nuevo software, Héctor puede observar su estado mental interno —en cierta medida, sus estados de ánimo— y dirigir sus acciones, usando esta información», señala Schilling. Pero, además, estas facultades básicas estarán preparadas para que Héctor también sea capaz de evaluar el estado mental de otros. Así será “capaz de sentir las intenciones o expectativas de los demás, y actuar en consecuencia”, aseguran los investigadores.

Noticias relacionadas:






Donaciones para los robots desde Marcos Paz

Nuevas donaciones para desarme y para construir robots de mi plan Robots Didácticos Sociales. Como verán, algunas muy específicas e interesantes. Gracias, Susi, Leonel, Andrea

Conjunto de donaciones recibidasConjunto donaciones
Donaciones

Donaciones para los robots desde Marcos Paz: un auto a control remoto; sin el transmisor del control, aunque igual debe valer mucho dineroAuto de carrera

Donaciones para los robots desde Marcos Paz: este tipo de ruedas, con cubiertas blandas neumáticas, son excelentes para la marcha y agarre de un robot y tienen importantes precios en el mercadoRuedas