[代码运行]Maplab编译踩坑

本文详细介绍Maplab的安装步骤及解决编译问题的方法,包括环境配置、依赖库安装、运行Euroc数据集及自定义数据集的过程。针对校园网环境和科学上网条件给出建议,并分享运行中常见错误的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里是Maplab的简介

点击跳转Github


这里是Maplab安装编译的顺序以及遇到的问题:

1.ceres-solver下载不了,编译不过去

解决方案:参考官方的Q&A中的Opencv安装异常

然后编译顺利通过了。

这里额外建议两点:

1.新建工作空间,例如maplab_ws

$ mkdir -p ~/dev/maplab_ws/src

$ cd ~/dev/maplab_ws/src

$ catkin_init_workspace

$ cd ~/

$ sudo gedit .bashrc

将export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/你*的*名*字/dev/maplab_ws/src 加入到有catkin_ws的那行的下面,你的名字用自己的名字代替。

$ cd ~/dev/maplab_ws/

$ catkin_make

$source devel/setup.bash

2. 校园网网线直连,或者自己有全局科学上网也可以。


运行Euroc dataset按照官网的教程以及这位大神的总结都行,都可以成功跑起来。

下面是运行自己的数据集:

需要更改/home/xxx/dev/maplab_ws/src/maplab/applications/rovioli/scripts/tutorials文件里面的tutorial_euroc_live文件

或者改别的也可以,这里给出我修改的:

#!/usr/bin/env bash
# Script to run ROVIOLI from a Euroc live data source (e.g., Euroc bag file with rosbag play).
# Usage: tutorial_euroc <output save folder> [<additional rovioli flags>]

LOCALIZATION_MAP_OUTPUT=$1
NCAMERA_CALIBRATION="/home/xxx/dev/maplab_ws/src/maplab/applications/rovioli/share/ncamera-euroc.yaml"
IMU_PARAMETERS_MAPLAB="/home/xxx/dev/maplab_ws/src/maplab/applications/rovioli/share/imu-adis16488.yaml"
IMU_PARAMETERS_ROVIO="/home/xxx/dev/maplab_ws/src/maplab/applications/rovioli/share/imu-sigmas-rovio.yaml"
REST=$@

rosrun rovioli rovioli \
  --alsologtostderr=1 \
  --v=2 \
  --ncamera_calibration=$NCAMERA_CALIBRATION  \
  --imu_parameters_maplab=$IMU_PARAMETERS_MAPLAB \
  --imu_parameters_rovio=$IMU_PARAMETERS_ROVIO \
  --datasource_type="rostopic" \
  --save_map_folder="$LOCALIZATION_MAP_OUTPUT" \
  --map_builder_save_image_as_resources=false \
  --optimize_map_to_localization_map=true  \
  --detection_visualize_keypoints=true \
  --feature_tracker_visualize_feature_tracks=true \
  --feature_tracker_visualize_keypoint_matches=true \
  --feature_tracker_visualize_keypoints=true \
  --feature_tracker_visualize_keypoints_individual_frames=true \
  --publish_debug_markers=true \
  --rovioli_visualize_map=true $REST

然后需要注意的是需要将自己录制的数据集在播放的时候remap成Euroc 数据集的topic

再者需要调一些内参等,参考上述的三个yaml文件中的内容修改。

以上,应该能成功运行。


运行自己的数据集

传感器是intel RealSense D435i,这款相机自带rgb和imu,相当于是ZR300的一个改款小升级。

不过这款传感器的IMU出厂没有标定过,相机内参可以从rs-sensor-control中读取,也可以自行标定。

博主这里用kalibr标定了相机、IMU;然后对相机的launch文件进行修改。

这里博主对几个位置进行了修改,参考了篇博客:参考博客

然后对配置文件进行修改,需要修改的三个配置文件是上面提到的用绝对路径指向的三个yaml文件。

然后再对launch文件进行修改,修改指向的yaml文件(如果你改了名字的话)。(这里我尝试新建了一个launch文件,不过没launch起来) 

然后按照之前的步骤,在工作空间中运行

rosrun rovioli tutorial_euroc_live /home/xxx/dataset/maplab/

后面那个是博主存地图的地方。

然后就是喜闻乐见的报错环节:

这个问题是:

ROVIO rejected image measurement. Latency is too large.

然后参考github上的issue:issue

把相关的文件中的检测注释掉,就能跑起来了,不过效果不太行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值