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
Additional Links
Maintainers
- Tarik Viehmann
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:
- Generating the bindings
- Loading the generated bindings as CLIPS Executive plugins
- 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:
- A cmake
custom_command
is created that invokes the generator.py script of this package - A shared library for the plugin is created using the generated c++ files from the custom command
- 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.
(
; Publish a given message over a topic.
; Requires the publisher to be created first using create-publisher.
(
; Create a message and return a pointer to it
(bind ?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).
(
; 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
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
cx_plugin | |
cx_utils | |
pluginlib | |
rclcpp | |
rclcpp_action |
System Dependencies
Name |
---|
python3 |
python3-jinja2 |
Dependant Packages
Name | Deps |
---|---|
clips_executive | |
cx_bringup |
Launch files
Messages
Services
Plugins
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
Additional Links
Maintainers
- Tarik Viehmann
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:
- Generating the bindings
- Loading the generated bindings as CLIPS Executive plugins
- 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:
- A cmake
custom_command
is created that invokes the generator.py script of this package - A shared library for the plugin is created using the generated c++ files from the custom command
- 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.
(
; Publish a given message over a topic.
; Requires the publisher to be created first using create-publisher.
(
; Create a message and return a pointer to it
(bind ?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).
(
; 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
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
cx_plugin | |
cx_utils | |
pluginlib | |
rclcpp | |
rclcpp_action |
System Dependencies
Name |
---|
python3 |
python3-jinja2 |
Dependant Packages
Name | Deps |
---|---|
clips_executive | |
cx_bringup |
Launch files
Messages
Services
Plugins
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
Additional Links
Maintainers
- Tarik Viehmann
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:
- Generating the bindings
- Loading the generated bindings as CLIPS Executive plugins
- 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:
- A cmake
custom_command
is created that invokes the generator.py script of this package - A shared library for the plugin is created using the generated c++ files from the custom command
- 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.
(
; Publish a given message over a topic.
; Requires the publisher to be created first using create-publisher.
(
; Create a message and return a pointer to it
(bind ?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).
(
; 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
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
cx_plugin | |
cx_utils | |
pluginlib | |
rclcpp | |
rclcpp_action |
System Dependencies
Name |
---|
python3 |
python3-jinja2 |
Dependant Packages
Name | Deps |
---|---|
clips_executive | |
cx_bringup |
Launch files
Messages
Services
Plugins
Recent questions tagged cx_ros_comm_gen at Robotics Stack Exchange
![]() |
cx_ros_comm_gen package from clips_executive repoclips_executive cx_bringup cx_clips_env_manager cx_msgs cx_plugin cx_ament_index_plugin cx_config_plugin cx_example_plugin cx_executive_plugin cx_file_load_plugin cx_protobuf_plugin cx_ros_msgs_plugin cx_tf2_pose_tracker_plugin cx_ros_comm_gen cx_tutorial_agents cx_utils |
ROS Distro
|
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
Additional Links
Maintainers
- Tarik Viehmann
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:
- Generating the bindings
- Loading the generated bindings as CLIPS Executive plugins
- 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:
- A cmake
custom_command
is created that invokes the generator.py script of this package - A shared library for the plugin is created using the generated c++ files from the custom command
- 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.
(
; Publish a given message over a topic.
; Requires the publisher to be created first using create-publisher.
(
; Create a message and return a pointer to it
(bind ?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).
(
; 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
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
cx_plugin | |
cx_utils | |
pluginlib | |
rclcpp | |
rclcpp_action |
System Dependencies
Name |
---|
python3 |
python3-jinja2 |
Dependant Packages
Name | Deps |
---|---|
clips_executive | |
cx_bringup |
Launch files
Messages
Services
Plugins
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
Additional Links
Maintainers
- Tarik Viehmann
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:
- Generating the bindings
- Loading the generated bindings as CLIPS Executive plugins
- 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:
- A cmake
custom_command
is created that invokes the generator.py script of this package - A shared library for the plugin is created using the generated c++ files from the custom command
- 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.
(
; Publish a given message over a topic.
; Requires the publisher to be created first using create-publisher.
(
; Create a message and return a pointer to it
(bind ?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).
(
; 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
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
cx_plugin | |
cx_utils | |
pluginlib | |
rclcpp | |
rclcpp_action |
System Dependencies
Name |
---|
python3 |
python3-jinja2 |
Dependant Packages
Name | Deps |
---|---|
clips_executive | |
cx_bringup |
Launch files
Messages
Services
Plugins
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
Additional Links
Maintainers
- Tarik Viehmann
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:
- Generating the bindings
- Loading the generated bindings as CLIPS Executive plugins
- 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:
- A cmake
custom_command
is created that invokes the generator.py script of this package - A shared library for the plugin is created using the generated c++ files from the custom command
- 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.
(
; Publish a given message over a topic.
; Requires the publisher to be created first using create-publisher.
(
; Create a message and return a pointer to it
(bind ?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).
(
; 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
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
cx_plugin | |
cx_utils | |
pluginlib | |
rclcpp | |
rclcpp_action |
System Dependencies
Name |
---|
python3 |
python3-jinja2 |
Dependant Packages
Name | Deps |
---|---|
clips_executive | |
cx_bringup |
Launch files
Messages
Services
Plugins
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
Additional Links
Maintainers
- Tarik Viehmann
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:
- Generating the bindings
- Loading the generated bindings as CLIPS Executive plugins
- 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:
- A cmake
custom_command
is created that invokes the generator.py script of this package - A shared library for the plugin is created using the generated c++ files from the custom command
- 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.
(
; Publish a given message over a topic.
; Requires the publisher to be created first using create-publisher.
(
; Create a message and return a pointer to it
(bind ?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).
(
; 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
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
cx_plugin | |
cx_utils | |
pluginlib | |
rclcpp | |
rclcpp_action |
System Dependencies
Name |
---|
python3 |
python3-jinja2 |
Dependant Packages
Name | Deps |
---|---|
clips_executive | |
cx_bringup |
Launch files
Messages
Services
Plugins
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
Additional Links
Maintainers
- Tarik Viehmann
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:
- Generating the bindings
- Loading the generated bindings as CLIPS Executive plugins
- 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:
- A cmake
custom_command
is created that invokes the generator.py script of this package - A shared library for the plugin is created using the generated c++ files from the custom command
- 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.
(
; Publish a given message over a topic.
; Requires the publisher to be created first using create-publisher.
(
; Create a message and return a pointer to it
(bind ?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).
(
; 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
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
cx_plugin | |
cx_utils | |
pluginlib | |
rclcpp | |
rclcpp_action |
System Dependencies
Name |
---|
python3 |
python3-jinja2 |
Dependant Packages
Name | Deps |
---|---|
clips_executive | |
cx_bringup |
Launch files
Messages
Services
Plugins
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
Additional Links
Maintainers
- Tarik Viehmann
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:
- Generating the bindings
- Loading the generated bindings as CLIPS Executive plugins
- 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:
- A cmake
custom_command
is created that invokes the generator.py script of this package - A shared library for the plugin is created using the generated c++ files from the custom command
- 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.
(
; Publish a given message over a topic.
; Requires the publisher to be created first using create-publisher.
(
; Create a message and return a pointer to it
(bind ?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).
(
; 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
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
cx_plugin | |
cx_utils | |
pluginlib | |
rclcpp | |
rclcpp_action |
System Dependencies
Name |
---|
python3 |
python3-jinja2 |
Dependant Packages
Name | Deps |
---|---|
clips_executive | |
cx_bringup |
Launch files
Messages
Services
Plugins
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
Additional Links
Maintainers
- Tarik Viehmann
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:
- Generating the bindings
- Loading the generated bindings as CLIPS Executive plugins
- 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:
- A cmake
custom_command
is created that invokes the generator.py script of this package - A shared library for the plugin is created using the generated c++ files from the custom command
- 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.
(
; Publish a given message over a topic.
; Requires the publisher to be created first using create-publisher.
(
; Create a message and return a pointer to it
(bind ?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).
(
; 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
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
cx_plugin | |
cx_utils | |
pluginlib | |
rclcpp | |
rclcpp_action |
System Dependencies
Name |
---|
python3 |
python3-jinja2 |
Dependant Packages
Name | Deps |
---|---|
clips_executive | |
cx_bringup |
Launch files
Messages
Services
Plugins
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
Additional Links
Maintainers
- Tarik Viehmann
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:
- Generating the bindings
- Loading the generated bindings as CLIPS Executive plugins
- 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:
- A cmake
custom_command
is created that invokes the generator.py script of this package - A shared library for the plugin is created using the generated c++ files from the custom command
- 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.
(
; Publish a given message over a topic.
; Requires the publisher to be created first using create-publisher.
(
; Create a message and return a pointer to it
(bind ?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).
(
; 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
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
cx_plugin | |
cx_utils | |
pluginlib | |
rclcpp | |
rclcpp_action |
System Dependencies
Name |
---|
python3 |
python3-jinja2 |
Dependant Packages
Name | Deps |
---|---|
clips_executive | |
cx_bringup |
Launch files
Messages
Services
Plugins
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
Additional Links
Maintainers
- Tarik Viehmann
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:
- Generating the bindings
- Loading the generated bindings as CLIPS Executive plugins
- 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:
- A cmake
custom_command
is created that invokes the generator.py script of this package - A shared library for the plugin is created using the generated c++ files from the custom command
- 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.
(
; Publish a given message over a topic.
; Requires the publisher to be created first using create-publisher.
(
; Create a message and return a pointer to it
(bind ?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).
(
; 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
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
cx_plugin | |
cx_utils | |
pluginlib | |
rclcpp | |
rclcpp_action |
System Dependencies
Name |
---|
python3 |
python3-jinja2 |
Dependant Packages
Name | Deps |
---|---|
clips_executive | |
cx_bringup |
Launch files
Messages
Services
Plugins
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
Additional Links
Maintainers
- Tarik Viehmann
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:
- Generating the bindings
- Loading the generated bindings as CLIPS Executive plugins
- 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:
- A cmake
custom_command
is created that invokes the generator.py script of this package - A shared library for the plugin is created using the generated c++ files from the custom command
- 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.
(
; Publish a given message over a topic.
; Requires the publisher to be created first using create-publisher.
(
; Create a message and return a pointer to it
(bind ?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).
(
; 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
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
cx_plugin | |
cx_utils | |
pluginlib | |
rclcpp | |
rclcpp_action |
System Dependencies
Name |
---|
python3 |
python3-jinja2 |
Dependant Packages
Name | Deps |
---|---|
clips_executive | |
cx_bringup |
Launch files
Messages
Services
Plugins
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
Additional Links
Maintainers
- Tarik Viehmann
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:
- Generating the bindings
- Loading the generated bindings as CLIPS Executive plugins
- 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:
- A cmake
custom_command
is created that invokes the generator.py script of this package - A shared library for the plugin is created using the generated c++ files from the custom command
- 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.
(
; Publish a given message over a topic.
; Requires the publisher to be created first using create-publisher.
(
; Create a message and return a pointer to it
(bind ?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).
(
; 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
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
cx_plugin | |
cx_utils | |
pluginlib | |
rclcpp | |
rclcpp_action |
System Dependencies
Name |
---|
python3 |
python3-jinja2 |
Dependant Packages
Name | Deps |
---|---|
clips_executive | |
cx_bringup |
Launch files
Messages
Services
Plugins
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
Additional Links
Maintainers
- Tarik Viehmann
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:
- Generating the bindings
- Loading the generated bindings as CLIPS Executive plugins
- 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:
- A cmake
custom_command
is created that invokes the generator.py script of this package - A shared library for the plugin is created using the generated c++ files from the custom command
- 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.
(
; Publish a given message over a topic.
; Requires the publisher to be created first using create-publisher.
(
; Create a message and return a pointer to it
(bind ?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).
(
; 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
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
cx_plugin | |
cx_utils | |
pluginlib | |
rclcpp | |
rclcpp_action |
System Dependencies
Name |
---|
python3 |
python3-jinja2 |
Dependant Packages
Name | Deps |
---|---|
clips_executive | |
cx_bringup |
Launch files
Messages
Services
Plugins
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
Additional Links
Maintainers
- Tarik Viehmann
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:
- Generating the bindings
- Loading the generated bindings as CLIPS Executive plugins
- 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:
- A cmake
custom_command
is created that invokes the generator.py script of this package - A shared library for the plugin is created using the generated c++ files from the custom command
- 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.
(
; Publish a given message over a topic.
; Requires the publisher to be created first using create-publisher.
(
; Create a message and return a pointer to it
(bind ?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).
(
; 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
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
cx_plugin | |
cx_utils | |
pluginlib | |
rclcpp | |
rclcpp_action |
System Dependencies
Name |
---|
python3 |
python3-jinja2 |
Dependant Packages
Name | Deps |
---|---|
clips_executive | |
cx_bringup |
Launch files
Messages
Services
Plugins
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
Additional Links
Maintainers
- Tarik Viehmann
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:
- Generating the bindings
- Loading the generated bindings as CLIPS Executive plugins
- 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:
- A cmake
custom_command
is created that invokes the generator.py script of this package - A shared library for the plugin is created using the generated c++ files from the custom command
- 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.
(
; Publish a given message over a topic.
; Requires the publisher to be created first using create-publisher.
(
; Create a message and return a pointer to it
(bind ?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).
(
; 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
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
cx_plugin | |
cx_utils | |
pluginlib | |
rclcpp | |
rclcpp_action |
System Dependencies
Name |
---|
python3 |
python3-jinja2 |
Dependant Packages
Name | Deps |
---|---|
clips_executive | |
cx_bringup |
Launch files
Messages
Services
Plugins
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
Additional Links
Maintainers
- Tarik Viehmann
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:
- Generating the bindings
- Loading the generated bindings as CLIPS Executive plugins
- 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:
- A cmake
custom_command
is created that invokes the generator.py script of this package - A shared library for the plugin is created using the generated c++ files from the custom command
- 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.
(
; Publish a given message over a topic.
; Requires the publisher to be created first using create-publisher.
(
; Create a message and return a pointer to it
(bind ?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).
(
; 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
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
cx_plugin | |
cx_utils | |
pluginlib | |
rclcpp | |
rclcpp_action |
System Dependencies
Name |
---|
python3 |
python3-jinja2 |
Dependant Packages
Name | Deps |
---|---|
clips_executive | |
cx_bringup |
Launch files
Messages
Services
Plugins
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
Additional Links
Maintainers
- Tarik Viehmann
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:
- Generating the bindings
- Loading the generated bindings as CLIPS Executive plugins
- 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:
- A cmake
custom_command
is created that invokes the generator.py script of this package - A shared library for the plugin is created using the generated c++ files from the custom command
- 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.
(
; Publish a given message over a topic.
; Requires the publisher to be created first using create-publisher.
(
; Create a message and return a pointer to it
(bind ?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).
(
; 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
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
cx_plugin | |
cx_utils | |
pluginlib | |
rclcpp | |
rclcpp_action |
System Dependencies
Name |
---|
python3 |
python3-jinja2 |
Dependant Packages
Name | Deps |
---|---|
clips_executive | |
cx_bringup |