Skip to content

exclude ros1 nodelets#152

Merged
Karsten1987 merged 3 commits intomasterfrom
exclude_nodelet
Dec 12, 2018
Merged

exclude ros1 nodelets#152
Karsten1987 merged 3 commits intomasterfrom
exclude_nodelet

Conversation

@Karsten1987
Copy link
Copy Markdown
Contributor

@Karsten1987 Karsten1987 commented Dec 10, 2018

connects to ros2/rosbag2#69
this PR excludes nodelets so that rosbag2 can replay ros1 bag files without linking conflicts.

@Karsten1987 Karsten1987 self-assigned this Dec 10, 2018
@Karsten1987 Karsten1987 added the in progress Actively being worked on (Kanban column) label Dec 10, 2018
@Karsten1987
Copy link
Copy Markdown
Contributor Author

CI packaging job to test the bridge
Build Status

@dirk-thomas
Copy link
Copy Markdown
Member

👍 This will fix the imminent problem and not link against libnodelet.

I am wondering though if this works if ROS 1 is built in isolation. Are the services in the nodelet package just not available for bridging or does it fail anywhere due to no finding their headers?

@nuclearsandwich nuclearsandwich added in review Waiting for review (Kanban column) and removed in progress Actively being worked on (Kanban column) labels Dec 11, 2018
@Karsten1987
Copy link
Copy Markdown
Contributor Author

Build Status

Copy link
Copy Markdown
Contributor

@sloretz sloretz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The change seems safe, though it seems likely to happen again unless there is a way to link against just the generated message library in a package instead of all libraries in a package.

@wjwwood
Copy link
Copy Markdown
Member

wjwwood commented Dec 12, 2018

The right solution to this problem is to ensure that the class loader used in ROS 1 and ROS 2 can be used at the same time, either by using different namespaces or by hiding conflicting symbols so they don't collide at link time or by making it so that the same exact version of class loader is used in both.

Copy link
Copy Markdown
Member

@wjwwood wjwwood left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm as a workaround, though there should be at least a TODO about it in the code and probably an issue.

The chances of someone fixing this problem down the road and remembering to change this, without an issue or TODO to cross reference, is pretty small in my opinion.

@Karsten1987 Karsten1987 merged commit 070600e into master Dec 12, 2018
@Karsten1987 Karsten1987 deleted the exclude_nodelet branch December 12, 2018 16:04
@Karsten1987 Karsten1987 removed the in review Waiting for review (Kanban column) label Dec 12, 2018
@Karsten1987
Copy link
Copy Markdown
Contributor Author

I went ahead and merged this. I've put a TODO in the CMakeLists and opened an issue on ros/class_loader.
I wasn't entirely sure whether class_loader is the right repo over ros/pluginlib.

dhananjaysathe pushed a commit to rapyuta-robotics/ros1_bridge that referenced this pull request Aug 22, 2019
* exclude ros1 nodelets

* find_package() only if neccessary

* add todo

Signed-off-by: Dhananjay Sathe <dhananjay.sathe@rapyuta-robotics.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants