KumarRobotics / msckf_vio

Robust Stereo Visual Inertial Odometry for Fast Autonomous Flight
Other
1.66k stars 592 forks source link

Running with ZED Stereo Camera #139

Closed measaverb closed 1 year ago

measaverb commented 1 year ago

Hi, I am currently trying to run msckf_vio with ZED Mini Stereo Camera. I've done calibrating with kalibr and matched all corresponding ros topics based on this driver, zed_cpu_ros. But when I launch, all I get is warning messages, "seems unsynced". Is there any solution to this? Thanks.

Warning Message image

msckf_vio_zed.launch

<launch>

  <arg name="robot" default="zed"/>
  <arg name="fixed_frame_id" default="base_link"/>
  <arg name="calibration_file"
    default="$(find msckf_vio)/config/camchain-imucam-zed.yaml"/>

  <!-- Image Processor Nodelet  -->
  <include file="$(find msckf_vio)/launch/image_processor_zed.launch">
    <arg name="robot" value="$(arg robot)"/>
    <arg name="calibration_file" value="$(arg calibration_file)"/>
  </include>

  <!-- Msckf Vio Nodelet  -->
  <group ns="$(arg robot)">
    <node pkg="nodelet" type="nodelet" name="vio"
      args='standalone msckf_vio/MsckfVioNodelet'
      output="screen">

      <!-- Calibration parameters -->
      <rosparam command="load" file="$(arg calibration_file)"/>

      <param name="publish_tf" value="true"/>
      <param name="frame_rate" value="15"/>
      <param name="fixed_frame_id" value="$(arg fixed_frame_id)"/>
      <param name="child_frame_id" value="odom"/>
      <param name="max_cam_state_size" value="15"/>
      <param name="position_std_threshold" value="8.0"/>

      <param name="rotation_threshold" value="0.2618"/>
      <param name="translation_threshold" value="0.4"/>
      <param name="tracking_rate_threshold" value="0.5"/>

      <!-- Feature optimization config -->
      <param name="feature/config/translation_threshold" value="-1.0"/>

      <!-- These values should be standard deviation -->
      <param name="noise/gyro" value="0.01"/>
      <param name="noise/acc" value="0.1"/>
      <param name="noise/gyro_bias" value="0.005"/>
      <param name="noise/acc_bias" value="0.05"/>
      <param name="noise/feature" value="0.03"/>

      <param name="initial_state/velocity/x" value="0.0"/>
      <param name="initial_state/velocity/y" value="0.0"/>
      <param name="initial_state/velocity/z" value="0.0"/>

      <!-- These values should be covariance -->
      <param name="initial_covariance/velocity" value="0.25"/>
      <param name="initial_covariance/gyro_bias" value="0.0001"/>
      <param name="initial_covariance/acc_bias" value="0.01"/>
      <param name="initial_covariance/extrinsic_rotation_cov" value="3.0462e-4"/>
      <param name="initial_covariance/extrinsic_translation_cov" value="2.5e-5"/>

      <remap from="~imu" to="/imu/data"/>
      <remap from="~features" to="image_processor/features"/>

    </node>
  </group>

</launch>

img_proc_zed.launch

<launch>

  <arg name="robot" default="zed"/>
  <arg name="calibration_file"
    default="$(find msckf_vio)/config/camchain-imucam-zed.yaml"/>

  <!-- Image Processor Nodelet  -->
  <group ns="$(arg robot)">
    <node pkg="nodelet" type="nodelet" name="image_processor"
      args="standalone msckf_vio/ImageProcessorNodelet"
      output="screen">

      <rosparam command="load" file="$(arg calibration_file)"/>
      <param name="grid_row" value="4"/>
      <param name="grid_col" value="5"/>
      <param name="grid_min_feature_num" value="1"/>
      <param name="grid_max_feature_num" value="2"/>
      <param name="pyramid_levels" value="3"/>
      <param name="patch_size" value="15"/>
      <param name="fast_threshold" value="10"/>
      <param name="max_iteration" value="30"/>
      <param name="track_precision" value="0.01"/>
      <param name="ransac_threshold" value="3"/>
      <param name="stereo_threshold" value="5"/>

      <remap from="~imu" to="/imu/data"/>
      <remap from="~cam0_image" to="/camera/left/image_raw"/>
      <remap from="~cam1_image" to="/camera/right/image_raw"/>

    </node>
  </group>

</launch>
versatran01 commented 1 year ago

Rolling shutter cameras (like ZED) are not supported.