Saw - para ganar. ¿Cómo funciona el decomiso de los objetos en el robot Tod Bot




Habr Hola! Y aquí estamos de nuevo! En perekor establece escépticos que a menudo se nos presente, continuamos desarrollando el proyecto "Robot Tod Bot». Este post es una continuación de conocimiento de módulo MoveIt como un manipulador herramienta de gestión.
En primer lugar quiero decir que hemos logrado importantes resultados en el problema de la captura y mover objetos por manipulador, así como el reconocimiento de los objetos, pero lo primero es lo primero.


Un poco de teoría acerca de la captura en MoveIt h4> Capture el objeto puede ser representado como un transportador que consta de varias etapas, que se calcula está listo para ser una ruta completa, a partir de la posición inicial del manipulador y para dirigir el levantamiento del objeto. Estos cálculos se basan en los datos siguientes:

  • fase de Planificación, que proporciona una herramienta de planificación de escena monitor
  • El identificador del objeto para la captura
  • Pose cepillo de captura para este objeto
    • La posición y orientación del manipulador "cepillo"
    • La probabilidad esperada de captura exitosa para esta posición
    • enfoque Pre-brazo, que se define como la dirección del vector - el / la distancia de aproximación deseada mínimo < /
    • brazo offset después de la toma, que se define como la dirección del vector - el guión distancia mínima
    • La fuerza de agarre máximo

      Entre el conjunto resultante de posibles posturas, hay que eliminar a esos poses que no cumplen con nuestra forma de captura / cepillo, luego transferir el transportador restante para la planificación de la trayectoria para alcanzar estas posturas.
      En la tubería de plantear el tema, hay tres puntos principales:



      1- La posición inicial; 2- predzahvata de posición; 3 - Posición de captura;

      Durante la ejecución de la trayectoria de transporte individuales se agregará al plan final para plantear el tema. Si la convulsión ha superado con éxito todas las etapas, sólo entonces el plan puede ser ejecutado. Algoritmo de transporte en general es así:
      1. Se ha previsto trayectoria desde la posición inicial a la predzahvata punto. Haciendo una analogía con el aterrizaje de la aeronave en la pista, que se acercará.
      2. Todos los objetos del entorno inicialmente incluidos en la matriz de la colisión, que escribió acerca de esto aquí . ¿Cómo sería nuestra captura fue un éxito, la detección de colisiones está desactivado. A continuación, abra la captura.
      3. Se calcula la trayectoria del enfoque manipulador al objeto de punto a punto de captura predzahvata.
      4. Cierra agarre.
      5. El objeto capturado todavía se representa por una colisión objeto tan única diferencia es que ahora es parte de la captura y tenerse en cuenta en la planificación de la trayectoria.
      6. entonces generada guión trayectoria de punto predzahvata captura condiciones de desprenderse de la superficie del objeto y se fija el resultado de elevar el tema. plan de construcción que contiene todo el camino necesario ahora se puede hacer. < br />

        Eso todavía no dijo h4> Inlet nuestros experimentos hemos decidido añadir nuestra mano a los originales cuatro grados de libertad son dos. El vídeo y las fotos se muestran en rojo. Esto es debido al hecho de que en el caso de la captura en la forma de un tenedor o cepillos antropomórficas necesitan buenas manipulador flexibilidad. Por cierto, si se utiliza como un agarre de ventosa, todo algo simplificado y 4 puede ser suficientes grados de libertad, porque se utiliza para capturar un solo plano.
        De hecho, la capacidad de capturar el rendimiento se basa en gran parte en la captura posición generación: se generarán las posiciones más grandes y más diversas, más fácil será la de elegir el óptimo. Aunque todo esto hay un inconveniente: los más posiciones, más tiempo se tarda en procesar ellos. En nuestro caso, primero generamos 10, 34 posición, luego 68, luego 136. La mejor opción que nos dio - 34 posiciones. Con un número mínimo de puestos de manipulador es bastante difícil que se genere la postura general manipulador sólo físicamente no pueden llegar a ella: no es capaz de zafarse de esa manera, demasiado corto, demasiado largo, etc. En la actualidad 34 de 2 a 5 productos satisfacer todas las condiciones.

        Reconocimiento de objetos h4> Con este fin, hemos decidido utilizar un nodo ROS tabletop_object_detector. Fue realizado por científicos de la Universidad de British Columbia y demostrado ser. Aunque, en mi opinión, la elección del sistema debe depender directamente de las condiciones en que tiene la intención de solicitar el reconocimiento y los objetos que necesitan ser identificados. En este caso, el reconocimiento se lleva a cabo en la forma de los objetos, y si es necesario distinguir el banco de bancos pepinos tomates, entonces este método no funcionará. Para identificar los objetos utilizados datos de la cámara de profundidad obtenido con Kinect.
        Antes de reconocer, primero debe entrenar al sistema - para crear un modelo 3D del objeto deseado
        .


        Modelo 3D paquete de Pringles

        Entonces, el sistema compara los datos recibidos con los modelos existentes en la base de datos.
        El resultado del reconocimiento es el siguiente:



        Como era de esperar, la tasa de búsqueda de objetos depende directamente de la potencia de la máquina en la que el procesamiento de datos. Se utilizó un ordenador portátil con Intel Core 2 Duo a 1,8 GHz y la memoria RAM de 3 Gb. Así, la identificación de objetos toma alrededor de 1, 5 - 2 segundos.
        Y, por supuesto, ser capaz de aislar e identificar objetos en el entorno, y ahora quiere recoger y moverlos. El siguiente paso será el de los problemas de integración de reconocimiento y manejo de un verdadero robot manipulador.

        Fuente: habrahabr.ru/company/tod/blog/224765/