LSD_SLAM+ Ubuntu 安装usb相机运行及rqt调参

Lsd slam 使用文档

 

安装与编译lsd slam



mkdir
-p ~/catkin_ws/src
git
clone https://github.com/tum-vision/lsd_slam.git
cd
lsd_slam
git
checkout catkin

##change to the Catkin "branch" of the LSD-SLAM project, then:

sudo
apt-get install ros-indigo-libg2o ros-indigo-cv-bridge liblapack-dev
libblas-dev freeglut3-dev libqglviewer-dev libsuitesparse-dev
libx11-dev

##对lsd_slam/lsd_slam_viewerlsd_slam/lsd_slam_core文件夹下的package.xml中添加(注意添加位置与源程序一致):

<build_depend>cmake_modules</build_depend>
<run_depend>cmake_modules</run_depend>

##对lsd_slam/lsd_slam_viewerlsd_slam/lsd_slam_core文件夹下的CMakeFiles.txt中添加:

find_package(cmake_modules REQUIRED)

 

##并且在所有的target_link_libraries中添加X11如:

target_link_libraries(lsdslam ${FABMAP_LIB} ${G2O_LIBRARIES} ${catkin_LIBRARIES} csparse cxsparse X11)

 

target_link_libraries(viewer ${QGLViewer_LIBRARIES}

${QGLVIEWER_LIBRARY}

${catkin_LIBRARIES}

${Boost_LIBRARIES}

${QT_LIBRARIES}

GL glut GLU X11

)

 

#add_executable(videoStitch src/main_stitchVideos.cpp)

#target_link_libraries(viewer ${QGLViewer_LIBRARIES}

# ${QGLVIEWER_LIBRARY}

# ${catkin_LIBRARIES}

# ${QT_LIBRARIES}

# GL glut GLU X11

# )

 

 

##然后开始编译:

cd ~/catkin_ws/

catkin_make

 

注:在编译过程在可能会遇到很多由于版本问题导致的bug,如果出现,请自行查找资料解决。bug,如果出现,请自行查找资料解决。

利用usb摄像头使用lsd slam(单目)

##安装摄像头驱动

cd
~/catkin_ws/
source
devel/setup.sh
cd
~/catkin_ws/src
git
clone https://github.com/ktossell/camera_umd.git
cd
..
catkin_make
roscd
uvc_camera/launch/
roslaunch
./camera_node.launch

##配置摄像头文件camera_node.launch(以我的为例)

 

<launch>

<node pkg="uvc_camera" type="uvc_camera_node" name="uvc_camera" output="screen">

<param name="width" type="int" value="640" />

<param name="height" type="int" value="480" />

<param name="fps" type="int" value="45" />

<param name="frame" type="string" value="wide_stereo" />

 

<param name="auto_focus" type="bool" value="False" />

<param name="focus_absolute" type="int" value="0" />

<!-- other supported params: auto_exposure, exposure_absolute, brightness, power_line_frequency -->

 

<param name="device" type="string" value="/dev/video0 " />

<param name="camera_info_url" type="string" value="file://$(find uvc_camera)/calib1.yaml" />

</node>

</launch>

 

##编写摄像头标定文件calib1.yaml(以我的为例)

##请先学习基本相机模型,了解相机内参外参及矫正矩阵的含义及形式

image_width: 640

image_height: 480

camera_name: camera

camera_matrix:

rows: 3

cols: 3

data: [998.7580, 0, 406.0963, 0, 999.3593, 217.2844, 0, 0, 1]

distortion_model: plumb_bob

distortion_coefficients:

rows: 1

cols: 3

data: [-0.2237, 0.3433, -0.3688]

rectification_matrix:

rows: 3

cols: 3

data: [1, 0, 0, 0, 1, 0, 0, 0, 1]

projection_matrix:

rows: 3

cols: 4

data: [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0]

务必注意按此格式编写,标定文件中具体相机参数用MATLAB提供的工具包进行相机标定

 

##编写lsd slam中的相机配置文件,文件具体位置在lsd_slam_core/calib文件夹中(以我的为例)

##针孔相机模型

1.560559 2.081999 0.634525 0.452676 0

640 480

none

640 480

文件中具体参数含义请参照camera_calibration/Tutorials/MonocularCalibration - ROS Wiki

 

##以上完成后运行lsd slam

roscore

##再打开一个终端

cd
~/catkin_ws/
source
devel/setup.sh
rosrun
lsd_slam_viewer viewer

##再打开一个终端

cd
~/catkin_ws/
source
devel/setup.sh
roslaunch
uvc_camera camera_node.launch

##再打开一个终端

rosrun
lsd_slam_core live_slam /image:=image_raw _calib:=<calibration_file>

<calibration_file>用自己的标定文件代替

 

##至此会弹出摄像头图像及点云图

以我的为例:

roscore

cd ~/catkin_ws/

source devel/setup.sh

rosrun lsd_slam_viewer viewer

cd ~/catkin_ws/

source devel/setup.sh

roslaunch uvc_camera camera_node.launch

rosrun rqt_reconfigure rqt_reconfigure

rosrun lsd_slam_core live_slam /image:=/image_raw _calib:='/home/leo/catkin_ws/src/lsd_slam/lsd_slam_core/calib/usb_calib.cfg'

rostopic echo /lsd_slam/pose

 

使用心得

 

##此部分内容为我在使用lsd slam中自己发现的一些快捷操作及方法,官方并未给出这些。更多的快捷使用方法有待进一步探索

 

##调节lsd slam 追踪及建图参数的方法

rosrun rqt_reconfigure rqt_reconfigure

进入后refresh即可看到所有可调参数,可以利用滑动条进行调节,其中增大minUseGrad和cameraPixelNoise可以减少噪声,增大KFUsageWeight和KFDistWeight可以加快追踪速度,减少tracking lost 的情况

 

##lsd_slam_viewer的使用方法

viewer软件用于呈现构建出的点云,其中摁住鼠标左键可以调节画面的俯仰,鼠标右键可以调节点云图的左右位置,摁住滚轮可以调节点云图的大小,先摁住滚轮再摁住鼠标左键可以旋转生成的点云图,其他快捷操作还有待发现。其中蓝色框为关键帧位置,红色框为当前摄像头位置,绿线为摄像头运动轨迹

 

##添加回环检测

如果想要添加回环检测,只需在lsd_slam_core/cmakelist.txt中将以下后四行解注

# FabMap

# uncomment this part to enable fabmap

add_subdirectory(${PROJECT_SOURCE_DIR}/thirdparty/openFabMap)

include_directories(${PROJECT_SOURCE_DIR}/thirdparty/openFabMap/include)

add_definitions("-DHAVE_FABMAP")

set(FABMAP_LIB openFABMAP )

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值