Closed frenklakAloft closed 10 months ago
Hi @frenklakAloft Thank you for reaching out to us. We are currently investigating the issue and will provide an update when/if a fix is required. Thank you!
Hi @frenklakAloft
We have worked on a fix for this issue. It is a new file with an example of running 2 TTY-based driver instances. You can find the files here: src/novatel_oem7_driver/launch/oem7_tty_2.launch src/novatel_oem7_driver/launch/oem7_tty_2_ns.launch
Hello, I am successfully running branch 4.0.1 for multiple simultaneous instances of the driver, only when using "net" communications, not when using tty.
Specifically, I can run the test cases of oem7_net.launch, oem7_net_2.launch, and oem7_tty.launch (the single instance tty interface), but the driver fails on test of oem7_tty_2.launch. Our systems are all ubuntu and installations of ROS 1 are all noetic, and PwrPaks are connected with both ethernet and USB.
Since single instance tty works (I can query topics), I'm confident the physical connection is okay. The net launch allows dual instances, so it's not a namespace issue either. Based on the output pasted below, it seems to be something internal to the driver -- a type issue or something similar. Any debugging help for that test case of oem7_tty_2.launch would be much appreciated so that we can rely on usb communications for multiple instances within branch 4.0.1.
COMMAND:
roslaunch /opt/ros/noetic/share/novatel_oem7_driver/launch/oem7_tty_2.launch
ERROR TEXT:
setting /run_id to 5525c5c2-e843-11ed-9af1-9b9e10b37006 process[rosout-1]: started with pid [2670] started core service [/rosout] process[oem7_driver-2]: started with pid [2677] process[oem7_msg-3]: started with pid [2678] process[oem7_cfg-4]: started with pid [2679] [ INFO] [1682961142.947455306]: Loading nodelet /oem7_msg of type novatel_oem7_driver/Oem7MessageNodelet to manager oem7_driver with the following remappings: [ INFO] [1682961142.968603411]: waitForService: Service [/oem7_driver/load_nodelet] has not been advertised, waiting... [ INFO] [1682961142.979312008]: Loading nodelet /oem7_cfg of type novatel_oem7_driver/Oem7ConfigNodelet to manager oem7_driver with the following remappings: [ INFO] [1682961142.992229723]: waitForService: Service [/oem7_driver/load_nodelet] has not been advertised, waiting... [ INFO] [1682961143.019810685]: Initializing nodelet with 4 worker threads. [ INFO] [1682961143.034352731]: waitForService: Service [/oem7_driver/load_nodelet] is now available. [ INFO] [1682961143.037888220]: waitForService: Service [/oem7_driver/load_nodelet] is now available. [ INFO] [1682961143.054429350]: /oem7_msg: Oem7MessageNodelet v.4.0.1; Apr 18 2023 18:48:05 [FATAL] [1682961143.059504356]: Fatal: According to the loaded plugin descriptions the class with base class type novatel_oem7_driver::Oem7ReceiverIf does not exist. Declared types are Oem7ReceiverFile Oem7ReceiverPort Oem7ReceiverTcp Oem7ReceiverUdp [FATAL] [1682961143.193030654]: Failed to load nodelet '/oem7_msg'
what(): boost: mutex lock failed in pthread_mutex_lock: Invalid argument
of type
novatel_oem7_driver/Oem7MessageNodeletto manager
oem7_driver' [FATAL] [1682961143.193048505]: Failed to load nodelet '/oem7_cfgof type
novatel_oem7_driver/Oem7ConfigNodeletto manager
oem7_driver' terminate called after throwing an instance of 'boost::wrapexcept