No version for distro humble showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.2.0
License BSD 3.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description Framework to evaluate peformance of ROS 2
Checkout URI https://github.com/irobot-ros/ros2-performance.git
VCS Type git
VCS Version rolling
Last Updated 2025-04-10
Dev Status UNKNOWN
Released UNRELEASED
Tags benchmark performance cpp ros2
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

CMake function for generating performance_test_factory plugins

Additional Links

No additional links.

Maintainers

  • Alberto Soragna

Authors

  • Alberto Soragna

Performance Test Plugin CMake

This package defines the CMake function generate_factory_plugins(MSGS SRVS). This function should be invoked in a package where custom interfaces are created in order to make them usable in the performance test factory.

How to use it

  1. Create a standard ROS 2 package where new messages and services are defined. Important: all messages need to have a field PerformanceHeader header which is defined in the performance_test_msgs package.
  2. Add to package.xml
<build_depend>performance_test_plugin_cmake</build_depend>
<member_of_group>performance_test_factory_plugins</member_of_group>

  1. Add to CMakeLists.txt
find_package(performance_test_plugin_cmake REQUIRED)
generate_factory_plugin("msg/MyNewMsg.msg msg/MyOtherNewMsg.msg" "srv/MyNewSrv.srv")

See irobot_interfaces_plugin for an example.

How does it work

This tool is experimental and hacky!

The CMake function generate_factory_plugin calls a Python script to automatically generate a .cpp file that is then used to build the C++ factory support library. The automatically generated file can be found at build/<PKG_NAME>/generated/<PKG_NAME>_implementation.cpp, where <PKG_NAME> is the name of the package where the CMake function was called.

This example shows how some of the APIs exposed by the library should look like given for the messages defined in the irobot_interfaces_plugin package:

  extern "C" void add_subscriber_impl(

 std::shared_ptr<performance_test::PerformanceNodeBase> n,
    const std::string & msg_type,
    const std::string & topic_name,
    const performance_metrics::Tracker::Options & tracking_options,
    msg_pass_by_t msg_pass_by,
    const rclcpp::QoS & custom_qos_profile)
  {
    const std::map<std::string, std::function<void()>> subscribers_factory{

{ "stamped_int64", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::StampedInt64>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped3_float32", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::Stamped3Float32>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped4_float32", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::Stamped4Float32>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped4_int32", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::Stamped4Int32>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped9_float32", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::Stamped9Float32>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped_vector", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::StampedVector>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} }
    };

    if (subscribers_factory.find(msg_type) == subscribers_factory.end()) {
      throw std::runtime_error("unknown msg type passed to subscribers factory: " + msg_type);
    }

    subscribers_factory.at(msg_type)();
  }

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged performance_test_plugin_cmake at Robotics Stack Exchange

No version for distro jazzy showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.2.0
License BSD 3.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description Framework to evaluate peformance of ROS 2
Checkout URI https://github.com/irobot-ros/ros2-performance.git
VCS Type git
VCS Version rolling
Last Updated 2025-04-10
Dev Status UNKNOWN
Released UNRELEASED
Tags benchmark performance cpp ros2
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

CMake function for generating performance_test_factory plugins

Additional Links

No additional links.

Maintainers

  • Alberto Soragna

Authors

  • Alberto Soragna

Performance Test Plugin CMake

This package defines the CMake function generate_factory_plugins(MSGS SRVS). This function should be invoked in a package where custom interfaces are created in order to make them usable in the performance test factory.

How to use it

  1. Create a standard ROS 2 package where new messages and services are defined. Important: all messages need to have a field PerformanceHeader header which is defined in the performance_test_msgs package.
  2. Add to package.xml
<build_depend>performance_test_plugin_cmake</build_depend>
<member_of_group>performance_test_factory_plugins</member_of_group>

  1. Add to CMakeLists.txt
find_package(performance_test_plugin_cmake REQUIRED)
generate_factory_plugin("msg/MyNewMsg.msg msg/MyOtherNewMsg.msg" "srv/MyNewSrv.srv")

See irobot_interfaces_plugin for an example.

How does it work

This tool is experimental and hacky!

The CMake function generate_factory_plugin calls a Python script to automatically generate a .cpp file that is then used to build the C++ factory support library. The automatically generated file can be found at build/<PKG_NAME>/generated/<PKG_NAME>_implementation.cpp, where <PKG_NAME> is the name of the package where the CMake function was called.

This example shows how some of the APIs exposed by the library should look like given for the messages defined in the irobot_interfaces_plugin package:

  extern "C" void add_subscriber_impl(

 std::shared_ptr<performance_test::PerformanceNodeBase> n,
    const std::string & msg_type,
    const std::string & topic_name,
    const performance_metrics::Tracker::Options & tracking_options,
    msg_pass_by_t msg_pass_by,
    const rclcpp::QoS & custom_qos_profile)
  {
    const std::map<std::string, std::function<void()>> subscribers_factory{

{ "stamped_int64", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::StampedInt64>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped3_float32", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::Stamped3Float32>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped4_float32", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::Stamped4Float32>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped4_int32", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::Stamped4Int32>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped9_float32", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::Stamped9Float32>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped_vector", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::StampedVector>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} }
    };

    if (subscribers_factory.find(msg_type) == subscribers_factory.end()) {
      throw std::runtime_error("unknown msg type passed to subscribers factory: " + msg_type);
    }

    subscribers_factory.at(msg_type)();
  }

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged performance_test_plugin_cmake at Robotics Stack Exchange

No version for distro kilted showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.2.0
License BSD 3.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description Framework to evaluate peformance of ROS 2
Checkout URI https://github.com/irobot-ros/ros2-performance.git
VCS Type git
VCS Version rolling
Last Updated 2025-04-10
Dev Status UNKNOWN
Released UNRELEASED
Tags benchmark performance cpp ros2
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

CMake function for generating performance_test_factory plugins

Additional Links

No additional links.

Maintainers

  • Alberto Soragna

Authors

  • Alberto Soragna

Performance Test Plugin CMake

This package defines the CMake function generate_factory_plugins(MSGS SRVS). This function should be invoked in a package where custom interfaces are created in order to make them usable in the performance test factory.

How to use it

  1. Create a standard ROS 2 package where new messages and services are defined. Important: all messages need to have a field PerformanceHeader header which is defined in the performance_test_msgs package.
  2. Add to package.xml
<build_depend>performance_test_plugin_cmake</build_depend>
<member_of_group>performance_test_factory_plugins</member_of_group>

  1. Add to CMakeLists.txt
find_package(performance_test_plugin_cmake REQUIRED)
generate_factory_plugin("msg/MyNewMsg.msg msg/MyOtherNewMsg.msg" "srv/MyNewSrv.srv")

See irobot_interfaces_plugin for an example.

How does it work

This tool is experimental and hacky!

The CMake function generate_factory_plugin calls a Python script to automatically generate a .cpp file that is then used to build the C++ factory support library. The automatically generated file can be found at build/<PKG_NAME>/generated/<PKG_NAME>_implementation.cpp, where <PKG_NAME> is the name of the package where the CMake function was called.

This example shows how some of the APIs exposed by the library should look like given for the messages defined in the irobot_interfaces_plugin package:

  extern "C" void add_subscriber_impl(

 std::shared_ptr<performance_test::PerformanceNodeBase> n,
    const std::string & msg_type,
    const std::string & topic_name,
    const performance_metrics::Tracker::Options & tracking_options,
    msg_pass_by_t msg_pass_by,
    const rclcpp::QoS & custom_qos_profile)
  {
    const std::map<std::string, std::function<void()>> subscribers_factory{

{ "stamped_int64", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::StampedInt64>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped3_float32", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::Stamped3Float32>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped4_float32", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::Stamped4Float32>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped4_int32", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::Stamped4Int32>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped9_float32", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::Stamped9Float32>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped_vector", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::StampedVector>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} }
    };

    if (subscribers_factory.find(msg_type) == subscribers_factory.end()) {
      throw std::runtime_error("unknown msg type passed to subscribers factory: " + msg_type);
    }

    subscribers_factory.at(msg_type)();
  }

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged performance_test_plugin_cmake at Robotics Stack Exchange

No version for distro rolling showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.2.0
License BSD 3.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description Framework to evaluate peformance of ROS 2
Checkout URI https://github.com/irobot-ros/ros2-performance.git
VCS Type git
VCS Version rolling
Last Updated 2025-04-10
Dev Status UNKNOWN
Released UNRELEASED
Tags benchmark performance cpp ros2
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

CMake function for generating performance_test_factory plugins

Additional Links

No additional links.

Maintainers

  • Alberto Soragna

Authors

  • Alberto Soragna

Performance Test Plugin CMake

This package defines the CMake function generate_factory_plugins(MSGS SRVS). This function should be invoked in a package where custom interfaces are created in order to make them usable in the performance test factory.

How to use it

  1. Create a standard ROS 2 package where new messages and services are defined. Important: all messages need to have a field PerformanceHeader header which is defined in the performance_test_msgs package.
  2. Add to package.xml
<build_depend>performance_test_plugin_cmake</build_depend>
<member_of_group>performance_test_factory_plugins</member_of_group>

  1. Add to CMakeLists.txt
find_package(performance_test_plugin_cmake REQUIRED)
generate_factory_plugin("msg/MyNewMsg.msg msg/MyOtherNewMsg.msg" "srv/MyNewSrv.srv")

See irobot_interfaces_plugin for an example.

How does it work

This tool is experimental and hacky!

The CMake function generate_factory_plugin calls a Python script to automatically generate a .cpp file that is then used to build the C++ factory support library. The automatically generated file can be found at build/<PKG_NAME>/generated/<PKG_NAME>_implementation.cpp, where <PKG_NAME> is the name of the package where the CMake function was called.

This example shows how some of the APIs exposed by the library should look like given for the messages defined in the irobot_interfaces_plugin package:

  extern "C" void add_subscriber_impl(

 std::shared_ptr<performance_test::PerformanceNodeBase> n,
    const std::string & msg_type,
    const std::string & topic_name,
    const performance_metrics::Tracker::Options & tracking_options,
    msg_pass_by_t msg_pass_by,
    const rclcpp::QoS & custom_qos_profile)
  {
    const std::map<std::string, std::function<void()>> subscribers_factory{

{ "stamped_int64", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::StampedInt64>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped3_float32", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::Stamped3Float32>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped4_float32", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::Stamped4Float32>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped4_int32", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::Stamped4Int32>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped9_float32", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::Stamped9Float32>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped_vector", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::StampedVector>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} }
    };

    if (subscribers_factory.find(msg_type) == subscribers_factory.end()) {
      throw std::runtime_error("unknown msg type passed to subscribers factory: " + msg_type);
    }

    subscribers_factory.at(msg_type)();
  }

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged performance_test_plugin_cmake at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 0.2.0
License BSD 3.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description Framework to evaluate peformance of ROS 2
Checkout URI https://github.com/irobot-ros/ros2-performance.git
VCS Type git
VCS Version rolling
Last Updated 2025-04-10
Dev Status UNKNOWN
Released UNRELEASED
Tags benchmark performance cpp ros2
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

CMake function for generating performance_test_factory plugins

Additional Links

No additional links.

Maintainers

  • Alberto Soragna

Authors

  • Alberto Soragna

Performance Test Plugin CMake

This package defines the CMake function generate_factory_plugins(MSGS SRVS). This function should be invoked in a package where custom interfaces are created in order to make them usable in the performance test factory.

How to use it

  1. Create a standard ROS 2 package where new messages and services are defined. Important: all messages need to have a field PerformanceHeader header which is defined in the performance_test_msgs package.
  2. Add to package.xml
<build_depend>performance_test_plugin_cmake</build_depend>
<member_of_group>performance_test_factory_plugins</member_of_group>

  1. Add to CMakeLists.txt
find_package(performance_test_plugin_cmake REQUIRED)
generate_factory_plugin("msg/MyNewMsg.msg msg/MyOtherNewMsg.msg" "srv/MyNewSrv.srv")

See irobot_interfaces_plugin for an example.

How does it work

This tool is experimental and hacky!

The CMake function generate_factory_plugin calls a Python script to automatically generate a .cpp file that is then used to build the C++ factory support library. The automatically generated file can be found at build/<PKG_NAME>/generated/<PKG_NAME>_implementation.cpp, where <PKG_NAME> is the name of the package where the CMake function was called.

This example shows how some of the APIs exposed by the library should look like given for the messages defined in the irobot_interfaces_plugin package:

  extern "C" void add_subscriber_impl(

 std::shared_ptr<performance_test::PerformanceNodeBase> n,
    const std::string & msg_type,
    const std::string & topic_name,
    const performance_metrics::Tracker::Options & tracking_options,
    msg_pass_by_t msg_pass_by,
    const rclcpp::QoS & custom_qos_profile)
  {
    const std::map<std::string, std::function<void()>> subscribers_factory{

{ "stamped_int64", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::StampedInt64>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped3_float32", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::Stamped3Float32>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped4_float32", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::Stamped4Float32>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped4_int32", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::Stamped4Int32>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped9_float32", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::Stamped9Float32>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped_vector", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::StampedVector>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} }
    };

    if (subscribers_factory.find(msg_type) == subscribers_factory.end()) {
      throw std::runtime_error("unknown msg type passed to subscribers factory: " + msg_type);
    }

    subscribers_factory.at(msg_type)();
  }

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged performance_test_plugin_cmake at Robotics Stack Exchange

No version for distro galactic showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.2.0
License BSD 3.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description Framework to evaluate peformance of ROS 2
Checkout URI https://github.com/irobot-ros/ros2-performance.git
VCS Type git
VCS Version rolling
Last Updated 2025-04-10
Dev Status UNKNOWN
Released UNRELEASED
Tags benchmark performance cpp ros2
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

CMake function for generating performance_test_factory plugins

Additional Links

No additional links.

Maintainers

  • Alberto Soragna

Authors

  • Alberto Soragna

Performance Test Plugin CMake

This package defines the CMake function generate_factory_plugins(MSGS SRVS). This function should be invoked in a package where custom interfaces are created in order to make them usable in the performance test factory.

How to use it

  1. Create a standard ROS 2 package where new messages and services are defined. Important: all messages need to have a field PerformanceHeader header which is defined in the performance_test_msgs package.
  2. Add to package.xml
<build_depend>performance_test_plugin_cmake</build_depend>
<member_of_group>performance_test_factory_plugins</member_of_group>

  1. Add to CMakeLists.txt
find_package(performance_test_plugin_cmake REQUIRED)
generate_factory_plugin("msg/MyNewMsg.msg msg/MyOtherNewMsg.msg" "srv/MyNewSrv.srv")

See irobot_interfaces_plugin for an example.

How does it work

This tool is experimental and hacky!

The CMake function generate_factory_plugin calls a Python script to automatically generate a .cpp file that is then used to build the C++ factory support library. The automatically generated file can be found at build/<PKG_NAME>/generated/<PKG_NAME>_implementation.cpp, where <PKG_NAME> is the name of the package where the CMake function was called.

This example shows how some of the APIs exposed by the library should look like given for the messages defined in the irobot_interfaces_plugin package:

  extern "C" void add_subscriber_impl(

 std::shared_ptr<performance_test::PerformanceNodeBase> n,
    const std::string & msg_type,
    const std::string & topic_name,
    const performance_metrics::Tracker::Options & tracking_options,
    msg_pass_by_t msg_pass_by,
    const rclcpp::QoS & custom_qos_profile)
  {
    const std::map<std::string, std::function<void()>> subscribers_factory{

{ "stamped_int64", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::StampedInt64>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped3_float32", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::Stamped3Float32>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped4_float32", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::Stamped4Float32>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped4_int32", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::Stamped4Int32>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped9_float32", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::Stamped9Float32>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped_vector", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::StampedVector>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} }
    };

    if (subscribers_factory.find(msg_type) == subscribers_factory.end()) {
      throw std::runtime_error("unknown msg type passed to subscribers factory: " + msg_type);
    }

    subscribers_factory.at(msg_type)();
  }

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged performance_test_plugin_cmake at Robotics Stack Exchange

No version for distro iron showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.2.0
License BSD 3.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description Framework to evaluate peformance of ROS 2
Checkout URI https://github.com/irobot-ros/ros2-performance.git
VCS Type git
VCS Version rolling
Last Updated 2025-04-10
Dev Status UNKNOWN
Released UNRELEASED
Tags benchmark performance cpp ros2
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

CMake function for generating performance_test_factory plugins

Additional Links

No additional links.

Maintainers

  • Alberto Soragna

Authors

  • Alberto Soragna

Performance Test Plugin CMake

This package defines the CMake function generate_factory_plugins(MSGS SRVS). This function should be invoked in a package where custom interfaces are created in order to make them usable in the performance test factory.

How to use it

  1. Create a standard ROS 2 package where new messages and services are defined. Important: all messages need to have a field PerformanceHeader header which is defined in the performance_test_msgs package.
  2. Add to package.xml
<build_depend>performance_test_plugin_cmake</build_depend>
<member_of_group>performance_test_factory_plugins</member_of_group>

  1. Add to CMakeLists.txt
find_package(performance_test_plugin_cmake REQUIRED)
generate_factory_plugin("msg/MyNewMsg.msg msg/MyOtherNewMsg.msg" "srv/MyNewSrv.srv")

See irobot_interfaces_plugin for an example.

How does it work

This tool is experimental and hacky!

The CMake function generate_factory_plugin calls a Python script to automatically generate a .cpp file that is then used to build the C++ factory support library. The automatically generated file can be found at build/<PKG_NAME>/generated/<PKG_NAME>_implementation.cpp, where <PKG_NAME> is the name of the package where the CMake function was called.

This example shows how some of the APIs exposed by the library should look like given for the messages defined in the irobot_interfaces_plugin package:

  extern "C" void add_subscriber_impl(

 std::shared_ptr<performance_test::PerformanceNodeBase> n,
    const std::string & msg_type,
    const std::string & topic_name,
    const performance_metrics::Tracker::Options & tracking_options,
    msg_pass_by_t msg_pass_by,
    const rclcpp::QoS & custom_qos_profile)
  {
    const std::map<std::string, std::function<void()>> subscribers_factory{

{ "stamped_int64", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::StampedInt64>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped3_float32", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::Stamped3Float32>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped4_float32", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::Stamped4Float32>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped4_int32", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::Stamped4Int32>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped9_float32", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::Stamped9Float32>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped_vector", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::StampedVector>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} }
    };

    if (subscribers_factory.find(msg_type) == subscribers_factory.end()) {
      throw std::runtime_error("unknown msg type passed to subscribers factory: " + msg_type);
    }

    subscribers_factory.at(msg_type)();
  }

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged performance_test_plugin_cmake at Robotics Stack Exchange

No version for distro melodic showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.2.0
License BSD 3.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description Framework to evaluate peformance of ROS 2
Checkout URI https://github.com/irobot-ros/ros2-performance.git
VCS Type git
VCS Version rolling
Last Updated 2025-04-10
Dev Status UNKNOWN
Released UNRELEASED
Tags benchmark performance cpp ros2
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

CMake function for generating performance_test_factory plugins

Additional Links

No additional links.

Maintainers

  • Alberto Soragna

Authors

  • Alberto Soragna

Performance Test Plugin CMake

This package defines the CMake function generate_factory_plugins(MSGS SRVS). This function should be invoked in a package where custom interfaces are created in order to make them usable in the performance test factory.

How to use it

  1. Create a standard ROS 2 package where new messages and services are defined. Important: all messages need to have a field PerformanceHeader header which is defined in the performance_test_msgs package.
  2. Add to package.xml
<build_depend>performance_test_plugin_cmake</build_depend>
<member_of_group>performance_test_factory_plugins</member_of_group>

  1. Add to CMakeLists.txt
find_package(performance_test_plugin_cmake REQUIRED)
generate_factory_plugin("msg/MyNewMsg.msg msg/MyOtherNewMsg.msg" "srv/MyNewSrv.srv")

See irobot_interfaces_plugin for an example.

How does it work

This tool is experimental and hacky!

The CMake function generate_factory_plugin calls a Python script to automatically generate a .cpp file that is then used to build the C++ factory support library. The automatically generated file can be found at build/<PKG_NAME>/generated/<PKG_NAME>_implementation.cpp, where <PKG_NAME> is the name of the package where the CMake function was called.

This example shows how some of the APIs exposed by the library should look like given for the messages defined in the irobot_interfaces_plugin package:

  extern "C" void add_subscriber_impl(

 std::shared_ptr<performance_test::PerformanceNodeBase> n,
    const std::string & msg_type,
    const std::string & topic_name,
    const performance_metrics::Tracker::Options & tracking_options,
    msg_pass_by_t msg_pass_by,
    const rclcpp::QoS & custom_qos_profile)
  {
    const std::map<std::string, std::function<void()>> subscribers_factory{

{ "stamped_int64", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::StampedInt64>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped3_float32", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::Stamped3Float32>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped4_float32", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::Stamped4Float32>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped4_int32", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::Stamped4Int32>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped9_float32", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::Stamped9Float32>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped_vector", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::StampedVector>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} }
    };

    if (subscribers_factory.find(msg_type) == subscribers_factory.end()) {
      throw std::runtime_error("unknown msg type passed to subscribers factory: " + msg_type);
    }

    subscribers_factory.at(msg_type)();
  }

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged performance_test_plugin_cmake at Robotics Stack Exchange

No version for distro noetic showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.2.0
License BSD 3.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description Framework to evaluate peformance of ROS 2
Checkout URI https://github.com/irobot-ros/ros2-performance.git
VCS Type git
VCS Version rolling
Last Updated 2025-04-10
Dev Status UNKNOWN
Released UNRELEASED
Tags benchmark performance cpp ros2
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

CMake function for generating performance_test_factory plugins

Additional Links

No additional links.

Maintainers

  • Alberto Soragna

Authors

  • Alberto Soragna

Performance Test Plugin CMake

This package defines the CMake function generate_factory_plugins(MSGS SRVS). This function should be invoked in a package where custom interfaces are created in order to make them usable in the performance test factory.

How to use it

  1. Create a standard ROS 2 package where new messages and services are defined. Important: all messages need to have a field PerformanceHeader header which is defined in the performance_test_msgs package.
  2. Add to package.xml
<build_depend>performance_test_plugin_cmake</build_depend>
<member_of_group>performance_test_factory_plugins</member_of_group>

  1. Add to CMakeLists.txt
find_package(performance_test_plugin_cmake REQUIRED)
generate_factory_plugin("msg/MyNewMsg.msg msg/MyOtherNewMsg.msg" "srv/MyNewSrv.srv")

See irobot_interfaces_plugin for an example.

How does it work

This tool is experimental and hacky!

The CMake function generate_factory_plugin calls a Python script to automatically generate a .cpp file that is then used to build the C++ factory support library. The automatically generated file can be found at build/<PKG_NAME>/generated/<PKG_NAME>_implementation.cpp, where <PKG_NAME> is the name of the package where the CMake function was called.

This example shows how some of the APIs exposed by the library should look like given for the messages defined in the irobot_interfaces_plugin package:

  extern "C" void add_subscriber_impl(

 std::shared_ptr<performance_test::PerformanceNodeBase> n,
    const std::string & msg_type,
    const std::string & topic_name,
    const performance_metrics::Tracker::Options & tracking_options,
    msg_pass_by_t msg_pass_by,
    const rclcpp::QoS & custom_qos_profile)
  {
    const std::map<std::string, std::function<void()>> subscribers_factory{

{ "stamped_int64", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::StampedInt64>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped3_float32", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::Stamped3Float32>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped4_float32", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::Stamped4Float32>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped4_int32", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::Stamped4Int32>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped9_float32", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::Stamped9Float32>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} },
{ "stamped_vector", [&] { n->add_subscriber<irobot_interfaces_plugin::msg::StampedVector>(topic_name, msg_pass_by, tracking_options, custom_qos_profile);} }
    };

    if (subscribers_factory.find(msg_type) == subscribers_factory.end()) {
      throw std::runtime_error("unknown msg type passed to subscribers factory: " + msg_type);
    }

    subscribers_factory.at(msg_type)();
  }

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged performance_test_plugin_cmake at Robotics Stack Exchange