Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Estimated output lagging and then overshooting #376

Open
sukhrajklair opened this issue Aug 12, 2024 · 0 comments
Open

Estimated output lagging and then overshooting #376

sukhrajklair opened this issue Aug 12, 2024 · 0 comments

Comments

@sukhrajklair
Copy link

sukhrajklair commented Aug 12, 2024

I'm using the rolling branch of 'fuse' to fuse the output of lidar scan matching (absolute x, y and yaw) and wheel odometry (linear x and angular yaw velocity). I observe the estimated output lagging followed by overshoot and eventual correction. This causes the stationary objects (walls, parked cars etc.) to appear moving around the robot in the fixed frame (map). I've tried to capture this in the screen recording linked below.

fuse_test

I also recorded a bagfile while recording the video.

My configuration is as follows:

fuse_map:
  ros__parameters:
    # Fixed-lag smoother configuration
    optimization_frequency: 20.0
    transaction_timeout: 0.1
    lag_duration: 1.0

    motion_models:
      unicycle_motion_model:
        type: fuse_models::Unicycle2D

    unicycle_motion_model:
      #                         x      y      yaw    vx     vy     vyaw   ax   ay
      process_noise_diagonal: [0.100, 0.100, 0.100, 0.100, 0.100, 0.100, 0.1, 0.1]

    sensor_models:
      initial_localization_sensor:
        type: fuse_models::Unicycle2DIgnition
        motion_models: [unicycle_motion_model]
        ignition: true
      wheel_odometry:
        type: fuse_models::Odometry2D
        motion_models: [unicycle_motion_model]
      ndt_pose:
        type: fuse_models::Pose2D
        motion_models: [unicycle_motion_model]

    initial_localization_sensor:
      publish_on_startup: true
      #                x      y      yaw    vx     vy     vyaw    ax     ay
      initial_state: [0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000]
      initial_sigma: [0.100, 0.100, 0.100, 0.100, 0.100, 0.100, 0.100, 0.100]

    wheel_odometry:
      topic: 'wheel_odom'
      twist_target_frame: 'base_link'
      linear_velocity_dimensions: ['x', 'y']
      angular_velocity_dimensions: ['yaw']

    ndt_pose:
      topic: 'pcl_pose'
      position_dimensions: ['x', 'y']
      orientation_dimensions: ['yaw']

    publishers:
      filtered_publisher:
        type: fuse_models::Odometry2DPublisher

    filtered_publisher:
      topic: 'odometry/global'
      base_link_frame_id: 'base_link'
      odom_frame_id: 'odom'
      map_frame_id: 'map'
      world_frame_id: 'map'
      publish_tf: true
      publish_frequency: 20.0

I have also tried setting optimization_frequency and publish_frequency to 10, and lag_duration to 0.5 but it did not help.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

1 participant