ros-node-interface

A lightweight C++ and python interface template for managing ROS nodes with start/stop/shutdown control via ROS services.

https://github.com/henriktrom/ros-node-interface

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (7.5%) to scientific vocabulary

Keywords

cpp interface ros ros2
Last synced: 6 months ago · JSON representation ·

Repository

A lightweight C++ and python interface template for managing ROS nodes with start/stop/shutdown control via ROS services.

Basic Info
  • Host: GitHub
  • Owner: HenrikTrom
  • License: cc0-1.0
  • Language: C++
  • Default Branch: main
  • Homepage:
  • Size: 9.77 KB
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 1
Topics
cpp interface ros ros2
Created 9 months ago · Last pushed 8 months ago
Metadata Files
Readme License Citation

Readme.md

ros-node-interface

DOI

A lightweight C++ and python interface template for managing ROS nodes with start/stop/shutdown control via ROS services.

📑 Citation

If you use this software, please use the GitHub “Cite this repository” button at the top(-right) of this page.

This module provides a generic wrapper (BaseRosInterface) around any ROS-compatible module class, enabling it to be: - Started and stopped using ROS service calls - Managed with a clean threaded loop - Extended for custom node types and behaviors

Features

  • Threaded execution loop (loop_step)
  • Service-based control (start, stop, shutdown)
  • Simple modular interface for defining new node types
  • Example TestModule provided for demonstration

Example Usage

```cpp

include "ros-node-interface.hpp"

int main(int argc, char **argv) { ros::init(argc, argv, "my_node");

auto my_module = std::make_unique<ros_node_interface::TestModule>(
    ros::NodeHandle(), "my_topic"
);

ros_node_interface::BaseRosInterface<ros_node_interface::TestModule> interface(
    std::move(my_module)
);

return 0;

} ````

Dependencies

  • ROS (tested with ROS Noetic)
  • std_srvs/Trigger
  • C++14 or newer

Owner

  • Name: Henrik
  • Login: HenrikTrom
  • Kind: user
  • Company: Göttingen University

👋 Hi, I'm Henrik — PhD researcher with a focus on real-time 3D tracking and software development for human-robot interaction.

Citation (Citation.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
title: "ros-node-interface"
version: 1.0.0
doi: 10.5281/zenodo.15528214 
date-released: 2025-05-27
license: CC0-1.0 
url: https://github.com/HenrikTrom/ros-node-interface
repository-code: https://github.com/HenrikTrom/ros-node-interface
abstract: "A lightweight C++ and python interface template for managing ROS nodes with start/stop/shutdown control via ROS services."
authors:
  - family-names: Trommer
    given-names: Henrik
    orcid: https://orcid.org/0009-0002-3110-0963
    affiliation: University of Göttingen
keywords:
  - ros
  - ros2
  - node-interface
  - cpp
  - python

GitHub Events

Total
  • Push event: 3
  • Create event: 3
Last Year
  • Push event: 3
  • Create event: 3

Issues and Pull Requests

Last synced: 9 months ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Dependencies

setup.py pypi
  • rospy *
  • threading *