Closed RuPingCen closed 2 months ago
Thanks for reporting! Note that PR #442 is still marked as draft because it is not finished yet.
My guess is that the SIGABRT
is caused by some assertion failure in the C++ code, but it's difficult to say without the log output. Could you check whether there's a out
subfolder after running? Dora should write all the node logs to it since https://github.com/dora-rs/dora/pull/429 . Maybe you can find the full output of the C++ node there?
here is the out log of 018e84bc-33d0-7641-bbec-d8087f139bf0
HELLO FROM C++ timeout while waiting for service, retrying timeout while waiting for service, retrying timeout while waiting for service, retrying timeout while waiting for service, retrying timeout while waiting for service, retrying timeout while waiting for service, retrying timeout while waiting for service, retrying timeout while waiting for service, retrying timeout while waiting for service, retrying timeout while waiting for service, retrying terminate called after throwing an instance of 'rust::cxxbridge1::Error' what(): service not available
Did you start the ros2 run demo_nodes_cpp add_two_ints_server
command as described in https://github.com/dora-rs/dora/blob/main/examples/c%2B%2B-ros2-dataflow/README.md#running-service-example?
I can repeat the above error with ros2 run demo_nodes_cpp add_two_ints_server running from another terminal. I think this issue is a new issue since around 3/26 as I ran this example successfully one week ago.
I have tried with 2 more clean Ubuntu 20.04 and can repeat the issue.
and while the error reported from terminal cargo run --example cxx-ros2-dataflow --features ros2-examples
the The ROS2 terminal command is
ros2 run demo_nodes_cpp add_two_ints_server
and it reported below
[INFO] [1711949751.317727832] [add_two_ints_server]: Incoming request
a: 0 b: 0
Just want to say, that you can create a docker instance to emulate a new Ubuntu version using:
docker run --network=host -e DISPLAY=${DISPLAY} -v $(pwd):/current_dora_folder -it osrf/ros:humble-desktop
We just had a meeting together to debug this. The cause for this error was that ROS2 galactic uses Cyclone DDS by default, but our ROS2 bridge currently hardcodes a different service mapping (see #449). To work around this issue, set RMW_IMPLEMENTATION=rmw_fastrtps_cpp
in both terminals (i.e. in the terminal running the service server and in the terminal running the cxx-ros2-dataflow
example).
This problem still exists when I use a new computer, the version of ROS2 is galactic and ubuntu20.04. I have set the parameter RMW_IMPLEMENTATION by using export RMW_IMPLEMENTATION=rmw_fastrtps_cpp
.
And the log out :
HELLO FROM C++ timeout while waiting for service, retrying timeout while waiting for service, retrying timeout while waiting for service, retrying timeout while waiting for service, retrying timeout while waiting for service, retrying timeout while waiting for service, retrying timeout while waiting for service, retrying timeout while waiting for service, retrying timeout while waiting for service, retrying timeout while waiting for service, retrying terminate called after throwing an instance of 'rust::cxxbridge1::Error' what(): service not available
You need to launch the example add_two_ints
service server of ROS2 in a separate terminal, also with RMW_IMPLEMENTATION=rmw_fastrtps_cpp
.
Describe the bug
dora version : V0.3.2
error in run example "cxx-ros2-dataflow" in brach ros2-service-server
To Reproduce Steps to reproduce the behavior:
Expected behavior