HKUST-Aerial-Robotics / VINS-Mobile

Monocular Visual-Inertial State Estimator on Mobile Phones

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

iPhone SE support

nasserkhosravi opened this issue · comments

I can't see iPhone SE in supported device!
Is there any technical reason ?
Thanks.

Hi @Naserkhosravi , I would like to share the code modification to work with iphoneSE

in function DeviceType deviceName() in file ViewController.mm, add following code

    else if(([device compare:@"iPhone8,4"] == NSOrderedSame))
    {
        printf("Device iPhoneSE\n");
        device_type = iPhoneSE;
    }

in file global_param.hpp, add iphoneSE to the enum DeviceType:

enum DeviceType
{
    iPhone7P,
    iPhone7,
    iPhone6sP,
    iPhone6s,
    iPhoneSE,
    iPadPro97,
    iPadPro129,
    unDefine
};

in file global_param.cpp, add iphoneSE calibration data to function setGlobalParam:

        case iPhoneSE:
            printf("Device iPhone6s param\n");
            FOCUS_LENGTH_Y = 529.90;
            PY = 315.30;
            FOCUS_LENGTH_X = 527.63965351;
            PX = 239.468;
            SOLVER_TIME = 0.06;
            FREQ = 3;
            
            //extrinsic param
            TIC_X = 0.00017249;
            TIC_Y = 0.0003245;
            TIC_Z = 0.00002171;
            return true;
            break;

Hope this help

@se7oluti0n Very thanks, this works very well.
I did not see above parameters until now, how can obtain following parameters ?
FREQ = 3;
TIC_X = 0.0;
TIC_Y = 0.092;
TIC_Z = 0.1;

A clue is enough for me.
Thanks again.

@Naserkhosravi
where do you get these value

FREQ = 3;
TIC_X = 0.0;
TIC_Y = 0.092;
TIC_Z = 0.1;

basically, you can get the calibration value by doing the camera-imu calibration, using kalibr calibration tool, https://github.com/ethz-asl/kalibr, following example steps:

  1. record camera images and imu data from iphone while capturing the calibration board from kalibr.
  2. Convert that data to rosbag
  3. run the camera calibration and camera-imu calibration with kalibr

@se7oluti0n Very thanks for your help.

commented

I can't see iPhone 13 pro max in supported device!
Is there any technical reason ?

else if(([device compare:@"iPhone8,4"] == NSOrderedSame))
{
printf("Device iPhoneSE\n");
device_type = iPhoneSE;
}
here,why IPhone8,4 is iPhoneSE? my phone is iphone 13 pro max,what is my device compare?
Thanks.