背景
- 计划用ros2 来搭建一个自己的移动机器人
- 买的乐视的体感相机(也就是奥比中光的pro相机)准备去跑slam
软件环境
- ubuntu 20.04
- ROS2 Galactic
编译步骤
ros2 astra pro
? ? ?奥比中关的官方还没有ros2的库,但是有一个第三方库 https://github.com/KavenYau/ros2_astra_camera ? ? ?按照 README 直接编译即可看到图像 ? ? ?运行效果如下:对于 slam,主要关注两个topic: /camera/color/image_raw : rgb 原始的图像,由uvc_camera_node 节点发布 /camera/depth/image_raw: 深度图像,由 astra_camera_node 节点发布
ros2_orbslam
? ? ? 源码地址:https://github.com/alsora/ros2-ORB_SLAM2
安装依赖
按照github中说明进行安装依赖,下面主要介绍3个采坑了的安装
-
Pangolin 编译ORB_SLAM2 提示pangolin 编译失败,没有找到eiggne3 ,修改了安装目录下的cmake 即可找到合适的 -
OpenCV3 https://docs.opencv.org/3.0-beta/doc/tutorials/introduction/linux_install/linux_install.html 按照官方下载源码出来之后,一定要切换到3.4 的branch编译。默认是4的版本,会出错 -
ORB_SLAM2
一,cmake 做了一下修改 1,去掉了 -march=native 以支持运行不报错 2,进行c++ 14 版本的编译,会报很多错误 二,参考docker 中的编译 https://github.com/alsora/ros2-ORB_SLAM2/blob/master/docker/Dockerfile 1,使用了ros2_orbslma2 中的 scripts中的patch补丁 解决: ①,运行时提示没有usleep 2,使用script中的build 进行编译ORB_SLAM2 比官方的多了一个 make install ,后面编译的时候就不会报没有orb_slam2.so的问题
编译ros2_orbslam
1,由于依赖的是opencv3 ,vision_opencv最新的默认依赖 opencv4,这样就会出现版本依赖 如下修改cmakelist,让其也使用opencv3的库
让 rob_sam 与 astra_pro的topic对应起来
修改 ros2_slam2中的topic名字以实现ros2的topic对应
运行结果
|