Introducing action_bridge

Hello everyone!

On the eve of recently organized ROS-Industrial EU Spring '19 Workshop on DDS and ROS2 at Fraunhofer IPA, our team presented a short “how-to” on porting ur_modern_driver to ROS2. More interestingly, for the purpose, we had to bridge the actions between ROS1 and ROS2.

We have a proposal for the action_bridge, which currently bridges between ROS1 action client and ROS2 action server.

Feedbacks and PRs are welcome.

6 Likes

Is there a reason for not integrating the functionality into the existing ros1_bridge package which already provides bridging functionality for pub/sub as well as services? It seems that it would be more convenient from a users perspective if only one bridge needs to be started to map all kinds of communication patterns.

Limited time and resources…
For now action_bridge is a proof-of-concept to test the implemented logic without the need for factories, code generation and auto-discovery. Integrating the functionality into ros1_bridge should be the ultimate goal:

Bridging actions is a little bit more complicated.
It involves conversion between topics and services, and translating the ROS1 and ROS2 action goal IDs. We are depending on actionlib and rclcpp_action to ensure the correct behavior, but this approach requires a thread for each goal to wait for the result.
A callback API for rclcpp_action was introduced for dashing, it will simplify the integration and avoid these waiting threads.

1 Like

May I request some opinion here?

as mentioned above, i think that it would be better to integrate into ros1_bridge. because ros1_bridge provides base classes/interfaces to support bi-direction and mapping rules. does anyone have intention to do that ? or any other requirement ?

@ipa-mdl @ipa-hsd
btw, for action_bridge, i did face build issue, could check issue ?

So the ultimate goal is to integrate action_bridge into ROS1_bridge.
(I replied to your build issue)

2 Likes

@ipa-hsd

okay that’s good to know, already targeting that final goal.
and also thanks for the reply, if anything comes up, will share either here or github.

thanks

2 Likes

Hello to everyone.
Which is the progress on this issue ?
Can you bridge services and actions ?
I am a little bit confused …

I want to bridge my /locobot/movebase action.

Based on this Using the ROS1 Bridge for ROS1-ROS2 communication | ROS Developers Live Class #129 - YouTube

it should be: ros2 run ros1_bridge action_bridge ros1 move_base_msgs MoveBaseActionGoal /locobot/move_base

but No executable found is the output of the above command.

i believe that it is still under development, you can see PR Implemented action bridge by ipa-hsd · Pull Request #256 · ros2/ros1_bridge · GitHub

1 Like