Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bridge not compatible with ROS2 actions #60

Closed
ccpowers opened this issue Nov 21, 2022 · 2 comments · Fixed by #61
Closed

Bridge not compatible with ROS2 actions #60

ccpowers opened this issue Nov 21, 2022 · 2 comments · Fixed by #61
Assignees
Labels
bug Something isn't working

Comments

@ccpowers
Copy link

When launching the foxglove bridge in ROS2, it will crash if an action server is present.

  • Version: latest
  • Platform: ubuntu jammy, ros2 humble

Steps To Reproduce

  1. Launch the getting started example for Nav2: https://navigation.ros.org/getting_started/index.html#running-the-example
    Specifically, the following:
export TURTLEBOT3_MODEL=waffle
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:/opt/ros/<ros2-distro>/share/turtlebot3_gazebo/models
ros2 launch nav2_bringup tb3_simulation_launch.py headless:=False

Alternately, you can probably reproduce by launching anything that has an action server or client.

  1. Run the foxglove bridge:
ros2 run foxglove_bridge foxglove_bridge

The bridge will exit with an error (described below).

Expected Behavior
Bridge launches.

Actual Behavior
Bridge crashes with error:

terminate called after throwing an instance of 'std::invalid_argument'
  what():  Invalid package resource name: nav2_msgs/action/NavigateThroughPoses_FeedbackMessage
@ccpowers ccpowers added the bug Something isn't working label Nov 21, 2022
@achim-k
Copy link
Collaborator

achim-k commented Nov 21, 2022

This seems to be a consequence of #58

@achim-k
Copy link
Collaborator

achim-k commented Nov 21, 2022

I have submitted #61 which, for now, only prevents the node from crashing. Proper support for ROS2 action topics will be implemented later on (#11)

jhurliman pushed a commit that referenced this issue Nov 21, 2022
**Public-Facing Changes**
Improve error handling when retrieving message definitions (ros2)


**Description**
The presence of action topics causes the bridge to crash:

```
terminate called after throwing an instance of 'std::invalid_argument'
  what():  Invalid package resource name: turtlesim/action/RotateAbsolute_FeedbackMessage
```

The reason why the exception is thrown, is because we assume that
message files are located in the `msg` folder:

https://github.com/foxglove/ros-foxglove-bridge/blob/08ff9e522065a2c9998b0fbf2030d9e8fa363637/ros2_foxglove_bridge/src/message_definition_cache.cpp#L19

This PR for now only adds an additional exception handler that will
simply log a warning. Proper action support will be implemented later
on.


Fixes #60
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Development

Successfully merging a pull request may close this issue.

2 participants