Skip to content

A companion Foxglove extension for the reference_signal_generator ROS2 package

License

Notifications You must be signed in to change notification settings

leggedrobotics-usp/foxglove-reference-signal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

foxglove-reference-signal

GitHub issues GitHub pull requests GitHub forks GitHub stars GitHub license


A companion Foxglove extension for the reference_signal_generator ROS2 package

📝 Table of Contents

🧐 About

Sending a reference signal to your own control system in ROS2 has never been so simple! foxglove-reference-signal creates a compact Foxglove panel with Start and Stop buttons for easily triggering the signal. With this extension, you can simultaneously send synchronized references to multiple systems or DOFs of a single system.

foxglove-reference-signal works as a companion extension for the reference_signal_generator ROS2 package, ensuring the best of both worlds:

  • The simplicity and flexibility of Foxglove as the graphical user interface for your control system, responsible only for triggering the reference signal;
  • The determinism and robustness of a ROS2 node, that is in charge of publishing all reference signals at the specified rate.

🏁 Getting Started

This repo is a standard Foxglove extension, built according to the create-foxglove-extension standard.

🛠 Prerequisites

  • foxglove_bridge

    • Required to communicate ROS2 and Foxglove. Install using apt:
    sudo apt install ros-$ROS_DISTRO-foxglove-bridge
    • Run the bridge node whenever you want to connect Foxglove and the ROS2 network
    ros2 run foxglove_bridge foxglove_bridge
  • reference_signal_generator

    • This ROS2 package is the "back-end" for foxglove-reference-signal, creating the standard topics and services that are in charge of generating the signals configured in the Foxglove interface.
    • After installing this package and its prerequisites, run the reference signal generator node. It will populate the corresponding topic and services. Make sure to select the correct topic name in the extension panel (default is /reference_signal)
    ros2 run reference_signal_generator reference_signal_generator --ros-args -p topic_name:=<your_topic_name>

💻 Installing

As mentioned above, this is a standard Foxglove extension. Thus, you can install it using npm:

git clone https://github.com/leggedrobotics-usp/foxglove-reference-signal.git
cd foxglove-reference-signal
npm run local-install

🎈 Usage

After installing the extension, add it to your Foxglove layout. Ensure at least one instance of reference_signal_generator is running on your ROS2 network. Then, simply choose the topic to publish, the publish rate (rate at which the node will advertise to the topic) and the total signal time (or leave blank for an infinite signal). Use the Signals panel to add multiple synchronized input signals and customize the parameters for each signal type.

The panel itself is meant to be simple and small, so that it takes up little space on the layout. It only has two buttons, "Start" and "Stop". An example is shown below, together with a plot panel that shows the signal generated using the extension and the companion ROS2 package.

img

🔋 Feature requests

Want something more on the interface? Open an Enhancement issue describing it.

If what you need is another type of reference signal, please open the issue on the reference_signal_generator repo.

🤝 Contributing

  • Fork the repo
  • Check out a new branch based and name it to what you intend to do:
    • git checkout -b BRANCH_NAME
  • Commit your changes
    • Please provide a git message that explains what you've done;
    • Commit to the forked repository.
      git commit -m "A short and relevant message"
  • Push to the branch
    • git push origin BRANCH_NAME
  • Make a pull request!

✍️ Author


Victor T. N. 🤖

Made with ❤️ by @Vtn21

About

A companion Foxglove extension for the reference_signal_generator ROS2 package

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published