ROS下安装和运行SVO数据包和实时测验的过程记录
安装与运行的所有文档:
- https://github.com/uzh-rpg/rpg_svo/wiki 或者
- http://blog.sina.com.cn/s/blog_7b83134b0102wfu4.html
有两种安装方式:
- 有ros:https://github.com/uzh-rpg/rpg_svo/wiki/Installation:-ROS
- 没ros:https://github.com/uzh-rpg/rpg_svo/wiki/Installation:-Plain-CMake-(No-ROS)
没ros的操作步骤较多。首先依照ros的安装方法。
一、安装SVO
0. 建立一个ROS工作空间
cd ~/
mkdir svo_ws
cd svo_ws
catkin_make
mkdir src
mkdir thirdpartyecho "source $HOME/svo_ws/devel/setup.sh" >> ~/.bashrc
source ~/.bashrc
1.安装Sophus
cd thirdparty
git clone https://github.com/strasdat/Sophus.git
cd Sophus
git checkout a621ff ### 选择特定版本 Sophus
如果g++编译器为6及以上版本,需要更改 sophus/so2.cpp。(我的是 gcc-7.5和g++-7.5)
// unit_complex_.real() = 1.;
// unit_complex_.imag() = 0.;unit_complex_.real(1.);unit_complex_.imag(0.);
然后,开始编译
mkdir build
cd build
cmake ..
make
在~/.cmake/packages/中可以看到Sophus
2. 安装fast角点检测器
cd ~/svo_ws/thirdparty
git clone https://github.com/uzh-rpg/fast.git
cd fast
mkdir build
cd build
cmake ..
make
3.安装g2o
安装g2o前,需要安装一些依赖,否则会缺少一些安装内容。
sudo apt install libeigen3-dev libsuitesparse-dev libqt4-dev qt4-qmake libqglviewer-dev
sudo apt install libmrpt-dev
sudo apt install liblapacke-dev
然后开始安装。
cd ~/svo_ws/thirdparty
wget https://github.com/RainerKuemmerle/g2o/archive/20160424_git.tar.gz -O g2o-20160424_git.tar.gz
tar xvzf g2o-20160424_git.tar.gz
cd g2o-20160424_git
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX:PATH=$HOME/svo_ws/thirdparty/g2o ..
make -j4
make installcd ~/svo_ws
## 设置环境变量或安装路径
echo "export G2O_ROOT=$HOME/svo_ws/thirdparty/g2o" >> g2o_root.bashrc
需要注意的是,安装的时候需要特别确认是否有完全安装。我第一次安装的时候就碰到过提示缺少 “solvers/cholmod/linear_solver_cholmod.h” 的问题。不得已重新编译了一遍。
如果你已经安装了g2o, 你可以设置环境变量G2O_ROOT,不需要重新安装
export G2O_ROOT=$HOME/installdir
.安装vikit
cd ~/svo_ws/src
git clone https://github.com/uzh-rpg/rpg_vikit.git
5.安装ros cmake modules
sudo apt-get install ros-melodic-cmake-modules
6.安装sov
cd ~/svo_ws/src
git clone https://github.com/uzh-rpg/rpg_svo.git
7. 编译catkin_make
编译前,还需要做以下的几个工作:
- 已经安装了g2o,因此把svo/CMakeLists.txt中的HAVE_G2O设为TRUE。
- 下载并编译 cv_bridge。
- 替换 FindEigen3.cmake, FindSophus.cmake 等文件,以指定前面安装的 thirdparty 的路径。
git clone https://github.com/ros-perception/vision_opencv.git
git checkout 1.13.0cd vision_opencv
cp -rf cv_bridge $HOME/svo_ws/src/
8. 编译SVO
export G2O_INCLUDE_DIR=$HOME/svo_ws/thirdparty/g2o/include
export G2O_ROOT=$HOME/svo_ws/thirdparty/g2ocd $HOME/svo_ws # 进入ros工作空间
catkin_make --pkg cv_bridge #执行后会在catkin_ws /build和/devel 生成相应文件
9. 运行-测试数据集
- 有ROS:https://github.com/uzh-rpg/rpg_svo/wiki/Run-SVO-with-ROS
- 无ROS:https://github.com/uzh-rpg/rpg_svo/wiki/Run-SVO-without-ROS
9.1 有ROS时,测试数据集:
- 下载测试数据集:从这个网址https://github.com/uzh-rpg/rpg_svo/wiki/Run-SVO-with-ROS 用一个DATAset来运行SVO
- 或在在这里下载:rpg.ifi.uzh.ch/datasets/airground_rig_s3_2013-03-18_21-38-48.bag
- 首先运行ROS内核(窗口1):roscore
- 然后启动ROS(窗口2):roslaunch svo_ros test_rig3.launch
- 启动rviz(窗口3):rosrun rviz rviz -d ~/svo_ros_ws/src/rpg_svo/svo_ros/rviz_config.rviz
- 加载数据: rosbag play ~/svo_ws/Datasets/airground_rig_s3_2013-03-18_21-38-48.bag
9.2 安装uvc camera功能包
参考来源:https://github.com/uzh-rpg/rpg_svo/wiki/Run-SVO-with-ROS
参考来源:http://laukh.com/ros/run-svo/
《ROS中UVC_Camera的使用》:https://blog.csdn.net/qq_24894159/article/details/82939542
sudo apt install ros-melodic-uvc-camera
sudo apt install ros-melodic-libuvc-camera
sudo apt install ros-melodic-image-*
sudo apt install ros-melodic-rqt-image-view
通过运行UVC camera节点发布image_raw,并把SVO中live.launch中接收消息的话题改为image_raw,即
value=”/usb_cam/image_raw” # 改成自己发布主题的名字
my_camera.yaml # 相机标定参数
9.3 有ROS时,使用自身摄像头
- roscore #开启内核
- cd ~/svo_ros_ws/src/usb_cam/launch #进入安装相机驱动的地方
- roslaunch cam-X280.launch #打开相机
- roslaunch svo_ros svo.launch #svo.launch 是我编的launch文件
- rosrun rviz rviz -d ~/svo_ros_ws/src/rpg_svo/svo_ros/rviz_config.rviz # 启动rviz
- rosrun rqt_svo rqt_svo
如果显示NOT CONNECTED 在SVO Namespace 填入svo,点Start 运行。
9.4 可能存在的问题
运行 rosrun rqt_svo rqt_svo 时报错。
Traceback (most recent call last):File "/home/npuyin/svo_ros_ws/src/rpg_svo/rqt_svo/scripts/rqt_svo", line 5, in <module>from rqt_svo.svo import SvoFile "/home/npuyin/svo_ros_ws/src/rpg_svo/rqt_svo/src/rqt_svo/svo.py", line 6, in <module>from .svo_widget import SvoWidgetFile "/home/npuyin/svo_ros_ws/src/rpg_svo/rqt_svo/src/rqt_svo/svo_widget.py", line 7, in <module>from python_qt_binding.QtGui import QWidget
ImportError: cannot import name QWidget
原因:rqt in Kinetic uses Qt5, and in Qt5 the Widget class is defined in QtWidgets rather than QtGui.
因此,最简单的方法是作如下修改:
from python_qt_binding.QtWidgets import QWidget # 《== new line added / replaced QtGui with QtWidgets.
接着,碰到数据设置问题。
set maximum number of features to 120
/home/npuyin/svo_ros_ws/src/rpg_svo/rqt_svo/src/rqt_svo/svo_widget.py:64: SyntaxWarning: The publisher should be created with an explicit keyword argument 'queue_size'. Please see http://wiki.ros.org/rospy/Overview/Publishers%20and%20Subscribers for more information.self._publisher = rospy.Publisher(svo_namespace+'/remote_key', String)
set maximum number of features to 120
Failed to create /home/npuyin/.cache/mesa_shader_cache for shader cache (Permission denied)---disabling.
http://wiki.ros.org/rospy/Overview/Publishers%20and%20Subscribers
单目视觉半直接法(SVO)实践
https://blog.csdn.net/u013004597/article/details/51965940
源码安装ROS Melodic Python3 指南
https://blog.csdn.net/id9502/article/details/80410989
ROS中使用Python3的注意事项
https://blog.csdn.net/handsome_for_kill/article/details/81947978
完美解决如何用python3.6运行ros的问题
https://blog.csdn.net/weixin_41848012/article/details/103284050
Ubuntu18 编译和运行PL-SVO(不需要ROS)
https://blog.csdn.net/zhiwei121/article/details/101553669
PL-SVO在ROS下运行笔记
http://www.mamicode.com/info-detail-2275690.html
暑假研习系列:线、面SLAM从零入门(三)
https://blog.csdn.net/ns2942826077/article/details/107145939
ROS下安装和运行SVO数据包和实时详细过程
https://blog.csdn.net/xingzhou1212/article/details/63682032
ROS下安装和运行SVO数据包和实时测验的过程记录相关推荐
- ros下用kinectv2运行orbslam2
目录 前提 创建工作空间 orbslam2源码配置.测试: 配置usb_cam ROS功能包 配置kinect kinectv2标定 在ROS下用kinect运行orbslam2 出错: 前提 vim ...
- Linux下安装Dubbo运行环境
Linux下安装Dubbo运行环境 1.1.1 安装jdk zk首先需要安装jdk环境. yum -y install glibc.i686 #jdk依赖glibc mkdir /u ...
- linux下安装matlab运行环境
linux下安装matlab运行环境(Disabled - No sandbox or build area path) 由于某些需求需要java中调用matlab算法,需要在linux中安装运行环境 ...
- php环境下安装并运行laravel教程
php环境下安装并运行laravel教程 第一步 首先安装phpstudy,从官网 下载即可 下载链接https://www.xp.cn/ 打开环境–>选择php–>更多–>选择 p ...
- ROS下Python读取ft_300传感器数据
ROS下Python读取ft_300传感器数据 硬件条件: ur3 ft_300 ros:melodic #!/usr/bin/env python2 import rospy from geomet ...
- WIN10下安装visual studio 2013 语言包失败
附安装包 链接: https://pan.baidu.com/s/1OKBW3qZ55kuI_aSqYh_cBw 提取码: 36tp WIN10下安装visual studio 2013 语言包失败 ...
- ROS下安装vscode并配置ROS编译环境
(我这是基于docker下的ros当然你不用docker用实体机或者虚拟机也行) 效果如下 参考的大佬视频 ---------------------- 我的docker下的ros环境安装链接 --- ...
- (一) windows 10 下安装 mongodb 并 globalsign/mgo 包的简单使用
文章目录 windows 下安装 小坑 运行 mongodb 服务器 连接 mongodb 使用 globalsign/mgo 操作 mongodb windows 下安装 在 windows 下安装 ...
- 如何在Linux命令行下发送和接收UDP数据包
众所周知,在传输层有两个常用的协议 TCP 和 UDP,本文介绍在 Linux 命令行下,如何使用 nc 命令发送或接收 UDP 数据包,这些命令的用法对调试 UDP 通信程序将有所帮助. 1. 问题 ...
最新文章
- java h5获取ip,websocket中获取客户端通信的真实IP
- 数组的升序 java_java – 以升序数组排序数组
- VTK修炼之道13:数据读写_图像数据的读写
- stateflow新建状态中的枚举类型
- DocumentFragment使用
- Hbase JMX 监控 - Region
- Camera 图像处理原理分析
- 关于数据持久化的一个简介
- vsftpd增加和删除用户的shell脚本
- 服务器和交换机物理连接_连接网络的枢纽,网络交换机详解
- Ubuntu 搭建简单的git server
- 【转】知识图谱构建全过程
- 论文阅读及代码学习-Directed Acyclic Graph Network for Conversational Emotion Recognition
- 记一次百度知识图谱面试经历(cold)
- 天正对应cad版本_天正CAD图形找不到可用的AutoCAD版本怎么办?
- 互联网日报 | 5月2日 星期日 | 五一档总票房破5亿;中国联通在香港正式推出5G服务;欧盟首次对苹果发起反垄断诉讼
- 矩阵“特征值”要表示什么“特征”
- 好书整理系列之-设计模式:可复用面向对象软件的基础 4
- LeetCode刷题(45)~位1的个数【布赖恩·克尼根算法】
- ?? 关于zmq_proxy