Chapter 3. The biggest change of Aisoy1

March 24, 2014

The 3rd generation of Aisoy1 was the most important change in its story. Discover why. Aisoy1 is based on ROS At its core, the software in Aisoy1 in based on Robot Operating System (ROS). ROS is a software framework offering libraries and tools to help software developers create robotics applications. It provides hardware abstraction, device drivers, function libraries, visualizers, communications, package management, and much more. ROS is made available under the open source BSD license. If you have experience with programming robots, you probably need no introduction to ROS, but we will enumerate the main reasons that drove us to incorporate this awesome framework. Before moving to ROS, we were using a homegrown architecture. The biggest benefit of that approach was that the functionality perfectly fit our needs. This was the typical trend several years ago as all roboticists were left reinventing the wheel. As many others have found, incorporating ROS allows us to focus on our important feature-related work and to forget about the architecture and low level stuff. Although we had to modify our approach to leverage ROS, we now benefit from everything the platform offers. • One of these benefits is to receive new ROS versions with bug fixes and new cool features without required effort on our part. We are committed to incorporating the latest ROS versions as soon as they are considered stable. • Important open source libraries such as OpenCV are very well integrated within ROS. • All ‘low level’ aspects (like communication protocols) are abstracted and managed by ROS so we only have to worry about our higher level development: the unique features and capabilities of our robots. • ROS is popular with many other commercial robots. Therefore it is straightforward to integrate and communicate with these robots at the ROS level. • Using a standard framework allows us to use related standard tools. For example, by implementing simple modifications in a plugin for the well-known Scratch program created by MIT, we are now able to create complex behaviors for Aisoy1 using that tool. • ROS provides very useful tools for robots such as the 3D simulator Gazebo or the Rviz: a tool to monitor display robot sensor readings in real time. In fact, an Aisoy1 model for Gazebo is available if you don’t (yet) have the opportunity to obtain a real Aisoy1 robot. Communication with other robotics platforms and devices From the onset of our effort, we intended for Aisoy1 to be a means of interfacing and communicating with other devices and robots. We successfully integrated with other robotic platforms such as Arduino, Moway and even a TurtleBot simulator. Watch Aisoy1 navigate a TurtleBot through a series of received voice commands here: Our robot can also integrate with smartphones, televisions, and home automation systems. And since this version uses a Raspberry Pi, you can use it as a computer by simply plugging in a mouse, keyboard and monitor. We offer the capabilities limited only by your imagination! Hardware We want to let users personalize the configuration of their Aisoy1. We have integrated a Jetpack on the back of the robot capable of holding any SBC (Single Board Computer). We currently supply a Jetpack with the very popular Raspberry Pi that provides enough computational power for all of the robot’s capabilities. We similarly chose Raspbian as the OS for many reasons including broad scope of supported devices and frequency of release updates. But you are free to modify your robot as you would like. We are thinking about to integrate with the more powerful BeagleBone Black as well as the Hardkernel Odroid. What do you think? Aisoy1 contains many components that allow it to interact with its environment. We categorize these components as sensors and actuators. The sections below detail the sensors, actuators and software modules included with the Aisoy1. • Camera: A USB 2 megapixel camera attached to the left side eye of the robot supports capabilities such as face and object recognition. • Microphone: The microphone allows the robot to hear everything from human voices to music or any other kind of sound. • Accelerometer: The accelerometer makes it possible for the robot to know its orientation and movement in 3D space with a great degree of precision. This sensor gives the robot awareness of events like knowing when he’s been knocked over. But that will make him angry, so don’t be that mean! • Tactile sensors: The robot contains three tactile sensors: one on the back of its head and two more on each side of its body. These sensors can make the robot aware of affectionate touches or contact which will make him (or her) feel happy. • Wifi USB dongle: This new version of the Aisoy1 robot uses a Wifi USB dongle to let the robot connect to the Internet. This connectivity allows him to expand his use of application services (including speaking, voice/sound recognition) and opens up a huge opportunity to create apps in the realms of social networks, online radio, video-conference and more! • Servo motors: The robot has four low cost servo motors (Turnigy SG90R). Two move the head up and down and left to right. One opens and closes the eyes and one move its eyebrows. • RGB heart LED: The robot has an RGB LED on his chest capable of displaying any color combination. It is normally used to display the status of the robot or to visually express its emotional state. • Mouth LED array: The robot’s mouth is an array of 70 LEDs. This display is used to draw the robot’s mouth as a display of emotions but can also be used to display any text. For example, it is used to show the IP address of the robot when it is booting. • Speaker: The speaker allows the robot to converse or play sounds and music. Software • AIROS: AIROS is one of the developments we are most proud of at Aisoy Robotics. When you switch on the robot, AIROS launches and lets you chat with Aisoy1. Since it is an emotional robot, everything you do or say to your robot will directly affect his emotions and feelings. AIROS is a complex system that makes your robot appear alive. It simulates emotions and physically reacts just as human beings do. It lets you have a conversation and provides more surprises that you will discover over time. • TTS (Text-to-Speech): The TTS supports robot speech. If Aisoy1 is connected to the Internet it can utilize a more advance technologies. This service offers a much improved robot voice capability with an amazing human voice. If you’re not connected to the Internet, AIsoy1 will use a well-known offline robotic TTS called Festival that supports a large variety of languages. • ASR (Automatic Speech Recognition): ASR services let the robot understand what you say to him. As in the case of the TTS, we can use offline and online services, depending on whether or not your robot is connected to the Internet. If you’re connected it offers grammatical context comprehension -- meaning the robot will understand virtually anything you say to him. If you use an offline ASR because you don't have Internet connectivity, we offer the PocketSphinx ASR which is also very common in the robotic space. • Chatscript: We want to offer an amazing experience for the user when interacting with Aisoy1. For this reason, we chose Chatscript as the dialog manager. Chatscript is a very famous bot system that supports a complete verbal conversation with the robot. Sometimes you will even wonder if you are actually talking with a robot or a real person! • Botserver: Although Aisoy1 can listen, speak, and even display information in its mouth LED array, it is necessary to have a way to configure and manage your robot. That’s why we created what we call the Botserver. It is a web server running in the robot that can be access through a web browser on your PC. Now you can configure your robot. You can change its name, install, uninstall, and launch botapps. You can also view robot diagnostics such as the battery level and Wifi signal strength and so forth. Many of the these settings can be managed with voice commands but we realize many users feel more comfortable with the UI approach. We work hard to make Botserver as useful as possible. Tools Aisoy1 is geared towards many different kinds of users: parents, kids, programmers, researchers and so forth. One of our main objectives is to enable users to create their own programs with Aisoy1, even if they have little programming knowledge. That’s why we offer many possibilities depending on your interests and experience. These include: • AIDIA (Drawing Artificial Intelligence): This application was created in consideration of people who don’t know or care about complicated programming. You are able to create complex behaviors just by drawing boxes and linking them. And this is done in a very easy and fun way. • SDK: If you love programming and you have some cool things in mind, you’re in luck! We have made a huge effort to offer a very easy and intuitive API. It is available in C++ and Python, so choose the language you prefer. Although it is continually evolving, you can start using it immediately. Check out this cool example of how Aisoy1 is able to track objects using the C++ SDK. You can also watch this botapp in action: • Botapps: This is our name for the category of applications made specifically for the Aisoy1 robot. You can develop your botapps and share them with the rest of the community so we can all enjoy trying each other’s creations. You can take a look of some of these botapps on our youtube channel. This is the last post about our 5 year history. From now on, we will be talking about our amazing present and future!La 3ª generación del Aisoy1 fue la más importante de su historia. Descubre por qué. Aisoy1 está basado en ROS Aisoy1 está basado en ROS (Robot Operating System). ROS es un framework software que ofrece librerías y herramientas que ayudan a los desarrolladores a crear aplicaciones robóticas. Proporciona una abstracción hardware, drivers para dispositivos, librerías de funciones, utilidades de visualización, gestión de paquetes, comunicaciones y mucho mas. ROS se ha desarrollado bajo licencia open source BSD. Si tienes experiencia con la programación de robots, probablemente ya lo conozcas, pero vamos a sintetizar las principales razones de nuestra elección para el resto de la comunidad. Antes de utilizar ROS, usábamos una arquitectura propietaria desarrollada por nosotros. El mayor beneficio de ello era que que satisfacía perfectamente nuestras necesidades. Esto era lo habitual por aquél entonces, cuando nosotros comenzamos: ¡todos queríamos inventar la rueda! Como otros, vimos que el uso de ROS nos permitiría focalizar nuestros esfuerzos en lo importante (experiencia de usuario) en lugar de en los niveles inferiores de la arquitectura. Aunque tuvimos que modificar nuestro enfoque para incorporar ROS, así podríamos beneficiarnos de lo que ofrece. • Uno de los principales beneficios es estar actualizado permanentemente con nuevas versiones que resuelven problemas e incorporan nuevas funcionalidad sin prácticamente ningún esfuerzo por nuestra parte. Tratamos de estar siempre actualizados con la última versión estable para que nuestros usuarios puedan aprovecharse de ello. • Útiles librerías open source como son OpenCV están integradas en ROS. • Todos los aspectos técnicos de bajo nivel (como los protocolos de comunicación) están gestionados de forma transparente por ROS, por lo que solo hay que preocuparse por las capas superiores y de aplicación del robot. • ROS es muy popular en la industria de la robótica personal. Así es muy fácil comunicarse con estos robots. • Usar un framework estándar permite usar herramientas estándar como por ejemplo Scratch (programa creado por el MIT). Hemos desarrollado un plugin que permite programar Aisoy1 usando dicha herramienta. Comunicación con otras plataformas y dispositivos Desde el comienzo, intentamos que Aisoy1 pudiera relacionarse fácilmente con otros dispositivos y robots. Lo hemos hecho con otras plataformas robóticas como Arduino, Moway e incluso el simulador TurtleBot. Aquí puedes verlo navegar con un TurtleBot reciviendo instrucciones por voz: Nuestro robot puede integrarse con smartphones, televisiones y sistemas domóticos. Y desde esta versión utiliza Raspberry Pi. Puedes usarlo como un computador conectando un ratón, teclado y monitor. ¡Los límites los pone tu imaginación! Hardware Queremos que los usuarios puedan personalizar la configuración de sus Aisoy1. Hemos integrado un Jetpach en la espalda del robot capaz de albergar cualquier SBC (Single Board Computer). Actualmente lo proveemos con una de las más populares, la Raspberry Pi, que proporciona suficiente capacidad computacional para las necesidades actuales del robot. Seleccionamos Raspbian como sistema operativo por varias razones que incluyen la amplia cantidad de dispositivos soportados así como la alta frecuencia de actualizaciones. Pero eres libre de modificarlo como desees. Estamos pensando en la posibilidad de integrar con SBC más potentes como BeagleBone Black o Hardkernel Odroid. ¿Qué opinas? Aisoy1 contiene muchos componentes que le permiten interactuar con su entorno. Estos componentes los clasificamos como sensores y actuadores. A continuación describimos los más importantes. • Cámara: Una cámara USB de 2 megapixel en su ojo izquierdo permite funcionalidades reconocimiento de caras y objetos. • Micrófono: El micrófono permite al robot escuchar la voz humana, música y otro tipo de sonidos. • Acelerómetro: El acelerómetro permite gestionar la orientación y movimiento en el espacio tridimensional con un alto grado de precisión. Este sensor informa al robot de aspectos como su inclinación. Pero ten cuidado, ¡puede enfadarse! • Sensores táctiles: El robot contiene 3 sensores táctiles. Uno en la parte trasera de la cabeza y dos más en cada lado de la espalda. Estos sensores detectan cuando lo tocas o acaricias. Si lo haces con cariño se sentirá feliz. • Adaptador Wifi USB: Esta versión usa un adaptador Wifi USB para conectarse a Internet expandiendo su funcionalidad con nuevos servicios (reconocimiento de voz, ...) y abriendo un nuevo mundo de posibilidades para crear apps que se conecten a tus redes sociales, radio online, videoconferencia y ¡mucho más!. • Servos: Tiene cuatro servos (Turnigy SG90R). Dos para mover la cabeza arriba/abajo e izquierda/derecha. Otro para abrir y cerrar los párpados. Y, el último, para subir y bajar las cejas. • Corazón LED RGB: En su pecho alberga un Led multicolor. Normalmente es usado para informar sobre el estado del robot y expresar su estado emocional. • Boca de matriz de LEDs: La boca es una matriz de 70 LEDs que es usada tanto para dibujar la boca del robot como pantalla para mostrar muecas u otro tipo de información textual o gráfica. Por ejemplo, es usada para mostrar la dirección IP cuando el robot está arrancando. • Altavoz: Permite la conversación o emitir sonidos y música. Software • AIROS: AIROS es uno de los más afamados desarrollos de Aisoy Robotics. Cuando arrancas el robot, AIROS es lanzado y te permite dialogar con Aisoy1. Dado que es un robot emocional, todo lo que dices afecta a sus sentimientos y emociones. AIROS es un complejo sistema que da vida al robot. Simula emociones y reacciones físicas como un humano lo haría. Te permite tener una conversación y darte alguna que otra sorpresa que la descubrirás con su uso. • TTS (Text-to-Speech): El TTS soporta la capacidad de hablar. Si el Aisoy1 está conectado a Internet puede utilizar sistemas TTS más sofisticados. Este servicio proporciona un sistema mejorado y más realista de voces. Si no lo está, utiliza un reconocido TTS llamado Festival que soporta una gran variedad de idiomas. • ASR (Automatic Speech Recognition): El ASR permite entender al robot lo que estás diciendo. Como en el caso del TTS, puede utilizar servicios online y offline en función de si tiene conexión a Internet o no. Si está conectado, el ASR ofrece un mayor nivel de comprensión gramatical. Si no lo está, utiliza un sistema denominado PocketSphinx con menor capacidad pero muy común en la industria robótica. • Chatscript: Queremos ofrecer una atractiva experiencia de usuario a la hora de interactuar con Aisoy1. Por esta razón elegimos Chatscript como gestor de diálogo. Chatscript es muy famoso y soporta una completa conversación verbal con el robot. ¡A veces puedes preguntarte si realmente estás hablando con un robot! • Botserver: Aunque Aisoy1 puede escuchar, hablar y mostrar información en su boca, es necesario tener un sistema de administración del mismo. Por esta razón hemos creado lo que denominamos Botserver. Es un servidor web que se ejecuta en el propio robot y que es accesible via un navegador web desde tu ordenador. Con él puede configurar tu robot: cambiar su nombre, instalar, desinstalar y ejecutar botapps. Puedes ver información de diagnóstico del robot tales como el nivel de batería o la señal Wifi. Muchas de estas características pueden ser gestionadas por comandos de voz pero entendemos que algunos usuarios se sientan más cómodos haciéndolo mediante la interfaz gráfica. Trabajamos duro para que el Botserver sea lo más útil posible. Herramientas Aisoy1 está orientado a muy diferentes tipos de usuarios: padres, hijos, programadores, investigadores, etc. Uno de nuestros principales objetivos es que estos usuarios creen sus propios programas para Aisoy1, incluso aunque tengan conocimientos básicos de programación. Es por esto por lo que ofrecemos diferentes herramientas alternativas en función de sus intereses y experiencia. Estas herramientas son: • AIDIA (Drawing Artificial Intelligence): Esta aplicación fue creada para personas que no quieren complicarse la vida programando. Con ella puedes crear comportamientos complejos del robot simplemente poniendo cajas y enlazándolas de forma visual, sencilla y divertida. • SDK: Si eres un amante de la programación y tienes ideas chulas, estás de suerte. Hemos hecho un esfuerzo importante para ofrecerte esta sencilla API. Está disponible para C++ y Python, así que puedes elegir el lenguaje que prefieras. Está en permanente evolución. Puedes comenzar inmediatamente. Mira este ejemplo que usa C++ en el que un Aisoy1 es capaz de realizar seguimiento de objetos. También puedes ver en acción esta botapp: • Botapps: Este es el nombre genérico que damos a las aplicaciones creadas específicamente para el robot Aisoy1. Puedes desarrollar las tuyas propias y compartirlas con el resto de la comunidad. Así, cualquiera puede disfrutar de las creaciones de otros. Puedes echarle un vistazo a otras botapps en el canal Aisoy de Youtube. Ésta es la última publicación que dedicamos a repasar nuestros 5 años de historia. Desde ahora, ¡vamos a hablar de nuestro apasionante presente y futuro!


Also in Aisoy Blog

Aisoy welcomes North American Learning Robots, our new official distributor in the US.
Aisoy welcomes North American Learning Robots, our new official distributor in the US.

March 06, 2017

North American Learning Robotics is now the exclusive official distributor of Aisoy products in the US.

Aisoy, is a Spanish manufacturer of emotional educational robots which favor creativity and the development of multiple intelligences in a personalized way is ready to conquer the American market.

Read More

Aisoy wishes you a happy 2017
Aisoy wishes you a happy 2017

December 23, 2016

Every year has 365 days plenty of opportunities for enjoying life, with your family, with your friends, and why not, with a new robot that has come to our life and make us smile.

Read More

Aisoy is highly committed to children's education, particularly to children with special needs

October 29, 2016


New Friends 2016

Aisoy creates emotional robots for changing the way children play and learn. And makes them affordable for everyone. Since the first day, we participate and collaborate with people and initiatives aligned with us.

Read More