ROS研究员 2024-03-20 12:18 采纳率: 35.7%
浏览 13
已结题

orbslam3编译错误

/home/sunrise/ORB_SLAM3/Examples/ROS/ORB_SLAM3/src/AR/ros_mono_ar.cc: In member function ‘void ImageGrabber::GrabImage(const ImageConstPtr&)’:/home/sunrise/ORB_SLAM3/Examples/ROS/ORB_SLAM3/src/AR/ros_mono_ar.cc:151:41: error: conversion from ‘Sophus::SE3f’ {aka ‘Sophus::SE3’} to non-scalar type ‘cv::Mat’ requested 151 | cv::Mat Tcw = mpSLAM->TrackMonocular(cv_ptr->image,cv_ptr->header.stamp.toSec()); | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~make[2]: *** [CMakeFiles/MonoAR.dir/build.make:118:CMakeFiles/MonoAR.dir/src/AR/ros_mono_ar.cc.o] 错误 1make[1]: *** [CMakeFiles/Makefile2:599:CMakeFiles/MonoAR.dir/all] 错误 2make: *** [Makefile:130:all] 错误 2



  • 写回答

1条回答 默认 最新

  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-03-20 12:18
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    这段错误信息是编译时出现的错误,错误的原因是在第151行代码中,将Sophus::SE3f类型的变量转换成了cv::Mat类型,这是一个不允许的操作。 解决该问题的方法是将Sophus::SE3f类型的变量转换成cv::Mat类型,可以使用cv::Mat的构造函数进行转换。例如: cv::Mat Tcw = cv::Mat(mpSLAM->TrackMonocular(cv_ptr->image,cv_ptr->header.stamp.toSec())).inv(); 其中,inv()函数会对矩阵进行求逆操作,将矩阵从Sophus::SE3f类型转换为cv::Mat类型。 需要注意的是,这只是一个可能的解决方法,具体解决方法可能因情况而异。
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月20日
  • 创建了问题 3月20日

悬赏问题

  • ¥15 如何改进这个简易的模数转换程序
  • ¥30 模拟电路 logisim
  • ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法