Airsim中运行OpenVINS和VINS_Fusion

1. 简介

本文简介在Airsim中运行OpenVINS和VINS_Fusion.

2. 参考

  1. 无人飞行器智能感知技术竞赛 赛事公告
  2. 在AirSim中控制无人机平台并采集数据
  3. OpenVINS 官网
  4. AirSim中运行VIO算法(VINS-Mono)

3. 步骤

3.1 编译

  1. 模拟器和Airsim_ros_wrapper下载安装
    参考该工程的README.md文件,本文按照“LINUX 单机开发模式”进行配置。
    (1)模拟器下载(simulator_LINUX.zip)
    在浏览器中输入此网址即可开始下载:
    https://stg-robomasters-hz-q0o2.oss-cn-hangzhou.aliyuncs.com/simulator/simulator_LINUX.zip
    (2)airsim_ros_wrapper下载
git clone https://github.com/RoboMaster/IntelligentUAVChampionshipSimulator.git
  1. OpenVINS 下载安装
    参照 OpenVINS的说明文档,安装OpenVINS.

  2. VINS_Fusion下载安装
    参照VINS-Fusion的README.md, 安装VINS-Fusion.

  3. 键盘控制脚本
    这个博客中提供了一个“无人机控制“的python脚本。复制该脚本的内容,保存为本地文件"airsim_keyboard.py"。

3.2 运行

  1. 启动Airsim仿真器 ( simulator_LINUX.zip )
python launcher.py

输入本机IP地址, 127.0.0.1; 启动成功之后,按键“3”, 切到 3.自主飞行-双目 模式。
2. 启动Airsim_ros_wrapper

cd  ${
   YourPath}/IntelligentUAVChampionshipSimulator/roswrapper
source ros/devel/setup.bash
./simulator.sh  127.0.0.1

用于将收到的Airsim中的数据通过ROS发布出来。
3. 启动OpenVINS

cd ${
   YourPath}/openvins_ws
source devel/setup.bash
roslaunch ov_msckf  airsim.launch

打开另一个终端,rviz显示openvins运行情况:

rviz  -d  '${
   YourPath}/openvins_ws/src/open_vins/ov_msckf/launch/display.rviz'
  1. 启动VINS-Fusion
roslaunch vins vins_rviz.launch
rosrun vins vins_node ~/catkin_ws/src/VINS-Fusion/config/euroc/euroc_stereo_imu_config.yaml 
(optional) rosrun loop_fusion loop_fusion_node ~/catkin_ws/src/VINS-Fusion/config/airsim/airsim_stereo_imu_config.yaml 
  1. 启动键盘控制脚本
python airsim_keyboard.py
  1. 同时录制bag数据
    录制的rosbag中,包含双目图像和IMU数据,以及无人机的轨迹真值数据。
rosbag  record   /airsim_node/drone_1/front_left/Scene  /airsim_node/drone_1/front_right/Scene   /airsim_node/drone_1/imu/imu    /airsim_node/drone_1/odom_local_ned
  1. 录制完rosbag之后,可以参考 “https://github.com/ethz-asl/kalibr/blob/master/aslam_offline_calibration/kalibr/python/kalibr_bagextractor” , 对bag中的数据进行提取。

3.3 运行结果

  • 仿真器: 在 simulator_LINUX/Settings/Stereo.json 中,设置 “ViewMode”: “NoDisplay”, 可以提高图像输出帧率。
    在这里插入图片描述
  • OpenVINS
    在这里插入图片描述
  • VINS-Fusion
    在这里插入图片描述
  • 轨迹对齐
    • vio估计的轨迹
      OpenVINS 的 airsim.launch 文件中,配置“ dosave ”为“true”, 可以保存下运行轨迹 “traj_estimate.txt”, 并处理为euroc格式 (t, x, y, z, qw, qx, qy, qz )。
    • airsim的仿真真值
      读取rosbag中的“/airsim_node/drone_1/odom_local_ned” 数据,并保存为euroc格式的轨迹文件,命名为 truth.csv
    • evo轨迹对齐
evo_traj  euroc  traj_estimate.csv   --ref   truth.csv   -a  -p

在这里插入图片描述

3.4 相机和IMU参数配置

参考博客, 可以得到工程“simulator_LINUX/Settings/Stereo.json”中对应的相机参数(kalibr_imucam_chain.yaml)为:

%YAML:1.0

cam0:
  T_imu_cam: #rotation from camera to IMU R_CtoI, position of camera in IMU p_CinI
    - [0.0, 
  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值