-
Notifications
You must be signed in to change notification settings - Fork 299
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
[Humble] No conversion from rcl_interfaces/msg/Log
and rosgraph_msgs/Log
#391
Comments
PS. Also seems to be the case for rolling. |
Not a fix, but a workaround to enable the use of ROS1 bridge with the above Dockerfile (without logging): Instead of |
But that would mean I would need to configure all nodes to run without |
Hi! Were you able to resolve the issue? I am also experiencing the same error. |
I did something similar here, but with the addition of rosbridge_suite: https://github.com/brow1633/ros_docker/blob/main/ros-humble-bridge I'm not sure about configuring other nodes. I haven't run into issues, but haven't run this extensively to be honest. |
@brow1633 because you are using |
So this #393 (comment) led me to investigate the history. The last working commit for @LoyVanBeek did you ever run in to problems with |
Hey Tim Nope, have never tried bridging those until now. topics:
- topic: /rosout
type: rcl_interfaces/msg/Log
queue_size: 1 I get:
We're still on Foxy + Noetic btw. Even with the mapping rules in https://github.com/ros2/rcl_interfaces/blob/humble/rcl_interfaces/mapping_rules.yaml, the 'enum' for error levels also doesn't yet line up. And the ROS1 field ros1_field_missing_in_ros2 = any(ros1_fields_not_mapped)
if ros1_field_missing_in_ros2:
# if some fields exist in ROS 1 but not in ROS 2
# check that no fields exist in ROS 2 but not in ROS 1
# since then it might be the case that those have been renamed and should be mapped
for ros2_member in ros2_spec.structure.members:
for ros1_field in ros1_spec.parsed_fields():
if ros1_field.name.lower() == ros2_member.name:
break
else:
# if fields from both sides are not mappable the whole message is not mappable
return None
return mapping So I'm not sure what the problem is. I have a branch on my fork https://github.com/LoyVanBeek/ros1_bridge/tree/debug/mapping_uuids that adds a whole bunch of logging to pinpoint this. All I have to offer at the moment. |
Yes, i found the same issue for rolling ros2 version. i installed the ros noetic version in my ubuntu22 docker container built from source. and when I print out the pairs, there is no output like this: I have tried many methods to solve this problem, but it does not work. i would appreciate that If anybody could provide a solution to it. |
Hi guys, I have solved this problem with this commit b9f1739. |
You are pointing to a commit that modified a typo in a readme. I guess you meant another commit? |
is there a solution to this problem? do we just checkout the code at this point of commit b9f1739? |
We do. But that's how it goes: workaround is in place, so the issue plunges down the backlog 🙁 |
Thanks for the follow up. I modified https://github.com/contradict/ros-humble-ros1-bridge/blob/main/Dockerfile to checkout the commit. Afterwards, I tried running the examples. ros-humble-ros1-bridge running ros1-bridge i can see that the bridge is connected but my listener is not outputting anything. is there another bug i am unaware of? updateI run the commnad Publisher count: 1 Node name: NODE_NAME_UNKNOWN Subscription count: 1 Node name: NODE_NAME_UNKNOWN and apparently the Node name for the ros1_bridge package in my ros2 humble docker is not defined. NODE_NAME_UNKNOWN issue resolvedproblem was my docker network configuration and host firewall settings, the ros1_bridge works fine. |
Not to my knowledge. But if you go bug-hunting: might as well try the master 😉 |
Hi. This thread helped me a lot in getting the ros1-bridge to work on my ROS2 Humble + ROS Noetic setup. I've created a Docker image that can build the |
Nice work. I actually made it to work on ROS2 Iron + ROS Noetic. Also the bridge works by copying the build output into my ROS2 install folder which is very neat and clean. |
I'm running a horrible amalgamation of master + action support + some cherry picked fixes. I had to create custom convert_2_to_1 template specializations to convert the severity levels between ros1/ros2. The dynamic bridge needed an extra check to set the QoS for /rosout as well. The other nodes might need that too, but I haven't looked at them. I'm not sure if this repo is still alive, or will accept changes for humble. |
I think the issue is with the
In the last loop, the code is maybe trying to add mapping rules that don't share the same package names for ROS 1 and ROS 2, like The
and the
In this case, I'm not quite sure about the purpose of the check This might be related to #367, which introduced the |
from @Timple #391 (comment) :
This change has triggered the check in From @maum-meliora #391 (comment)
This seems the be unrelated to #367. It was broken before that PR as well for custom mappings that also specify message names or fields mappings. I have a open WorkInProgress PR on our ros1_bridge fork that fixes both issues: mojin-robotics#21 What is missing is that the So we need custom mapping code like for |
Bug report
Required Info:
ros_bridge
from sourceSteps to reproduce issue
Then run with this docker-compose file:
Expected behavior
Bridging
/rosout
Actual behavior
Not bridging
/rosout
Additional information
Seems like the mapping is not found: https://github.com/ros2/rcl_interfaces/blob/humble/rcl_interfaces/mapping_rules.yaml
Relevant other issues:
#159 Was fixed, is broken again for humble
contradict/ros-humble-ros1-bridge#2 (Not the fault of the dockerfile I think)
The text was updated successfully, but these errors were encountered: