Kinect en Jderobot

Kinect

Kinect es una de los sensores más de moda hoy día, incluso considerado por muchos como el mejor gadget de 2011. Este dispositivo nace a finales de 2010, pero que durante 2011 se ha consolidado con uno de los grandes éxitos de Microsoft, ya que un producto que fue concebido para jugar a una videoconsola se ha convertido en una plataforma de desarrollo e investigación para muchos ámbitos y sectores.

¿Que es Kinect?

Kinect cuenta con una cámara RGB, un sensor de profundidad compuesto por un proyector de infrarrojos y un sensor capaz de realizar un modelado en 3D de un entorno cerrado con luz ambiental e incluso con la luz apagada, un micrófono direccional capaz de suprimir el ruido ambiente y procesador que realiza funciones como el reconocimiento facial o de voz.

Kinect ha despertado cierta curiosidad y creatividad en muchos aficionados e investigadores, propiciando drivers libres, ya cuenta con la inclusión en el Kernel 3.0 de Linux. Se ha convertido en una estupenda plataforma de visión artificial de bajo coste, menos de 150 Euros y fácilmente integrables, lo que facilitado el desarrollo de SDK no comerciales.

Kinect en JDErobot

JDErobot cuenta con componentes para la utilizar el tan preciado Kinect. Para el control de los drivers disponemos “Jdenect”, bajo la librería “freenect”. Este componente proporciona la imagen RGB, la de profundidad y la de IR, el control del cuello y la capacidad de modificar el LED. Este componente no esta empaquetado con la versión oficial. Para más información de este componente pulsa aquí.

El componente “Visornect” permite el control del Kinect conectándose al componente anteriormente descrito. Donde podremos visualizar las distintas imágenes, controlar el cuello y LED mediante botones y visualizar la nube de puntos en un visor en 3D.

¿Que se está haciendo con Kinect en JDErobot?

Actualmente estoy utilizando Kinect para el desarrollo de mi PFC, en dos lineas diferentes por un lado para la detección de personas en 3D e interactuar con el robot mediante reconocimiento de gestos. Se ha usado la librería “Openni” para la detección de personas en 3D pero esto quizás esto cambie en un futuro próximo implementando algún algoritmo de tracking propio.

Por otro lado para la construcción de una memoria visual basada en parches planos utilizando como primitiva puntos que forma una nube de puntos. Para la integración de esta memoria me ha sido muy útil la librería PCL que contiene numerosos algoritmos, filtros, registro, segmentación, reconocimiento de objetos, etc.

También se esta utilizando para desarrollar Eldercare-5, un sistema de video monitorización que detecta si una persona se ha caído. Esta orientado a personas mayores que viven solas. Aquí podeis encontrar mucha más información.

Dentro de mi Wiki podéis encontrar mucha más información.

Alejandro.

computer vision, jderobot, robotics No Comments

Written by:

Conferencia sobre jderobot-5 en Medellin

Hace unas semanas el profesor Nelson Muñoz, del Politécnico Colombiano Jaime Isaza Cadavid (Medellín), me invitó a impartir una conferencia sobre jderobot para sus alumnos egresados y los miembros del grupo de robótica de este centro universitario.

La charla se titula Programación de aplicaciones en robótica, visión artificial y domótica. En ella conté la versión 5.0 de jderobot y presenté muchos ejemplos programados con nuestra plataforma en esos tres ámbitos. En todos ellos se manejan sensores, actuadores y cierta inteligencia entre ambos. Echando la vista atrás a los últimos siete años hemos hecho muchísimas cosas y sistemas interesantes!!. Aquí están las trasparencias de esta charla.

A parte de su hospitalidad, fue un placer descubrir que utilizan jderobot para la investigación con su robot todo-terreno. Casi se me cae una lágrima al ver el pantallazo inicial de jderobot-4.3 al arrancar el ordenador principal de su robot :-)

jderobot No Comments

Written by:

jderobot 5.0.0 launched

The new stable release of jderobot has been launched, it is the 5.0.0 release. It takes into account the lessons learnt with previous releases.

  1. The general architecture has been fully redesigned to be component oriented. Applications are a collection of one or several components running and interoperating between them.
  2. It uses  ICE and explicit interfaces for communication between the components
  3. Multilanguage: the components may be written in different programming languages, they interoperate smoothly
  4. Distributed: the components may run in different machines, PC, smarphones, etc.
  5. Debian packages created for easy installation
  6. All the code is licensed by GPL v3.0
  7. Components: cameraserver, cameraview, gazeboserver, introrob…
  8. Included support for v4l cameras, video files, Gazebo simulator, Stage simulator, player devices, kinect sensor, Nao humanoid…

You can find it here for download or simply install it from debian packages. More details in the Manual page at the official web site http://jderobot.org


Example: Gazebo and Introrob component

Example: Gazebo and Introrob component

jderobot No Comments

Written by:

Distributed Video Surveillance System based on Android

Security and Surveillance Systems have always been demand in the industrial and home environment. The cameras, which human eyes are able to collect all visual information from the environment. Extensions necessary and highly desirable in these systems, and that few possess, are integration and interconnection with other systems, video surveillance and display all the information on a mobile device, which lately is becoming essential in a peripheral daily life. Most existing surveillance systems are based on the hardware, and software is old and have not a good design, so it’s difficult allowing scalability and increased functionality. 

This project, called Surveillance, raises the development of a distributed video system integrated in mobile device based on Android. For this we have designed a distributed system, multi-platform, multi-lenguage and high scalability. The system performs records through the cameras installed and it is associated with an alarm generation by motion detection. All this is managed and viewed from a mobile device based on Android with intelligent touchscreen. One of the most important features has been developed is receiving real-time video in mobile device, both the cameras and recordings made. 

 

 

The system has been experimentally validated and proven correct operation. For the implementation of this project is used software platform architecture and JDEROBOT, distributed component programming six main functions that are: get the images from the camera, motion analysis, centralize the management of the recordings, making the recordings, display information on mobile and manage logical recordings and alarms. It has also opted to use frameworks, consolidated libraries and tools (ICE, GStreamer and VLC) to provide robustness to the system. Finally, we have integrated and improved several components of this infrastructure, obtaining a correct and efficient functioning.

Of sourse, this project is a FLOSS (Free Libre Open Source Software) project. You can obtain the source code and documentation in the next links:

 

Posted via email from rocapal’s posterous

Uncategorized No Comments

Written by:

Nao robot in Gazebo

I am pleased to present GNao, a Nao Robot simulated in Gazebo.

gnao

I have created GNao using Gazebo and we can control it with his own library (libgazebo) or with NaoOperator(an aplication created by Francisco Rivas).

GNao has the same height, weight and degrees of freedom that real Nao.

In this link you can see some videos.

jderobot No Comments

Written by:

Moving a virtual Y1 module with JDErobot 5.0

blog-jderobot5-servo1-test1

Currently I am working on supporting modular robots in JDERobot 5.0. As a first example, I have created the Servo1 component. It is a virtual Y1 module that can be moved to any position in the range [-90,90]. It has been programmed using the OpenMR plug-in for OpenRave (in C++). The client is another C++ program that just let the user to type in the desired position for the servo.

ICE is used for the communication between the client and server.

Here there is a Video demostrantion. The sources can be found in this SVN repository.

Obijuan

jderobot No Comments

Written by:

MonoSLAM at jderobot

We’re glad to present the first prototype of monoSLAM working inside jdeRobot platform.

MonoSLAM is for monocular Simultaneous Location And Mapping, a computer vision technique which permits to estimate in real-time the relative position of a moving camera with respect to several landmarks extracted from the environment, using only the image sequence that provides the camera.

It is potentially helpful in visual odometry for robots, specially for those whose mechanical odometry is poor (e.g. legged robotssuch as Nao). It can also be used for augmented reality systems and scene reconstruction from video sequences.

You will always find a video of the latest prototype by following this link:

Latest video

jderobot No Comments

Written by:

Talk: vision on mobile robots

Dr. Pilar Bachiller from Universidad de Extremadura has presented the system developed on her PhD in order to get the robot behavior based on visual attention for mobile robots. The design of a control architecture for a mobile robot involves seeking solutions to issues such as analysis and interpretation of sensory information provided about the environment, the limited scope of the sensors, the limited time to process image and maintenance of multiple behavioral objectives.
You can download the PDF slides and also you can see or download full recorded speech on .avi video here.

computer vision, robotics 2 Comments

Written by:

Connecting Android to JDEROBOT through ICE

Today, it seem impossible that we can’t control anything from our mobile device. I’m using JDEROBOT software to create a video-surveillance system based in software libre and low cost hardware.

A good feature for this system is the total control from the mobile device. In this case, we use a Android device (HTC Magic) and our problem is connect both systems: JDEROBOT (linux) and SecurityApp (Android). There are many options for this as: rpc, webservice (xml+soap) or some distributed framework. We opted for ICE (Internet Communications Engine) that is a distributed system based in definition of interfaces language.

“The Internet Communications Engine (Ice) is a modern object-oriented toolkit that enables you to build distributed applications with minimal effort. Ice allows you to focus your efforts on your application logic, and it takes care of all interactions with low-level network programming interfaces. With Ice, there is no need to worry about details such as opening network connections, serializing and deserializing data for network transmission, or retrying failed connection attempts (to name but a few of dozens of such low-level details).”

· The Android/Java Code: We try show the image captured by webcam in the Android mobile.

 Ice.Communicator communicator = Ice.Util.initialize();
 Ice.ObjectPrx base =
     communicator.stringToProxy("varcolorA:tcp -h 193.147.51.113 -p 9999");

 // Varcolor and Image are interfaces defined by us.
 if (base == null)
    Log.e("Main","Could not create proxy");
 else
 {
     VarColorPrx vprx = VarColorPrxHelper.checkedCast(base);
    if (vprx != null) {
        ImageData image;
        image = vprx.getData();

        // In image variable we obtain the image data.
    }
 }

Easy, right? ;-)

· The Result: The next photo shows how the android mobile can show the image captured by webcam. The webcam is connected to laptop where JDEROBOT is running.

Test Android-JDEROBOT-ICETest Android-JDEROBOT-ICE
jderobot No Comments

Written by:

jderobot meets Python

jderobot is now able to load Python code with a new command “aload” allowing any kind of script to be loaded and executed inside an embedded interpreter. Thank you to the Python/C API this task has been easier. Most of the code to do it can be found here.
Now to load a Python script is as simple as:
jderobot $> aload hello.py
Loading hello.py…
Hello world!
jderobot $>

Future jderobot4.4 will be able to load schemas programmed in Python through Swig wrappers. Almost all the API will be available within Python and schemas will be able to “talk” to other ones, no matter their programming language.

Go to Source

jderobot 1 Comment

Written by:

« Previous Entries