-
Notifications
You must be signed in to change notification settings - Fork 135
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
thread-caused malfunction #104
Comments
Hi @ DrShIkIgAmy, thanks for contacting us. I have not accounted for the cases when users run more than one component of the same type in the same process. In this case, static variables will cause issues. I will address this ASAP.
Ussama
|
I appreciate it. I thought that it's common to use at least two lidars on autonomous object, so the static vars look like a bug to me, so I tagged it like a bug. I don't know that it is not considered to run under one process. But I would be nice to implement that possibility, 'cause it could increase efficiency of node communication. |
@DrShIkIgAmy Could you try any of the two pull requests and check if this completely resolves the issue for your use case or not?
Thanks |
@DrShIkIgAmy Any luck verifying that the changes included in #108 and #109 fully addresses this issue? I am ready to merge it but I don't want to do so right away and then find out that I missed something that still prevents you from spawning multiple components of same type within the same process. |
@DrShIkIgAmy I haven't heard back from you since last week, I did run my own assessment which includes setting up multiple sensors and cloud nodes within a single process. That being said I went ahead and merged the fix. Let me know if this didn't fully address your problem. |
Hi @Samahu , there're some critical issues in ros2 version (at least ros2 version) srcs.
Case: Since it is components, I'd like to run it under container. I have two lidars and I have to run two os_cloud_node and two os_sensor_node. To obtain resulting point cloud I have to run merger_component (custom component). Now here we got a problem: to provide effective intra-process comm I have to run all five nodes under one container, so it would be one process with several threads. At this point I face at least two problems. First one is: the sensor reinits continuously. The second one is: pointcloud messages could get corrupted.
ouster-ros/ouster-ros/src/os_sensor_node.cpp
Line 697 in 592e316
ouster-ros/ouster-ros/src/os_cloud_node.cpp
Line 177 in 592e316
The problem lays in the static vars. I can't even imaging what for u've used the static var in these cases, but it is big mistake.
The text was updated successfully, but these errors were encountered: