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.

https://github.com/ipa-hsd/action_bridge

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:

https://github.com/ros2/design/issues/195

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 https://www.youtube.com/watch?v=4uKWhfW3_1s

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 hsd-dev · Pull Request #256 · ros2/ros1_bridge · GitHub

1 Like