KumarRobotics / kr_autonomous_flight

KR (KumarRobotics) autonomous flight system for GPS-denied quadrotors
Other
682 stars 119 forks source link

Accumulative DRIFT when using only-VIO in gazebo simulation #194

Closed nvhungv2k closed 4 months ago

nvhungv2k commented 5 months ago

Hi guys, I am trying to run with only VIO in gazebo simulation Firstly, I followed this to build and then to simulate in gazebo. I figured out that the odometry which is for planning task come from gazebo directly. So I want to replace Gazebo's odometry by VIO's odometry (particularly in this case it is MSCKF-VIO) First and foremost, I need to get odometry from MSCKF-VIO and check it. I did do as following:

  1. Feeding IMU and CAMERA from gazebo to MSCKF-VIO: edit system_mp.launch
    <arg name="cam0" default="cam_left"/>
    <arg name="cam1" default="cam_right"/>
    <arg name="imu" default="imu"/>

    -->

    <arg name="cam0" default="/quadrotor/ovc3/left"/>
    <arg name="cam1" default="/quadrotor/ovc3/right"/>
    <arg name="imu" default="/falcon4/os1_cloud_node/imu"/>
  2. Change the calibration file in system_mp.launch: <arg name="calibration_file" default="msckf_calib.yaml"/> --> <arg name="calibration_file" default="$(find estimation_launch)/config/msckf_calib_simulation.yaml"/>
  3. Change image topics in calibration file: msckf_calib_simulation.yaml cam0: rostopic: /quadrotor/cam_left/image_raw --> cam0: rostopic: /quadrotor/ovc3/left/image_raw cam1: rostopic: /quadrotor/cam_right/image_raw --> cam1: rostopic: /quadrotor/ovc3/right/image_raw

Finally, I run and view odom from MSCKF (via /quadrotor/vio/odom and /quadrotor/ukf_odom topics) on RVIZ Run: roslaunch gazebo_utils full_sim.launch (gazebo word is still default, it is forest0) View on Rviz: 2024-06-24 16-37-56

In above GIF: the fixed frame is truth odom from gazebo, the two remaining frames is odom from MSCKF-VIO We saw that odom's DRIFT from MSCKF-VIO is accumulated.

XuRobotics commented 5 months ago

As stated in our paper and our wiki, we use high fidelity Unity-based simulator for VIO simulation experiments. In gazebo, we use ground truth Odom since its image quality is not enough for running the vio.

nvhungv2k commented 5 months ago

As stated in our paper and our wiki, we use high fidelity Unity-based simulator for VIO simulation experiments. In gazebo, we use ground truth Odom since its image quality is not enough for running the vio.

As you said. Couldn't we also use any vision-based odometry in gazebo simulation? So what about the LiDAR-ONLY-based odometry such as LLOL, LOAM,...?