后续:安装ORK功能包踩坑之路和解决方案
前言
根据<安装ORK功能包踩坑之路和解决方案>确实可以编译ORK功能包,但是在调试可乐识别的案例时,出现了不能detection的问题,具体如下。
一、识别可乐案例的问题
代码如下:
roslaunch robot_vision freenect_with_calibration.launch
rosrun topic_tools relay /camera/depth_registerd/igb_raw /camera/depth_registered/image
rosrun object_recognition_core detection -c `rospack find object_recognition_linemod`/conf/detection.ros.ork
roslaunch robot_vision ork_rviz.launch
报错:
二、分析
网上述问题,结果很丰富,没有效果,几天的痛苦煎熬,只能分析到这
1.终端输入如下指令生成core文件:
ulimit -a
ulimit -c unlimited
ulimit -a
rosrun object_recognition_core detection -c `rospack find object_recognition_linemod`/conf/detection.ros.ork
2.gdb调试,结果如下,发生core dump之后, 用gdb进行查看core文件的内容, 以定位文件中引发core dump的行.
gdb [exec file] [core file]
SIGSEGV:指示进程进行了一次无效的内存引用(通常说明程序有错,若访问了一个未经初始化的指针)。名字SEGV代表“段违例”(segmentation violation).
SIGSEGV的默认动作是终止+core
三、待解决
回想起在ORK编译的时候出现了大量提示,可能与上述问题有关,万事不如从头再来,检查自己的猜想:
总结
此问题还需要继续学习,改错真是苦逼的路,未知的点可怕
参考链接:
段错误 (核心已转储),core文件的常用处理
Linux环境下的GDB调试方法