|
Package Summary
Tags | No category tags. |
Version | 0.20.5 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros2/demos.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2024-07-26 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Audrow Nash
- Michael Jeronimo
Authors
- Mabel Zhang
- William Woodall
Changelog for package intra_process_demo
0.20.5 (2024-07-26)
0.20.4 (2024-05-15)
0.20.3 (2023-01-10)
0.20.2 (2022-05-10)
0.20.1 (2022-04-08)
0.20.0 (2022-03-01)
- Add opencv_imgproc dependency for cv::putText (#554)
- Install includes to include/${PROJECT_NAME} (#548)
- Contributors: Shane Loretz
0.19.0 (2022-01-14)
- Fix include order and relative paths for cpplint (#551)
- Contributors: Jacob Perron
0.18.0 (2021-12-17)
- Update maintainers to Audrow Nash and Michael Jeronimo (#543)
- Additional fixes for documentation in demos. (#538)
- Contributors: Audrow Nash, Chris Lalancette
0.17.0 (2021-10-18)
- Fixing deprecated subscriber callback warnings (#532)
- Contributors: Abrar Rahman Protyasha
0.16.0 (2021-08-11)
- Revert "Add type masquerading demos (#482)" (#520)
- Add type masquerading demos (#482)
- Contributors: Audrow Nash, William Woodall
0.15.0 (2021-05-14)
0.14.2 (2021-04-26)
0.14.1 (2021-04-19)
0.14.0 (2021-04-06)
0.13.0 (2021-03-25)
0.12.1 (2021-03-18)
0.12.0 (2021-01-25)
0.11.0 (2020-12-10)
- Update the package.xml files with the latest Open Robotics maintainers (#466)
- Contributors: Michael Jeronimo
0.10.1 (2020-09-21)
0.10.0 (2020-06-17)
0.9.3 (2020-06-01)
0.9.2 (2020-05-26)
0.9.1 (2020-05-12)
0.9.0 (2020-04-30)
- Fix pendulum_control tests to use stdout stream. (#430)
- Contributors: Chris Lalancette
0.8.4 (2019-11-19)
0.8.3 (2019-11-11)
0.8.2 (2019-11-08)
0.8.1 (2019-10-23)
- Replace ready_fn with ReadyToTest action (#404)
- Contributors: Peter Baughman
0.8.0 (2019-09-26)
0.7.6 (2019-05-30)
0.7.5 (2019-05-29)
- Allow ESC/q/sigint to exit demo (#345)
- Contributors: Dirk Thomas
0.7.4 (2019-05-20)
0.7.3 (2019-05-10)
0.7.2 (2019-05-08)
- changes to avoid deprecated API's (#332)
- Corrected publish calls with shared_ptr signature (#327)
- Migrate launch tests to new launch_testing features & API (#318)
- Contributors: Michel Hidalgo, William Woodall, ivanpauno
0.7.1 (2019-04-26)
0.7.0 (2019-04-14)
- Added launch along with launch_testing as test dependencies. (#313)
- Updated for NodeOptions Node constructor. (#308)
- Contributors: Michael Carroll, Michel Hidalgo
0.6.2 (2019-01-15)
- Updated to support OpenCV 2, 3 and 4 (#307)
- Contributors: Jacob Perron
0.6.1 (2018-12-13)
0.6.0 (2018-12-07)
0.5.1 (2018-06-28)
0.5.0 (2018-06-27)
- Updated launch files to account for the "old launch" getting
renamespaced as
launch
->launch.legacy
. (#239) - Contributors: Dirk Thomas, William Woodall
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
rclcpp | |
sensor_msgs | |
std_msgs | |
ament_cmake | |
ament_cmake_pytest | |
ament_lint_auto | |
ament_lint_common | |
launch | |
launch_testing | |
launch_testing_ament_cmake | |
rmw_implementation_cmake |
System Dependencies
Name |
---|
libopencv-dev |
Dependant Packages
Name | Deps |
---|---|
desktop |
Launch files
Messages
Services
Plugins
Recent questions tagged intra_process_demo at Robotics Stack Exchange
|
Package Summary
Tags | No category tags. |
Version | 0.27.2 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros2/demos.git |
VCS Type | git |
VCS Version | iron |
Last Updated | 2024-07-11 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Aditya Pande
- Audrow Nash
- Michael Jeronimo
Authors
- Mabel Zhang
- William Woodall
What Is This?
The demos in this package are designed to showcase how developers can manually compose ROS 2 nodes by defining them separately but combining them in varied process layouts.
These can be done while avoiding code overhauls or performance restrictions.
This package consists of the following ROS 2 nodes:
camera_node
watermark_node
image_view_node
image_pipeline_all_in_one
two_node_pipeline
cyclic_pipeline
image_pipeline_with_two_image_view
Through the use of intra-process (as opposed to inter-process) node communication, lower latency and thus higher efficiency is observed for ROS 2 topologies that utilizes this manner of communication.
The improvements in latency reduction are even more pronounced when applied to ROS 2 systems with more complex topologies.
Build
colcon build --packages-up-to intra_process_demo
Run
1. Two Node Pipeline
Run two_node_pipeline
via the commands below:
ros2 run intra_process_demo two_node_pipeline
This sets up two nodes, a ROS 2 node that publishes a string with an incremeting integer value, as well as a ROS 2 node that subscribes to print the received string.
2. Cyclic Pipeline
Run cyclic_pipeline
via the commands below:
ros2 run intra_process_demo cyclic_pipeline
Similar to the previous, instead of creating a new message for each new iteration, the publisher and subscriber nodes only ever use one message instance. This is achieved by having a cycle in the graph and kickstarting the communication externally by having one of the nodes publish before spinning the executor.
3. Image Pipeline All In One
Please ensure you have a camera connected to your workstation.
image_pipeline_all_in_one
consists of 3 nodes, where camera_node
publishes a unique_ptr
message onto the topic, \image
. Subsequently, watermark_node
subscribes to the previous, republishes the image after adding a watermark on the topic, \watermarked_image
, and the final node, image_view_node
, subscribes to this last topic in order to display it for user.
ros2 run intra_process_demo image_pipeline_all_in_one
4. Image Pipeline All Separately
Please ensure you have a camera connected to your workstation.
In direct contrast with the previous, run the following commands in separate terminals to have camera_node
, watermark_node
and image_view_node
all in their own process, utilizing inter-process node communication.
This starts the camera_node
ROS 2 node and publishes images captured from your workstation web camera onto a ROS 2 topic labelled /image
.
# Open new terminal
ros2 run intra_process_demo camera_node
This starts the watermark_node
ROS 2 node which subscribes to raw images from ROS 2 topic /image
, overlays both process ID number and message address on top of the image visually and publishes to ROS 2 topic /watermarked_image
.
# Open new terminal
ros2 run intra_process_demo watermark_node
This starts the image_view_node
ROS 2 node which subscribes to /watermarked_image
and displays the received images in an OpenCV GUI window.
# Open new terminal
ros2 run intra_process_demo image_view_node
5. Image Pipeline With Two Image Views
Please ensure you have a camera connected to your workstation.
Similar to the Image Pipeline All In One, running image_pipeline_with_two_image_view
will display the image process through intra-process communications.
However, it now instantiates 2 image_view_node
ROS 2 nodes.
# Open new terminal
ros2 run intra_process_demo image_pipeline_with_two_image_view
Verify
1. Two Node Pipeline
When executed correctly, strings should be printed in the terminal similar to what is shown below:
Published message with value: 0, and address: 0x55B68BCC6F20
Received message with value: 0, and address: 0x55B68BCC6F20
Published message with value: 1, and address: 0x55B68BCC6F20
Received message with value: 1, and address: 0x55B68BCC6F20
Published message with value: 2, and address: 0x55B68BCC6F20
Received message with value: 2, and address: 0x55B68BCC6F20
Published message with value: 3, and address: 0x55B68BCC6F20
Received message with value: 3, and address: 0x55B68BCC6F20
2. Cyclic Pipeline
When executed correctly, strings should be printed in the terminal similar to what is shown below:
Published first message with value: 42, and address: 0x555E4F029480
Received message with value: 42, and address: 0x555E4F029480
sleeping for 1 second...
done.
Incrementing and sending with value: 43, and address: 0x555E4F029480
Received message with value: 43, and address: 0x555E4F029480
sleeping for 1 second...
done.
Incrementing and sending with value: 44, and address: 0x555E4F029480
Received message with value: 44, and address: 0x555E4F029480
sleeping for 1 second...
done.
Incrementing and sending with value: 45, and address: 0x555E4F029480
Received message with value: 45, and address: 0x555E4F029480
sleeping for 1 second...
3. Image Pipeline All In One
When executed correctly, an OpenCV GUI window should appear displaying something similar to what is shown below:
Take note how the process_id and Message Pointer Address are all the same, proving that all 3 nodes are in the same process.
4. Image Pipleline All Separately
When executed correctly, an OpenCV GUI window should appear displaying something similar to what is shown below:
Notice how all the process_id and Message Pointer Address are now all different, showing that all nodes are using different processes.
5. Image Pipeline With Two Image Views
When executed correctly, 2 OpenCV GUI window should appear displaying similar to what is show below:
For more details on this implementations, please refer to the references below.
References
Changelog for package intra_process_demo
0.27.2 (2024-07-10)
- Removed pre-compiler check for opencv3 (#698)
- Fix executable name in README.md (#692)
- Contributors: Alejandro Hernández Cordero, Trushant Adeshara
0.27.1 (2023-05-11)
- Fix executable name in README (#619)
- Contributors: Yadunund
0.27.0 (2023-04-13)
- Change all ROS2 -> ROS 2. (#610)
- Contributors: Chris Lalancette
0.26.0 (2023-04-11)
- Added README.md for intra_process_demo (#595)
- Contributors: Gary Bey
0.25.0 (2023-03-01)
0.24.1 (2023-02-24)
0.24.0 (2023-02-14)
- Update the demos to C++17. (#594)
- [rolling] Update maintainers - 2022-11-07 (#589)
- Contributors: Audrow Nash, Chris Lalancette
0.23.0 (2022-11-02)
0.22.0 (2022-09-13)
0.21.0 (2022-04-29)
0.20.1 (2022-04-08)
0.20.0 (2022-03-01)
- Add opencv_imgproc dependency for cv::putText (#554)
- Install includes to include/${PROJECT_NAME} (#548)
- Contributors: Shane Loretz
0.19.0 (2022-01-14)
- Fix include order and relative paths for cpplint (#551)
- Contributors: Jacob Perron
0.18.0 (2021-12-17)
- Update maintainers to Audrow Nash and Michael Jeronimo (#543)
- Additional fixes for documentation in demos. (#538)
- Contributors: Audrow Nash, Chris Lalancette
0.17.0 (2021-10-18)
- Fixing deprecated subscriber callback warnings (#532)
- Contributors: Abrar Rahman Protyasha
0.16.0 (2021-08-11)
- Revert "Add type masquerading demos (#482)" (#520)
- Add type masquerading demos (#482)
- Contributors: Audrow Nash, William Woodall
0.15.0 (2021-05-14)
0.14.2 (2021-04-26)
0.14.1 (2021-04-19)
0.14.0 (2021-04-06)
0.13.0 (2021-03-25)
0.12.1 (2021-03-18)
0.12.0 (2021-01-25)
0.11.0 (2020-12-10)
- Update the package.xml files with the latest Open Robotics maintainers (#466)
- Contributors: Michael Jeronimo
0.10.1 (2020-09-21)
0.10.0 (2020-06-17)
0.9.3 (2020-06-01)
0.9.2 (2020-05-26)
0.9.1 (2020-05-12)
0.9.0 (2020-04-30)
- Fix pendulum_control tests to use stdout stream. (#430)
- Contributors: Chris Lalancette
0.8.4 (2019-11-19)
0.8.3 (2019-11-11)
0.8.2 (2019-11-08)
0.8.1 (2019-10-23)
- Replace ready_fn with ReadyToTest action (#404)
- Contributors: Peter Baughman
0.8.0 (2019-09-26)
0.7.6 (2019-05-30)
0.7.5 (2019-05-29)
- Allow ESC/q/sigint to exit demo (#345)
- Contributors: Dirk Thomas
0.7.4 (2019-05-20)
0.7.3 (2019-05-10)
0.7.2 (2019-05-08)
- changes to avoid deprecated API's (#332)
- Corrected publish calls with shared_ptr signature (#327)
- Migrate launch tests to new launch_testing features & API (#318)
- Contributors: Michel Hidalgo, William Woodall, ivanpauno
0.7.1 (2019-04-26)
0.7.0 (2019-04-14)
- Added launch along with launch_testing as test dependencies. (#313)
- Updated for NodeOptions Node constructor. (#308)
- Contributors: Michael Carroll, Michel Hidalgo
0.6.2 (2019-01-15)
- Updated to support OpenCV 2, 3 and 4 (#307)
- Contributors: Jacob Perron
0.6.1 (2018-12-13)
0.6.0 (2018-12-07)
0.5.1 (2018-06-28)
0.5.0 (2018-06-27)
- Updated launch files to account for the "old launch" getting
renamespaced as
launch
->launch.legacy
. (#239) - Contributors: Dirk Thomas, William Woodall
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
rclcpp | |
sensor_msgs | |
std_msgs | |
ament_cmake | |
ament_cmake_pytest | |
ament_lint_auto | |
ament_lint_common | |
launch | |
launch_testing | |
launch_testing_ament_cmake | |
rmw_implementation_cmake |
System Dependencies
Name |
---|
libopencv-dev |
Dependant Packages
Name | Deps |
---|---|
desktop |
Launch files
Messages
Services
Plugins
Recent questions tagged intra_process_demo at Robotics Stack Exchange
|
Package Summary
Tags | No category tags. |
Version | 0.33.5 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros2/demos.git |
VCS Type | git |
VCS Version | jazzy |
Last Updated | 2024-09-06 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Aditya Pande
- Audrow Nash
Authors
- Mabel Zhang
- William Woodall
What Is This?
The demos in this package are designed to showcase how developers can manually compose ROS 2 nodes by defining them separately but combining them in varied process layouts.
These can be done while avoiding code overhauls or performance restrictions.
This package consists of the following ROS 2 nodes:
camera_node
watermark_node
image_view_node
image_pipeline_all_in_one
two_node_pipeline
cyclic_pipeline
image_pipeline_with_two_image_view
Through the use of intra-process (as opposed to inter-process) node communication, lower latency and thus higher efficiency is observed for ROS 2 topologies that utilizes this manner of communication.
The improvements in latency reduction are even more pronounced when applied to ROS 2 systems with more complex topologies.
Build
colcon build --packages-up-to intra_process_demo
Run
1. Two Node Pipeline
Run two_node_pipeline
via the commands below:
ros2 run intra_process_demo two_node_pipeline
This sets up two nodes, a ROS 2 node that publishes a string with an incremeting integer value, as well as a ROS 2 node that subscribes to print the received string.
2. Cyclic Pipeline
Run cyclic_pipeline
via the commands below:
ros2 run intra_process_demo cyclic_pipeline
Similar to the previous, instead of creating a new message for each new iteration, the publisher and subscriber nodes only ever use one message instance. This is achieved by having a cycle in the graph and kickstarting the communication externally by having one of the nodes publish before spinning the executor.
3. Image Pipeline All In One
Please ensure you have a camera connected to your workstation.
image_pipeline_all_in_one
consists of 3 nodes, where camera_node
publishes a unique_ptr
message onto the topic, \image
. Subsequently, watermark_node
subscribes to the previous, republishes the image after adding a watermark on the topic, \watermarked_image
, and the final node, image_view_node
, subscribes to this last topic in order to display it for user.
ros2 run intra_process_demo image_pipeline_all_in_one
4. Image Pipeline All Separately
Please ensure you have a camera connected to your workstation.
In direct contrast with the previous, run the following commands in separate terminals to have camera_node
, watermark_node
and image_view_node
all in their own process, utilizing inter-process node communication.
This starts the camera_node
ROS 2 node and publishes images captured from your workstation web camera onto a ROS 2 topic labelled /image
.
# Open new terminal
ros2 run intra_process_demo camera_node
This starts the watermark_node
ROS 2 node which subscribes to raw images from ROS 2 topic /image
, overlays both process ID number and message address on top of the image visually and publishes to ROS 2 topic /watermarked_image
.
# Open new terminal
ros2 run intra_process_demo watermark_node
This starts the image_view_node
ROS 2 node which subscribes to /watermarked_image
and displays the received images in an OpenCV GUI window.
# Open new terminal
ros2 run intra_process_demo image_view_node
5. Image Pipeline With Two Image Views
Please ensure you have a camera connected to your workstation.
Similar to the Image Pipeline All In One, running image_pipeline_with_two_image_view
will display the image process through intra-process communications.
However, it now instantiates 2 image_view_node
ROS 2 nodes.
# Open new terminal
ros2 run intra_process_demo image_pipeline_with_two_image_view
Verify
1. Two Node Pipeline
When executed correctly, strings should be printed in the terminal similar to what is shown below:
Published message with value: 0, and address: 0x55B68BCC6F20
Received message with value: 0, and address: 0x55B68BCC6F20
Published message with value: 1, and address: 0x55B68BCC6F20
Received message with value: 1, and address: 0x55B68BCC6F20
Published message with value: 2, and address: 0x55B68BCC6F20
Received message with value: 2, and address: 0x55B68BCC6F20
Published message with value: 3, and address: 0x55B68BCC6F20
Received message with value: 3, and address: 0x55B68BCC6F20
2. Cyclic Pipeline
When executed correctly, strings should be printed in the terminal similar to what is shown below:
Published first message with value: 42, and address: 0x555E4F029480
Received message with value: 42, and address: 0x555E4F029480
sleeping for 1 second...
done.
Incrementing and sending with value: 43, and address: 0x555E4F029480
Received message with value: 43, and address: 0x555E4F029480
sleeping for 1 second...
done.
Incrementing and sending with value: 44, and address: 0x555E4F029480
Received message with value: 44, and address: 0x555E4F029480
sleeping for 1 second...
done.
Incrementing and sending with value: 45, and address: 0x555E4F029480
Received message with value: 45, and address: 0x555E4F029480
sleeping for 1 second...
3. Image Pipeline All In One
When executed correctly, an OpenCV GUI window should appear displaying something similar to what is shown below:
Take note how the process_id and Message Pointer Address are all the same, proving that all 3 nodes are in the same process.
4. Image Pipleline All Separately
When executed correctly, an OpenCV GUI window should appear displaying something similar to what is shown below:
Notice how all the process_id and Message Pointer Address are now all different, showing that all nodes are using different processes.
5. Image Pipeline With Two Image Views
When executed correctly, 2 OpenCV GUI window should appear displaying similar to what is show below:
For more details on this implementations, please refer to the references below.
References
Changelog for package intra_process_demo
0.33.5 (2024-09-06)
- Removed pre-compiler check for opencv3 (#695) (#696) (cherry picked from commit e5dc79917333bb6bc9a3efe02fecb3c214cfacef) Co-authored-by: Alejandro Hernández Cordero <<ahcorde@gmail.com>>
- Contributors: mergify[bot]
0.33.4 (2024-06-27)
- [intra_process_demo] executable name in README.md fix-up (#690) (#691) Co-authored-by: Trushant Adeshara <<150821956+Trushant-Adeshara-UM@users.noreply.github.com>>
0.33.3 (2024-05-13)
0.33.2 (2024-03-28)
- Update maintainer list in package.xml files (#665)
- Contributors: Michael Jeronimo
0.33.1 (2024-02-07)
0.33.0 (2024-01-24)
- Migrate std::bind calls to lambda expressions (#659)
- Contributors: Felipe Gomes de Melo
0.32.1 (2023-12-26)
0.32.0 (2023-11-06)
0.31.1 (2023-09-07)
0.31.0 (2023-08-21)
0.30.1 (2023-07-11)
0.30.0 (2023-06-12)
0.29.0 (2023-06-07)
0.28.1 (2023-05-11)
- Fix executable name in README (#618)
- Contributors: Yadunund
0.28.0 (2023-04-27)
0.27.0 (2023-04-13)
- Change all ROS2 -> ROS 2. (#610)
- Contributors: Chris Lalancette
0.26.0 (2023-04-11)
- Added README.md for intra_process_demo (#595)
- Contributors: Gary Bey
0.25.0 (2023-03-01)
0.24.1 (2023-02-24)
0.24.0 (2023-02-14)
- Update the demos to C++17. (#594)
- [rolling] Update maintainers - 2022-11-07 (#589)
- Contributors: Audrow Nash, Chris Lalancette
0.23.0 (2022-11-02)
0.22.0 (2022-09-13)
0.21.0 (2022-04-29)
0.20.1 (2022-04-08)
0.20.0 (2022-03-01)
- Add opencv_imgproc dependency for cv::putText (#554)
- Install includes to include/${PROJECT_NAME} (#548)
- Contributors: Shane Loretz
0.19.0 (2022-01-14)
- Fix include order and relative paths for cpplint (#551)
- Contributors: Jacob Perron
0.18.0 (2021-12-17)
- Update maintainers to Audrow Nash and Michael Jeronimo (#543)
- Additional fixes for documentation in demos. (#538)
- Contributors: Audrow Nash, Chris Lalancette
0.17.0 (2021-10-18)
- Fixing deprecated subscriber callback warnings (#532)
- Contributors: Abrar Rahman Protyasha
0.16.0 (2021-08-11)
- Revert "Add type masquerading demos (#482)" (#520)
- Add type masquerading demos (#482)
- Contributors: Audrow Nash, William Woodall
0.15.0 (2021-05-14)
0.14.2 (2021-04-26)
0.14.1 (2021-04-19)
0.14.0 (2021-04-06)
0.13.0 (2021-03-25)
0.12.1 (2021-03-18)
0.12.0 (2021-01-25)
0.11.0 (2020-12-10)
- Update the package.xml files with the latest Open Robotics maintainers (#466)
- Contributors: Michael Jeronimo
0.10.1 (2020-09-21)
0.10.0 (2020-06-17)
0.9.3 (2020-06-01)
0.9.2 (2020-05-26)
0.9.1 (2020-05-12)
0.9.0 (2020-04-30)
- Fix pendulum_control tests to use stdout stream. (#430)
- Contributors: Chris Lalancette
0.8.4 (2019-11-19)
0.8.3 (2019-11-11)
0.8.2 (2019-11-08)
0.8.1 (2019-10-23)
- Replace ready_fn with ReadyToTest action (#404)
- Contributors: Peter Baughman
0.8.0 (2019-09-26)
0.7.6 (2019-05-30)
0.7.5 (2019-05-29)
- Allow ESC/q/sigint to exit demo (#345)
- Contributors: Dirk Thomas
0.7.4 (2019-05-20)
0.7.3 (2019-05-10)
0.7.2 (2019-05-08)
- changes to avoid deprecated API's (#332)
- Corrected publish calls with shared_ptr signature (#327)
- Migrate launch tests to new launch_testing features & API (#318)
- Contributors: Michel Hidalgo, William Woodall, ivanpauno
0.7.1 (2019-04-26)
0.7.0 (2019-04-14)
- Added launch along with launch_testing as test dependencies. (#313)
- Updated for NodeOptions Node constructor. (#308)
- Contributors: Michael Carroll, Michel Hidalgo
0.6.2 (2019-01-15)
- Updated to support OpenCV 2, 3 and 4 (#307)
- Contributors: Jacob Perron
0.6.1 (2018-12-13)
0.6.0 (2018-12-07)
0.5.1 (2018-06-28)
0.5.0 (2018-06-27)
- Updated launch files to account for the "old launch" getting
renamespaced as
launch
->launch.legacy
. (#239) - Contributors: Dirk Thomas, William Woodall
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
rclcpp | |
sensor_msgs | |
std_msgs | |
ament_cmake | |
ament_cmake_pytest | |
ament_lint_auto | |
ament_lint_common | |
launch | |
launch_testing | |
launch_testing_ament_cmake | |
rmw_implementation_cmake |
System Dependencies
Name |
---|
libopencv-dev |
Dependant Packages
Name | Deps |
---|---|
desktop |
Launch files
Messages
Services
Plugins
Recent questions tagged intra_process_demo at Robotics Stack Exchange
|
Package Summary
Tags | No category tags. |
Version | 0.35.1 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros2/demos.git |
VCS Type | git |
VCS Version | rolling |
Last Updated | 2024-11-20 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Aditya Pande
- Audrow Nash
Authors
- Mabel Zhang
- William Woodall
What Is This?
The demos in this package are designed to showcase how developers can manually compose ROS 2 nodes by defining them separately but combining them in varied process layouts.
These can be done while avoiding code overhauls or performance restrictions.
This package consists of the following ROS 2 nodes:
camera_node
watermark_node
image_view_node
image_pipeline_all_in_one
two_node_pipeline
cyclic_pipeline
image_pipeline_with_two_image_view
Through the use of intra-process (as opposed to inter-process) node communication, lower latency and thus higher efficiency is observed for ROS 2 topologies that utilizes this manner of communication.
The improvements in latency reduction are even more pronounced when applied to ROS 2 systems with more complex topologies.
Build
colcon build --packages-up-to intra_process_demo
Run
1. Two Node Pipeline
Run two_node_pipeline
via the commands below:
ros2 run intra_process_demo two_node_pipeline
This sets up two nodes, a ROS 2 node that publishes a string with an incremeting integer value, as well as a ROS 2 node that subscribes to print the received string.
2. Cyclic Pipeline
Run cyclic_pipeline
via the commands below:
ros2 run intra_process_demo cyclic_pipeline
Similar to the previous, instead of creating a new message for each new iteration, the publisher and subscriber nodes only ever use one message instance. This is achieved by having a cycle in the graph and kickstarting the communication externally by having one of the nodes publish before spinning the executor.
3. Image Pipeline All In One
Please ensure you have a camera connected to your workstation.
image_pipeline_all_in_one
consists of 3 nodes, where camera_node
publishes a unique_ptr
message onto the topic, \image
. Subsequently, watermark_node
subscribes to the previous, republishes the image after adding a watermark on the topic, \watermarked_image
, and the final node, image_view_node
, subscribes to this last topic in order to display it for user.
ros2 run intra_process_demo image_pipeline_all_in_one
4. Image Pipeline All Separately
Please ensure you have a camera connected to your workstation.
In direct contrast with the previous, run the following commands in separate terminals to have camera_node
, watermark_node
and image_view_node
all in their own process, utilizing inter-process node communication.
This starts the camera_node
ROS 2 node and publishes images captured from your workstation web camera onto a ROS 2 topic labelled /image
.
# Open new terminal
ros2 run intra_process_demo camera_node
This starts the watermark_node
ROS 2 node which subscribes to raw images from ROS 2 topic /image
, overlays both process ID number and message address on top of the image visually and publishes to ROS 2 topic /watermarked_image
.
# Open new terminal
ros2 run intra_process_demo watermark_node
This starts the image_view_node
ROS 2 node which subscribes to /watermarked_image
and displays the received images in an OpenCV GUI window.
# Open new terminal
ros2 run intra_process_demo image_view_node
5. Image Pipeline With Two Image Views
Please ensure you have a camera connected to your workstation.
Similar to the Image Pipeline All In One, running image_pipeline_with_two_image_view
will display the image process through intra-process communications.
However, it now instantiates 2 image_view_node
ROS 2 nodes.
# Open new terminal
ros2 run intra_process_demo image_pipeline_with_two_image_view
Verify
1. Two Node Pipeline
When executed correctly, strings should be printed in the terminal similar to what is shown below:
Published message with value: 0, and address: 0x55B68BCC6F20
Received message with value: 0, and address: 0x55B68BCC6F20
Published message with value: 1, and address: 0x55B68BCC6F20
Received message with value: 1, and address: 0x55B68BCC6F20
Published message with value: 2, and address: 0x55B68BCC6F20
Received message with value: 2, and address: 0x55B68BCC6F20
Published message with value: 3, and address: 0x55B68BCC6F20
Received message with value: 3, and address: 0x55B68BCC6F20
2. Cyclic Pipeline
When executed correctly, strings should be printed in the terminal similar to what is shown below:
Published first message with value: 42, and address: 0x555E4F029480
Received message with value: 42, and address: 0x555E4F029480
sleeping for 1 second...
done.
Incrementing and sending with value: 43, and address: 0x555E4F029480
Received message with value: 43, and address: 0x555E4F029480
sleeping for 1 second...
done.
Incrementing and sending with value: 44, and address: 0x555E4F029480
Received message with value: 44, and address: 0x555E4F029480
sleeping for 1 second...
done.
Incrementing and sending with value: 45, and address: 0x555E4F029480
Received message with value: 45, and address: 0x555E4F029480
sleeping for 1 second...
3. Image Pipeline All In One
When executed correctly, an OpenCV GUI window should appear displaying something similar to what is shown below:
Take note how the process_id and Message Pointer Address are all the same, proving that all 3 nodes are in the same process.
4. Image Pipleline All Separately
When executed correctly, an OpenCV GUI window should appear displaying something similar to what is shown below:
Notice how all the process_id and Message Pointer Address are now all different, showing that all nodes are using different processes.
5. Image Pipeline With Two Image Views
When executed correctly, 2 OpenCV GUI window should appear displaying similar to what is show below:
For more details on this implementations, please refer to the references below.
References
Changelog for package intra_process_demo
0.35.1 (2024-11-20)
0.35.0 (2024-10-03)
0.34.2 (2024-07-29)
- Removed pre-compiler check for opencv3 (#695)
- Contributors: Alejandro Hernández Cordero
0.34.1 (2024-06-17)
- [intra_process_demo] executable name in README.md fix-up (#690)
- Contributors: Trushant Adeshara
0.34.0 (2024-04-26)
0.33.2 (2024-03-28)
- Update maintainer list in package.xml files (#665)
- Contributors: Michael Jeronimo
0.33.1 (2024-02-07)
0.33.0 (2024-01-24)
- Migrate std::bind calls to lambda expressions (#659)
- Contributors: Felipe Gomes de Melo
0.32.1 (2023-12-26)
0.32.0 (2023-11-06)
0.31.1 (2023-09-07)
0.31.0 (2023-08-21)
0.30.1 (2023-07-11)
0.30.0 (2023-06-12)
0.29.0 (2023-06-07)
0.28.1 (2023-05-11)
- Fix executable name in README (#618)
- Contributors: Yadunund
0.28.0 (2023-04-27)
0.27.0 (2023-04-13)
- Change all ROS2 -> ROS 2. (#610)
- Contributors: Chris Lalancette
0.26.0 (2023-04-11)
- Added README.md for intra_process_demo (#595)
- Contributors: Gary Bey
0.25.0 (2023-03-01)
0.24.1 (2023-02-24)
0.24.0 (2023-02-14)
- Update the demos to C++17. (#594)
- [rolling] Update maintainers - 2022-11-07 (#589)
- Contributors: Audrow Nash, Chris Lalancette
0.23.0 (2022-11-02)
0.22.0 (2022-09-13)
0.21.0 (2022-04-29)
0.20.1 (2022-04-08)
0.20.0 (2022-03-01)
- Add opencv_imgproc dependency for cv::putText (#554)
- Install includes to include/${PROJECT_NAME} (#548)
- Contributors: Shane Loretz
0.19.0 (2022-01-14)
- Fix include order and relative paths for cpplint (#551)
- Contributors: Jacob Perron
0.18.0 (2021-12-17)
- Update maintainers to Audrow Nash and Michael Jeronimo (#543)
- Additional fixes for documentation in demos. (#538)
- Contributors: Audrow Nash, Chris Lalancette
0.17.0 (2021-10-18)
- Fixing deprecated subscriber callback warnings (#532)
- Contributors: Abrar Rahman Protyasha
0.16.0 (2021-08-11)
- Revert "Add type masquerading demos (#482)" (#520)
- Add type masquerading demos (#482)
- Contributors: Audrow Nash, William Woodall
0.15.0 (2021-05-14)
0.14.2 (2021-04-26)
0.14.1 (2021-04-19)
0.14.0 (2021-04-06)
0.13.0 (2021-03-25)
0.12.1 (2021-03-18)
0.12.0 (2021-01-25)
0.11.0 (2020-12-10)
- Update the package.xml files with the latest Open Robotics maintainers (#466)
- Contributors: Michael Jeronimo
0.10.1 (2020-09-21)
0.10.0 (2020-06-17)
0.9.3 (2020-06-01)
0.9.2 (2020-05-26)
0.9.1 (2020-05-12)
0.9.0 (2020-04-30)
- Fix pendulum_control tests to use stdout stream. (#430)
- Contributors: Chris Lalancette
0.8.4 (2019-11-19)
0.8.3 (2019-11-11)
0.8.2 (2019-11-08)
0.8.1 (2019-10-23)
- Replace ready_fn with ReadyToTest action (#404)
- Contributors: Peter Baughman
0.8.0 (2019-09-26)
0.7.6 (2019-05-30)
0.7.5 (2019-05-29)
- Allow ESC/q/sigint to exit demo (#345)
- Contributors: Dirk Thomas
0.7.4 (2019-05-20)
0.7.3 (2019-05-10)
0.7.2 (2019-05-08)
- changes to avoid deprecated API's (#332)
- Corrected publish calls with shared_ptr signature (#327)
- Migrate launch tests to new launch_testing features & API (#318)
- Contributors: Michel Hidalgo, William Woodall, ivanpauno
0.7.1 (2019-04-26)
0.7.0 (2019-04-14)
- Added launch along with launch_testing as test dependencies. (#313)
- Updated for NodeOptions Node constructor. (#308)
- Contributors: Michael Carroll, Michel Hidalgo
0.6.2 (2019-01-15)
- Updated to support OpenCV 2, 3 and 4 (#307)
- Contributors: Jacob Perron
0.6.1 (2018-12-13)
0.6.0 (2018-12-07)
0.5.1 (2018-06-28)
0.5.0 (2018-06-27)
- Updated launch files to account for the "old launch" getting
renamespaced as
launch
->launch.legacy
. (#239) - Contributors: Dirk Thomas, William Woodall
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
rclcpp | |
sensor_msgs | |
std_msgs | |
ament_cmake | |
ament_cmake_pytest | |
ament_lint_auto | |
ament_lint_common | |
launch | |
launch_testing | |
launch_testing_ament_cmake | |
rmw_implementation_cmake |
System Dependencies
Name |
---|
libopencv-dev |
Dependant Packages
Name | Deps |
---|---|
desktop |
Launch files
Messages
Services
Plugins
Recent questions tagged intra_process_demo at Robotics Stack Exchange
|
Package Summary
Tags | No category tags. |
Version | 0.14.4 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros2/demos.git |
VCS Type | git |
VCS Version | galactic |
Last Updated | 2022-12-07 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Mabel Zhang
- Michael Jeronimo
Authors
- William Woodall
Changelog for package intra_process_demo
0.14.4 (2022-12-06)
0.14.3 (2021-05-10)
0.14.2 (2021-04-26)
0.14.1 (2021-04-19)
0.14.0 (2021-04-06)
0.13.0 (2021-03-25)
0.12.1 (2021-03-18)
0.12.0 (2021-01-25)
0.11.0 (2020-12-10)
- Update the package.xml files with the latest Open Robotics maintainers (#466)
- Contributors: Michael Jeronimo
0.10.1 (2020-09-21)
0.10.0 (2020-06-17)
0.9.3 (2020-06-01)
0.9.2 (2020-05-26)
0.9.1 (2020-05-12)
0.9.0 (2020-04-30)
- Fix pendulum_control tests to use stdout stream. (#430)
- Contributors: Chris Lalancette
0.8.4 (2019-11-19)
0.8.3 (2019-11-11)
0.8.2 (2019-11-08)
0.8.1 (2019-10-23)
- Replace ready_fn with ReadyToTest action (#404)
- Contributors: Peter Baughman
0.8.0 (2019-09-26)
0.7.6 (2019-05-30)
0.7.5 (2019-05-29)
- Allow ESC/q/sigint to exit demo (#345)
- Contributors: Dirk Thomas
0.7.4 (2019-05-20)
0.7.3 (2019-05-10)
0.7.2 (2019-05-08)
- changes to avoid deprecated API's (#332)
- Corrected publish calls with shared_ptr signature (#327)
- Migrate launch tests to new launch_testing features & API (#318)
- Contributors: Michel Hidalgo, William Woodall, ivanpauno
0.7.1 (2019-04-26)
0.7.0 (2019-04-14)
- Added launch along with launch_testing as test dependencies. (#313)
- Updated for NodeOptions Node constructor. (#308)
- Contributors: Michael Carroll, Michel Hidalgo
0.6.2 (2019-01-15)
- Updated to support OpenCV 2, 3 and 4 (#307)
- Contributors: Jacob Perron
0.6.1 (2018-12-13)
0.6.0 (2018-12-07)
0.5.1 (2018-06-28)
0.5.0 (2018-06-27)
- Updated launch files to account for the "old launch" getting
renamespaced as
launch
->launch.legacy
. (#239) - Contributors: Dirk Thomas, William Woodall
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
rclcpp | |
sensor_msgs | |
std_msgs | |
ament_cmake | |
ament_cmake_pytest | |
ament_lint_auto | |
ament_lint_common | |
launch | |
launch_testing | |
launch_testing_ament_cmake | |
rmw_implementation_cmake |
System Dependencies
Name |
---|
libopencv-dev |
Dependant Packages
Name | Deps |
---|---|
desktop |