AR + ROS +UBUNTU16.04+ORB-SLAM2
ORB SLAM2 USB摄像头
实验环境ubuntu 16.04+ros kinetic OPencv2.4.9
Step1: 配置环境变量
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
在’src’目录中可能没有任何软件包,只有一个CMakeLists.txt,依然可以编译它:
$ cd ~/catkin_ws/
$ catkin_make
在主文件夹下ctrl+h后找到隐藏文件夹.bashrc。在.bashrc 最下面添加
source /opt/ros/indigo/setup.bash`
source ~/catkin_ws/devel/setup.bash`
Step2:编译usb_cam
[usb_cam下载链接] (https://github.com/bosch-ros-pkg/usb_cam)
把usb_cam放到catkin_ws/src下
$ cd catkin_ws/src/usb_cam
$ mkdir build
$ cd build
$ cmake ..
$ ma
Step3: 编译orb_slam2
[orb_slam2 下载链接] ( https://github.com/raulmur/ORB_SLAM2 )
安装orb slam2依赖
安装 g++11
$ sudo apt-get install gcc g++
安装 Pangolin
$ sudo apt-get install libglew-dev #安装Glew
$ sudo apt-get install cmake #安装CMake
$ sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev #安装Boost
$ sudo apt-get install libpython2.7-dev #安装Python2'Python3
下载、编译、安装Pangolin:
$ git clone https://github.com/stevenlovegrove/Pangolin.git
$ cd Pangolin
$ mkdir build
$ cd build
$ cmake -DCPP11_NO_BOOST=1 ..
$ make
$ sudo make
注意:Pangolin最新版本会编译失败请使用旧版本
- 安装OpenCV
$sudo apt-get update
$sudo apt-get install libcv-dev
安装Eigen
$ sudo apt-get install libeigen3-dev
BLAS and LAPACK
$ sudo apt-get install libblas-dev
$ sudo apt-get install liblapack-dev
- 编译ORB_SLAM2库和例子程序(单目、双目和RGB-D)
$ git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2
把ORB_SLAM2放到catkin_ws/src下
$ cd ORB_SLAM2
$ chmod +x build.sh
$ ./build.sh
生成的libORB_SLAM2.so位于lib目录下,可执行程序mono_tum, mono_kitti, rgbd_tum, stereo_kitti, mono_euroc and stereo_euroc位于Examples目录下。
Step4: 把摄像头数据发布到topic
4-1$ roslaunch usb_cam usb_cam-test.launch
这种方法下载并编译的
- $ cd catkin_ws/src
- $ git clone https://github.com/bosch-ros-pkg/usb_cam.git
- $ cd ..
- $ catkin_make
需要确保usb_cam安装过程中没有错误
- Bug / feature tracker: https://github.com/bosch-ros-pkg/usb_cam/issues
- Source: git https://github.com/bosch-ros-pkg/usb_cam.git (branch: master)
- ROS wiki:http://wiki.ros.org/usb_cam
4-2、运行usb_cam_node开启摄像头
- $ roscore
新版本的usb_cam包在launch文件夹下有自带的launch文件,名叫usb_cam-test.launch
- $ cd
- $ cd catkin_ws/src/usb_cam/launch
- $ roslaunch usb_cam-test.launch
如果工作空间的usb_cam包中不带这个launch文件我们就要新建它:
- <launch>
- <node name="usb_cam" pkg="usb_cam" type="usb_cam_node" output="screen" >
- <param name="video_device" value="/dev/video0" />
- <param name="image_width" value="640" />
- <param name="image_height" value="480" />
- <param name="pixel_format" value="yuyv" />
- <param name="camera_frame_id" value="usb_cam" />
- <param name="io_method" value="mmap"/>
- </node>
- <node name="image_view" pkg="image_view" type="image_view" respawn="false" output="screen">
- <remap from="image" to="/usb_cam/image_raw"/>
- <param name="autosize" value="true" />
- </node>
- </launch>
保存,并关闭这个文件。
- $ cd
- $ cd catkin_ws/src/usb_cam/launch
- $ roslaunch usb_cam-test.launch
4-3、遇到的问题
Step5: 修改ros_mono.cc
进入~/catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/src
打开 ros_mono.cc 把程序里面的topic改为 /usb_cam/image_raw
具体还要查看自己的rviz(即上一步打开的摄像头窗口的标题)
然后进入~/catkin_ws/src/ORB_SLAM
$ chmod +x build_ros.sh
$ ./build_ros.sh
Step5: 启动mono
$ ~/catkin_ws/src/ORB_SLAM2$
rosrun ORB_SLAM2 Mono /home/sun/catkin_ws/src/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/sun/catkin_ws/src/ORB_SLAM2/my.yaml node:sun(zhuji)
有两个参数,第二个参数是相机参数文件,根据自己的相机参数修改。
正常启动效果如下
都上一步为止已经成功跑起来了,我们来玩点好玩的吧
Step6: 增强现实
参照step4启动摄像头然后执行一下命令
~/catkin_ws/src/ORB_SLAM2$ rosrun ORB_SLAM2 MonoAR /home/sun/catkin_ws/src/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/sun/catkin_ws/src/ORB_SLAM2/my.yaml
如果没有界面出来不要着急,参照step5 打开 ros_mono_ar.cc把程序里面的topic改为 /usb_cam/image_raw
具体还要查看自己的rviz(即上一步打开的摄像头窗口的标题)
然后进入~/catkin_ws/src/ORB_SLAM$ chmod +x build_ros.sh $ ./build_ros.sh
首先确保SLAM ON 然后点击添加物体,最终效果如下
AR + ROS +UBUNTU16.04+ORB-SLAM2相关推荐
- Ubuntu 16.04~ORB SLAM2~Kinect v1
额 Ubuntu16.04 ORB-SLAM2实现(kinect V1/ROS) ----------------------------------------------------------- ...
- ROS: Ubuntu16.04安装ROS-kinetic
参考连接:SLAM: Ubuntu14.04_Kylin安装ROS-Indigo 第一步: 软件源配置 1. 增加下载源(增加ubuntu版的ros数据仓库,即下载源)(通用指令适合任何版本的ros) ...
- ROS与深度相机入门教程:(1)Ubuntu16.04 在ROS中驱动Intel D435i深度相机
Intel在Github上开源了支持所有RealSense系列相机的SDK,包括了D400.SR300系列深度相机和T265双目跟踪相机,支持Linux.Windows.Mac OS以及Android ...
- 树莓派装linux ros,树莓派安装Ubuntu16.04 MATE系统以及ROS(kinetic)的安装
安装ubuntu16.04 MATE系统 1.安装Ubuntu16.04镜像 从官网下载并按照树莓派刷写系统的流程将ubuntu16.04 MATE烧写到树莓派的SD卡上 2.设置WiFi 将树莓派外 ...
- ubuntu16.04下ROS最新换源方法,解决Hash sum mismatch 问题
1.更换源 备份原始数据 cd /etc/apt/ sudo cp sources.list sources.list.bak sudo gedit sources.list 科大源: deb htt ...
- ubuntu16.04 + Kdevelop + ROS开发
ubuntu16.04 + Kdevelop + ROS开发 转载于:https://www.cnblogs.com/yebo92/p/7307505.html
- Ubuntu16.04安装ROS后运行gazebo报错 it says it‘s incompatible with that RT“‘ failed.
Ubuntu16.04系统安装ROS(kinetic版本)后,使用ROS包含的gazebo时报错,gzserver: /build/ogre-1.9-mqY1wq/ogre-1.9-1.9.0+dfs ...
- Ubuntu16.04安装ros残缺包
由于工程项目对系统环境要求不同,安装ROS时,部分软件包没有安装,在执行程序时才报错,下面是执行程序中的问题以及相应解决方案,可以根据需求自行尝试. 1. 具体报错记不清了,大致是提示相应包找不到,根 ...
- Ubuntu16.04 + ROS kinetic + 激光slam-cartographer ROS + 数据仿真 + Turtlebot3仿真
一.Ubuntu16.04 +ROS kinetic的安装及问题解决 https://blog.csdn.net/GGY1102/article/details/107877937 二.Cartogr ...
最新文章
- ibatis.net:第五天,QueryForObject
- 如何将页脚固定在页面底部
- 全球 MEDC 2007 举行日期
- BitMap位图与海量数据的理解与应用
- 谷歌:一篇论文,让研究者吃我三份安利
- CodeIgniter 的数据安全过滤全解析
- 疯狂ios讲义之美化iOS应用
- C# 语言历史版本特性(C# 1.0到C# 8.0汇总)
- linux 安装 yum
- 战地一自定义服务器怎么搜索,战地1怎么快速加入服务器?多种加入方法一览...
- 使用Python编写一个QQ聊天机器人
- python能开发手机app吗_python开发手机app和java相比,缺点是什么?
- YOLO测试图片显示准确率值
- 什么是 A 轮融资?有 B轮 C轮么?
- 计算机科学与技术影响因子排名,173个学科SCI期刊影响因子排名
- 网络工程师2017上半年软考上午试题
- 深度学习入门基础讲义
- 不刷新页面更新内容的方法
- 安装maven时安照说明配置环境变量JAVA_HOME
- 利用Power Platform来搭建学校智能健康信息平台(2)
热门文章
- python中init和setup有什么区别_python – 为什么setup.py在安装期间运行模块__init__.py?...
- oss生成唯一文件名_根据结构化自然语言规范自动生成精确预言
- spark提交到yarn_详细总结spark基于standalone、yarn集群提交作业流程
- 开源游戏机java模拟器_最棒的 7 款开源终端模拟器
- java中的pattern_Java Pattern的用法是什么?
- linux系统桌面缺色,红旗系统如何用?
- 洛谷 P3302 [SDOI2013]森林 主席树+启发式合并
- 一、PyTorch Cookbook(常用代码合集)
- LeetCode刷题记录12——232. Implement Queue using Stacks(easy)
- qt能使用logback_使用ELK系统分析SpringBoot日志