Package symbol

soar_ros package from soar_ros repo

soar_ros

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.0.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/THA-Embedded-Systems-Lab/soar_ros.git
VCS Type git
VCS Version main
Last Updated 2025-04-25
Dev Status MAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

An interface library to connect ROS2 with the Soar cognitive architecture.

Additional Links

No additional links.

Maintainers

  • Moritz Schmidt

Authors

No additional authors.

soar_ros: A ROS 2 Interface for Soar

This ROS2 package provides an interface for the Soar cognitive architecture by creating wrappers for ROS2 messages and handling the Soar kernel in a continuos mode.

Soar is a cognitive architecture developed at the University of Michigan. It is used in the field of cognitive robotics in different projects, e.g. a drone or a robot. However, the integration of Soar and ROS 2 is currently difficult for complex projects, which include multiple publishers, subscribers, services or clients. The main limitation orginates from the synchronous callback model used by Soar which inspired the creation of this wrapper. A detailed explanation about the reason for the development of the package can be read in the software architecture.

The package relies on a forked version of Soar. The major changes include a cmake-based build instead of scons and removal of SWIG language interfaces. For a detailed comparison have a look at the commit history of the fork.

Features

The library is developed targeting ROS 2 Humble on Ubuntu 22.04. Other configurations were not tested. It provides

  • Non blocking Soar kernel
  • Publisher
  • Subscriber
  • Service
  • Client

The following features are not supported, yet.

  • Action Server and Client
  • Multiple Soar agents

Definition and description of the public API

The API documentation is generated via rosdoc2, cf. how to build documentation.

Examples

The following examples are an extract of the test cases in test/test_soar_ros.cpp.

Publisher

The soar_ros::Publisher extends the ROS Publisher so the user only needs to define how data are converted between ROS data types and Soar data types.

class TestOutput : public soar_ros::Publisher<std_msgs::msg::String>
{
public:
  TestOutput(sml::Agent * agent, rclcpp::Node::SharedPtr node, const std::string & topic)
  : Publisher<std_msgs::msg::String>(agent, node, topic) {}
  ~TestOutput() {}
  std_msgs::msg::String parse(sml::Identifier * id) override
  {
    std_msgs::msg::String msg;
    msg.data = id->GetParameterValue("data");
    std::cout << id->GetCommandName() << " " << msg.data << std::endl;
    return msg;
  }
};

Service

In the following example, the ROS2 example AddTwoInts is implemented. Soar adds two integers and sends the result as a ROS2 Service, based on the soar_ros::Service class. The code is from test/test_soar_ros.cpp.

``` cpp
class TestService : public soar_ros::Service<example_interfaces::srv::AddTwoInts>
{
public:
TestService(sml::Agent * agent, rclcpp::Node::SharedPtr node, const std::string & topic)
Service<example_interfaces::srv::AddTwoInts>(agent, node, topic) {} ~TestService() {}

example_interfaces::srv::AddTwoInts::Response::SharedPtr parse(sml::Identifier * id) override { example_interfaces::srv::AddTwoInts::Response::SharedPtr response = std::make_shared<example_interfaces::srv::AddTwoInts::Response>(); auto sum = id->GetParameterValue(“sum”); int32_t num = std::stoi(sum); response.get()->sum = num; RCLCPP_INFO(m_node->get_logger(), “Computed: Sum=%ld”, response.get()->sum);

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package soar_ros

0.0.2 (2024-12-17)

  • ci: add jazzy and rolling tests. Disable flaky client test
  • docs: Add logos and update images.
  • fix: Stop SoarRunner Kernel thread on error.
  • ci: Change docs build to 1.12 Doxygen version.
  • build: Make ament_index_cpp dependency explicit
  • docs: Fix typos and add Test Agent description.
  • build: Fix tests and restrict testing to launch testing.
  • ci: Publish subdirectory of rosdoc2 build process
  • Contributors: Moritz Schmidt, dependabot[bot]

0.0.1 (2024-09-13)

  • Initial commit
  • Contributors: Moritz Schmidt

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged soar_ros at Robotics Stack Exchange

Package symbol

soar_ros package from soar_ros repo

soar_ros

ROS Distro
jazzy

Package Summary

Tags No category tags.
Version 0.0.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/THA-Embedded-Systems-Lab/soar_ros.git
VCS Type git
VCS Version main
Last Updated 2025-04-25
Dev Status MAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

An interface library to connect ROS2 with the Soar cognitive architecture.

Additional Links

No additional links.

Maintainers

  • Moritz Schmidt

Authors

No additional authors.

soar_ros: A ROS 2 Interface for Soar

This ROS2 package provides an interface for the Soar cognitive architecture by creating wrappers for ROS2 messages and handling the Soar kernel in a continuos mode.

Soar is a cognitive architecture developed at the University of Michigan. It is used in the field of cognitive robotics in different projects, e.g. a drone or a robot. However, the integration of Soar and ROS 2 is currently difficult for complex projects, which include multiple publishers, subscribers, services or clients. The main limitation orginates from the synchronous callback model used by Soar which inspired the creation of this wrapper. A detailed explanation about the reason for the development of the package can be read in the software architecture.

The package relies on a forked version of Soar. The major changes include a cmake-based build instead of scons and removal of SWIG language interfaces. For a detailed comparison have a look at the commit history of the fork.

Features

The library is developed targeting ROS 2 Humble on Ubuntu 22.04. Other configurations were not tested. It provides

  • Non blocking Soar kernel
  • Publisher
  • Subscriber
  • Service
  • Client

The following features are not supported, yet.

  • Action Server and Client
  • Multiple Soar agents

Definition and description of the public API

The API documentation is generated via rosdoc2, cf. how to build documentation.

Examples

The following examples are an extract of the test cases in test/test_soar_ros.cpp.

Publisher

The soar_ros::Publisher extends the ROS Publisher so the user only needs to define how data are converted between ROS data types and Soar data types.

class TestOutput : public soar_ros::Publisher<std_msgs::msg::String>
{
public:
  TestOutput(sml::Agent * agent, rclcpp::Node::SharedPtr node, const std::string & topic)
  : Publisher<std_msgs::msg::String>(agent, node, topic) {}
  ~TestOutput() {}
  std_msgs::msg::String parse(sml::Identifier * id) override
  {
    std_msgs::msg::String msg;
    msg.data = id->GetParameterValue("data");
    std::cout << id->GetCommandName() << " " << msg.data << std::endl;
    return msg;
  }
};

Service

In the following example, the ROS2 example AddTwoInts is implemented. Soar adds two integers and sends the result as a ROS2 Service, based on the soar_ros::Service class. The code is from test/test_soar_ros.cpp.

``` cpp
class TestService : public soar_ros::Service<example_interfaces::srv::AddTwoInts>
{
public:
TestService(sml::Agent * agent, rclcpp::Node::SharedPtr node, const std::string & topic)
Service<example_interfaces::srv::AddTwoInts>(agent, node, topic) {} ~TestService() {}

example_interfaces::srv::AddTwoInts::Response::SharedPtr parse(sml::Identifier * id) override { example_interfaces::srv::AddTwoInts::Response::SharedPtr response = std::make_shared<example_interfaces::srv::AddTwoInts::Response>(); auto sum = id->GetParameterValue(“sum”); int32_t num = std::stoi(sum); response.get()->sum = num; RCLCPP_INFO(m_node->get_logger(), “Computed: Sum=%ld”, response.get()->sum);

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package soar_ros

0.0.2 (2024-12-17)

  • ci: add jazzy and rolling tests. Disable flaky client test
  • docs: Add logos and update images.
  • fix: Stop SoarRunner Kernel thread on error.
  • ci: Change docs build to 1.12 Doxygen version.
  • build: Make ament_index_cpp dependency explicit
  • docs: Fix typos and add Test Agent description.
  • build: Fix tests and restrict testing to launch testing.
  • ci: Publish subdirectory of rosdoc2 build process
  • Contributors: Moritz Schmidt, dependabot[bot]

0.0.1 (2024-09-13)

  • Initial commit
  • Contributors: Moritz Schmidt

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged soar_ros at Robotics Stack Exchange

Package symbol

soar_ros package from soar_ros repo

soar_ros

ROS Distro
kilted

Package Summary

Tags No category tags.
Version 0.0.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/THA-Embedded-Systems-Lab/soar_ros.git
VCS Type git
VCS Version main
Last Updated 2025-04-25
Dev Status MAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

An interface library to connect ROS2 with the Soar cognitive architecture.

Additional Links

No additional links.

Maintainers

  • Moritz Schmidt

Authors

No additional authors.

soar_ros: A ROS 2 Interface for Soar

This ROS2 package provides an interface for the Soar cognitive architecture by creating wrappers for ROS2 messages and handling the Soar kernel in a continuos mode.

Soar is a cognitive architecture developed at the University of Michigan. It is used in the field of cognitive robotics in different projects, e.g. a drone or a robot. However, the integration of Soar and ROS 2 is currently difficult for complex projects, which include multiple publishers, subscribers, services or clients. The main limitation orginates from the synchronous callback model used by Soar which inspired the creation of this wrapper. A detailed explanation about the reason for the development of the package can be read in the software architecture.

The package relies on a forked version of Soar. The major changes include a cmake-based build instead of scons and removal of SWIG language interfaces. For a detailed comparison have a look at the commit history of the fork.

Features

The library is developed targeting ROS 2 Humble on Ubuntu 22.04. Other configurations were not tested. It provides

  • Non blocking Soar kernel
  • Publisher
  • Subscriber
  • Service
  • Client

The following features are not supported, yet.

  • Action Server and Client
  • Multiple Soar agents

Definition and description of the public API

The API documentation is generated via rosdoc2, cf. how to build documentation.

Examples

The following examples are an extract of the test cases in test/test_soar_ros.cpp.

Publisher

The soar_ros::Publisher extends the ROS Publisher so the user only needs to define how data are converted between ROS data types and Soar data types.

class TestOutput : public soar_ros::Publisher<std_msgs::msg::String>
{
public:
  TestOutput(sml::Agent * agent, rclcpp::Node::SharedPtr node, const std::string & topic)
  : Publisher<std_msgs::msg::String>(agent, node, topic) {}
  ~TestOutput() {}
  std_msgs::msg::String parse(sml::Identifier * id) override
  {
    std_msgs::msg::String msg;
    msg.data = id->GetParameterValue("data");
    std::cout << id->GetCommandName() << " " << msg.data << std::endl;
    return msg;
  }
};

Service

In the following example, the ROS2 example AddTwoInts is implemented. Soar adds two integers and sends the result as a ROS2 Service, based on the soar_ros::Service class. The code is from test/test_soar_ros.cpp.

``` cpp
class TestService : public soar_ros::Service<example_interfaces::srv::AddTwoInts>
{
public:
TestService(sml::Agent * agent, rclcpp::Node::SharedPtr node, const std::string & topic)
Service<example_interfaces::srv::AddTwoInts>(agent, node, topic) {} ~TestService() {}

example_interfaces::srv::AddTwoInts::Response::SharedPtr parse(sml::Identifier * id) override { example_interfaces::srv::AddTwoInts::Response::SharedPtr response = std::make_shared<example_interfaces::srv::AddTwoInts::Response>(); auto sum = id->GetParameterValue(“sum”); int32_t num = std::stoi(sum); response.get()->sum = num; RCLCPP_INFO(m_node->get_logger(), “Computed: Sum=%ld”, response.get()->sum);

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package soar_ros

0.0.2 (2024-12-17)

  • ci: add jazzy and rolling tests. Disable flaky client test
  • docs: Add logos and update images.
  • fix: Stop SoarRunner Kernel thread on error.
  • ci: Change docs build to 1.12 Doxygen version.
  • build: Make ament_index_cpp dependency explicit
  • docs: Fix typos and add Test Agent description.
  • build: Fix tests and restrict testing to launch testing.
  • ci: Publish subdirectory of rosdoc2 build process
  • Contributors: Moritz Schmidt, dependabot[bot]

0.0.1 (2024-09-13)

  • Initial commit
  • Contributors: Moritz Schmidt

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged soar_ros at Robotics Stack Exchange

Package symbol

soar_ros package from soar_ros repo

soar_ros

ROS Distro
rolling

Package Summary

Tags No category tags.
Version 0.0.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/THA-Embedded-Systems-Lab/soar_ros.git
VCS Type git
VCS Version main
Last Updated 2025-04-25
Dev Status MAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

An interface library to connect ROS2 with the Soar cognitive architecture.

Additional Links

No additional links.

Maintainers

  • Moritz Schmidt

Authors

No additional authors.

soar_ros: A ROS 2 Interface for Soar

This ROS2 package provides an interface for the Soar cognitive architecture by creating wrappers for ROS2 messages and handling the Soar kernel in a continuos mode.

Soar is a cognitive architecture developed at the University of Michigan. It is used in the field of cognitive robotics in different projects, e.g. a drone or a robot. However, the integration of Soar and ROS 2 is currently difficult for complex projects, which include multiple publishers, subscribers, services or clients. The main limitation orginates from the synchronous callback model used by Soar which inspired the creation of this wrapper. A detailed explanation about the reason for the development of the package can be read in the software architecture.

The package relies on a forked version of Soar. The major changes include a cmake-based build instead of scons and removal of SWIG language interfaces. For a detailed comparison have a look at the commit history of the fork.

Features

The library is developed targeting ROS 2 Humble on Ubuntu 22.04. Other configurations were not tested. It provides

  • Non blocking Soar kernel
  • Publisher
  • Subscriber
  • Service
  • Client

The following features are not supported, yet.

  • Action Server and Client
  • Multiple Soar agents

Definition and description of the public API

The API documentation is generated via rosdoc2, cf. how to build documentation.

Examples

The following examples are an extract of the test cases in test/test_soar_ros.cpp.

Publisher

The soar_ros::Publisher extends the ROS Publisher so the user only needs to define how data are converted between ROS data types and Soar data types.

class TestOutput : public soar_ros::Publisher<std_msgs::msg::String>
{
public:
  TestOutput(sml::Agent * agent, rclcpp::Node::SharedPtr node, const std::string & topic)
  : Publisher<std_msgs::msg::String>(agent, node, topic) {}
  ~TestOutput() {}
  std_msgs::msg::String parse(sml::Identifier * id) override
  {
    std_msgs::msg::String msg;
    msg.data = id->GetParameterValue("data");
    std::cout << id->GetCommandName() << " " << msg.data << std::endl;
    return msg;
  }
};

Service

In the following example, the ROS2 example AddTwoInts is implemented. Soar adds two integers and sends the result as a ROS2 Service, based on the soar_ros::Service class. The code is from test/test_soar_ros.cpp.

``` cpp
class TestService : public soar_ros::Service<example_interfaces::srv::AddTwoInts>
{
public:
TestService(sml::Agent * agent, rclcpp::Node::SharedPtr node, const std::string & topic)
Service<example_interfaces::srv::AddTwoInts>(agent, node, topic) {} ~TestService() {}

example_interfaces::srv::AddTwoInts::Response::SharedPtr parse(sml::Identifier * id) override { example_interfaces::srv::AddTwoInts::Response::SharedPtr response = std::make_shared<example_interfaces::srv::AddTwoInts::Response>(); auto sum = id->GetParameterValue(“sum”); int32_t num = std::stoi(sum); response.get()->sum = num; RCLCPP_INFO(m_node->get_logger(), “Computed: Sum=%ld”, response.get()->sum);

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package soar_ros

0.0.2 (2024-12-17)

  • ci: add jazzy and rolling tests. Disable flaky client test
  • docs: Add logos and update images.
  • fix: Stop SoarRunner Kernel thread on error.
  • ci: Change docs build to 1.12 Doxygen version.
  • build: Make ament_index_cpp dependency explicit
  • docs: Fix typos and add Test Agent description.
  • build: Fix tests and restrict testing to launch testing.
  • ci: Publish subdirectory of rosdoc2 build process
  • Contributors: Moritz Schmidt, dependabot[bot]

0.0.1 (2024-09-13)

  • Initial commit
  • Contributors: Moritz Schmidt

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged soar_ros at Robotics Stack Exchange

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

soar_ros package from soar_ros repo

soar_ros

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.0.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/THA-Embedded-Systems-Lab/soar_ros.git
VCS Type git
VCS Version main
Last Updated 2025-04-25
Dev Status MAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

An interface library to connect ROS2 with the Soar cognitive architecture.

Additional Links

No additional links.

Maintainers

  • Moritz Schmidt

Authors

No additional authors.

soar_ros: A ROS 2 Interface for Soar

This ROS2 package provides an interface for the Soar cognitive architecture by creating wrappers for ROS2 messages and handling the Soar kernel in a continuos mode.

Soar is a cognitive architecture developed at the University of Michigan. It is used in the field of cognitive robotics in different projects, e.g. a drone or a robot. However, the integration of Soar and ROS 2 is currently difficult for complex projects, which include multiple publishers, subscribers, services or clients. The main limitation orginates from the synchronous callback model used by Soar which inspired the creation of this wrapper. A detailed explanation about the reason for the development of the package can be read in the software architecture.

The package relies on a forked version of Soar. The major changes include a cmake-based build instead of scons and removal of SWIG language interfaces. For a detailed comparison have a look at the commit history of the fork.

Features

The library is developed targeting ROS 2 Humble on Ubuntu 22.04. Other configurations were not tested. It provides

  • Non blocking Soar kernel
  • Publisher
  • Subscriber
  • Service
  • Client

The following features are not supported, yet.

  • Action Server and Client
  • Multiple Soar agents

Definition and description of the public API

The API documentation is generated via rosdoc2, cf. how to build documentation.

Examples

The following examples are an extract of the test cases in test/test_soar_ros.cpp.

Publisher

The soar_ros::Publisher extends the ROS Publisher so the user only needs to define how data are converted between ROS data types and Soar data types.

class TestOutput : public soar_ros::Publisher<std_msgs::msg::String>
{
public:
  TestOutput(sml::Agent * agent, rclcpp::Node::SharedPtr node, const std::string & topic)
  : Publisher<std_msgs::msg::String>(agent, node, topic) {}
  ~TestOutput() {}
  std_msgs::msg::String parse(sml::Identifier * id) override
  {
    std_msgs::msg::String msg;
    msg.data = id->GetParameterValue("data");
    std::cout << id->GetCommandName() << " " << msg.data << std::endl;
    return msg;
  }
};

Service

In the following example, the ROS2 example AddTwoInts is implemented. Soar adds two integers and sends the result as a ROS2 Service, based on the soar_ros::Service class. The code is from test/test_soar_ros.cpp.

``` cpp
class TestService : public soar_ros::Service<example_interfaces::srv::AddTwoInts>
{
public:
TestService(sml::Agent * agent, rclcpp::Node::SharedPtr node, const std::string & topic)
Service<example_interfaces::srv::AddTwoInts>(agent, node, topic) {} ~TestService() {}

example_interfaces::srv::AddTwoInts::Response::SharedPtr parse(sml::Identifier * id) override { example_interfaces::srv::AddTwoInts::Response::SharedPtr response = std::make_shared<example_interfaces::srv::AddTwoInts::Response>(); auto sum = id->GetParameterValue(“sum”); int32_t num = std::stoi(sum); response.get()->sum = num; RCLCPP_INFO(m_node->get_logger(), “Computed: Sum=%ld”, response.get()->sum);

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package soar_ros

0.0.2 (2024-12-17)

  • ci: add jazzy and rolling tests. Disable flaky client test
  • docs: Add logos and update images.
  • fix: Stop SoarRunner Kernel thread on error.
  • ci: Change docs build to 1.12 Doxygen version.
  • build: Make ament_index_cpp dependency explicit
  • docs: Fix typos and add Test Agent description.
  • build: Fix tests and restrict testing to launch testing.
  • ci: Publish subdirectory of rosdoc2 build process
  • Contributors: Moritz Schmidt, dependabot[bot]

0.0.1 (2024-09-13)

  • Initial commit
  • Contributors: Moritz Schmidt

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged soar_ros at Robotics Stack Exchange

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

soar_ros package from soar_ros repo

soar_ros

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.0.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/THA-Embedded-Systems-Lab/soar_ros.git
VCS Type git
VCS Version main
Last Updated 2025-04-25
Dev Status MAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

An interface library to connect ROS2 with the Soar cognitive architecture.

Additional Links

No additional links.

Maintainers

  • Moritz Schmidt

Authors

No additional authors.

soar_ros: A ROS 2 Interface for Soar

This ROS2 package provides an interface for the Soar cognitive architecture by creating wrappers for ROS2 messages and handling the Soar kernel in a continuos mode.

Soar is a cognitive architecture developed at the University of Michigan. It is used in the field of cognitive robotics in different projects, e.g. a drone or a robot. However, the integration of Soar and ROS 2 is currently difficult for complex projects, which include multiple publishers, subscribers, services or clients. The main limitation orginates from the synchronous callback model used by Soar which inspired the creation of this wrapper. A detailed explanation about the reason for the development of the package can be read in the software architecture.

The package relies on a forked version of Soar. The major changes include a cmake-based build instead of scons and removal of SWIG language interfaces. For a detailed comparison have a look at the commit history of the fork.

Features

The library is developed targeting ROS 2 Humble on Ubuntu 22.04. Other configurations were not tested. It provides

  • Non blocking Soar kernel
  • Publisher
  • Subscriber
  • Service
  • Client

The following features are not supported, yet.

  • Action Server and Client
  • Multiple Soar agents

Definition and description of the public API

The API documentation is generated via rosdoc2, cf. how to build documentation.

Examples

The following examples are an extract of the test cases in test/test_soar_ros.cpp.

Publisher

The soar_ros::Publisher extends the ROS Publisher so the user only needs to define how data are converted between ROS data types and Soar data types.

class TestOutput : public soar_ros::Publisher<std_msgs::msg::String>
{
public:
  TestOutput(sml::Agent * agent, rclcpp::Node::SharedPtr node, const std::string & topic)
  : Publisher<std_msgs::msg::String>(agent, node, topic) {}
  ~TestOutput() {}
  std_msgs::msg::String parse(sml::Identifier * id) override
  {
    std_msgs::msg::String msg;
    msg.data = id->GetParameterValue("data");
    std::cout << id->GetCommandName() << " " << msg.data << std::endl;
    return msg;
  }
};

Service

In the following example, the ROS2 example AddTwoInts is implemented. Soar adds two integers and sends the result as a ROS2 Service, based on the soar_ros::Service class. The code is from test/test_soar_ros.cpp.

``` cpp
class TestService : public soar_ros::Service<example_interfaces::srv::AddTwoInts>
{
public:
TestService(sml::Agent * agent, rclcpp::Node::SharedPtr node, const std::string & topic)
Service<example_interfaces::srv::AddTwoInts>(agent, node, topic) {} ~TestService() {}

example_interfaces::srv::AddTwoInts::Response::SharedPtr parse(sml::Identifier * id) override { example_interfaces::srv::AddTwoInts::Response::SharedPtr response = std::make_shared<example_interfaces::srv::AddTwoInts::Response>(); auto sum = id->GetParameterValue(“sum”); int32_t num = std::stoi(sum); response.get()->sum = num; RCLCPP_INFO(m_node->get_logger(), “Computed: Sum=%ld”, response.get()->sum);

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package soar_ros

0.0.2 (2024-12-17)

  • ci: add jazzy and rolling tests. Disable flaky client test
  • docs: Add logos and update images.
  • fix: Stop SoarRunner Kernel thread on error.
  • ci: Change docs build to 1.12 Doxygen version.
  • build: Make ament_index_cpp dependency explicit
  • docs: Fix typos and add Test Agent description.
  • build: Fix tests and restrict testing to launch testing.
  • ci: Publish subdirectory of rosdoc2 build process
  • Contributors: Moritz Schmidt, dependabot[bot]

0.0.1 (2024-09-13)

  • Initial commit
  • Contributors: Moritz Schmidt

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged soar_ros at Robotics Stack Exchange

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

soar_ros package from soar_ros repo

soar_ros

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.0.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/THA-Embedded-Systems-Lab/soar_ros.git
VCS Type git
VCS Version main
Last Updated 2025-04-25
Dev Status MAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

An interface library to connect ROS2 with the Soar cognitive architecture.

Additional Links

No additional links.

Maintainers

  • Moritz Schmidt

Authors

No additional authors.

soar_ros: A ROS 2 Interface for Soar

This ROS2 package provides an interface for the Soar cognitive architecture by creating wrappers for ROS2 messages and handling the Soar kernel in a continuos mode.

Soar is a cognitive architecture developed at the University of Michigan. It is used in the field of cognitive robotics in different projects, e.g. a drone or a robot. However, the integration of Soar and ROS 2 is currently difficult for complex projects, which include multiple publishers, subscribers, services or clients. The main limitation orginates from the synchronous callback model used by Soar which inspired the creation of this wrapper. A detailed explanation about the reason for the development of the package can be read in the software architecture.

The package relies on a forked version of Soar. The major changes include a cmake-based build instead of scons and removal of SWIG language interfaces. For a detailed comparison have a look at the commit history of the fork.

Features

The library is developed targeting ROS 2 Humble on Ubuntu 22.04. Other configurations were not tested. It provides

  • Non blocking Soar kernel
  • Publisher
  • Subscriber
  • Service
  • Client

The following features are not supported, yet.

  • Action Server and Client
  • Multiple Soar agents

Definition and description of the public API

The API documentation is generated via rosdoc2, cf. how to build documentation.

Examples

The following examples are an extract of the test cases in test/test_soar_ros.cpp.

Publisher

The soar_ros::Publisher extends the ROS Publisher so the user only needs to define how data are converted between ROS data types and Soar data types.

class TestOutput : public soar_ros::Publisher<std_msgs::msg::String>
{
public:
  TestOutput(sml::Agent * agent, rclcpp::Node::SharedPtr node, const std::string & topic)
  : Publisher<std_msgs::msg::String>(agent, node, topic) {}
  ~TestOutput() {}
  std_msgs::msg::String parse(sml::Identifier * id) override
  {
    std_msgs::msg::String msg;
    msg.data = id->GetParameterValue("data");
    std::cout << id->GetCommandName() << " " << msg.data << std::endl;
    return msg;
  }
};

Service

In the following example, the ROS2 example AddTwoInts is implemented. Soar adds two integers and sends the result as a ROS2 Service, based on the soar_ros::Service class. The code is from test/test_soar_ros.cpp.

``` cpp
class TestService : public soar_ros::Service<example_interfaces::srv::AddTwoInts>
{
public:
TestService(sml::Agent * agent, rclcpp::Node::SharedPtr node, const std::string & topic)
Service<example_interfaces::srv::AddTwoInts>(agent, node, topic) {} ~TestService() {}

example_interfaces::srv::AddTwoInts::Response::SharedPtr parse(sml::Identifier * id) override { example_interfaces::srv::AddTwoInts::Response::SharedPtr response = std::make_shared<example_interfaces::srv::AddTwoInts::Response>(); auto sum = id->GetParameterValue(“sum”); int32_t num = std::stoi(sum); response.get()->sum = num; RCLCPP_INFO(m_node->get_logger(), “Computed: Sum=%ld”, response.get()->sum);

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package soar_ros

0.0.2 (2024-12-17)

  • ci: add jazzy and rolling tests. Disable flaky client test
  • docs: Add logos and update images.
  • fix: Stop SoarRunner Kernel thread on error.
  • ci: Change docs build to 1.12 Doxygen version.
  • build: Make ament_index_cpp dependency explicit
  • docs: Fix typos and add Test Agent description.
  • build: Fix tests and restrict testing to launch testing.
  • ci: Publish subdirectory of rosdoc2 build process
  • Contributors: Moritz Schmidt, dependabot[bot]

0.0.1 (2024-09-13)

  • Initial commit
  • Contributors: Moritz Schmidt

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged soar_ros at Robotics Stack Exchange

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

soar_ros package from soar_ros repo

soar_ros

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.0.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/THA-Embedded-Systems-Lab/soar_ros.git
VCS Type git
VCS Version main
Last Updated 2025-04-25
Dev Status MAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

An interface library to connect ROS2 with the Soar cognitive architecture.

Additional Links

No additional links.

Maintainers

  • Moritz Schmidt

Authors

No additional authors.

soar_ros: A ROS 2 Interface for Soar

This ROS2 package provides an interface for the Soar cognitive architecture by creating wrappers for ROS2 messages and handling the Soar kernel in a continuos mode.

Soar is a cognitive architecture developed at the University of Michigan. It is used in the field of cognitive robotics in different projects, e.g. a drone or a robot. However, the integration of Soar and ROS 2 is currently difficult for complex projects, which include multiple publishers, subscribers, services or clients. The main limitation orginates from the synchronous callback model used by Soar which inspired the creation of this wrapper. A detailed explanation about the reason for the development of the package can be read in the software architecture.

The package relies on a forked version of Soar. The major changes include a cmake-based build instead of scons and removal of SWIG language interfaces. For a detailed comparison have a look at the commit history of the fork.

Features

The library is developed targeting ROS 2 Humble on Ubuntu 22.04. Other configurations were not tested. It provides

  • Non blocking Soar kernel
  • Publisher
  • Subscriber
  • Service
  • Client

The following features are not supported, yet.

  • Action Server and Client
  • Multiple Soar agents

Definition and description of the public API

The API documentation is generated via rosdoc2, cf. how to build documentation.

Examples

The following examples are an extract of the test cases in test/test_soar_ros.cpp.

Publisher

The soar_ros::Publisher extends the ROS Publisher so the user only needs to define how data are converted between ROS data types and Soar data types.

class TestOutput : public soar_ros::Publisher<std_msgs::msg::String>
{
public:
  TestOutput(sml::Agent * agent, rclcpp::Node::SharedPtr node, const std::string & topic)
  : Publisher<std_msgs::msg::String>(agent, node, topic) {}
  ~TestOutput() {}
  std_msgs::msg::String parse(sml::Identifier * id) override
  {
    std_msgs::msg::String msg;
    msg.data = id->GetParameterValue("data");
    std::cout << id->GetCommandName() << " " << msg.data << std::endl;
    return msg;
  }
};

Service

In the following example, the ROS2 example AddTwoInts is implemented. Soar adds two integers and sends the result as a ROS2 Service, based on the soar_ros::Service class. The code is from test/test_soar_ros.cpp.

``` cpp
class TestService : public soar_ros::Service<example_interfaces::srv::AddTwoInts>
{
public:
TestService(sml::Agent * agent, rclcpp::Node::SharedPtr node, const std::string & topic)
Service<example_interfaces::srv::AddTwoInts>(agent, node, topic) {} ~TestService() {}

example_interfaces::srv::AddTwoInts::Response::SharedPtr parse(sml::Identifier * id) override { example_interfaces::srv::AddTwoInts::Response::SharedPtr response = std::make_shared<example_interfaces::srv::AddTwoInts::Response>(); auto sum = id->GetParameterValue(“sum”); int32_t num = std::stoi(sum); response.get()->sum = num; RCLCPP_INFO(m_node->get_logger(), “Computed: Sum=%ld”, response.get()->sum);

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package soar_ros

0.0.2 (2024-12-17)

  • ci: add jazzy and rolling tests. Disable flaky client test
  • docs: Add logos and update images.
  • fix: Stop SoarRunner Kernel thread on error.
  • ci: Change docs build to 1.12 Doxygen version.
  • build: Make ament_index_cpp dependency explicit
  • docs: Fix typos and add Test Agent description.
  • build: Fix tests and restrict testing to launch testing.
  • ci: Publish subdirectory of rosdoc2 build process
  • Contributors: Moritz Schmidt, dependabot[bot]

0.0.1 (2024-09-13)

  • Initial commit
  • Contributors: Moritz Schmidt

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged soar_ros at Robotics Stack Exchange

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

soar_ros package from soar_ros repo

soar_ros

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.0.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/THA-Embedded-Systems-Lab/soar_ros.git
VCS Type git
VCS Version main
Last Updated 2025-04-25
Dev Status MAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

An interface library to connect ROS2 with the Soar cognitive architecture.

Additional Links

No additional links.

Maintainers

  • Moritz Schmidt

Authors

No additional authors.

soar_ros: A ROS 2 Interface for Soar

This ROS2 package provides an interface for the Soar cognitive architecture by creating wrappers for ROS2 messages and handling the Soar kernel in a continuos mode.

Soar is a cognitive architecture developed at the University of Michigan. It is used in the field of cognitive robotics in different projects, e.g. a drone or a robot. However, the integration of Soar and ROS 2 is currently difficult for complex projects, which include multiple publishers, subscribers, services or clients. The main limitation orginates from the synchronous callback model used by Soar which inspired the creation of this wrapper. A detailed explanation about the reason for the development of the package can be read in the software architecture.

The package relies on a forked version of Soar. The major changes include a cmake-based build instead of scons and removal of SWIG language interfaces. For a detailed comparison have a look at the commit history of the fork.

Features

The library is developed targeting ROS 2 Humble on Ubuntu 22.04. Other configurations were not tested. It provides

  • Non blocking Soar kernel
  • Publisher
  • Subscriber
  • Service
  • Client

The following features are not supported, yet.

  • Action Server and Client
  • Multiple Soar agents

Definition and description of the public API

The API documentation is generated via rosdoc2, cf. how to build documentation.

Examples

The following examples are an extract of the test cases in test/test_soar_ros.cpp.

Publisher

The soar_ros::Publisher extends the ROS Publisher so the user only needs to define how data are converted between ROS data types and Soar data types.

class TestOutput : public soar_ros::Publisher<std_msgs::msg::String>
{
public:
  TestOutput(sml::Agent * agent, rclcpp::Node::SharedPtr node, const std::string & topic)
  : Publisher<std_msgs::msg::String>(agent, node, topic) {}
  ~TestOutput() {}
  std_msgs::msg::String parse(sml::Identifier * id) override
  {
    std_msgs::msg::String msg;
    msg.data = id->GetParameterValue("data");
    std::cout << id->GetCommandName() << " " << msg.data << std::endl;
    return msg;
  }
};

Service

In the following example, the ROS2 example AddTwoInts is implemented. Soar adds two integers and sends the result as a ROS2 Service, based on the soar_ros::Service class. The code is from test/test_soar_ros.cpp.

``` cpp
class TestService : public soar_ros::Service<example_interfaces::srv::AddTwoInts>
{
public:
TestService(sml::Agent * agent, rclcpp::Node::SharedPtr node, const std::string & topic)
Service<example_interfaces::srv::AddTwoInts>(agent, node, topic) {} ~TestService() {}

example_interfaces::srv::AddTwoInts::Response::SharedPtr parse(sml::Identifier * id) override { example_interfaces::srv::AddTwoInts::Response::SharedPtr response = std::make_shared<example_interfaces::srv::AddTwoInts::Response>(); auto sum = id->GetParameterValue(“sum”); int32_t num = std::stoi(sum); response.get()->sum = num; RCLCPP_INFO(m_node->get_logger(), “Computed: Sum=%ld”, response.get()->sum);

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package soar_ros

0.0.2 (2024-12-17)

  • ci: add jazzy and rolling tests. Disable flaky client test
  • docs: Add logos and update images.
  • fix: Stop SoarRunner Kernel thread on error.
  • ci: Change docs build to 1.12 Doxygen version.
  • build: Make ament_index_cpp dependency explicit
  • docs: Fix typos and add Test Agent description.
  • build: Fix tests and restrict testing to launch testing.
  • ci: Publish subdirectory of rosdoc2 build process
  • Contributors: Moritz Schmidt, dependabot[bot]

0.0.1 (2024-09-13)

  • Initial commit
  • Contributors: Moritz Schmidt

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged soar_ros at Robotics Stack Exchange

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

soar_ros package from soar_ros repo

soar_ros

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.0.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/THA-Embedded-Systems-Lab/soar_ros.git
VCS Type git
VCS Version main
Last Updated 2025-04-25
Dev Status MAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

An interface library to connect ROS2 with the Soar cognitive architecture.

Additional Links

No additional links.

Maintainers

  • Moritz Schmidt

Authors

No additional authors.

soar_ros: A ROS 2 Interface for Soar

This ROS2 package provides an interface for the Soar cognitive architecture by creating wrappers for ROS2 messages and handling the Soar kernel in a continuos mode.

Soar is a cognitive architecture developed at the University of Michigan. It is used in the field of cognitive robotics in different projects, e.g. a drone or a robot. However, the integration of Soar and ROS 2 is currently difficult for complex projects, which include multiple publishers, subscribers, services or clients. The main limitation orginates from the synchronous callback model used by Soar which inspired the creation of this wrapper. A detailed explanation about the reason for the development of the package can be read in the software architecture.

The package relies on a forked version of Soar. The major changes include a cmake-based build instead of scons and removal of SWIG language interfaces. For a detailed comparison have a look at the commit history of the fork.

Features

The library is developed targeting ROS 2 Humble on Ubuntu 22.04. Other configurations were not tested. It provides

  • Non blocking Soar kernel
  • Publisher
  • Subscriber
  • Service
  • Client

The following features are not supported, yet.

  • Action Server and Client
  • Multiple Soar agents

Definition and description of the public API

The API documentation is generated via rosdoc2, cf. how to build documentation.

Examples

The following examples are an extract of the test cases in test/test_soar_ros.cpp.

Publisher

The soar_ros::Publisher extends the ROS Publisher so the user only needs to define how data are converted between ROS data types and Soar data types.

class TestOutput : public soar_ros::Publisher<std_msgs::msg::String>
{
public:
  TestOutput(sml::Agent * agent, rclcpp::Node::SharedPtr node, const std::string & topic)
  : Publisher<std_msgs::msg::String>(agent, node, topic) {}
  ~TestOutput() {}
  std_msgs::msg::String parse(sml::Identifier * id) override
  {
    std_msgs::msg::String msg;
    msg.data = id->GetParameterValue("data");
    std::cout << id->GetCommandName() << " " << msg.data << std::endl;
    return msg;
  }
};

Service

In the following example, the ROS2 example AddTwoInts is implemented. Soar adds two integers and sends the result as a ROS2 Service, based on the soar_ros::Service class. The code is from test/test_soar_ros.cpp.

``` cpp
class TestService : public soar_ros::Service<example_interfaces::srv::AddTwoInts>
{
public:
TestService(sml::Agent * agent, rclcpp::Node::SharedPtr node, const std::string & topic)
Service<example_interfaces::srv::AddTwoInts>(agent, node, topic) {} ~TestService() {}

example_interfaces::srv::AddTwoInts::Response::SharedPtr parse(sml::Identifier * id) override { example_interfaces::srv::AddTwoInts::Response::SharedPtr response = std::make_shared<example_interfaces::srv::AddTwoInts::Response>(); auto sum = id->GetParameterValue(“sum”); int32_t num = std::stoi(sum); response.get()->sum = num; RCLCPP_INFO(m_node->get_logger(), “Computed: Sum=%ld”, response.get()->sum);

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package soar_ros

0.0.2 (2024-12-17)

  • ci: add jazzy and rolling tests. Disable flaky client test
  • docs: Add logos and update images.
  • fix: Stop SoarRunner Kernel thread on error.
  • ci: Change docs build to 1.12 Doxygen version.
  • build: Make ament_index_cpp dependency explicit
  • docs: Fix typos and add Test Agent description.
  • build: Fix tests and restrict testing to launch testing.
  • ci: Publish subdirectory of rosdoc2 build process
  • Contributors: Moritz Schmidt, dependabot[bot]

0.0.1 (2024-09-13)

  • Initial commit
  • Contributors: Moritz Schmidt

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged soar_ros at Robotics Stack Exchange

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

soar_ros package from soar_ros repo

soar_ros

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.0.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/THA-Embedded-Systems-Lab/soar_ros.git
VCS Type git
VCS Version main
Last Updated 2025-04-25
Dev Status MAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

An interface library to connect ROS2 with the Soar cognitive architecture.

Additional Links

No additional links.

Maintainers

  • Moritz Schmidt

Authors

No additional authors.

soar_ros: A ROS 2 Interface for Soar

This ROS2 package provides an interface for the Soar cognitive architecture by creating wrappers for ROS2 messages and handling the Soar kernel in a continuos mode.

Soar is a cognitive architecture developed at the University of Michigan. It is used in the field of cognitive robotics in different projects, e.g. a drone or a robot. However, the integration of Soar and ROS 2 is currently difficult for complex projects, which include multiple publishers, subscribers, services or clients. The main limitation orginates from the synchronous callback model used by Soar which inspired the creation of this wrapper. A detailed explanation about the reason for the development of the package can be read in the software architecture.

The package relies on a forked version of Soar. The major changes include a cmake-based build instead of scons and removal of SWIG language interfaces. For a detailed comparison have a look at the commit history of the fork.

Features

The library is developed targeting ROS 2 Humble on Ubuntu 22.04. Other configurations were not tested. It provides

  • Non blocking Soar kernel
  • Publisher
  • Subscriber
  • Service
  • Client

The following features are not supported, yet.

  • Action Server and Client
  • Multiple Soar agents

Definition and description of the public API

The API documentation is generated via rosdoc2, cf. how to build documentation.

Examples

The following examples are an extract of the test cases in test/test_soar_ros.cpp.

Publisher

The soar_ros::Publisher extends the ROS Publisher so the user only needs to define how data are converted between ROS data types and Soar data types.

class TestOutput : public soar_ros::Publisher<std_msgs::msg::String>
{
public:
  TestOutput(sml::Agent * agent, rclcpp::Node::SharedPtr node, const std::string & topic)
  : Publisher<std_msgs::msg::String>(agent, node, topic) {}
  ~TestOutput() {}
  std_msgs::msg::String parse(sml::Identifier * id) override
  {
    std_msgs::msg::String msg;
    msg.data = id->GetParameterValue("data");
    std::cout << id->GetCommandName() << " " << msg.data << std::endl;
    return msg;
  }
};

Service

In the following example, the ROS2 example AddTwoInts is implemented. Soar adds two integers and sends the result as a ROS2 Service, based on the soar_ros::Service class. The code is from test/test_soar_ros.cpp.

``` cpp
class TestService : public soar_ros::Service<example_interfaces::srv::AddTwoInts>
{
public:
TestService(sml::Agent * agent, rclcpp::Node::SharedPtr node, const std::string & topic)
Service<example_interfaces::srv::AddTwoInts>(agent, node, topic) {} ~TestService() {}

example_interfaces::srv::AddTwoInts::Response::SharedPtr parse(sml::Identifier * id) override { example_interfaces::srv::AddTwoInts::Response::SharedPtr response = std::make_shared<example_interfaces::srv::AddTwoInts::Response>(); auto sum = id->GetParameterValue(“sum”); int32_t num = std::stoi(sum); response.get()->sum = num; RCLCPP_INFO(m_node->get_logger(), “Computed: Sum=%ld”, response.get()->sum);

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package soar_ros

0.0.2 (2024-12-17)

  • ci: add jazzy and rolling tests. Disable flaky client test
  • docs: Add logos and update images.
  • fix: Stop SoarRunner Kernel thread on error.
  • ci: Change docs build to 1.12 Doxygen version.
  • build: Make ament_index_cpp dependency explicit
  • docs: Fix typos and add Test Agent description.
  • build: Fix tests and restrict testing to launch testing.
  • ci: Publish subdirectory of rosdoc2 build process
  • Contributors: Moritz Schmidt, dependabot[bot]

0.0.1 (2024-09-13)

  • Initial commit
  • Contributors: Moritz Schmidt

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged soar_ros at Robotics Stack Exchange

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

soar_ros package from soar_ros repo

soar_ros

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.0.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/THA-Embedded-Systems-Lab/soar_ros.git
VCS Type git
VCS Version main
Last Updated 2025-04-25
Dev Status MAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

An interface library to connect ROS2 with the Soar cognitive architecture.

Additional Links

No additional links.

Maintainers

  • Moritz Schmidt

Authors

No additional authors.

soar_ros: A ROS 2 Interface for Soar

This ROS2 package provides an interface for the Soar cognitive architecture by creating wrappers for ROS2 messages and handling the Soar kernel in a continuos mode.

Soar is a cognitive architecture developed at the University of Michigan. It is used in the field of cognitive robotics in different projects, e.g. a drone or a robot. However, the integration of Soar and ROS 2 is currently difficult for complex projects, which include multiple publishers, subscribers, services or clients. The main limitation orginates from the synchronous callback model used by Soar which inspired the creation of this wrapper. A detailed explanation about the reason for the development of the package can be read in the software architecture.

The package relies on a forked version of Soar. The major changes include a cmake-based build instead of scons and removal of SWIG language interfaces. For a detailed comparison have a look at the commit history of the fork.

Features

The library is developed targeting ROS 2 Humble on Ubuntu 22.04. Other configurations were not tested. It provides

  • Non blocking Soar kernel
  • Publisher
  • Subscriber
  • Service
  • Client

The following features are not supported, yet.

  • Action Server and Client
  • Multiple Soar agents

Definition and description of the public API

The API documentation is generated via rosdoc2, cf. how to build documentation.

Examples

The following examples are an extract of the test cases in test/test_soar_ros.cpp.

Publisher

The soar_ros::Publisher extends the ROS Publisher so the user only needs to define how data are converted between ROS data types and Soar data types.

class TestOutput : public soar_ros::Publisher<std_msgs::msg::String>
{
public:
  TestOutput(sml::Agent * agent, rclcpp::Node::SharedPtr node, const std::string & topic)
  : Publisher<std_msgs::msg::String>(agent, node, topic) {}
  ~TestOutput() {}
  std_msgs::msg::String parse(sml::Identifier * id) override
  {
    std_msgs::msg::String msg;
    msg.data = id->GetParameterValue("data");
    std::cout << id->GetCommandName() << " " << msg.data << std::endl;
    return msg;
  }
};

Service

In the following example, the ROS2 example AddTwoInts is implemented. Soar adds two integers and sends the result as a ROS2 Service, based on the soar_ros::Service class. The code is from test/test_soar_ros.cpp.

``` cpp
class TestService : public soar_ros::Service<example_interfaces::srv::AddTwoInts>
{
public:
TestService(sml::Agent * agent, rclcpp::Node::SharedPtr node, const std::string & topic)
Service<example_interfaces::srv::AddTwoInts>(agent, node, topic) {} ~TestService() {}

example_interfaces::srv::AddTwoInts::Response::SharedPtr parse(sml::Identifier * id) override { example_interfaces::srv::AddTwoInts::Response::SharedPtr response = std::make_shared<example_interfaces::srv::AddTwoInts::Response>(); auto sum = id->GetParameterValue(“sum”); int32_t num = std::stoi(sum); response.get()->sum = num; RCLCPP_INFO(m_node->get_logger(), “Computed: Sum=%ld”, response.get()->sum);

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package soar_ros

0.0.2 (2024-12-17)

  • ci: add jazzy and rolling tests. Disable flaky client test
  • docs: Add logos and update images.
  • fix: Stop SoarRunner Kernel thread on error.
  • ci: Change docs build to 1.12 Doxygen version.
  • build: Make ament_index_cpp dependency explicit
  • docs: Fix typos and add Test Agent description.
  • build: Fix tests and restrict testing to launch testing.
  • ci: Publish subdirectory of rosdoc2 build process
  • Contributors: Moritz Schmidt, dependabot[bot]

0.0.1 (2024-09-13)

  • Initial commit
  • Contributors: Moritz Schmidt

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged soar_ros at Robotics Stack Exchange

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

soar_ros package from soar_ros repo

soar_ros

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.0.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/THA-Embedded-Systems-Lab/soar_ros.git
VCS Type git
VCS Version main
Last Updated 2025-04-25
Dev Status MAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

An interface library to connect ROS2 with the Soar cognitive architecture.

Additional Links

No additional links.

Maintainers

  • Moritz Schmidt

Authors

No additional authors.

soar_ros: A ROS 2 Interface for Soar

This ROS2 package provides an interface for the Soar cognitive architecture by creating wrappers for ROS2 messages and handling the Soar kernel in a continuos mode.

Soar is a cognitive architecture developed at the University of Michigan. It is used in the field of cognitive robotics in different projects, e.g. a drone or a robot. However, the integration of Soar and ROS 2 is currently difficult for complex projects, which include multiple publishers, subscribers, services or clients. The main limitation orginates from the synchronous callback model used by Soar which inspired the creation of this wrapper. A detailed explanation about the reason for the development of the package can be read in the software architecture.

The package relies on a forked version of Soar. The major changes include a cmake-based build instead of scons and removal of SWIG language interfaces. For a detailed comparison have a look at the commit history of the fork.

Features

The library is developed targeting ROS 2 Humble on Ubuntu 22.04. Other configurations were not tested. It provides

  • Non blocking Soar kernel
  • Publisher
  • Subscriber
  • Service
  • Client

The following features are not supported, yet.

  • Action Server and Client
  • Multiple Soar agents

Definition and description of the public API

The API documentation is generated via rosdoc2, cf. how to build documentation.

Examples

The following examples are an extract of the test cases in test/test_soar_ros.cpp.

Publisher

The soar_ros::Publisher extends the ROS Publisher so the user only needs to define how data are converted between ROS data types and Soar data types.

class TestOutput : public soar_ros::Publisher<std_msgs::msg::String>
{
public:
  TestOutput(sml::Agent * agent, rclcpp::Node::SharedPtr node, const std::string & topic)
  : Publisher<std_msgs::msg::String>(agent, node, topic) {}
  ~TestOutput() {}
  std_msgs::msg::String parse(sml::Identifier * id) override
  {
    std_msgs::msg::String msg;
    msg.data = id->GetParameterValue("data");
    std::cout << id->GetCommandName() << " " << msg.data << std::endl;
    return msg;
  }
};

Service

In the following example, the ROS2 example AddTwoInts is implemented. Soar adds two integers and sends the result as a ROS2 Service, based on the soar_ros::Service class. The code is from test/test_soar_ros.cpp.

``` cpp
class TestService : public soar_ros::Service<example_interfaces::srv::AddTwoInts>
{
public:
TestService(sml::Agent * agent, rclcpp::Node::SharedPtr node, const std::string & topic)
Service<example_interfaces::srv::AddTwoInts>(agent, node, topic) {} ~TestService() {}

example_interfaces::srv::AddTwoInts::Response::SharedPtr parse(sml::Identifier * id) override { example_interfaces::srv::AddTwoInts::Response::SharedPtr response = std::make_shared<example_interfaces::srv::AddTwoInts::Response>(); auto sum = id->GetParameterValue(“sum”); int32_t num = std::stoi(sum); response.get()->sum = num; RCLCPP_INFO(m_node->get_logger(), “Computed: Sum=%ld”, response.get()->sum);

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package soar_ros

0.0.2 (2024-12-17)

  • ci: add jazzy and rolling tests. Disable flaky client test
  • docs: Add logos and update images.
  • fix: Stop SoarRunner Kernel thread on error.
  • ci: Change docs build to 1.12 Doxygen version.
  • build: Make ament_index_cpp dependency explicit
  • docs: Fix typos and add Test Agent description.
  • build: Fix tests and restrict testing to launch testing.
  • ci: Publish subdirectory of rosdoc2 build process
  • Contributors: Moritz Schmidt, dependabot[bot]

0.0.1 (2024-09-13)

  • Initial commit
  • Contributors: Moritz Schmidt

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged soar_ros at Robotics Stack Exchange

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

soar_ros package from soar_ros repo

soar_ros

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.0.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/THA-Embedded-Systems-Lab/soar_ros.git
VCS Type git
VCS Version main
Last Updated 2025-04-25
Dev Status MAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

An interface library to connect ROS2 with the Soar cognitive architecture.

Additional Links

No additional links.

Maintainers

  • Moritz Schmidt

Authors

No additional authors.

soar_ros: A ROS 2 Interface for Soar

This ROS2 package provides an interface for the Soar cognitive architecture by creating wrappers for ROS2 messages and handling the Soar kernel in a continuos mode.

Soar is a cognitive architecture developed at the University of Michigan. It is used in the field of cognitive robotics in different projects, e.g. a drone or a robot. However, the integration of Soar and ROS 2 is currently difficult for complex projects, which include multiple publishers, subscribers, services or clients. The main limitation orginates from the synchronous callback model used by Soar which inspired the creation of this wrapper. A detailed explanation about the reason for the development of the package can be read in the software architecture.

The package relies on a forked version of Soar. The major changes include a cmake-based build instead of scons and removal of SWIG language interfaces. For a detailed comparison have a look at the commit history of the fork.

Features

The library is developed targeting ROS 2 Humble on Ubuntu 22.04. Other configurations were not tested. It provides

  • Non blocking Soar kernel
  • Publisher
  • Subscriber
  • Service
  • Client

The following features are not supported, yet.

  • Action Server and Client
  • Multiple Soar agents

Definition and description of the public API

The API documentation is generated via rosdoc2, cf. how to build documentation.

Examples

The following examples are an extract of the test cases in test/test_soar_ros.cpp.

Publisher

The soar_ros::Publisher extends the ROS Publisher so the user only needs to define how data are converted between ROS data types and Soar data types.

class TestOutput : public soar_ros::Publisher<std_msgs::msg::String>
{
public:
  TestOutput(sml::Agent * agent, rclcpp::Node::SharedPtr node, const std::string & topic)
  : Publisher<std_msgs::msg::String>(agent, node, topic) {}
  ~TestOutput() {}
  std_msgs::msg::String parse(sml::Identifier * id) override
  {
    std_msgs::msg::String msg;
    msg.data = id->GetParameterValue("data");
    std::cout << id->GetCommandName() << " " << msg.data << std::endl;
    return msg;
  }
};

Service

In the following example, the ROS2 example AddTwoInts is implemented. Soar adds two integers and sends the result as a ROS2 Service, based on the soar_ros::Service class. The code is from test/test_soar_ros.cpp.

``` cpp
class TestService : public soar_ros::Service<example_interfaces::srv::AddTwoInts>
{
public:
TestService(sml::Agent * agent, rclcpp::Node::SharedPtr node, const std::string & topic)
Service<example_interfaces::srv::AddTwoInts>(agent, node, topic) {} ~TestService() {}

example_interfaces::srv::AddTwoInts::Response::SharedPtr parse(sml::Identifier * id) override { example_interfaces::srv::AddTwoInts::Response::SharedPtr response = std::make_shared<example_interfaces::srv::AddTwoInts::Response>(); auto sum = id->GetParameterValue(“sum”); int32_t num = std::stoi(sum); response.get()->sum = num; RCLCPP_INFO(m_node->get_logger(), “Computed: Sum=%ld”, response.get()->sum);

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package soar_ros

0.0.2 (2024-12-17)

  • ci: add jazzy and rolling tests. Disable flaky client test
  • docs: Add logos and update images.
  • fix: Stop SoarRunner Kernel thread on error.
  • ci: Change docs build to 1.12 Doxygen version.
  • build: Make ament_index_cpp dependency explicit
  • docs: Fix typos and add Test Agent description.
  • build: Fix tests and restrict testing to launch testing.
  • ci: Publish subdirectory of rosdoc2 build process
  • Contributors: Moritz Schmidt, dependabot[bot]

0.0.1 (2024-09-13)

  • Initial commit
  • Contributors: Moritz Schmidt

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged soar_ros at Robotics Stack Exchange

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

soar_ros package from soar_ros repo

soar_ros

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.0.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/THA-Embedded-Systems-Lab/soar_ros.git
VCS Type git
VCS Version main
Last Updated 2025-04-25
Dev Status MAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

An interface library to connect ROS2 with the Soar cognitive architecture.

Additional Links

No additional links.

Maintainers

  • Moritz Schmidt

Authors

No additional authors.

soar_ros: A ROS 2 Interface for Soar

This ROS2 package provides an interface for the Soar cognitive architecture by creating wrappers for ROS2 messages and handling the Soar kernel in a continuos mode.

Soar is a cognitive architecture developed at the University of Michigan. It is used in the field of cognitive robotics in different projects, e.g. a drone or a robot. However, the integration of Soar and ROS 2 is currently difficult for complex projects, which include multiple publishers, subscribers, services or clients. The main limitation orginates from the synchronous callback model used by Soar which inspired the creation of this wrapper. A detailed explanation about the reason for the development of the package can be read in the software architecture.

The package relies on a forked version of Soar. The major changes include a cmake-based build instead of scons and removal of SWIG language interfaces. For a detailed comparison have a look at the commit history of the fork.

Features

The library is developed targeting ROS 2 Humble on Ubuntu 22.04. Other configurations were not tested. It provides

  • Non blocking Soar kernel
  • Publisher
  • Subscriber
  • Service
  • Client

The following features are not supported, yet.

  • Action Server and Client
  • Multiple Soar agents

Definition and description of the public API

The API documentation is generated via rosdoc2, cf. how to build documentation.

Examples

The following examples are an extract of the test cases in test/test_soar_ros.cpp.

Publisher

The soar_ros::Publisher extends the ROS Publisher so the user only needs to define how data are converted between ROS data types and Soar data types.

class TestOutput : public soar_ros::Publisher<std_msgs::msg::String>
{
public:
  TestOutput(sml::Agent * agent, rclcpp::Node::SharedPtr node, const std::string & topic)
  : Publisher<std_msgs::msg::String>(agent, node, topic) {}
  ~TestOutput() {}
  std_msgs::msg::String parse(sml::Identifier * id) override
  {
    std_msgs::msg::String msg;
    msg.data = id->GetParameterValue("data");
    std::cout << id->GetCommandName() << " " << msg.data << std::endl;
    return msg;
  }
};

Service

In the following example, the ROS2 example AddTwoInts is implemented. Soar adds two integers and sends the result as a ROS2 Service, based on the soar_ros::Service class. The code is from test/test_soar_ros.cpp.

``` cpp
class TestService : public soar_ros::Service<example_interfaces::srv::AddTwoInts>
{
public:
TestService(sml::Agent * agent, rclcpp::Node::SharedPtr node, const std::string & topic)
Service<example_interfaces::srv::AddTwoInts>(agent, node, topic) {} ~TestService() {}

example_interfaces::srv::AddTwoInts::Response::SharedPtr parse(sml::Identifier * id) override { example_interfaces::srv::AddTwoInts::Response::SharedPtr response = std::make_shared<example_interfaces::srv::AddTwoInts::Response>(); auto sum = id->GetParameterValue(“sum”); int32_t num = std::stoi(sum); response.get()->sum = num; RCLCPP_INFO(m_node->get_logger(), “Computed: Sum=%ld”, response.get()->sum);

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package soar_ros

0.0.2 (2024-12-17)

  • ci: add jazzy and rolling tests. Disable flaky client test
  • docs: Add logos and update images.
  • fix: Stop SoarRunner Kernel thread on error.
  • ci: Change docs build to 1.12 Doxygen version.
  • build: Make ament_index_cpp dependency explicit
  • docs: Fix typos and add Test Agent description.
  • build: Fix tests and restrict testing to launch testing.
  • ci: Publish subdirectory of rosdoc2 build process
  • Contributors: Moritz Schmidt, dependabot[bot]

0.0.1 (2024-09-13)

  • Initial commit
  • Contributors: Moritz Schmidt

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged soar_ros at Robotics Stack Exchange

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

soar_ros package from soar_ros repo

soar_ros

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.0.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/THA-Embedded-Systems-Lab/soar_ros.git
VCS Type git
VCS Version main
Last Updated 2025-04-25
Dev Status MAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

An interface library to connect ROS2 with the Soar cognitive architecture.

Additional Links

No additional links.

Maintainers

  • Moritz Schmidt

Authors

No additional authors.

soar_ros: A ROS 2 Interface for Soar

This ROS2 package provides an interface for the Soar cognitive architecture by creating wrappers for ROS2 messages and handling the Soar kernel in a continuos mode.

Soar is a cognitive architecture developed at the University of Michigan. It is used in the field of cognitive robotics in different projects, e.g. a drone or a robot. However, the integration of Soar and ROS 2 is currently difficult for complex projects, which include multiple publishers, subscribers, services or clients. The main limitation orginates from the synchronous callback model used by Soar which inspired the creation of this wrapper. A detailed explanation about the reason for the development of the package can be read in the software architecture.

The package relies on a forked version of Soar. The major changes include a cmake-based build instead of scons and removal of SWIG language interfaces. For a detailed comparison have a look at the commit history of the fork.

Features

The library is developed targeting ROS 2 Humble on Ubuntu 22.04. Other configurations were not tested. It provides

  • Non blocking Soar kernel
  • Publisher
  • Subscriber
  • Service
  • Client

The following features are not supported, yet.

  • Action Server and Client
  • Multiple Soar agents

Definition and description of the public API

The API documentation is generated via rosdoc2, cf. how to build documentation.

Examples

The following examples are an extract of the test cases in test/test_soar_ros.cpp.

Publisher

The soar_ros::Publisher extends the ROS Publisher so the user only needs to define how data are converted between ROS data types and Soar data types.

class TestOutput : public soar_ros::Publisher<std_msgs::msg::String>
{
public:
  TestOutput(sml::Agent * agent, rclcpp::Node::SharedPtr node, const std::string & topic)
  : Publisher<std_msgs::msg::String>(agent, node, topic) {}
  ~TestOutput() {}
  std_msgs::msg::String parse(sml::Identifier * id) override
  {
    std_msgs::msg::String msg;
    msg.data = id->GetParameterValue("data");
    std::cout << id->GetCommandName() << " " << msg.data << std::endl;
    return msg;
  }
};

Service

In the following example, the ROS2 example AddTwoInts is implemented. Soar adds two integers and sends the result as a ROS2 Service, based on the soar_ros::Service class. The code is from test/test_soar_ros.cpp.

``` cpp
class TestService : public soar_ros::Service<example_interfaces::srv::AddTwoInts>
{
public:
TestService(sml::Agent * agent, rclcpp::Node::SharedPtr node, const std::string & topic)
Service<example_interfaces::srv::AddTwoInts>(agent, node, topic) {} ~TestService() {}

example_interfaces::srv::AddTwoInts::Response::SharedPtr parse(sml::Identifier * id) override { example_interfaces::srv::AddTwoInts::Response::SharedPtr response = std::make_shared<example_interfaces::srv::AddTwoInts::Response>(); auto sum = id->GetParameterValue(“sum”); int32_t num = std::stoi(sum); response.get()->sum = num; RCLCPP_INFO(m_node->get_logger(), “Computed: Sum=%ld”, response.get()->sum);

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package soar_ros

0.0.2 (2024-12-17)

  • ci: add jazzy and rolling tests. Disable flaky client test
  • docs: Add logos and update images.
  • fix: Stop SoarRunner Kernel thread on error.
  • ci: Change docs build to 1.12 Doxygen version.
  • build: Make ament_index_cpp dependency explicit
  • docs: Fix typos and add Test Agent description.
  • build: Fix tests and restrict testing to launch testing.
  • ci: Publish subdirectory of rosdoc2 build process
  • Contributors: Moritz Schmidt, dependabot[bot]

0.0.1 (2024-09-13)

  • Initial commit
  • Contributors: Moritz Schmidt

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged soar_ros at Robotics Stack Exchange

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

soar_ros package from soar_ros repo

soar_ros

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.0.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/THA-Embedded-Systems-Lab/soar_ros.git
VCS Type git
VCS Version main
Last Updated 2025-04-25
Dev Status MAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

An interface library to connect ROS2 with the Soar cognitive architecture.

Additional Links

No additional links.

Maintainers

  • Moritz Schmidt

Authors

No additional authors.

soar_ros: A ROS 2 Interface for Soar

This ROS2 package provides an interface for the Soar cognitive architecture by creating wrappers for ROS2 messages and handling the Soar kernel in a continuos mode.

Soar is a cognitive architecture developed at the University of Michigan. It is used in the field of cognitive robotics in different projects, e.g. a drone or a robot. However, the integration of Soar and ROS 2 is currently difficult for complex projects, which include multiple publishers, subscribers, services or clients. The main limitation orginates from the synchronous callback model used by Soar which inspired the creation of this wrapper. A detailed explanation about the reason for the development of the package can be read in the software architecture.

The package relies on a forked version of Soar. The major changes include a cmake-based build instead of scons and removal of SWIG language interfaces. For a detailed comparison have a look at the commit history of the fork.

Features

The library is developed targeting ROS 2 Humble on Ubuntu 22.04. Other configurations were not tested. It provides

  • Non blocking Soar kernel
  • Publisher
  • Subscriber
  • Service
  • Client

The following features are not supported, yet.

  • Action Server and Client
  • Multiple Soar agents

Definition and description of the public API

The API documentation is generated via rosdoc2, cf. how to build documentation.

Examples

The following examples are an extract of the test cases in test/test_soar_ros.cpp.

Publisher

The soar_ros::Publisher extends the ROS Publisher so the user only needs to define how data are converted between ROS data types and Soar data types.

class TestOutput : public soar_ros::Publisher<std_msgs::msg::String>
{
public:
  TestOutput(sml::Agent * agent, rclcpp::Node::SharedPtr node, const std::string & topic)
  : Publisher<std_msgs::msg::String>(agent, node, topic) {}
  ~TestOutput() {}
  std_msgs::msg::String parse(sml::Identifier * id) override
  {
    std_msgs::msg::String msg;
    msg.data = id->GetParameterValue("data");
    std::cout << id->GetCommandName() << " " << msg.data << std::endl;
    return msg;
  }
};

Service

In the following example, the ROS2 example AddTwoInts is implemented. Soar adds two integers and sends the result as a ROS2 Service, based on the soar_ros::Service class. The code is from test/test_soar_ros.cpp.

``` cpp
class TestService : public soar_ros::Service<example_interfaces::srv::AddTwoInts>
{
public:
TestService(sml::Agent * agent, rclcpp::Node::SharedPtr node, const std::string & topic)
Service<example_interfaces::srv::AddTwoInts>(agent, node, topic) {} ~TestService() {}

example_interfaces::srv::AddTwoInts::Response::SharedPtr parse(sml::Identifier * id) override { example_interfaces::srv::AddTwoInts::Response::SharedPtr response = std::make_shared<example_interfaces::srv::AddTwoInts::Response>(); auto sum = id->GetParameterValue(“sum”); int32_t num = std::stoi(sum); response.get()->sum = num; RCLCPP_INFO(m_node->get_logger(), “Computed: Sum=%ld”, response.get()->sum);

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package soar_ros

0.0.2 (2024-12-17)

  • ci: add jazzy and rolling tests. Disable flaky client test
  • docs: Add logos and update images.
  • fix: Stop SoarRunner Kernel thread on error.
  • ci: Change docs build to 1.12 Doxygen version.
  • build: Make ament_index_cpp dependency explicit
  • docs: Fix typos and add Test Agent description.
  • build: Fix tests and restrict testing to launch testing.
  • ci: Publish subdirectory of rosdoc2 build process
  • Contributors: Moritz Schmidt, dependabot[bot]

0.0.1 (2024-09-13)

  • Initial commit
  • Contributors: Moritz Schmidt

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged soar_ros at Robotics Stack Exchange

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

soar_ros package from soar_ros repo

soar_ros

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.0.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/THA-Embedded-Systems-Lab/soar_ros.git
VCS Type git
VCS Version main
Last Updated 2025-04-25
Dev Status MAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

An interface library to connect ROS2 with the Soar cognitive architecture.

Additional Links

No additional links.

Maintainers

  • Moritz Schmidt

Authors

No additional authors.

soar_ros: A ROS 2 Interface for Soar

This ROS2 package provides an interface for the Soar cognitive architecture by creating wrappers for ROS2 messages and handling the Soar kernel in a continuos mode.

Soar is a cognitive architecture developed at the University of Michigan. It is used in the field of cognitive robotics in different projects, e.g. a drone or a robot. However, the integration of Soar and ROS 2 is currently difficult for complex projects, which include multiple publishers, subscribers, services or clients. The main limitation orginates from the synchronous callback model used by Soar which inspired the creation of this wrapper. A detailed explanation about the reason for the development of the package can be read in the software architecture.

The package relies on a forked version of Soar. The major changes include a cmake-based build instead of scons and removal of SWIG language interfaces. For a detailed comparison have a look at the commit history of the fork.

Features

The library is developed targeting ROS 2 Humble on Ubuntu 22.04. Other configurations were not tested. It provides

  • Non blocking Soar kernel
  • Publisher
  • Subscriber
  • Service
  • Client

The following features are not supported, yet.

  • Action Server and Client
  • Multiple Soar agents

Definition and description of the public API

The API documentation is generated via rosdoc2, cf. how to build documentation.

Examples

The following examples are an extract of the test cases in test/test_soar_ros.cpp.

Publisher

The soar_ros::Publisher extends the ROS Publisher so the user only needs to define how data are converted between ROS data types and Soar data types.

class TestOutput : public soar_ros::Publisher<std_msgs::msg::String>
{
public:
  TestOutput(sml::Agent * agent, rclcpp::Node::SharedPtr node, const std::string & topic)
  : Publisher<std_msgs::msg::String>(agent, node, topic) {}
  ~TestOutput() {}
  std_msgs::msg::String parse(sml::Identifier * id) override
  {
    std_msgs::msg::String msg;
    msg.data = id->GetParameterValue("data");
    std::cout << id->GetCommandName() << " " << msg.data << std::endl;
    return msg;
  }
};

Service

In the following example, the ROS2 example AddTwoInts is implemented. Soar adds two integers and sends the result as a ROS2 Service, based on the soar_ros::Service class. The code is from test/test_soar_ros.cpp.

``` cpp
class TestService : public soar_ros::Service<example_interfaces::srv::AddTwoInts>
{
public:
TestService(sml::Agent * agent, rclcpp::Node::SharedPtr node, const std::string & topic)
Service<example_interfaces::srv::AddTwoInts>(agent, node, topic) {} ~TestService() {}

example_interfaces::srv::AddTwoInts::Response::SharedPtr parse(sml::Identifier * id) override { example_interfaces::srv::AddTwoInts::Response::SharedPtr response = std::make_shared<example_interfaces::srv::AddTwoInts::Response>(); auto sum = id->GetParameterValue(“sum”); int32_t num = std::stoi(sum); response.get()->sum = num; RCLCPP_INFO(m_node->get_logger(), “Computed: Sum=%ld”, response.get()->sum);

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package soar_ros

0.0.2 (2024-12-17)

  • ci: add jazzy and rolling tests. Disable flaky client test
  • docs: Add logos and update images.
  • fix: Stop SoarRunner Kernel thread on error.
  • ci: Change docs build to 1.12 Doxygen version.
  • build: Make ament_index_cpp dependency explicit
  • docs: Fix typos and add Test Agent description.
  • build: Fix tests and restrict testing to launch testing.
  • ci: Publish subdirectory of rosdoc2 build process
  • Contributors: Moritz Schmidt, dependabot[bot]

0.0.1 (2024-09-13)

  • Initial commit
  • Contributors: Moritz Schmidt

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged soar_ros at Robotics Stack Exchange

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

soar_ros package from soar_ros repo

soar_ros

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.0.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/THA-Embedded-Systems-Lab/soar_ros.git
VCS Type git
VCS Version main
Last Updated 2025-04-25
Dev Status MAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

An interface library to connect ROS2 with the Soar cognitive architecture.

Additional Links

No additional links.

Maintainers

  • Moritz Schmidt

Authors

No additional authors.

soar_ros: A ROS 2 Interface for Soar

This ROS2 package provides an interface for the Soar cognitive architecture by creating wrappers for ROS2 messages and handling the Soar kernel in a continuos mode.

Soar is a cognitive architecture developed at the University of Michigan. It is used in the field of cognitive robotics in different projects, e.g. a drone or a robot. However, the integration of Soar and ROS 2 is currently difficult for complex projects, which include multiple publishers, subscribers, services or clients. The main limitation orginates from the synchronous callback model used by Soar which inspired the creation of this wrapper. A detailed explanation about the reason for the development of the package can be read in the software architecture.

The package relies on a forked version of Soar. The major changes include a cmake-based build instead of scons and removal of SWIG language interfaces. For a detailed comparison have a look at the commit history of the fork.

Features

The library is developed targeting ROS 2 Humble on Ubuntu 22.04. Other configurations were not tested. It provides

  • Non blocking Soar kernel
  • Publisher
  • Subscriber
  • Service
  • Client

The following features are not supported, yet.

  • Action Server and Client
  • Multiple Soar agents

Definition and description of the public API

The API documentation is generated via rosdoc2, cf. how to build documentation.

Examples

The following examples are an extract of the test cases in test/test_soar_ros.cpp.

Publisher

The soar_ros::Publisher extends the ROS Publisher so the user only needs to define how data are converted between ROS data types and Soar data types.

class TestOutput : public soar_ros::Publisher<std_msgs::msg::String>
{
public:
  TestOutput(sml::Agent * agent, rclcpp::Node::SharedPtr node, const std::string & topic)
  : Publisher<std_msgs::msg::String>(agent, node, topic) {}
  ~TestOutput() {}
  std_msgs::msg::String parse(sml::Identifier * id) override
  {
    std_msgs::msg::String msg;
    msg.data = id->GetParameterValue("data");
    std::cout << id->GetCommandName() << " " << msg.data << std::endl;
    return msg;
  }
};

Service

In the following example, the ROS2 example AddTwoInts is implemented. Soar adds two integers and sends the result as a ROS2 Service, based on the soar_ros::Service class. The code is from test/test_soar_ros.cpp.

``` cpp
class TestService : public soar_ros::Service<example_interfaces::srv::AddTwoInts>
{
public:
TestService(sml::Agent * agent, rclcpp::Node::SharedPtr node, const std::string & topic)
Service<example_interfaces::srv::AddTwoInts>(agent, node, topic) {} ~TestService() {}

example_interfaces::srv::AddTwoInts::Response::SharedPtr parse(sml::Identifier * id) override { example_interfaces::srv::AddTwoInts::Response::SharedPtr response = std::make_shared<example_interfaces::srv::AddTwoInts::Response>(); auto sum = id->GetParameterValue(“sum”); int32_t num = std::stoi(sum); response.get()->sum = num; RCLCPP_INFO(m_node->get_logger(), “Computed: Sum=%ld”, response.get()->sum);

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package soar_ros

0.0.2 (2024-12-17)

  • ci: add jazzy and rolling tests. Disable flaky client test
  • docs: Add logos and update images.
  • fix: Stop SoarRunner Kernel thread on error.
  • ci: Change docs build to 1.12 Doxygen version.
  • build: Make ament_index_cpp dependency explicit
  • docs: Fix typos and add Test Agent description.
  • build: Fix tests and restrict testing to launch testing.
  • ci: Publish subdirectory of rosdoc2 build process
  • Contributors: Moritz Schmidt, dependabot[bot]

0.0.1 (2024-09-13)

  • Initial commit
  • Contributors: Moritz Schmidt

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged soar_ros at Robotics Stack Exchange