这两天刚开始弄imu+vslam,把学习的过程记录一下,以便后续查阅。同时也希望能帮助到大家。仅供参考,如有不对请指正!

step1:下载小觅深度相机的官方SDK 可以用我提供的这个链接

cd <sdk>
make init
make ros
make all
echo "source ~/MYNT-EYE-D-SDK/wrappers/ros/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

到此SDK就编译好了
要使用相机就得配置相机的标定参数,这些参数都可以通过SDK去获取。

step2:获取相机的参数,

cd MYNT-EYE-D-SDK./samples/_output/bin/get_imu_params./samples/_output/bin/get_img_params

执行完成以上步骤之后,会在b会在上一级目录bin/生成两个参数文件,分别是相机和imu的参数,可供后续查看。

setp3:安装vins-mono并配置参数文件

vins-mono源码:下载链接
注意:以下步骤中,前提是我已经建立好wokespace然后把下载的vins-mono放如src/下,这一步我提前已经做好,以下步骤直接进入了。

cd  ~/Downloads/vins-mono/catkin_ws    //your vins-mono work-space
catkin_make
source  devel/setup.bash

1、在vins-mono/catkin_ws/src/VINS-Mono-master/vins_estimator/launch下新建一个mynteye.launch文件
mynteye.launch文件的内容如下:

<launch><arg name="config_path" default = "$(find feature_tracker)/../config/mynteye/mynteye_config.yaml" /><arg name="vins_path" default = "$(find feature_tracker)/../config/../" /><node name="feature_tracker" pkg="feature_tracker" type="feature_tracker" output="screen"><param name="config_file" type="string" value="$(arg config_path)" /><param name="vins_folder" type="string" value="$(arg vins_path)" /></node><node name="vins_estimator" pkg="vins_estimator" type="vins_estimator" output="screen"><param name="config_file" type="string" value="$(arg config_path)" /><param name="vins_folder" type="string" value="$(arg vins_path)" /></node><node name="pose_graph" pkg="pose_graph" type="pose_graph" output="screen"><param name="config_file" type="string" value="$(arg config_path)" /><param name="visualization_shift_x" type="int" value="0" /><param name="visualization_shift_y" type="int" value="0" /><param name="skip_cnt" type="int" value="0" /><param name="skip_dis" type="double" value="0" /></node></launch>

以上内容直接复制添加,不需要修改!
2、在/vins-mono/catkin_ws/src/VINS-Mono-master/config/文件夹下新建一个名为mynteye的文件夹,然后在该文件夹里面新建一个名为mynteye_config.yaml的文件。
mynteye_config.yaml文件的内容如下:

%YAML:1.0#common parameters
imu_topic: "/mynteye/imu/data_raw"  #换成你的IMU的话题
image_topic: "/mynteye/left/image_color"  #换成你的相机的话题
output_path: "/home/shuchun/Downloads/vins-mono/catkin_ws/src/VINS-Mono/config/output_path/" #换成你的路径#camera calibration
model_type: PINHOLE
camera_name: camera
image_width: 1280   #换成你的相机参数(step2中获取的参数)
image_height: 640  #换成你的相机参数
distortion_parameters:   #换成你的畸变参数k1: -0.266278k2: 0.0527945p1: -0.000182013p2: 0.000422317
projection_parameters:   #换成你的相机内参fx: 365.75fy: 373.236cx: 357.402cy: 241.418# Extrinsic parameter between IMU and Camera.
# 大家如果用的是小觅的深度相机,这一步可以选择0,然后R,t可以通过小觅自带的sdk获取
estimate_extrinsic: 0   # 0  Have an accurate extrinsic parameters. We will trust the following imu^R_cam, imu^T_cam, don't change it.# 1  Have an initial guess about extrinsic parameters. We will optimize around your initial guess.# 2  Don't know anything about extrinsic parameters. You don't need to give R,T. We will try to calibrate it. Do some rotation movement at beginning.
#If you choose 0 or 1, you should write down the following matrix.
#Rotation from camera frame to imu frame, imu^R_cam
extrinsicRotation: !!opencv-matrixrows: 3cols: 3dt: ddata: [-0.00646620000000000, -0.99994994000000004, -0.00763565000000000, 0.99997908999999996, -0.00646566000000000, -0.00009558000000000, 0.00004620000000000, -0.00763611000000000, 0.99997084000000003]
#Translation from camera frame to imu frame, imu^T_cam
extrinsicTranslation: !!opencv-matrixrows: 3cols: 1dt: ddata: [0.00533646000000000, -0.04302922000000000, 0.02303124000000000]#feature traker paprameters
max_cnt: 150            # max feature number in feature tracking
min_dist: 30            # min distance between two features
freq: 10                # frequence (Hz) of publish tracking result. At least 10Hz for good estimation. If set 0, the frequence will be same as raw image
F_threshold: 1.0        # ransac threshold (pixel)
show_track: 1           # publish tracking image as topic
equalize: 1             # if image is too dark or light, trun on equalize to find enough features
fisheye: 0              # if using fisheye, trun on it. A circle mask will be loaded to remove edge noisy points#optimization parameters
max_solver_time: 0.04  # max solver itration time (ms), to guarantee real time
max_num_iterations: 8   # max solver itrations, to guarantee real time
keyframe_parallax: 10.0 # keyframe selection threshold (pixel)#imu parameters       The more accurate parameters you provide, the better performance
acc_n: 0.08          # accelerometer measurement noise standard deviation. #0.2   0.04
gyr_n: 0.004         # gyroscope measurement noise standard deviation.     #0.05  0.004
acc_w: 0.00004         # accelerometer bias random work noise standard deviation.  #0.02
gyr_w: 2.0e-6       # gyroscope bias random work noise standard deviation.     #4.0e-5
g_norm: 9.81007     # gravity magnitude#loop closure parameters
loop_closure: 1                    # start loop closure
load_previous_pose_graph: 0        # load and reuse previous pose graph; load from 'pose_graph_save_path'
fast_relocalization: 0             # useful in real-time and large project
pose_graph_save_path: "/home/fish/ws_vins/src/VINS-Mono/config/output_path/" # #换成你的路径#unsynchronization parameters
estimate_td: 0                      # online estimate time offset between camera and imu
td: 0.0                             # initial value of time offset. unit: s. readed image clock + td = real image clock (IMU clock)#rolling shutter parameters
rolling_shutter: 0                  # 0: global shutter camera, 1: rolling shutter camera
rolling_shutter_tr: 0               # unit: s. rolling shutter read out time per frame (from data sheet). #visualization parameters
save_image: 1                   # save image in pose graph for visualization prupose; you can close this function by setting 0
visualize_imu_forward: 0        # output imu forward propogation to achieve low latency and high frequence results
visualize_camera_size: 0.4      # size of camera marker in RVIZ

接下来演示之前,先插上相机,不然待会忘记了!

step4:启动相机,运行vins-mono

1)开启相机

cd  /home/shuchun/Downloads/MYNT-EYE-D-SDK-master  //your file path
source ./wrappers/ros/devel/setup.bash
roslaunch mynteye_wrapper_d mynteye.launch


2)开启vins

cd /home/shuchun/Downloads/vins-mono/catkin_ws   //your workspace
source devel/setup.bash
roslaunch vins_estimator mynteye.launch  //这个mynteye.launch文件就是我刚刚修改的


这一步正常开启的话,终端是会不断输出相机发布的消息的,如果没有或者报错你就要仔细查看前面的步骤或想想哪个环节出问题了(这一步不正常,后面不能显示轨迹的)
3)开启ros可视化界面rviz

cd /home/shuchun/Downloads/vins-mono/catkin_ws   //your workspace
source devel/setup.bash
roslaunch vins_estimator vins_rviz.launch


无轨迹问题原因:
一开始会没有轨迹,手持相机小幅度平移和旋转一下,我个人觉得这个也是单目,应该和ORBSLAM2中mono一样,不具备尺度性,需要初始化一下。接下轨迹就出来,如果还不行,把第2,3步终端关闭,再开启第二步的终端,紧接着初始化一下(手持相机平移和旋转)然后开启第三步可视化界面。

问题待完善…

ubuntu18.04系统小觅深度相机跑vins-mono(解决了rviz没有轨迹出现的问题)相关推荐

  1. 我的AI之路(39)--使用深度相机之小觅深度相机

    小觅深度相机的SDK代码在github上, 小觅相机的支持库需要从这里https://github.com/slightech/MYNT-EYE-D-SDK下载SDK源码后本地编译后再安装,Ubunt ...

  2. 用小觅双目相机跑ORB-SLAM2

    用小觅双目相机跑ORB-SLAM2 首先是安装ros和小觅相机的SDK,安装ros这里就不再说明,其他博客都有,SDK也是在小觅官网上的,安装好了以后,创建工作空间,随意在一个文件夹下打开终端,输入 ...

  3. Ubuntu18.04安装小觅双目深度相机SDK——MYNT-EYE-D-SDK

    先给出小觅官方链接:小觅 全程你要把小觅相机插在USB接口上. 安装依赖 1.安装OpenCV 如果您已经安装了 opencv 或者您想要使用 ROS(ros中自带的opencv),您可以跳过这步. ...

  4. 小觅深度相机kalibr标定

    双目相机标定 0.介绍几个实用的ROS小技巧 这几个命令在标定遇到问题的时候可以分析错误 rostopic list /topic 查看topic rostopic hz /topic 查看topic ...

  5. Ubuntu16.4加小觅深度相机实现远程视频监控

    linux系统ubuntu16.4搭建MMS/rtsp服务器,WIN 10 系统进行监控 该操作主要实现的是视频流的传输. 使用MMS协议进行传输 MMS协议适用于访问Windows Media Pl ...

  6. 小觅深度版Ubuntu下跑vins-mono

    最近实验室新买了小觅深度版相机(型号D1000-IR-120/Color),这里记录一下跑vins-mono的过程.由于虚拟机usb可能出现不兼容问题,我使用的是双系统的Ubuntu16.04,对应R ...

  7. ubuntu18.04系统ros melodic 安装orbslam2,Astra相机的ROS环境

    ubuntu18.04 安装orbslam2,rosbag,Astra相机的ROS环境  ubuntu20.04系统 ros noetic下安裝orbslam2 打开下面链接: CSDNhttps:/ ...

  8. 小觅深度版-realsense系列,深度相机对比

    本文为CSDN原创文章,转载请注明出处 本文为CSDN原创文章,转载请注明出处 本文对比了目前小觅生产的深度版(120°)相机.Realsense D435以及 Realsense ZR300,说明了 ...

  9. Ubuntu18.04系统搭建深度学习环境

    安装概要:显卡驱动+cuda11.7+cudnn+pip换源+Anaconda3+pycharm 『xxx』:代表软件名称 目录 1.系统换源 2.安装显卡驱动 3.安装cuda和cudnn 4.安装 ...

最新文章

  1. 安全专家教你如何利用Uber系统漏洞无限制的免费乘坐?
  2. 字符与字符串操作——Windows via C/C++
  3. unity如何往下挖地形_Unreal Engine地形系统辨析(一)
  4. 实验二:编写输出Hello World!
  5. 由降低系统之间的接口维护和升级的成本想到的。。。
  6. PHP判断手机横向,H5横竖屏检测的方法
  7. 软件天才都是训练出来的
  8. matlab fft freqz,【急】请教 fft、freqz、bode 求相频响应的区别及原因
  9. python基础题目练习,购买猕猴桃
  10. stalk词组_let.stalk是什么意思
  11. cyusb3014上位机同步传输与异步传输的实现
  12. 一网打尽Mac上的高效工具 - 效率工作篇(附演示视频)
  13. 小小的Toast蕴含大道理(解决关闭通知时原生Toast不显示问题)
  14. swiper的基础使用(十五)
  15. 哪个版本的outlook好_未来版本的Outlook的阴影?
  16. 小米mix2安兔兔html5跑分,2019安兔兔性能跑分排行榜 小米9华丽登顶,荣耀v20排第9...
  17. Ubuntu18.04中如何更换为清华的镜像源
  18. 国大开放英语计算机考试答案,国家开放大学电大专科《开放英语1》期末试题标准题库及答案.docx...
  19. 银行塔LED闪灯IC芯片,常亮快闪慢闪循环闪烁芯片,小夜灯闪灯芯片IC
  20. 推特推 Periscope 垂死挣扎还是扭转乾坤

热门文章

  1. 2020李宏毅学习笔记——54.Anomaly Detection(4_7)
  2. 浅谈JavaScript中的NaN
  3. QQ浏览器之后,Vivo NEX又检测出百度手机输入法后台录音
  4. 【队内胡策 11.1】 T1 T2
  5. 美团打车改变策略推聚合模式 超级平台能否让网约车业务做起来?
  6. GEE中遥感影像反演水深遇到的一些问题
  7. 安卓虚拟机_一个手机变两个!安卓机上的安卓虚拟机,自带Xposed框架!
  8. 10061 mysql_MySQL问题记录--Can't connect to MySQL server on localhost (10061)解决方法
  9. 大型复杂项目集管理之一
  10. 外呼系统是什么意思?有什么用?