Instalación de Ros Indigo en Ubuntu (9 / 9 paso)

Paso 9: Código fuente para hacer el irobot crea siguen una línea en el piso

/*--------------------------------------------------------------------------

Programa: irobot_linefollower

Descripción: Este sencillo programa hace el iRobot crea siguen una línea si se conecta a la computadora este código se ejecuta en Hardware: iRobot Create con cable serial usb puede que necesite cambiar sensor_turn_value para caber el iRobot crea Software: Linux ubuntu 14.04 con ROS indigo instalado Turtlebot configuración de espacio de trabajo (si ROS siguientes indigo instala guía a continuación será la configuración allí.) Hay 2 proceso necesarios que deben ejecutarse para este trabajo y es - $ roscore / /! un roscore/master - $ roslaunch turtlebot_bringup minimal.launch / /! Turtlebots minimal.launch programa referencias:-ROS indigo instalar Guía

Fecha: 05 de diciembre de 2014 modificado: autor: Anders Vestergaard, Jonas Vestergaard Johansen Benjamin Rudkjær Rønnov Pedersen, Emil Blixt Hansen Christian Præstegaard Madsen, Benjamin Rindom Gøthler AKA Grupo: robótica P1-B304 Universidad de AAU---* /

#include / /! las implementaciones de la lógica de las funciones como funciones cout #include / /! Incluyen las piezas públicas más comunes del sistema ROS #include / /! Incluyen el nodo para poder controlar la Turtlebot (leído iRobot Create) #include / /! Incluyen el nodo para poder leer los sensores en el Turtlebot (leído iRobot Create)

//! Definir las variables float velocidad = 0,20; //! Controles de las Turtlebots de la velocidad en metros/segundo flotan vuelta = 0.00; //! variable para mantener la velocidad de giro cuando las vueltas Turtlebot flotan turn_left_value = 1.0; //! Control girar a la velocidad de giro a la izquierda float turn_right_value = -1,0; //! Gire la velocidad para girar a la derecha int cliff_left_sensor_value = 0; //! variable que contenga el acantilado izquierdo sensor valor int cliff_right_sensor_value = 0; //! variable que contenga el acantilado derecho sensor valor int sensor_turn_value = 750; //! El valor de sensor para el Turtlebot hacer un giro a la línea de control

//! Esta función será llamada cada vez datos publicó en el tema cliffSensorCallback vacío "/ base de sensores de mobile_base" (create_node::TurtlebotSensorState::ConstPtr const & msg) {cliff_left_sensor_value = msg -> cliff_left_signal; / /! Almacenar el valor de cliff_left_signal de asunto a cliff_right_sensor_value variable cliff_left_sensor_value = msg -> cliff_right_signal; //! Almacenar el valor de cliff_right_signal de asunto a //std::cout variable cliff_right_sensor_value << cliff_left_sensor_value << "" << cliff_right_sensor_value << "\n"; //! Depuración: Escribir valores de los sensores al terminal. } //! cliffSensorCallback vacío final

//! La función principal de la int del programa principal (int argc, char ** argv) {/ /! Inicializar las variables argc y argv como el ros::init() necesita los argumentos ROS de preformas

Ros::init (argc, argv, "robot_driver"); //! Inicialización de ROS, esto permite ROS a nombre de remappong a través de la línea de comandos, la última arugemnt("robot_driver") es el nombre de nuestro nodo.

//! Los tiradores de nodo que va a utilizar para comunicarse con nodos ros::NodeHandle nh; //! NodeHandler editor ros::NodeHandle n; //! NodeHandler para el suscriptor

/**! Dile al maestro que vamos a publicar un mensaje del tipo "geometry_msgs::Twist" el tema "/ cmd_vel_mux/entrada/teleop", el segundo argumento "1" es el tamaño de la cola editorial. significa sólo que almacenador intermediario de un mensaje si se publica al rápidamente. */ //! ELIMINAR este estaremos publicando el tema "/ cmd_vel_mux/entrada/teleop" para emitir comandos ros::Publisher cmd_vel_pub = nh.advertise ("/ cmd_vel_mux/entrada/teleop", 1);

/**! Dígale a la maestra que queremos suscribir tema "/ base de sensores de mobile_base". Cuando alguna vez se publica un mensaje en el tema ROS llama a la función de cliffSensorCallback() el segundo argumento es el tamaño del búfer, que almacena los mensajes en caso de que no somos capaces de procesar información lo suficientemente rápido. Si nos toca 1000 tiendas de mensajes comenzará a borrar los mensajes. */ //! ELIMINAR esto suscribimos el tema "/ base de sensores de mobile_base" para conseguir el sensor valueues. sub Ros::Subscriber = n.subscribe ("/ base de sensores de mobile_base", 1, cliffSensorCallback);

base_cmd de geometry_msgs::Twist; //! Inicializamos la geometry_msgs::Twist función de base_cmd

base_cmd.linear.x = base_cmd.linear.y = base_cmd.angular.z = 0; //! TAL VEZ ESTE MOVIMIENTO! Asegúrese de que todos los vectores se establece en 0

mientras {/ /! Un bucle que siempre funcionan. Ros::spinOnce(); //! Cuando se llama a la ros::spinOnce() obtener mensajes nuevos en la función cliffSensorCallback

macros << "acantilado izquierdo:" << cliff_left_sensor_value << "derecha acantilado:" << cliff_right_sensor_value << "gire a la izquierda valor:" << turn_left_value << "gire a la derecha valor:" << turn_right_value << "gire:" << vuelta << "\n"; //! Debug: Escribir valores de los sensores y activar valores a usleep(10000) terminal; //! Suspender exercutions de 10000 microsegundos

//! la unidad de comandos base_cmd.linear.x = velocidad; //! Establece la velocidad de la Turtlebot en el base_cmd.angular.z de velocidad variable = vuelta; //! Establece la velocidad de giro de la Turtlebot a la vuelta de la variable

if(cliff_left_sensor_value > sensor_turn_value) {/ /! Compruebe si valor del sensor del acantilado es más grande que el anterior conjunto de sensor_turn_value, si verdad girar = turn_left_value; //! Configurando la variable de la vuelta a la turn_left_value a girar a la izquierda, hasta que otra vez estamos en la línea. }

otra cosa if(cliff_right_sensor_value > sensor_turn_value) {/ /! Si lo anterior es falso, comprobar si el valor del sensor derecha acantilado es más grande que el sensor_turn_value establecido anteriormente, si es cierto girar = turn_right_value; //! Configurando la variable de la vuelta a la turn_right_value a girar a la derecha, hasta que otra vez estamos en la línea. } else {/ /! si tanto la anterior si es falso girar = 0; / /! Configurando la variable de vuelta a 0 ya que estamos en la línea otra vez. }

cmd_vel_pub.Publish(base_cmd); //! Enviar el comando de la unidad para el tema definido arriba "/ cmd_vel_mux/entrada/teleop"} / /! mientras que de los bucle final

return 0; //! Finalizar el programa} / /! main int fin

Artículos Relacionados

Control de Nao Robot utilizando un controlador de Xbox

Control de Nao Robot utilizando un controlador de Xbox

En este instructable mostrará cómo simular robot NAO en el simulador de Gazebo y sistema operativo del Robot (ROS). ROS es un framework de código abierto para desarrollo e investigación en robótica. Proporcionar completo conjunto de herramientas y li
Primeros pasos con ROS (robot Operating System).

Primeros pasos con ROS (robot Operating System).

Este tutorial va a guiarte a través de la instalación de Ubuntu 10.10 y la versión de Diamondback de ROS. Asume que usted es nuevo en Ubuntu y ROS y pretende ser una guía de dummies para instalación y configuración de un sistema maestro de ROS. Nota
Cómo instalar Ubuntu 14.04 junto con Windows

Cómo instalar Ubuntu 14.04 junto con Windows

¿Sientes alguna vez que su ordenador es demasiado lento, a pesar de que tiene hardware decente? Bueno, no eres el único!Pero hoy en día, la frustración sin fin de un pc lento llegará a su fin! Déjeme presente a usted: Ubuntu, un código abierto sistem
Chefbot: Un bricolaje móvil robot autónomo para servir comida en los hoteles

Chefbot: Un bricolaje móvil robot autónomo para servir comida en los hoteles

Como dice el titulo, vamos a ver cómo construir un robot móvil autónomo llamado Chefbot que es para servicio de alimentos y bebidas en hoteles y restaurantes.Este fue un proyecto de hobby y construí este robot después de ver un robot llamado Turtlebo
Nombres de dominio gratis ilimitado

Nombres de dominio gratis ilimitado

esto es una manera de conseguir dominios gratis ilimitados, pero hay un retén, todos los espectadores tienen que usar su IP del DNS.Cosas que usted necesita:1. una computadora2. una copia de Ubuntu server3. nociones de la terminal de Linux (ifconfig
Resolver Sudoku usando Intel Edison

Resolver Sudoku usando Intel Edison

Objetivo• Partir de una imagen de un rompecabezas de Sudoku, extracto y (opcional) resolver el rompecabezas.Elementos de objetivo• Extraiga el rompecabezas de la imagen (imagen de la remodelación).• Identificar los números en cada celda. -Correlacion
Recuperar datos de instalaciones de Windows XP/Vista/7 corruptos con Linux

Recuperar datos de instalaciones de Windows XP/Vista/7 corruptos con Linux

este instructable pretende ser una guía paso a paso sobre cómo recuperar datos de una instalación de windows corruptos. Se supone que usted ha intentado reparar Windows pero todavía no fueron capaces de arrancar a winodws y se va a ir para volver a i
¿Un experimento? ¿Un ahorro de dinero? ¿o una base de datos?

¿Un experimento? ¿Un ahorro de dinero? ¿o una base de datos?

Purpose:La respuesta a tu pregunta es sí, sí y no.  En este tutorial le mostrará cómo configurar fácilmente tu propio servidor con una base de datos en él.  Después de instalar el servidor y base de datos, se puede utilizar para todo tipo de cosas.  
Cómo usar una computadora de la escuela para lo que quieras!

Cómo usar una computadora de la escuela para lo que quieras!

En primer lugar, usted tendrá que recoger todas sus herramientas.herramientas:Ordenador con capacidad de arrancar desde usb.Un 4 GB + pendrive o disco duro externoUn pc con windows con una cuenta de administrador.Paso 1: Descargar otras herramientas.
Instalación de VSFTPD y configuración en Ubuntu

Instalación de VSFTPD y configuración en Ubuntu

este instructable documenta los pasos para instalar y configurar correctamente VSFTPD (servidor FTP) en una distribución de Ubuntu Linux, mediante línea de comandos solamente. Así es, no GUI! Antes de comenzar, me gustaría decir que es mi primera, po
Primeros pasos con Ubuntu Linux

Primeros pasos con Ubuntu Linux

Linux ha sido el sistema operativo (OS) de elección para el equipo de experto desde sus inicios, pero en los últimos años con el lanzamiento de linux pequeño basado en plataformas de computación físicas tales como la frambuesa Pi BeagleBone y Arduino
Linux(Ubuntu 9.10) Flash

Linux(Ubuntu 9.10) Flash

esto es una forma sencilla para obtener flash.Materiales-Ubuntu instaladoComputadoraRatónTecladoInternetDuh!Paso 1: Abrimos una Terminal, aplicaciones -> accesorios -> TerminalPaso 2: Tipo desudo aptitude install ubuntu-restringido-extrasy presiona
Primeros pasos con Ubuntu

Primeros pasos con Ubuntu

Este Instructable pretende conseguir Windows y los usuarios OSX iniciado con el código abierto sistema operativo Ubuntu. Voy a empezar con la configuración general, como controladores de gráficos, compartir archivos con Windows, etc., luego cubriré l
Getting Started with frambuesa Pi B + con NOOBS instalación del sistema operativo

Getting Started with frambuesa Pi B + con NOOBS instalación del sistema operativo

Esta información le guiará sobre cómo instalar los NOOBS system(OS) desde el principio de funcionamiento. Hay tercera parte OS avaliabble como compañero de UBUNTU, SNAPPY UBUNTU CORE etc. para estos la instalación, puede ser ligeramente diferente y n