ROS-Hydro-SLAM, 几种主要的SLAM方法(Libviso,SVO,PTAM)在ROS-Hydro平台下的实现

分享于 

4分钟阅读

GitHub

  繁體
几种主要的SLAM方法(Libviso,SVO,PTAM)在ROS-Hydro平台下的实现
  • 源代码名称:ROS-Hydro-SLAM
  • 源代码网址:http://www.github.com/hcdth011/ROS-Hydro-SLAM
  • ROS-Hydro-SLAM源代码文档
  • ROS-Hydro-SLAM源代码下载
  • Git URL:
    git://www.github.com/hcdth011/ROS-Hydro-SLAM.git
    Git Clone代码到本地:
    git clone http://www.github.com/hcdth011/ROS-Hydro-SLAM
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/hcdth011/ROS-Hydro-SLAM
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    ROS-Hydro-SLAM

    几种主要的SLAM方法(Libviso,SVO,PTAM)在ROS-Hydro平台下的实现,以及为实现实时视觉SLAM,添加了USB摄像头节点usb_cam。

    Libviso2调试方法:

    通过一个launch文件运行所有ROS节点: roscore roslaunch viso2_ros mono.launch

    进入RVIZ,调整参数 a. 将Fixed Frame改为 odom b. "Add"新的"display" : 一个Odomety,选上对应的topic ; 一个 Pose ,选上对应的topic,为了跟odometry区分,可以改变他的color ; 一个Image,选上topic (image_rect);

    移动相机

    SVO调试方法: 1.查看USB摄像头信息 lsusb -v或者lsusb 来查看USB摄像头的idVender和idProduct ; 或者在/dev/目录下可以查到videoX设备号

    安装ROS下的usb摄像头驱动包(usb_cam) https://github.com/bosch-ros-pkg/usb_camhttp://wiki.ros.org/usb_cam 把包下载到catkin_ws/src下即可,然后catkin_make编译。

    默认使用的摄像头设备是video0 ,如果需要换其他设备 ,修改usb_cam/nodes下的usb_cam_node.cpp文件===》 std::string("/dev/video1") (注意:如果出现'VIDIOC_S_FMT error 22, Invalid argument'的报错,即摄像头序号不对,修改video的号码重新编译即可) 修改cpp后需要重新编译; 运行方法: rosrun usb_cam usb_cam_node ,运行后生成的图片topic为 /usb_cam/image_raw (svo_ros的launch文件需要修改对应的主题名字)

    run rviz rviz报错:compiled against OGRE version 1.7.4 (Cthugha),Stereo is N OT SUPPORTED,OpenGl version: 2.1 (GLSL 1.2).

    方法1:显卡驱动没装(安装驱动),或者显卡不支持硬件加速 ==》 到系统设置里面安装附加驱动,重启,确认显卡驱动"激活并在使用";

    方法2:对于有双显卡的电脑(比如恶心的联想),系统自带的驱动安装方法可能不管用,可尝试安装 Bumblebee ,方法如下: https://wiki.ubuntu.com/Bumblebee#Installation

    安装完驱动后,重新运行 run rviz rviz

    摄像头标定(pinhole模型) http://wiki.ros.org/camera_calibration/Tutorials/MonocularCalibration

    roscore rosrun usb_cam usb_cam_node rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.108 image:=/usb_cam/image_raw camera:=/usb_cam

    摄像头标定(ATAN模型) 安装ethzasl_ptam包: http://wiki.ros.org/ethzasl_ptam 标定方法: http://wiki.ros.org/ethzasl_ptam/Tutorials/camera_calibration

    roscore roslaunch ptam cameracalibrator.launch (launch文件已经被修改)

    svo测试方法: (1)Run SVO on a Dataset

    roscore roslaunch svo_ros test_rig3.launch rosrun rviz rviz -d ~/catkin_ws/src/rpg_svo/svo_ros/rviz_config.rviz rosbag play ~/svo_workspace/airground_rig_s3_2013-03-18_21-38-48.bag

    (2)Run SVO on a live camera stream

    事前准备:摄像头标定(参数保存为my_camera_pinhole.yaml),修改live.launch文件(使用/usb_cam/image_raw和my_camera_pinhole.yaml)。

    roscore rosrun usb_cam usb_cam_node roslaunch svo_ros live.launch rosrun rqt_svo rqt_svo

    查看姿态数据:rostopic echo /svo/pose


    相关文章