Android相机及IMU标定

文章目录

    • 1. 数据采集
      • 1.1 采集IMU数据
      • 1.2 采集相机+IMU数据
    • 2. IMU标定
      • 2.1 数据预处理
      • 2.2 数据打包⽣成.bag⽂件
      • 2.3 创建.launch文件
      • 2.4 数据标定
    • 3. 相机+IMU标定

1. 数据采集

1.1 采集IMU数据

采集APK:IMU标定使⽤开源库https://github.com/sunset768541/mobile-ar-sensor-logger所提供的APK进⾏数据采集。

采集⽅法:将⼿机静⽌于桌⾯,采集⾄少2小时数据。

存储路径:数据存储于⼿机/sdcard/Android/data/edu.osu.pcv.marslogger/files/data/⽬录下,可使

⽤adb pull命令将数据拷⻉⾄电脑。

1.2 采集相机+IMU数据

相机+IMU的标定使⽤开源库https://github.com/DavidGillsjo/VideoIMUCapture-Android所提供的APK进⾏数据采集。

2. IMU标定

2.1 数据预处理

将1.1节所采集到gyro_accel.csv⽂件重命名为imu0.csv,并将表头重写为timestamp, omega_x, omega_y, omega_z, alpha_x, alpha_y, alpha_z

2.2 数据打包⽣成.bag⽂件

我们使⽤1.2节所clone的⼯程进⾏imu数据打包。在该⼯程calibration⽬录下打开终端,启动docker容

器:

SUDO=1 DATA=<imu-data-path> ./run_dockerhub.sh

imu-data-path为电脑端imu0.csv⽂件所在⽬录

在容器中打包imu数据:

cd /data
kalibr_bagcreater --folder /data --output-bag imu0.bag

查看打包数据信息:

rosbag info imu0.bag

退出容器:

exit

2.3 创建.launch文件

我们在imu-data-path⽬录下创建android.launch⽂件,并填⼊如下内容:

<launch>
	<node pkg="imu_utils" type="imu_an" name="imu_an" output="screen">
		<param name="imu_topic" type="string" value= "/imu0"/>
		<param name="imu_name" type="string" value= "iQOO_8_Pro"/>
		<param name="data_save_path" type="string" value= "$(find imu_utils)/data/"/>
		<param name="max_time_min" type="int" value= "27"/>
		<param name="max_cluster" type="int" value= "100"/>
	node>
launch>

max_time_min:表⽰.bag数据的最⼤时⻓,单位为分钟,程序会在最⼤时⻓内截断读取数据,此部分根据.bag数据实际情况填写。

imu_name:表⽰imu设备名称,此部分可随意填写,最终标定所⽣成的⽂件名会带有此标识。

2.4 数据标定

启动容器:

sudo docker run --name imu_utils -v <imu-data-path>:/data -it chelmx/imu_utils:melodic-desktop-full

在容器启动标定程序:

source /imu-calibration/devel/setup.sh
cp /data/android.launch /imu-calibration/src/imu_utils/launch/
roslaunch imu_utils android.launch

程序运⾏⼀段时间后,会出现“wait for imu data.”字样,此时需要新建⼀个终端重新进⼊容器:

sudo docker exec -it imu_utils bash

之后,在第⼆个终端中推送imu数据:

source /imu-calibration/devel/setup.sh
nohup roscore &
rosbag play -r 200 /data/imu0.bag

第⼀个终端接收到数据后会继续运⾏标定程序,等待⼀段时间后会出现“done”字样,表明标定结束。

标定结果被保存⾄/imu-calibration/src/imu_utils/data⽬录,命名为_imu_param.yaml,拷⻉出容器即可。

3. 相机+IMU标定

请参考博文:https://www.jianshu.com/p/f715ce9937d9。

你可能感兴趣的:(SLAM,android,adb)