Is there already an ros1_bridge Lib in the beta2 binary-release, which I could direcly use it?
Or another question:
Is there a way to build the ros1_bridge package in windows, and use it to communication bewteen a ROS2_node on windows and a ROS1_node in a linux_virtualbox?
From what I know now, the building of ros1_bridge package would also require some of the ros1 packages?
Yes, the binary release contains the ros1_bridge
package. It is being compiled with a set of common message packages. If you need to support additional messages you need to build the package from source.
In theory yes, you should be able to build the ros1_bridge
package on Windows. But you will need to build the necessary ROS 1 packages on Windows as well which is certainly not pleasant and well supported. But some users have done that in the past so it should be possible.
For your situation you may find the following sufficient:
On the windows machine, run only ROS 2 nodes.
On the linux machine, run your ROS 1 nodes, and run the ros1_bridge
from binaries to talk with the windows machine.
This is a well-supported setup
Thank you! This is a good solution.
Still, I’m not very sure how does this ros1_bridge work?
Is it a ros2_node that receive messages from a ros1_node and then simultaneously publish them?
, the bridge is a process that has a ROS 1 node and a ROS 2 node. It subscribes to topics on both sides and publish them on the other side. The default behavior of the dynamic_bridge is to bridge only topics that have a publisher on one side and a matching subscriber on the other side (for example a ROS1 publisher on “chatter” and a ROS2 subscriber on “chatter”). This behavior can be changed by using the commandline arguments
I see, thank you for your answer.
Now I’m trying to implement a graphic interface using Qt for ROS1&2 talker and listener on linux ( select a msg-type then click “publish” or “subscribe” -button that kind of simple GUI).
Using the rclcpp library and std_msg library is straight-forward, but how should I use this “ros1_bridge” library? Is there a document or example codes out there about it?
Thank you!
The ros1_bridge
package only generates executables but no libraries at the moment. Therefore you would run the dynamic_bridge
executable as a separate process. In the future we might provide a library which provides a component which can be dynamically loaded into a component manager to make use of the intra-process communication advantages.
Please see the README as well as the docs in the repository for some documention.