Skip to content

Commit 5982ea8

Browse files
SakodaShintaropre-commit-ci[bot]YamatoAndo
authored andcommitted
feat(localization): add lidar_marker_localizer (autowarefoundation#5573)
* Added lidar_marker_localizer Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp> * style(pre-commit): autofix * fix launch file Signed-off-by: yamato-ando <Yamato ANDO> * style(pre-commit): autofix * Removed subscriber_member_function.cpp Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp> * Renamed the package and the node Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp> * style(pre-commit): autofix * Removed pose_array_interpolator Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp> * Removed unused files Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp> * Removed include dir Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp> * style(pre-commit): autofix * Renamed wrong names Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp> * fix magic number Signed-off-by: yamato-ando <Yamato ANDO> * style(pre-commit): autofix * fix bug Signed-off-by: yamato-ando <Yamato ANDO> * parameterized Signed-off-by: yamato-ando <Yamato ANDO> * style(pre-commit): autofix * add base_covariance Signed-off-by: yamato-ando <Yamato ANDO> * style(pre-commit): autofix * Removed std::cerr Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp> * Removed unused code Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp> * Removed unnecessary publishers Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp> * Changed to use alias Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp> * Fixed result_base_link_on_map Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp> * Changed to use "using std::placeholders" Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp> * Refactored points_callback Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp> * Fixed as pointed out by linter Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp> * Refactored lidar_marker_localizer Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp> * Fixed const reference Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp> * Refactor point variables Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp> * Added detect_landmarks Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp> * rework filering params Signed-off-by: yamato-ando <Yamato ANDO> * fix marker position Signed-off-by: yamato-ando <Yamato ANDO> * style(pre-commit): autofix * fix build error Signed-off-by: yamato-ando <Yamato ANDO> * fix marker position Signed-off-by: yamato-ando <Yamato ANDO> * style(pre-commit): autofix * update readme Signed-off-by: yamato-ando <Yamato ANDO> * style(pre-commit): autofix * Added calculate_diff_pose Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp> * Fixed to pass linter Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp> * update package.xml Signed-off-by: yamato-ando <Yamato ANDO> * Fixed to use SmartPoseBuffer Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp> * Fixed function calculate_diff_pose to calculate_new_self_pose Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp> * Compatible with the latest landmark_manager Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp> * Fixed pub_marker Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp> * Fixed launch Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp> * Removed unused arg Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp> * Removed limit_distance_from_self_pose_to_marker_from_lanelet2 Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp> * Fixed parse_landmarks Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp> * Fixed parameter type Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp> * Fixed typo Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp> * rework diagnostics Signed-off-by: yamato-ando <yamato.ando@tier4.jp> * style(pre-commit): autofix * rotate covariance Signed-off-by: yamato-ando <yamato.ando@tier4.jp> * style(pre-commit): autofix * add json schema Signed-off-by: yamato-ando <yamato.ando@tier4.jp> * style(pre-commit): autofix * parameterize marker name Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * python to xml Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * update launch files Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * style(pre-commit): autofix * add debug/pose_with_covariance Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * style(pre-commit): autofix * update readme Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * update readme Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * add depend Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * add sample dataset Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * add param marker_height_from_ground Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * style(pre-commit): autofix * fix typo Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * add includes Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * add name to TODO comment Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * style(pre-commit): autofix * rename lidar-marker Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * modify sample dataset url Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * add flowchat to readme Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * fix callbackgroup Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * add TODO comment Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * fix throttle timer Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * delete unused valriable Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * delete unused line Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * style(pre-commit): autofix * fix the duplicated code Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * style(pre-commit): autofix * avoid division by zero Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * fix TODO comment Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * fix uncrustify failed Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * style(pre-commit): autofix * Update localization/landmark_based_localizer/lidar_marker_localizer/src/lidar_marker_localizer.cpp Co-authored-by: SakodaShintaro <rgbygscrsedppbwg@gmail.com> * change lint_common Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * update CMakeLists Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * save intensity func Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * style(pre-commit): autofix * style(pre-commit): autofix * fix build error Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * style(pre-commit): autofix * apply PointXYZIRC Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * add autoware prefix Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * componentize Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * move directory Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * use localization_util's diagnostics lib Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * style(pre-commit): autofix * applay linter Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * style(pre-commit): autofix * to pass spell-check Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * remove _ex Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * refactor Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * style(pre-commit): autofix * remove unused depend Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * update readme Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * fix typo Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * fix json Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * fix autoware prefix Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> * style(pre-commit): autofix --------- Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp> Signed-off-by: yamato-ando <Yamato ANDO> Signed-off-by: yamato-ando <yamato.ando@tier4.jp> Signed-off-by: Yamato Ando <yamato.ando@tier4.jp> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: yamato-ando <Yamato ANDO> Co-authored-by: Yamato Ando <yamato.ando@gmail.com> Co-authored-by: yamato-ando <yamato.ando@tier4.jp>
1 parent 3477967 commit 5982ea8

File tree

13 files changed

+1231
-1
lines changed

13 files changed

+1231
-1
lines changed

launch/tier4_localization_launch/launch/localization.launch.xml

+5
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,11 @@
1818
<arg name="eagleye_param_path"/>
1919
<arg name="ar_tag_based_localizer_param_path"/>
2020

21+
<!-- parameter paths for lidar_marker_localizer -->
22+
<arg name="lidar_marker_localizer/lidar_marker_localizer_param_path"/>
23+
<arg name="lidar_marker_localizer/pointcloud_preprocessor/crop_box_filter_measurement_range_param_path"/>
24+
<arg name="lidar_marker_localizer/pointcloud_preprocessor/ring_filter_param_path"/>
25+
2126
<arg name="input_pointcloud" default="/sensing/lidar/concatenated/pointcloud"/>
2227
<arg name="localization_pointcloud_container_name" default="/pointcloud_container"/>
2328

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<?xml version="1.0"?>
2+
<launch>
3+
<!-- input pointcloud topic/container -->
4+
<arg name="input_pointcloud"/>
5+
<arg name="lidar_container_name"/>
6+
7+
<!-- whether use intra-process -->
8+
<arg name="use_intra_process" default="true" description="use ROS 2 component container communication"/>
9+
10+
<group>
11+
<push-ros-namespace namespace="lidar_marker_localizer"/>
12+
13+
<!-- pointcloud preprocess -->
14+
<group>
15+
<push-ros-namespace namespace="pointcloud_preprocessor"/>
16+
<load_composable_node target="$(var lidar_container_name)">
17+
<composable_node pkg="autoware_pointcloud_preprocessor" plugin="autoware::pointcloud_preprocessor::CropBoxFilterComponent" name="crop_box_filter_measurement_range">
18+
<remap from="input" to="$(var input_pointcloud)"/>
19+
<remap from="output" to="measurement_range/pointcloud"/>
20+
<param from="$(var lidar_marker_localizer/pointcloud_preprocessor/crop_box_filter_measurement_range_param_path)"/>
21+
<extra_arg name="use_intra_process_comms" value="$(var use_intra_process)"/>
22+
</composable_node>
23+
24+
<composable_node pkg="autoware_pointcloud_preprocessor" plugin="autoware::pointcloud_preprocessor::PassThroughFilterUInt16Component" name="ring_filter">
25+
<remap from="input" to="measurement_range/pointcloud"/>
26+
<remap from="output" to="ring_filter/pointcloud"/>
27+
<param from="$(var lidar_marker_localizer/pointcloud_preprocessor/ring_filter_param_path)"/>
28+
<extra_arg name="use_intra_process_comms" value="$(var use_intra_process)"/>
29+
</composable_node>
30+
</load_composable_node>
31+
</group>
32+
33+
<!-- lidar_marker_localizer -->
34+
<include file="$(find-pkg-share autoware_lidar_marker_localizer)/launch/lidar_marker_localizer.launch.xml">
35+
<arg name="input_lanelet2_map" value="/map/vector_map"/>
36+
<arg name="input_ekf_pose" value="/localization/pose_twist_fusion_filter/biased_pose_with_covariance"/>
37+
<arg name="input_pointcloud" value="pointcloud_preprocessor/ring_filter/pointcloud"/>
38+
<arg name="output_pose_with_covariance" value="/localization/pose_estimator/pose_with_covariance"/>
39+
<arg name="service_trigger_node_srv" value="trigger_node_srv"/>
40+
<arg name="param_file" value="$(var lidar_marker_localizer/lidar_marker_localizer_param_path)"/>
41+
</include>
42+
</group>
43+
</launch>

launch/tier4_localization_launch/launch/pose_twist_estimator/pose_twist_estimator.launch.xml

+12-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<arg name="gnss_enabled" default="true" description="gnss availability for initial position estimation"/>
1010

1111
<!-- split string with underscores -->
12-
<let name="available_args" value="[\'ndt\',\'yabloc\',\'eagleye\',\'artag\']"/>
12+
<let name="available_args" value="[\'ndt\',\'yabloc\',\'eagleye\',\'artag\',\'lidar-marker\']"/>
1313
<let name="split_function" value="list(set('$(var pose_source)'.split('_')).intersection($(var available_args)))"/>
1414
<let name="pose_sources" value="$(eval $(var split_function))"/>
1515
<let name="multi_localizer_mode" value="$(eval &quot;len($(var pose_sources))> 1&quot;)"/>
@@ -18,6 +18,7 @@
1818
<let name="use_ndt_pose" value="$(eval &quot;'ndt' in $(var pose_sources)&quot;)"/>
1919
<let name="use_yabloc_pose" value="$(eval &quot;'yabloc' in $(var pose_sources)&quot;)"/>
2020
<let name="use_artag_pose" value="$(eval &quot;'artag' in $(var pose_sources)&quot;)"/>
21+
<let name="use_lidar_marker_pose" value="$(eval &quot;'lidar-marker' in $(var pose_sources)&quot;)"/>
2122
<let name="use_eagleye_pose" value="$(eval &quot;'eagleye' in $(var pose_sources)&quot;)"/>
2223
<let name="use_eagleye_twist" value="$(eval &quot;'eagleye' == '$(var twist_source)'&quot;)"/>
2324
<let name="use_gyro_odom_twist" value="$(eval &quot;'gyro_odom' == '$(var twist_source)'&quot;)"/>
@@ -91,6 +92,16 @@
9192
</include>
9293
</group>
9394

95+
<!-- LiDAR Marker Localizer (as pose estimator) -->
96+
<group if="$(var use_lidar_marker_pose)">
97+
<push-ros-namespace namespace="pose_estimator"/>
98+
<!-- TODO multi_localizer_mode -->
99+
<include file="$(find-pkg-share tier4_localization_launch)/launch/pose_twist_estimator/lidar_marker_localizer.launch.xml">
100+
<arg name="lidar_container_name" value="/sensing/lidar/top/pointcloud_preprocessor/pointcloud_container"/>
101+
<arg name="input_pointcloud" value="/sensing/lidar/top/pointcloud"/>
102+
</include>
103+
</group>
104+
94105
<!-- Pose Estimator Arbiter Launch -->
95106
<group if="$(var multi_localizer_mode)">
96107
<include file="$(find-pkg-share autoware_pose_estimator_arbiter)/launch/pose_estimator_arbiter.launch.xml">

launch/tier4_localization_launch/package.xml

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
<exec_depend>autoware_ar_tag_based_localizer</exec_depend>
2222
<exec_depend>autoware_geo_pose_projector</exec_depend>
2323
<exec_depend>autoware_gyro_odometer</exec_depend>
24+
<exec_depend>autoware_lidar_marker_localizer</exec_depend>
2425
<exec_depend>autoware_pointcloud_preprocessor</exec_depend>
2526
<exec_depend>autoware_pose_estimator_arbiter</exec_depend>
2627
<exec_depend>autoware_pose_instability_detector</exec_depend>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
cmake_minimum_required(VERSION 3.14)
2+
project(autoware_lidar_marker_localizer)
3+
4+
# find dependencies
5+
find_package(autoware_cmake REQUIRED)
6+
autoware_package()
7+
8+
find_package(PCL REQUIRED COMPONENTS common io)
9+
include_directories(${PCL_INCLUDE_DIRS})
10+
link_directories(${PCL_LIBRARY_DIRS})
11+
12+
ament_auto_add_library(${PROJECT_NAME} SHARED
13+
src/lidar_marker_localizer.cpp
14+
)
15+
16+
target_link_libraries(${PROJECT_NAME}
17+
${PCL_LIBRARIES}
18+
)
19+
20+
rclcpp_components_register_node(${PROJECT_NAME}
21+
PLUGIN "autoware::lidar_marker_localizer::LidarMarkerLocalizer"
22+
EXECUTABLE ${PROJECT_NAME}_node
23+
EXECUTOR SingleThreadedExecutor
24+
)
25+
26+
27+
if(BUILD_TESTING)
28+
find_package(ament_lint_auto REQUIRED)
29+
ament_lint_auto_find_test_dependencies()
30+
endif()
31+
32+
ament_auto_package(INSTALL_TO_SHARE
33+
config
34+
launch
35+
)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
# LiDAR Marker Localizer
2+
3+
**LiDARMarkerLocalizer** is a detect-reflector-based localization node .
4+
5+
## Inputs / Outputs
6+
7+
### `lidar_marker_localizer` node
8+
9+
#### Input
10+
11+
| Name | Type | Description |
12+
| :--------------------- | :---------------------------------------------- | :--------------- |
13+
| `~/input/lanelet2_map` | `autoware_map_msgs::msg::HADMapBin` | Data of lanelet2 |
14+
| `~/input/pointcloud` | `sensor_msgs::msg::PointCloud2` | PointCloud |
15+
| `~/input/ekf_pose` | `geometry_msgs::msg::PoseWithCovarianceStamped` | EKF Pose |
16+
17+
#### Output
18+
19+
| Name | Type | Description |
20+
| :------------------------------ | :---------------------------------------------- | :----------------------------------------------------------------- |
21+
| `~/output/pose_with_covariance` | `geometry_msgs::msg::PoseWithCovarianceStamped` | Estimated pose |
22+
| `~/debug/pose_with_covariance` | `geometry_msgs::msg::PoseWithCovarianceStamped` | [debug topic] Estimated pose |
23+
| `~/debug/marker_detected` | `geometry_msgs::msg::PoseArray` | [debug topic] Detected marker poses |
24+
| `~/debug/marker_mapped` | `visualization_msgs::msg::MarkerArray` | [debug topic] Loaded landmarks to visualize in Rviz as thin boards |
25+
| `~/debug/marker_pointcloud` | `sensor_msgs::msg::PointCloud2` | [debug topic] PointCloud of the detected marker |
26+
| `/diagnostics` | `diagnostic_msgs::msg::DiagnosticArray` | Diagnostics outputs |
27+
28+
## Parameters
29+
30+
{{ json_to_markdown("localization/autoware_landmark_based_localizer/autoware_lidar_marker_localizer/schema/lidar_marker_localizer.schema.json") }}
31+
32+
## How to launch
33+
34+
When launching Autoware, set `lidar-marker` for `pose_source`.
35+
36+
```bash
37+
ros2 launch autoware_launch ... \
38+
pose_source:=lidar-marker \
39+
...
40+
```
41+
42+
## Design
43+
44+
### Flowchart
45+
46+
```plantuml
47+
@startuml
48+
49+
group main process
50+
start
51+
if (Receive a map?) then (yes)
52+
else (no)
53+
stop
54+
endif
55+
56+
:Interpolate based on the received ego-vehicle's positions to align with sensor time;
57+
58+
if (Could interpolate?) then (yes)
59+
else (no)
60+
stop
61+
endif
62+
63+
:Detect markers (see "Detection Algorithm");
64+
65+
:Calculate the distance from the ego-vehicle's positions to the nearest marker's position on the lanelet2 map;
66+
67+
if (Find markers?) then (yes)
68+
else (no)
69+
if (the distance is nearby?) then (yes)
70+
stop
71+
note : Error. It should have been able to detect marker
72+
else (no)
73+
stop
74+
note : Not Error. There are no markers around the ego-vehicle
75+
endif
76+
endif
77+
78+
:Calculate the correction amount from the ego-vehicle's position;
79+
80+
if (Is the found marker's position close to the one on the lanelet2 map?) then (yes)
81+
else (no)
82+
stop
83+
note : Detected something that isn't a marker
84+
endif
85+
86+
:Publish result;
87+
88+
stop
89+
end group
90+
91+
@enduml
92+
93+
```
94+
95+
## Detection Algorithm
96+
97+
![detection_algorithm](./doc_image/detection_algorithm.png)
98+
99+
1. Split the LiDAR point cloud into rings along the x-axis of the base_link coordinate system at intervals of the `resolution` size.
100+
2. Find the portion of intensity that matches the `intensity_pattern`.
101+
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.
102+
103+
## Sample Dataset
104+
105+
- [Sample rosbag and map](https://drive.google.com/file/d/1FuGKbkWrvL_iKmtb45PO9SZl1vAaJFVG/view?usp=sharing)
106+
107+
This dataset was acquired in National Institute for Land and Infrastructure Management, Full-scale tunnel experiment facility.
108+
The reflectors were installed by [Taisei Corporation](https://www.taisei.co.jp/english/).
109+
110+
## Collaborators
111+
112+
- [TIER IV](https://tier4.jp/en/)
113+
- [Taisei Corporation](https://www.taisei.co.jp/english/)
114+
- [Yuri Shimizu](https://github.com/YuriShimizu824)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/**:
2+
ros__parameters:
3+
4+
# marker name
5+
marker_name: "reflector"
6+
7+
# for marker detection algorithm
8+
resolution: 0.05
9+
# A sequence of high/low intensity to perform pattern matching.
10+
# 1: high intensity (positive match), 0: not consider, -1: low intensity (negative match)
11+
intensity_pattern: [-1, -1, 0, 1, 1, 1, 1, 1, 0, -1, -1]
12+
match_intensity_difference_threshold: 20
13+
positive_match_num_threshold: 3
14+
negative_match_num_threshold: 3
15+
vote_threshold_for_detect_marker: 20
16+
marker_height_from_ground: 1.075
17+
18+
# for interpolate algorithm
19+
self_pose_timeout_sec: 1.0
20+
self_pose_distance_tolerance_m: 1.0
21+
22+
# for validation
23+
limit_distance_from_self_pose_to_nearest_marker: 2.0
24+
limit_distance_from_self_pose_to_marker: 2.0
25+
26+
# base_covariance
27+
# [TBD] This value is dynamically scaled according to the distance at which markers are detected.
28+
base_covariance: [0.04, 0.0, 0.0, 0.0, 0.0, 0.0,
29+
0.0, 0.04, 0.0, 0.0, 0.0, 0.0,
30+
0.0, 0.0, 0.01, 0.0, 0.0, 0.0,
31+
0.0, 0.0, 0.0, 0.00007569, 0.0, 0.0,
32+
0.0, 0.0, 0.0, 0.0, 0.00007569, 0.0,
33+
0.0, 0.0, 0.0, 0.0, 0.0, 0.00030625]
34+
35+
# for visualize the detected marker pointcloud
36+
marker_width: 0.8
37+
38+
# for save log
39+
enable_save_log: false
40+
save_file_directory_path: detected_reflector_intensity
41+
save_file_name: detected_reflector_intensity
42+
save_frame_id: velodyne_top
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<launch>
2+
<arg name="param_file" default="$(find-pkg-share lidar_marker_localizer)/config/lidar_marker_localizer.param.yaml"/>
3+
4+
<!-- Topic names -->
5+
<arg name="input_lanelet2_map" default="~/input/lanelet2_map"/>
6+
<arg name="input_ekf_pose" default="~/input/ekf_pose"/>
7+
<arg name="input_pointcloud" default="~/input/pointcloud"/>
8+
9+
<arg name="output_pose_with_covariance" default="~/output/pose_with_covariance"/>
10+
11+
<arg name="service_trigger_node_srv" default="~/service/trigger_node_srv"/>
12+
13+
<node pkg="autoware_lidar_marker_localizer" exec="autoware_lidar_marker_localizer_node" output="both">
14+
<remap from="~/input/pointcloud" to="$(var input_pointcloud)"/>
15+
<remap from="~/input/ekf_pose" to="$(var input_ekf_pose)"/>
16+
<remap from="~/input/lanelet2_map" to="$(var input_lanelet2_map)"/>
17+
18+
<remap from="~/output/pose_with_covariance" to="$(var output_pose_with_covariance)"/>
19+
20+
<remap from="~/service/trigger_node_srv" to="$(var service_trigger_node_srv)"/>
21+
22+
<param from="$(var param_file)"/>
23+
</node>
24+
</launch>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
<?xml version="1.0"?>
2+
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
3+
<package format="3">
4+
<name>autoware_lidar_marker_localizer</name>
5+
<version>0.0.0</version>
6+
<description>The autoware_lidar_marker_localizer package</description>
7+
<maintainer email="yamato.ando@tier4.jp">Yamato Ando</maintainer>
8+
<maintainer email="shintaro.sakoda@tier4.jp">Shintaro Sakoda</maintainer>
9+
<license>Apache License 2.0</license>
10+
<author email="eijiro.takeuchi@tier4.jp">Eijiro Takeuchi</author>
11+
<author email="yamato.ando@tier4.jp">Yamato Ando</author>
12+
<author email="shintaro.sakoda@tier4.jp">Shintaro Sakoda</author>
13+
14+
<buildtool_depend>ament_cmake_auto</buildtool_depend>
15+
<buildtool_depend>autoware_cmake</buildtool_depend>
16+
17+
<depend>autoware_landmark_manager</depend>
18+
<depend>autoware_map_msgs</depend>
19+
<depend>autoware_point_types</depend>
20+
<depend>autoware_universe_utils</depend>
21+
<depend>localization_util</depend>
22+
<depend>pcl_conversions</depend>
23+
<depend>pcl_ros</depend>
24+
<depend>rclcpp</depend>
25+
<depend>rclcpp_components</depend>
26+
<depend>sensor_msgs</depend>
27+
<depend>std_srvs</depend>
28+
<depend>tf2</depend>
29+
<depend>tf2_eigen</depend>
30+
<depend>tf2_geometry_msgs</depend>
31+
<depend>tf2_ros</depend>
32+
<depend>tf2_sensor_msgs</depend>
33+
34+
<test_depend>ament_lint_auto</test_depend>
35+
<test_depend>autoware_lint_common</test_depend>
36+
37+
<export>
38+
<build_type>ament_cmake</build_type>
39+
</export>
40+
</package>

0 commit comments

Comments
 (0)