小强ROS机器人教程(18)_使用DSO_SLAM进行三维建模
Direct Sparse Odometry(DSO)是业内很流行的lsd_slam系统作者的学生Jakob Engel开发的,实测性能和精度优于lsd_slam。DSO被作者开源到github,同时还一并开源了DSO在ros系统下的使用代码实例dso_ros. 本篇教程将演示如何在小强开发平台上安装DSO和dso_ros, 利用小强平台上的摄像头实时运行DSO进行三维建模。点击观看视频。
1.DSO的安装
注:因为小强开发平台已经提前安装好了不少DSO需要的依赖包,下文将跳过这些包的安装,请其它开发平台的读者参考github上的完整安装教程进行安装。
1.a安装依赖包
sudo apt-get install libsuitesparse-dev libeigen3-dev libboost-dev
sudo apt-get install libopencv-dev
1.b下载源代码
cd ~/Documents/
git clone https://git.bwbot.org/publish/dso
1.c继续配置依赖包
sudo apt-get install zlib1g-dev
cd ~/Documents/dso/thirdparty
tar -zxvf libzip-1.1.1.tar.gz
cd libzip-1.1.1/
./configure
make
sudo make install
sudo cp lib/zipconf.h /usr/local/include/zipconf.h
1.d编译安装
cd ~/Documents/dso/
mkdir build
cd build
cmake ..
make -j 2
2.dso_ros的安装
注:原作者提供的源代码有两个分支,master分支对应rosbuild版,catkin分支对应catkin版。对于现代ROS版本,推荐使用catkin版本,安装使用更方便。但是作者的catkin分支存在代码缺陷,实际无法安装使用,因此下文将安装我们蓝鲸智能修改之后的dso_ros版本。
cd ~/Documents/ros/src
git clone https://gitee.com/BluewhaleRobot/dso_ros.git
cd ..
export DSO_PATH=/home/xiaoqiang/Documents/dso
catkin_make #或者用这条命令 catkin_make -DCATKIN_WHITELIST_PACKAGES=""
3.开始使用
sudo service startup stop # 停止startup服务
roslaunch startup startup.launch # 启动摄像头等程序
roslaunch dso_ros dso_ros.launch # 启动dso程序
现在移动摄像头,就能开始对周围环境进行三维建模,移动过程避免急转弯和剧烈运动。
对于小强用户,可以先遥控小强运动同时用rosbag录制/camera_node/image_raw这个image topic数据,然后重放,这样可以实现大范围的建模。rosbag重放前,需要关闭usb摄像头节点(sudo service startup stop),否则会有图像发布冲突。