环境

Ubuntu16.04+小觅标准彩色双目+orbslam2
做这个的目的,是想用slam的定位算法解决我三维重建的定位,但是结果来看(至少orbslam2)不符合预期。既然做了,就记录下来。

小觅发布图像话题

因为我要做三维重建,希望图片分辨率大点。但是小觅ros发布的是640*400的分辨率。

  1. 我先改/home/…/MYNT-EYE-S-SDK/wrappers/ros/src/mynt_eye_ros_wrapper/config/device/standard2.yaml文件。修改里面的
#改为6,原来是2
standard2/request_index: 6

重新编译

make ros
roscore
roslaunch mynt_eye_ros_wrapper mynteye.launch
#用来看当前图像,我录制的矫正后的1280*800图像。
rosrun image_view image_view image:=/mynteye/left_rect/image_rect
#保存话题
rosbag record -O shiyanshi.bag /mynteye/left_rect/image_rect /mynteye/right_rect/image_rect
  1. ctrl+c停止rosbag record的程序
  2. 至此获得了小觅双目的1280*800的矫正后的左右话题图像ros包

从rosbag中保存时间戳一致的左右图像

1.在catkin_ws/src下创建一个工作小包(我命名为catchImgFromTopic),main.cpp如下

#include <ros/ros.h>
#include <image_transport/image_transport.h>
#include "sensor_msgs/Image.h"
#include <opencv2/highgui/highgui.hpp>
#include <cv_bridge/cv_bridge.h>
#include <message_filters/subscriber.h>
#include <message_filters/synchronizer.h>
#include <message_filters/sync_policies/approximate_time.h>
#include <message_filters/time_synchronizer.h>
#include <boost/thread/thread.hpp>
#include <iostream>
#include <fstream>
#include <iostream>
#include <sstream>
#include <iomanip>
#include <stdio.h>
#include <string.h>using std::cout;
using std::endl;
using std::stringstream;
using std::string;int countl=0;
int countr=0;
int count=0;void multi_callback(const sensor_msgs::ImageConstPtr& msgl, const  sensor_msgs::ImageConstPtr& msgr)
{std::cout << "同步完成!" << std::endl;char l_name[30];char r_name[30];snprintf(l_name, sizeof(l_name), "./image_0/%06d.png", count);snprintf(r_name, sizeof(r_name), "./image_1/%06d.png", count);cv::imwrite(l_name, cv_bridge::toCvShare(msgl,"bgr8")->image);cv::imwrite(r_name, cv_bridge::toCvShare(msgr,"bgr8")->image);//    f<<msgl.header.stamp.to_sec()<<std::endl;//追加写入,在原来基础上加了ios::app std::stringstream ss;std::string str;std::fstream f;f.open("./times.txt",std::ios::out|std::ios::app);ss << std::setw(6) << std::setfill('0') << count ;ss >> str; f<<"0.0"<<str<<std::endl;f.close();std::cout << "Saved " << l_name << " " << r_name << " " << " to current directory" << std::endl;count=count+1;
}int main(int argc, char **argv)
{ros::init(argc, argv, "multi_receiver");ros::NodeHandle n;message_filters::Subscriber<sensor_msgs::Image> subscriber_l(n,"/mynteye/left_rect/image_rect",1000,ros::TransportHints().tcpNoDelay());message_filters::Subscriber<sensor_msgs::Image> subscriber_r(n,"/mynteye/right_rect/image_rect",1000,ros::TransportHints().tcpNoDelay());typedef message_filters::sync_policies::ApproximateTime<sensor_msgs::Image, sensor_msgs::Image> syncPolicy;//message_filters::TimeSynchronizer<sensor_msgs::LaserScan,geometry_msgs::PoseWithCovarianceStamped> sync(subscriber_laser, subscriber_pose, 10);message_filters::Synchronizer<syncPolicy> sync(syncPolicy(10), subscriber_l, subscriber_r);  sync.registerCallback(boost::bind(&multi_callback, _1, _2));std::cout << "hahah" << std::endl;ros::spin();  return 0;}

CMakeLists.txt

cmake_minimum_required(VERSION 2.8.3)
project(catchImgFromTopic)##Compile as C++11, supported in ROS Kinetic and newer
#add_compile_options(-std=c++11)##Find catkin macros and libraries
##if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
##is used, also find other catkin packages
find_package(catkin REQUIRED COMPONENTScv_bridgeimage_transportroscpprosbagsensor_msgsstd_msgs
)
find_package(OpenCV)
include_directories(${catkin_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS})
add_executable(exportMynt /home/ymb/catkin_ws/src/catchImgFromTopic/src/main.cpp)
target_link_libraries(exportMynt ${OpenCV_LIBS})
target_link_libraries(exportMynt ${catkin_LIBRARIES})

2.编译
只编译一个包

catkin_make -DCATKIN_WHITELIST_PACKAGES="catchImgFromTopic"

保存图片

1.先在一个文件夹下创建两个文件夹,命名为image_0,image_1
2.再运行roscore
3.该文夹下打开终端,运行

~/catkin_ws/build/catchImgFromTopic/exportMynt
#新开终端,播放rosbag
rosbag play shiyanshi.bag

结果



至此,图像集都做好了。
回去跑orbslam2的KITTI双目样例吧,别忘了也做一个跟KITTI数据集一样的相机参数.yaml。
结束》。。。

【代码相关-ROS】利用小觅采集的rosbag,制作双目图像集,跑orbslam2相关推荐

  1. 小觅相机录制rosbag数据集

    数据集录制: 使用的相机是双目深度版,首先启动launch文件 roslaunch mynteye_wrapper_d display.launch 然后对图片和imu数据录制,考虑到RGB图像会导致 ...

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

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

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

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

  4. 利用小波融合对由聚焦失败导致的图像模糊进行修复

    图像的融合是将两幅或多幅图像融合在一起,以获取对同一场景的更为精确.更为全面.更为可靠的图像描述.融合算法应该充分利用各原图像的互补信息,使融合后的图像更适合人的视觉感受,适合进一步分析的需要.例如在 ...

  5. 小觅双目摄像头标准彩色版发布 为移动机器人视觉导航避障优化设计

    2019年1月15日, 小觅智能发布了其双目深度相机系列旗下全新产品小觅双目摄像头标准彩色版(简称标准彩色版,下同). 小觅双目摄像头 标准彩色版(MYNT EYE S Color)依然沿用" ...

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

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

  7. 小觅相机初始化(标准版)

    小觅相机SLAM 1.1 安装 ubuntu16 小觅双目摄像头 MYNT-EYE-S-SDK安装 官方的说明 官方sdkgithub 安装ROS Wrapper ROS与深度相机入门教程-在ROS使 ...

  8. MSCKF_VIO作者就是用小觅双目摄像头跑的

    https://gitee.com/maxibooksiyi/msckf_vio_GPS 我在youtube上也看到有人用小觅摄像头跑MSCKF_VIO 还有小觅自己也写过用小觅摄像头跑MSCKF h ...

  9. 40行代码教你利用Python网络爬虫批量抓取小视频

    1. 前言 还在为在线看小视频缓存慢发愁吗?还在为想重新回味优秀作品但找不到资源而忧虑吗?莫要慌,让python来帮你解决,40行代码教你爬遍小视频网站,先批量下载后仔细观看,岂不美哉! 2. 整理思 ...

最新文章

  1. sql查询结果字段名与字段值倒过来了
  2. 通过类或ID记录上一个被选中的标签或者数字
  3. Python优雅地可视化数据
  4. DefaultMessageListenerContainer
  5. 外媒:iPhone13系列将推出两种新配色:日落金和玫瑰金
  6. tfhpple解析html中的图片,图文详解使用TFHpple解析html方法
  7. java 正则表达式 判断 日期_怎么在java中利用正则表达式对时间日期进行判断
  8. Git学习笔记一《版本控制之道-使用Git》
  9. Find命令使用详解及实例分析
  10. Ubuntu Thinkphp page not found
  11. delphi csdn论坛技巧收藏贴
  12. 电脑解锁后黑屏有鼠标_电脑开机后黑屏只有一个鼠标箭头怎么办_win10屏幕黑屏就剩鼠标如何修复...
  13. vue axio的使用
  14. 15个经典面试问题及回答思路,挥泪整理面经
  15. 【LaTeX】IEEE会议模板中使用BibTex插入文献(解决报错:Something‘s wrong--perhaps a missing \item. \end{thebibliography}
  16. 【html】css样式
  17. 微信小程序之callout自定义气泡
  18. log4j WARN 和 SLF4J WARN 解决办法
  19. python控制手机
  20. matlab 局部变量和全局变量,C++局部变量和全局变量(详解版)

热门文章

  1. JAVA——34.集合函数-List
  2. 夏日小风扇(.html实现)——小太阳给她带去凉爽
  3. 一文读懂运放共模抑制比(上)
  4. 6.3【字符数组编程】假定输入的字符串中只包含字母和*号。请编写子函数实现:除了字符串前导的*号之外,将串中其他*号全部删除。
  5. 【干货】直播聊天室详细分解,让你一眼学会快速搭建!
  6. SAP 采购订单打印之后不能取消审核问题的解决(修改配置)
  7. 矿大2019年 微机原理与接口考试题型
  8. 红蓝cp未能连接到服务器,红蓝CP产品分析
  9. 流氓软件卸载 比如Qiaozip 巧压等进程导致占用无法删除
  10. Linux入门学习笔记之基础