Ros Indigo installeren op Ubuntu (9 / 9 stap)

Stap 9: Broncode voor het maken van irobot maken volgen een lijn op de vloer

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

Programma: irobot_linefollower

Beschrijving: Dit eenvoudige programma maakt de iRobot maken volgen een lijn als deze is aangesloten op de computer deze code wordt uitgevoerd op Hardware: iRobot Create met USB-seriële kabel u wijzigen sensor_turn_value moet wellicht aangepast aan uw iRobot maken Software: Linux ubuntu 14.04 met ROS indigo geïnstalleerd Turtlebot werkruimte setup (als volgende ROS indigo installatiehandleiding hieronder het zal worden ingesteld er.) Er zijn 2 vereist proces dat moet worden uitgevoerd voor dit werk en dat is - $ roscore / /! een roscore/master - $ roslaunch turtlebot_bringup minimal.launch / /! Turtlebots minimal.launch program verwijzingen:-ROS indigo installeren gids

: Wijzigingsdatum 5 december 2014: Auteur: Anders Vestergaard, Jonas Vestergaard Johansen Benjamin Rudkjær Rønnov Pedersen, Emil Blixt Hansen Christian Præstegaard Madsen, Benjamin Rindom Gøthler AKA groep: Robotica P1-B304 aan de Universiteit van de AAU---* /

#include / /! implementaties de logica van de functies zoals cout functies #include / /! Omvatten de meest voorkomende openbare stukken van de ROS systeem #include / /! Opnemen van het knooppunt om te kunnen bepalen van de Turtlebot (Lees iRobot Create) #include / /! Opnemen van het knooppunt om te kunnen lezen van de sensoren op de Turtlebot (Lees iRobot Create)

//! Definiëren van de variabelen float snelheid = 0.20; //! Besturingselementen de Turtlebots snelheid in meter per seconde zweven beurt = 0,00; //! variabele voor de draai-snelheid wanneer de Turtlebot bochten vlotter turn_left_value = 1,0; //! Controle draai snelheid voor linksaf float turn_right_value = -1,0; //! Controle draai snelheid voor rechtsaf int cliff_left_sensor_value = 0; //! variabele te houden van de linker cliff sensor waarde int cliff_right_sensor_value = 0; //! variabele voor de juiste cliff sensor waarde int sensor_turn_value = 750; //! Bepalen van de waarde van de sensor voor de Turtlebot om een beurt terug naar de lijn

//! Deze functie zal krijgen aangeroepen telkens wanneer gegevens het gepubliceerd naar de "/ mobile_base/sensoren/core" onderwerp nietig cliffSensorCallback (const create_node::TurtlebotSensorState::ConstPtr & msg) {cliff_left_sensor_value = msg -> cliff_left_signal; / /! Opslaan van de waarde van de cliff_left_signal tussen onderwerp en cliff_left_sensor_value variabele cliff_right_sensor_value = msg -> cliff_right_signal; //! Opslaan van de waarde van de cliff_right_signal tussen onderwerp en variabele //std::cout cliff_right_sensor_value << cliff_left_sensor_value << "" << cliff_right_sensor_value << "\n"; //! Foutopsporing: Schrijven sensor-waardes naar de terminal. } //! VOID cliffSensorCallback einde

//! De belangrijkste functie van de belangrijkste programma-int (int argc, char ** argv) {/ /! Initialiseren van de variabelen argc en argv als de ros::init() die aan het uitvoeren van ROS argumenten nodig

Ros::init (argc argv, "robot_driver"); //! Initialiseren ROS, hierdoor ROS te remappong via de opdrachtregel noemen, de laatste arugemnt("robot_driver") is de naam van onze knooppunt.

//! De handgrepen van de node we gebruiken gaan om te communiceren met de knooppunten ros::NodeHandle nh; //! NodeHandler voor Uitgever ros::NodeHandle n; //! NodeHandler voor abonnee

/**! Vertellen de meester dat we gaan om een bericht van het type "geometry_msgs::Twist" te publiceren naar het onderwerp "/ cmd_vel_mux/invoer/teleop", het tweede argument "1" is de grootte van onze uitgeverij wachtrij. Wat betekent dat we zullen slechts één bericht buffer als het wordt gepubliceerd op snel. */ //! Verwijder deze We naar het onderwerp van het "/ cmd_vel_mux/invoer/teleop publiceren zullen" te geven opdrachten ros::Publisher cmd_vel_pub = nh.advertise ("/ cmd_vel_mux/invoer/teleop", 1);

/**! Vertellen de meester dat we willen abonneren op onderwerp "/ mobile_base/sensoren/core". Als ooit er verschijnt een bericht naar het onderwerp ROS noem de cliffSensorCallback() functie het tweede argument is de buffergrootte, waarin berichten worden opgeslagen voor het geval dat we niet in staat om informatie te verwerken snel genoeg zijn. Als we 1000 winkels berichten raken zal beginnen om berichten te verwijderen. */ //! DELETE THIS We zullen worden Abonneer je op de "/ mobile_base/sensoren/core" onderwerp om sensor valueues. Ros::Subscriber sub = n.subscribe ("/ mobile_base/sensoren/core", 1, cliffSensorCallback);

geometry_msgs::twist base_cmd; //! Initilizing de geometry_msgs::Twist als functie van de base_cmd

base_cmd.linear.x = base_cmd.linear.y = base_cmd.angular.z = 0; //! MISSCHIEN ZET DIT! Zorg ervoor dat alle vectoren is ingesteld op 0

while (true) {/ /! Een lus allways uitvoert. Ros::spinOnce(); //! Wanneer de ros::spinOnce() heet het geen nieuwe berichten in de cliffSensorCallback functie krijgen

Std::Cout << "linker klif:" << cliff_left_sensor_value << "juiste klif:" << cliff_right_sensor_value << "Draai links waarde:" << turn_left_value << "zetten van de juiste waarde:" << turn_right_value << "draaien:" << zet << "\n"; //! Foutopsporing: Schrijven van de sensor-waardes en zet waarden naar terminal usleep(10000); //! Opschorten van exercutions voor 10000 microseconden

//! het station opdrachten base_cmd.linear.x = snelheid; //! Wordt de snelheid van het station van de Turtlebot ingesteld op de variabele snelheid base_cmd.angular.z = beurt; //! Wordt de snelheid van de beurt van de Turtlebot ingesteld op de variabele turn

if(cliff_left_sensor_value > sensor_turn_value) {/ /! Controleer als cliff sensor waarde groter is dan de sensor_turn_value set hierboven, als ware zet dan = turn_left_value; //! Het instellen van de variabele beurt op de turn_left_value om een linker beurt, totdat we weer op de lijn zijn. }

anders if(cliff_right_sensor_value > sensor_turn_value) {/ /! Als het bovenstaande onwaar is, Controleer of de juiste cliff sensor waarde is groter dan de sensor_turn_value zoals hierboven, als dit het geval dan zet = turn_right_value; //! Het instellen van de beurt variabele op de turn_right_value te maken van een bocht naar rechts, totdat we weer op de regel zijn. } else {/ /! als zowel de boven als het onwaar is dan zet = 0; / /! De beurt variabele instelt op 0, zoals we weer op de regel zijn. }

cmd_vel_pub.publish(base_cmd); //! Stuur de station-opdracht naar het onderwerp gedefinieerd bovenstaande "/ cmd_vel_mux/invoer/teleop"} / /! while lus einde

keren 0; //! Het programma wordt beëindigd} / /! int main beëindigen

Gerelateerde Artikelen

Het installeren van Ubuntu Linux vanaf een USB drive

Het installeren van Ubuntu Linux vanaf een USB drive

Hi,Heeft u ooit nodig om een OS te installeren op een computer met geen CD-station? Wilde afval een CD uitproberen van de nieuwe OS die u zojuist hebt gedownload? Dit instructable zal tonen hoe te maken van een bootable USB schicht toer voor installe
Het installeren van Ubuntu naast Windows

Het installeren van Ubuntu naast Windows

De zeer eerste ding moest installeren van Ubuntu, is de werkelijke operationele system(OS) zelf. Ga naar http://www.ubuntu.com/download/desktop en download de versie van Ubuntu die geschikt is voor uw systeem, worden het 32-bits of 64-bits, afhankeli
Installeren van Ubuntu 10.04 Lucid Lynx

Installeren van Ubuntu 10.04 Lucid Lynx

na een snelle zoektocht op Instructables kon ik niet vinden een goede gids over de installatie van mijn favoriete distributie van Linux: Ubuntu.  Ik snel een Oracle Virtual Machine toegevoegd en begon het installatiescherm shotting het hele proces.  
Team Viewer installeren op Ubuntu

Team Viewer installeren op Ubuntu

Mij zijn geweest using Ubuntu voor een lange tijd, ik voer het langs kant met windows. Ik heb een tutorial over hoe dual boot windows en een ander besturingssysteem, u ook dat lezen kunt. Een van de software die ik gebruik vaak team viewer is, maar i
Het installeren van Ubuntu op een Flashdrive

Het installeren van Ubuntu op een Flashdrive

Hallo! In dit Instructable, zal ik onderwijzen u hoe Ubuntu te installeren op een flash-drive.Allereerst adviseer ik dat u deze pagina op een ander apparaat niet openen omdat de computer die u gebruikt om Ubuntu te installeren opnieuw worden opgestar
Software installeren op Ubuntu

Software installeren op Ubuntu

InleidingVeel nuttige programma's zijn reeds standaard geïnstalleerd wanneer u Ubuntu op uw computer zet. Echter, moet u wellicht een bepaald stuk van software dat een zin niet gediend door de standaard toepassingen. U kunt gewoon om te proberen een
Een NVIDIA grafische driver te installeren op Ubuntu (9.04)

Een NVIDIA grafische driver te installeren op Ubuntu (9.04)

heb ik besloten om dit samen te stellen want ik heb dit meerdere keren doen en gewoon zoeken via Google en forums heeft nooit mij recht omhoog richtingen die werkte. Alle stappen doorlezen vóór trying zulks.Je weet nooit als zal er vreemd verschillen
Een virtuele Machine en Ubuntu installeren op Windows 7

Een virtuele Machine en Ubuntu installeren op Windows 7

he mensen, dit is Zack met uw hot-off-the-press instructable.  Ik doe dit zodat ik mijn geweldige laptop gebruiken kan voor het verzenden van opdrachten naar BeagleBoard.  Zijn enkele coole links aan het einde.Dit instructable begeleidt u bij de inst
Hoe te installeren Microsoft en Mac lettertypen op Ubuntu.

Hoe te installeren Microsoft en Mac lettertypen op Ubuntu.

Intro: Ik ga u laten zien hoe de Mac en windows-lettertypen installeren op Ubuntu 10.04, maar ik heb www.howtoforge.net om krediet te geven want ik vond dit op daar en wilde dit te delen met de Gemeenschap Instructables.Stap 1: Open Firefox Op Ubuntu
Autonome mobiele Robot met behulp van ROS clumsybot

Autonome mobiele Robot met behulp van ROS clumsybot

onze binnenshuis autonome mobiele robot met behulp van ROS, Rtabmap, raspberry pi 2, kinect, ubuntu14.04 ltsOnze afstudeerprojectonze binnenshuis autonome mobiele robot met behulp van ROS, Rtabmap, raspberry pi 2, kinect, ubuntu14.04 lts we installer
Aan de slag met Ubuntu Linux

Aan de slag met Ubuntu Linux

Linux is het besturingssysteem (OS) van keuze voor de computer savvy sinds haar oprichting, maar in de afgelopen paar jaar met de release van kleine linux gebaseerde fysieke computing platforms zoals de Raspberry Pi, BeagleBone en Arduino Yun (onder
Aan de slag met ROS (Robotic werkend systeem).

Aan de slag met ROS (Robotic werkend systeem).

Deze tutorial zal u door het installeren van Ubuntu 10.10 en de Diamondback versie van ROS lopen. Het wordt verondersteld u nieuw bent op Ubuntu en ROS en is bedoeld als een dummies handleiding voor het installeren en configureren van een meerdere RO
De altijd actuele gids voor Ubuntu

De altijd actuele gids voor Ubuntu

Hi Guys!  Dit is het altijd Up-to-Date gids voor Ubuntu.  Deze zal worden bijgewerkt met elke nieuwe release van Ubuntu.  De huidige versie is Ubuntu 13.04 Raring oostelijke.  De volgende release, 13.10 Saucy Salamander is verschuldigde 17 oktober of
Generaal van Ubuntu (LINUX formulier)

Generaal van Ubuntu (LINUX formulier)

als u dit leest probibly hebt Ubuntu op een andere computer. In mijn ohnest is advies Ubuntu een kruising van Windows en Mac OS X. Er zijn veel + punten maar minder - punten (alleen voor bijvoorbeeld: heb je voor downloaden speciel-stuurprogramma's v