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

can_less mode with custom dataset #302

Open
thatnn opened this issue Aug 1, 2023 · 3 comments
Open

can_less mode with custom dataset #302

thatnn opened this issue Aug 1, 2023 · 3 comments
Labels
question Further information is requested

Comments

@thatnn
Copy link

thatnn commented Aug 1, 2023

Thank you for your great work

I can't apply can less mode other rosbag with /nmea_sentence and /imu/data like below.

Screenshot from 2023-08-02 02-19-39

here are rosbag and my eagleye_config.yaml.

error for imu frame_id :"/base_imu", I republish frame_id: "imu" to /imu/data2

Thank you.

rosbag: https://drive.utbm.fr/s/6NcE2GSqNdGyELg

eagleye_config.yaml.


# Estimate mode
use_gnss_mode: NMEA
use_can_less_mode: True

# Topic
twist:
  twist_type: 0 # TwistStamped : 0, TwistWithCovarianceStamped: 1
  twist_topic: /can_twist
imu_topic: /imu/data2
gnss:
  velocity_source_type: 1 # rtklib_msgs/RtklibNav: 0, nmea_msgs/Sentence: 1, ublox_msgs/NavPVT: 2, geometry_msgs/TwistWithCovarianceStamped: 3
  velocity_source_topic:  /nmea_sentence
  llh_source_type: 1 # rtklib_msgs/RtklibNav: 0, nmea_msgs/Sentence: 1, sensor_msgs/NavSatFix: 2
  llh_source_topic: /nmea_sentence
sub_gnss:
  llh_source_type: 1 # nmea_msgs/Sentence: 1, sensor_msgs/NavSatFix: 2
  llh_source_topic: /nmea_sentence
# TF
tf_gnss_frame:
  parent: "base_link"
  child: "gnss"

reverse_imu_wz: false
reverse_imu_ax: false

# Origin of GNSS coordinates (ECEF to ENU)
ecef_base_pos:
  x : 0.0
  y : 0.0
  z : 0.0
  use_ecef_base_position : false

# Eagleye Navigation Parameters
# Basic Navigation Functions
common:
  imu_rate: 50
  gnss_rate: 5
  stop_judgement_threshold: 0.01
  slow_judgement_threshold: 0.278
  moving_judgement_threshold: 2.78

velocity_scale_factor:
  estimated_minimum_interval: 20
  estimated_maximum_interval: 400
  gnss_receiving_threshold: 0.25
  velocity_scale_factor_save_str: /config/velocity_scale_factor.txt
  save_velocity_scale_factor: false
  velocity_scale_factor_save_duration: 100.0
  th_velocity_scale_factor_percent: 10.0

yaw_rate_offset_stop:
  estimated_interval: 4
  outlier_threshold: 0.002

yaw_rate_offset:
  estimated_minimum_interval: 30
  gnss_receiving_threshold: 0.25
  outlier_threshold: 0.002
  1st:
    estimated_maximum_interval: 300
  2nd:
    estimated_maximum_interval: 500

heading:
  estimated_minimum_interval: 10
  estimated_maximum_interval: 30
  gnss_receiving_threshold: 0.25
  outlier_threshold: 0.0524
  outlier_ratio_threshold: 0.5
  curve_judgement_threshold: 0.0873
  init_STD: 0.0035 #[rad] (= 0.2 [deg])

heading_interpolate:
  sync_search_period: 2
  proc_noise: 0.0005 #[rad] (= 0.03 [deg])

slip_angle:
  manual_coefficient: 0.0

slip_coefficient:
  estimated_minimum_interval: 2
  estimated_maximum_interval: 100
  curve_judgement_threshold: 0.017453
  lever_arm: 0.0

rolling:
  filter_process_noise: 0.01
  filter_observation_noise: 1

trajectory:
  curve_judgement_threshold: 0.017453
  timer_updata_rate: 10
  deadlock_threshold: 1
  sensor_noise_velocity: 0.05
  sensor_scale_noise_velocity: 0.02
  sensor_noise_yaw_rate: 0.01
  sensor_bias_noise_yaw_rate: 0.1

smoothing:
  moving_average_time: 3
  moving_ratio_threshold: 0.1

height:
  estimated_minimum_interval: 200
  estimated_maximum_interval: 2000
  update_distance: 0.1
  gnss_receiving_threshold: 0.1
  outlier_threshold: 0.3
  outlier_ratio_threshold: 0.5
  moving_average_time: 1

position:
  estimated_interval: 300
  update_distance: 0.1
  outlier_threshold: 3.0
  gnss_receiving_threshold: 0.25
  outlier_ratio_threshold: 0.5
  gnss_error_covariance: 0.5

position_interpolate:
  sync_search_period: 2
  proc_noise: 0.05 #[m]


monitor:
  print_status: true
  log_output_status: false
  update_rate: 10.0
  th_gnss_deadrock_time: 10.0
  use_compare_yaw_rate: false
  comparison_twist_topic: /calculated_twist
  th_diff_rad_per_sec: 0.17453
  th_num_continuous_abnormal_yaw_rate: 25
  th_dr_distance: 50.0

# Optional Navigation Functions
angular_velocity_offset_stop:
  estimated_interval: 4
  outlier_threshold: 0.002

rtk_dead_reckoning:
  rtk_fix_STD: 0.3 #[m]
  proc_noise: 0.05 #[m]

rtk_heading:
  update_distance: 0.3
  estimated_minimum_interval: 10
  estimated_maximum_interval: 30
  gnss_receiving_threshold: 0.25
  outlier_threshold: 0.0524
  outlier_ratio_threshold: 0.5
  curve_judgement_threshold: 0.0873

enable_additional_rolling:
  update_distance: 0.3
  moving_average_time: 1
  sync_judgement_threshold: 0.01
  sync_search_period: 1

velocity_estimator:
  gga_downsample_time: 0.5
  stop_judgement_velocity_threshold: 0.2
  stop_judgement_interval: 1
  variance_threshold: 0.000025
  pitchrate_offset:
    estimated_interval: 8
  pitching:
    estimated_interval: 5
    outlier_threshold: 0.0174
    gnss_receiving_threshold: 0.2
    outlier_ratio_threshold: 0.5
  acceleration_offset:
    estimated_minimum_interval: 30
    estimated_maximum_interval: 500
    filter_process_noise: 0.01
    filter_observation_noise: 1
  doppler_fusion:
    estimated_interval: 4
    gnss_receiving_threshold: 0.2
    outlier_ratio_threshold: 0.5
    outlier_threshold: 0.1
@rsasaki0109
Copy link
Collaborator

rsasaki0109 commented Aug 1, 2023

Eagleye has static initialization → moving initialization, and we look at the following topics:

  • /eagleye/yaw_rate_offset_stop topic
    When the "enabled_status" of this topic becomes true, the static initialization (stopping for a few seconds, regardless of indoors or outdoors) is completed.
  • /eagleye/heading_xx
    Dynamic initialization requires straight-line travel in an environment where GNSS speed is available (it's okay if a curve is included in the middle of the travel).
    For straight-line travel, there is a lower speed limit called "moving_judgment_threshold," and by default, it is set to 10 km/h. For low-speed vehicles, it might be acceptable to reduce it to 3-5 km/h.
    Here's the link to the configuration.

I will look at the rosbag when I have time.

@rsasaki0109 rsasaki0109 added the question Further information is requested label Aug 1, 2023
@thatnn
Copy link
Author

thatnn commented Aug 2, 2023

Eagleye has static initialization → moving initialization, and we look at the following topics:

  • /eagleye/yaw_rate_offset_stop topic
    When the "enabled_status" of this topic becomes true, the static initialization (stopping for a few seconds, regardless of indoors or outdoors) is completed.
  • /eagleye/heading_xx
    Dynamic initialization requires straight-line travel in an environment where GNSS speed is available (it's okay if a curve is included in the middle of the travel).
    For straight-line travel, there is a lower speed limit called "moving_judgment_threshold," and by default, it is set to 10 km/h. For low-speed vehicles, it might be acceptable to reduce it to 3-5 km/h.
    Here's the link to the configuration.

I will look at the rosbag when I have time.

Thank you for your reply

I changed moving_judgment_threshold: 2.78 to 0.556 or 0.834

but nothing better

I'm still waiting for your reply.

Thank you

@rsasaki0109
Copy link
Collaborator

rsasaki0109 commented Aug 2, 2023

Visualise the time series and trajectory of the angular velocity wx, speed and gnss rtk status of the imu.

I haven't been able to look at the data, but I feel that perhaps there is not enough driving in a straight line.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants