bluefox mcptam 外参标定遇到问题总结

      楼主最近在跑mcptam的程序,打击颇大,在这里将遇到的几个问题总结分析下(解决后,觉得遇到的这几个问题真的不算问题,说白了还是自己缺少工程经验,加油加油):

     问题1:bluefox相机启动后 发布的是/cameraX/inage_raw/compressed ,mcptam标定时需要的是/cameraX/inage_raw/compressed,分别启动多个bluefox相机,然后启动mcptam外参标定程序,毫不意外的在生成关键帧后报错,之前有做多目slam的经验,标定多相机必须保证多相机同步触发

    问题2:多相机同步触发有软件触发和硬件触发2种方式,视觉对同步要求不是太高,这里我采用的是bluefox相机自带的多相机同步触发程序。多相机同步触发后发布的话题是/muti/cameraX/image_raw/compressed,而前文已经说过mcptam需要的是/cameraX/inage_raw/compressed。我的解决思路如下:a、找到mcptam中所有订阅话题的地方,把/cameraX/inage_raw/compressed改成/muti/cameraX/image_raw/compressed  b、使用remap方法 在启动bluefox多相机的launch文件中加入 <remap from="/muti/cameraX/image_raw/compressed" to ="/cameraX/inage_raw/compressed"> 有几个相机加几行。     这2种方法使用过,程序运行时都无法识别标定版,对比参数后,最后发现居然是曝光值设低了,图片看不清导致。

     

                                             分別啓動多個相機進行標定

          

                                              軟件觸發同時啓動多個相機,修改mcptam訂閱的話題

     

                                                 軟件觸發同時啓動多個相機,remap  話題名後標定

  问题3:第一个相机识别标定版后开始提取关键帧,但每次提取到第二个关键帧后都提示如下错误,经过搜索,锁定是ubuntu14.04下pcl的问题,经过一个数据类型转换即可。

          

 

#include <pcl/conversions.h>


pcl_conversions::toPCL( ros::Time::now(),pointMsg->header.stamp); 
  //pointMsg->header.stamp = ros::Time::now().toNSec();  就是這句話出錯了

猜你喜欢

转载自blog.csdn.net/m_zhangjingdong/article/details/79880959