ORB_SLAM3 v1.0 ROS接口编译问题汇总

9 篇文章 1 订阅

前几天给电脑重装了系统升级到了ubuntu20.04,之前一直用的2021年4月发布的ORB_SLAM3 v0.4测试版,这次也更新到了1.0正式版。但是1.0版本ROS接口编译的坑实在太多了

首先是ubuntu20.04搭配ROS-Noetic,在cmake过程中报错,显示

Failed to invoke rospack to get compile flags for package...

一般的解决方案是在.bashrc中加入

export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:PATH/ORB_SLAM3/Examples/ROS

但是我明明已经加了,而且已经source了很多遍,仔细看cmake报错前面还有一行关于rosdep找不到的错误,这时我再次运行rosdep,提示rosdep找不到命令,并建议我安装python3-rosdep2,可是不久前我安装ROS-Noetic的时候已经完成这步操作了啊?但是回想起,安装python3-rosdep2后导致我原本的ros-noetic-desktop-full的部分包被删除,roscore无法运行,最后我又重新apt install ros-noetic-desktop-full,我重复上述操作后发现,ros-noetic-desktop-full与python3-rosdep2是冲突的,两者不能共存。
正确的rosdep init的方法是首先安装python3-rosdep!!! 千万不要安装python3-rosdep2!!!
这次我还发现,当提示

ERROR: cannot download default sources list from:
https : //raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list 
Website may be down.

这种情况时,如果已经在hosts文件里加入了该网站的真实ip,还无法rosdep init成功。可以尝试手动在浏览器里打开这个网址

https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list

如果可以打开,那么复制里面的内容

sudo gedit /etc/ros/rosdep/sources.list.d/20-default.list

粘贴进去,实际上就已经手动完成了rosdep init这一命令,就可以不再进行rosdep init了。

现在rosdep可以用了,本以为应该没有问题,但是还没结束。
首先ORB_SLAM3 readme里给出的编译ROS接口的方法里,在.bashrc中添加

export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:PATH/ORB_SLAM3/Examples/ROS

然而其ROS目录却在Examples_old文件加下,应给把Examples换成Examples_old,同样build_ros.sh文件中也应做出对应修改。
重新进行cmake,提示:

Cmake: OpenCV > 2.4.3 not found.

我的电脑中安装的是OpenCV4.5,这里在CMakeLists.txt里修改第33行为

find_package(OpenCV 4.0 QUIET)

接下来终于可以进行编译了,报错:

fatal error: sophus/se3.hpp: 没有那个文件或目录

这里究极离谱,我们继续修改CMakeLists.txt,加入Sophus路径

include_directories(
${PROJECT_SOURCE_DIR}
${PROJECT_SOURCE_DIR}/../../../
${PROJECT_SOURCE_DIR}/../../../include
${PROJECT_SOURCE_DIR}/../../../include/CameraModels
${PROJECT_SOURCE_DIR}/../../../Thirdparty/Sophus
${Pangolin_INCLUDE_DIRS}
)

继续编译,结果在ViewerAR.cc处报了一堆关于Eigen的错误,考虑可能是一堆版本问题,修改起来非常麻烦,而我们又不需要这一部分,一怒之下直接将CMakeLists.txt中关于AR target的这部分编译命令全部注释了,再次进行编译,终于成功了。
ORB_SLAM3 1.0版本在github上关于ROS接口的问题也非常多,还是等待官方进一步完善吧。

  • 14
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
### 回答1: 要订阅usb_cam并使用orb_slam_2_ros,你需要在ROS中使用以下命令:"rosrun orb_slam_2_ros orb_slam_2_ros __name:=<orb_slam_2> __params:=<path to orb_slam_2_ros.yaml> __image:=/usb_cam/image_raw __camera_info:=/usb_cam/camera_info". ### 回答2: 要使用orb_slam_2_ros订阅usb_cam,您可以按照以下步骤进行操作: 1. 首先,确保已经安装了rosorb_slam_2_ros软件包。您可以使用以下命令进行安装: ``` sudo apt-get install ros-<your_ros_version>-usb-cam sudo apt-get install ros-<your_ros_version>-rtabmap-ros ``` 请将`<your_ros_version>`替换为您正在使用的ROS版本。 2. 创建一个新的ROS工作空间并进行初始化: ``` mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src catkin_init_workspace ``` 3. 克隆orb_slam_2_ros软件包到src目录下: ``` git clone https://github.com/appliedAI-Initiative/orb_slam_2_ros.git ``` 4. 回到catkin_ws并进行构建: ``` cd ~/catkin_ws catkin_make ``` 5. 设置摄像头参数。打开`~/catkin_ws/src/orb_slam_2_ros/launch/usb_cam_v2_2.launch`文件,并根据您的USB相机配置修改`video_device`,`image_width`和`image_height`等参数。 6. 启动usb_cam节点: ``` roslaunch orb_slam_2_ros usb_cam_v2_2.launch ``` 7. 启动ORB-SLAM2节点: ``` roslaunch orb_slam_2_ros orb_slam2_ros.launch ``` 现在,您应该能够订阅usb_cam并使用ORB-SLAM2进行定位和建图。要查看ORB-SLAM2的输出,您可以使用rviz或image_view等工具。 ### 回答3: 使用ORB_SLAM2_ROS订阅USB_CAM的方法如下: 首先,确保按照ORB_SLAM2_ROS的安装说明正确安装了ROSORB_SLAM2。 1. 在终端中,打开新的工作区并创建一个新的工作空间: ``` mkdir -p orb_cam_ws/src cd orb_cam_ws/src ``` 2. 将ORB_SLAM2_ROS软件包克隆到工作空间的src文件夹中: ``` git clone https://github.com/raulmur/ORB_SLAM2.git ``` 3. 编译ORB_SLAM2_ROS软件包: ``` cd .. catkin_make ``` 4. 打开orb_slam2_ros.launch文件: ``` roscd orb_slam2_ros/launch gedit orb_slam2_ros.launch ``` 5. 在文件中添加以下行: ``` <arg name="camera_topic" default="/usb_cam/image_raw"/> <arg name="camera_info_topic" default="/usb_cam/camera_info"/> ``` 6. 保存并关闭文件。 7. 运行ORB_SLAM2_ROS节点: ``` roslaunch orb_slam2_ros orb_slam2_ros.launch ``` 现在,ORB_SLAM2_ROS节点将订阅名为/usb_cam/image_raw的图像主题和/usb_cam/camera_info的摄像机信息主题。您可以在ORB_SLAM2_ROS节点发布的话题中查看三维重构的结果。 请注意,在运行ORB_SLAM2_ROS之前,您需要先启动USB_CAM节点以发布相机图像和相机信息主题。可以使用以下命令启动USB_CAM节点: ``` roslaunch usb_cam usb_cam-test.launch ``` 这样就可以成功订阅USB_CAM并使用ORB_SLAM2_ROS进行视觉定位和三维重建。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YWL0720

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值