Installation de ros Indigo sur Ubuntu (9 / 9 étapes)

Étape 9: Code Source pour la fabrication d’irobot créer suit une ligne au sol

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

Programme : irobot_linefollower

Description : Ce programme simple rend l’iRobot Créer suit une ligne s’il est connecté à l’ordinateur, copiez le code suivant s’exécute sur le matériel : iRobot Create avec câble série usb, vous devrez peut-être modifier sensor_turn_value pour s’adapter à votre iRobot créer des logiciels : Linux ubuntu 14.04 avec ROS indigo installé Turtlebot workspace configuration (si ROS suivants indigo installer guide ci-dessous ce sera le programme d’installation il.) Il y a 2 processus requis qui doivent être en cours d’exécution pour cela au travail et qui est - $ roscore / / ! un roscore/master - $ roslaunch turtlebot_bringup minimal.launch / / ! Turtlebots minimal.launch références de programme:-ROS indigo installer guide

Jour : mis 5 décembre 2014 le : Auteur : Anders Vestergaard, Jonas Vestergaard Johansen Benjamin Rudkjær Rønnov Pedersen, Emil Blixt Hansen Christian Præstegaard Madsen, Benjamin Rindom Gøthler alias de groupe : robotique P1-B304 Université AAU---* /

#include / / ! implémentations de la logique des fonctions comme cout fonctions #include / / ! Inclure les pièces publiques plus courantes du système ROS #include / / ! Inclure le nœud afin d’être en mesure de contrôler le Turtlebot (lecture iRobot Create) #include / / ! Inclure le nœud afin d’être capable de lire les capteurs sur le Turtlebot (lire l’iRobot Create)

//! Définir la vitesse de flotteur variables = 0,20 ; //! Contrôles, les Turtlebots la vitesse en mètres/seconde flottent tour = 0,00 ; //! variable destinée à contenir la vitesse de virage quand le tourne Turtlebot float turn_left_value = 1.0 ; //! Contrôle de tourner vitesse de virage à gauche float turn_right_value = -1,0 ; //! Contrôle de tourner vitesse de virage à droite int cliff_left_sensor_value = 0 ; //! variable destinée à contenir la falaise gauche capteur valeur int cliff_right_sensor_value = 0 ; //! variable destinée à contenir la falaise droite capteur valeur int sensor_turn_value = 750 ; //! Contrôler la valeur de la sonde pour le Turtlebot faire un tour à la ligne

//! Cette fonction est appelée chaque fois données elle a publié à la « / mobile_base/capteurs/core » rubrique Sub cliffSensorCallback (const create_node::TurtlebotSensorState::ConstPtr & msg) {cliff_left_sensor_value = msg -> cliff_left_signal; / / ! Stocker la valeur de cliff_left_signal de rubrique à cliff_left_sensor_value variable cliff_right_sensor_value = msg -> cliff_right_signal ; //! Stocker la valeur de cliff_right_signal de rubrique à cliff_right_sensor_value variable //std::cout << cliff_left_sensor_value << "« << cliff_right_sensor_value << « \n » ; //! Debug : Écrire des valeurs de capteur à la borne. } //! Sub cliffSensorCallback fin

//! La fonction principale du programme int main (int argc, char ** argv) {/ / ! Lors de l’initialisation des variables argc et argv comme le ros::init() besoin de ceux de préforme d’arguments ROS

Ros::init (argc, argv, « robot_driver ») ; //! L’initialisation de ROS, cela permet à ROS nommer remappong par le biais de la ligne de commande, le dernier arugemnt("robot_driver") est le nom de notre noeud.

//! Les poignées de nœud, nous allons utiliser pour communiquer avec les nœuds ros::NodeHandle nh ; //! NodeHandler pour l’éditeur ros::NodeHandle n ; //! NodeHandler pour les abonnés

/**! Dire le maître que nous allons publier un message du type « geometry_msgs::Twist » à la rubrique « / cmd_vel_mux/entrée/teleop », le second argument « 1 » est la taille de notre file d’attente de publication. ce qui signifie que nous seront tampon uniquement un message si elle est publiée à rapidement. */ //! SUPPRIMER ce que nous publierons à la rubrique « / cmd_vel_mux/entrée/teleop » d’émettre des commandes ros::Publisher cmd_vel_pub = nh.advertise (« / cmd_vel_mux/entrée/teleop », 1) ;

/**! Dire le maître que nous voulons pour vous abonner à la rubrique « / mobile_base/capteurs/core ». À chaque fois qu’il est publié un message à la rubrique ROS appelle la fonction cliffSensorCallback() le deuxième argument est la taille de mémoire tampon, qui stocke les messages dans le cas où nous ne sommes pas en mesure de traiter l’information assez rapidement. Si nous avons atteint 1000 enregistre les messages, il commencera à supprimer les messages. */ //! SUPPRIMER ce nous serons vous abonner à la rubrique « / mobile_base/capteurs/core » pour obtenir le capteur valueues. void ros::Subscriber = n.subscribe (« / mobile_base/capteurs/core », 1, cliffSensorCallback) ;

geometry_msgs::Twist base_cmd ; //! Initialisation de la geometry_msgs::Twist en fonction de base_cmd

base_cmd.Linear.x = base_cmd.linear.y = base_cmd.angular.z = 0 ; //! PEUT-ÊTRE PASSER CELA ! Assurez-vous que tous les vecteurs est définie sur 0

while (true) {/ / ! Une boucle qui toujours s’exécuter. Ros::spinOnce() ; //! Lorsque le ros::spinOnce() est appelé il obtenir tous les nouveaux messages dans la fonction cliffSensorCallback

std::cout << "falaise gauche:" << cliff_left_sensor_value << "falaise droite:" << cliff_right_sensor_value << "tourner à gauche valeur:" << turn_left_value << "tourner la bonne valeur:" << turn_right_value << "tourner:" << tourner << « \n » ; //! Debug : Écrire des valeurs de capteur et tourner les valeurs au terminal usleep(10000) ; //! Suspension exercutions pour 10000 microsecondes

//! le lecteur de commandes base_cmd.linear.x = vitesse ; //! Définit la vitesse du lecteur de la Turtlebot à la vitesse variable base_cmd.angular.z = tourner ; //! Définit la vitesse de virage de le Turtlebot à la variable de la tour

if(cliff_left_sensor_value > sensor_turn_value) {/ / ! Vérifier si quitté falaise capteur valeur est supérieure à l’ensemble de le sensor_turn_value ci-dessus, si vrai puis tourner = turn_left_value ; //! Définissant la variable de tour sur la turn_left_value de faire un virage à gauche, jusqu'à ce que nous sommes de nouveau sur la ligne. }

d’autre if(cliff_right_sensor_value > sensor_turn_value) {/ / ! Si ce qui précède est false, vérifiez si la valeur de capteur de falaise droite est plus grande que la sensor_turn_value définie ci-dessus, si elle est vraie alors deviennent-ils = turn_right_value ; //! Définissant la variable de tour sur la turn_right_value de faire un virage à droite, jusqu'à ce que nous sommes de nouveau sur la ligne. } else {/ /! si les deux ci-dessus l’if est false alors tourner = 0; / / ! Définissant la variable de la tour à 0 car nous sommes sur la ligne à nouveau. }

cmd_vel_pub.Publish(base_cmd) ; //! Envoyer la commande de disque à la rubrique définie ci-dessus "/ cmd_vel_mux/entrée/teleop"} / / ! FIN de boucle while

return 0 ; //! Mettre fin au programme} / / ! int main fin

Articles Liés

Comment faire pour installer Microsoft et Mac fonts sur Ubuntu.

Comment faire pour installer Microsoft et Mac fonts sur Ubuntu.

Intro: je vais vous montrer comment installer les polices Mac et windows sur Ubuntu 10.04, mais je dois donner crédit www.howtoforge.net parce que j'ai trouvé ce là-bas et je voulais partager avec la communauté de Instructables.Étape 1: Ouvrez Firefo
VSFTPD & de post-installation sur Ubuntu

VSFTPD & de post-installation sur Ubuntu

cette instructable documente les étapes de mon travail pour pouvoir installer et configurer correctement VSFTPD (un serveur FTP) sur une distribution Ubuntu Linux, à l'aide de la ligne de commande uniquement. C'est vrai, pas d'interface graphique ! A
Installer Team Viewer sur Ubuntu

Installer Team Viewer sur Ubuntu

J'ai été en utilisant Ubuntu depuis longtemps, je le lance le long du côté avec windows. J'ai un tutoriel sur comment à double amorçage windows et tout autre système d'exploitation, vous pouvez également lire que. Un des logiciels que j'utilise souve
Comment installer Spotify sur Ubuntu/Debian/Linux

Comment installer Spotify sur Ubuntu/Debian/Linux

Spotify fait fureur actuellement sur Mac et PC aussi bien, mais Linux n'est pas une laissée complètement sous la pluie. Voici donc comment obtenir Spotify sur Ubuntu/Debian/Linux. Premier la méthode de la prime.Étape 1: Deux méthodes Il y a deux faço
Installation du logiciel sur Ubuntu

Installation du logiciel sur Ubuntu

IntroductionPar défaut, beaucoup de programmes utiles est déjà installé lorsque vous mettez Ubuntu sur votre ordinateur. Toutefois, vous devrez peut-être un morceau de logiciel qui répond à un objectif non desservi par les applications par défaut par
Serveur Web sur Ubuntu 14.04 fait esasy

Serveur Web sur Ubuntu 14.04 fait esasy

Vous pouvez installer Ubuntu server sans difficile, allez à http://www.ubuntu.com/download/ et devez localiser le dernier fichier ISO LTS (Long Time Support).Le fichier ISO vous permet de faire un DVD ou une clé USB amorçable.Pour ce tutoriel, je vai
Installation de programmation AVR sur OS X en utilisant Eclipse

Installation de programmation AVR sur OS X en utilisant Eclipse

Certain temps retour, j'ai réussi à configurer Eclipse pour AVR programmation sur Ubuntu et Windows 8. N'étant ne pas un expert en programmation, ni dans l'électronique, je dois admettre que j'ai trouvé cela difficile.Maintenant, j'ai voulu installer
Installer des thèmes sur samsung corby s3650/s3653

Installer des thèmes sur samsung corby s3650/s3653

Bonjour à tous...Je ne veux pas perdre votre temps, donc j'arrive directement au point. C'est le tutoriel sur l'installation de thème sur votre Samsung Corby S3650/S3653 de clignotant et Patcher votre téléphone portable.S'IL VOUS PLAÎT FAITES-LE SUR
RTL-sdr sur Ubuntu

RTL-sdr sur Ubuntu

on a récemment découvert que plusieurs bon marchés dongles usb de DVB-T peut être configurés pour servir de récepteurs radio jambon pas cher.Suivre les discussions ici : http://www.reddit.com/r/rtlsdr ou trouver certains des logiciels utiles ici : ht
Comment faire pour activer compizfusion sur Ubuntu

Comment faire pour activer compizfusion sur Ubuntu

Salut tout le monde ! Dans ce Instructable, je vais vous montrer les utilisateurs d'Ubuntu comment activer et utiliser compiz fusion(compiz fusion est un jeu d'animations pour ubuntu.)J'utilise 9,0.4 JauntyÉtape 1: première Donc, tout d'abord, aller
Comment installer un chargeur USB sur une moto

Comment installer un chargeur USB sur une moto

Il y a beaucoup d'éléments qui pourraient bénéficier d' alimentation des accessoires sur une moto. Des unités spécialisées de GPS, systèmes audio et téléphones sont peu. J'ai installé une monture de téléphone de RAM sur mon vélo tout à l'heure donc j
Installer un serveur Web sur Raspberry Pi.

Installer un serveur Web sur Raspberry Pi.

Ce guide explique brièvement comment installer un serveur Web sur votre facture pro forma de framboise.Tout d'abord vous devez activer ssh. Un guide est disponible ici :Vous aurez besoin :1 Pi framboise(connecté à un routeur et à Internet)Lorsque le
(Mis à jour) Installation RetroPie 3.0 + sur framboise Pi 1, 2, & zéro

(Mis à jour) Installation RetroPie 3.0 + sur framboise Pi 1, 2, & zéro

ObjectifInstaller RetroPie 3.0 + sur n'importe quel modèle de la Pi de framboise à l'aide de Windows ou Mac.Cela inclut :Raspberry Pi 1 modèle A +Raspberry Pi 1 modèle B +Raspberry Pi 2 modèle BRaspberry Pi ZeroTutoriel vidéo est également disponible
Installation Broker(Mosquitto) MQTT sur framboise Pi

Installation Broker(Mosquitto) MQTT sur framboise Pi

Dans cette instructables, vous trouverez comment installer MQTT sur Raspberry Pi. Il existe deux méthodes pour installer mqtt, on est nous directement connecter clavier souris et moniteur à un Pi, allumez-le et allez à la borne de la pi aux framboise