Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

image_node_b节点挂掉问题 #16

Open
wuyang171 opened this issue Jun 6, 2021 · 14 comments
Open

image_node_b节点挂掉问题 #16

wuyang171 opened this issue Jun 6, 2021 · 14 comments

Comments

@wuyang171
Copy link

image_node_b: /usr/local/include/boost/smart_ptr/shared_ptr.hpp:734: typename boost::detail::sp_member_access::type boost::shared_ptr::operator->() const [with T = camodocal::Camera; typename boost::detail::sp_member_access::type = camodocal::Camera*]: Assertion `px != 0' failed.
vocabulary_file/home/yang/PL-VINS/src/PL-VINS/pose_graph/../support_files/brief_k10L6.bin
[image_node_b-6] process has died [pid 10537, exit code -6, cmd /home/yang/PL-VINS/devel/lib/image_node_b/image_node_b __name:=image_node_b __log:=/home/yang/.ros/log/42165ab6-c6a6-11eb-ad42-2cdb07139caf/image_node_b-6.log].
log file: /home/yang/.ros/log/42165ab6-c6a6-11eb-ad42-2cdb07139caf/image_node_b-6*.log

网上说是智能指针初始化问题,但在image_node_b.cpp文件中修改camodocal::CameraPtr m_camera;为:camodocal::CameraPtr m_camera(new camodocal);仍报错,请问应该怎么解决呢?谢谢!

@DreamWaterFound
Copy link

修改这一行的配置文件为绝对路径或者相对路径就可以了:
https://github.com/cnqiangfu/PL-VINS/blob/master/image_node_b/src/image_node_b.cpp#L78

@hfw6310
Copy link

hfw6310 commented Oct 26, 2021

修改这一行的配置文件为绝对路径或者相对路径就可以了: https://github.com/cnqiangfu/PL-VINS/blob/master/image_node_b/src/image_node_b.cpp#L78

修改了重新编译后运行还是会报这个错误,?

@DreamWaterFound
Copy link

修改这一行的配置文件为绝对路径或者相对路径就可以了: https://github.com/cnqiangfu/PL-VINS/blob/master/image_node_b/src/image_node_b.cpp#L78

修改了重新编译后运行还是会报这个错误,?

核实一下修改的路径是否正确?时间有点久远了,我记得当初是如果该路径下的文件不存在、或者因为权限问题无法打开,CameraFactory::generateCameraFromYamlFile()这里会返回空指针,但是在这里上层函数的调用中并没有对m_camera是否为空进行检查,从而出现了楼主报告的错误。

我比较建议修改为绝对路径,然后搭配下面动图所示的方法得到路径,一般可以认为是没有错误的:

1

或者:

2

@hfw6310
Copy link

hfw6310 commented Oct 28, 2021

修改这一行的配置文件为绝对路径或者相对路径就可以了: https://github.com/cnqiangfu/PL-VINS/blob/master/image_node_b/src/image_node_b.cpp#L78

修改了重新编译后运行还是会报这个错误,?

核实一下修改的路径是否正确?时间有点久远了,我记得当初是如果该路径下的文件不存在、或者因为权限问题无法打开,CameraFactory::generateCameraFromYamlFile()这里会返回空指针,但是在这里上层函数的调用中并没有对m_camera是否为空进行检查,从而出现了楼主报告的错误。

我比较建议修改为绝对路径,然后搭配下面动图所示的方法得到路径,一般可以认为是没有错误的:

1

或者:

2

谢谢解答,我改成绝对路径后可运行,但是中途重新初始化时一直遇到下面这个问题 ,请问一下 你们当时遇到过类似的情况吗?

F1028 09:35:27.647249 13900 problem_impl.cc:135] Check failed: size == existing_size Tried adding a parameter block with the same double pointer, 0x561abd6fe5d0, twice, but with different block sizes. Original size was 9 but new size is 7
*** Check failure stack trace: ***
[plvins_estimator-5] process has died [pid 13850, exit code -6, cmd /home/hao/catkin_plvins/devel/lib/plvins_estimator/plvins_estimator __name:=plvins_estimator __log:=/home/hao/.ros/log/fed2e8e6-378e-11ec-b42c-0c96e6baaa33/plvins_estimator-5.log].

@DreamWaterFound
Copy link

@hfw6310 我跑了所有的EuRoC序列,目前还没遇到过这个问题

@hfw6310
Copy link

hfw6310 commented Nov 2, 2021

@hfw6310 我跑了所有的EuRoC序列,目前还没遇到过这个问题
我是用自己录制的视频跑PL-VINS出现的该问题

@DreamWaterFound
Copy link

@hfw6310 我跑了所有的EuRoC序列,目前还没遇到过这个问题
我是用自己录制的视频跑PL-VINS出现的该问题

个人建议补充问题描述后新开个issue向作者请教

@hfw6310
Copy link

hfw6310 commented Nov 6, 2021

@hfw6310 我跑了所有的EuRoC序列,目前还没遇到过这个问题
我是用自己录制的视频跑PL-VINS出现的该问题

个人建议补充问题描述后新开个issue向作者请教

谢谢

@ZHUANGMINGXI
Copy link

修改这一行的配置文件为绝对路径或者相对路径就可以了: https://github.com/cnqiangfu/PL-VINS/blob/master/image_node_b/src/image_node_b.cpp#L78

修改了重新编译后运行还是会报这个错误,?

核实一下修改的路径是否正确?时间有点久远了,我记得当初是如果该路径下的文件不存在、或者因为权限问题无法打开,CameraFactory::generateCameraFromYamlFile()这里会返回空指针,但是在这里上层函数的调用中并没有对m_camera是否为空进行检查,从而出现了楼主报告的错误。
我比较建议修改为绝对路径,然后搭配下面动图所示的方法得到路径,一般可以认为是没有错误的:
1

    [
      
        ![1](https://user-images.githubusercontent.com/33981288/139169363-981adfd3-ea3a-4a13-b622-48d866d5bd35.gif)
      
    ](https://user-images.githubusercontent.com/33981288/139169363-981adfd3-ea3a-4a13-b622-48d866d5bd35.gif)
    
    
      
        
          
        
        
          
          
        
      
      [
        
          
        
      ](https://user-images.githubusercontent.com/33981288/139169363-981adfd3-ea3a-4a13-b622-48d866d5bd35.gif)

或者:
2

    [
      
        ![2](https://user-images.githubusercontent.com/33981288/139169386-5e529391-da66-41d1-84d3-4d8689fce0f2.gif)
      
    ](https://user-images.githubusercontent.com/33981288/139169386-5e529391-da66-41d1-84d3-4d8689fce0f2.gif)
    
    
      
        
          
        
        
          
          
        
      
      [
        
          
        
      ](https://user-images.githubusercontent.com/33981288/139169386-5e529391-da66-41d1-84d3-4d8689fce0f2.gif)

谢谢解答,我改成绝对路径后可运行,但是中途重新初始化时一直遇到下面这个问题 ,请问一下 你们当时遇到过类似的情况吗?

F1028 09:35:27.647249 13900 problem_impl.cc:135] Check failed: size == existing_size Tried adding a parameter block with the same double pointer, 0x561abd6fe5d0, twice, but with different block sizes. Original size was 9 but new size is 7 *** Check failure stack trace: *** [plvins_estimator-5] process has died [pid 13850, exit code -6, cmd /home/hao/catkin_plvins/devel/lib/plvins_estimator/plvins_estimator __name:=plvins_estimator __log:=/home/hao/.ros/log/fed2e8e6-378e-11ec-b42c-0c96e6baaa33/plvins_estimator-5.log].

请问你解决这个问题了吗,我也遇到相同的问题

@YoungHaulk
Copy link

修改这一行的配置文件为绝对路径或者相对路径就可以了: https://github.com/cnqiangfu/PL-VINS/blob/master/image_node_b/src/image_node_b.cpp#L78

修改了重新编译后运行还是会报这个错误,?

hxd,请问你 解决了吗

@IronHide-tec
Copy link

[image_node_b-6]问题解决之后还会报错[image_node_b-7],问题在于回调函数总对于线特征的绘制存在两个问题:1、对于线特征的起点和终点索引不正确,2、索引出来的线特征时归一化平面的线,未转到成像平面。修改第64、65行代码如下:

// cv::Point startPoint = cv::Point(line_feature_msg->channels[3].values[i], line_feature_msg->channels[4].values[i]); // cv::Point endPoint = cv::Point(line_feature_msg->channels[5].values[i], line_feature_msg->channels[6].values[i]); Eigen::Vector3d startPoint3 = Eigen::Vector3d(line_feature_msg->points[i].x,line_feature_msg->points[i].y,1); Eigen::Vector3d endPoint3 = Eigen::Vector3d(line_feature_msg->channels[1].values[i], line_feature_msg->channels[2].values[i],1); Eigen::Vector2d startPoint2,endPoint2; m_camera->spaceToPlane(startPoint3,startPoint2); m_camera->spaceToPlane(endPoint3,endPoint2); cv::Point startPoint(startPoint2(0),startPoint2(1)); cv::Point endPoint(endPoint2(0),endPoint2(1));
程序正常运行并显示线特征

@IronHide-tec
Copy link

但是还有问题,绘制的直线与图像偏差几个像素,怎么解决?

@huyating99
Copy link

但是还有问题,绘制的直线与图像偏差几个像素,怎么解决?

#8 (comment)
可以看这个

@xiaozhang-lang
Copy link

但是还有问题,绘制的直线与图像偏差几个像素,怎么解决?

您好,请问这个问题解决了嘛?Euroc数据集没问题,但是配置其他的数据集会出现这个问题。

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants