Giter Club home page Giter Club logo

ros2pingpong's Introduction

Introduzione

Implementazione molto basilare del comando ping tra due nodi:

  1. il nodo Publisher invia un pacchetto al nodo Subscriber e fa partire un timer;
  2. il nodo Subscriber, una volta ricevuto, invia un altro pacchetto al Publisher;
  3. una volta che il nodo Publisher riceve il pacchetto di risposta, ferma il timer e calcola l'RTT.

L'RTT viene pubblicato su un topic di telemetria apposito per essere visualizzato dal plotter di default di Ros2 oppure su altri tipo matplotlib o Plotjuggler.

Compilazione

Per compilare, eseguire tutta la prassi già spiegata dal prof tenendo a mente che solo la prima volta è necessario compilare con

colcon build

e poi dalle volte successive è sufficiente

colcon build --packages-select cpp_pubsub

Questo perchè ho definito separatamente dal sorgente del nodo un messaggio custom che deve essere compilato esplicitamente la prima volta; poi dopo si può compilare solo il codice del nodo cpp_pubsub (nel caso vengano fatte delle modifiche al codice di quest'ultimo). Si può lanciare ogni volta il colcon build senza parametri ma dovendo ricompilare tutto si perde tempo inutilmente.

Esecuzione

Per eseguire è sufficiente lanciare in un terminale

source install/setup.bash
ros2 run cpp_pubsub talker

e in un altro

source install/setup.bash
ros2 run cpp_pubsub listener

Per il grafico, una volta lanciati i nodi di cui sopra, aprire un terzo terminale e lanciare

source install/setup.bash
ros2 run rqt_plot rqt_plot

Una volta aperto, digitare /time/time come riportato nell'immagine e premere il tasto invio assicurandoti poi di aver selezionato autoscroll altrimenti non vedete il grafico (sì, nell'immagine non è selezionato ma non mi andava di rifare lo screen). Screenshot 2023-05-06 103646

ros2pingpong's People

Contributors

pburgio avatar alfasierra92 avatar

Stargazers

Emiliano Maccaferri avatar Davide Palma avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.