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

feat(localization): add lidar_marker_localizer #5573

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
142 commits
Select commit Hold shift + click to select a range
d6d8cf3
Added lidar_marker_localizer
SakodaShintaro Nov 14, 2023
03ed686
style(pre-commit): autofix
pre-commit-ci[bot] Nov 14, 2023
29eb95b
fix launch file
Nov 14, 2023
aaf180d
style(pre-commit): autofix
pre-commit-ci[bot] Nov 14, 2023
c7184ce
Removed subscriber_member_function.cpp
SakodaShintaro Nov 14, 2023
3fd5d25
Renamed the package and the node
SakodaShintaro Nov 14, 2023
2988641
style(pre-commit): autofix
pre-commit-ci[bot] Nov 14, 2023
4aad9a7
Removed pose_array_interpolator
SakodaShintaro Nov 14, 2023
fa13eb6
Removed unused files
SakodaShintaro Nov 14, 2023
219abe9
Removed include dir
SakodaShintaro Nov 14, 2023
9bbe859
style(pre-commit): autofix
pre-commit-ci[bot] Nov 14, 2023
ee89ab4
Renamed wrong names
SakodaShintaro Nov 14, 2023
88067ec
fix magic number
Nov 16, 2023
2e6b2f3
style(pre-commit): autofix
pre-commit-ci[bot] Nov 16, 2023
d0ce017
fix bug
Nov 16, 2023
2b91789
parameterized
Nov 17, 2023
6d89bbb
style(pre-commit): autofix
pre-commit-ci[bot] Nov 17, 2023
60af817
add base_covariance
Nov 20, 2023
2c5f463
style(pre-commit): autofix
pre-commit-ci[bot] Nov 20, 2023
1d3181a
Merge branch 'main' into feat/add_lidar_marker_localizer
SakodaShintaro Nov 20, 2023
f0243b5
Removed std::cerr
SakodaShintaro Nov 20, 2023
ba73469
Removed unused code
SakodaShintaro Nov 20, 2023
a289740
Removed unnecessary publishers
SakodaShintaro Nov 20, 2023
6d83e8c
Changed to use alias
SakodaShintaro Nov 20, 2023
be91fd9
Fixed result_base_link_on_map
SakodaShintaro Nov 20, 2023
5604e48
Changed to use "using std::placeholders"
SakodaShintaro Nov 20, 2023
cd54e8d
Refactored points_callback
SakodaShintaro Nov 20, 2023
e1c8f6d
Merge branch 'main' into feat/add_lidar_marker_localizer
SakodaShintaro Nov 21, 2023
b4e0590
Fixed as pointed out by linter
SakodaShintaro Nov 21, 2023
9b13638
Refactored lidar_marker_localizer
SakodaShintaro Nov 21, 2023
d2057ff
Merge branch 'main' into feat/add_lidar_marker_localizer
SakodaShintaro Nov 22, 2023
5041ffb
Fixed const reference
SakodaShintaro Nov 22, 2023
ffdef5e
Refactor point variables
SakodaShintaro Nov 22, 2023
29469e4
Added detect_landmarks
SakodaShintaro Nov 22, 2023
bef894a
rework filering params
Nov 22, 2023
8572c3b
fix marker position
Nov 22, 2023
7329cae
style(pre-commit): autofix
pre-commit-ci[bot] Nov 22, 2023
c5b2403
fix build error
Nov 22, 2023
42f24df
fix marker position
Nov 22, 2023
406afa0
style(pre-commit): autofix
pre-commit-ci[bot] Nov 22, 2023
033479e
update readme
Nov 22, 2023
c96e5df
style(pre-commit): autofix
pre-commit-ci[bot] Nov 22, 2023
4b51c47
Merge branch 'main' into feat/add_lidar_marker_localizer
SakodaShintaro Nov 23, 2023
3805e46
Added calculate_diff_pose
SakodaShintaro Nov 24, 2023
1e7bf59
Fixed to pass linter
SakodaShintaro Nov 24, 2023
f1da12e
update package.xml
Nov 27, 2023
fa5f47a
Merge branch 'main' into feat/add_lidar_marker_localizer
SakodaShintaro Nov 30, 2023
88139cb
Merge remote-tracking branch 'origin' into feat/add_lidar_marker_loca…
SakodaShintaro Nov 30, 2023
6601606
Fixed to use SmartPoseBuffer
SakodaShintaro Nov 30, 2023
e590a82
Fixed function calculate_diff_pose to calculate_new_self_pose
SakodaShintaro Dec 5, 2023
94c0b8a
Merge remote-tracking branch 'origin' into feat/add_lidar_marker_loca…
SakodaShintaro Dec 5, 2023
e5835ca
Compatible with the latest landmark_manager
SakodaShintaro Dec 5, 2023
c189af7
Merge remote-tracking branch 'origin' into feat/add_lidar_marker_loca…
SakodaShintaro Dec 13, 2023
dc9d27a
Fixed pub_marker
SakodaShintaro Dec 13, 2023
f430277
Merge remote-tracking branch 'origin' into feat/add_lidar_marker_loca…
SakodaShintaro Dec 13, 2023
edb5bf6
Fixed launch
SakodaShintaro Dec 13, 2023
811f39e
Removed unused arg
SakodaShintaro Dec 14, 2023
2027cc2
Removed limit_distance_from_self_pose_to_marker_from_lanelet2
SakodaShintaro Dec 14, 2023
7574d31
Merge remote-tracking branch 'origin' into feat/add_lidar_marker_loca…
SakodaShintaro Dec 21, 2023
3abf96d
Merge remote-tracking branch 'origin' into feat/add_lidar_marker_loca…
SakodaShintaro Dec 27, 2023
24b4418
Merge remote-tracking branch 'origin' into feat/add_lidar_marker_loca…
SakodaShintaro Dec 28, 2023
230aac6
Fixed parse_landmarks
SakodaShintaro Dec 28, 2023
c586cb8
Fixed parameter type
SakodaShintaro Dec 28, 2023
3959848
Fixed typo
SakodaShintaro Dec 28, 2023
6dfe06b
Merge branch 'main' into feat/add_lidar_marker_localizer
YamatoAndo Jan 11, 2024
b86ef4c
Merge branch 'main' into feat/add_lidar_marker_localizer
YamatoAndo Jan 16, 2024
e3937cb
rework diagnostics
YamatoAndo Jan 16, 2024
42e5c70
style(pre-commit): autofix
pre-commit-ci[bot] Jan 16, 2024
9de1ab9
rotate covariance
YamatoAndo Jan 16, 2024
06783e7
style(pre-commit): autofix
pre-commit-ci[bot] Jan 16, 2024
df6a45f
add json schema
YamatoAndo Jan 16, 2024
987745b
style(pre-commit): autofix
pre-commit-ci[bot] Jan 16, 2024
1bda047
Merge branch 'main' into feat/add_lidar_marker_localizer
YamatoAndo Feb 1, 2024
01b9804
parameterize marker name
YamatoAndo Feb 1, 2024
1f4c684
python to xml
YamatoAndo Feb 1, 2024
670f070
Merge branch 'main' into feat/add_lidar_marker_localizer
YamatoAndo Feb 6, 2024
401289e
update launch files
YamatoAndo Feb 7, 2024
a3d0e41
style(pre-commit): autofix
pre-commit-ci[bot] Feb 7, 2024
5290e30
add debug/pose_with_covariance
YamatoAndo Feb 7, 2024
5eebcc1
style(pre-commit): autofix
pre-commit-ci[bot] Feb 7, 2024
96dfe80
update readme
YamatoAndo Feb 7, 2024
fdc1c8c
update readme
YamatoAndo Feb 7, 2024
96304b9
add depend
YamatoAndo Feb 7, 2024
1cba29e
add sample dataset
YamatoAndo Mar 18, 2024
2c14664
add param marker_height_from_ground
YamatoAndo Mar 28, 2024
4cb5d6b
Merge branch 'main' into feat/add_lidar_marker_localizer
YamatoAndo Mar 28, 2024
46bd306
style(pre-commit): autofix
pre-commit-ci[bot] Mar 28, 2024
c8da85d
Merge branch 'main' into feat/add_lidar_marker_localizer
YamatoAndo Mar 29, 2024
363ddd4
fix typo
YamatoAndo Apr 1, 2024
cc1dde5
add includes
YamatoAndo Apr 1, 2024
6c2d860
add name to TODO comment
YamatoAndo Apr 1, 2024
3c179b6
style(pre-commit): autofix
pre-commit-ci[bot] Apr 1, 2024
4c0c3d6
rename lidar-marker
YamatoAndo Apr 4, 2024
360c3eb
modify sample dataset url
YamatoAndo Apr 4, 2024
ceaa67e
add flowchat to readme
YamatoAndo Apr 9, 2024
ed76f70
fix callbackgroup
YamatoAndo Apr 9, 2024
6f23457
add TODO comment
YamatoAndo Apr 9, 2024
2d6de79
fix throttle timer
YamatoAndo Apr 9, 2024
bb05c13
delete unused valriable
YamatoAndo Apr 9, 2024
de39ba9
delete unused line
YamatoAndo Apr 9, 2024
7dcdad7
style(pre-commit): autofix
pre-commit-ci[bot] Apr 9, 2024
e37e9f6
fix the duplicated code
YamatoAndo Apr 9, 2024
03c5bd3
style(pre-commit): autofix
pre-commit-ci[bot] Apr 9, 2024
5565f67
avoid division by zero
YamatoAndo Apr 10, 2024
b2b2ff6
fix TODO comment
YamatoAndo Apr 10, 2024
e2f31f6
fix uncrustify failed
YamatoAndo Apr 11, 2024
4b3623b
style(pre-commit): autofix
pre-commit-ci[bot] Apr 11, 2024
14fbea1
Update localization/landmark_based_localizer/lidar_marker_localizer/s…
YamatoAndo Apr 11, 2024
63319ba
change lint_common
YamatoAndo Apr 11, 2024
166dd40
update CMakeLists
YamatoAndo Apr 11, 2024
e030b46
save intensity func
YamatoAndo May 28, 2024
4ce783b
Merge branch 'main' into feat/add_lidar_marker_localizer
YamatoAndo May 28, 2024
5b95600
style(pre-commit): autofix
pre-commit-ci[bot] May 28, 2024
0747aed
Merge branch 'main' into feat/add_lidar_marker_localizer
SakodaShintaro Jun 18, 2024
e9c128d
style(pre-commit): autofix
pre-commit-ci[bot] Jun 18, 2024
96b1bb6
Merge branch 'main' into feat/add_lidar_marker_localizer
SakodaShintaro Jun 26, 2024
2841a63
Merge branch 'main' into feat/add_lidar_marker_localizer
YamatoAndo Jul 16, 2024
c882120
fix build error
YamatoAndo Jul 16, 2024
f8dcc2a
style(pre-commit): autofix
pre-commit-ci[bot] Jul 16, 2024
1fc7ae9
Merge branch 'main' into feat/add_lidar_marker_localizer
YamatoAndo Jul 23, 2024
b38734e
apply PointXYZIRC
YamatoAndo Jul 23, 2024
8371d1e
add autoware prefix
YamatoAndo Jul 24, 2024
c54af8d
componentize
YamatoAndo Jul 24, 2024
00b58a8
move directory
YamatoAndo Jul 24, 2024
d4b2f2f
use localization_util's diagnostics lib
YamatoAndo Jul 24, 2024
2d3c75f
style(pre-commit): autofix
pre-commit-ci[bot] Jul 24, 2024
0d39cfd
applay linter
YamatoAndo Jul 26, 2024
c8aab12
style(pre-commit): autofix
pre-commit-ci[bot] Jul 26, 2024
255eca2
to pass spell-check
YamatoAndo Jul 29, 2024
74400cd
remove _ex
YamatoAndo Jul 29, 2024
6336e95
refactor
YamatoAndo Jul 30, 2024
05fd31a
style(pre-commit): autofix
pre-commit-ci[bot] Jul 30, 2024
845da9c
remove unused depend
YamatoAndo Jul 30, 2024
555446f
update readme
YamatoAndo Jul 30, 2024
b1fffe3
Merge branch 'main' into feat/add_lidar_marker_localizer
YamatoAndo Jul 30, 2024
6ea8815
fix typo
YamatoAndo Jul 30, 2024
c2d8fe6
fix json
YamatoAndo Jul 30, 2024
edabd49
fix autoware prefix
YamatoAndo Jul 30, 2024
1469932
Merge branch 'main' into feat/add_lidar_marker_localizer
SakodaShintaro Aug 7, 2024
ace192b
Merge branch 'main' into feat/add_lidar_marker_localizer
YamatoAndo Aug 20, 2024
37665bd
style(pre-commit): autofix
pre-commit-ci[bot] Aug 20, 2024
0521fd7
Merge branch 'main' into feat/add_lidar_marker_localizer
YamatoAndo Aug 22, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@
<arg name="eagleye_param_path"/>
<arg name="ar_tag_based_localizer_param_path"/>

<!-- parameter paths for lidar_marker_localizer -->
<arg name="lidar_marker_localizer/lidar_marker_localizer_param_path"/>
<arg name="lidar_marker_localizer/pointcloud_preprocessor/crop_box_filter_measurement_range_param_path"/>
<arg name="lidar_marker_localizer/pointcloud_preprocessor/ring_filter_param_path"/>

<arg name="input_pointcloud" default="/sensing/lidar/concatenated/pointcloud"/>
<arg name="localization_pointcloud_container_name" default="/pointcloud_container"/>

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
<?xml version="1.0"?>
<launch>
<!-- input pointcloud topic/container -->
<arg name="input_pointcloud"/>
<arg name="lidar_container_name"/>

<!-- whether use intra-process -->
<arg name="use_intra_process" default="true" description="use ROS 2 component container communication"/>

<group>
<push-ros-namespace namespace="lidar_marker_localizer"/>

<!-- pointcloud preprocess -->
<group>
<push-ros-namespace namespace="pointcloud_preprocessor"/>
<load_composable_node target="$(var lidar_container_name)">
<composable_node pkg="autoware_pointcloud_preprocessor" plugin="autoware::pointcloud_preprocessor::CropBoxFilterComponent" name="crop_box_filter_measurement_range">
<remap from="input" to="$(var input_pointcloud)"/>
<remap from="output" to="measurement_range/pointcloud"/>
<param from="$(var lidar_marker_localizer/pointcloud_preprocessor/crop_box_filter_measurement_range_param_path)"/>
<extra_arg name="use_intra_process_comms" value="$(var use_intra_process)"/>
</composable_node>

<composable_node pkg="autoware_pointcloud_preprocessor" plugin="autoware::pointcloud_preprocessor::PassThroughFilterUInt16Component" name="ring_filter">
<remap from="input" to="measurement_range/pointcloud"/>
<remap from="output" to="ring_filter/pointcloud"/>
<param from="$(var lidar_marker_localizer/pointcloud_preprocessor/ring_filter_param_path)"/>
<extra_arg name="use_intra_process_comms" value="$(var use_intra_process)"/>
</composable_node>
</load_composable_node>
</group>

<!-- lidar_marker_localizer -->
<include file="$(find-pkg-share autoware_lidar_marker_localizer)/launch/lidar_marker_localizer.launch.xml">
<arg name="input_lanelet2_map" value="/map/vector_map"/>
<arg name="input_ekf_pose" value="/localization/pose_twist_fusion_filter/biased_pose_with_covariance"/>
<arg name="input_pointcloud" value="pointcloud_preprocessor/ring_filter/pointcloud"/>
<arg name="output_pose_with_covariance" value="/localization/pose_estimator/pose_with_covariance"/>
<arg name="service_trigger_node_srv" value="trigger_node_srv"/>
<arg name="param_file" value="$(var lidar_marker_localizer/lidar_marker_localizer_param_path)"/>
</include>
</group>
</launch>
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<arg name="gnss_enabled" default="true" description="gnss availability for initial position estimation"/>

<!-- split string with underscores -->
<let name="available_args" value="[\'ndt\',\'yabloc\',\'eagleye\',\'artag\']"/>
<let name="available_args" value="[\'ndt\',\'yabloc\',\'eagleye\',\'artag\',\'lidar-marker\']"/>
<let name="split_function" value="list(set('$(var pose_source)'.split('_')).intersection($(var available_args)))"/>
<let name="pose_sources" value="$(eval $(var split_function))"/>
<let name="multi_localizer_mode" value="$(eval &quot;len($(var pose_sources))> 1&quot;)"/>
Expand All @@ -18,6 +18,7 @@
<let name="use_ndt_pose" value="$(eval &quot;'ndt' in $(var pose_sources)&quot;)"/>
<let name="use_yabloc_pose" value="$(eval &quot;'yabloc' in $(var pose_sources)&quot;)"/>
<let name="use_artag_pose" value="$(eval &quot;'artag' in $(var pose_sources)&quot;)"/>
<let name="use_lidar_marker_pose" value="$(eval &quot;'lidar-marker' in $(var pose_sources)&quot;)"/>
<let name="use_eagleye_pose" value="$(eval &quot;'eagleye' in $(var pose_sources)&quot;)"/>
<let name="use_eagleye_twist" value="$(eval &quot;'eagleye' == '$(var twist_source)'&quot;)"/>
<let name="use_gyro_odom_twist" value="$(eval &quot;'gyro_odom' == '$(var twist_source)'&quot;)"/>
Expand Down Expand Up @@ -91,6 +92,16 @@
</include>
</group>

<!-- LiDAR Marker Localizer (as pose estimator) -->
<group if="$(var use_lidar_marker_pose)">
<push-ros-namespace namespace="pose_estimator"/>
<!-- TODO multi_localizer_mode -->
<include file="$(find-pkg-share tier4_localization_launch)/launch/pose_twist_estimator/lidar_marker_localizer.launch.xml">
<arg name="lidar_container_name" value="/sensing/lidar/top/pointcloud_preprocessor/pointcloud_container"/>
<arg name="input_pointcloud" value="/sensing/lidar/top/pointcloud"/>
</include>
</group>

<!-- Pose Estimator Arbiter Launch -->
<group if="$(var multi_localizer_mode)">
<include file="$(find-pkg-share pose_estimator_arbiter)/launch/pose_estimator_arbiter.launch.xml">
Expand Down
1 change: 1 addition & 0 deletions launch/tier4_localization_launch/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
<exec_depend>autoware_ar_tag_based_localizer</exec_depend>
<exec_depend>autoware_geo_pose_projector</exec_depend>
<exec_depend>autoware_gyro_odometer</exec_depend>
<exec_depend>autoware_lidar_marker_localizer</exec_depend>
<exec_depend>autoware_pointcloud_preprocessor</exec_depend>
<exec_depend>eagleye_geo_pose_fusion</exec_depend>
<exec_depend>eagleye_gnss_converter</exec_depend>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
cmake_minimum_required(VERSION 3.14)
project(autoware_lidar_marker_localizer)

# find dependencies
find_package(autoware_cmake REQUIRED)
autoware_package()

find_package(PCL REQUIRED COMPONENTS common io)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})

ament_auto_add_library(${PROJECT_NAME} SHARED
src/lidar_marker_localizer.cpp
)

target_link_libraries(${PROJECT_NAME}
${PCL_LIBRARIES}
)

rclcpp_components_register_node(${PROJECT_NAME}
PLUGIN "autoware::lidar_marker_localizer::LidarMarkerLocalizer"
EXECUTABLE ${PROJECT_NAME}_node
EXECUTOR SingleThreadedExecutor
)


if(BUILD_TESTING)
find_package(ament_lint_auto REQUIRED)
ament_lint_auto_find_test_dependencies()
endif()

ament_auto_package(INSTALL_TO_SHARE
config
launch
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
# LiDAR Marker Localizer

**LiDARMarkerLocalizer** is a detect-reflector-based localization node .

## Inputs / Outputs

### `lidar_marker_localizer` node

#### Input

| Name | Type | Description |
| :--------------------- | :---------------------------------------------- | :--------------- |
| `~/input/lanelet2_map` | `autoware_map_msgs::msg::HADMapBin` | Data of lanelet2 |
| `~/input/pointcloud` | `sensor_msgs::msg::PointCloud2` | PointCloud |
| `~/input/ekf_pose` | `geometry_msgs::msg::PoseWithCovarianceStamped` | EKF Pose |

#### Output

| Name | Type | Description |
| :------------------------------ | :---------------------------------------------- | :----------------------------------------------------------------- |
| `~/output/pose_with_covariance` | `geometry_msgs::msg::PoseWithCovarianceStamped` | Estimated pose |
| `~/debug/pose_with_covariance` | `geometry_msgs::msg::PoseWithCovarianceStamped` | [debug topic] Estimated pose |
| `~/debug/marker_detected` | `geometry_msgs::msg::PoseArray` | [debug topic] Detected marker poses |
| `~/debug/marker_mapped` | `visualization_msgs::msg::MarkerArray` | [debug topic] Loaded landmarks to visualize in Rviz as thin boards |
| `~/debug/marker_pointcloud` | `sensor_msgs::msg::PointCloud2` | [debug topic] PointCloud of the detected marker |
| `/diagnostics` | `diagnostic_msgs::msg::DiagnosticArray` | Diagnostics outputs |

## Parameters

{{ json_to_markdown("localization/autoware_landmark_based_localizer/autoware_lidar_marker_localizer/schema/lidar_marker_localizer.schema.json") }}

## How to launch

When launching Autoware, set `lidar-marker` for `pose_source`.

```bash
ros2 launch autoware_launch ... \
pose_source:=lidar-marker \
...
```

## Design

### Flowchart

```plantuml
@startuml

group main process
start
if (Receive a map?) then (yes)
else (no)
stop
endif

:Interpolate based on the received ego-vehicle's positions to align with sensor time;

if (Could interpolate?) then (yes)
else (no)
stop
endif

:Detect markers (see "Detection Algorithm");

:Calculate the distance from the ego-vehicle's positions to the nearest marker's position on the lanelet2 map;

if (Find markers?) then (yes)
else (no)
if (the distance is nearby?) then (yes)
stop
note : Error. It should have been able to detect marker
else (no)
stop
note : Not Error. There are no markers around the ego-vehicle
endif
endif

:Calculate the correction amount from the ego-vehicle's position;

if (Is the found marker's position close to the one on the lanelet2 map?) then (yes)
else (no)
stop
note : Detected something that isn't a marker
endif

:Publish result;

stop
end group

@enduml

```

## Detection Algorithm

![detection_algorithm](./doc_image/detection_algorithm.png)

1. Split the LiDAR point cloud into rings along the x-axis of the base_link coordinate system at intervals of the `resolution` size.
2. Find the portion of intensity that matches the `intensity_pattern`.
3. Perform steps 1 and 2 for each ring, accumulate the matching indices, and detect portions where the count exceeds the `vote_threshold_for_detect_marker` as markers.

## Sample Dataset

- [Sample rosbag and map](https://drive.google.com/file/d/1FuGKbkWrvL_iKmtb45PO9SZl1vAaJFVG/view?usp=sharing)

This dataset was acquired in National Institute for Land and Infrastructure Management, Full-scale tunnel experiment facility.
The reflectors were installed by [Taisei Corporation](https://www.taisei.co.jp/english/).

## Collaborators

- [TIER IV](https://tier4.jp/en/)
- [Taisei Corporation](https://www.taisei.co.jp/english/)
- [Yuri Shimizu](https://github.com/YuriShimizu824)
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
/**:
ros__parameters:

# marker name
marker_name: "reflector"

# for marker detection algorithm
resolution: 0.05
# A sequence of high/low intensity to perform pattern matching.
# 1: high intensity (positive match), 0: not consider, -1: low intensity (negative match)
intensity_pattern: [-1, -1, 0, 1, 1, 1, 1, 1, 0, -1, -1]
match_intensity_difference_threshold: 20
positive_match_num_threshold: 3
negative_match_num_threshold: 3
vote_threshold_for_detect_marker: 20
marker_height_from_ground: 1.075

# for interpolate algorithm
self_pose_timeout_sec: 1.0
self_pose_distance_tolerance_m: 1.0

# for validation
limit_distance_from_self_pose_to_nearest_marker: 2.0
limit_distance_from_self_pose_to_marker: 2.0

# base_covariance
# [TBD] This value is dynamically scaled according to the distance at which markers are detected.
base_covariance: [0.04, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0, 0.04, 0.0, 0.0, 0.0, 0.0,
0.0, 0.0, 0.01, 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, 0.00007569, 0.0, 0.0,
0.0, 0.0, 0.0, 0.0, 0.00007569, 0.0,
0.0, 0.0, 0.0, 0.0, 0.0, 0.00030625]

# for visualize the detected marker pointcloud
marker_width: 0.8

# for save log
enable_save_log: false
save_file_directory_path: detected_reflector_intensity
save_file_name: detected_reflector_intensity
save_frame_id: velodyne_top
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<launch>
<arg name="param_file" default="$(find-pkg-share lidar_marker_localizer)/config/lidar_marker_localizer.param.yaml"/>

<!-- Topic names -->
<arg name="input_lanelet2_map" default="~/input/lanelet2_map"/>
<arg name="input_ekf_pose" default="~/input/ekf_pose"/>
<arg name="input_pointcloud" default="~/input/pointcloud"/>

<arg name="output_pose_with_covariance" default="~/output/pose_with_covariance"/>

<arg name="service_trigger_node_srv" default="~/service/trigger_node_srv"/>

<node pkg="autoware_lidar_marker_localizer" exec="autoware_lidar_marker_localizer_node" output="both">
<remap from="~/input/pointcloud" to="$(var input_pointcloud)"/>
<remap from="~/input/ekf_pose" to="$(var input_ekf_pose)"/>
<remap from="~/input/lanelet2_map" to="$(var input_lanelet2_map)"/>

<remap from="~/output/pose_with_covariance" to="$(var output_pose_with_covariance)"/>

<remap from="~/service/trigger_node_srv" to="$(var service_trigger_node_srv)"/>

<param from="$(var param_file)"/>
</node>
</launch>
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
<?xml version="1.0"?>
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>autoware_lidar_marker_localizer</name>
<version>0.0.0</version>
<description>The autoware_lidar_marker_localizer package</description>
<maintainer email="[email protected]">Yamato Ando</maintainer>
<maintainer email="[email protected]">Shintaro Sakoda</maintainer>
<license>Apache License 2.0</license>
<author email="[email protected]">Eijiro Takeuchi</author>
<author email="[email protected]">Yamato Ando</author>
<author email="[email protected]">Shintaro Sakoda</author>

<buildtool_depend>ament_cmake_auto</buildtool_depend>
<buildtool_depend>autoware_cmake</buildtool_depend>

<depend>autoware_landmark_manager</depend>
<depend>autoware_map_msgs</depend>
<depend>autoware_point_types</depend>
<depend>autoware_universe_utils</depend>
<depend>localization_util</depend>
<depend>pcl_conversions</depend>
<depend>pcl_ros</depend>
<depend>rclcpp</depend>
<depend>rclcpp_components</depend>
<depend>sensor_msgs</depend>
<depend>std_srvs</depend>
<depend>tf2</depend>
<depend>tf2_eigen</depend>
<depend>tf2_geometry_msgs</depend>
<depend>tf2_ros</depend>
<depend>tf2_sensor_msgs</depend>

<test_depend>ament_lint_auto</test_depend>
<test_depend>autoware_lint_common</test_depend>

<export>
<build_type>ament_cmake</build_type>
</export>
</package>
Loading
Loading