Skip to content
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

image_node_b节点挂掉问题 #16

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

image_node_b节点挂掉问题 #16

wuyang171 opened this issue Jun 6, 2021 · 13 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)
可以看这个

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

No branches or pull requests

7 participants