Skip to content

Commit

Permalink
feat(yabloc): add camera and vector map localization (autowarefoundat…
Browse files Browse the repository at this point in the history
…ion#3946)

* adopt scane_case to undistort, segment_filter

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* adopt scane_case to ground_server, ll2_decomposer

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* adopt scane_case to twist_converter, twist_estimator

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* adopt scane_case to validation packages

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* adopt scane_case tomodularized_particle_filter

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* adopt scane_case to gnss_particle_corrector

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* adopt scane_case to camera_particle_corrector

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* adopt scane_case to antishadow_corrector

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* adopt scane_case to particle_initializer

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* organize launch files

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* add twist_visualizer to validate odometry performance

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* use SE3::exp() to predict particles & modify linear noise model

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* stop to use LL2 to rectify initialpose2d

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* fix redundant computation in segment_accumulator

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* improve gnss_particle_corrector

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* fix segment_accumulator's bug

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* add doppler_converter

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* add xx2.launch.xml

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* add hsv_extractor

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* pickup other regions which have same color histogram

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* use additional region to filt line-segments

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* improve graph-segmentation

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* remove `truncate_pixel_threshold`

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* refactor graph_segmentator & segment_filter

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* add mahalanobis_distance_threshold in GNSS particle corrector

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* add extract_line_segments.hpp

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* use pcl::transformCloudWithNormals instead of  transform_cloud

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* filt accumulating segments by LL2

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* move herarchical_cost_map to common

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* apply positive feedback for accumulation

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* move transform_linesegments() to common pkg

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* refactor

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* use all projected lines for camera corrector

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* evaluate iffy linesegments

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* complete to unify ll2-assisted lsd clasification

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* add abs_cos2() which is more strict direction constraint

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* fix orientation initialization bug

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* publish doppler direction

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* TMP: add disable/enable switch for camera corrector

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* implement doppler orientation correction but it's disabled by default

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* speed up camera corrector

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* update ros params

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* implement kalman filter for ground tilt estimation

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* continuous height estimation works well?

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* estimate height cotiniously

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* use only linesegments which are at same height

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* add static_gyro_bias parameter

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* fix bug about overlay varidation

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* increse ll2 height marging in cost map generation

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* add static_gyro_bias in twist.launch.xml

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* load pcdless_init_area from ll2

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* add specified initialization area

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* add corrector_manager node to disable/enable camera_corrector

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* call service to disable camer_corrector from manager

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* load corrector disable area

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* overlay even if pose is not estiamted

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* publish camera corrector's status as string

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* add set_booL_panel for camera_corrector enable/disable

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* load bounding box from lanelet2

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* draw bounding box on cost map

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* remove at2,at1 from cost map

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* use cost_map::at() instread pf at2()

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* move cost map library from common to camera corrector

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* use logit for particle weighting but it does not work well

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* prob_to_logit() requires non-intuitive parameters

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* goodbye stupid parameters (max_raw_score & score_offset)

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* publish two scored pointclouds as debug

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* can handle unmapped areas

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* remove obsolete packages

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* update README.md

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* Update README.md

* add image of how_to_launch

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* add node diagram in readme

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* add rviz_description.png in README

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* subscribe pose_with_cov & disconnect base_link <-> particle_pose

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* remove segment_accumulator & launch ekf_localizer from this project

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* add gnss_ekf_corrector

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* add camera_ekf_corrector package

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* subscribe ekf prediction & synch pose data

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* WIP: ready to implement UKF?

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* estimate weighted averaging as pose_estimator

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* basic algorithm is implemented but it does not work proparly

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* apply after_cov_gain_

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* ekf corrector works a little bit appropriately

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* increase twist covariance for ekf

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* test probability theory

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* updat prob.py

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* implement de-bayesing but it loooks ugly

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* remove obsolete parameters

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* skip measurement publishing if travel distance is so short

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* use constant covariance because i dont understand what is correct

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* add submodule sample_vehicle_launch

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* TMP but it works

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* add ekf_trigger in particle_initializer.hpp

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* publish gnss markers & camera_est pubishes constant cov

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* back to pcd-less only launcher

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* add bayes_util package

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* apply de-bayesing for camera_ekf

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* some launch file update

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* organize launch files. we can choice mode from ekf/pekf/pf

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* organize particle_initializer

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* add swap_mode_adaptor WIP

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* use latest ekf in autoware & sample_vehicle

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* fix bug of swap_adalptor

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* fix FIX & FLOAT converter

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* fix septentrio doppler converter

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* move ekf packages to ekf directory

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* ignore corrector_manager

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* add standalone arg in launch files

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* update semseg_node

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* add camera_pose_initializer pkg

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* subscribe camera_info&tf and prepare semantic projection

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* project semantic image

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* create vector map image from ll2

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* create lane image from vector map

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* search the most match angle by non-zero pixels

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* camera based pose_initializer

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* move ekf packages into unstable

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* move ekf theory debugger

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* add tier4_autoware_msgs as submodule

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* move pose_initializer into initializer dir

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* add semse_msgs pkg

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* separate marker pub function

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* separate projection functions

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* add semseg_srv client

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* move sem-seg directory

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* camera pose initilizer works successfully

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* rectify covariance along the orientation

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* improve initialization parameters

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* take into account covariance of request

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* use lanelet direciton to compute init pose scores

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* semseg download model automatically

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* remove sample_vehicle_launch

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* add autoware_msgs

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* remove obsolete launch files

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* add standalone mode for direct initialization

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* fix fix_to_pose

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* update launch files

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* update rviz config

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* remove lidar_particle_corrector

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* remove Sophus from sunbmodule

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* rename submodule directory

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* update README and some sample images

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* update README.md

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* fix override_camera_frame_id bahaviors

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* fix some bugs (#4)

Signed-off-by: kminoda <koji.minoda@tier4.jp>

* fix: use initialpose from Rviz (#6)

* use initialpose from Rviz to init

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* add description about how-to-set-initialpose

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

---------

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* misc: add license (#7)

* WIP: add license description

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* add license description

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* add description about license in README

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

---------

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* add quick start demo (#8)

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* refactor(launch) remove & update obsolete launch files (#9)

* delete obsolete launch files

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* update documents

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

---------

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* docs(readme): update architecture image (#10)

* replace architecture image in README

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* update some images

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

---------

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* refactor(pcdless_launc/scripts): remove unnecessary scripts (#11)

* remove not useful scripts

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* rename scripts &  add descriptions

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* little change

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* remove odaiba.rviz

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* grammer fix

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

---------

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* fix(pcdless_launch): fix a build bug

Signed-off-by: kminoda <koji.minoda@tier4.jp>

* fix(twist_estimator): use velocity_report by default

Signed-off-by: kminoda <koji.minoda@tier4.jp>

* fix bug

Signed-off-by: kminoda <koji.minoda@tier4.jp>

* debugged, now works

Signed-off-by: kminoda <koji.minoda@tier4.jp>

* update sample rosbag link (#14)

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* feature(graph_segment, gnss_particle_corrector): make some features switchable (#17)

* make additional-graph-segment-pickup disablable

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* enlarge gnss_mahalanobis_distance_threshold in expressway.launch

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

---------

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* fix: minor fix for multi camera support (#18)

* fix: minor fix for multi camera support

Signed-off-by: kminoda <koji.minoda@tier4.jp>

* update

Signed-off-by: kminoda <koji.minoda@tier4.jp>

* update

Signed-off-by: kminoda <koji.minoda@tier4.jp>

* fix typo

Signed-off-by: kminoda <koji.minoda@tier4.jp>

---------

Signed-off-by: kminoda <koji.minoda@tier4.jp>

* refactor(retroactive_resampler): more readable (#19)

* make Hisotry class

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* use boost:adaptors::indexed()

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* add many comment in resampling()

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* does not use ConstSharedPtr

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* rename interface of resampler

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* circular_buffer is unnecessary

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

---------

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* refactor(mpf::predictor) resampling interval control in out of resampler (#20)

* resampling interval management should be done out of resample()

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* resampler class throw exeption rather than optional

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* split files for resampling_history

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* split files for experimental/suspention_adaptor

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

---------

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* refactor(mpf::predictor): just refactoring (#21)

* remove obsolete functions

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* remove test of predictor

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* remove remapping in pf.launch.xml for suspension_adapator

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* add some comments

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

---------

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* fix(twist_estimator): remove stop filter for velocity (#23)

Signed-off-by: kminoda <koji.minoda@tier4.jp>

* feat(pcdless_launch): add multi camera launcher (#22)

* feat(pcdless_launch): add multi camera launcher

Signed-off-by: kminoda <koji.minoda@tier4.jp>

* minor fix

Signed-off-by: kminoda <koji.minoda@tier4.jp>

---------

Signed-off-by: kminoda <koji.minoda@tier4.jp>

* refactor(CMakeListx.txt): just refactoring (#24)

* refactor imgproc/*/CMakeListx.txt

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* refactor initializer/*/CMakeListx.txt & add gnss_pose_initializer pkg

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* rename some files in twist/ & refactor pf/*/cmakelist

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* refactor validation/*/CMakeListx.txt

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* fix some obsolete executor name

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

---------

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* fix: rename lsd variables and files (#26)

Signed-off-by: kminoda <koji.minoda@tier4.jp>

* misc: reame pcdless to yabloc (#25)

* rename pcdless to yabloc

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* fix conflict miss

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

---------

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* visualize path (#28)

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* docs: update readme about particle filter (#30)

* update mpf/README.md

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* update gnss_corrector/README.md

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* update camera_corrector/README.md

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

---------

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* feat(segment_filter): publish images with lines and refactor (#29)

* feat(segment_filter): publish images with lines

Signed-off-by: kminoda <koji.minoda@tier4.jp>

* update validation

Signed-off-by: kminoda <koji.minoda@tier4.jp>

* update imgproc (reverted)

Signed-off-by: kminoda <koji.minoda@tier4.jp>

* large change inclding refactoring

Signed-off-by: kminoda <koji.minoda@tier4.jp>

* major update

Signed-off-by: kminoda <koji.minoda@tier4.jp>

* revert rviz config

Signed-off-by: kminoda <koji.minoda@tier4.jp>

* minor fix in name

Signed-off-by: kminoda <koji.minoda@tier4.jp>

* add validation option

Signed-off-by: kminoda <koji.minoda@tier4.jp>

* update architecture svg

Signed-off-by: kminoda <koji.minoda@tier4.jp>

* rename validation.launch to overlay.launch

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* no throw runtime_error (unintentionaly applying format)

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

---------

Signed-off-by: kminoda <koji.minoda@tier4.jp>
Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Co-authored-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* catch runtime_error when particle id is invalid (#31)

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* return if info is nullopt (#32)

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* pose_buffer is sometimes empty (#33)

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* use_yaw_of_initialpose (#34)

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* feat(interface):  remove incompatible interface (#35)

* not use ublox_msg when run as autoware

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* remove twist/kalman/twist & use twist_estimator/twist_with_covariance

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* update particle_array stamp even if the time stamp seems wrong

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

---------

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* fix: suppress info/warn_stream (#37)

* does not stream undistortion time

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* improve warn stream when skip particle weighting

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* surpress frequency of  warnings during synchronized particle searching

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* fix camera_pose_initializer

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

---------

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* /switch must not be nice name (#39)

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* misc(readme): update readme (#41)

* add youtube link and change thumbnail

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* improve input/output topics

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* quick start demo screen image

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* add abstruct architecture and detail architecture

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

---------

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* docs(rosdep): fix package.xml to ensure build success (#44)

* fix package.xml to success build

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* add 'rosdep install' in how-to-build

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

---------

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* add geographiclib in package.xml (#46)

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* fix path search error in build stage (#45)

* fix path search error in build stage

* fix tier4/YabLoc#45 (comment)

* Feature/remove submodule (#47)

* remove submodules

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* remove doppler converter

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

---------

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* feature: change node namespace to /localization/yabloc/** from /localization/** (#48)

* change node namespace

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* update namespace for autoware-mode

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* update namespace in multi_camera.launch

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

---------

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* removed unstable packages (#49)

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* feature: add *.param.yaml to manage parameters (#50)

* make *.param.yaml in imgproc packages

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* make *.param.yaml in initializer packages

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* make *.param.yaml in map packages

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* make *.param.yaml in pf packages

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* make *.param.yaml in twist packages

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* fix expressway parameter

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* fix override_frame_id

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* remove default parameters

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* fix some remaining invalida parameters

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

---------

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* does not estimate twist (#51)

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* feat(particle_initializer): merge particle_initializer into mpf (#52)

* feat(particle_initializer): merge particle_initializer to modulalized_particle_filter

Signed-off-by: kminoda <koji.minoda@tier4.jp>

* remove particle_initializer

* remove debug message

Signed-off-by: kminoda <koji.minoda@tier4.jp>

* remove related parts

Signed-off-by: kminoda <koji.minoda@tier4.jp>

* update readme

Signed-off-by: kminoda <koji.minoda@tier4.jp>

* rename publishing topic

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

---------

Signed-off-by: kminoda <koji.minoda@tier4.jp>
Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Co-authored-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* fix: remove ll2_transition_area (#54)

Signed-off-by: kminoda <koji.minoda@tier4.jp>

* feature(initializer): combine some initializer packages (#56)

* combine some package about initializer

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* yabloc_pose_initializer works well

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* remove old initializer packages

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* semseg node can launch

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* fix bug

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* revert initializer mode

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

---------

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* feature(imgproc): reudce imgproc packages (#57)

* combine some imgproc packages

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* combine overlay monitors into imgproc

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

---------

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* feature(validation): remove validation packages (#58)

* remove validation packages

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* remove path visualization

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

---------

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* feature(pf): combine some packages related to particle filter (#59)

* create yabloc_particle_filter

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* combine gnss_particle_corrector

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* combine ll2_cost_map

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* combine camera_particle_corrector

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* fix launch files

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* split README & remove obsolete scripts

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* fix config path of multi_camera mode

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

---------

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* feature: combine map and twist packages (#60)

* removed some twist nodes & rename remains to yabloc_twist

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* fix launch files for yabloc_twist

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* move map packages to yabloc_common

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* WIP: I think its impossible

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* Revert "WIP: I think its impossible"

This reverts commit 49da507bbf9abe8fcebed4d4df44ea5f4075f6d1.

* remove map packages & fix some launch files

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

---------

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* removed obsolete packages

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* remove obsolete dot files

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* use tier4_loc_launch instead of yabloc_loc_launch

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* move launch files to each packages

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* remove yabloc_localization_launch

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* remove yabloc_launch

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* modify yabloc/README.md

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* update yabloc_common/README.md

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* update yabloc_imgproc README

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* update yabloc_particle_filter/README

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* update yabloc_pose_initializer/README

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* update README

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* use native from_bin_msg

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* use ifndef instead of pragma once in yabloc_common

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* use ifndef instead of pragma once in yabloc_imgproc & yabloc_pf

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* use ifndef instead of pragma once in yabloc_pose_initializer

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* style(pre-commit): autofix

* use autoware_cmake & suppress build warning

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* repalce yabloc::Timer with  tier4_autoware_utils::StopWatch

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* replace 1.414 with std::sqrt(2)

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* style(pre-commit): autofix

* removed redundant ament_cmake_auto

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* removed yabloc_common/timer.hpp

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* replaced low_pass_filter with autoware's lowpass_filter_1d

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* style(pre-commit): autofix

* Squashed commit of the following:

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

commit cb08e290cca5c00315a58a973ec068e559c9e0a9
Author: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Date:   Tue Jun 13 14:30:09 2023 +0900

    removed ublox_msgs in gnss_particle_corrector

    Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

commit c158133f184a43914ec5f929645a7869ef8d03be
Author: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Date:   Tue Jun 13 14:24:19 2023 +0900

    removed obsolete yabloc_multi_camera.launch

    Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

commit 10f578945dc257ece936ede097544bf008e5f48d
Author: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Date:   Tue Jun 13 14:22:14 2023 +0900

    removed ublox_msgs in yabloc_pose_initializer

    Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* style(pre-commit): autofix

* removed fix2mgrs & ublox_stamp

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* added ~/ at the top of topic name

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* removed use_sim_time in yabloc launch files

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* add architecture diagram in README

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* rename lsd_node to line_segment_detector

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* style(pre-commit): autofix

* Update localization/yabloc/README.md

fix typo

Co-authored-by: Takagi, Isamu <43976882+isamu-takagi@users.noreply.github.com>

* removed obsolete debug code in similar_area_searcher

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* removed suspension_adaptor which manages lifecycle of particle predictor

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* style(pre-commit): autofix

* renamed semseg to SemanticSegmentation

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* style(pre-commit): autofix

* fixed README.md to solve markdownlint

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* WIP: reflected cpplint's suggestion

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* reflected cpplint's suggestion

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* rename AbstParaticleFilter in config files

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* fixed typo

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* used autoware_lint_common

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* fixed miss git add

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* style(pre-commit): autofix

* replaced lanelet_util by lanelet2_extension

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* replaced fast_math by tie4_autoware_utils

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* sort package.xml

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* renamed yabloc_imgproc with yabloc_image_processing

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* reflected some review comments

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* resolved some TODO

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* prioritize NDT if both NDT and YabLoc initializer enabled

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* changed localization_mode option names

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

---------

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Signed-off-by: kminoda <koji.minoda@tier4.jp>
Co-authored-by: kminoda <44218668+kminoda@users.noreply.github.com>
Co-authored-by: kminoda <koji.minoda@tier4.jp>
Co-authored-by: Akihiro Komori <akihiro.komori@unity3d.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Takagi, Isamu <43976882+isamu-takagi@users.noreply.github.com>
  • Loading branch information
6 people committed Jun 22, 2023
1 parent 6dc708c commit 98ef534
Show file tree
Hide file tree
Showing 139 changed files with 10,406 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<?xml version="1.0"?>
<launch>
<!-- Parameter files -->
<arg name="mode"/>
<arg name="crop_box_filter_measurement_range_param_path"/>
<arg name="voxel_grid_downsample_filter_param_path"/>
<arg name="random_downsample_filter_param_path"/>
Expand All @@ -27,10 +28,14 @@
</include>
</group>
<!-- pose_estimator module -->
<group>
<group if="$(eval '&quot;$(var mode)&quot;==&quot;lidar&quot;')">
<push-ros-namespace namespace="pose_estimator"/>
<include file="$(find-pkg-share tier4_localization_launch)/launch/pose_estimator/pose_estimator.launch.xml"/>
</group>
<group if="$(eval '&quot;$(var mode)&quot;==&quot;camera&quot;')">
<push-ros-namespace namespace="yabloc"/>
<include file="$(find-pkg-share tier4_localization_launch)/launch/pose_estimator/yabloc.launch.xml"/>
</group>
<!-- twist_estimator module -->
<group>
<push-ros-namespace namespace="twist_estimator"/>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
<?xml version="1.0"?>
<launch>
<!-- source camera image topics -->
<arg name="src_image" default="/sensing/camera/traffic_light/image_raw/compressed"/>
<arg name="src_info" default="/sensing/camera/traffic_light/camera_info"/>

<!-- default parameter path -->
<!-- initializer -->
<arg name="camera_pose_initializer_param_path" default="$(find-pkg-share yabloc_pose_initializer)/config/camera_pose_initializer.param.yaml"/>
<!-- particle filter-->
<arg name="camera_particle_corrector_param_path" default="$(find-pkg-share yabloc_particle_filter)/config/camera_particle_corrector.param.yaml"/>
<arg name="gnss_particle_corrector_param_path" default="$(find-pkg-share yabloc_particle_filter)/config/gnss_particle_corrector.param.yaml"/>
<arg name="predictor_param_path" default="$(find-pkg-share yabloc_particle_filter)/config/predictor.param.yaml"/>
<!-- image processing -->
<arg name="graph_segment_param_path" default="$(find-pkg-share yabloc_image_processing)/config/graph_segment.param.yaml"/>
<arg name="segment_filter_param_path" default="$(find-pkg-share yabloc_image_processing)/config/segment_filter.param.yaml"/>
<arg name="undistort_param_path" default="$(find-pkg-share yabloc_image_processing)/config/undistort.param.yaml"/>
<!-- map -->
<arg name="ground_server_param_path" default="$(find-pkg-share yabloc_common)/config/ground_server.param.yaml"/>
<arg name="ll2_decomposer_param_path" default="$(find-pkg-share yabloc_common)/config/ll2_decomposer.param.yaml"/>

<let name="input_pose" value="/localization/pose_twist_fusion_filter/pose"/>

<!-- initializer -->
<group>
<push-ros-namespace namespace="initializer"/>
<include file="$(find-pkg-share yabloc_pose_initializer)/launch/yabloc_pose_initializer.launch.xml"/>
</group>

<!-- particle filter -->
<group>
<push-ros-namespace namespace="pf"/>
<include file="$(find-pkg-share yabloc_particle_filter)/launch/yabloc_particle_filter.launch.xml"/>
</group>

<!-- image processing -->
<group>
<push-ros-namespace namespace="image_processing"/>
<include file="$(find-pkg-share yabloc_image_processing)/launch/yabloc_image_processing.launch.xml">
<arg name="src_image" value="$(var src_image)"/>
<arg name="src_info" value="$(var src_info)"/>
<arg name="input_pose" value="$(var input_pose)"/>
</include>
</group>

<!-- map -->
<group>
<push-ros-namespace namespace="map"/>
<include file="$(find-pkg-share yabloc_common)/launch/yabloc_common.launch.xml">
<arg name="input_particle_pose" value="$(var input_pose)"/>
</include>
</group>
</launch>
4 changes: 4 additions & 0 deletions launch/tier4_localization_launch/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@
<exec_depend>pointcloud_preprocessor</exec_depend>
<exec_depend>pose_initializer</exec_depend>
<exec_depend>topic_tools</exec_depend>
<exec_depend>yabloc_common</exec_depend>
<exec_depend>yabloc_image_processing</exec_depend>
<exec_depend>yabloc_particle_filter</exec_depend>
<exec_depend>yabloc_pose_initializer</exec_depend>

<test_depend>ament_lint_auto</test_depend>
<test_depend>autoware_lint_common</test_depend>
Expand Down
1 change: 1 addition & 0 deletions localization/pose_initializer/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ ament_auto_add_executable(pose_initializer_node
src/pose_initializer/pose_initializer_core.cpp
src/pose_initializer/gnss_module.cpp
src/pose_initializer/ndt_module.cpp
src/pose_initializer/yabloc_module.cpp
src/pose_initializer/stop_check_module.cpp
src/pose_initializer/ekf_localization_trigger_module.cpp
src/pose_initializer/ndt_localization_trigger_module.cpp
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@
gnss_enabled: true
ndt_enabled: true
ekf_enabled: true
yabloc_enabled: false
stop_check_enabled: true
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
<node pkg="pose_initializer" exec="pose_initializer_node" name="pose_initializer_node">
<param from="$(var common_config_file)"/>
<param from="$(var config_file)"/>
<remap from="yabloc_align" to="/localization/yabloc/initializer/yabloc_align_srv"/>
<remap from="ndt_align" to="/localization/pose_estimator/ndt_align_srv"/>
<remap from="stop_check_twist" to="/sensing/vehicle_velocity_converter/twist_with_covariance"/>
<remap from="gnss_pose_cov" to="$(var sub_gnss_pose_cov)"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
#include "ndt_localization_trigger_module.hpp"
#include "ndt_module.hpp"
#include "stop_check_module.hpp"
#include "yabloc_module.hpp"

#include <memory>
#include <vector>
Expand All @@ -41,6 +42,9 @@ PoseInitializer::PoseInitializer() : Node("pose_initializer")
if (declare_parameter<bool>("gnss_enabled")) {
gnss_ = std::make_unique<GnssModule>(this);
}
if (declare_parameter<bool>("yabloc_enabled")) {
yabloc_ = std::make_unique<YabLocModule>(this);
}
if (declare_parameter<bool>("ndt_enabled")) {
ndt_ = std::make_unique<NdtModule>(this);
ndt_localization_trigger_ = std::make_unique<NdtLocalizationTriggerModule>(this);
Expand Down Expand Up @@ -86,6 +90,10 @@ void PoseInitializer::on_initialize(
auto pose = req->pose.empty() ? get_gnss_pose() : req->pose.front();
if (ndt_) {
pose = ndt_->align_pose(pose);
} else if (yabloc_) {
// If both the NDT and YabLoc initializer are enabled, prioritize NDT as it offers more
// accuracy pose.
pose = yabloc_->align_pose(pose);
}
pose.pose.covariance = output_pose_covariance_;
pub_reset_->publish(pose);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
class StopCheckModule;
class NdtModule;
class GnssModule;
class YabLocModule;
class EkfLocalizationTriggerModule;
class NdtLocalizationTriggerModule;

Expand All @@ -50,6 +51,7 @@ class PoseInitializer : public rclcpp::Node
std::array<double, 36> gnss_particle_covariance_;
std::unique_ptr<GnssModule> gnss_;
std::unique_ptr<NdtModule> ndt_;
std::unique_ptr<YabLocModule> yabloc_;
std::unique_ptr<StopCheckModule> stop_check_;
std::unique_ptr<EkfLocalizationTriggerModule> ekf_localization_trigger_;
std::unique_ptr<NdtLocalizationTriggerModule> ndt_localization_trigger_;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
// Copyright 2022 The Autoware Contributors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

#include "yabloc_module.hpp"

#include <component_interface_specs/localization.hpp>
#include <component_interface_utils/rclcpp/exceptions.hpp>

#include <memory>

using ServiceException = component_interface_utils::ServiceException;
using Initialize = localization_interface::Initialize;
using PoseWithCovarianceStamped = geometry_msgs::msg::PoseWithCovarianceStamped;

YabLocModule::YabLocModule(rclcpp::Node * node) : logger_(node->get_logger())
{
cli_align_ = node->create_client<RequestPoseAlignment>("yabloc_align");
}

PoseWithCovarianceStamped YabLocModule::align_pose(const PoseWithCovarianceStamped & pose)
{
const auto req = std::make_shared<RequestPoseAlignment::Request>();
req->pose_with_covariance = pose;

if (!cli_align_->service_is_ready()) {
throw component_interface_utils::ServiceUnready("YabLoc align server is not ready.");
}

RCLCPP_INFO(logger_, "Call YabLoc align server.");
const auto res = cli_align_->async_send_request(req).get();
if (!res->success) {
RCLCPP_INFO(logger_, "YabLoc align server failed.");
throw ServiceException(
Initialize::Service::Response::ERROR_ESTIMATION, "YabLoc align server failed.");
}
RCLCPP_INFO(logger_, "YabLoc align server succeeded.");

// Overwrite the covariance.
return res->pose_with_covariance;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
// Copyright 2022 The Autoware Contributors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

#ifndef POSE_INITIALIZER__YABLOC_MODULE_HPP_
#define POSE_INITIALIZER__YABLOC_MODULE_HPP_

#include <rclcpp/rclcpp.hpp>

#include <geometry_msgs/msg/pose_with_covariance_stamped.hpp>
#include <tier4_localization_msgs/srv/pose_with_covariance_stamped.hpp>

class YabLocModule
{
private:
using PoseWithCovarianceStamped = geometry_msgs::msg::PoseWithCovarianceStamped;
using RequestPoseAlignment = tier4_localization_msgs::srv::PoseWithCovarianceStamped;

public:
explicit YabLocModule(rclcpp::Node * node);
PoseWithCovarianceStamped align_pose(const PoseWithCovarianceStamped & pose);

private:
rclcpp::Logger logger_;
rclcpp::Client<RequestPoseAlignment>::SharedPtr cli_align_;
};

#endif // POSE_INITIALIZER__YABLOC_MODULE_HPP_
31 changes: 31 additions & 0 deletions localization/yabloc/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# YabLoc

**YabLoc** is vision-based localization with vector map. [https://youtu.be/Eaf6r_BNFfk](https://youtu.be/Eaf6r_BNFfk)

[![thumbnail](docs/yabloc_thumbnail.jpg)](https://youtu.be/Eaf6r_BNFfk)

## Packages

- [yabloc_common](yabloc_common/README.md)
- [yabloc_image_processing](yabloc_image_processing/README.md)
- [yabloc_particle_filter](yabloc_particle_filter/README.md)
- [yabloc_pose_initializer](yabloc_pose_initializer/README.md)

## How to launch YabLoc instead of NDT

When launching autoware, if you set `localization_mode:=yabloc` as an argument, YabLoc will be launched instead of NDT.
By default, `localization_mode` is `ndt`.

A sample command to run YabLoc is as follows

```shell
ros2 launch autoware_launch logging_simulator.launch.xml \
map_path:=$HOME/autoware_map/sample-map-rosbag\
vehicle_model:=sample_vehicle \
sensor_model:=sample_sensor_kit \
localization_mode:=yabloc
```

## Architecture

![node_diagram](docs/yabloc_architecture.drawio.svg)
Loading

0 comments on commit 98ef534

Please sign in to comment.