Ether Blog

全景相机-Mid360彩色点云着色

2026-01-29

#全景相机-Mid360彩色点云着色

pipeline:

  1. 输入:
    • 雷达 + IMU:Mid360 LiDAR + IMU
    • 全景相机:Insta360 X4
  2. 雷达跑一个LIO
  3. 相机根据外参标定得到的结果,将图像在点云上进行投影着色。

相机SDK

参考文档:Insta360中文SDK文档

民间Ros-Driver地址(X4不可直接使用): Insta-ros-driver

民间Ros-Driver+我的魔改版地址: Insta-ros-driver

官方SDK地址:Insta-SDK (我已经向官方申请好了,不用再去申请了)

驱动安装

sudo apt-get install libusb-dev
sudo apt-get install libudev-dev
sudo apt install libavcodec-dev libavformat-dev libavutil-dev libswscale-dev pkg-config

在Linux系统上,演示程序必须使用sudo运行。

更新固件

下载Insta360手机App,与设备进行WiFi连接后选择更新固件。

连接与模式切换

默认情况下,当你将Insta360相机连接到计算机时,相机会自动切换到U盘模式,使相机成为一个USB存储设备。 我们需要将相机切换到正确模式,才能连接并控制它。

使用一根可以传数据的usb线,连接后,弹出模式选择的界面,选择“Android手机控制”模式,等待切换成功。

USB模式选择

安卓手机控制模式

创建udev规则

 sudo gedit /etc/udev/rules.d/99-insta360.rules

# 在文件中写入
SUBSYSTEM=="usb", ATTR{idVendor}=="2e1a", ATTR{idProduct}=="0002", MODE="0666", SYMLINK+="insta360"

输入ls -l /dev/insta360查看:
lrwxrwxrwx 1 root root 15 1月 30 22:10 /dev/insta360 -> bus/usb/003/022

即为绑定成功

运行

roslaunch insta360_ros_driver bringup.launch

节点图:

3

主要修改了main.cpp函数中的OnVideoData函数.

连接本地Insta360X4,会有报错,但只要rostopic有数据就是正常的.有时候启动不成功多多插拔几次

使用image_saver.py可以订阅话题图片.

不管VideoResolution被设置成什么,输出图像始终是2880*1440(前+后),只能拉取到该分辨率的流,官方未发布拉取高清流的方法.

全景相机内参标定

参考文章:全景相机标定

使用Kalibr+棋盘格标定板进行标定.

front相机标定结果

cam0:
cam_overlaps: []
camera_model: omni
distortion_coeffs: [0.09747877595536, -0.3376643796134572, -0.0009491186352457004, 0.00011504754493873151]
distortion_model: radtan
intrinsics: [1.2425811604992385, 892.485973534534, 892.9563621015641, 718.6189149155972, 722.4093921039683]
resolution: [1440, 1440]
rostopic: /camera/image

back相机标定结果

cam0:
cam_overlaps: []
camera_model: omni
distortion_coeffs: [0.09568054411527066, -0.3217603520590313, 0.0014165036338120724, -0.00048654825885449557]
distortion_model: radtan
intrinsics: [1.25247258539852, 892.381529983635, 892.4736063672572, 721.1075859302954, 717.7031284815047]
resolution: [1440, 1440]
rostopic: /camera/image

全景相机-雷达外参标定

参考文章:激光相机数据融合(6)–激光相机标定

最终使用的方法还是FAST-Calib,当作两个鱼眼相机处理.

front相机标定结果

# FAST-LIVO2 calibration format
cam_model: Pinhole
cam_width: 1440
cam_height: 1440
scale: 1.0
cam_fx: 892.486
cam_fy: 892.956
cam_cx: 718.619
cam_cy: 722.409
cam_d0: 0.09748
cam_d1: -0.33766
cam_d2: -0.000949
cam_d3: 0.000115

Rcl: [ 0.033727, -0.999388, 0.009324,
0.188078, -0.002816, -0.982150,
0.981575, 0.034879, 0.187868]
Pcl: [ 1.020967, 0.554951, 6.556103]

back相机标定结果

# FAST-LIVO2 calibration format
cam_model: Pinhole
cam_width: 1440
cam_height: 1440
scale: 1.0
cam_fx: 892.382
cam_fy: 892.474
cam_cx: 721.108
cam_cy: 717.703
cam_d0: 0.0956805
cam_d1: -0.32176
cam_d2: 0.0014165
cam_d3: -0.00048655

Rcl: [ 0.014816, -0.992748, -0.119301,
0.136128, 0.120206, -0.983372,
0.990580, -0.001671, 0.136922]
Pcl: [ 0.905396, -0.232314, 3.009219]

点云着色

front相机着色

4

bak相机着色

5

对于鱼眼相机图像还需后续处理,不过已经可以发现它在边缘处出现了角分辨率低的问题.

← Back to Home