User Tools

Site Tools


Writing /var/lib/dokuwiki/data/meta/teaching/ie0117/proyectos/2012/i/linux/deteccion_de_markers_con_ar_kinect_ros/programas_utilizados.meta failed
teaching:ie0117:proyectos:2012:i:linux:deteccion_de_markers_con_ar_kinect_ros:programas_utilizados

Programas utilizados

Instalacion de ROS-fuerte

ROS

ROS (Robot Operating System) brinda librerias y herramientas que ayuda a los desarrolladores de software en la creacion de aplicaciones de robotica, asi como para obtencion, construccion, escritura y reproduccion de codigo a traves de muchas computadoras a la vez.

La manera sencilla de explicar ROS, es dividiendo su funcionamiento en tres grandes areas:

Sistema de archivos de ROS:

El sistema de archivos de ROS esta conformado por los siguientes tipos de archivos:

  • Paquetes: Son la unidad principal en el sistema de organizacion de ROS. Un paquete puede contener procesos de ejecucion de ROS (se denominan nodos), librerias de las que dependan utilidades de ROS, conjuntos de datos, archivos de configuracion, y cualquier otra cosa que sea practico tenerla junto con estos archivos.
  • Manifiestos: Brindan metadatos acerca de un paquete especifico, tales como informacion sobre su licencia, sus dependencias, o informacion sobre las banderas de compilacion relacionadas.
  • Stacks: Son colecciones de paquetes que generan una funcionalidad, como por ejemplo “navigation stack”.
  • Manifiestos de los Stacks: Al igual que los anteriores, brindan datos de un Stack especifico.
  • Mensajes (msg): Son las descripciones de mensaje. Definen las estructuras de datos para el envio de mensajes en ROS.
  • Servicio: Son las descripciones de servicios. Definen las estructuras de datos del sistema solicitud-respuesta en ROS.

Sistema de computacion grafica de ROS:

Es la conexion “peer to peer” de los procesos simultaneos de ROS. Los siguientes son los conceptos que lo forman:

  • Nodos: Los nodos son procesos ejecutables que realizan acciones. ROS fue dise;ado para poder modularse a escalas muy peque;as. Un sistema de control de un robot puede utilizar muchos nodos: uno que controle el motor de las ruedas del robot, otro que controle el movimiento del cuello, entre otras cosas.
  • Master: El ROS master provee registro de nombres y busqueda del resto del sistema de computacion. Sin el master no puede darse el intercambio de mensajes, ni la invocacion de servicios entre los demas nodos.
  • Servidor de parametros: Permite que los datos sean almacenados en alguna posicion central. En general es parte del Master.
  • Topics: Es utilizado para identificar el contenido de un mensaje. Si un nodo esta interesado en algun tipo especifico de datos, debe suscribirse al topic apropiado para recibirlos.
  • Bolsas: Son un formato para salvar y volver a reproducir datos de mensajes de ROS. Las bolsas son un mecanismo importante en el almacenamiento de datos.

Sistema de comunicacion de ROS:

Este se encarga de facilitar el intercambio de software y de conocimiento entre comunidades alejadas por una u otra razon. Algunos recursos utilizados para esto son:

  • Distribuciones: Son colecciones especificas de stacks que se pueden instalar. Estas son similares a las distribuciones de Linux, ya que facilitan la instalacion de algunos software.
  • Repositorios: ROS se basa en una conexion federada de repositorios, donde diferentes instituciones pueden presentar y poner a dispocision sus propias creaciones en software de robotica entre otras cosas.
  • El wiki de ROS: Es el foro principal para documentacion de ROS. Cualquiera puede loggearse y contribuir con su propia documentacion, con correcciones especificas o actualizaciones, escribir sus propios tutoriales entre otras cosas.

Xstow

Xstow es un programa realizado para el manejo de la instalacion de paquetes de software, manteniendo estos separados, al mismo tiempo que los hace ver como si se hubieran instalado en el mismo lugar.

Swig-wx

Esta es una version modificada de swig. Es una herramienta que conecta programas escritos en lenguajes como C o C++, con una variedad de lenguajes de programacion de alto nivel.

Rosinstall

Es una herramienta de ROS que realiza un chequeo de algun codigo fuente de ROS desde multiples repositorios y lo actualiza.

FLANN

Es una biblioteca para realizar busquedas rapidas en espacios de alta dimension. Contiene una coleccion de algoritmos para realizar estas busquedas, asi como un sistema automatizado para elegir el mejor algoritmo y optimizar sus parametros dependiendo de los datos dados.

OpenCV

Brinda una infraestructura comun para las aplicaciones de vision de computadora y para acelerar el uso de la percepcion de las maquinas.

Openni

Provee una interfaz para programacion de aplicaciones utilizando interaccion natural.

Roscore

Es el nucleo del sistema ROS. Es una coleccion de nodos y programas que son pre-requisitos del sistema basico de ROS. Se debe tener un roscore corriendo para que se de la comunicacion entre los demas nodos.

Uso del kinect en ROS-fuerte en debian

Openni_launch

“Lanza” los archivos para abrir un dispositivo OpenNI y para cargar todos los nodos para convertir los raw depth/RGB/IR streams a imagenes de profundidad, imagenes de disparidad y los point clouds.

Openni_camera

Es un driver de ROS para camaras de profundidad y/o RGB de OpenNI. En estas se incluye en kinect de Microsoft y el ASUS Xtion, entre otros.

Image_view

Es un visor sencillo para imagenes en ROS.

PCL

De las siglas Point Cloud Library. Es una libreria que se necesita para el uso de imagenes en 2D y 3D, asi como el procesamiento de point clouds.

Deteccion de markers con el kinect

Ar_kinect

Este paquete es una extension del ar_pose para poder manejar los point clouds, ademas de las imagenes generadas por el kinect, en el momento de la localizacion de los AR markers.

CCNY-vision

Este es un stack que contiene herramientas para realizar tareas de vision por computador.


Volver a la lista de objetivos

Ir al paso a paso en la realizacion

Volver a la pagina principal

teaching/ie0117/proyectos/2012/i/linux/deteccion_de_markers_con_ar_kinect_ros/programas_utilizados.txt · Last modified: 2022/09/20 00:08 (external edit)