uzh-rpg / rpg_dvs_ros

ROS packages for DVS
MIT License
300 stars 155 forks source link

Connection to node=/davis_ros_driver failed: param client failed #117

Closed bochenxie closed 3 years ago

bochenxie commented 3 years ago

Dear Developers,

Following the steps in the webpage, I install this driver. The system version is Ubuntu 18.04 LTS.

However, I find that there are some errors when I use "roslaunch dvs_renderer davis_mono.launch" with a DAVIS 240C camera. The driver cannot connect the DAVIS 240C, as shown in the following log.

Screenshot from 2021-09-14 19-36-49 Screenshot from 2021-09-14 21-26-28

Could you give me some advice for this case? Thanks a lot for your help.

ShifanZhu commented 3 years ago

Have a similar situation. Below is the gdb information I got.

========

$ gdb ./davis_ros_driver core GNU gdb (Ubuntu 8.1-0ubuntu3.2) 8.1.0.20180409-git Copyright (C) 2018 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: http://www.gnu.org/software/gdb/bugs/. Find the GDB manual and other documentation resources online at: http://www.gnu.org/software/gdb/documentation/. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from ./davis_ros_driver...(no debugging symbols found)...done. /home/zh/code/uslam_ws/devel/lib/davis_ros_driver/core: No such file or directory. (gdb) r Starting program: /home/zh/code/uslam_ws/devel/lib/davis_ros_driver/davis_ros_driver [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". [New Thread 0x7fffed10d700 (LWP 8467)] [New Thread 0x7fffec90c700 (LWP 8468)] [New Thread 0x7fffe7fff700 (LWP 8469)] [New Thread 0x7fffe77fe700 (LWP 8470)] [New Thread 0x7fffe6ffd700 (LWP 8471)] [Thread 0x7fffe6ffd700 (LWP 8471) exited] [New Thread 0x7fffe6ffd700 (LWP 8472)] [New Thread 0x7fffe67fc700 (LWP 8474)] [ INFO] [1631639895.751392305]: DAVIS ID-1 SN-00000545 [2:2] --- ID: 1, Master: 1, DVS X: 346, DVS Y: 260, Logic: 6.

[New Thread 0x7fffe5ffb700 (LWP 8475)] [New Thread 0x7fffe57fa700 (LWP 8476)] [ INFO] [1631639896.082391450]: using default calibration URL [ INFO] [1631639896.082514193]: camera calibration URL: file:///home/zh/.ros/camera_info/DAVIS-00000545.yaml [ INFO] [1631639896.082627295]: Unable to open camera calibration file [/home/zh/.ros/camera_info/DAVIS-00000545.yaml] [ WARN] [1631639896.082684750]: Camera calibration file /home/zh/.ros/camera_info/DAVIS-00000545.yaml not found.

Thread 10 "davis_ros_drive" received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7fffe57fa700 (LWP 8476)] 0x00007ffff58dede3 in std::_Rb_tree_decrement(std::_Rb_tree_node_base*) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (gdb) bt

0 0x00007ffff58dede3 in std::_Rb_tree_decrement(std::_Rb_tree_node_base*) ()

from /usr/lib/x86_64-linux-gnu/libstdc++.so.6

1 0x00007ffff6dac69c in boost::detail::add_new_tss_node(void const, boost::shared_ptr, void) () from /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1

2 0x00007ffff6dad5cc in boost::detail::set_tss_data(void const, boost::shared_ptr, void, bool) () from /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1

3 0x00007ffff77013f6 in ros::CallbackQueue::setupTLS() () from /opt/ros/melodic/lib/libroscpp.so

4 0x00007ffff770428f in ros::CallbackQueue::callAvailable(ros::WallDuration) ()

from /opt/ros/melodic/lib/libroscpp.so

5 0x00007ffff774467e in ros::spinOnce() () from /opt/ros/melodic/lib/libroscpp.so

6 0x00005555555910f1 in davis_ros_driver::DavisRosDriver::readout() ()

7 0x00007ffff6dacbcd in ?? () from /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1

8 0x00007ffff6b836db in start_thread (arg=0x7fffe57fa700) at pthread_create.c:463

9 0x00007ffff5337a3f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

(gdb)

grammers commented 3 years ago

I also have the some issue. I am getting a segmentation fault when I try to run davis_ros_driver by it self.

spotnuc@spotnuc-NUC10i5FNK:~/ros_workspaces/event_dvs/src/rpg_dvs_ros$ rosrun davis_ros_driver davis_ros_driver 
[ INFO] [1632478054.260927865]: DAVIS ID-1 SN-00000305 [2:7] --- ID: 1, Master: 1, DVS X: 346, DVS Y: 260, Logic: 6.

[ INFO] [1632478054.588147418]: using default calibration URL
[ INFO] [1632478054.588257331]: camera calibration URL: file:///home/spotnuc/.ros/camera_info/DAVIS-00000305.yaml
Segmentation fault (core dumped)

By disconnect an connecting the camera am I guessing the crash happens when the driver connects to the camera.

Also I successfully installed it and run it in June on a different pc and re-installation on that one works fine.

A wild guess is that it is a dependency that has updated and it causes the crash but I have no idea what dependency and it could be some thing else.

All this are done on ubuntu 18.04.

llongi commented 3 years ago

Hello, the issue is most probably the new version of Boost we have in our iniVation PPA repository, a package called 'boost-inivation'. The ROS build system seems to get confused about which Boost to use at compile and runtime, which leads to this crash. A quick fix is to uninstall the 'boost-inivation' package, then clean and rebuild the ROS packages, then they should work again.

bochenxie commented 3 years ago

Hello, the issue is most probably the new version of Boost we have in our iniVation PPA repository, a package called 'boost-inivation'. The ROS build system seems to get confused about which Boost to use at compile and runtime, which leads to this crash. A quick fix is to uninstall the 'boost-inivation' package, then clean and rebuild the ROS packages, then they should work again.

@llongi Thanks a lot for your help! :+1: :+1: :+1:

bochenxie commented 3 years ago

I also have the some issue. I am getting a segmentation fault when I try to run davis_ros_driver by it self.

spotnuc@spotnuc-NUC10i5FNK:~/ros_workspaces/event_dvs/src/rpg_dvs_ros$ rosrun davis_ros_driver davis_ros_driver 
[ INFO] [1632478054.260927865]: DAVIS ID-1 SN-00000305 [2:7] --- ID: 1, Master: 1, DVS X: 346, DVS Y: 260, Logic: 6.

[ INFO] [1632478054.588147418]: using default calibration URL
[ INFO] [1632478054.588257331]: camera calibration URL: file:///home/spotnuc/.ros/camera_info/DAVIS-00000305.yaml
Segmentation fault (core dumped)

By disconnect an connecting the camera am I guessing the crash happens when the driver connects to the camera.

Also I successfully installed it and run it in June on a different pc and re-installation on that one works fine.

A wild guess is that it is a dependency that has updated and it causes the crash but I have no idea what dependency and it could be some thing else.

All this are done on ubuntu 18.04.

@grammers Thanks for your good advice!

grammers commented 3 years ago

By running apt purge boost-inivation I got it to work! Thanks for the help!

llongi commented 2 years ago

Just for your info, we're also fixing this on boost-inivation package side to prevent conflicts in the future. A future release of boost-inivation will move the custom install to /opt/inivation/boost/ instead of /opt/boost-inivation/, which stops it from being auto-discovered and interfering with libcaer/ROS. I'll update this issue again when we release that update.

Schweizliu commented 1 year ago

仅供您参考,我们还在提升升级包方面修复了此问题,以防止将来发生冲突。 boost-inivation 的未来版本会将自定义安装移动到 /opt/inivation/boost/ 而不是 /opt/boost-inivation/,这会阻止它被自动发现并干扰 libcaer/ROS。当我们发布该更新时,我将再次更新此问题。

When I run sudo apt-get remove boost-inivation or sudo apt purge boost-inivation, I get this problem: Unable to locate package boost-inivation. I have updated the software source through the command "sudo apt-get update", but it has no effect. When I check whether the software has been installed through the command "sudo dpkg -l | grep*", there is no display, indicating that my system does not have this software package. So how to solve this problem "[WARN] [1680231915.210308595]: Camera calibration file /home/syou/.ros/camera_info/DAVIS-00000567.yaml not found."