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

Package Summary

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

Repository Summary

Checkout URI https://github.com/carologistics/clips_executive.git
VCS Type git
VCS Version master
Last Updated 2025-06-24
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

Generate CLIPS bindings to use ROS messages, actions and services

Additional Links

No additional links.

Maintainers

  • Tarik Viehmann

Authors

No additional authors.

cx_ros_comm_gen

This package offers a convenient generator that allows to interface with ros nodes via messages, services and action clients/servers.

Usage

The usage involves a few steps:

  1. Generating the bindings
  2. Loading the generated bindings as CLIPS Executive plugins
  3. Using the generated functions and templates

Generating Bindings

The cx_ros_comm_gen package provides cmake functions to generate bindings for ros messages, services and actions via the following macros:

cx_generate_msg_bindings(package msg_name)

cx_generate_srv_bindings(package srv_name)

cx_generate_action_bindings(package action_name)

See the below snippet for an example (taken from the cx_bringup package):

find_package(cx_ros_comm_gen REQUIRED)

# generate bindings to interface with ROS messages, such as std_msgs::msg::String
cx_generate_msg_bindings("std_msgs" "String")

# generate bindings to interface with ROS services, such as std_srvs::srv::SetBool
cx_generate_srv_bindings("std_srvs" "SetBool")

# generate bindings to interface with ROS services, such as example_interfaces::action::Fibonacci
cx_generate_action_bindings("example_interfaces" "Fibonacci")

Note that upon invoking these functions the following dependencies will be used, hence it makes sense to add them to the belonging package.xml:

find_package(${package} REQUIRED)
find_package(pluginlib REQUIRED)
find_package(clips_vendor REQUIRED)
find_package(clips REQUIRED)
find_package(rclcpp_action REQUIRED) # only if action bindings are generated

Invoking these macros causes the following effects:

  1. A cmake custom_command is created that invokes the generator.py script of this package
  2. A shared library for the plugin is created using the generated c++ files from the custom command
  3. A plugin description file is installed so the plugin becomes available via pluginlib

Registering Bindings

Register the generated plugins with the plugin manager from the cx_plugin_manager package via it’s configuration file. For the example above, the configuration is depicted below (the snippet from the cx_bringup package):

clips_plugins_manager:
ros__parameters:
clips_plugins_list: ["cx_std_msgs_string_plugin", "cx_std_srvs_set_bool_plugin", "cx_example_interfaces_fibonacci_plugin"]
clips_plugins:
  cx_std_msgs_string_plugin:
    plugin: "cx::CXStdMsgsStringPlugin"
  cx_std_srvs_set_bool_plugin:
    plugin: "cx::CXStdSrvsSetBoolPlugin"
  cx_example_interfaces_fibonacci_plugin:
    plugin: "cx::CXExampleInterfacesFibonacciPlugin"

Using the Bindings in CLIPS

Given a package (e.g., “std_msgs”) and a message (e.g., “String”) all deftemplates and functions are named using Kebab-case (as expected in CLIPS) and are are prefixed by <package-kebab>-<message-kebab>- (e.g., “std-msgs-string-“).

Message Bindings

Deftemplates
; Asserted by the respective create-subscription function.
; Retracted by the respective destroy-subscription function.
(<package-kebab>-<message-kebab>-subscription (topic ?topic-name-string))

; Asserted by the respective create-publisher function.
; Retracted by the respective destroy-publisher function.
(<package-kebab>-<message-kebab>-publisher (topic ?topic-name-string))

; Asserted by the callback of a subscriber whenever a message arrives.
; Process the message and then call destroy-message before retracting!
(<package-kebab>-<message-kebab>-message (topic ?topic-name-string) (msg-ptr ?msg-ptr))

Functions

```lisp ; Create and destroy publishers and subscribers. (--create-publisher ?topic-name) (--destroy-publisher ?topic-name) (--create-subscription ?topic-name) (--destroy-subscription ?topic-name)

; Publish a given message over a topic. ; Requires the publisher to be created first using create-publisher. (--publish ?msg-ptr ?topic-name)

; Create a message and return a pointer to it (bind ?msg-ptr (--create-message)) ; Destroy a message, call this after publishing a message or processing an incoming message to prevent it from staying in memory. (--destroy-message ?msg-ptr)

; Populate the field of a message. ; If the field is a message, then pass a pointer to that message (by using that respective messages bindings). (--set-field ?msg-ptr ?field-name ?field-value)

; Retrieve a field of a message. ; If the field is a message, then a pointer is returned that can only be processed by using that respective messages bindings.

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cx_ros_comm_gen at Robotics Stack Exchange

Package Summary

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

Repository Summary

Checkout URI https://github.com/carologistics/clips_executive.git
VCS Type git
VCS Version master
Last Updated 2025-06-24
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

Generate CLIPS bindings to use ROS messages, actions and services

Additional Links

No additional links.

Maintainers

  • Tarik Viehmann

Authors

No additional authors.

cx_ros_comm_gen

This package offers a convenient generator that allows to interface with ros nodes via messages, services and action clients/servers.

Usage

The usage involves a few steps:

  1. Generating the bindings
  2. Loading the generated bindings as CLIPS Executive plugins
  3. Using the generated functions and templates

Generating Bindings

The cx_ros_comm_gen package provides cmake functions to generate bindings for ros messages, services and actions via the following macros:

cx_generate_msg_bindings(package msg_name)

cx_generate_srv_bindings(package srv_name)

cx_generate_action_bindings(package action_name)

See the below snippet for an example (taken from the cx_bringup package):

find_package(cx_ros_comm_gen REQUIRED)

# generate bindings to interface with ROS messages, such as std_msgs::msg::String
cx_generate_msg_bindings("std_msgs" "String")

# generate bindings to interface with ROS services, such as std_srvs::srv::SetBool
cx_generate_srv_bindings("std_srvs" "SetBool")

# generate bindings to interface with ROS services, such as example_interfaces::action::Fibonacci
cx_generate_action_bindings("example_interfaces" "Fibonacci")

Note that upon invoking these functions the following dependencies will be used, hence it makes sense to add them to the belonging package.xml:

find_package(${package} REQUIRED)
find_package(pluginlib REQUIRED)
find_package(clips_vendor REQUIRED)
find_package(clips REQUIRED)
find_package(rclcpp_action REQUIRED) # only if action bindings are generated

Invoking these macros causes the following effects:

  1. A cmake custom_command is created that invokes the generator.py script of this package
  2. A shared library for the plugin is created using the generated c++ files from the custom command
  3. A plugin description file is installed so the plugin becomes available via pluginlib

Registering Bindings

Register the generated plugins with the plugin manager from the cx_plugin_manager package via it’s configuration file. For the example above, the configuration is depicted below (the snippet from the cx_bringup package):

clips_plugins_manager:
ros__parameters:
clips_plugins_list: ["cx_std_msgs_string_plugin", "cx_std_srvs_set_bool_plugin", "cx_example_interfaces_fibonacci_plugin"]
clips_plugins:
  cx_std_msgs_string_plugin:
    plugin: "cx::CXStdMsgsStringPlugin"
  cx_std_srvs_set_bool_plugin:
    plugin: "cx::CXStdSrvsSetBoolPlugin"
  cx_example_interfaces_fibonacci_plugin:
    plugin: "cx::CXExampleInterfacesFibonacciPlugin"

Using the Bindings in CLIPS

Given a package (e.g., “std_msgs”) and a message (e.g., “String”) all deftemplates and functions are named using Kebab-case (as expected in CLIPS) and are are prefixed by <package-kebab>-<message-kebab>- (e.g., “std-msgs-string-“).

Message Bindings

Deftemplates
; Asserted by the respective create-subscription function.
; Retracted by the respective destroy-subscription function.
(<package-kebab>-<message-kebab>-subscription (topic ?topic-name-string))

; Asserted by the respective create-publisher function.
; Retracted by the respective destroy-publisher function.
(<package-kebab>-<message-kebab>-publisher (topic ?topic-name-string))

; Asserted by the callback of a subscriber whenever a message arrives.
; Process the message and then call destroy-message before retracting!
(<package-kebab>-<message-kebab>-message (topic ?topic-name-string) (msg-ptr ?msg-ptr))

Functions

```lisp ; Create and destroy publishers and subscribers. (--create-publisher ?topic-name) (--destroy-publisher ?topic-name) (--create-subscription ?topic-name) (--destroy-subscription ?topic-name)

; Publish a given message over a topic. ; Requires the publisher to be created first using create-publisher. (--publish ?msg-ptr ?topic-name)

; Create a message and return a pointer to it (bind ?msg-ptr (--create-message)) ; Destroy a message, call this after publishing a message or processing an incoming message to prevent it from staying in memory. (--destroy-message ?msg-ptr)

; Populate the field of a message. ; If the field is a message, then pass a pointer to that message (by using that respective messages bindings). (--set-field ?msg-ptr ?field-name ?field-value)

; Retrieve a field of a message. ; If the field is a message, then a pointer is returned that can only be processed by using that respective messages bindings.

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cx_ros_comm_gen at Robotics Stack Exchange

Package Summary

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

Repository Summary

Checkout URI https://github.com/carologistics/clips_executive.git
VCS Type git
VCS Version master
Last Updated 2025-06-24
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

Generate CLIPS bindings to use ROS messages, actions and services

Additional Links

No additional links.

Maintainers

  • Tarik Viehmann

Authors

No additional authors.

cx_ros_comm_gen

This package offers a convenient generator that allows to interface with ros nodes via messages, services and action clients/servers.

Usage

The usage involves a few steps:

  1. Generating the bindings
  2. Loading the generated bindings as CLIPS Executive plugins
  3. Using the generated functions and templates

Generating Bindings

The cx_ros_comm_gen package provides cmake functions to generate bindings for ros messages, services and actions via the following macros:

cx_generate_msg_bindings(package msg_name)

cx_generate_srv_bindings(package srv_name)

cx_generate_action_bindings(package action_name)

See the below snippet for an example (taken from the cx_bringup package):

find_package(cx_ros_comm_gen REQUIRED)

# generate bindings to interface with ROS messages, such as std_msgs::msg::String
cx_generate_msg_bindings("std_msgs" "String")

# generate bindings to interface with ROS services, such as std_srvs::srv::SetBool
cx_generate_srv_bindings("std_srvs" "SetBool")

# generate bindings to interface with ROS services, such as example_interfaces::action::Fibonacci
cx_generate_action_bindings("example_interfaces" "Fibonacci")

Note that upon invoking these functions the following dependencies will be used, hence it makes sense to add them to the belonging package.xml:

find_package(${package} REQUIRED)
find_package(pluginlib REQUIRED)
find_package(clips_vendor REQUIRED)
find_package(clips REQUIRED)
find_package(rclcpp_action REQUIRED) # only if action bindings are generated

Invoking these macros causes the following effects:

  1. A cmake custom_command is created that invokes the generator.py script of this package
  2. A shared library for the plugin is created using the generated c++ files from the custom command
  3. A plugin description file is installed so the plugin becomes available via pluginlib

Registering Bindings

Register the generated plugins with the plugin manager from the cx_plugin_manager package via it’s configuration file. For the example above, the configuration is depicted below (the snippet from the cx_bringup package):

clips_plugins_manager:
ros__parameters:
clips_plugins_list: ["cx_std_msgs_string_plugin", "cx_std_srvs_set_bool_plugin", "cx_example_interfaces_fibonacci_plugin"]
clips_plugins:
  cx_std_msgs_string_plugin:
    plugin: "cx::CXStdMsgsStringPlugin"
  cx_std_srvs_set_bool_plugin:
    plugin: "cx::CXStdSrvsSetBoolPlugin"
  cx_example_interfaces_fibonacci_plugin:
    plugin: "cx::CXExampleInterfacesFibonacciPlugin"

Using the Bindings in CLIPS

Given a package (e.g., “std_msgs”) and a message (e.g., “String”) all deftemplates and functions are named using Kebab-case (as expected in CLIPS) and are are prefixed by <package-kebab>-<message-kebab>- (e.g., “std-msgs-string-“).

Message Bindings

Deftemplates
; Asserted by the respective create-subscription function.
; Retracted by the respective destroy-subscription function.
(<package-kebab>-<message-kebab>-subscription (topic ?topic-name-string))

; Asserted by the respective create-publisher function.
; Retracted by the respective destroy-publisher function.
(<package-kebab>-<message-kebab>-publisher (topic ?topic-name-string))

; Asserted by the callback of a subscriber whenever a message arrives.
; Process the message and then call destroy-message before retracting!
(<package-kebab>-<message-kebab>-message (topic ?topic-name-string) (msg-ptr ?msg-ptr))

Functions

```lisp ; Create and destroy publishers and subscribers. (--create-publisher ?topic-name) (--destroy-publisher ?topic-name) (--create-subscription ?topic-name) (--destroy-subscription ?topic-name)

; Publish a given message over a topic. ; Requires the publisher to be created first using create-publisher. (--publish ?msg-ptr ?topic-name)

; Create a message and return a pointer to it (bind ?msg-ptr (--create-message)) ; Destroy a message, call this after publishing a message or processing an incoming message to prevent it from staying in memory. (--destroy-message ?msg-ptr)

; Populate the field of a message. ; If the field is a message, then pass a pointer to that message (by using that respective messages bindings). (--set-field ?msg-ptr ?field-name ?field-value)

; Retrieve a field of a message. ; If the field is a message, then a pointer is returned that can only be processed by using that respective messages bindings.

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cx_ros_comm_gen at Robotics Stack Exchange

Package Summary

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

Repository Summary

Checkout URI https://github.com/carologistics/clips_executive.git
VCS Type git
VCS Version master
Last Updated 2025-06-24
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

Generate CLIPS bindings to use ROS messages, actions and services

Additional Links

No additional links.

Maintainers

  • Tarik Viehmann

Authors

No additional authors.

cx_ros_comm_gen

This package offers a convenient generator that allows to interface with ros nodes via messages, services and action clients/servers.

Usage

The usage involves a few steps:

  1. Generating the bindings
  2. Loading the generated bindings as CLIPS Executive plugins
  3. Using the generated functions and templates

Generating Bindings

The cx_ros_comm_gen package provides cmake functions to generate bindings for ros messages, services and actions via the following macros:

cx_generate_msg_bindings(package msg_name)

cx_generate_srv_bindings(package srv_name)

cx_generate_action_bindings(package action_name)

See the below snippet for an example (taken from the cx_bringup package):

find_package(cx_ros_comm_gen REQUIRED)

# generate bindings to interface with ROS messages, such as std_msgs::msg::String
cx_generate_msg_bindings("std_msgs" "String")

# generate bindings to interface with ROS services, such as std_srvs::srv::SetBool
cx_generate_srv_bindings("std_srvs" "SetBool")

# generate bindings to interface with ROS services, such as example_interfaces::action::Fibonacci
cx_generate_action_bindings("example_interfaces" "Fibonacci")

Note that upon invoking these functions the following dependencies will be used, hence it makes sense to add them to the belonging package.xml:

find_package(${package} REQUIRED)
find_package(pluginlib REQUIRED)
find_package(clips_vendor REQUIRED)
find_package(clips REQUIRED)
find_package(rclcpp_action REQUIRED) # only if action bindings are generated

Invoking these macros causes the following effects:

  1. A cmake custom_command is created that invokes the generator.py script of this package
  2. A shared library for the plugin is created using the generated c++ files from the custom command
  3. A plugin description file is installed so the plugin becomes available via pluginlib

Registering Bindings

Register the generated plugins with the plugin manager from the cx_plugin_manager package via it’s configuration file. For the example above, the configuration is depicted below (the snippet from the cx_bringup package):

clips_plugins_manager:
ros__parameters:
clips_plugins_list: ["cx_std_msgs_string_plugin", "cx_std_srvs_set_bool_plugin", "cx_example_interfaces_fibonacci_plugin"]
clips_plugins:
  cx_std_msgs_string_plugin:
    plugin: "cx::CXStdMsgsStringPlugin"
  cx_std_srvs_set_bool_plugin:
    plugin: "cx::CXStdSrvsSetBoolPlugin"
  cx_example_interfaces_fibonacci_plugin:
    plugin: "cx::CXExampleInterfacesFibonacciPlugin"

Using the Bindings in CLIPS

Given a package (e.g., “std_msgs”) and a message (e.g., “String”) all deftemplates and functions are named using Kebab-case (as expected in CLIPS) and are are prefixed by <package-kebab>-<message-kebab>- (e.g., “std-msgs-string-“).

Message Bindings

Deftemplates
; Asserted by the respective create-subscription function.
; Retracted by the respective destroy-subscription function.
(<package-kebab>-<message-kebab>-subscription (topic ?topic-name-string))

; Asserted by the respective create-publisher function.
; Retracted by the respective destroy-publisher function.
(<package-kebab>-<message-kebab>-publisher (topic ?topic-name-string))

; Asserted by the callback of a subscriber whenever a message arrives.
; Process the message and then call destroy-message before retracting!
(<package-kebab>-<message-kebab>-message (topic ?topic-name-string) (msg-ptr ?msg-ptr))

Functions

```lisp ; Create and destroy publishers and subscribers. (--create-publisher ?topic-name) (--destroy-publisher ?topic-name) (--create-subscription ?topic-name) (--destroy-subscription ?topic-name)

; Publish a given message over a topic. ; Requires the publisher to be created first using create-publisher. (--publish ?msg-ptr ?topic-name)

; Create a message and return a pointer to it (bind ?msg-ptr (--create-message)) ; Destroy a message, call this after publishing a message or processing an incoming message to prevent it from staying in memory. (--destroy-message ?msg-ptr)

; Populate the field of a message. ; If the field is a message, then pass a pointer to that message (by using that respective messages bindings). (--set-field ?msg-ptr ?field-name ?field-value)

; Retrieve a field of a message. ; If the field is a message, then a pointer is returned that can only be processed by using that respective messages bindings.

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cx_ros_comm_gen at Robotics Stack Exchange

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

Package Summary

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

Repository Summary

Checkout URI https://github.com/carologistics/clips_executive.git
VCS Type git
VCS Version master
Last Updated 2025-06-24
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

Generate CLIPS bindings to use ROS messages, actions and services

Additional Links

No additional links.

Maintainers

  • Tarik Viehmann

Authors

No additional authors.

cx_ros_comm_gen

This package offers a convenient generator that allows to interface with ros nodes via messages, services and action clients/servers.

Usage

The usage involves a few steps:

  1. Generating the bindings
  2. Loading the generated bindings as CLIPS Executive plugins
  3. Using the generated functions and templates

Generating Bindings

The cx_ros_comm_gen package provides cmake functions to generate bindings for ros messages, services and actions via the following macros:

cx_generate_msg_bindings(package msg_name)

cx_generate_srv_bindings(package srv_name)

cx_generate_action_bindings(package action_name)

See the below snippet for an example (taken from the cx_bringup package):

find_package(cx_ros_comm_gen REQUIRED)

# generate bindings to interface with ROS messages, such as std_msgs::msg::String
cx_generate_msg_bindings("std_msgs" "String")

# generate bindings to interface with ROS services, such as std_srvs::srv::SetBool
cx_generate_srv_bindings("std_srvs" "SetBool")

# generate bindings to interface with ROS services, such as example_interfaces::action::Fibonacci
cx_generate_action_bindings("example_interfaces" "Fibonacci")

Note that upon invoking these functions the following dependencies will be used, hence it makes sense to add them to the belonging package.xml:

find_package(${package} REQUIRED)
find_package(pluginlib REQUIRED)
find_package(clips_vendor REQUIRED)
find_package(clips REQUIRED)
find_package(rclcpp_action REQUIRED) # only if action bindings are generated

Invoking these macros causes the following effects:

  1. A cmake custom_command is created that invokes the generator.py script of this package
  2. A shared library for the plugin is created using the generated c++ files from the custom command
  3. A plugin description file is installed so the plugin becomes available via pluginlib

Registering Bindings

Register the generated plugins with the plugin manager from the cx_plugin_manager package via it’s configuration file. For the example above, the configuration is depicted below (the snippet from the cx_bringup package):

clips_plugins_manager:
ros__parameters:
clips_plugins_list: ["cx_std_msgs_string_plugin", "cx_std_srvs_set_bool_plugin", "cx_example_interfaces_fibonacci_plugin"]
clips_plugins:
  cx_std_msgs_string_plugin:
    plugin: "cx::CXStdMsgsStringPlugin"
  cx_std_srvs_set_bool_plugin:
    plugin: "cx::CXStdSrvsSetBoolPlugin"
  cx_example_interfaces_fibonacci_plugin:
    plugin: "cx::CXExampleInterfacesFibonacciPlugin"

Using the Bindings in CLIPS

Given a package (e.g., “std_msgs”) and a message (e.g., “String”) all deftemplates and functions are named using Kebab-case (as expected in CLIPS) and are are prefixed by <package-kebab>-<message-kebab>- (e.g., “std-msgs-string-“).

Message Bindings

Deftemplates
; Asserted by the respective create-subscription function.
; Retracted by the respective destroy-subscription function.
(<package-kebab>-<message-kebab>-subscription (topic ?topic-name-string))

; Asserted by the respective create-publisher function.
; Retracted by the respective destroy-publisher function.
(<package-kebab>-<message-kebab>-publisher (topic ?topic-name-string))

; Asserted by the callback of a subscriber whenever a message arrives.
; Process the message and then call destroy-message before retracting!
(<package-kebab>-<message-kebab>-message (topic ?topic-name-string) (msg-ptr ?msg-ptr))

Functions

```lisp ; Create and destroy publishers and subscribers. (--create-publisher ?topic-name) (--destroy-publisher ?topic-name) (--create-subscription ?topic-name) (--destroy-subscription ?topic-name)

; Publish a given message over a topic. ; Requires the publisher to be created first using create-publisher. (--publish ?msg-ptr ?topic-name)

; Create a message and return a pointer to it (bind ?msg-ptr (--create-message)) ; Destroy a message, call this after publishing a message or processing an incoming message to prevent it from staying in memory. (--destroy-message ?msg-ptr)

; Populate the field of a message. ; If the field is a message, then pass a pointer to that message (by using that respective messages bindings). (--set-field ?msg-ptr ?field-name ?field-value)

; Retrieve a field of a message. ; If the field is a message, then a pointer is returned that can only be processed by using that respective messages bindings.

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cx_ros_comm_gen at Robotics Stack Exchange

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

Package Summary

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

Repository Summary

Checkout URI https://github.com/carologistics/clips_executive.git
VCS Type git
VCS Version master
Last Updated 2025-06-24
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

Generate CLIPS bindings to use ROS messages, actions and services

Additional Links

No additional links.

Maintainers

  • Tarik Viehmann

Authors

No additional authors.

cx_ros_comm_gen

This package offers a convenient generator that allows to interface with ros nodes via messages, services and action clients/servers.

Usage

The usage involves a few steps:

  1. Generating the bindings
  2. Loading the generated bindings as CLIPS Executive plugins
  3. Using the generated functions and templates

Generating Bindings

The cx_ros_comm_gen package provides cmake functions to generate bindings for ros messages, services and actions via the following macros:

cx_generate_msg_bindings(package msg_name)

cx_generate_srv_bindings(package srv_name)

cx_generate_action_bindings(package action_name)

See the below snippet for an example (taken from the cx_bringup package):

find_package(cx_ros_comm_gen REQUIRED)

# generate bindings to interface with ROS messages, such as std_msgs::msg::String
cx_generate_msg_bindings("std_msgs" "String")

# generate bindings to interface with ROS services, such as std_srvs::srv::SetBool
cx_generate_srv_bindings("std_srvs" "SetBool")

# generate bindings to interface with ROS services, such as example_interfaces::action::Fibonacci
cx_generate_action_bindings("example_interfaces" "Fibonacci")

Note that upon invoking these functions the following dependencies will be used, hence it makes sense to add them to the belonging package.xml:

find_package(${package} REQUIRED)
find_package(pluginlib REQUIRED)
find_package(clips_vendor REQUIRED)
find_package(clips REQUIRED)
find_package(rclcpp_action REQUIRED) # only if action bindings are generated

Invoking these macros causes the following effects:

  1. A cmake custom_command is created that invokes the generator.py script of this package
  2. A shared library for the plugin is created using the generated c++ files from the custom command
  3. A plugin description file is installed so the plugin becomes available via pluginlib

Registering Bindings

Register the generated plugins with the plugin manager from the cx_plugin_manager package via it’s configuration file. For the example above, the configuration is depicted below (the snippet from the cx_bringup package):

clips_plugins_manager:
ros__parameters:
clips_plugins_list: ["cx_std_msgs_string_plugin", "cx_std_srvs_set_bool_plugin", "cx_example_interfaces_fibonacci_plugin"]
clips_plugins:
  cx_std_msgs_string_plugin:
    plugin: "cx::CXStdMsgsStringPlugin"
  cx_std_srvs_set_bool_plugin:
    plugin: "cx::CXStdSrvsSetBoolPlugin"
  cx_example_interfaces_fibonacci_plugin:
    plugin: "cx::CXExampleInterfacesFibonacciPlugin"

Using the Bindings in CLIPS

Given a package (e.g., “std_msgs”) and a message (e.g., “String”) all deftemplates and functions are named using Kebab-case (as expected in CLIPS) and are are prefixed by <package-kebab>-<message-kebab>- (e.g., “std-msgs-string-“).

Message Bindings

Deftemplates
; Asserted by the respective create-subscription function.
; Retracted by the respective destroy-subscription function.
(<package-kebab>-<message-kebab>-subscription (topic ?topic-name-string))

; Asserted by the respective create-publisher function.
; Retracted by the respective destroy-publisher function.
(<package-kebab>-<message-kebab>-publisher (topic ?topic-name-string))

; Asserted by the callback of a subscriber whenever a message arrives.
; Process the message and then call destroy-message before retracting!
(<package-kebab>-<message-kebab>-message (topic ?topic-name-string) (msg-ptr ?msg-ptr))

Functions

```lisp ; Create and destroy publishers and subscribers. (--create-publisher ?topic-name) (--destroy-publisher ?topic-name) (--create-subscription ?topic-name) (--destroy-subscription ?topic-name)

; Publish a given message over a topic. ; Requires the publisher to be created first using create-publisher. (--publish ?msg-ptr ?topic-name)

; Create a message and return a pointer to it (bind ?msg-ptr (--create-message)) ; Destroy a message, call this after publishing a message or processing an incoming message to prevent it from staying in memory. (--destroy-message ?msg-ptr)

; Populate the field of a message. ; If the field is a message, then pass a pointer to that message (by using that respective messages bindings). (--set-field ?msg-ptr ?field-name ?field-value)

; Retrieve a field of a message. ; If the field is a message, then a pointer is returned that can only be processed by using that respective messages bindings.

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cx_ros_comm_gen at Robotics Stack Exchange

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

Package Summary

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

Repository Summary

Checkout URI https://github.com/carologistics/clips_executive.git
VCS Type git
VCS Version master
Last Updated 2025-06-24
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

Generate CLIPS bindings to use ROS messages, actions and services

Additional Links

No additional links.

Maintainers

  • Tarik Viehmann

Authors

No additional authors.

cx_ros_comm_gen

This package offers a convenient generator that allows to interface with ros nodes via messages, services and action clients/servers.

Usage

The usage involves a few steps:

  1. Generating the bindings
  2. Loading the generated bindings as CLIPS Executive plugins
  3. Using the generated functions and templates

Generating Bindings

The cx_ros_comm_gen package provides cmake functions to generate bindings for ros messages, services and actions via the following macros:

cx_generate_msg_bindings(package msg_name)

cx_generate_srv_bindings(package srv_name)

cx_generate_action_bindings(package action_name)

See the below snippet for an example (taken from the cx_bringup package):

find_package(cx_ros_comm_gen REQUIRED)

# generate bindings to interface with ROS messages, such as std_msgs::msg::String
cx_generate_msg_bindings("std_msgs" "String")

# generate bindings to interface with ROS services, such as std_srvs::srv::SetBool
cx_generate_srv_bindings("std_srvs" "SetBool")

# generate bindings to interface with ROS services, such as example_interfaces::action::Fibonacci
cx_generate_action_bindings("example_interfaces" "Fibonacci")

Note that upon invoking these functions the following dependencies will be used, hence it makes sense to add them to the belonging package.xml:

find_package(${package} REQUIRED)
find_package(pluginlib REQUIRED)
find_package(clips_vendor REQUIRED)
find_package(clips REQUIRED)
find_package(rclcpp_action REQUIRED) # only if action bindings are generated

Invoking these macros causes the following effects:

  1. A cmake custom_command is created that invokes the generator.py script of this package
  2. A shared library for the plugin is created using the generated c++ files from the custom command
  3. A plugin description file is installed so the plugin becomes available via pluginlib

Registering Bindings

Register the generated plugins with the plugin manager from the cx_plugin_manager package via it’s configuration file. For the example above, the configuration is depicted below (the snippet from the cx_bringup package):

clips_plugins_manager:
ros__parameters:
clips_plugins_list: ["cx_std_msgs_string_plugin", "cx_std_srvs_set_bool_plugin", "cx_example_interfaces_fibonacci_plugin"]
clips_plugins:
  cx_std_msgs_string_plugin:
    plugin: "cx::CXStdMsgsStringPlugin"
  cx_std_srvs_set_bool_plugin:
    plugin: "cx::CXStdSrvsSetBoolPlugin"
  cx_example_interfaces_fibonacci_plugin:
    plugin: "cx::CXExampleInterfacesFibonacciPlugin"

Using the Bindings in CLIPS

Given a package (e.g., “std_msgs”) and a message (e.g., “String”) all deftemplates and functions are named using Kebab-case (as expected in CLIPS) and are are prefixed by <package-kebab>-<message-kebab>- (e.g., “std-msgs-string-“).

Message Bindings

Deftemplates
; Asserted by the respective create-subscription function.
; Retracted by the respective destroy-subscription function.
(<package-kebab>-<message-kebab>-subscription (topic ?topic-name-string))

; Asserted by the respective create-publisher function.
; Retracted by the respective destroy-publisher function.
(<package-kebab>-<message-kebab>-publisher (topic ?topic-name-string))

; Asserted by the callback of a subscriber whenever a message arrives.
; Process the message and then call destroy-message before retracting!
(<package-kebab>-<message-kebab>-message (topic ?topic-name-string) (msg-ptr ?msg-ptr))

Functions

```lisp ; Create and destroy publishers and subscribers. (--create-publisher ?topic-name) (--destroy-publisher ?topic-name) (--create-subscription ?topic-name) (--destroy-subscription ?topic-name)

; Publish a given message over a topic. ; Requires the publisher to be created first using create-publisher. (--publish ?msg-ptr ?topic-name)

; Create a message and return a pointer to it (bind ?msg-ptr (--create-message)) ; Destroy a message, call this after publishing a message or processing an incoming message to prevent it from staying in memory. (--destroy-message ?msg-ptr)

; Populate the field of a message. ; If the field is a message, then pass a pointer to that message (by using that respective messages bindings). (--set-field ?msg-ptr ?field-name ?field-value)

; Retrieve a field of a message. ; If the field is a message, then a pointer is returned that can only be processed by using that respective messages bindings.

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cx_ros_comm_gen at Robotics Stack Exchange

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

Package Summary

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

Repository Summary

Checkout URI https://github.com/carologistics/clips_executive.git
VCS Type git
VCS Version master
Last Updated 2025-06-24
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

Generate CLIPS bindings to use ROS messages, actions and services

Additional Links

No additional links.

Maintainers

  • Tarik Viehmann

Authors

No additional authors.

cx_ros_comm_gen

This package offers a convenient generator that allows to interface with ros nodes via messages, services and action clients/servers.

Usage

The usage involves a few steps:

  1. Generating the bindings
  2. Loading the generated bindings as CLIPS Executive plugins
  3. Using the generated functions and templates

Generating Bindings

The cx_ros_comm_gen package provides cmake functions to generate bindings for ros messages, services and actions via the following macros:

cx_generate_msg_bindings(package msg_name)

cx_generate_srv_bindings(package srv_name)

cx_generate_action_bindings(package action_name)

See the below snippet for an example (taken from the cx_bringup package):

find_package(cx_ros_comm_gen REQUIRED)

# generate bindings to interface with ROS messages, such as std_msgs::msg::String
cx_generate_msg_bindings("std_msgs" "String")

# generate bindings to interface with ROS services, such as std_srvs::srv::SetBool
cx_generate_srv_bindings("std_srvs" "SetBool")

# generate bindings to interface with ROS services, such as example_interfaces::action::Fibonacci
cx_generate_action_bindings("example_interfaces" "Fibonacci")

Note that upon invoking these functions the following dependencies will be used, hence it makes sense to add them to the belonging package.xml:

find_package(${package} REQUIRED)
find_package(pluginlib REQUIRED)
find_package(clips_vendor REQUIRED)
find_package(clips REQUIRED)
find_package(rclcpp_action REQUIRED) # only if action bindings are generated

Invoking these macros causes the following effects:

  1. A cmake custom_command is created that invokes the generator.py script of this package
  2. A shared library for the plugin is created using the generated c++ files from the custom command
  3. A plugin description file is installed so the plugin becomes available via pluginlib

Registering Bindings

Register the generated plugins with the plugin manager from the cx_plugin_manager package via it’s configuration file. For the example above, the configuration is depicted below (the snippet from the cx_bringup package):

clips_plugins_manager:
ros__parameters:
clips_plugins_list: ["cx_std_msgs_string_plugin", "cx_std_srvs_set_bool_plugin", "cx_example_interfaces_fibonacci_plugin"]
clips_plugins:
  cx_std_msgs_string_plugin:
    plugin: "cx::CXStdMsgsStringPlugin"
  cx_std_srvs_set_bool_plugin:
    plugin: "cx::CXStdSrvsSetBoolPlugin"
  cx_example_interfaces_fibonacci_plugin:
    plugin: "cx::CXExampleInterfacesFibonacciPlugin"

Using the Bindings in CLIPS

Given a package (e.g., “std_msgs”) and a message (e.g., “String”) all deftemplates and functions are named using Kebab-case (as expected in CLIPS) and are are prefixed by <package-kebab>-<message-kebab>- (e.g., “std-msgs-string-“).

Message Bindings

Deftemplates
; Asserted by the respective create-subscription function.
; Retracted by the respective destroy-subscription function.
(<package-kebab>-<message-kebab>-subscription (topic ?topic-name-string))

; Asserted by the respective create-publisher function.
; Retracted by the respective destroy-publisher function.
(<package-kebab>-<message-kebab>-publisher (topic ?topic-name-string))

; Asserted by the callback of a subscriber whenever a message arrives.
; Process the message and then call destroy-message before retracting!
(<package-kebab>-<message-kebab>-message (topic ?topic-name-string) (msg-ptr ?msg-ptr))

Functions

```lisp ; Create and destroy publishers and subscribers. (--create-publisher ?topic-name) (--destroy-publisher ?topic-name) (--create-subscription ?topic-name) (--destroy-subscription ?topic-name)

; Publish a given message over a topic. ; Requires the publisher to be created first using create-publisher. (--publish ?msg-ptr ?topic-name)

; Create a message and return a pointer to it (bind ?msg-ptr (--create-message)) ; Destroy a message, call this after publishing a message or processing an incoming message to prevent it from staying in memory. (--destroy-message ?msg-ptr)

; Populate the field of a message. ; If the field is a message, then pass a pointer to that message (by using that respective messages bindings). (--set-field ?msg-ptr ?field-name ?field-value)

; Retrieve a field of a message. ; If the field is a message, then a pointer is returned that can only be processed by using that respective messages bindings.

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cx_ros_comm_gen at Robotics Stack Exchange

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

Package Summary

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

Repository Summary

Checkout URI https://github.com/carologistics/clips_executive.git
VCS Type git
VCS Version master
Last Updated 2025-06-24
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

Generate CLIPS bindings to use ROS messages, actions and services

Additional Links

No additional links.

Maintainers

  • Tarik Viehmann

Authors

No additional authors.

cx_ros_comm_gen

This package offers a convenient generator that allows to interface with ros nodes via messages, services and action clients/servers.

Usage

The usage involves a few steps:

  1. Generating the bindings
  2. Loading the generated bindings as CLIPS Executive plugins
  3. Using the generated functions and templates

Generating Bindings

The cx_ros_comm_gen package provides cmake functions to generate bindings for ros messages, services and actions via the following macros:

cx_generate_msg_bindings(package msg_name)

cx_generate_srv_bindings(package srv_name)

cx_generate_action_bindings(package action_name)

See the below snippet for an example (taken from the cx_bringup package):

find_package(cx_ros_comm_gen REQUIRED)

# generate bindings to interface with ROS messages, such as std_msgs::msg::String
cx_generate_msg_bindings("std_msgs" "String")

# generate bindings to interface with ROS services, such as std_srvs::srv::SetBool
cx_generate_srv_bindings("std_srvs" "SetBool")

# generate bindings to interface with ROS services, such as example_interfaces::action::Fibonacci
cx_generate_action_bindings("example_interfaces" "Fibonacci")

Note that upon invoking these functions the following dependencies will be used, hence it makes sense to add them to the belonging package.xml:

find_package(${package} REQUIRED)
find_package(pluginlib REQUIRED)
find_package(clips_vendor REQUIRED)
find_package(clips REQUIRED)
find_package(rclcpp_action REQUIRED) # only if action bindings are generated

Invoking these macros causes the following effects:

  1. A cmake custom_command is created that invokes the generator.py script of this package
  2. A shared library for the plugin is created using the generated c++ files from the custom command
  3. A plugin description file is installed so the plugin becomes available via pluginlib

Registering Bindings

Register the generated plugins with the plugin manager from the cx_plugin_manager package via it’s configuration file. For the example above, the configuration is depicted below (the snippet from the cx_bringup package):

clips_plugins_manager:
ros__parameters:
clips_plugins_list: ["cx_std_msgs_string_plugin", "cx_std_srvs_set_bool_plugin", "cx_example_interfaces_fibonacci_plugin"]
clips_plugins:
  cx_std_msgs_string_plugin:
    plugin: "cx::CXStdMsgsStringPlugin"
  cx_std_srvs_set_bool_plugin:
    plugin: "cx::CXStdSrvsSetBoolPlugin"
  cx_example_interfaces_fibonacci_plugin:
    plugin: "cx::CXExampleInterfacesFibonacciPlugin"

Using the Bindings in CLIPS

Given a package (e.g., “std_msgs”) and a message (e.g., “String”) all deftemplates and functions are named using Kebab-case (as expected in CLIPS) and are are prefixed by <package-kebab>-<message-kebab>- (e.g., “std-msgs-string-“).

Message Bindings

Deftemplates
; Asserted by the respective create-subscription function.
; Retracted by the respective destroy-subscription function.
(<package-kebab>-<message-kebab>-subscription (topic ?topic-name-string))

; Asserted by the respective create-publisher function.
; Retracted by the respective destroy-publisher function.
(<package-kebab>-<message-kebab>-publisher (topic ?topic-name-string))

; Asserted by the callback of a subscriber whenever a message arrives.
; Process the message and then call destroy-message before retracting!
(<package-kebab>-<message-kebab>-message (topic ?topic-name-string) (msg-ptr ?msg-ptr))

Functions

```lisp ; Create and destroy publishers and subscribers. (--create-publisher ?topic-name) (--destroy-publisher ?topic-name) (--create-subscription ?topic-name) (--destroy-subscription ?topic-name)

; Publish a given message over a topic. ; Requires the publisher to be created first using create-publisher. (--publish ?msg-ptr ?topic-name)

; Create a message and return a pointer to it (bind ?msg-ptr (--create-message)) ; Destroy a message, call this after publishing a message or processing an incoming message to prevent it from staying in memory. (--destroy-message ?msg-ptr)

; Populate the field of a message. ; If the field is a message, then pass a pointer to that message (by using that respective messages bindings). (--set-field ?msg-ptr ?field-name ?field-value)

; Retrieve a field of a message. ; If the field is a message, then a pointer is returned that can only be processed by using that respective messages bindings.

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cx_ros_comm_gen at Robotics Stack Exchange

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

Package Summary

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

Repository Summary

Checkout URI https://github.com/carologistics/clips_executive.git
VCS Type git
VCS Version master
Last Updated 2025-06-24
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

Generate CLIPS bindings to use ROS messages, actions and services

Additional Links

No additional links.

Maintainers

  • Tarik Viehmann

Authors

No additional authors.

cx_ros_comm_gen

This package offers a convenient generator that allows to interface with ros nodes via messages, services and action clients/servers.

Usage

The usage involves a few steps:

  1. Generating the bindings
  2. Loading the generated bindings as CLIPS Executive plugins
  3. Using the generated functions and templates

Generating Bindings

The cx_ros_comm_gen package provides cmake functions to generate bindings for ros messages, services and actions via the following macros:

cx_generate_msg_bindings(package msg_name)

cx_generate_srv_bindings(package srv_name)

cx_generate_action_bindings(package action_name)

See the below snippet for an example (taken from the cx_bringup package):

find_package(cx_ros_comm_gen REQUIRED)

# generate bindings to interface with ROS messages, such as std_msgs::msg::String
cx_generate_msg_bindings("std_msgs" "String")

# generate bindings to interface with ROS services, such as std_srvs::srv::SetBool
cx_generate_srv_bindings("std_srvs" "SetBool")

# generate bindings to interface with ROS services, such as example_interfaces::action::Fibonacci
cx_generate_action_bindings("example_interfaces" "Fibonacci")

Note that upon invoking these functions the following dependencies will be used, hence it makes sense to add them to the belonging package.xml:

find_package(${package} REQUIRED)
find_package(pluginlib REQUIRED)
find_package(clips_vendor REQUIRED)
find_package(clips REQUIRED)
find_package(rclcpp_action REQUIRED) # only if action bindings are generated

Invoking these macros causes the following effects:

  1. A cmake custom_command is created that invokes the generator.py script of this package
  2. A shared library for the plugin is created using the generated c++ files from the custom command
  3. A plugin description file is installed so the plugin becomes available via pluginlib

Registering Bindings

Register the generated plugins with the plugin manager from the cx_plugin_manager package via it’s configuration file. For the example above, the configuration is depicted below (the snippet from the cx_bringup package):

clips_plugins_manager:
ros__parameters:
clips_plugins_list: ["cx_std_msgs_string_plugin", "cx_std_srvs_set_bool_plugin", "cx_example_interfaces_fibonacci_plugin"]
clips_plugins:
  cx_std_msgs_string_plugin:
    plugin: "cx::CXStdMsgsStringPlugin"
  cx_std_srvs_set_bool_plugin:
    plugin: "cx::CXStdSrvsSetBoolPlugin"
  cx_example_interfaces_fibonacci_plugin:
    plugin: "cx::CXExampleInterfacesFibonacciPlugin"

Using the Bindings in CLIPS

Given a package (e.g., “std_msgs”) and a message (e.g., “String”) all deftemplates and functions are named using Kebab-case (as expected in CLIPS) and are are prefixed by <package-kebab>-<message-kebab>- (e.g., “std-msgs-string-“).

Message Bindings

Deftemplates
; Asserted by the respective create-subscription function.
; Retracted by the respective destroy-subscription function.
(<package-kebab>-<message-kebab>-subscription (topic ?topic-name-string))

; Asserted by the respective create-publisher function.
; Retracted by the respective destroy-publisher function.
(<package-kebab>-<message-kebab>-publisher (topic ?topic-name-string))

; Asserted by the callback of a subscriber whenever a message arrives.
; Process the message and then call destroy-message before retracting!
(<package-kebab>-<message-kebab>-message (topic ?topic-name-string) (msg-ptr ?msg-ptr))

Functions

```lisp ; Create and destroy publishers and subscribers. (--create-publisher ?topic-name) (--destroy-publisher ?topic-name) (--create-subscription ?topic-name) (--destroy-subscription ?topic-name)

; Publish a given message over a topic. ; Requires the publisher to be created first using create-publisher. (--publish ?msg-ptr ?topic-name)

; Create a message and return a pointer to it (bind ?msg-ptr (--create-message)) ; Destroy a message, call this after publishing a message or processing an incoming message to prevent it from staying in memory. (--destroy-message ?msg-ptr)

; Populate the field of a message. ; If the field is a message, then pass a pointer to that message (by using that respective messages bindings). (--set-field ?msg-ptr ?field-name ?field-value)

; Retrieve a field of a message. ; If the field is a message, then a pointer is returned that can only be processed by using that respective messages bindings.

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cx_ros_comm_gen at Robotics Stack Exchange

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

Package Summary

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

Repository Summary

Checkout URI https://github.com/carologistics/clips_executive.git
VCS Type git
VCS Version master
Last Updated 2025-06-24
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

Generate CLIPS bindings to use ROS messages, actions and services

Additional Links

No additional links.

Maintainers

  • Tarik Viehmann

Authors

No additional authors.

cx_ros_comm_gen

This package offers a convenient generator that allows to interface with ros nodes via messages, services and action clients/servers.

Usage

The usage involves a few steps:

  1. Generating the bindings
  2. Loading the generated bindings as CLIPS Executive plugins
  3. Using the generated functions and templates

Generating Bindings

The cx_ros_comm_gen package provides cmake functions to generate bindings for ros messages, services and actions via the following macros:

cx_generate_msg_bindings(package msg_name)

cx_generate_srv_bindings(package srv_name)

cx_generate_action_bindings(package action_name)

See the below snippet for an example (taken from the cx_bringup package):

find_package(cx_ros_comm_gen REQUIRED)

# generate bindings to interface with ROS messages, such as std_msgs::msg::String
cx_generate_msg_bindings("std_msgs" "String")

# generate bindings to interface with ROS services, such as std_srvs::srv::SetBool
cx_generate_srv_bindings("std_srvs" "SetBool")

# generate bindings to interface with ROS services, such as example_interfaces::action::Fibonacci
cx_generate_action_bindings("example_interfaces" "Fibonacci")

Note that upon invoking these functions the following dependencies will be used, hence it makes sense to add them to the belonging package.xml:

find_package(${package} REQUIRED)
find_package(pluginlib REQUIRED)
find_package(clips_vendor REQUIRED)
find_package(clips REQUIRED)
find_package(rclcpp_action REQUIRED) # only if action bindings are generated

Invoking these macros causes the following effects:

  1. A cmake custom_command is created that invokes the generator.py script of this package
  2. A shared library for the plugin is created using the generated c++ files from the custom command
  3. A plugin description file is installed so the plugin becomes available via pluginlib

Registering Bindings

Register the generated plugins with the plugin manager from the cx_plugin_manager package via it’s configuration file. For the example above, the configuration is depicted below (the snippet from the cx_bringup package):

clips_plugins_manager:
ros__parameters:
clips_plugins_list: ["cx_std_msgs_string_plugin", "cx_std_srvs_set_bool_plugin", "cx_example_interfaces_fibonacci_plugin"]
clips_plugins:
  cx_std_msgs_string_plugin:
    plugin: "cx::CXStdMsgsStringPlugin"
  cx_std_srvs_set_bool_plugin:
    plugin: "cx::CXStdSrvsSetBoolPlugin"
  cx_example_interfaces_fibonacci_plugin:
    plugin: "cx::CXExampleInterfacesFibonacciPlugin"

Using the Bindings in CLIPS

Given a package (e.g., “std_msgs”) and a message (e.g., “String”) all deftemplates and functions are named using Kebab-case (as expected in CLIPS) and are are prefixed by <package-kebab>-<message-kebab>- (e.g., “std-msgs-string-“).

Message Bindings

Deftemplates
; Asserted by the respective create-subscription function.
; Retracted by the respective destroy-subscription function.
(<package-kebab>-<message-kebab>-subscription (topic ?topic-name-string))

; Asserted by the respective create-publisher function.
; Retracted by the respective destroy-publisher function.
(<package-kebab>-<message-kebab>-publisher (topic ?topic-name-string))

; Asserted by the callback of a subscriber whenever a message arrives.
; Process the message and then call destroy-message before retracting!
(<package-kebab>-<message-kebab>-message (topic ?topic-name-string) (msg-ptr ?msg-ptr))

Functions

```lisp ; Create and destroy publishers and subscribers. (--create-publisher ?topic-name) (--destroy-publisher ?topic-name) (--create-subscription ?topic-name) (--destroy-subscription ?topic-name)

; Publish a given message over a topic. ; Requires the publisher to be created first using create-publisher. (--publish ?msg-ptr ?topic-name)

; Create a message and return a pointer to it (bind ?msg-ptr (--create-message)) ; Destroy a message, call this after publishing a message or processing an incoming message to prevent it from staying in memory. (--destroy-message ?msg-ptr)

; Populate the field of a message. ; If the field is a message, then pass a pointer to that message (by using that respective messages bindings). (--set-field ?msg-ptr ?field-name ?field-value)

; Retrieve a field of a message. ; If the field is a message, then a pointer is returned that can only be processed by using that respective messages bindings.

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cx_ros_comm_gen at Robotics Stack Exchange

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

Package Summary

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

Repository Summary

Checkout URI https://github.com/carologistics/clips_executive.git
VCS Type git
VCS Version master
Last Updated 2025-06-24
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

Generate CLIPS bindings to use ROS messages, actions and services

Additional Links

No additional links.

Maintainers

  • Tarik Viehmann

Authors

No additional authors.

cx_ros_comm_gen

This package offers a convenient generator that allows to interface with ros nodes via messages, services and action clients/servers.

Usage

The usage involves a few steps:

  1. Generating the bindings
  2. Loading the generated bindings as CLIPS Executive plugins
  3. Using the generated functions and templates

Generating Bindings

The cx_ros_comm_gen package provides cmake functions to generate bindings for ros messages, services and actions via the following macros:

cx_generate_msg_bindings(package msg_name)

cx_generate_srv_bindings(package srv_name)

cx_generate_action_bindings(package action_name)

See the below snippet for an example (taken from the cx_bringup package):

find_package(cx_ros_comm_gen REQUIRED)

# generate bindings to interface with ROS messages, such as std_msgs::msg::String
cx_generate_msg_bindings("std_msgs" "String")

# generate bindings to interface with ROS services, such as std_srvs::srv::SetBool
cx_generate_srv_bindings("std_srvs" "SetBool")

# generate bindings to interface with ROS services, such as example_interfaces::action::Fibonacci
cx_generate_action_bindings("example_interfaces" "Fibonacci")

Note that upon invoking these functions the following dependencies will be used, hence it makes sense to add them to the belonging package.xml:

find_package(${package} REQUIRED)
find_package(pluginlib REQUIRED)
find_package(clips_vendor REQUIRED)
find_package(clips REQUIRED)
find_package(rclcpp_action REQUIRED) # only if action bindings are generated

Invoking these macros causes the following effects:

  1. A cmake custom_command is created that invokes the generator.py script of this package
  2. A shared library for the plugin is created using the generated c++ files from the custom command
  3. A plugin description file is installed so the plugin becomes available via pluginlib

Registering Bindings

Register the generated plugins with the plugin manager from the cx_plugin_manager package via it’s configuration file. For the example above, the configuration is depicted below (the snippet from the cx_bringup package):

clips_plugins_manager:
ros__parameters:
clips_plugins_list: ["cx_std_msgs_string_plugin", "cx_std_srvs_set_bool_plugin", "cx_example_interfaces_fibonacci_plugin"]
clips_plugins:
  cx_std_msgs_string_plugin:
    plugin: "cx::CXStdMsgsStringPlugin"
  cx_std_srvs_set_bool_plugin:
    plugin: "cx::CXStdSrvsSetBoolPlugin"
  cx_example_interfaces_fibonacci_plugin:
    plugin: "cx::CXExampleInterfacesFibonacciPlugin"

Using the Bindings in CLIPS

Given a package (e.g., “std_msgs”) and a message (e.g., “String”) all deftemplates and functions are named using Kebab-case (as expected in CLIPS) and are are prefixed by <package-kebab>-<message-kebab>- (e.g., “std-msgs-string-“).

Message Bindings

Deftemplates
; Asserted by the respective create-subscription function.
; Retracted by the respective destroy-subscription function.
(<package-kebab>-<message-kebab>-subscription (topic ?topic-name-string))

; Asserted by the respective create-publisher function.
; Retracted by the respective destroy-publisher function.
(<package-kebab>-<message-kebab>-publisher (topic ?topic-name-string))

; Asserted by the callback of a subscriber whenever a message arrives.
; Process the message and then call destroy-message before retracting!
(<package-kebab>-<message-kebab>-message (topic ?topic-name-string) (msg-ptr ?msg-ptr))

Functions

```lisp ; Create and destroy publishers and subscribers. (--create-publisher ?topic-name) (--destroy-publisher ?topic-name) (--create-subscription ?topic-name) (--destroy-subscription ?topic-name)

; Publish a given message over a topic. ; Requires the publisher to be created first using create-publisher. (--publish ?msg-ptr ?topic-name)

; Create a message and return a pointer to it (bind ?msg-ptr (--create-message)) ; Destroy a message, call this after publishing a message or processing an incoming message to prevent it from staying in memory. (--destroy-message ?msg-ptr)

; Populate the field of a message. ; If the field is a message, then pass a pointer to that message (by using that respective messages bindings). (--set-field ?msg-ptr ?field-name ?field-value)

; Retrieve a field of a message. ; If the field is a message, then a pointer is returned that can only be processed by using that respective messages bindings.

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cx_ros_comm_gen at Robotics Stack Exchange

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

Package Summary

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

Repository Summary

Checkout URI https://github.com/carologistics/clips_executive.git
VCS Type git
VCS Version master
Last Updated 2025-06-24
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

Generate CLIPS bindings to use ROS messages, actions and services

Additional Links

No additional links.

Maintainers

  • Tarik Viehmann

Authors

No additional authors.

cx_ros_comm_gen

This package offers a convenient generator that allows to interface with ros nodes via messages, services and action clients/servers.

Usage

The usage involves a few steps:

  1. Generating the bindings
  2. Loading the generated bindings as CLIPS Executive plugins
  3. Using the generated functions and templates

Generating Bindings

The cx_ros_comm_gen package provides cmake functions to generate bindings for ros messages, services and actions via the following macros:

cx_generate_msg_bindings(package msg_name)

cx_generate_srv_bindings(package srv_name)

cx_generate_action_bindings(package action_name)

See the below snippet for an example (taken from the cx_bringup package):

find_package(cx_ros_comm_gen REQUIRED)

# generate bindings to interface with ROS messages, such as std_msgs::msg::String
cx_generate_msg_bindings("std_msgs" "String")

# generate bindings to interface with ROS services, such as std_srvs::srv::SetBool
cx_generate_srv_bindings("std_srvs" "SetBool")

# generate bindings to interface with ROS services, such as example_interfaces::action::Fibonacci
cx_generate_action_bindings("example_interfaces" "Fibonacci")

Note that upon invoking these functions the following dependencies will be used, hence it makes sense to add them to the belonging package.xml:

find_package(${package} REQUIRED)
find_package(pluginlib REQUIRED)
find_package(clips_vendor REQUIRED)
find_package(clips REQUIRED)
find_package(rclcpp_action REQUIRED) # only if action bindings are generated

Invoking these macros causes the following effects:

  1. A cmake custom_command is created that invokes the generator.py script of this package
  2. A shared library for the plugin is created using the generated c++ files from the custom command
  3. A plugin description file is installed so the plugin becomes available via pluginlib

Registering Bindings

Register the generated plugins with the plugin manager from the cx_plugin_manager package via it’s configuration file. For the example above, the configuration is depicted below (the snippet from the cx_bringup package):

clips_plugins_manager:
ros__parameters:
clips_plugins_list: ["cx_std_msgs_string_plugin", "cx_std_srvs_set_bool_plugin", "cx_example_interfaces_fibonacci_plugin"]
clips_plugins:
  cx_std_msgs_string_plugin:
    plugin: "cx::CXStdMsgsStringPlugin"
  cx_std_srvs_set_bool_plugin:
    plugin: "cx::CXStdSrvsSetBoolPlugin"
  cx_example_interfaces_fibonacci_plugin:
    plugin: "cx::CXExampleInterfacesFibonacciPlugin"

Using the Bindings in CLIPS

Given a package (e.g., “std_msgs”) and a message (e.g., “String”) all deftemplates and functions are named using Kebab-case (as expected in CLIPS) and are are prefixed by <package-kebab>-<message-kebab>- (e.g., “std-msgs-string-“).

Message Bindings

Deftemplates
; Asserted by the respective create-subscription function.
; Retracted by the respective destroy-subscription function.
(<package-kebab>-<message-kebab>-subscription (topic ?topic-name-string))

; Asserted by the respective create-publisher function.
; Retracted by the respective destroy-publisher function.
(<package-kebab>-<message-kebab>-publisher (topic ?topic-name-string))

; Asserted by the callback of a subscriber whenever a message arrives.
; Process the message and then call destroy-message before retracting!
(<package-kebab>-<message-kebab>-message (topic ?topic-name-string) (msg-ptr ?msg-ptr))

Functions

```lisp ; Create and destroy publishers and subscribers. (--create-publisher ?topic-name) (--destroy-publisher ?topic-name) (--create-subscription ?topic-name) (--destroy-subscription ?topic-name)

; Publish a given message over a topic. ; Requires the publisher to be created first using create-publisher. (--publish ?msg-ptr ?topic-name)

; Create a message and return a pointer to it (bind ?msg-ptr (--create-message)) ; Destroy a message, call this after publishing a message or processing an incoming message to prevent it from staying in memory. (--destroy-message ?msg-ptr)

; Populate the field of a message. ; If the field is a message, then pass a pointer to that message (by using that respective messages bindings). (--set-field ?msg-ptr ?field-name ?field-value)

; Retrieve a field of a message. ; If the field is a message, then a pointer is returned that can only be processed by using that respective messages bindings.

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cx_ros_comm_gen at Robotics Stack Exchange

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

Package Summary

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

Repository Summary

Checkout URI https://github.com/carologistics/clips_executive.git
VCS Type git
VCS Version master
Last Updated 2025-06-24
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

Generate CLIPS bindings to use ROS messages, actions and services

Additional Links

No additional links.

Maintainers

  • Tarik Viehmann

Authors

No additional authors.

cx_ros_comm_gen

This package offers a convenient generator that allows to interface with ros nodes via messages, services and action clients/servers.

Usage

The usage involves a few steps:

  1. Generating the bindings
  2. Loading the generated bindings as CLIPS Executive plugins
  3. Using the generated functions and templates

Generating Bindings

The cx_ros_comm_gen package provides cmake functions to generate bindings for ros messages, services and actions via the following macros:

cx_generate_msg_bindings(package msg_name)

cx_generate_srv_bindings(package srv_name)

cx_generate_action_bindings(package action_name)

See the below snippet for an example (taken from the cx_bringup package):

find_package(cx_ros_comm_gen REQUIRED)

# generate bindings to interface with ROS messages, such as std_msgs::msg::String
cx_generate_msg_bindings("std_msgs" "String")

# generate bindings to interface with ROS services, such as std_srvs::srv::SetBool
cx_generate_srv_bindings("std_srvs" "SetBool")

# generate bindings to interface with ROS services, such as example_interfaces::action::Fibonacci
cx_generate_action_bindings("example_interfaces" "Fibonacci")

Note that upon invoking these functions the following dependencies will be used, hence it makes sense to add them to the belonging package.xml:

find_package(${package} REQUIRED)
find_package(pluginlib REQUIRED)
find_package(clips_vendor REQUIRED)
find_package(clips REQUIRED)
find_package(rclcpp_action REQUIRED) # only if action bindings are generated

Invoking these macros causes the following effects:

  1. A cmake custom_command is created that invokes the generator.py script of this package
  2. A shared library for the plugin is created using the generated c++ files from the custom command
  3. A plugin description file is installed so the plugin becomes available via pluginlib

Registering Bindings

Register the generated plugins with the plugin manager from the cx_plugin_manager package via it’s configuration file. For the example above, the configuration is depicted below (the snippet from the cx_bringup package):

clips_plugins_manager:
ros__parameters:
clips_plugins_list: ["cx_std_msgs_string_plugin", "cx_std_srvs_set_bool_plugin", "cx_example_interfaces_fibonacci_plugin"]
clips_plugins:
  cx_std_msgs_string_plugin:
    plugin: "cx::CXStdMsgsStringPlugin"
  cx_std_srvs_set_bool_plugin:
    plugin: "cx::CXStdSrvsSetBoolPlugin"
  cx_example_interfaces_fibonacci_plugin:
    plugin: "cx::CXExampleInterfacesFibonacciPlugin"

Using the Bindings in CLIPS

Given a package (e.g., “std_msgs”) and a message (e.g., “String”) all deftemplates and functions are named using Kebab-case (as expected in CLIPS) and are are prefixed by <package-kebab>-<message-kebab>- (e.g., “std-msgs-string-“).

Message Bindings

Deftemplates
; Asserted by the respective create-subscription function.
; Retracted by the respective destroy-subscription function.
(<package-kebab>-<message-kebab>-subscription (topic ?topic-name-string))

; Asserted by the respective create-publisher function.
; Retracted by the respective destroy-publisher function.
(<package-kebab>-<message-kebab>-publisher (topic ?topic-name-string))

; Asserted by the callback of a subscriber whenever a message arrives.
; Process the message and then call destroy-message before retracting!
(<package-kebab>-<message-kebab>-message (topic ?topic-name-string) (msg-ptr ?msg-ptr))

Functions

```lisp ; Create and destroy publishers and subscribers. (--create-publisher ?topic-name) (--destroy-publisher ?topic-name) (--create-subscription ?topic-name) (--destroy-subscription ?topic-name)

; Publish a given message over a topic. ; Requires the publisher to be created first using create-publisher. (--publish ?msg-ptr ?topic-name)

; Create a message and return a pointer to it (bind ?msg-ptr (--create-message)) ; Destroy a message, call this after publishing a message or processing an incoming message to prevent it from staying in memory. (--destroy-message ?msg-ptr)

; Populate the field of a message. ; If the field is a message, then pass a pointer to that message (by using that respective messages bindings). (--set-field ?msg-ptr ?field-name ?field-value)

; Retrieve a field of a message. ; If the field is a message, then a pointer is returned that can only be processed by using that respective messages bindings.

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cx_ros_comm_gen at Robotics Stack Exchange

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

Package Summary

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

Repository Summary

Checkout URI https://github.com/carologistics/clips_executive.git
VCS Type git
VCS Version master
Last Updated 2025-06-24
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

Generate CLIPS bindings to use ROS messages, actions and services

Additional Links

No additional links.

Maintainers

  • Tarik Viehmann

Authors

No additional authors.

cx_ros_comm_gen

This package offers a convenient generator that allows to interface with ros nodes via messages, services and action clients/servers.

Usage

The usage involves a few steps:

  1. Generating the bindings
  2. Loading the generated bindings as CLIPS Executive plugins
  3. Using the generated functions and templates

Generating Bindings

The cx_ros_comm_gen package provides cmake functions to generate bindings for ros messages, services and actions via the following macros:

cx_generate_msg_bindings(package msg_name)

cx_generate_srv_bindings(package srv_name)

cx_generate_action_bindings(package action_name)

See the below snippet for an example (taken from the cx_bringup package):

find_package(cx_ros_comm_gen REQUIRED)

# generate bindings to interface with ROS messages, such as std_msgs::msg::String
cx_generate_msg_bindings("std_msgs" "String")

# generate bindings to interface with ROS services, such as std_srvs::srv::SetBool
cx_generate_srv_bindings("std_srvs" "SetBool")

# generate bindings to interface with ROS services, such as example_interfaces::action::Fibonacci
cx_generate_action_bindings("example_interfaces" "Fibonacci")

Note that upon invoking these functions the following dependencies will be used, hence it makes sense to add them to the belonging package.xml:

find_package(${package} REQUIRED)
find_package(pluginlib REQUIRED)
find_package(clips_vendor REQUIRED)
find_package(clips REQUIRED)
find_package(rclcpp_action REQUIRED) # only if action bindings are generated

Invoking these macros causes the following effects:

  1. A cmake custom_command is created that invokes the generator.py script of this package
  2. A shared library for the plugin is created using the generated c++ files from the custom command
  3. A plugin description file is installed so the plugin becomes available via pluginlib

Registering Bindings

Register the generated plugins with the plugin manager from the cx_plugin_manager package via it’s configuration file. For the example above, the configuration is depicted below (the snippet from the cx_bringup package):

clips_plugins_manager:
ros__parameters:
clips_plugins_list: ["cx_std_msgs_string_plugin", "cx_std_srvs_set_bool_plugin", "cx_example_interfaces_fibonacci_plugin"]
clips_plugins:
  cx_std_msgs_string_plugin:
    plugin: "cx::CXStdMsgsStringPlugin"
  cx_std_srvs_set_bool_plugin:
    plugin: "cx::CXStdSrvsSetBoolPlugin"
  cx_example_interfaces_fibonacci_plugin:
    plugin: "cx::CXExampleInterfacesFibonacciPlugin"

Using the Bindings in CLIPS

Given a package (e.g., “std_msgs”) and a message (e.g., “String”) all deftemplates and functions are named using Kebab-case (as expected in CLIPS) and are are prefixed by <package-kebab>-<message-kebab>- (e.g., “std-msgs-string-“).

Message Bindings

Deftemplates
; Asserted by the respective create-subscription function.
; Retracted by the respective destroy-subscription function.
(<package-kebab>-<message-kebab>-subscription (topic ?topic-name-string))

; Asserted by the respective create-publisher function.
; Retracted by the respective destroy-publisher function.
(<package-kebab>-<message-kebab>-publisher (topic ?topic-name-string))

; Asserted by the callback of a subscriber whenever a message arrives.
; Process the message and then call destroy-message before retracting!
(<package-kebab>-<message-kebab>-message (topic ?topic-name-string) (msg-ptr ?msg-ptr))

Functions

```lisp ; Create and destroy publishers and subscribers. (--create-publisher ?topic-name) (--destroy-publisher ?topic-name) (--create-subscription ?topic-name) (--destroy-subscription ?topic-name)

; Publish a given message over a topic. ; Requires the publisher to be created first using create-publisher. (--publish ?msg-ptr ?topic-name)

; Create a message and return a pointer to it (bind ?msg-ptr (--create-message)) ; Destroy a message, call this after publishing a message or processing an incoming message to prevent it from staying in memory. (--destroy-message ?msg-ptr)

; Populate the field of a message. ; If the field is a message, then pass a pointer to that message (by using that respective messages bindings). (--set-field ?msg-ptr ?field-name ?field-value)

; Retrieve a field of a message. ; If the field is a message, then a pointer is returned that can only be processed by using that respective messages bindings.

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cx_ros_comm_gen at Robotics Stack Exchange

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

Package Summary

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

Repository Summary

Checkout URI https://github.com/carologistics/clips_executive.git
VCS Type git
VCS Version master
Last Updated 2025-06-24
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

Generate CLIPS bindings to use ROS messages, actions and services

Additional Links

No additional links.

Maintainers

  • Tarik Viehmann

Authors

No additional authors.

cx_ros_comm_gen

This package offers a convenient generator that allows to interface with ros nodes via messages, services and action clients/servers.

Usage

The usage involves a few steps:

  1. Generating the bindings
  2. Loading the generated bindings as CLIPS Executive plugins
  3. Using the generated functions and templates

Generating Bindings

The cx_ros_comm_gen package provides cmake functions to generate bindings for ros messages, services and actions via the following macros:

cx_generate_msg_bindings(package msg_name)

cx_generate_srv_bindings(package srv_name)

cx_generate_action_bindings(package action_name)

See the below snippet for an example (taken from the cx_bringup package):

find_package(cx_ros_comm_gen REQUIRED)

# generate bindings to interface with ROS messages, such as std_msgs::msg::String
cx_generate_msg_bindings("std_msgs" "String")

# generate bindings to interface with ROS services, such as std_srvs::srv::SetBool
cx_generate_srv_bindings("std_srvs" "SetBool")

# generate bindings to interface with ROS services, such as example_interfaces::action::Fibonacci
cx_generate_action_bindings("example_interfaces" "Fibonacci")

Note that upon invoking these functions the following dependencies will be used, hence it makes sense to add them to the belonging package.xml:

find_package(${package} REQUIRED)
find_package(pluginlib REQUIRED)
find_package(clips_vendor REQUIRED)
find_package(clips REQUIRED)
find_package(rclcpp_action REQUIRED) # only if action bindings are generated

Invoking these macros causes the following effects:

  1. A cmake custom_command is created that invokes the generator.py script of this package
  2. A shared library for the plugin is created using the generated c++ files from the custom command
  3. A plugin description file is installed so the plugin becomes available via pluginlib

Registering Bindings

Register the generated plugins with the plugin manager from the cx_plugin_manager package via it’s configuration file. For the example above, the configuration is depicted below (the snippet from the cx_bringup package):

clips_plugins_manager:
ros__parameters:
clips_plugins_list: ["cx_std_msgs_string_plugin", "cx_std_srvs_set_bool_plugin", "cx_example_interfaces_fibonacci_plugin"]
clips_plugins:
  cx_std_msgs_string_plugin:
    plugin: "cx::CXStdMsgsStringPlugin"
  cx_std_srvs_set_bool_plugin:
    plugin: "cx::CXStdSrvsSetBoolPlugin"
  cx_example_interfaces_fibonacci_plugin:
    plugin: "cx::CXExampleInterfacesFibonacciPlugin"

Using the Bindings in CLIPS

Given a package (e.g., “std_msgs”) and a message (e.g., “String”) all deftemplates and functions are named using Kebab-case (as expected in CLIPS) and are are prefixed by <package-kebab>-<message-kebab>- (e.g., “std-msgs-string-“).

Message Bindings

Deftemplates
; Asserted by the respective create-subscription function.
; Retracted by the respective destroy-subscription function.
(<package-kebab>-<message-kebab>-subscription (topic ?topic-name-string))

; Asserted by the respective create-publisher function.
; Retracted by the respective destroy-publisher function.
(<package-kebab>-<message-kebab>-publisher (topic ?topic-name-string))

; Asserted by the callback of a subscriber whenever a message arrives.
; Process the message and then call destroy-message before retracting!
(<package-kebab>-<message-kebab>-message (topic ?topic-name-string) (msg-ptr ?msg-ptr))

Functions

```lisp ; Create and destroy publishers and subscribers. (--create-publisher ?topic-name) (--destroy-publisher ?topic-name) (--create-subscription ?topic-name) (--destroy-subscription ?topic-name)

; Publish a given message over a topic. ; Requires the publisher to be created first using create-publisher. (--publish ?msg-ptr ?topic-name)

; Create a message and return a pointer to it (bind ?msg-ptr (--create-message)) ; Destroy a message, call this after publishing a message or processing an incoming message to prevent it from staying in memory. (--destroy-message ?msg-ptr)

; Populate the field of a message. ; If the field is a message, then pass a pointer to that message (by using that respective messages bindings). (--set-field ?msg-ptr ?field-name ?field-value)

; Retrieve a field of a message. ; If the field is a message, then a pointer is returned that can only be processed by using that respective messages bindings.

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cx_ros_comm_gen at Robotics Stack Exchange

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

Package Summary

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

Repository Summary

Checkout URI https://github.com/carologistics/clips_executive.git
VCS Type git
VCS Version master
Last Updated 2025-06-24
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

Generate CLIPS bindings to use ROS messages, actions and services

Additional Links

No additional links.

Maintainers

  • Tarik Viehmann

Authors

No additional authors.

cx_ros_comm_gen

This package offers a convenient generator that allows to interface with ros nodes via messages, services and action clients/servers.

Usage

The usage involves a few steps:

  1. Generating the bindings
  2. Loading the generated bindings as CLIPS Executive plugins
  3. Using the generated functions and templates

Generating Bindings

The cx_ros_comm_gen package provides cmake functions to generate bindings for ros messages, services and actions via the following macros:

cx_generate_msg_bindings(package msg_name)

cx_generate_srv_bindings(package srv_name)

cx_generate_action_bindings(package action_name)

See the below snippet for an example (taken from the cx_bringup package):

find_package(cx_ros_comm_gen REQUIRED)

# generate bindings to interface with ROS messages, such as std_msgs::msg::String
cx_generate_msg_bindings("std_msgs" "String")

# generate bindings to interface with ROS services, such as std_srvs::srv::SetBool
cx_generate_srv_bindings("std_srvs" "SetBool")

# generate bindings to interface with ROS services, such as example_interfaces::action::Fibonacci
cx_generate_action_bindings("example_interfaces" "Fibonacci")

Note that upon invoking these functions the following dependencies will be used, hence it makes sense to add them to the belonging package.xml:

find_package(${package} REQUIRED)
find_package(pluginlib REQUIRED)
find_package(clips_vendor REQUIRED)
find_package(clips REQUIRED)
find_package(rclcpp_action REQUIRED) # only if action bindings are generated

Invoking these macros causes the following effects:

  1. A cmake custom_command is created that invokes the generator.py script of this package
  2. A shared library for the plugin is created using the generated c++ files from the custom command
  3. A plugin description file is installed so the plugin becomes available via pluginlib

Registering Bindings

Register the generated plugins with the plugin manager from the cx_plugin_manager package via it’s configuration file. For the example above, the configuration is depicted below (the snippet from the cx_bringup package):

clips_plugins_manager:
ros__parameters:
clips_plugins_list: ["cx_std_msgs_string_plugin", "cx_std_srvs_set_bool_plugin", "cx_example_interfaces_fibonacci_plugin"]
clips_plugins:
  cx_std_msgs_string_plugin:
    plugin: "cx::CXStdMsgsStringPlugin"
  cx_std_srvs_set_bool_plugin:
    plugin: "cx::CXStdSrvsSetBoolPlugin"
  cx_example_interfaces_fibonacci_plugin:
    plugin: "cx::CXExampleInterfacesFibonacciPlugin"

Using the Bindings in CLIPS

Given a package (e.g., “std_msgs”) and a message (e.g., “String”) all deftemplates and functions are named using Kebab-case (as expected in CLIPS) and are are prefixed by <package-kebab>-<message-kebab>- (e.g., “std-msgs-string-“).

Message Bindings

Deftemplates
; Asserted by the respective create-subscription function.
; Retracted by the respective destroy-subscription function.
(<package-kebab>-<message-kebab>-subscription (topic ?topic-name-string))

; Asserted by the respective create-publisher function.
; Retracted by the respective destroy-publisher function.
(<package-kebab>-<message-kebab>-publisher (topic ?topic-name-string))

; Asserted by the callback of a subscriber whenever a message arrives.
; Process the message and then call destroy-message before retracting!
(<package-kebab>-<message-kebab>-message (topic ?topic-name-string) (msg-ptr ?msg-ptr))

Functions

```lisp ; Create and destroy publishers and subscribers. (--create-publisher ?topic-name) (--destroy-publisher ?topic-name) (--create-subscription ?topic-name) (--destroy-subscription ?topic-name)

; Publish a given message over a topic. ; Requires the publisher to be created first using create-publisher. (--publish ?msg-ptr ?topic-name)

; Create a message and return a pointer to it (bind ?msg-ptr (--create-message)) ; Destroy a message, call this after publishing a message or processing an incoming message to prevent it from staying in memory. (--destroy-message ?msg-ptr)

; Populate the field of a message. ; If the field is a message, then pass a pointer to that message (by using that respective messages bindings). (--set-field ?msg-ptr ?field-name ?field-value)

; Retrieve a field of a message. ; If the field is a message, then a pointer is returned that can only be processed by using that respective messages bindings.

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cx_ros_comm_gen at Robotics Stack Exchange

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

Package Summary

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

Repository Summary

Checkout URI https://github.com/carologistics/clips_executive.git
VCS Type git
VCS Version master
Last Updated 2025-06-24
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

Generate CLIPS bindings to use ROS messages, actions and services

Additional Links

No additional links.

Maintainers

  • Tarik Viehmann

Authors

No additional authors.

cx_ros_comm_gen

This package offers a convenient generator that allows to interface with ros nodes via messages, services and action clients/servers.

Usage

The usage involves a few steps:

  1. Generating the bindings
  2. Loading the generated bindings as CLIPS Executive plugins
  3. Using the generated functions and templates

Generating Bindings

The cx_ros_comm_gen package provides cmake functions to generate bindings for ros messages, services and actions via the following macros:

cx_generate_msg_bindings(package msg_name)

cx_generate_srv_bindings(package srv_name)

cx_generate_action_bindings(package action_name)

See the below snippet for an example (taken from the cx_bringup package):

find_package(cx_ros_comm_gen REQUIRED)

# generate bindings to interface with ROS messages, such as std_msgs::msg::String
cx_generate_msg_bindings("std_msgs" "String")

# generate bindings to interface with ROS services, such as std_srvs::srv::SetBool
cx_generate_srv_bindings("std_srvs" "SetBool")

# generate bindings to interface with ROS services, such as example_interfaces::action::Fibonacci
cx_generate_action_bindings("example_interfaces" "Fibonacci")

Note that upon invoking these functions the following dependencies will be used, hence it makes sense to add them to the belonging package.xml:

find_package(${package} REQUIRED)
find_package(pluginlib REQUIRED)
find_package(clips_vendor REQUIRED)
find_package(clips REQUIRED)
find_package(rclcpp_action REQUIRED) # only if action bindings are generated

Invoking these macros causes the following effects:

  1. A cmake custom_command is created that invokes the generator.py script of this package
  2. A shared library for the plugin is created using the generated c++ files from the custom command
  3. A plugin description file is installed so the plugin becomes available via pluginlib

Registering Bindings

Register the generated plugins with the plugin manager from the cx_plugin_manager package via it’s configuration file. For the example above, the configuration is depicted below (the snippet from the cx_bringup package):

clips_plugins_manager:
ros__parameters:
clips_plugins_list: ["cx_std_msgs_string_plugin", "cx_std_srvs_set_bool_plugin", "cx_example_interfaces_fibonacci_plugin"]
clips_plugins:
  cx_std_msgs_string_plugin:
    plugin: "cx::CXStdMsgsStringPlugin"
  cx_std_srvs_set_bool_plugin:
    plugin: "cx::CXStdSrvsSetBoolPlugin"
  cx_example_interfaces_fibonacci_plugin:
    plugin: "cx::CXExampleInterfacesFibonacciPlugin"

Using the Bindings in CLIPS

Given a package (e.g., “std_msgs”) and a message (e.g., “String”) all deftemplates and functions are named using Kebab-case (as expected in CLIPS) and are are prefixed by <package-kebab>-<message-kebab>- (e.g., “std-msgs-string-“).

Message Bindings

Deftemplates
; Asserted by the respective create-subscription function.
; Retracted by the respective destroy-subscription function.
(<package-kebab>-<message-kebab>-subscription (topic ?topic-name-string))

; Asserted by the respective create-publisher function.
; Retracted by the respective destroy-publisher function.
(<package-kebab>-<message-kebab>-publisher (topic ?topic-name-string))

; Asserted by the callback of a subscriber whenever a message arrives.
; Process the message and then call destroy-message before retracting!
(<package-kebab>-<message-kebab>-message (topic ?topic-name-string) (msg-ptr ?msg-ptr))

Functions

```lisp ; Create and destroy publishers and subscribers. (--create-publisher ?topic-name) (--destroy-publisher ?topic-name) (--create-subscription ?topic-name) (--destroy-subscription ?topic-name)

; Publish a given message over a topic. ; Requires the publisher to be created first using create-publisher. (--publish ?msg-ptr ?topic-name)

; Create a message and return a pointer to it (bind ?msg-ptr (--create-message)) ; Destroy a message, call this after publishing a message or processing an incoming message to prevent it from staying in memory. (--destroy-message ?msg-ptr)

; Populate the field of a message. ; If the field is a message, then pass a pointer to that message (by using that respective messages bindings). (--set-field ?msg-ptr ?field-name ?field-value)

; Retrieve a field of a message. ; If the field is a message, then a pointer is returned that can only be processed by using that respective messages bindings.

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cx_ros_comm_gen at Robotics Stack Exchange

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

Package Summary

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

Repository Summary

Checkout URI https://github.com/carologistics/clips_executive.git
VCS Type git
VCS Version master
Last Updated 2025-06-24
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

Generate CLIPS bindings to use ROS messages, actions and services

Additional Links

No additional links.

Maintainers

  • Tarik Viehmann

Authors

No additional authors.

cx_ros_comm_gen

This package offers a convenient generator that allows to interface with ros nodes via messages, services and action clients/servers.

Usage

The usage involves a few steps:

  1. Generating the bindings
  2. Loading the generated bindings as CLIPS Executive plugins
  3. Using the generated functions and templates

Generating Bindings

The cx_ros_comm_gen package provides cmake functions to generate bindings for ros messages, services and actions via the following macros:

cx_generate_msg_bindings(package msg_name)

cx_generate_srv_bindings(package srv_name)

cx_generate_action_bindings(package action_name)

See the below snippet for an example (taken from the cx_bringup package):

find_package(cx_ros_comm_gen REQUIRED)

# generate bindings to interface with ROS messages, such as std_msgs::msg::String
cx_generate_msg_bindings("std_msgs" "String")

# generate bindings to interface with ROS services, such as std_srvs::srv::SetBool
cx_generate_srv_bindings("std_srvs" "SetBool")

# generate bindings to interface with ROS services, such as example_interfaces::action::Fibonacci
cx_generate_action_bindings("example_interfaces" "Fibonacci")

Note that upon invoking these functions the following dependencies will be used, hence it makes sense to add them to the belonging package.xml:

find_package(${package} REQUIRED)
find_package(pluginlib REQUIRED)
find_package(clips_vendor REQUIRED)
find_package(clips REQUIRED)
find_package(rclcpp_action REQUIRED) # only if action bindings are generated

Invoking these macros causes the following effects:

  1. A cmake custom_command is created that invokes the generator.py script of this package
  2. A shared library for the plugin is created using the generated c++ files from the custom command
  3. A plugin description file is installed so the plugin becomes available via pluginlib

Registering Bindings

Register the generated plugins with the plugin manager from the cx_plugin_manager package via it’s configuration file. For the example above, the configuration is depicted below (the snippet from the cx_bringup package):

clips_plugins_manager:
ros__parameters:
clips_plugins_list: ["cx_std_msgs_string_plugin", "cx_std_srvs_set_bool_plugin", "cx_example_interfaces_fibonacci_plugin"]
clips_plugins:
  cx_std_msgs_string_plugin:
    plugin: "cx::CXStdMsgsStringPlugin"
  cx_std_srvs_set_bool_plugin:
    plugin: "cx::CXStdSrvsSetBoolPlugin"
  cx_example_interfaces_fibonacci_plugin:
    plugin: "cx::CXExampleInterfacesFibonacciPlugin"

Using the Bindings in CLIPS

Given a package (e.g., “std_msgs”) and a message (e.g., “String”) all deftemplates and functions are named using Kebab-case (as expected in CLIPS) and are are prefixed by <package-kebab>-<message-kebab>- (e.g., “std-msgs-string-“).

Message Bindings

Deftemplates
; Asserted by the respective create-subscription function.
; Retracted by the respective destroy-subscription function.
(<package-kebab>-<message-kebab>-subscription (topic ?topic-name-string))

; Asserted by the respective create-publisher function.
; Retracted by the respective destroy-publisher function.
(<package-kebab>-<message-kebab>-publisher (topic ?topic-name-string))

; Asserted by the callback of a subscriber whenever a message arrives.
; Process the message and then call destroy-message before retracting!
(<package-kebab>-<message-kebab>-message (topic ?topic-name-string) (msg-ptr ?msg-ptr))

Functions

```lisp ; Create and destroy publishers and subscribers. (--create-publisher ?topic-name) (--destroy-publisher ?topic-name) (--create-subscription ?topic-name) (--destroy-subscription ?topic-name)

; Publish a given message over a topic. ; Requires the publisher to be created first using create-publisher. (--publish ?msg-ptr ?topic-name)

; Create a message and return a pointer to it (bind ?msg-ptr (--create-message)) ; Destroy a message, call this after publishing a message or processing an incoming message to prevent it from staying in memory. (--destroy-message ?msg-ptr)

; Populate the field of a message. ; If the field is a message, then pass a pointer to that message (by using that respective messages bindings). (--set-field ?msg-ptr ?field-name ?field-value)

; Retrieve a field of a message. ; If the field is a message, then a pointer is returned that can only be processed by using that respective messages bindings.

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

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

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cx_ros_comm_gen at Robotics Stack Exchange