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

chore: sync tier4/autoware.universe:awf-latest #1260

Merged
merged 54 commits into from
Apr 17, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
5ff3b17
fix(lane_change): check prepare phase in intersection (#6561)
zulfaqar-azmi-t4 Apr 3, 2024
31b5a4c
fix(lane_change): fix terminal path not working in some case (#6722)
zulfaqar-azmi-t4 Apr 3, 2024
250f081
chore(goal_planner): delete unnecessary comments (#6729)
kosuke55 Apr 3, 2024
dfec62a
feat(global_parameter_loader): add gtest to global parameter loader (…
cyn-liu Apr 3, 2024
1ae7198
feat(time_synchronizer_nodelet): set input_offsets zero if it was not…
brkay54 Apr 3, 2024
d4ec8d3
refactor(object_range_splitter): rework parameters (#6705)
oguzkaganozt Apr 3, 2024
c0fcd75
feat(tier4_autoware_utils, obstacle_cruise): change to read topic by …
yuki-takagi-66 Apr 3, 2024
9735dfa
docs(perception_online_evaluator): add description about yaw rate eva…
kyoichi-sugahara Apr 4, 2024
41aab51
fix(hazard_status_converter): check current operation mode (#6733)
isamu-takagi Apr 4, 2024
f088fb4
fix(lane_change): limit prepare and lane changing length (#6734)
zulfaqar-azmi-t4 Apr 4, 2024
7d26879
feat(perception_online_evaluator): ignore reversal of orientation fro…
kosuke55 Apr 4, 2024
178841b
feat(obstacle_pointcloud_based_validator_node): skip validation when …
YoshiRi Apr 5, 2024
8046005
feat(lane_change): check prepare phase in turn direction lanes (#6726)
zulfaqar-azmi-t4 Apr 5, 2024
1eef4c0
feat(run_out): maintain run out stop wall (#6732)
danielsanchezaran Apr 5, 2024
35642a6
fix(route_handler): exception in route_handler caused by int overflow…
sebekx Apr 6, 2024
ad79997
fix(multi_object_tracker): debugger timers checks if the timer is ini…
technolojin Apr 8, 2024
52bc600
docs(mission_planner): update readme for route selector (#6576)
isamu-takagi Apr 8, 2024
1524bdd
fix(behavior_path_planner): fix behavior_path_planner node to check o…
soblin Apr 8, 2024
8617285
fix(avoidance): add update param to use rqt reconfigure (#6759)
satoshi-ota Apr 8, 2024
b98a21a
feat(avoidance): limit acceleration during avoidance maneuver (#6698)
satoshi-ota Apr 9, 2024
d682442
fix(tier4_autoware_utils): fix `-Werror=unused-parameter` (#6764)
satoshi-ota Apr 9, 2024
b09501e
feat(lane_change): use external velocity limit in safety check (#6760)
zulfaqar-azmi-t4 Apr 9, 2024
d340d10
fix(multi_object_tracker): mot timer bug fix (#6775)
technolojin Apr 9, 2024
f5c30eb
feat(multi_object_tracker): reduce publish delay (#6710)
technolojin Apr 9, 2024
094f3e6
chore(ground_segmentation): add tuning param (#6753)
badai-nguyen Apr 9, 2024
9cbd02d
fix(avoidance): bug in the logic to judge whether it's a parked vehic…
satoshi-ota Apr 9, 2024
c3b727f
fix(avoidance): fix margin param inconsistency (#6765)
satoshi-ota Apr 9, 2024
fd1a27e
fix(freespace_planning_algorithms): fix issue of astar search planner…
4swinv Apr 10, 2024
2b48d25
docs(dynamic_avoidance): fix sentence (#6782)
yuki-takagi-66 Apr 10, 2024
81c432e
chore(multi_object_tracker): change node and glog implementation (#6780)
technolojin Apr 10, 2024
9f91501
feat(fault injection): change for diagnostic graph aggregator (#6750)
KeisukeShima Apr 11, 2024
c381661
refactor(static_centerline_optimizer): admit I/F for other sources of…
takayuki5168 Apr 11, 2024
5807f7a
feat(multi_object_tracker): process modulation (#6742)
technolojin Apr 11, 2024
06bb9bd
fix(avoidance): fix invalid road bound distance calculation (#6781)
satoshi-ota Apr 11, 2024
a06122c
refactor(avoidance): rebuild parameter structure (#6786)
satoshi-ota Apr 11, 2024
e459f09
feat(static_centerline_optimizer): generate centerline from ego's tra…
takayuki5168 Apr 11, 2024
957e553
refactor(static_centerline_optimizer): clean up the code (#6794)
takayuki5168 Apr 12, 2024
8793584
docs(avoidance): use json schema (#6789)
satoshi-ota Apr 12, 2024
682a814
refactor(avoidance): unify redundant parameters (#6798)
satoshi-ota Apr 12, 2024
fd032e8
refactor(static_centerline_generator): change the package name from s…
takayuki5168 Apr 12, 2024
453d41c
fix(ground_segmentation launch): fix topic name conflict in additiona…
badai-nguyen Apr 12, 2024
9f3633d
fix(map_based_prediction): use object_buffer_time_length_ (#6772)
dkoldaev Apr 12, 2024
fae0f78
feat(start_planner): fix non-thread-safe access (#6779)
soblin Apr 12, 2024
4ff93b2
revert(lane_change): disable terminal path (#6800)
zulfaqar-azmi-t4 Apr 15, 2024
165e79d
feat(goal_planner): fix non-thread-safe access in goal_planner (#6740)
soblin Apr 15, 2024
de21d1a
revert(goal_planner): fix non-thread-safe access in goal_planner (#67…
soblin Apr 15, 2024
9544e9c
fix(intersection): detect stuck vehicle by position on detect area (#…
soblin Apr 15, 2024
d5e07a8
fix(compare_map_segmentation): add intensity field (#6807)
badai-nguyen Apr 16, 2024
729cbc6
fix(obstacle_avoidance_planner): fix mathjax visualization error (#6813)
takayuki5168 Apr 16, 2024
cf5a2ed
feat(lidar_centerpoint): output the covariance of pose and twist (#6573)
tzhong518 Apr 16, 2024
5ef5758
feat(perception_online_evaluator): add predicted path variance (#6793)
kosuke55 Apr 16, 2024
f6a734f
fix(path_smoother): fix mathjax visualization error (#6821)
takayuki5168 Apr 16, 2024
c40da9f
feat(static_centerline_generator): add script to show diff of lanelet…
takayuki5168 Apr 16, 2024
51efa6d
feat(perception_online_evaluator): better waitForDummyNode (#6827)
kosuke55 Apr 17, 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
Prev Previous commit
Next Next commit
feat(static_centerline_generator): add script to show diff of lanelet…
…2 maps (autowarefoundation#6804)

* feat(static_centerline_generator): add script to show diff of lanelet2 maps

Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com>

* fix

Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com>

* fix typo

Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com>

* update

Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com>

---------

Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com>
  • Loading branch information
takayuki5168 authored Apr 16, 2024
commit c40da9f1d312d88b13bf4a88124ac688df6d1c90
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
#!/bin/env python3

# Copyright 2024 TIER IV, Inc.
#
# 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.

import argparse
from decimal import Decimal
import os
import subprocess
import xml.etree.ElementTree as ET


def sort_attributes(root):
for shallow_element in root:
# sort nodes
attrib = shallow_element.attrib
if len(attrib) > 1:
attributes = sorted(attrib.items())
attrib.clear()
attrib.update(attributes)
if shallow_element.tag == "relation":
pass

# sort the element in the tag
for deep_element in shallow_element:
attrib = deep_element.attrib
if len(attrib) > 1:
# adjust attribute order, e.g. by sorting
attributes = sorted(attrib.items())
attrib.clear()
attrib.update(attributes)

# sort tags
sorted_shallow_element = sorted(shallow_element, key=lambda x: x.items())
if len(shallow_element) != 0:
# NOTE: This "tail" is related to the indent of the next tag
first_tail = shallow_element[0].tail
last_tail = shallow_element[-1].tail
for idx, val_shallow_element in enumerate(sorted_shallow_element):
shallow_element[idx] = val_shallow_element
if idx == len(shallow_element) - 1:
shallow_element[idx].tail = last_tail
else:
shallow_element[idx].tail = first_tail


def remove_diff_to_ignore(osm_root):
decimal_precision = 11 # for lat/lon values

# remove attributes of the osm tag
osm_root.attrib.clear()

# remove the MetaInfo tag generated by Vector Map Builder
if osm_root[0].tag == "MetaInfo":
osm_root.remove(osm_root[0])

# remove unnecessary attributes for diff
for osm_child in osm_root:
if osm_child.tag == "osm":
osm_child.attrib.pop("osm")
if "visible" in osm_child.attrib and osm_child.attrib["visible"]:
osm_child.attrib.pop("visible")
if "version" in osm_child.attrib and osm_child.attrib["version"]:
osm_child.attrib.pop("version")
if "action" in osm_child.attrib and osm_child.attrib["action"] == "modify":
osm_child.attrib.pop("action")
if "lat" in osm_child.attrib:
osm_child.attrib["lat"] = str(
Decimal(float(osm_child.attrib["lat"])).quantize(Decimal(f"1e-{decimal_precision}"))
)
if "lon" in osm_child.attrib:
osm_child.attrib["lon"] = str(
Decimal(float(osm_child.attrib["lon"])).quantize(Decimal(f"1e-{decimal_precision}"))
)


if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument(
"-s", "--sort-attributes", action="store_true", help="Sort attributes of LL2 maps"
)
parser.add_argument(
"-i",
"--ignore-minor-attributes",
action="store_true",
help="Ignore minor attributes of LL2 maps which does not change the map's behavior",
)
args = parser.parse_args()

original_osm_file_name = "/tmp/static_centerline_generator/input/lanelet2_map.osm"
modified_osm_file_name = "/tmp/static_centerline_generator/output/lanelet2_map.osm"

# load LL2 maps
original_osm_tree = ET.parse(original_osm_file_name)
original_osm_root = original_osm_tree.getroot()
modified_osm_tree = ET.parse(modified_osm_file_name)
modified_osm_root = modified_osm_tree.getroot()

# sort attributes
if args.sort_attributes:
sort_attributes(modified_osm_root)
sort_attributes(original_osm_root)

# ignore minor attributes
if args.ignore_minor_attributes:
remove_diff_to_ignore(original_osm_root)
remove_diff_to_ignore(modified_osm_root)

# write LL2 maps
output_dir_path = "/tmp/static_centerline_generator/show_lanelet2_map_diff/"
os.makedirs(output_dir_path + "original/", exist_ok=True)
os.makedirs(output_dir_path + "modified/", exist_ok=True)

original_osm_tree.write(output_dir_path + "original/lanelet2_map.osm")
modified_osm_tree.write(output_dir_path + "modified/lanelet2_map.osm")

# show diff
print("[INFO] Show diff of following LL2 maps")
print(f" {output_dir_path + 'original/lanelet2_map.osm'}")
print(f" {output_dir_path + 'modified/lanelet2_map.osm'}")
subprocess.run(
[
"diff",
output_dir_path + "original/lanelet2_map.osm",
output_dir_path + "modified/lanelet2_map.osm",
"--color",
]
)
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
#include <lanelet2_projection/UTM.h>

#include <chrono>
#include <filesystem>
#include <fstream>
#include <limits>
#include <memory>
Expand Down Expand Up @@ -336,6 +337,13 @@ CenterlineWithRoute StaticCenterlineGeneratorNode::generate_centerline_with_rout

void StaticCenterlineGeneratorNode::load_map(const std::string & lanelet2_input_file_path)
{
// copy the input LL2 map to the temporary file for debugging
const std::string debug_input_file_dir{"/tmp/static_centerline_generator/input/"};
std::filesystem::create_directories(debug_input_file_dir);
std::filesystem::copy(
lanelet2_input_file_path, debug_input_file_dir + "lanelet2_map.osm",
std::filesystem::copy_options::overwrite_existing);

// load map by the map_loader package
map_bin_ptr_ = [&]() -> HADMapBin::ConstSharedPtr {
// load map
Expand Down Expand Up @@ -635,5 +643,12 @@ void StaticCenterlineGeneratorNode::save_map(
// save map with modified center line
lanelet::write(lanelet2_output_file_path, *original_map_ptr_, *map_projector_);
RCLCPP_INFO(get_logger(), "Saved map.");

// copy the output LL2 map to the temporary file for debugging
const std::string debug_output_file_dir{"/tmp/static_centerline_generator/output/"};
std::filesystem::create_directories(debug_output_file_dir);
std::filesystem::copy(
lanelet2_output_file_path, debug_output_file_dir + "lanelet2_map.osm",
std::filesystem::copy_options::overwrite_existing);
}
} // namespace static_centerline_generator