(1)time ts
(2)Ground truth value of IMU frame in the gravity frame:acceleration gt_acc,position gt_p,linear velocity gt_v,attitude gt_q (in w,x,y,z form)
(3)Ground truth value of IMU frame in the IMU frame:angular velocity gt_gyr,
(4)IMU measurements:acceleration acc,angular velocity gyr
NOTE: The content in the existed train.txt, val.txt and test.txt are just examples. You can choose your own training, validation and testing data.
The neural network to reduce bias of the accelerator measurments
Execute De_bias_acc_main.py for training
cd De_bias_acc/src
python3 De_bias_acc_main.py \
--mode train \
--root_dir ../../dataset \
--train_list ../../dataset/train.txt \
--val_list ../../dataset/val.txt \
--out_dir ../train_outputs
Execute De_bias_acc_main.py for testing
cd De_bias_acc/src
python3 De_bias_acc_main.py \
--mode test \
--root_dir ../../dataset \
--test_list ../../dataset/test.txt \
--model_path ../train_outputs/checkpoints/checkpoint_*.pt \
--out_dir ../test_outputs
The neural network to reduce bias of the gyroscope measurments
Execute the De_bias_gyr_main.py for training
cd De_bias_gyr/src
python3 De_bias_gyr_main.py \
--mode train \
--root_dir ../../dataset \
--train_list ../../dataset/train.txt \
--val_list ../../dataset/val.txt \
--out_dir ../train_outputs
First, using the De_bias_net to estimate the acceleration and angular velocity.
cd Rotation_ekf/src
python3 generate_net_acc_net_gyr.py \
--root_dir ../../dataset \
--network_acc_path ../../De_bias_acc/train_outputs/checkpoints/checkpoint_*.pt \
--network_gyr_path ../../De_bias_gyr/train_outputs/checkpoints/checkpoint_*.pt \
--test_list ../../dataset/gen_list.txt \
--out_dir ../output
NOTE: The produced acceleration and angular velocity will be saved in directory “../output/net_acc” and “../output/net_gyr”
Second, obtain the attitude after gravity alignment update.
cd Rotation_ekf/src
python3 Rotation_stage.py \
--root_dir ../../dataset \
--network_acc_out_path ../output/net_acc/ \
--network_gyr_out_path ../output/net_gyr/ \
--test_list ../../dataset/test.txt \
--out_dir ../output
NOTE: There are some results in the output directory
The attitude estimated from rotation_ekf is used in validation and testing
1、Training
# training x axis
cd V_P_net/src
python3 V_P_net_main.py \
--mode train \
--root_dir ../../dataset \
--train_list ../../dataset/train.txt \
--val_list ../../dataset/val.txt \
--out_dir ../train_outputs_x \
--train_axis x_axis
# training y axis
cd V_P_net/src
python3 V_P_net_main.py \
--mode train \
--root_dir ../../dataset \
--train_list ../../dataset/train.txt \
--val_list ../../dataset/val.txt \
--out_dir ../train_outputs_y \
--train_axis y_axis
# training z axis
cd V_P_net/src
python3 V_P_net_main.py \
--mode train \
--root_dir ../../dataset \
--train_list ../../dataset/train.txt \
--val_list ../../dataset/val.txt \
--out_dir ../train_outputs_z \
--train_axis z_axis
2、Testing
cd V_P_net/src
python3 V_P_net_main.py \
--mode test \
--root_dir ../../dataset \
--test_list ../../dataset/train.txt \
--out_dir ../test_outputs \
--x_model ../train_outputs_x/checkpoints/checkpoint_*.pt \
--y_model ../train_outputs_y/checkpoints/checkpoint_*.pt \
--z_model ../train_outputs_z/checkpoints/checkpoint_*.pt
NOTE: There are some results in the output directory
vp:the mean value of estimated linear velocity and position
vp_cov:the covariance value of estimated linear velocity and position
imu_p_cov_in_world_frame:figure of position covariance
imu_p_error_in_world_frame:figure of position estimation error
imu_p_in_world_frame:figure of position estimation
imu_v_cov_in_world_frame:figure of linear velocity covariance
imu_v_error_in_world_frame:figure of linear velocity estimation error
imu_v_in_world_frame:figure of velocity estimation estimation
Training
cd Res_dynamic/src
python3 Res_dynamic_main.py \
--mode train \
--root_dir ../../dataset \
--train_list ../../dataset/train.txt \
--val_list ../../dataset/val.txt \
--out_dir ../train_outputs
cd Translation_ekf/src
python3 Translation_stage.py \
--root_dir ../../dataset \
--test_list ../../dataset/test.txt \
--out_dir ../output \
--network_dyn_path ../../Res_dynamic/train_outputs/checkpoints/checkpoint_*.pt \
--network_v_p_path ../../V_P_net/src/test_outputs/vp/ \
--network_acc_path ../../Rotation_ekf/output/net_acc/ \
--network_gyr_path ../../Rotation_ekf/output/net_gyr/ \
--network_q_path ../../Rotation_ekf/output/ekf_q/ \