From c21cd101d102a9be47b58734c3dc77717657a5be Mon Sep 17 00:00:00 2001 From: mitsudome-r Date: Sun, 3 Mar 2019 03:55:41 +0900 Subject: [PATCH 001/139] changed signal identifier from linkId to plId --- .../trafficlight_recognizer/lib/Context.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/ros/src/computing/perception/detection/trafficlight_recognizer/lib/Context.cpp b/ros/src/computing/perception/detection/trafficlight_recognizer/lib/Context.cpp index 22992f565b4..55226711599 100644 --- a/ros/src/computing/perception/detection/trafficlight_recognizer/lib/Context.cpp +++ b/ros/src/computing/perception/detection/trafficlight_recognizer/lib/Context.cpp @@ -22,7 +22,7 @@ Context::Context(cv::Point aRedCenter, cv::Point aYellowCenter, cv::Point aGreen bool Context::CompareContext(const Context in_context_a, const Context in_context_b) { /* if lampRadius is bigger, context is smaller */ - return in_context_a.lampRadius >= in_context_b.lampRadius; + return in_context_a.lampRadius > in_context_b.lampRadius; } /* static bool compareContext() */ @@ -35,7 +35,7 @@ void Context::SetContexts(std::vector &out_signal_contexts, std::vector signals_lamps; std::vector::iterator lamp_iterator; - std::vector lane_id_vector; + std::vector pole_id_vector; for (unsigned int i = 0; i < in_lamp_signals_positions->Signals.size(); i++) { @@ -52,18 +52,18 @@ void Context::SetContexts(std::vector &out_signal_contexts, tmp_lamp_position.plId = in_lamp_signals_positions->Signals.at(i).plId; signals_lamps.push_back(tmp_lamp_position); - lane_id_vector.push_back(tmp_lamp_position.linkId); //store lanes ids, to later identify signals contexts + pole_id_vector.push_back(tmp_lamp_position.plId); //store lanes ids, to later identify signals contexts } //get unique lane ids - std::sort(lane_id_vector.begin(), lane_id_vector.end()); - std::vector::iterator new_end = std::unique(lane_id_vector.begin(), lane_id_vector.end()); - lane_id_vector.erase(new_end, lane_id_vector.end()); + std::sort(pole_id_vector.begin(), pole_id_vector.end()); + std::vector::iterator new_end = std::unique(pole_id_vector.begin(), pole_id_vector.end()); + pole_id_vector.erase(new_end, pole_id_vector.end()); std::vector final_signal_contexts; //one traffic signal per lane, check each lane and find the bulb belonging to this lane (this signal Context) - for (unsigned int ctx_idx = 0; ctx_idx < lane_id_vector.size(); ctx_idx++) + for (unsigned int ctx_idx = 0; ctx_idx < pole_id_vector.size(); ctx_idx++) { Context current_signal_context; int min_radius = INT_MAX; @@ -83,7 +83,7 @@ void Context::SetContexts(std::vector &out_signal_contexts, double map_y = lamp_iterator->y; double map_z = lamp_iterator->z; int radius = lamp_iterator->radius; - if (lamp_iterator->linkId == lane_id_vector.at(ctx_idx) && + if (lamp_iterator->plId == pole_id_vector.at(ctx_idx) && 0 < img_x - radius - 1.5 * radius && img_x + radius + 1.5 * radius < in_image_width && 0 < img_y - radius - 1.5 * radius && img_y + radius + 1.5 * radius < in_image_height) { From b1fb634bf8413ed1a27c3f6b40a11b1556bd5f78 Mon Sep 17 00:00:00 2001 From: dimethylether Date: Wed, 6 Mar 2019 08:28:16 -0600 Subject: [PATCH 002/139] fix calibration publisher in runtime manager --- .../packages/runtime_manager/scripts/runtime_manager_dialog.py | 1 + 1 file changed, 1 insertion(+) diff --git a/ros/src/util/packages/runtime_manager/scripts/runtime_manager_dialog.py b/ros/src/util/packages/runtime_manager/scripts/runtime_manager_dialog.py index 5431991ac40..9fc0d945d32 100755 --- a/ros/src/util/packages/runtime_manager/scripts/runtime_manager_dialog.py +++ b/ros/src/util/packages/runtime_manager/scripts/runtime_manager_dialog.py @@ -1266,6 +1266,7 @@ def OnCalibrationPublisher(self, event): for cam_id in ids: (pdic_a, gdic_a, _) = self.name_to_pdic_gdic_prm(cam_id) pdic = pdic_a if pdic_a else self.load_dic_pdic_setup(cam_id, {}) + pdic['camera_id'] = cam_id pdic_baks[cam_id] = pdic.copy() gdic = gdic_a if gdic_a else gdic_org.copy() gdic['flags'] = flags From e38de7f29a7dddd445183619ed8ffc3652541168 Mon Sep 17 00:00:00 2001 From: Isamu Takagi Date: Thu, 21 Feb 2019 23:18:29 +0900 Subject: [PATCH 003/139] Add prototype of plugin file editor --- .../src/autoware_launcher/tool/editor.py | 163 ++---------------- 1 file changed, 17 insertions(+), 146 deletions(-) diff --git a/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py b/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py index 99f03a6551a..c06d4c38785 100644 --- a/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py +++ b/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py @@ -1,157 +1,28 @@ -from autoware_launcher.core import plugin -from autoware_launcher.core import myutils +#import xml.etree.ElementTree as xmltree + +import rospkg from python_qt_binding import QtCore from python_qt_binding import QtWidgets -import argparse -import collections -import re -import rospkg -import yaml -import xml.etree.ElementTree as xtree - - -def represent_ordered_dict(dumper, instance): - return dumper.represent_mapping('tag:yaml.org,2002:map', instance.items()) -yaml.add_representer(collections.OrderedDict, represent_ordered_dict) - def main(sys_argv): - if len(sys_argv) < 2: - print("missing plugin file path") - return 2 application = QtWidgets.QApplication(sys_argv) - widget = PluginEditWidget() - ynode = plugin.AwPluginNode(None, sys_argv[1]) - ynode.load(myutils.package("plugins")) - xnode = load_launch_xml(ynode.rosxml()) - - fields = [PluginEditField(child.attrib) for child in xnode if child.tag == "arg"] - for field in fields: widget.add_field(field) - widget.add_button() - for field in ynode.args(): widget.set_yaml(field) + rospack = rospkg.RosPack() + combo = QtWidgets.QComboBox() + for package in sorted(rospack.list()): + combo.addItem(package) + combo.setEditable(True) + combo.setCurrentIndex(combo.findText("autoware_launcher")) + + widget = QtWidgets.QWidget() + widget.setLayout(QtWidgets.QHBoxLayout()) + widget.layout().addWidget(QtWidgets.QLabel("Package")) + widget.layout().addWidget(combo) + widget.layout().addWidget(QtWidgets.QLabel("File")) + widget.layout().addWidget(QtWidgets.QLineEdit()) + widget.layout().addWidget(QtWidgets.QPushButton()) widget.show() return application.exec_() - - -def load_launch_xml(rosxml): - - rospack = rospkg.RosPack() - regex = re.compile("\$\(find (.*?)\)") - match = regex.match(rosxml) - xpath = regex.sub(rospack.get_path(match.group(1)), rosxml) - return xtree.parse(xpath).getroot() - - -class PluginEditWidget(QtWidgets.QWidget): - - header = ["Field Name", "Field Type", "Array Type", "Default Value"] - - def __init__(self): - - super(PluginEditWidget, self).__init__() - self.fields = collections.OrderedDict() - self.setLayout(QtWidgets.QGridLayout()) - for col,text in enumerate(PluginEditWidget.header): - self.layout().addWidget(QtWidgets.QLabel(text), 0, col) - self.export = QtWidgets.QPushButton("Export") - self.export.clicked.connect(self.export_yaml) - - def add_field(self, field): - - row = self.layout().rowCount() - self.layout().addWidget(field.name, row, 0) - self.layout().addWidget(field.type, row, 1) - self.layout().addWidget(field.list, row, 2) - self.layout().addWidget(field.default, row, 3) - self.fields[field.name.text()] = field - - def add_button(self): - - row = self.layout().rowCount() - self.layout().addWidget(self.export, row, 0, 1, 4) - - def set_yaml(self, data): - - self.fields[data.name].set_yaml(data) - - def export_yaml(self): - - views = [field.export_view() for field in self.fields.values()] - fields = [field.export_dict() for field in self.fields.values()] - data = collections.OrderedDict() - data["args"] = fields - data["panel"] = collections.OrderedDict() - data["panel"]["widget"] = "node.panel" - data["panel"]["frames"] = views - text = yaml.dump(data, default_flow_style=None) - print(text) - clipboard = QtWidgets.QApplication.clipboard() - clipboard.setText(text) - - -class PluginEditField(object): - - viewtypes = {"str":"text", "int":"int", "real":"real", "bool":"bool"} - - def __init__(self, attr): - - self.name = QtWidgets.QLabel() - self.type = QtWidgets.QComboBox() - self.list = QtWidgets.QComboBox() - self.default = QtWidgets.QLineEdit() - - self.name.setText(attr["name"]) - self.type.addItems(["str", "int", "real", "bool"]) - self.list.addItems(["none", "space", "yaml"]) - self.default.setText(attr.get("default")) - - self.type.setCurrentIndex(-1) - if attr.get("default"): - itype = self.type_inference(attr["default"]) - self.type.setCurrentIndex(self.type.findText(itype)) - - def type_inference(self, value): - - if value.lower() in ["true", "false"]: return "bool" - if value.isdigit(): return "int" - if value.replace('.','',1).isdigit(): return "real" - return "str" - - def set_yaml(self, data): - - self.type.setCurrentIndex(self.type.findText(data.type)) - if data.list: - self.list.setCurrentIndex(self.list.findText(data.list)) - if data.rest.get("default"): - self.default.setText(str(data.rest["default"])) - - def export_dict(self): - - data = collections.OrderedDict() - data["name"] = str(self.name.text()) - data["type"] = str(self.type.currentText()) - if self.list.currentText() != "none": - data["list"] = str(self.list.currentText()) - if self.default.text(): - data["default"] = self.export_default(data, self.default.text()) - return data - - def export_default(self, data, value): - - if data.get("list") is None: - if data["type"] == "str" : return str(value) - if data["type"] == "int" : return int(value) - if data["type"] == "real": return float(value) - if data["type"] == "bool": return (value.lower() == "true") - raise NotImplementedError("Unkown Type: " + str(data)) - - def export_view(self): - - data = collections.OrderedDict() - data["target"] = "args." + str(self.name.text()) - data["widget"] = "basic." + PluginEditField.viewtypes[self.type.currentText()] - return data \ No newline at end of file From d03ecd2472bec5b507ef6262353183acba1c81aa Mon Sep 17 00:00:00 2001 From: Isamu Takagi Date: Tue, 26 Feb 2019 15:24:42 +0900 Subject: [PATCH 004/139] Change logger level --- ros/src/util/packages/autoware_launcher/scripts/main | 9 +-------- .../src/autoware_launcher/gui/guimgr.py | 12 +++++++----- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/ros/src/util/packages/autoware_launcher/scripts/main b/ros/src/util/packages/autoware_launcher/scripts/main index 7efb1b5ed47..3976c95a727 100755 --- a/ros/src/util/packages/autoware_launcher/scripts/main +++ b/ros/src/util/packages/autoware_launcher/scripts/main @@ -7,14 +7,7 @@ import argparse from autoware_launcher.core import AwLaunchServer from autoware_launcher.gui import AwQtGuiClient -parser = argparse.ArgumentParser(description='Autoware Launcher') -parser.add_argument("-v", "--verbose", dest="verbose", action="store_true", help="show debug log message") -parser.add_argument("-p", "--profile", dest="profile", action="store", help="name of profile") -parser.add_argument("-s", "--skin", dest="skin", action="store", help="name of style sheet") -args = parser.parse_args() - -loglevel = logging.INFO if not args.verbose else logging.DEBUG -logging.basicConfig(level=loglevel, format="%(levelname)-5s: %(name)s: %(message)s") +logging.basicConfig(level=logging.INFO, format="%(levelname)-5s: %(name)s: %(message)s") server = AwLaunchServer(sys.argv) client = AwQtGuiClient(sys.argv, server) diff --git a/ros/src/util/packages/autoware_launcher/src/autoware_launcher/gui/guimgr.py b/ros/src/util/packages/autoware_launcher/src/autoware_launcher/gui/guimgr.py index 60d73cfada2..4db24ac8ebd 100644 --- a/ros/src/util/packages/autoware_launcher/src/autoware_launcher/gui/guimgr.py +++ b/ros/src/util/packages/autoware_launcher/src/autoware_launcher/gui/guimgr.py @@ -19,11 +19,13 @@ def __init__(self, client): self.__client = client self.__widgets = {} - import autoware_launcher.gui.plugins as plugins - for modkey, modcls in plugins.modules.items(): - for guikey, guicls in modcls.plugin_widgets().items(): - logger.debug("load plugin module: " + modkey + "." + guikey) - self.__widgets[modkey + "." + guikey] = guicls + for filepath in os.listdir(myutils.package("src/autoware_launcher/gui/plugins")): + fkey, fext = os.path.splitext(os.path.basename(filepath)) + if (fkey != "__init__") and (fext == ".py"): + logger.debug("load plugin module: " + fkey) + module = importlib.import_module("autoware_launcher.gui.plugins." + fkey) + for wkey, wcls in module.plugin_widgets().items(): + self.__widgets[fkey + "." + wkey] = wcls def client(self): return self.__client From 4edd5a73d2242b60a7ae1d72abd9b3c9dec71ab0 Mon Sep 17 00:00:00 2001 From: Isamu Takagi Date: Tue, 26 Feb 2019 16:14:35 +0900 Subject: [PATCH 005/139] Support command line options --- ros/src/util/packages/autoware_launcher/scripts/main | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/ros/src/util/packages/autoware_launcher/scripts/main b/ros/src/util/packages/autoware_launcher/scripts/main index 3976c95a727..d00692af767 100755 --- a/ros/src/util/packages/autoware_launcher/scripts/main +++ b/ros/src/util/packages/autoware_launcher/scripts/main @@ -7,7 +7,15 @@ import argparse from autoware_launcher.core import AwLaunchServer from autoware_launcher.gui import AwQtGuiClient -logging.basicConfig(level=logging.INFO, format="%(levelname)-5s: %(name)s: %(message)s") +parser = argparse.ArgumentParser(description='Autoware Launcher') +parser.add_argument("-v", "--verbose", dest="verbose", action="store_true", help="show debug log message") +parser.add_argument("-p", "--profile", dest="profile", action="store", help="name of profile") +parser.add_argument("-s", "--skin", dest="skin", action="store", help="name of style sheet") +args = parser.parse_args() + +loglevel = logging.INFO if not args.verbose else logging.DEBUG +logging.basicConfig(level=loglevel, format="%(levelname)-5s: %(name)s: %(message)s") + server = AwLaunchServer(sys.argv) client = AwQtGuiClient(sys.argv, server) From b98bcc39978f8cf375a796d72892e671d38cbce1 Mon Sep 17 00:00:00 2001 From: Isamu Takagi Date: Tue, 26 Feb 2019 19:03:33 +0900 Subject: [PATCH 006/139] Update gazebo simulator panel --- ros/src/util/packages/autoware_launcher/scripts/main | 1 - 1 file changed, 1 deletion(-) diff --git a/ros/src/util/packages/autoware_launcher/scripts/main b/ros/src/util/packages/autoware_launcher/scripts/main index d00692af767..7efb1b5ed47 100755 --- a/ros/src/util/packages/autoware_launcher/scripts/main +++ b/ros/src/util/packages/autoware_launcher/scripts/main @@ -16,7 +16,6 @@ args = parser.parse_args() loglevel = logging.INFO if not args.verbose else logging.DEBUG logging.basicConfig(level=loglevel, format="%(levelname)-5s: %(name)s: %(message)s") - server = AwLaunchServer(sys.argv) client = AwQtGuiClient(sys.argv, server) sys.exit(client.start(profile=args.profile, skin=args.skin)) From 43791a3a334a7d6f6a8a98e9f9fc316e24be72a5 Mon Sep 17 00:00:00 2001 From: Isamu Takagi Date: Fri, 1 Mar 2019 17:29:21 +0900 Subject: [PATCH 007/139] Add plugin edit tool and update plugins --- .../src/autoware_launcher/tool/editor.py | 163 ++++++++++++++++-- .../src/autoware_launcher/tool/wizard.py | 2 +- .../autoware_launcher/tests/test_plugins.py | 2 +- 3 files changed, 148 insertions(+), 19 deletions(-) diff --git a/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py b/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py index c06d4c38785..c691b1543a6 100644 --- a/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py +++ b/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py @@ -1,28 +1,157 @@ -#import xml.etree.ElementTree as xmltree - -import rospkg +from autoware_launcher.core import plugin +from autoware_launcher.core import myutils from python_qt_binding import QtCore from python_qt_binding import QtWidgets +import argparse +import collections +import re +import rospkg +import yaml +import xml.etree.ElementTree as xtree + + +def represent_ordered_dict(dumper, instance): + return dumper.represent_mapping('tag:yaml.org,2002:map', instance.items()) +yaml.add_representer(collections.OrderedDict, represent_ordered_dict) + def main(sys_argv): + if len(sys_argv) < 2: + print("missing plugin file path") + return 2 application = QtWidgets.QApplication(sys_argv) + widget = PluginEditWidget() + ynode = plugin.AwPluginNode(None, sys_argv[1]) + ynode.load(myutils.package("plugins")) + xnode = load_launch_xml(ynode.rosxml()) + + fields = [PluginEditField(child.attrib) for child in xnode if child.tag == "arg"] + for field in fields: widget.add_field(field) + widget.add_button() + for field in ynode.args(): widget.set_yaml(field) - rospack = rospkg.RosPack() - combo = QtWidgets.QComboBox() - for package in sorted(rospack.list()): - combo.addItem(package) - combo.setEditable(True) - combo.setCurrentIndex(combo.findText("autoware_launcher")) - - widget = QtWidgets.QWidget() - widget.setLayout(QtWidgets.QHBoxLayout()) - widget.layout().addWidget(QtWidgets.QLabel("Package")) - widget.layout().addWidget(combo) - widget.layout().addWidget(QtWidgets.QLabel("File")) - widget.layout().addWidget(QtWidgets.QLineEdit()) - widget.layout().addWidget(QtWidgets.QPushButton()) widget.show() return application.exec_() + + +def load_launch_xml(rosxml): + + rospack = rospkg.RosPack() + regex = re.compile("\$\(find (.*?)\)") + match = regex.match(rosxml) + xpath = regex.sub(rospack.get_path(match.group(1)), rosxml) + return xtree.parse(xpath).getroot() + + +class PluginEditWidget(QtWidgets.QWidget): + + header = ["Field Name", "Field Type", "Array Type", "Default Value"] + + def __init__(self): + + super(PluginEditWidget, self).__init__() + self.fields = collections.OrderedDict() + self.setLayout(QtWidgets.QGridLayout()) + for col,text in enumerate(PluginEditWidget.header): + self.layout().addWidget(QtWidgets.QLabel(text), 0, col) + self.export = QtWidgets.QPushButton("Export") + self.export.clicked.connect(self.export_yaml) + + def add_field(self, field): + + row = self.layout().rowCount() + self.layout().addWidget(field.name, row, 0) + self.layout().addWidget(field.type, row, 1) + self.layout().addWidget(field.list, row, 2) + self.layout().addWidget(field.default, row, 3) + self.fields[field.name.text()] = field + + def add_button(self): + + row = self.layout().rowCount() + self.layout().addWidget(self.export, row, 0, 1, 4) + + def set_yaml(self, data): + + self.fields[data.name].set_yaml(data) + + def export_yaml(self): + + views = [field.export_view() for field in self.fields.values()] + fields = [field.export_dict() for field in self.fields.values()] + data = collections.OrderedDict() + data["args"] = fields + data["panel"] = collections.OrderedDict() + data["panel"]["widget"] = "node.panel" + data["panel"]["frames"] = views + text = yaml.dump(data, default_flow_style=None) + print text + clipboard = QtWidgets.QApplication.clipboard() + clipboard.setText(text) + + +class PluginEditField(object): + + viewtypes = {"str":"text", "int":"int", "real":"real", "bool":"bool"} + + def __init__(self, attr): + + self.name = QtWidgets.QLabel() + self.type = QtWidgets.QComboBox() + self.list = QtWidgets.QComboBox() + self.default = QtWidgets.QLineEdit() + + self.name.setText(attr["name"]) + self.type.addItems(["str", "int", "real", "bool"]) + self.list.addItems(["none", "space", "yaml"]) + self.default.setText(attr.get("default")) + + self.type.setCurrentIndex(-1) + if attr.get("default"): + itype = self.type_inference(attr["default"]) + self.type.setCurrentIndex(self.type.findText(itype)) + + def type_inference(self, value): + + if value.lower() in ["true", "false"]: return "bool" + if value.isdigit(): return "int" + if value.replace('.','',1).isdigit(): return "real" + return "str" + + def set_yaml(self, data): + + self.type.setCurrentIndex(self.type.findText(data.type)) + if data.list: + self.list.setCurrentIndex(self.list.findText(data.list)) + if data.rest.get("default"): + self.default.setText(str(data.rest["default"])) + + def export_dict(self): + + data = collections.OrderedDict() + data["name"] = str(self.name.text()) + data["type"] = str(self.type.currentText()) + if self.list.currentText() != "none": + data["list"] = str(self.list.currentText()) + if self.default.text(): + data["default"] = self.export_default(data, self.default.text()) + return data + + def export_default(self, data, value): + + if data.get("list") is None: + if data["type"] == "str" : return str(value) + if data["type"] == "int" : return int(value) + if data["type"] == "real": return float(value) + if data["type"] == "bool": return (value.lower() == "true") + raise NotImplementedError("Unkown Type: " + str(data)) + + def export_view(self): + + data = collections.OrderedDict() + data["target"] = "args." + str(self.name.text()) + data["widget"] = "basic." + PluginEditField.viewtypes[self.type.currentText()] + return data \ No newline at end of file diff --git a/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/wizard.py b/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/wizard.py index 88358720b82..945cf14c9bf 100644 --- a/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/wizard.py +++ b/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/wizard.py @@ -57,4 +57,4 @@ def package_updated(self, pkgname): if self.pkgname != pkgname: self.pkgname = pkgname pkgpath = self.rospack.get_path(pkgname) - print("Update: " + pkgpath) \ No newline at end of file + print("Update: " + pkgpath) diff --git a/ros/src/util/packages/autoware_launcher/tests/test_plugins.py b/ros/src/util/packages/autoware_launcher/tests/test_plugins.py index 4663aa7b131..c441fa58872 100644 --- a/ros/src/util/packages/autoware_launcher/tests/test_plugins.py +++ b/ros/src/util/packages/autoware_launcher/tests/test_plugins.py @@ -36,4 +36,4 @@ def test_plugin_field(): print(ymlargs) print(xmlargs) except: - print(result.group(1) + " is not built") \ No newline at end of file + print(result.group(1) + " is not built") From a865a08b9ec023856b546ebbf14e8c227f628d7f Mon Sep 17 00:00:00 2001 From: Isamu Takagi Date: Sun, 3 Mar 2019 16:52:21 +0900 Subject: [PATCH 008/139] Update the code for compatibility with python3 --- .../autoware_launcher/src/autoware_launcher/tool/editor.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py b/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py index c691b1543a6..99f03a6551a 100644 --- a/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py +++ b/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py @@ -88,7 +88,7 @@ def export_yaml(self): data["panel"]["widget"] = "node.panel" data["panel"]["frames"] = views text = yaml.dump(data, default_flow_style=None) - print text + print(text) clipboard = QtWidgets.QApplication.clipboard() clipboard.setText(text) From 5c2270b77ed491b5cb73cd73c5ef7581f9638f41 Mon Sep 17 00:00:00 2001 From: Isamu Takagi Date: Sun, 3 Mar 2019 18:39:01 +0900 Subject: [PATCH 009/139] Update the code for colcon build --- .../src/autoware_launcher/gui/guimgr.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/ros/src/util/packages/autoware_launcher/src/autoware_launcher/gui/guimgr.py b/ros/src/util/packages/autoware_launcher/src/autoware_launcher/gui/guimgr.py index 4db24ac8ebd..60d73cfada2 100644 --- a/ros/src/util/packages/autoware_launcher/src/autoware_launcher/gui/guimgr.py +++ b/ros/src/util/packages/autoware_launcher/src/autoware_launcher/gui/guimgr.py @@ -19,13 +19,11 @@ def __init__(self, client): self.__client = client self.__widgets = {} - for filepath in os.listdir(myutils.package("src/autoware_launcher/gui/plugins")): - fkey, fext = os.path.splitext(os.path.basename(filepath)) - if (fkey != "__init__") and (fext == ".py"): - logger.debug("load plugin module: " + fkey) - module = importlib.import_module("autoware_launcher.gui.plugins." + fkey) - for wkey, wcls in module.plugin_widgets().items(): - self.__widgets[fkey + "." + wkey] = wcls + import autoware_launcher.gui.plugins as plugins + for modkey, modcls in plugins.modules.items(): + for guikey, guicls in modcls.plugin_widgets().items(): + logger.debug("load plugin module: " + modkey + "." + guikey) + self.__widgets[modkey + "." + guikey] = guicls def client(self): return self.__client From bebfc881352e607c054a654bfd8278266bfb6099 Mon Sep 17 00:00:00 2001 From: dimethylether Date: Mon, 4 Mar 2019 12:32:28 +0900 Subject: [PATCH 010/139] updated plugin for lane_rule, lane_stop, and voxel_grid_filter --- .../plugins/leaf/lane_stop.xml | 30 ++++++++----------- 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/ros/src/util/packages/autoware_launcher/plugins/leaf/lane_stop.xml b/ros/src/util/packages/autoware_launcher/plugins/leaf/lane_stop.xml index 070517f7453..d19954f3ddb 100644 --- a/ros/src/util/packages/autoware_launcher/plugins/leaf/lane_stop.xml +++ b/ros/src/util/packages/autoware_launcher/plugins/leaf/lane_stop.xml @@ -1,29 +1,23 @@ - + - + - + - + + From 0a9ac7077ae1088ae00d1e254acdc92c2ca8949b Mon Sep 17 00:00:00 2001 From: dimethylether Date: Tue, 5 Mar 2019 06:37:30 -0600 Subject: [PATCH 011/139] added avt_vimba_mako plugins --- .../plugins/driver/camera/avt_vimba_mako.xml | 6 +++ .../plugins/driver/camera/avt_vimba_mako.yaml | 34 +++++++++++++++ .../plugins/node/camera_node.yaml | 4 +- .../scripts/avt_camera_script.launch | 41 +++++++++++++++++++ 4 files changed, 83 insertions(+), 2 deletions(-) create mode 100644 ros/src/util/packages/autoware_launcher/plugins/driver/camera/avt_vimba_mako.xml create mode 100644 ros/src/util/packages/autoware_launcher/plugins/driver/camera/avt_vimba_mako.yaml create mode 100644 ros/src/util/packages/runtime_manager/scripts/avt_camera_script.launch diff --git a/ros/src/util/packages/autoware_launcher/plugins/driver/camera/avt_vimba_mako.xml b/ros/src/util/packages/autoware_launcher/plugins/driver/camera/avt_vimba_mako.xml new file mode 100644 index 00000000000..da7a45d2081 --- /dev/null +++ b/ros/src/util/packages/autoware_launcher/plugins/driver/camera/avt_vimba_mako.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/ros/src/util/packages/autoware_launcher/plugins/driver/camera/avt_vimba_mako.yaml b/ros/src/util/packages/autoware_launcher/plugins/driver/camera/avt_vimba_mako.yaml new file mode 100644 index 00000000000..222e60a25ca --- /dev/null +++ b/ros/src/util/packages/autoware_launcher/plugins/driver/camera/avt_vimba_mako.yaml @@ -0,0 +1,34 @@ +format: Autoware Launcher Plugin Version 0.1 +rosxml: $(find runtime_manager)/scripts/avt_camera_script.launch +args: +- {name: guid, type: str} +- {name: ip, type: str} +- {name: camera_info_url, type: str} +- {name: frame_id, type: str, default: avt_camera} +- {name: show_debug_prints, type: bool, default: true} +- {name: acquisition_rate, type: int, default: 20} +- {name: pixel_format, type: str, default: BayerRG8} +- {name: exposure, type: int, default: 10000} +- {name: gain, type: int, default: 15} +- {name: exposure_auto, type: str, default: Continuous} +- {name: gain_auto, type: str, default: Continuous} +- {name: whitebalance_auto, type: str, default: Continuous} +- {name: exposure_auto_max, type: int, default: 50000} +- {name: gain_auto_max, type: int, default: 50} +panel: + widget: node.panel + frames: + - {target: args.guid, widget: basic.text} + - {target: args.ip, widget: basic.text} + - {target: args.camera_info_url, widget: basic.text} + - {target: args.frame_id, widget: basic.text} + - {target: args.show_debug_prints, widget: basic.bool} + - {target: args.acquisition_rate, widget: basic.int} + - {target: args.pixel_format, widget: basic.text} + - {target: args.exposure, widget: basic.int} + - {target: args.gain, widget: basic.int} + - {target: args.exposure_auto, widget: basic.text} + - {target: args.gain_auto, widget: basic.text} + - {target: args.whitebalance_auto, widget: basic.text} + - {target: args.exposure_auto_max, widget: basic.int} + - {target: args.gain_auto_max, widget: basic.int} diff --git a/ros/src/util/packages/autoware_launcher/plugins/node/camera_node.yaml b/ros/src/util/packages/autoware_launcher/plugins/node/camera_node.yaml index 1b0601f01e8..f2f11991601 100644 --- a/ros/src/util/packages/autoware_launcher/plugins/node/camera_node.yaml +++ b/ros/src/util/packages/autoware_launcher/plugins/node/camera_node.yaml @@ -1,4 +1,4 @@ format: Autoware Launcher Plugin Version 0.1 rules: -- { name: driver, plugin: { scan: driver/camera } } -- { name: calibration, plugin: leaf/calibration } \ No newline at end of file +- { name: driver, plugin: [scan: driver/camera, driver/avt_vimba_mako ] } +- { name: calibration, plugin: leaf/calibration } diff --git a/ros/src/util/packages/runtime_manager/scripts/avt_camera_script.launch b/ros/src/util/packages/runtime_manager/scripts/avt_camera_script.launch new file mode 100644 index 00000000000..e32861ab4e6 --- /dev/null +++ b/ros/src/util/packages/runtime_manager/scripts/avt_camera_script.launch @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From dcf897e84b977320ee38cd07e93724f7bee346eb Mon Sep 17 00:00:00 2001 From: dimethylether Date: Tue, 5 Mar 2019 06:46:49 -0600 Subject: [PATCH 012/139] added wayarea2grid plugin --- .../plugins/node/detect_obj.yaml | 3 ++- .../plugins/refs/wayarea2grid.yaml | 20 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 ros/src/util/packages/autoware_launcher/plugins/refs/wayarea2grid.yaml diff --git a/ros/src/util/packages/autoware_launcher/plugins/node/detect_obj.yaml b/ros/src/util/packages/autoware_launcher/plugins/node/detect_obj.yaml index bd7c8703ad5..7dbb4c0cedb 100644 --- a/ros/src/util/packages/autoware_launcher/plugins/node/detect_obj.yaml +++ b/ros/src/util/packages/autoware_launcher/plugins/node/detect_obj.yaml @@ -1,7 +1,8 @@ format: Autoware Launcher Plugin Version 0.1 rules: - { name: points_preproc, plugin: refs/ray_ground_filter } +- { name: wayarea2grid, plugin: refs/wayarea2grid } - { name: points_detect, plugin: refs/euclidean_cluster } - { name: images_detect, plugin: refs/yolov3 } - { name: fusion, plugin: refs/range_vision_fusion } -- { name: tracking, plugin: refs/imm_ukf_pda_track } \ No newline at end of file +- { name: tracking, plugin: refs/imm_ukf_pda_track } diff --git a/ros/src/util/packages/autoware_launcher/plugins/refs/wayarea2grid.yaml b/ros/src/util/packages/autoware_launcher/plugins/refs/wayarea2grid.yaml new file mode 100644 index 00000000000..9a26604747b --- /dev/null +++ b/ros/src/util/packages/autoware_launcher/plugins/refs/wayarea2grid.yaml @@ -0,0 +1,20 @@ +format: Autoware Launcher Plugin Version 0.1 +rosxml: $(find object_map)/launch/wayarea2grid.launch +args: +- {name: sensor_frame, type: str, default: velodyne} +- {name: grid_frame, type: str, default: map} +- {name: grid_resolution, type: real, default: 0.3} +- {name: grid_length_x, type: int, default: 150} +- {name: grid_length_y, type: int, default: 150} +- {name: grid_position_x, type: int, default: 0} +- {name: grid_position_y, type: int, default: 0} +panel: + widget: node.panel + frames: + - {target: args.sensor_frame, widget: basic.text} + - {target: args.grid_frame, widget: basic.text} + - {target: args.grid_resolution, widget: basic.real} + - {target: args.grid_length_x, widget: basic.int} + - {target: args.grid_length_y, widget: basic.int} + - {target: args.grid_position_x, widget: basic.int} + - {target: args.grid_position_y, widget: basic.int} From 3f0a0c014b5cfbd2beb46e887aecb562b96bcb77 Mon Sep 17 00:00:00 2001 From: dimethylether Date: Tue, 5 Mar 2019 07:06:51 -0600 Subject: [PATCH 013/139] removed unnecessary xml --- .../plugins/driver/camera/avt_vimba_mako.xml | 6 ------ .../autoware_launcher/plugins/node/camera_node.yaml | 2 +- 2 files changed, 1 insertion(+), 7 deletions(-) delete mode 100644 ros/src/util/packages/autoware_launcher/plugins/driver/camera/avt_vimba_mako.xml diff --git a/ros/src/util/packages/autoware_launcher/plugins/driver/camera/avt_vimba_mako.xml b/ros/src/util/packages/autoware_launcher/plugins/driver/camera/avt_vimba_mako.xml deleted file mode 100644 index da7a45d2081..00000000000 --- a/ros/src/util/packages/autoware_launcher/plugins/driver/camera/avt_vimba_mako.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/ros/src/util/packages/autoware_launcher/plugins/node/camera_node.yaml b/ros/src/util/packages/autoware_launcher/plugins/node/camera_node.yaml index f2f11991601..3dfe6de9d34 100644 --- a/ros/src/util/packages/autoware_launcher/plugins/node/camera_node.yaml +++ b/ros/src/util/packages/autoware_launcher/plugins/node/camera_node.yaml @@ -1,4 +1,4 @@ format: Autoware Launcher Plugin Version 0.1 rules: -- { name: driver, plugin: [scan: driver/camera, driver/avt_vimba_mako ] } +- { name: driver, plugin: [scan: driver/camera, scan: driver/avt_vimba_mako ] } - { name: calibration, plugin: leaf/calibration } From ae7d05151ab566c6f9acea1c5242bfdcc96ecabe Mon Sep 17 00:00:00 2001 From: dimethylether Date: Tue, 5 Mar 2019 07:26:23 -0600 Subject: [PATCH 014/139] added ssc_interface plugin --- .../plugins/node/motion.yaml | 3 ++- .../plugins/refs/ssc_interface.yaml | 24 +++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 ros/src/util/packages/autoware_launcher/plugins/refs/ssc_interface.yaml diff --git a/ros/src/util/packages/autoware_launcher/plugins/node/motion.yaml b/ros/src/util/packages/autoware_launcher/plugins/node/motion.yaml index b6741866828..0dc9667e95c 100644 --- a/ros/src/util/packages/autoware_launcher/plugins/node/motion.yaml +++ b/ros/src/util/packages/autoware_launcher/plugins/node/motion.yaml @@ -4,4 +4,5 @@ rules: - { name: velocity_set, plugin: refs/velocity_set } - { name: waypoint_loader, plugin: leaf/waypoint_loader } - { name: pure_pursuit, plugin: leaf/pure_pursuit } -- { name: twist_filter, plugin: refs/twist_filter } \ No newline at end of file +- { name: twist_filter, plugin: refs/twist_filter } +- { name: ssc_interface, plugin: refs/ssc_interface} diff --git a/ros/src/util/packages/autoware_launcher/plugins/refs/ssc_interface.yaml b/ros/src/util/packages/autoware_launcher/plugins/refs/ssc_interface.yaml new file mode 100644 index 00000000000..87d4578d90f --- /dev/null +++ b/ros/src/util/packages/autoware_launcher/plugins/refs/ssc_interface.yaml @@ -0,0 +1,24 @@ +format: Autoware Launcher Plugin Version 0.1 +rosxml: $(find as)/launch/ssc_interface.launch +args: +- {name: use_rear_wheel_speed, type: bool, default: true} +- {name: use_adaptive_gear_ratio, type: bool, default: true} +- {name: command_timeout, type: int, default: 1000} +- {name: loop_rate, type: real, default: 30.0} +- {name: wheel_base, type: real, default: 2.79} +- {name: tire_radius, type: real, default: 0.39} +- {name: acceleration_limit, type: real, default: 3.0} +- {name: deceleration_limit, type: real, default: 6.0} +- {name: max_curvature_rate, type: real, default: 0.75} +panel: + widget: node.panel + frames: + - {target: args.use_rear_wheel_speed, widget: basic.bool} + - {target: args.use_adaptive_gear_ratio, widget: basic.bool} + - {target: args.command_timeout, widget: basic.int} + - {target: args.loop_rate, widget: basic.real} + - {target: args.wheel_base, widget: basic.real} + - {target: args.tire_radius, widget: basic.real} + - {target: args.acceleration_limit, widget: basic.real} + - {target: args.deceleration_limit, widget: basic.real} + - {target: args.max_curvature_rate, widget: basic.real} From a34e71f99b4a8097dd88d63870be673187402c0f Mon Sep 17 00:00:00 2001 From: dimethylether Date: Tue, 5 Mar 2019 07:42:08 -0600 Subject: [PATCH 015/139] fixed lane_stop.xml --- .../plugins/leaf/lane_stop.xml | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/ros/src/util/packages/autoware_launcher/plugins/leaf/lane_stop.xml b/ros/src/util/packages/autoware_launcher/plugins/leaf/lane_stop.xml index d19954f3ddb..b3be15d70a7 100644 --- a/ros/src/util/packages/autoware_launcher/plugins/leaf/lane_stop.xml +++ b/ros/src/util/packages/autoware_launcher/plugins/leaf/lane_stop.xml @@ -3,21 +3,25 @@ - + - + - - - From cf7b735fea3c06b76724cda260d755a5f4b522ac Mon Sep 17 00:00:00 2001 From: Isamu Takagi Date: Thu, 21 Feb 2019 23:18:29 +0900 Subject: [PATCH 016/139] Add prototype of plugin file editor --- .../src/autoware_launcher/tool/editor.py | 163 ++---------------- 1 file changed, 17 insertions(+), 146 deletions(-) diff --git a/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py b/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py index 99f03a6551a..c06d4c38785 100644 --- a/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py +++ b/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py @@ -1,157 +1,28 @@ -from autoware_launcher.core import plugin -from autoware_launcher.core import myutils +#import xml.etree.ElementTree as xmltree + +import rospkg from python_qt_binding import QtCore from python_qt_binding import QtWidgets -import argparse -import collections -import re -import rospkg -import yaml -import xml.etree.ElementTree as xtree - - -def represent_ordered_dict(dumper, instance): - return dumper.represent_mapping('tag:yaml.org,2002:map', instance.items()) -yaml.add_representer(collections.OrderedDict, represent_ordered_dict) - def main(sys_argv): - if len(sys_argv) < 2: - print("missing plugin file path") - return 2 application = QtWidgets.QApplication(sys_argv) - widget = PluginEditWidget() - ynode = plugin.AwPluginNode(None, sys_argv[1]) - ynode.load(myutils.package("plugins")) - xnode = load_launch_xml(ynode.rosxml()) - - fields = [PluginEditField(child.attrib) for child in xnode if child.tag == "arg"] - for field in fields: widget.add_field(field) - widget.add_button() - for field in ynode.args(): widget.set_yaml(field) + rospack = rospkg.RosPack() + combo = QtWidgets.QComboBox() + for package in sorted(rospack.list()): + combo.addItem(package) + combo.setEditable(True) + combo.setCurrentIndex(combo.findText("autoware_launcher")) + + widget = QtWidgets.QWidget() + widget.setLayout(QtWidgets.QHBoxLayout()) + widget.layout().addWidget(QtWidgets.QLabel("Package")) + widget.layout().addWidget(combo) + widget.layout().addWidget(QtWidgets.QLabel("File")) + widget.layout().addWidget(QtWidgets.QLineEdit()) + widget.layout().addWidget(QtWidgets.QPushButton()) widget.show() return application.exec_() - - -def load_launch_xml(rosxml): - - rospack = rospkg.RosPack() - regex = re.compile("\$\(find (.*?)\)") - match = regex.match(rosxml) - xpath = regex.sub(rospack.get_path(match.group(1)), rosxml) - return xtree.parse(xpath).getroot() - - -class PluginEditWidget(QtWidgets.QWidget): - - header = ["Field Name", "Field Type", "Array Type", "Default Value"] - - def __init__(self): - - super(PluginEditWidget, self).__init__() - self.fields = collections.OrderedDict() - self.setLayout(QtWidgets.QGridLayout()) - for col,text in enumerate(PluginEditWidget.header): - self.layout().addWidget(QtWidgets.QLabel(text), 0, col) - self.export = QtWidgets.QPushButton("Export") - self.export.clicked.connect(self.export_yaml) - - def add_field(self, field): - - row = self.layout().rowCount() - self.layout().addWidget(field.name, row, 0) - self.layout().addWidget(field.type, row, 1) - self.layout().addWidget(field.list, row, 2) - self.layout().addWidget(field.default, row, 3) - self.fields[field.name.text()] = field - - def add_button(self): - - row = self.layout().rowCount() - self.layout().addWidget(self.export, row, 0, 1, 4) - - def set_yaml(self, data): - - self.fields[data.name].set_yaml(data) - - def export_yaml(self): - - views = [field.export_view() for field in self.fields.values()] - fields = [field.export_dict() for field in self.fields.values()] - data = collections.OrderedDict() - data["args"] = fields - data["panel"] = collections.OrderedDict() - data["panel"]["widget"] = "node.panel" - data["panel"]["frames"] = views - text = yaml.dump(data, default_flow_style=None) - print(text) - clipboard = QtWidgets.QApplication.clipboard() - clipboard.setText(text) - - -class PluginEditField(object): - - viewtypes = {"str":"text", "int":"int", "real":"real", "bool":"bool"} - - def __init__(self, attr): - - self.name = QtWidgets.QLabel() - self.type = QtWidgets.QComboBox() - self.list = QtWidgets.QComboBox() - self.default = QtWidgets.QLineEdit() - - self.name.setText(attr["name"]) - self.type.addItems(["str", "int", "real", "bool"]) - self.list.addItems(["none", "space", "yaml"]) - self.default.setText(attr.get("default")) - - self.type.setCurrentIndex(-1) - if attr.get("default"): - itype = self.type_inference(attr["default"]) - self.type.setCurrentIndex(self.type.findText(itype)) - - def type_inference(self, value): - - if value.lower() in ["true", "false"]: return "bool" - if value.isdigit(): return "int" - if value.replace('.','',1).isdigit(): return "real" - return "str" - - def set_yaml(self, data): - - self.type.setCurrentIndex(self.type.findText(data.type)) - if data.list: - self.list.setCurrentIndex(self.list.findText(data.list)) - if data.rest.get("default"): - self.default.setText(str(data.rest["default"])) - - def export_dict(self): - - data = collections.OrderedDict() - data["name"] = str(self.name.text()) - data["type"] = str(self.type.currentText()) - if self.list.currentText() != "none": - data["list"] = str(self.list.currentText()) - if self.default.text(): - data["default"] = self.export_default(data, self.default.text()) - return data - - def export_default(self, data, value): - - if data.get("list") is None: - if data["type"] == "str" : return str(value) - if data["type"] == "int" : return int(value) - if data["type"] == "real": return float(value) - if data["type"] == "bool": return (value.lower() == "true") - raise NotImplementedError("Unkown Type: " + str(data)) - - def export_view(self): - - data = collections.OrderedDict() - data["target"] = "args." + str(self.name.text()) - data["widget"] = "basic." + PluginEditField.viewtypes[self.type.currentText()] - return data \ No newline at end of file From d133806eda3879d3432e6e1738f2d94f2518ad4c Mon Sep 17 00:00:00 2001 From: Isamu Takagi Date: Tue, 26 Feb 2019 15:24:42 +0900 Subject: [PATCH 017/139] Change logger level --- ros/src/util/packages/autoware_launcher/scripts/main | 9 +-------- .../src/autoware_launcher/gui/guimgr.py | 12 +++++++----- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/ros/src/util/packages/autoware_launcher/scripts/main b/ros/src/util/packages/autoware_launcher/scripts/main index 7efb1b5ed47..3976c95a727 100755 --- a/ros/src/util/packages/autoware_launcher/scripts/main +++ b/ros/src/util/packages/autoware_launcher/scripts/main @@ -7,14 +7,7 @@ import argparse from autoware_launcher.core import AwLaunchServer from autoware_launcher.gui import AwQtGuiClient -parser = argparse.ArgumentParser(description='Autoware Launcher') -parser.add_argument("-v", "--verbose", dest="verbose", action="store_true", help="show debug log message") -parser.add_argument("-p", "--profile", dest="profile", action="store", help="name of profile") -parser.add_argument("-s", "--skin", dest="skin", action="store", help="name of style sheet") -args = parser.parse_args() - -loglevel = logging.INFO if not args.verbose else logging.DEBUG -logging.basicConfig(level=loglevel, format="%(levelname)-5s: %(name)s: %(message)s") +logging.basicConfig(level=logging.INFO, format="%(levelname)-5s: %(name)s: %(message)s") server = AwLaunchServer(sys.argv) client = AwQtGuiClient(sys.argv, server) diff --git a/ros/src/util/packages/autoware_launcher/src/autoware_launcher/gui/guimgr.py b/ros/src/util/packages/autoware_launcher/src/autoware_launcher/gui/guimgr.py index 60d73cfada2..4db24ac8ebd 100644 --- a/ros/src/util/packages/autoware_launcher/src/autoware_launcher/gui/guimgr.py +++ b/ros/src/util/packages/autoware_launcher/src/autoware_launcher/gui/guimgr.py @@ -19,11 +19,13 @@ def __init__(self, client): self.__client = client self.__widgets = {} - import autoware_launcher.gui.plugins as plugins - for modkey, modcls in plugins.modules.items(): - for guikey, guicls in modcls.plugin_widgets().items(): - logger.debug("load plugin module: " + modkey + "." + guikey) - self.__widgets[modkey + "." + guikey] = guicls + for filepath in os.listdir(myutils.package("src/autoware_launcher/gui/plugins")): + fkey, fext = os.path.splitext(os.path.basename(filepath)) + if (fkey != "__init__") and (fext == ".py"): + logger.debug("load plugin module: " + fkey) + module = importlib.import_module("autoware_launcher.gui.plugins." + fkey) + for wkey, wcls in module.plugin_widgets().items(): + self.__widgets[fkey + "." + wkey] = wcls def client(self): return self.__client From a40cfda49481d8d9c964b0d06c38d92d4f337ad7 Mon Sep 17 00:00:00 2001 From: cirpue49 Date: Tue, 26 Feb 2019 15:42:25 +0900 Subject: [PATCH 018/139] Add PointPillars --- .../lidar_point_pillars/CMakeLists.txt | 63 +- .../include/anchor_mask_cuda.h | 84 +++ .../lidar_point_pillars/include/common.h | 45 ++ .../lidar_point_pillars/include/nms_cuda.h | 60 ++ .../include/point_pillars.h | 290 +++++++++ .../include/point_pillars_ros.h | 141 ++++ .../include/postprocess_cuda.h | 94 +++ .../include/preprocess_points.h | 118 ++++ .../include/preprocess_points_cuda.h | 116 ++++ .../include/scatter_cuda.h | 58 ++ .../launch/lidar_point_pillars.launch | 4 +- .../nodes/anchor_mask_cuda.cu | 8 +- .../nodes/lidar_point_pillars_node.cpp | 6 +- .../lidar_point_pillars/nodes/nms_cuda.cu | 32 +- .../nodes/point_pillars.cpp | 614 +++++++++--------- .../nodes/point_pillars_ros.cpp | 121 ++-- .../nodes/postprocess_cuda.cu | 123 ++-- .../nodes/preprocess_points.cpp | 146 +++-- .../nodes/preprocess_points_cuda.cu | 38 +- .../lidar_point_pillars/nodes/scatter_cuda.cu | 2 +- .../packages/lidar_point_pillars/package.xml | 9 +- .../test/src/test_point_pillars.cpp | 439 ++++--------- .../runtime_manager/scripts/computing.yaml | 2 + 23 files changed, 1722 insertions(+), 891 deletions(-) create mode 100644 ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/anchor_mask_cuda.h create mode 100644 ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/common.h create mode 100644 ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/nms_cuda.h create mode 100755 ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars.h create mode 100755 ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars_ros.h create mode 100644 ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/postprocess_cuda.h create mode 100644 ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/preprocess_points.h create mode 100644 ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/preprocess_points_cuda.h create mode 100644 ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/scatter_cuda.h diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/CMakeLists.txt b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/CMakeLists.txt index 87d2a5728b8..fad7f1a04c6 100755 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/CMakeLists.txt +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 2.8.3) project(lidar_point_pillars) -# set flags for CUDA availability +# set flags for CUDA and TensorRT availability option(CUDA_AVAIL "CUDA available" OFF) find_package(CUDA) if (CUDA_FOUND) @@ -14,46 +14,26 @@ else() set(CUDA_AVAIL OFF) endif (CUDA_FOUND) -# set flags for TensorRT availability -option(TRT_AVAIL "TensorRT available" OFF) # try to find the tensorRT modules +option(TRT_AVAIL "TensorRT available" OFF) find_library(NVINFER NAMES nvinfer) find_library(NVPARSERS NAMES nvparsers) -find_library(NVONNXPARSERS NAMES nvonnxparser) -if(NVINFER AND NVPARSERS AND NVONNXPARSERS) - message("TensorRT is available!") - message("NVINFER: ${NVINFER}") - message("NVPARSERS: ${NVPARSERS}") - message("NVONNXPARSERS: ${NVONNXPARSERS}") - set(TRT_AVAIL ON) +if(NVINFER AND NVPARSERS) + message("TensorRT is available!") + message("NVINFER: ${NVINFER}") + message("NVPARSERS: ${NVPARSERS}") + set(TRT_AVAIL ON) + add_definitions(-DTRT_AVAIL) else() message("TensorRT is NOT Available") set(TRT_AVAIL OFF) endif() -# set flags for CUDNN availability -option(CUDNN_AVAIL "CUDNN available" OFF) -# try to find the CUDNN module -find_library(CUDNN_LIBRARY -NAMES libcudnn.so${__cudnn_ver_suffix} libcudnn${__cudnn_ver_suffix}.dylib ${__cudnn_lib_win_name} -PATHS $ENV{LD_LIBRARY_PATH} ${__libpath_cudart} ${CUDNN_ROOT_DIR} ${PC_CUDNN_LIBRARY_DIRS} ${CMAKE_INSTALL_PREFIX} -PATH_SUFFIXES lib lib64 bin -DOC "CUDNN library." ) -if(CUDNN_LIBRARY) - message("CUDNN is available!") - message("CUDNN_LIBRARY: ${CUDNN_LIBRARY}") - set(CUDNN_AVAIL ON) -else() - message("CUDNN is NOT Available") - set(CUDNN_AVAIL OFF) -endif() - -if(TRT_AVAIL AND CUDA_AVAIL AND CUDNN_AVAIL) +if(TRT_AVAIL AND CUDA_AVAIL) find_package(autoware_build_flags REQUIRED) find_package(catkin REQUIRED COMPONENTS roscpp - roslib pcl_ros autoware_msgs ) @@ -63,7 +43,6 @@ if(TRT_AVAIL AND CUDA_AVAIL AND CUDNN_AVAIL) catkin_package( CATKIN_DEPENDS roscpp - roslib pcl_ros autoware_msgs ) @@ -101,14 +80,10 @@ if(TRT_AVAIL AND CUDA_AVAIL AND CUDNN_AVAIL) nodes/point_pillars.cpp nodes/preprocess_points.cpp ) - - target_link_libraries(point_pillars_lib - ${NVINFER} - ${NVONNXPARSERS} - ${CUDA_LIBRARIES} - ${CUDA_CUBLAS_LIBRARIES} - ${CUDA_curand_LIBRARY} - ${CUDNN_LIBRARY} + target_link_libraries(point_pillars_lib + ${catkin_LIBRARIES} + nvinfer + nvonnxparser gpu_point_pillars_lib ) @@ -119,12 +94,10 @@ if(TRT_AVAIL AND CUDA_AVAIL AND CUDNN_AVAIL) install(TARGETS - gpu_point_pillars_lib - point_pillars_lib lidar_point_pillars ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} - RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} + RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION} ) install(DIRECTORY launch/ @@ -132,7 +105,7 @@ if(TRT_AVAIL AND CUDA_AVAIL AND CUDNN_AVAIL) PATTERN ".svn" EXCLUDE) install(DIRECTORY include/ - DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}/${PROJECT_NAME}/ + DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} PATTERN ".svn" EXCLUDE ) @@ -141,8 +114,6 @@ if(TRT_AVAIL AND CUDA_AVAIL AND CUDNN_AVAIL) catkin_add_gtest(test-point_pillars test/src/test_point_pillars.cpp) target_link_libraries(test-point_pillars ${catkin_LIBRARIES} point_pillars_lib) endif() -else() - find_package(catkin REQUIRED) - catkin_package() +ELSE() message("PointPillars won't be built, CUDA and/or TensorRT were not found.") -endif() +ENDIF () diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/anchor_mask_cuda.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/anchor_mask_cuda.h new file mode 100644 index 00000000000..ccca5cb6b6d --- /dev/null +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/anchor_mask_cuda.h @@ -0,0 +1,84 @@ +/* + * Copyright 2018-2019 Autoware Foundation. All rights reserved. + * + * 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. + */ + + /** + * @file anchor_mask_cuda.h + * @brief Make anchor mask for filtering output + * @author Kosuke Murakami + * @date 2019/02/26 + */ + +#ifndef ANCHOR_MASK_CUDA_H +#define ANCHOR_MASK_CUDA_H + +class AnchorMaskCuda +{ +private: + const int NUM_INDS_FOR_SCAN_; + const int NUM_ANCHOR_X_INDS_; + const int NUM_ANCHOR_Y_INDS_; + const int NUM_ANCHOR_R_INDS_; + const float MIN_X_RANGE_; + const float MIN_Y_RANGE_; + const float PILLAR_X_SIZE_; + const float PILLAR_Y_SIZE_; + const int GRID_X_SIZE_; + const int GRID_Y_SIZE_; +public: + /** + * @brief Constructor + * @param[in] NUM_INDS_FOR_SCAN Number of indexes for scan(cumsum) + * @param[in] NUM_ANCHOR_X_INDS Number of x-indexes for anchors + * @param[in] NUM_ANCHOR_Y_INDS Number of y-indexes for anchors + * @param[in] NUM_ANCHOR_R_INDS Number of rotation-indexes for anchors + * @param[in] MIN_X_RANGE Minimum x value for pointcloud + * @param[in] MIN_Y_RANGE Minimum y value for pointcloud + * @param[in] PILLAR_X_SIZE Size of x-dimension for a pillar + * @param[in] PILLAR_Y_SIZE Size of y-dimension for a pillar + * @param[in] GRID_X_SIZE Number of pillars in x-coordinate + * @param[in] GRID_Y_SIZE Number of pillars in y-coordinate + * @details Captital variables never change after the compile + */ + AnchorMaskCuda(const int NUM_INDS_FOR_SCAN, + const int NUM_ANCHOR_X_INDS, + const int NUM_ANCHOR_Y_INDS, + const int NUM_ANCHOR_R_INDS, + const float MIN_X_RANGE, + const float MIN_Y_RANGE, + const float PILLAR_X_SIZE, + const float PILLAR_Y_SIZE, + const int GRID_X_SIZE, + const int GRID_Y_SIZE); + + /** + * @brief call cuda code for making anchor mask + * @param[in] dev_sparse_pillar_map Grid map representation for pillar occupancy + * @param[in] dev_cumsum_along_x Cumsum dev_sparse_pillar_map along x axis + * @param[in] dev_cumsum_along_y Cumsum dev_cumsum_along_x along y axis + * @param[in] dev_box_anchors_min_x Array for storng min x value for each anchor + * @param[in] dev_box_anchors_min_y Array for storng min y value for each anchor + * @param[in] dev_box_anchors_max_x Array for storng max x value for each anchor + * @param[in] dev_box_anchors_max_y Array for storng max y value for each anchor + * @param[in] dev_box_anchors_max_y Array for storng max y value for each anchor + * @param[out] dev_anchor_mask Anchor mask for filtering output + * @details dev_* means device memory. Make a mask for activating pillar occupancy area + */ + void doAnchorMaskCuda(int* dev_sparse_pillar_map, int* dev_cumsum_along_x, int* dev_cumsum_along_y, + const float* dev_box_anchors_min_x, const float* dev_box_anchors_min_y, + const float* dev_box_anchors_max_x, const float* dev_box_anchors_max_y, int* dev_anchor_mask); +}; + +#endif // ANCHOR_MASK_CUDA_H diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/common.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/common.h new file mode 100644 index 00000000000..7cf02333b4d --- /dev/null +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/common.h @@ -0,0 +1,45 @@ +/* + * Copyright 2018-2019 Autoware Foundation. All rights reserved. + * + * 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. + */ + + /** + * @file common.h + * @brief MACRO for CUDA codes + * @author Kosuke Murakami + * @date 2019/02/26 + */ + +#ifndef COMMON_H +#define COMMON_H + +//headers in STL +#include + +//headers in CUDA +#include + +#define DIVUP(m, n) ((m) / (n) + ((m) % (n) > 0)) + +#define GPU_CHECK(ans) { GPUAssert((ans), __FILE__, __LINE__); } +inline void GPUAssert(cudaError_t code, const char *file, int line, bool abort=true) +{ + if (code != cudaSuccess) + { + fprintf(stderr,"GPUassert: %s %s %d\n", cudaGetErrorString(code), file, line); + if (abort) exit(code); + } +} + +#endif // COMMON_H diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/nms_cuda.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/nms_cuda.h new file mode 100644 index 00000000000..7a34abf498b --- /dev/null +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/nms_cuda.h @@ -0,0 +1,60 @@ +/* + * Copyright 2018-2019 Autoware Foundation. All rights reserved. + * + * 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. + */ + +/** +* @file nms_cuda.h +* @brief Non-maximum suppresion for network output +* @author Modified by Kosuke Murakami +* @date 2019/02/26 +*/ + +#ifndef NMS_CUDA_H +#define NMS_CUDA_H + +//heders in STL +#include +#include + +//headers in local files +#include "common.h" + +class NMSCuda +{ +private: + const int NUM_THREADS_; + const float nms_overlap_threshold_; + +public: + /** + * @brief Constructor + * @param[in] NUM_THRESD Number of threads for launching cuda kernel + * @param[in] nms_overlap_threshold IOU threshold for NMS + * @details Captital variables never change after the compile, Non-captital variables could be chaned through rosparam + */ + NMSCuda(const int NUM_THREADS, const float nms_overlap_threshold); + + /** + * @brief GPU Non-Maximum Suppresion for network output + * @param[in] host_filter_count Number of filtered output + * @param[in] dev_sorted_box_for_nms Bounding box output sorted by score + * @param[out] out_keep_inds Indexes for selected bounding box + * @param[out] out_num_to_keep Number of keep bounding box + * @details Includes CUDA NMS and postprocessing for selecting box in CPU + */ + void doNMSCuda(const int host_filter_count, float* dev_sorted_box_for_nms, int* out_keep_inds, int& out_num_to_keep); +}; + +#endif // NMS_CUDA_H diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars.h new file mode 100755 index 00000000000..c58fc5e58d7 --- /dev/null +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars.h @@ -0,0 +1,290 @@ +/* + * Copyright 2018-2019 Autoware Foundation. All rights reserved. + * + * 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. + */ + + /** + * @file point_pillars.h + * @brief Algorithm for PointPillars + * @author Kosuke Murakami + * @date 2019/02/26 + */ + + +#ifndef POINTS_PILLAR_H +#define POINTS_PILLAR_H + +//headers in STL +#include +#include +#include +#include +#include +#include +#include + +//headers in TensorRT +#include "NvInfer.h" +#include "NvOnnxParser.h" + +//headers in local files +#include "common.h" +#include "preprocess_points.h" +#include "preprocess_points_cuda.h" +#include "anchor_mask_cuda.h" +#include "scatter_cuda.h" +#include "postprocess_cuda.h" + + +// Logger for TensorRT info/warning/errors +class Logger : public nvinfer1::ILogger +{ +public: + Logger(Severity severity = Severity::kWARNING) + : reportableSeverity(severity) + { + } + + void log(Severity severity, const char* msg) override + { + // suppress messages with severity enum value greater than the reportable + if (severity > reportableSeverity) + return; + + switch (severity) + { + case Severity::kINTERNAL_ERROR: std::cerr << "INTERNAL_ERROR: "; break; + case Severity::kERROR: std::cerr << "ERROR: "; break; + case Severity::kWARNING: std::cerr << "WARNING: "; break; + case Severity::kINFO: std::cerr << "INFO: "; break; + default: std::cerr << "UNKNOWN: "; break; + } + std::cerr << msg << std::endl; + } + + Severity reportableSeverity; +}; + +class PointPillars +{ +private: + //initize in initializer list + const bool reproduce_result_mode_; + const float score_threshold_; + const float nms_overlap_threshold_; + const std::string pfe_onnx_file_; + const std::string rpn_onnx_file_; + const int MAX_NUM_PILLARS_; + const int MAX_NUM_POINTS_PER_PILLAR_; + const int PFE_OUTPUT_SIZE_; + const int GRID_X_SIZE_; + const int GRID_Y_SIZE_; + const int GRID_Z_SIZE_; + const int RPN_INPUT_SIZE_; + const int NUM_ANCHOR_X_INDS_; + const int NUM_ANCHOR_Y_INDS_; + const int NUM_ANCHOR_R_INDS_; + const int NUM_ANCHOR_; + const int RPN_BOX_OUTPUT_SIZE_; + const int RPN_CLS_OUTPUT_SIZE_; + const int RPN_DIR_OUTPUT_SIZE_; + const float PILLAR_X_SIZE_; + const float PILLAR_Y_SIZE_; + const float PILLAR_Z_SIZE_; + const float MIN_X_RANGE_; + const float MIN_Y_RANGE_; + const float MIN_Z_RANGE_; + const float MAX_X_RANGE_; + const float MAX_Y_RANGE_; + const float MAX_Z_RANGE_; + const int BATCH_SIZE_; + const int NUM_INDS_FOR_SCAN_; + const int NUM_THREADS_; + const float SENSOR_HEIGHT_; + const float ANCHOR_DX_SIZE_; + const float ANCHOR_DY_SIZE_; + const float ANCHOR_DZ_SIZE_; + //end initializer list + + + int host_pillar_count_[1]; + + float* anchors_px_; + float* anchors_py_; + float* anchors_pz_; + float* anchors_dx_; + float* anchors_dy_; + float* anchors_dz_; + float* anchors_ro_; + + float* box_anchors_min_x_; + float* box_anchors_min_y_; + float* box_anchors_max_x_; + float* box_anchors_max_y_; + + // cuda malloc + float* dev_pillar_x_in_coors_; + float* dev_pillar_y_in_coors_; + float* dev_pillar_z_in_coors_; + float* dev_pillar_i_in_coors_; + int* dev_pillar_count_histo_; + + int* dev_x_coors_; + int* dev_y_coors_; + float* dev_num_points_per_pillar_; + int* dev_sparse_pillar_map_; + int* dev_cumsum_along_x_; + int* dev_cumsum_along_y_; + + float* dev_pillar_x_; + float* dev_pillar_y_; + float* dev_pillar_z_; + float* dev_pillar_i_; + + float* dev_x_coors_for_sub_shaped_; + float* dev_y_coors_for_sub_shaped_; + float* dev_pillar_feature_mask_; + + float* dev_box_anchors_min_x_; + float* dev_box_anchors_min_y_; + float* dev_box_anchors_max_x_; + float* dev_box_anchors_max_y_; + int* dev_anchor_mask_; + + void* pfe_buffers_[9]; + void* rpn_buffers_[4]; + + float* dev_scattered_feature_; + + float* dev_anchors_px_; + float* dev_anchors_py_; + float* dev_anchors_pz_; + float* dev_anchors_dx_; + float* dev_anchors_dy_; + float* dev_anchors_dz_; + float* dev_anchors_ro_; + float* dev_filtered_box_; + float* dev_filtered_score_; + int* dev_filtered_dir_; + float* dev_box_for_nms_; + int* dev_filter_count_; + + + std::unique_ptr preprocess_points_ptr_; + std::unique_ptr preprocess_points_cuda_ptr_; + std::unique_ptr anchor_mask_cuda_ptr_; + std::unique_ptr scatter_cuda_ptr_; + std::unique_ptr postprocess_cuda_ptr_; + + Logger g_logger_; + nvinfer1::IExecutionContext* pfe_context_; + nvinfer1::IExecutionContext* rpn_context_; + nvinfer1::IRuntime* pfe_runtime_; + nvinfer1::IRuntime* rpn_runtime_; + nvinfer1::ICudaEngine* pfe_engine_; + nvinfer1::ICudaEngine* rpn_engine_; + + /** + * @brief Memory allocation for device memory + * @details Call in the constructor + */ + void deviceMemoryMalloc(); + + /** + * @brief Initialize anchor + * @details Call in the constructor + */ + void initAnchors(); + + /** + * @brief Initialize TensorRT isntances + * @details Call in the constructor + */ + void initTRT(); + + /** + * @brief Convert ONNX to TensorRT model + * @param[in] model_file ONNX model file path + * @param[out] trt_model_stream TensorRT model made out of ONNX model + * @details Load ONNX model, and convert it to TensorRT model + */ + void onnxToTRTModel(const std::string& model_file, nvinfer1::IHostMemory*& trt_model_stream); + + /** + * @brief Preproces points + * @param[in] in_points_array pointcloud array + * @param[in] in_num_points Number of points + * @details Call CPU or GPU preprocess + */ + void preprocess(const float* in_points_array, const int in_num_points); + + /** + * @brief Preproces by CPU + * @param[in] in_points_array pointcloud array + * @param[in] in_num_points Number of points + * @details The output from CPU preprocess is reproducible + */ + void preprocessCPU(const float* in_points_array, const int in_num_points); + + /** + * @brief Preproces by GPU + * @param[in] in_points_array pointcloud array + * @param[in] in_num_points Number of points + * @details Fast preprocess comapared with CPU preprocess + */ + void preprocessGPU(const float* in_points_array, const int in_num_points); + + /** + * @brief Convert anchors to box form like min_x, min_y, max_x, max_y anchors + * @param[in] anchors_px Represents x-coordinate value for corresponding anchor + * @param[in] anchors_py Represents y-coordinate value for corresponding anchor + * @param[in] anchors_dx Represents x-dimension value for corresponding anchor + * @param[in] anchors_dy Represents y-dimension value for corresponding anchor + * @details Make box anchors for nms + */ + void convertAnchors2BoxAnchors(float* anchors_px, float* anchors_py, float* anchors_dx, float* anchors_dy); + + /** + * @brief Memory allocation for anchors + * @details Memory allocation for anchors + */ + void putAnchorsInDeviceMemory(); + +public: + /** + * @brief Constructor + * @param[in] reproduce_result_mode Boolean, if true, the output is reproducible for the same input + * @param[in] score_threshold Score threshold for filtering output + * @param[in] nms_overlap_threshold IOU threshold for NMS + * @param[in] pfe_onnx_file Pillar Feature Extractor ONNX file path + * @param[in] rpn_onnx_file Region Proposal Network ONNX file path + * @details Variables could be chaned through rosparam + */ + PointPillars(const bool reproduce_result_mode, const float score_threshold, const float nms_overlap_threshold, + const std::string pfe_onnx_file, const std::string rpn_onnx_file); + ~PointPillars(); + + /** + * @brief Call PointPillars for the inference + * @param[in] in_points_array pointcloud array + * @param[in] in_num_points Number of points + * @param[in] out_detections Network output bounding box + * @param[in] out_num_objects Number of output bounding box + * @details This is interface for the algorithm + */ + void doInference(const float* in_points_array, const int in_num_points, + std::vector& out_detection, int& out_num_objects); +}; + +#endif // POINTS_PILLAR_H diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars_ros.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars_ros.h new file mode 100755 index 00000000000..e0b1e1bd53c --- /dev/null +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars_ros.h @@ -0,0 +1,141 @@ +/* + * Copyright 2018-2019 Autoware Foundation. All rights reserved. + * + * 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. + */ + + /** + * @file point_pillars_ros.h + * @brief ROS interface for PointPillars + * @author Kosuke Murakami + * @date 2019/02/26 + */ + +#ifndef POINTS_PILLAR_ROS_H +#define POINTS_PILLAR_ROS_H + +//headers in STL +#include +#include + +//headers in ROS +#include +#include +#include + +//headers in PCL +#include + +//headers in local files +#include "point_pillars.h" + + +class PointPillarsROS +{ +private: + friend class TestClass; + + //initializer list + ros::NodeHandle private_nh_; + bool has_subscribed_baselink_; + const int NUM_POINT_FEATURE_; + const int OUTPUT_NUM_BOX_FEATURE_; + const float TRAINED_SENSOR_HEIGHT_; + const float NORMALIZING_INTENSITY_VALUE_; + const std::string BASELINK_FRAME_; + //end initializer list + + //rosparam + bool baselink_support_; + bool reproduce_result_mode_; + float score_threshold_; + float nms_overlap_threshold_; + std::string pfe_onnx_file_; + std::string rpn_onnx_file_; + //end rosparam + + ros::NodeHandle nh_; + ros::Subscriber sub_points_; + ros::Publisher pub_objects_; + + tf::TransformListener tf_listener_; + tf::StampedTransform baselink2lidar_; + tf::Transform angle_transform_; + tf::Transform angle_transform_inversed_; + + + + float offset_z_from_trained_data_; + + std::unique_ptr point_pillars_ptr_; + + /** + * @brief Get base_link to lidar transformation + * @param[in] target_frameid target lidar frame_id + * @details Get transformation info + */ + void getBaselinkToLidarTF(const std::string& target_frameid); + + /** + * @brief Analyze tf information + * @param[in] lidar2baselink transofomation info + * @details Calculate z offset compared with trained sensor height and get rotation matrix + */ + void getTFInfo(tf::StampedTransform lidar2baselink); + + /** + * @brief Transform pose based on tf stamp info + * @param[in] in_pose Target pose to be transformed + * @param[in] tf TF stamp contains rotation matrix and translation matrix + * @return geometry_msgs::Pose Transformed pose + * @details Calculate transformed pose + */ + geometry_msgs::Pose getTransformedPose(const geometry_msgs::Pose& in_pose, + const tf::Transform& tf); + + /** + * @brief callback for pointcloud + * @param[in] input pointcloud from lidar sensor + * @details Call point_pillars to get 3D bounding box + */ + void pointsCallback(const sensor_msgs::PointCloud2::ConstPtr& input); + + /** + * @brief convert pcl point to c++ array + * @param[in] in_pcl_pc_ptr pointcloud in pcl format + * @param[out] out_points_array converted pointcloud in c++ array format + * @param[in] offset_z (default: 1.0) when using baselink_support, offset height based on current sensor configuration + * @details convert pcl points to c++ array, plus offset z if it is necessary + */ + void pclToArray(const pcl::PointCloud::Ptr & in_pcl_pc_ptr, float* out_points_array, const float offset_z = 0); + + /** + * @brief publish DetectedObject + * @param[in] detections Network output bounding box + * @param[in] num_objects Number of objects + * @param[in] pc_header Header from pointcloud + * @details Convert std::vector to DetectedObject, and publish them + */ + void pubDetectedObject(const std::vector& detections, const int num_objects, const std_msgs::Header& pc_header); + +public: + PointPillarsROS(); + + /** + * @brief Create ROS pub/sub obejct + * @details Create/Initializing ros pub/sub object + */ + void createROSPubSub(); +}; + +#endif // POINTS_PILLAR_ROS_H diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/postprocess_cuda.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/postprocess_cuda.h new file mode 100644 index 00000000000..261cdd19ed1 --- /dev/null +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/postprocess_cuda.h @@ -0,0 +1,94 @@ +/* + * Copyright 2018-2019 Autoware Foundation. All rights reserved. + * + * 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. + */ + + /** + * @file postprocess_cuda.h + * @brief Postprocess for network output + * @author Kosuke Murakami + * @date 2019/02/26 + */ + +#ifndef POSTPROCESS_CUDA_H +#define POSTPROCESS_CUDA_H + +//headers in STL +#include +#include + +//headers in local files +#include "nms_cuda.h" + +class PostprocessCuda +{ +private: + const float FLOAT_MIN_; + const float FLOAT_MAX_; + const int NUM_ANCHOR_X_INDS_; + const int NUM_ANCHOR_Y_INDS_; + const int NUM_ANCHOR_R_INDS_; + const float score_threshold_; + const int NUM_THREADS_; + const float nms_overlap_threshold_; + + std::unique_ptr nms_cuda_ptr_; + +public: + /** + * @brief Constructor + * @param[in] FLOAT_MIN the lowest float value + * @param[in] FLOAT_MAX the maximum float value + * @param[in] NUM_ANCHOR_X_INDS Number of x-indexes for anchors + * @param[in] NUM_ANCHOR_Y_INDS Number of y-indexes for anchors + * @param[in] NUM_ANCHOR_R_INDS Number of rotation-indexes for anchors + * @param[in] score_threshold Score threshold for filtering output + * @param[in] NUM_THREDS Number of threads for launching cuda kernel + * @param[in] nms_overlap_threshold IOU threshold for NMS + * @details Captital variables never change after the compile, non-capital variables could be chaned through rosparam + */ + PostprocessCuda(const float FLOAT_MIN, const float FLOAT_MAX, + const int NUM_ANCHOR_X_INDS, const int NUM_ANCHOR_Y_INDS, const int NUM_ANCHOR_R_INDS, + const float score_threshold, const int NUM_THREADS, const float nms_overlap_threshold); + + /** + * @brief Postprocessing for the network output + * @param[in] rpn_box_output Box prediction from the network output + * @param[in] rpn_cls_output Class prediction from the network output + * @param[in] rpn_dir_output Direction prediction from the network output + * @param[in] dev_anchor_mask Anchor mask for filtering + * @param[in] dev_anchors_px X-coordinate value for corresponding anchor + * @param[in] dev_anchors_py Y-coordinate value for corresponding anchor + * @param[in] dev_anchors_pz Z-coordinate value for corresponding anchor + * @param[in] dev_anchors_dx X-dimension value for corresponding anchor + * @param[in] dev_anchors_dy Y-dimension value for corresponding anchor + * @param[in] dev_anchors_dz Z-dimension value for corresponding anchor + * @param[in] dev_anchors_ro Rotation value for corresponding anchor + * @param[in] dev_filtered_box Filtered box prediction + * @param[in] dev_filtered_score Filtered score prediction + * @param[in] dev_filtered_dir Filtered direction prediction + * @param[in] dev_box_for_nms Decoded box from pose and dimension to min_x min_y max_x max_y represenation for nms + * @param[in] dev_filter_count The number of filtered output + * @param[out] out_detection Output bounding boxes + * @param[out] out_num_objects The number of output bounding boxes + * @details dev_* represents device memory allocated variables + */ + void doPostprocessCuda(const float* rpn_box_output, const float* rpn_cls_output, const float* rpn_dir_output, + int* dev_anchor_mask, const float* dev_anchors_px, const float* dev_anchors_py, const float* dev_anchors_pz, + const float* dev_anchors_dx, const float* dev_anchors_dy, const float* dev_anchors_dz, const float* dev_anchors_ro, + float* dev_filtered_box, float* dev_filtered_score, int* dev_filtered_dir, float* dev_box_for_nms, int* dev_filter_count, + std::vector& out_detection, int& out_num_objects); +}; + +#endif // POSTPROCESS_CUDA_H diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/preprocess_points.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/preprocess_points.h new file mode 100644 index 00000000000..bd0b54720f2 --- /dev/null +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/preprocess_points.h @@ -0,0 +1,118 @@ +/* + * Copyright 2018-2019 Autoware Foundation. All rights reserved. + * + * 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. + */ + + /** + * @file preprocess_points.h + * @brief CPU version of preprocess points + * @author Kosuke Murakami + * @date 2019/02/26 + */ + +#ifndef PREPROCESS_POINTS_H +#define PREPROCESS_POINTS_H + + + +class PreprocessPoints +{ +private: + friend class TestClass; + const int MAX_NUM_PILLARS_; + const int MAX_NUM_POINTS_PER_PILLAR_; + const int GRID_X_SIZE_; + const int GRID_Y_SIZE_; + const int GRID_Z_SIZE_; + const float PILLAR_X_SIZE_; + const float PILLAR_Y_SIZE_; + const float PILLAR_Z_SIZE_; + const float MIN_X_RANGE_; + const float MIN_Y_RANGE_; + const float MIN_Z_RANGE_; + const int NUM_INDS_FOR_SCAN_; + + +public: + /** + * @brief Constructor + * @param[in] MAX_NUM_PILLARS Maximum number of pillars + * @param[in] MAX_POINTS_PER_PILLAR Maximum number of points per pillar + * @param[in] GRID_X_SIZE Number of pillars in x-coordinate + * @param[in] GRID_Y_SIZE Number of pillars in y-coordinate + * @param[in] GRID_Z_SIZE Number of pillars in z-coordinate + * @param[in] PILLAR_X_SIZE Size of x-dimension for a pillar + * @param[in] PILLAR_Y_SIZE Size of y-dimension for a pillar + * @param[in] PILLAR_Z_SIZE Size of z-dimension for a pillar + * @param[in] MIN_X_RANGE Minimum x value for pointcloud + * @param[in] MIN_Y_RANGE Minimum y value for pointcloud + * @param[in] MIN_Z_RANGE Minimum z value for pointcloud + * @param[in] NUM_INDS_FOR_SCAN Number of indexes for scan(cumsum) + * @details Captital variables never change after the compile + */ + PreprocessPoints(const int MAX_NUM_PILLARS, + const int MAX_POINTS_PER_PILLAR, + const int GRID_X_SIZE, + const int GRID_Y_SIZE, + const int GRID_Z_SIZE, + const float PILLAR_X_SIZE, + const float PILLAR_Y_SIZE, + const float PILLAR_Z_SIZE, + const float MIN_X_RANGE, + const float MIN_Y_RANGE, + const float MIN_Z_RANGE, + const int NUM_INDS_FOR_SCAN); + + /** + * @brief CPU preprocessing for input pointcloud + * @param[in] in_points_array Pointcloud array + * @param[in] in_num_points The number of points + * @param[in] x_coors X-coordinate indexes for corresponding pillars + * @param[in] y_coors Y-coordinate indexes for corresponding pillars + * @param[in] num_points_per_pillar Number of points in corresponding pillars + * @param[in] pillar_x X-coordinate value for points in each pillar + * @param[in] pillar_y Y-coordinate value for points in each pillar + * @param[in] pillar_z Z-coordinate value for points in each pillar + * @param[in] pillar_i Intensity value for points in each pillar + * @param[in] x_coors_for_sub_shaped Used for x substraction in the network + * @param[in] y_coors_for_sub_shaped Used for y substraction in the network + * @param[in] pillar_feature_mask Mask to make sure pillars' feature equal to zero where no points in the pillars + * @param[in] sparse_pillar_map Grid map represents occupancy pillars + * @param[in] host_pillar_count The numnber of valid pillars for the input pointcloud + * @details Convert pointcloud to pillar representation + */ + void preprocess(const float* in_points_array, int in_num_points, + int* x_coors, int* y_coors, float* num_points_per_pillar, + float* pillar_x, float* pillar_y, float* pillar_z, float* pillar_i, + float* x_coors_for_sub_shaped, float* y_coors_for_sub_shaped, + float* pillar_feature_mask, float* sparse_pillar_map, int* host_pillar_count); + + /** + * @brief Initializing variables for preprocessing + * @param[in] coor_to_pillaridx Map for converting from one set of coordinate to a pillar + * @param[in] sparse_pillar_map Grid map represents occupancy pillars + * @param[in] pillar_x X-coordinate value for points in each pillar + * @param[in] pillar_y Y-coordinate value for points in each pillar + * @param[in] pillar_z Z-coordinate value for points in each pillar + * @param[in] pillar_i Intensity value for points in each pillar + * @param[in] x_coors_for_sub_shaped Used for x substraction in the network + * @param[in] y_coors_for_sub_shaped Used for y substraction in the network + * @details Initializeing input arguments with certain values + */ + void initializeVariables(int* coor_to_pillaridx, float* sparse_pillar_map, + float* pillar_x, float* pillar_y, float* pillar_z, float* pillar_i, + float* x_coors_for_sub_shaped, float* y_coors_for_sub_shaped); +}; + +#endif // PREPROCESS_POINTS_H diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/preprocess_points_cuda.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/preprocess_points_cuda.h new file mode 100644 index 00000000000..7a4dd8420d2 --- /dev/null +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/preprocess_points_cuda.h @@ -0,0 +1,116 @@ +/* + * Copyright 2018-2019 Autoware Foundation. All rights reserved. + * + * 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. + */ + + /** + * @file preprocess_points_cuda.h + * @brief GPU version of preprocess points + * @author Kosuke Murakami + * @date 2019/02/26 + */ + + +#ifndef PREPROCESS_POINTS_CUDA_H +#define PREPROCESS_POINTS_CUDA_H + + +class PreprocessPointsCuda +{ +private: + //initialzer list + const int NUM_THREADS_; + const int MAX_NUM_PILLARS_; + const int MAX_NUM_POINTS_PER_PILLAR_; + const int NUM_INDS_FOR_SCAN_; + const int GRID_X_SIZE_; + const int GRID_Y_SIZE_; + const int GRID_Z_SIZE_; + const float PILLAR_X_SIZE_; + const float PILLAR_Y_SIZE_; + const float PILLAR_Z_SIZE_; + const float MIN_X_RANGE_; + const float MIN_Y_RANGE_; + const float MIN_Z_RANGE_; + //end initalizer list + + float* dev_pillar_x_in_coors_; + float* dev_pillar_y_in_coors_; + float* dev_pillar_z_in_coors_; + float* dev_pillar_i_in_coors_; + int* dev_pillar_count_histo_; + + int* dev_counter_; + int* dev_pillar_count_; + float* dev_x_coors_for_sub_; + float* dev_y_coors_for_sub_; + +public: + /** + * @brief Constructor + * @param[in] NUM_THREDS Number of threads for launching cuda kernel + * @param[in] MAX_NUM_PILLARS Maximum number of pillars + * @param[in] MAX_POINTS_PER_PILLAR Maximum number of points per pillar + * @param[in] NUM_INDS_FOR_SCAN Number of indexes for scan(cumsum) + * @param[in] GRID_X_SIZE Number of pillars in x-coordinate + * @param[in] GRID_Y_SIZE Number of pillars in y-coordinate + * @param[in] GRID_Z_SIZE Number of pillars in z-coordinate + * @param[in] PILLAR_X_SIZE Size of x-dimension for a pillar + * @param[in] PILLAR_Y_SIZE Size of y-dimension for a pillar + * @param[in] PILLAR_Z_SIZE Size of z-dimension for a pillar + * @param[in] MIN_X_RANGE Minimum x value for pointcloud + * @param[in] MIN_Y_RANGE Minimum y value for pointcloud + * @param[in] MIN_Z_RANGE Minimum z value for pointcloud + * @details Captital variables never change after the compile + */ + PreprocessPointsCuda(const int NUM_THREADS, + const int MAX_NUM_PILLARS, + const int MAX_POINTS_PER_PILLAR, + const int NUM_INDS_FOR_SCAN, + const int GRID_X_SIZE, + const int GRID_Y_SIZE, + const int GRID_Z_SIZE, + const float PILLAR_X_SIZE, + const float PILLAR_Y_SIZE, + const float PILLAR_Z_SIZE, + const float MIN_X_RANGE, + const float MIN_Y_RANGE, + const float MIN_Z_RANGE); + ~PreprocessPointsCuda(); + + /** + * @brief CUDA preprocessing for input pointcloud + * @param[in] dev_points Pointcloud array + * @param[in] in_num_points The number of points + * @param[in] dev_x_coors X-coordinate indexes for corresponding pillars + * @param[in] dev_y_coors Y-coordinate indexes for corresponding pillars + * @param[in] dev_num_points_per_pillar Number of points in corresponding pillars + * @param[in] dev_pillar_x X-coordinate value for points in each pillar + * @param[in] dev_pillar_y Y-coordinate value for points in each pillar + * @param[in] dev_pillar_z Z-coordinate value for points in each pillar + * @param[in] dev_pillar_i Intensity value for points in each pillar + * @param[in] dev_x_coors_for_sub_shaped Used for x substraction in the network + * @param[in] dev_y_coors_for_sub_shaped Used for y substraction in the network + * @param[in] dev_pillar_feature_mask Mask to make sure pillars' feature equal to zero where no points in the pillars + * @param[in] dev_sparse_pillar_map Grid map represents occupancy pillars + * @param[in] host_pillar_count The numnber of valid pillars for the input pointcloud + * @details Convert pointcloud to pillar representation + */ + void doPreprocessPointsCuda(const float* dev_points, const int in_num_points, int* dev_x_coors, int* dev_y_coors, + float* dev_num_points_per_pillar, float* dev_pillar_x, float* dev_pillar_y, float* dev_pillar_z, float* dev_pillar_i, + float* dev_x_coors_for_sub_shaped, float* dev_y_coors_for_sub_shaped, + float* dev_pillar_feature_mask, int* dev_sparse_pillar_map, int* host_pillar_count); +}; + +#endif // PREPROCESS_POINTS_CUDA_H diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/scatter_cuda.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/scatter_cuda.h new file mode 100644 index 00000000000..24e4f0b79dc --- /dev/null +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/scatter_cuda.h @@ -0,0 +1,58 @@ +/* + * Copyright 2018-2019 Autoware Foundation. All rights reserved. + * + * 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. + */ + + /** + * @file scatter_cuda.h + * @brief CUDA code for scatter operation + * @author Kosuke Murakami + * @date 2019/02/26 + */ + +#ifndef SCATTERCUDA_H +#define SCATTERCUDA_H + +class ScatterCuda +{ +private: + const int NUM_THREADS_; + const int MAX_NUM_PILLARS_; + const int GRID_X_SIZE_; + const int GRID_Y_SIZE_; + +public: + /** + * @brief Constructor + * @param[in] NUM_THREADS The number of threads to launch cuda kernel + * @param[in] MAX_NUM_PILLARS Maximum number of pillars + * @param[in] GRID_X_SIZE Number of pillars in x-coordinate + * @param[in] GRID_Y_SIZE Number of pillars in y-coordinate + * @details Captital variables never change after the compile + */ + ScatterCuda(const int NUM_THREADS, const int MAX_NUM_PILLARS, const int GRID_X_SIZE, const int GRID_Y_SIZE); + + /** + * @brief Call scatter cuda kernel + * @param[in] pillar_count The valid number of pillars + * @param[in] x_coors X-coordinate indexes for corresponding pillars + * @param[in] y_coors Y-coordinate indexes for corresponding pillars + * @param[in] pfe_output Output from Pillar Feature Extractor + * @param[out] scattered_feature Gridmap representation for pillars' feature + * @details Allocate pillars in gridmap based on index(coordinates) information + */ + void doScatterCuda(const int pillar_count, int *x_coors, int *y_coors, float *pfe_output, float *scattered_feature); +}; + +#endif // SCATTERCUDA_H diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/launch/lidar_point_pillars.launch b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/launch/lidar_point_pillars.launch index 9bf500fc6e8..4a7618eacc8 100755 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/launch/lidar_point_pillars.launch +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/launch/lidar_point_pillars.launch @@ -4,8 +4,8 @@ - - + + diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/anchor_mask_cuda.cu b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/anchor_mask_cuda.cu index 6b58021cbc4..4383c1ae63c 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/anchor_mask_cuda.cu +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/anchor_mask_cuda.cu @@ -15,10 +15,9 @@ */ //headers in local files -#include "lidar_point_pillars/common.h" -#include "lidar_point_pillars/anchor_mask_cuda.h" +#include "common.h" +#include "anchor_mask_cuda.h" -//modified prefix sum code from https://www.mimuw.edu.pl/~ps209291/kgkp/slides/scan.pdf __global__ void scan_x(int *g_odata, int *g_idata, int n) { extern __shared__ int temp[]; // allocated on invocation @@ -66,7 +65,6 @@ __global__ void scan_x(int *g_odata, int *g_idata, int n) } } -//modified prefix sum code from https://www.mimuw.edu.pl/~ps209291/kgkp/slides/scan.pdf __global__ void scan_y(int *g_odata, int *g_idata, int n) { extern __shared__ int temp[]; // allocated on invocation @@ -127,7 +125,7 @@ __global__ void make_anchor_mask_kernel(const float* dev_box_anchors_min_x, cons const int NUM_INDS_FOR_SCAN) { int tid = threadIdx.x + blockIdx.x * blockDim.x; - int anchor_coor[NUM_2D_BOX_CORNERS_MACRO] = {0}; + int anchor_coor[4] = {0}; const int GRID_X_SIZE_1 = GRID_X_SIZE - 1;//grid_x_size - 1 const int GRID_Y_SIZE_1 = GRID_Y_SIZE - 1;//grid_y_size - 1 diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/lidar_point_pillars_node.cpp b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/lidar_point_pillars_node.cpp index 001933b8197..36617dd472b 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/lidar_point_pillars_node.cpp +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/lidar_point_pillars_node.cpp @@ -14,11 +14,11 @@ * limitations under the License. */ -// headers in STL +//headers in STL #include -// headers in local files -#include "lidar_point_pillars/point_pillars_ros.h" +//headers in local files +#include "point_pillars_ros.h" int main(int argc, char** argv) { diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/nms_cuda.cu b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/nms_cuda.cu index 4bb01ecac3d..7680a44ad87 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/nms_cuda.cu +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/nms_cuda.cu @@ -6,7 +6,7 @@ //headers in local files -#include "lidar_point_pillars/nms_cuda.h" +#include "nms_cuda.h" __device__ inline float devIoU(float const *const a, float const *const b) @@ -21,36 +21,35 @@ __device__ inline float devIoU(float const *const a, float const *const b) } __global__ void nms_kernel(const int n_boxes, const float nms_overlap_thresh, - const float *dev_boxes, unsigned long long *dev_mask, - const int NUM_BOX_CORNERS) + const float *dev_boxes, unsigned long long *dev_mask) { const int row_start = blockIdx.y; const int col_start = blockIdx.x; + // if (row_start > col_start) return; const int block_threads = blockDim.x; const int row_size = min(n_boxes - row_start * block_threads, block_threads); const int col_size = min(n_boxes - col_start * block_threads, block_threads); - - __shared__ float block_boxes[NUM_THREADS_MACRO * NUM_2D_BOX_CORNERS_MACRO]; + __shared__ float block_boxes[64 * 4]; if (threadIdx.x < col_size) { - block_boxes[threadIdx.x * NUM_BOX_CORNERS + 0] = dev_boxes[(block_threads * col_start + threadIdx.x) * NUM_BOX_CORNERS + 0]; - block_boxes[threadIdx.x * NUM_BOX_CORNERS + 1] = dev_boxes[(block_threads * col_start + threadIdx.x) * NUM_BOX_CORNERS + 1]; - block_boxes[threadIdx.x * NUM_BOX_CORNERS + 2] = dev_boxes[(block_threads * col_start + threadIdx.x) * NUM_BOX_CORNERS + 2]; - block_boxes[threadIdx.x * NUM_BOX_CORNERS + 3] = dev_boxes[(block_threads * col_start + threadIdx.x) * NUM_BOX_CORNERS + 3]; + block_boxes[threadIdx.x * 4 + 0] = dev_boxes[(block_threads * col_start + threadIdx.x) * 4 + 0]; + block_boxes[threadIdx.x * 4 + 1] = dev_boxes[(block_threads * col_start + threadIdx.x) * 4 + 1]; + block_boxes[threadIdx.x * 4 + 2] = dev_boxes[(block_threads * col_start + threadIdx.x) * 4 + 2]; + block_boxes[threadIdx.x * 4 + 3] = dev_boxes[(block_threads * col_start + threadIdx.x) * 4 + 3]; } __syncthreads(); if (threadIdx.x < row_size) { const int cur_box_idx = block_threads * row_start + threadIdx.x; - const float cur_box[NUM_2D_BOX_CORNERS_MACRO] = {dev_boxes[cur_box_idx*NUM_BOX_CORNERS + 0], - dev_boxes[cur_box_idx*NUM_BOX_CORNERS + 1], - dev_boxes[cur_box_idx*NUM_BOX_CORNERS + 2], - dev_boxes[cur_box_idx*NUM_BOX_CORNERS + 3]}; + const float cur_box[4] = {dev_boxes[cur_box_idx*4 + 0], + dev_boxes[cur_box_idx*4 + 1], + dev_boxes[cur_box_idx*4 + 2], + dev_boxes[cur_box_idx*4 + 3]}; unsigned long long t = 0; int start = 0; if (row_start == col_start) @@ -59,7 +58,7 @@ __global__ void nms_kernel(const int n_boxes, const float nms_overlap_thresh, } for (int i = start; i < col_size; i++) { - if (devIoU(cur_box, block_boxes + i * NUM_BOX_CORNERS) > nms_overlap_thresh) + if (devIoU(cur_box, block_boxes + i * 4) > nms_overlap_thresh) { t |= 1ULL << i; } @@ -69,9 +68,8 @@ __global__ void nms_kernel(const int n_boxes, const float nms_overlap_thresh, } } -NMSCuda::NMSCuda(const int NUM_THREADS, const int NUM_BOX_CORNERS ,const float nms_overlap_threshold): +NMSCuda::NMSCuda(const int NUM_THREADS, const float nms_overlap_threshold): NUM_THREADS_(NUM_THREADS), -NUM_BOX_CORNERS_(NUM_BOX_CORNERS), nms_overlap_threshold_(nms_overlap_threshold) { } @@ -85,7 +83,7 @@ void NMSCuda::doNMSCuda(const int host_filter_count, float* dev_sorted_box_for_n unsigned long long *dev_mask = NULL; GPU_CHECK(cudaMalloc(&dev_mask, host_filter_count * col_blocks * sizeof(unsigned long long))); - nms_kernel<<>>(host_filter_count, nms_overlap_threshold_, dev_sorted_box_for_nms, dev_mask, NUM_BOX_CORNERS_); + nms_kernel<<>>(host_filter_count, nms_overlap_threshold_, dev_sorted_box_for_nms, dev_mask); // postprocess for nms output std::vector host_mask(host_filter_count * col_blocks); diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp index 52fa314bf85..4035f399ffa 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp @@ -14,89 +14,144 @@ * limitations under the License. */ -// headers in STL + +//headers in STL #include #include -// headers in local files -#include "lidar_point_pillars/point_pillars.h" - -// clang-format off -PointPillars::PointPillars(const bool reproduce_result_mode, const float score_threshold, - const float nms_overlap_threshold, const std::string pfe_onnx_file, - const std::string rpn_onnx_file) - : reproduce_result_mode_(reproduce_result_mode) - , score_threshold_(score_threshold) - , nms_overlap_threshold_(nms_overlap_threshold) - , pfe_onnx_file_(pfe_onnx_file) - , rpn_onnx_file_(rpn_onnx_file) - , MAX_NUM_PILLARS_(12000) - , MAX_NUM_POINTS_PER_PILLAR_(100) - , PFE_OUTPUT_SIZE_(MAX_NUM_PILLARS_ * 64) - , GRID_X_SIZE_(432) - , GRID_Y_SIZE_(496) - , GRID_Z_SIZE_(1) - , RPN_INPUT_SIZE_(64 * GRID_X_SIZE_ * GRID_Y_SIZE_) - , NUM_ANCHOR_X_INDS_(GRID_X_SIZE_ * 0.5) - , NUM_ANCHOR_Y_INDS_(GRID_Y_SIZE_ * 0.5) - , NUM_ANCHOR_R_INDS_(2) - , NUM_ANCHOR_(NUM_ANCHOR_X_INDS_ * NUM_ANCHOR_Y_INDS_ * NUM_ANCHOR_R_INDS_) - , RPN_BOX_OUTPUT_SIZE_(NUM_ANCHOR_ * 7) - , RPN_CLS_OUTPUT_SIZE_(NUM_ANCHOR_) - , RPN_DIR_OUTPUT_SIZE_(NUM_ANCHOR_ * 2) - , PILLAR_X_SIZE_(0.16f) - , PILLAR_Y_SIZE_(0.16f) - , PILLAR_Z_SIZE_(4.0f) - , MIN_X_RANGE_(0.0f) - , MIN_Y_RANGE_(-39.68f) - , MIN_Z_RANGE_(-3.0f) - , MAX_X_RANGE_(69.12f) - , MAX_Y_RANGE_(39.68f) - , MAX_Z_RANGE_(1) - , BATCH_SIZE_(1) - , NUM_INDS_FOR_SCAN_(512) - , NUM_THREADS_(64) // if you change NUM_THREADS_, need to modify NUM_THREADS_MACRO in common.h - , SENSOR_HEIGHT_(1.73f) - , ANCHOR_DX_SIZE_(1.6f) - , ANCHOR_DY_SIZE_(3.9f) - , ANCHOR_DZ_SIZE_(1.56f) - , NUM_BOX_CORNERS_(4) - , NUM_OUTPUT_BOX_FEATURE_(7) +//headers in ROS +#include + +//headers in local files +#include "point_pillars.h" + + +PointPillars::PointPillars(const bool reproduce_result_mode, const float score_threshold, const float nms_overlap_threshold, + const std::string pfe_onnx_file, const std::string rpn_onnx_file): +reproduce_result_mode_(reproduce_result_mode), +score_threshold_(score_threshold), +nms_overlap_threshold_(nms_overlap_threshold), +pfe_onnx_file_(pfe_onnx_file), +rpn_onnx_file_(rpn_onnx_file), +MAX_NUM_PILLARS_(12000), +MAX_NUM_POINTS_PER_PILLAR_(100), +PFE_OUTPUT_SIZE_(MAX_NUM_PILLARS_*64), +GRID_X_SIZE_(432), +GRID_Y_SIZE_(496), +GRID_Z_SIZE_(1), +RPN_INPUT_SIZE_(64*GRID_X_SIZE_*GRID_Y_SIZE_), +NUM_ANCHOR_X_INDS_(GRID_X_SIZE_*0.5), +NUM_ANCHOR_Y_INDS_(GRID_Y_SIZE_*0.5), +NUM_ANCHOR_R_INDS_(2), +NUM_ANCHOR_(NUM_ANCHOR_X_INDS_*NUM_ANCHOR_Y_INDS_*NUM_ANCHOR_R_INDS_), +RPN_BOX_OUTPUT_SIZE_(NUM_ANCHOR_*7) , +RPN_CLS_OUTPUT_SIZE_(NUM_ANCHOR_), +RPN_DIR_OUTPUT_SIZE_(NUM_ANCHOR_*2), +PILLAR_X_SIZE_(0.16), +PILLAR_Y_SIZE_(0.16), +PILLAR_Z_SIZE_(4.0), +MIN_X_RANGE_(0.0), +MIN_Y_RANGE_(-39.68), +MIN_Z_RANGE_(-3.0), +MAX_X_RANGE_(69.12), +MAX_Y_RANGE_(39.68), +MAX_Z_RANGE_(1), +BATCH_SIZE_(1), +NUM_INDS_FOR_SCAN_(512), +NUM_THREADS_(64),//if you chancge NUM_THREADS_, need to modify nms_kernel's shared mempry size +SENSOR_HEIGHT_(1.73), +ANCHOR_DX_SIZE_(1.6), +ANCHOR_DY_SIZE_(3.9), +ANCHOR_DZ_SIZE_(1.56) { - if (reproduce_result_mode_) + anchors_px_ = new float[NUM_ANCHOR_]; + anchors_py_ = new float[NUM_ANCHOR_]; + anchors_pz_ = new float[NUM_ANCHOR_]; + anchors_dx_ = new float[NUM_ANCHOR_]; + anchors_dy_ = new float[NUM_ANCHOR_]; + anchors_dz_ = new float[NUM_ANCHOR_]; + anchors_ro_ = new float[NUM_ANCHOR_]; + box_anchors_min_x_ = new float[NUM_ANCHOR_]; + box_anchors_min_y_ = new float[NUM_ANCHOR_]; + box_anchors_max_x_ = new float[NUM_ANCHOR_]; + box_anchors_max_y_ = new float[NUM_ANCHOR_]; + + + if(reproduce_result_mode_) { - preprocess_points_ptr_.reset(new PreprocessPoints(MAX_NUM_PILLARS_, MAX_NUM_POINTS_PER_PILLAR_, GRID_X_SIZE_, - GRID_Y_SIZE_, GRID_Z_SIZE_, PILLAR_X_SIZE_, PILLAR_Y_SIZE_, - PILLAR_Z_SIZE_, MIN_X_RANGE_, MIN_Y_RANGE_, MIN_Z_RANGE_, - NUM_INDS_FOR_SCAN_, NUM_BOX_CORNERS_)); + preprocess_points_ptr_.reset(new PreprocessPoints( + MAX_NUM_PILLARS_, + MAX_NUM_POINTS_PER_PILLAR_, + GRID_X_SIZE_, + GRID_Y_SIZE_, + GRID_Z_SIZE_, + PILLAR_X_SIZE_, + PILLAR_Y_SIZE_, + PILLAR_Z_SIZE_, + MIN_X_RANGE_, + MIN_Y_RANGE_, + MIN_Z_RANGE_, + NUM_INDS_FOR_SCAN_)); } else { preprocess_points_cuda_ptr_.reset(new PreprocessPointsCuda( - NUM_THREADS_, MAX_NUM_PILLARS_, MAX_NUM_POINTS_PER_PILLAR_, NUM_INDS_FOR_SCAN_, GRID_X_SIZE_, GRID_Y_SIZE_, - GRID_Z_SIZE_, PILLAR_X_SIZE_, PILLAR_Y_SIZE_, PILLAR_Z_SIZE_, MIN_X_RANGE_, MIN_Y_RANGE_, MIN_Z_RANGE_, NUM_BOX_CORNERS_)); + NUM_THREADS_, + MAX_NUM_PILLARS_, + MAX_NUM_POINTS_PER_PILLAR_, + NUM_INDS_FOR_SCAN_, + GRID_X_SIZE_, + GRID_Y_SIZE_, + GRID_Z_SIZE_, + PILLAR_X_SIZE_, + PILLAR_Y_SIZE_, + PILLAR_Z_SIZE_, + MIN_X_RANGE_, + MIN_Y_RANGE_, + MIN_Z_RANGE_)); } - anchor_mask_cuda_ptr_.reset(new AnchorMaskCuda(NUM_INDS_FOR_SCAN_, NUM_ANCHOR_X_INDS_, NUM_ANCHOR_Y_INDS_, - NUM_ANCHOR_R_INDS_, MIN_X_RANGE_, MIN_Y_RANGE_, PILLAR_X_SIZE_, - PILLAR_Y_SIZE_, GRID_X_SIZE_, GRID_Y_SIZE_)); - - scatter_cuda_ptr_.reset(new ScatterCuda(NUM_THREADS_, MAX_NUM_PILLARS_, GRID_X_SIZE_, GRID_Y_SIZE_)); + anchor_mask_cuda_ptr_.reset(new AnchorMaskCuda( + NUM_INDS_FOR_SCAN_, + NUM_ANCHOR_X_INDS_, + NUM_ANCHOR_Y_INDS_, + NUM_ANCHOR_R_INDS_, + MIN_X_RANGE_, + MIN_Y_RANGE_, + PILLAR_X_SIZE_, + PILLAR_Y_SIZE_, + GRID_X_SIZE_, + GRID_Y_SIZE_ + )); + + scatter_cuda_ptr_.reset(new ScatterCuda( + NUM_THREADS_, + MAX_NUM_PILLARS_, + GRID_X_SIZE_, + GRID_Y_SIZE_ + )); const float FLOAT_MIN = std::numeric_limits::lowest(); const float FLOAT_MAX = std::numeric_limits::max(); - postprocess_cuda_ptr_.reset(new PostprocessCuda(FLOAT_MIN, FLOAT_MAX, NUM_ANCHOR_X_INDS_, NUM_ANCHOR_Y_INDS_, - NUM_ANCHOR_R_INDS_, score_threshold_, NUM_THREADS_, - nms_overlap_threshold_, NUM_BOX_CORNERS_, NUM_OUTPUT_BOX_FEATURE_)); + postprocess_cuda_ptr_.reset(new PostprocessCuda( + FLOAT_MIN, + FLOAT_MAX, + NUM_ANCHOR_X_INDS_, + NUM_ANCHOR_Y_INDS_, + NUM_ANCHOR_R_INDS_, + score_threshold_, + NUM_THREADS_, + nms_overlap_threshold_ + )); deviceMemoryMalloc(); initTRT(); initAnchors(); } -// clang-format on PointPillars::~PointPillars() { + delete[] anchors_px_; delete[] anchors_py_; delete[] anchors_pz_; @@ -125,9 +180,9 @@ PointPillars::~PointPillars() GPU_CHECK(cudaFree(dev_pillar_z_)); GPU_CHECK(cudaFree(dev_pillar_i_)); - GPU_CHECK(cudaFree(dev_x_coors_for_sub_shaped_)); - GPU_CHECK(cudaFree(dev_y_coors_for_sub_shaped_)); - GPU_CHECK(cudaFree(dev_pillar_feature_mask_)); + GPU_CHECK(cudaFree( dev_x_coors_for_sub_shaped_ )); + GPU_CHECK(cudaFree( dev_y_coors_for_sub_shaped_ )); + GPU_CHECK(cudaFree( dev_pillar_feature_mask_ )); GPU_CHECK(cudaFree(dev_cumsum_along_x_)); GPU_CHECK(cudaFree(dev_cumsum_along_y_)); @@ -148,6 +203,7 @@ PointPillars::~PointPillars() GPU_CHECK(cudaFree(pfe_buffers_[7])); GPU_CHECK(cudaFree(pfe_buffers_[8])); + GPU_CHECK(cudaFree(rpn_buffers_[0])); GPU_CHECK(cudaFree(rpn_buffers_[1])); GPU_CHECK(cudaFree(rpn_buffers_[2])); @@ -168,6 +224,8 @@ PointPillars::~PointPillars() GPU_CHECK(cudaFree(dev_box_for_nms_)); GPU_CHECK(cudaFree(dev_filter_count_)); + + pfe_context_->destroy(); rpn_context_->destroy(); @@ -179,40 +237,40 @@ PointPillars::~PointPillars() void PointPillars::deviceMemoryMalloc() { - // clang-format off - GPU_CHECK(cudaMalloc((void**)&dev_pillar_x_in_coors_,GRID_Y_SIZE_ * GRID_X_SIZE_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_pillar_y_in_coors_,GRID_Y_SIZE_ * GRID_X_SIZE_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_pillar_z_in_coors_,GRID_Y_SIZE_ * GRID_X_SIZE_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_pillar_i_in_coors_,GRID_Y_SIZE_ * GRID_X_SIZE_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_pillar_count_histo_, GRID_Y_SIZE_ * GRID_X_SIZE_ * sizeof(int))); - // clang-format on - - GPU_CHECK(cudaMalloc((void**)&dev_x_coors_, MAX_NUM_PILLARS_ * sizeof(int))); - GPU_CHECK(cudaMalloc((void**)&dev_y_coors_, MAX_NUM_PILLARS_ * sizeof(int))); - GPU_CHECK(cudaMalloc((void**)&dev_num_points_per_pillar_, MAX_NUM_PILLARS_ * sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_sparse_pillar_map_, NUM_INDS_FOR_SCAN_ * NUM_INDS_FOR_SCAN_ * sizeof(int))); - - GPU_CHECK(cudaMalloc((void**)&dev_pillar_x_, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_pillar_y_, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_pillar_z_, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_pillar_i_, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); - - // clang-format off - GPU_CHECK(cudaMalloc((void**)&dev_x_coors_for_sub_shaped_, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_y_coors_for_sub_shaped_, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_pillar_feature_mask_, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); - // clang-format on - - // cumsum kernel - GPU_CHECK(cudaMalloc((void**)&dev_cumsum_along_x_, NUM_INDS_FOR_SCAN_ * NUM_INDS_FOR_SCAN_ * sizeof(int))); - GPU_CHECK(cudaMalloc((void**)&dev_cumsum_along_y_, NUM_INDS_FOR_SCAN_ * NUM_INDS_FOR_SCAN_ * sizeof(int))); + GPU_CHECK(cudaMalloc((void**)&dev_pillar_x_in_coors_, GRID_Y_SIZE_*GRID_X_SIZE_*MAX_NUM_POINTS_PER_PILLAR_* sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_pillar_y_in_coors_, GRID_Y_SIZE_*GRID_X_SIZE_*MAX_NUM_POINTS_PER_PILLAR_* sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_pillar_z_in_coors_, GRID_Y_SIZE_*GRID_X_SIZE_*MAX_NUM_POINTS_PER_PILLAR_* sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_pillar_i_in_coors_, GRID_Y_SIZE_*GRID_X_SIZE_*MAX_NUM_POINTS_PER_PILLAR_* sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_pillar_count_histo_, GRID_Y_SIZE_*GRID_X_SIZE_*sizeof(int))); + + GPU_CHECK(cudaMalloc((void**)&dev_x_coors_, MAX_NUM_PILLARS_* sizeof(int))); + GPU_CHECK(cudaMalloc((void**)&dev_y_coors_, MAX_NUM_PILLARS_* sizeof(int))); + GPU_CHECK(cudaMalloc((void**)&dev_num_points_per_pillar_, MAX_NUM_PILLARS_*sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_sparse_pillar_map_,NUM_INDS_FOR_SCAN_*NUM_INDS_FOR_SCAN_*sizeof(int))); + + + GPU_CHECK(cudaMalloc((void**)&dev_pillar_x_, MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_* sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_pillar_y_, MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_* sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_pillar_z_, MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_* sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_pillar_i_, MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_* sizeof(float))); + + + GPU_CHECK(cudaMalloc((void**)&dev_x_coors_for_sub_shaped_, MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_* sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_y_coors_for_sub_shaped_, MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_* sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_pillar_feature_mask_, MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_* sizeof(float))); + + //cumsum kernel + GPU_CHECK(cudaMalloc((void**)&dev_cumsum_along_x_, NUM_INDS_FOR_SCAN_*NUM_INDS_FOR_SCAN_*sizeof(int))); + GPU_CHECK(cudaMalloc((void**)&dev_cumsum_along_y_, NUM_INDS_FOR_SCAN_*NUM_INDS_FOR_SCAN_*sizeof(int))); + // for make anchor mask kernel - GPU_CHECK(cudaMalloc((void**)&dev_box_anchors_min_x_, NUM_ANCHOR_ * sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_box_anchors_min_y_, NUM_ANCHOR_ * sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_box_anchors_max_x_, NUM_ANCHOR_ * sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_box_anchors_max_y_, NUM_ANCHOR_ * sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_anchor_mask_, NUM_ANCHOR_ * sizeof(int))); + GPU_CHECK(cudaMalloc((void**)&dev_box_anchors_min_x_, NUM_ANCHOR_*sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_box_anchors_min_y_, NUM_ANCHOR_*sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_box_anchors_max_x_, NUM_ANCHOR_*sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_box_anchors_max_y_, NUM_ANCHOR_*sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_anchor_mask_, NUM_ANCHOR_*sizeof(int))); + // for trt inference // create GPU buffers and a stream @@ -232,52 +290,27 @@ void PointPillars::deviceMemoryMalloc() GPU_CHECK(cudaMalloc(&rpn_buffers_[3], RPN_DIR_OUTPUT_SIZE_ * sizeof(float))); // for scatter kernel - GPU_CHECK(cudaMalloc((void**)&dev_scattered_feature_, NUM_THREADS_ * GRID_Y_SIZE_ * GRID_X_SIZE_ * sizeof(float))); - - // for filter - GPU_CHECK(cudaMalloc((void**)&dev_anchors_px_, NUM_ANCHOR_ * sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_anchors_py_, NUM_ANCHOR_ * sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_anchors_pz_, NUM_ANCHOR_ * sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_anchors_dx_, NUM_ANCHOR_ * sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_anchors_dy_, NUM_ANCHOR_ * sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_anchors_dz_, NUM_ANCHOR_ * sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_anchors_ro_, NUM_ANCHOR_ * sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_filtered_box_, NUM_ANCHOR_ * NUM_OUTPUT_BOX_FEATURE_ * sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_filtered_score_, NUM_ANCHOR_ * sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_filtered_dir_, NUM_ANCHOR_ * sizeof(int))); - GPU_CHECK(cudaMalloc((void**)&dev_box_for_nms_, NUM_ANCHOR_ * NUM_BOX_CORNERS_ * sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_scattered_feature_, 64*GRID_Y_SIZE_*GRID_X_SIZE_*sizeof(float) ) ); + + //for filter + GPU_CHECK(cudaMalloc((void**)&dev_anchors_px_, NUM_ANCHOR_*sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_anchors_py_, NUM_ANCHOR_*sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_anchors_pz_, NUM_ANCHOR_*sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_anchors_dx_, NUM_ANCHOR_*sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_anchors_dy_, NUM_ANCHOR_*sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_anchors_dz_, NUM_ANCHOR_*sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_anchors_ro_, NUM_ANCHOR_*sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_filtered_box_, NUM_ANCHOR_*7*sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_filtered_score_, NUM_ANCHOR_*sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_filtered_dir_, NUM_ANCHOR_*sizeof(int))); + GPU_CHECK(cudaMalloc((void**)&dev_box_for_nms_, NUM_ANCHOR_*4*sizeof(float))); GPU_CHECK(cudaMalloc((void**)&dev_filter_count_, sizeof(int))); } void PointPillars::initAnchors() -{ - // allocate memory for anchors - anchors_px_ = new float[NUM_ANCHOR_]; - anchors_py_ = new float[NUM_ANCHOR_]; - anchors_pz_ = new float[NUM_ANCHOR_]; - anchors_dx_ = new float[NUM_ANCHOR_]; - anchors_dy_ = new float[NUM_ANCHOR_]; - anchors_dz_ = new float[NUM_ANCHOR_]; - anchors_ro_ = new float[NUM_ANCHOR_]; - box_anchors_min_x_ = new float[NUM_ANCHOR_]; - box_anchors_min_y_ = new float[NUM_ANCHOR_]; - box_anchors_max_x_ = new float[NUM_ANCHOR_]; - box_anchors_max_y_ = new float[NUM_ANCHOR_]; - // deallocate these memories in deconstructor - - generateAnchors(anchors_px_, anchors_py_, anchors_pz_, anchors_dx_, anchors_dy_, anchors_dz_, anchors_ro_); - - convertAnchors2BoxAnchors(anchors_px_, anchors_py_, anchors_dx_, anchors_dy_, box_anchors_min_x_, box_anchors_min_y_, - box_anchors_max_x_, box_anchors_max_y_); - - putAnchorsInDeviceMemory(); -} - -void PointPillars::generateAnchors(float* anchors_px_, float* anchors_py_, float* anchors_pz_, float* anchors_dx_, - float* anchors_dy_, float* anchors_dz_, float* anchors_ro_) { // zero clear - for (size_t i = 0; i < NUM_ANCHOR_; i++) + for(size_t i = 0; i < NUM_ANCHOR_; i++) { anchors_px_[i] = 0; anchors_py_[i] = 0; @@ -292,91 +325,92 @@ void PointPillars::generateAnchors(float* anchors_px_, float* anchors_py_, float box_anchors_max_y_[i] = 0; } - float x_stride = PILLAR_X_SIZE_ * 2.0f; - float y_stride = PILLAR_Y_SIZE_ * 2.0f; + float x_stride = PILLAR_X_SIZE_*2; + float y_stride = PILLAR_Y_SIZE_*2; float x_offset = MIN_X_RANGE_ + PILLAR_X_SIZE_; float y_offset = MIN_Y_RANGE_ + PILLAR_Y_SIZE_; - float anchor_x_count[NUM_ANCHOR_X_INDS_] = { 0 }; - for (size_t i = 0; i < NUM_ANCHOR_X_INDS_; i++) + float anchor_x_count[NUM_ANCHOR_X_INDS_] = {0}; + for(size_t i = 0; i < NUM_ANCHOR_X_INDS_; i++) { - anchor_x_count[i] = float(i) * x_stride + x_offset; + anchor_x_count[i] = float(i)*x_stride + x_offset; } - float anchor_y_count[NUM_ANCHOR_Y_INDS_] = { 0 }; - for (size_t i = 0; i < NUM_ANCHOR_Y_INDS_; i++) + float anchor_y_count[NUM_ANCHOR_Y_INDS_] = {0}; + for(size_t i = 0; i < NUM_ANCHOR_Y_INDS_; i++) { - anchor_y_count[i] = float(i) * y_stride + y_offset; + anchor_y_count[i] = float(i)*y_stride + y_offset; } - float anchor_r_count[NUM_ANCHOR_R_INDS_] = { 0, M_PI / 2 }; + float anchor_r_count[NUM_ANCHOR_R_INDS_] = {0, M_PI/2}; // np.meshgrid - for (size_t y = 0; y < NUM_ANCHOR_Y_INDS_; y++) + for(size_t y= 0; y < NUM_ANCHOR_Y_INDS_; y++) { - for (size_t x = 0; x < NUM_ANCHOR_X_INDS_; x++) + for(size_t x = 0; x < NUM_ANCHOR_X_INDS_; x++) { - for (size_t r = 0; r < NUM_ANCHOR_R_INDS_; r++) + for(size_t r=0 ; r < NUM_ANCHOR_R_INDS_; r++) { - int ind = y * NUM_ANCHOR_X_INDS_ * NUM_ANCHOR_R_INDS_ + x * NUM_ANCHOR_R_INDS_ + r; + int ind = y*NUM_ANCHOR_X_INDS_*NUM_ANCHOR_R_INDS_ + x*NUM_ANCHOR_R_INDS_ + r; anchors_px_[ind] = anchor_x_count[x]; anchors_py_[ind] = anchor_y_count[y]; anchors_ro_[ind] = anchor_r_count[r]; - anchors_pz_[ind] = -1 * SENSOR_HEIGHT_; + anchors_pz_[ind] = -1*SENSOR_HEIGHT_; anchors_dx_[ind] = ANCHOR_DX_SIZE_; anchors_dy_[ind] = ANCHOR_DY_SIZE_; anchors_dz_[ind] = ANCHOR_DZ_SIZE_; } } } + convertAnchors2BoxAnchors(anchors_px_, anchors_py_, anchors_dx_, anchors_dy_); + + putAnchorsInDeviceMemory(); } void PointPillars::putAnchorsInDeviceMemory() { - // clang-format off - GPU_CHECK(cudaMemcpy(dev_box_anchors_min_x_, box_anchors_min_x_, NUM_ANCHOR_ * sizeof(float), cudaMemcpyHostToDevice)); - GPU_CHECK(cudaMemcpy(dev_box_anchors_min_y_, box_anchors_min_y_, NUM_ANCHOR_ * sizeof(float), cudaMemcpyHostToDevice)); - GPU_CHECK(cudaMemcpy(dev_box_anchors_max_x_, box_anchors_max_x_, NUM_ANCHOR_ * sizeof(float), cudaMemcpyHostToDevice)); - GPU_CHECK(cudaMemcpy(dev_box_anchors_max_y_, box_anchors_max_y_, NUM_ANCHOR_ * sizeof(float), cudaMemcpyHostToDevice)); - // clang-format on - - GPU_CHECK(cudaMemcpy(dev_anchors_px_, anchors_px_, NUM_ANCHOR_ * sizeof(float), cudaMemcpyHostToDevice)); - GPU_CHECK(cudaMemcpy(dev_anchors_py_, anchors_py_, NUM_ANCHOR_ * sizeof(float), cudaMemcpyHostToDevice)); - GPU_CHECK(cudaMemcpy(dev_anchors_pz_, anchors_pz_, NUM_ANCHOR_ * sizeof(float), cudaMemcpyHostToDevice)); - GPU_CHECK(cudaMemcpy(dev_anchors_dx_, anchors_dx_, NUM_ANCHOR_ * sizeof(float), cudaMemcpyHostToDevice)); - GPU_CHECK(cudaMemcpy(dev_anchors_dy_, anchors_dy_, NUM_ANCHOR_ * sizeof(float), cudaMemcpyHostToDevice)); - GPU_CHECK(cudaMemcpy(dev_anchors_dz_, anchors_dz_, NUM_ANCHOR_ * sizeof(float), cudaMemcpyHostToDevice)); - GPU_CHECK(cudaMemcpy(dev_anchors_ro_, anchors_ro_, NUM_ANCHOR_ * sizeof(float), cudaMemcpyHostToDevice)); + GPU_CHECK(cudaMemcpy(dev_box_anchors_min_x_, box_anchors_min_x_, NUM_ANCHOR_*sizeof(float), cudaMemcpyHostToDevice ) ); + GPU_CHECK(cudaMemcpy(dev_box_anchors_min_y_, box_anchors_min_y_, NUM_ANCHOR_*sizeof(float), cudaMemcpyHostToDevice ) ); + GPU_CHECK(cudaMemcpy(dev_box_anchors_max_x_, box_anchors_max_x_, NUM_ANCHOR_*sizeof(float), cudaMemcpyHostToDevice ) ); + GPU_CHECK(cudaMemcpy(dev_box_anchors_max_y_, box_anchors_max_y_, NUM_ANCHOR_*sizeof(float), cudaMemcpyHostToDevice ) ); + + GPU_CHECK(cudaMemcpy(dev_anchors_px_, anchors_px_, NUM_ANCHOR_*sizeof(float), cudaMemcpyHostToDevice)); + GPU_CHECK(cudaMemcpy(dev_anchors_py_, anchors_py_, NUM_ANCHOR_*sizeof(float), cudaMemcpyHostToDevice)); + GPU_CHECK(cudaMemcpy(dev_anchors_pz_, anchors_pz_, NUM_ANCHOR_*sizeof(float), cudaMemcpyHostToDevice)); + GPU_CHECK(cudaMemcpy(dev_anchors_dx_, anchors_dx_, NUM_ANCHOR_*sizeof(float), cudaMemcpyHostToDevice)); + GPU_CHECK(cudaMemcpy(dev_anchors_dy_, anchors_dy_, NUM_ANCHOR_*sizeof(float), cudaMemcpyHostToDevice)); + GPU_CHECK(cudaMemcpy(dev_anchors_dz_, anchors_dz_, NUM_ANCHOR_*sizeof(float), cudaMemcpyHostToDevice)); + GPU_CHECK(cudaMemcpy(dev_anchors_ro_, anchors_ro_, NUM_ANCHOR_*sizeof(float), cudaMemcpyHostToDevice)); + } -void PointPillars::convertAnchors2BoxAnchors(float* anchors_px, float* anchors_py, float* anchors_dx, float* anchors_dy, - float* box_anchors_min_x_, float* box_anchors_min_y_, - float* box_anchors_max_x_, float* box_anchors_max_y_) +void PointPillars::convertAnchors2BoxAnchors(float* anchors_px, float* anchors_py, + float* anchors_dx, float* anchors_dy) { - // flipping box's dimension - float flipped_anchors_dx[NUM_ANCHOR_] = { 0 }; - float flipped_anchors_dy[NUM_ANCHOR_] = { 0 }; - for (size_t x = 0; x < NUM_ANCHOR_X_INDS_; x++) + // flip box's dimension when the at the third axis == 1 + float flipped_anchors_dx[NUM_ANCHOR_] = {0}; + float flipped_anchors_dy[NUM_ANCHOR_] = {0}; + for(size_t x = 0; x < NUM_ANCHOR_X_INDS_; x++) { - for (size_t y = 0; y < NUM_ANCHOR_Y_INDS_; y++) + for(size_t y= 0; y < NUM_ANCHOR_Y_INDS_; y++) { - int base_ind = x * NUM_ANCHOR_Y_INDS_ * NUM_ANCHOR_R_INDS_ + y * NUM_ANCHOR_R_INDS_; + int base_ind = x*NUM_ANCHOR_Y_INDS_*NUM_ANCHOR_R_INDS_ + y*NUM_ANCHOR_R_INDS_; flipped_anchors_dx[base_ind + 0] = ANCHOR_DX_SIZE_; flipped_anchors_dy[base_ind + 0] = ANCHOR_DY_SIZE_; flipped_anchors_dx[base_ind + 1] = ANCHOR_DY_SIZE_; flipped_anchors_dy[base_ind + 1] = ANCHOR_DX_SIZE_; } } - for (size_t x = 0; x < NUM_ANCHOR_X_INDS_; x++) + for(size_t x = 0; x < NUM_ANCHOR_X_INDS_; x++) { - for (size_t y = 0; y < NUM_ANCHOR_Y_INDS_; y++) + for(size_t y= 0; y < NUM_ANCHOR_Y_INDS_; y++) { - for (size_t r = 0; r < NUM_ANCHOR_R_INDS_; r++) + for(size_t r=0 ; r < NUM_ANCHOR_R_INDS_; r++) { - int ind = x * NUM_ANCHOR_Y_INDS_ * NUM_ANCHOR_R_INDS_ + y * NUM_ANCHOR_R_INDS_ + r; - box_anchors_min_x_[ind] = anchors_px[ind] - flipped_anchors_dx[ind] / 2.0f; - box_anchors_min_y_[ind] = anchors_py[ind] - flipped_anchors_dy[ind] / 2.0f; - box_anchors_max_x_[ind] = anchors_px[ind] + flipped_anchors_dx[ind] / 2.0f; - box_anchors_max_y_[ind] = anchors_py[ind] + flipped_anchors_dy[ind] / 2.0f; + int ind = x*NUM_ANCHOR_Y_INDS_*NUM_ANCHOR_R_INDS_ + y*NUM_ANCHOR_R_INDS_ + r; + box_anchors_min_x_[ind] = anchors_px[ind] - flipped_anchors_dx[ind]/2; + box_anchors_min_y_[ind] = anchors_py[ind] - flipped_anchors_dy[ind]/2; + box_anchors_max_x_[ind] = anchors_px[ind] + flipped_anchors_dx[ind]/2; + box_anchors_max_y_[ind] = anchors_py[ind] + flipped_anchors_dy[ind]/2; } } } @@ -385,44 +419,42 @@ void PointPillars::convertAnchors2BoxAnchors(float* anchors_px, float* anchors_p void PointPillars::initTRT() { // create a TensorRT model from the onnx model and serialize it to a stream - nvinfer1::IHostMemory* pfe_trt_model_stream{ nullptr }; - nvinfer1::IHostMemory* rpn_trt_model_stream{ nullptr }; + nvinfer1::IHostMemory* pfe_trt_model_stream{nullptr}; + nvinfer1::IHostMemory* rpn_trt_model_stream{nullptr}; onnxToTRTModel(pfe_onnx_file_, pfe_trt_model_stream); onnxToTRTModel(rpn_onnx_file_, rpn_trt_model_stream); - if (pfe_trt_model_stream == nullptr || rpn_trt_model_stream == nullptr) - {//use std:cerr instead of ROS_ERROR because want to keep this fille ros-agnostics - std::cerr<< "Failed to load ONNX file " << std::endl; + if(pfe_trt_model_stream == nullptr || rpn_trt_model_stream == nullptr) + { + ROS_ERROR("Failed to load %s or %s ", pfe_onnx_file_.c_str(), rpn_onnx_file_.c_str()); } // deserialize the engine pfe_runtime_ = nvinfer1::createInferRuntime(g_logger_); rpn_runtime_ = nvinfer1::createInferRuntime(g_logger_); - if (pfe_runtime_ == nullptr || rpn_runtime_ == nullptr) + if(pfe_runtime_ == nullptr || rpn_runtime_ == nullptr) { - std::cerr<<"Failed to create TensorRT Runtime object."<deserializeCudaEngine(pfe_trt_model_stream->data(), pfe_trt_model_stream->size(), nullptr); - rpn_engine_ = - rpn_runtime_->deserializeCudaEngine(rpn_trt_model_stream->data(), rpn_trt_model_stream->size(), nullptr); - if (pfe_engine_ == nullptr || rpn_engine_ == nullptr) + pfe_engine_ = pfe_runtime_->deserializeCudaEngine(pfe_trt_model_stream->data(), pfe_trt_model_stream->size(), nullptr); + rpn_engine_ = rpn_runtime_->deserializeCudaEngine(rpn_trt_model_stream->data(), rpn_trt_model_stream->size(), nullptr); + if(pfe_engine_ == nullptr || rpn_engine_ == nullptr) { - std::cerr << "Failed to create TensorRT Engine." << std::endl; + ROS_ERROR("Failed to create TensorRT Engine."); } pfe_trt_model_stream->destroy(); rpn_trt_model_stream->destroy(); pfe_context_ = pfe_engine_->createExecutionContext(); rpn_context_ = rpn_engine_->createExecutionContext(); - if (pfe_context_ == nullptr || rpn_context_ == nullptr) + if(pfe_context_ == nullptr || rpn_context_ == nullptr) { - std::cerr << "Failed to create TensorRT Execution Context." << std::endl;; + ROS_ERROR("Failed to create TensorRT Execution Context."); } } -void PointPillars::onnxToTRTModel(const std::string& model_file, // name of the onnx model - nvinfer1::IHostMemory*& trt_model_stream) // output buffer for the TensorRT model +void PointPillars::onnxToTRTModel(const std::string& model_file, // name of the onnx model + nvinfer1::IHostMemory*& trt_model_stream) // output buffer for the TensorRT model { - int verbosity = (int)nvinfer1::ILogger::Severity::kWARNING; + int verbosity = (int) nvinfer1::ILogger::Severity::kWARNING; // create the builder nvinfer1::IBuilder* builder = nvinfer1::createInferBuilder(g_logger_); @@ -432,9 +464,9 @@ void PointPillars::onnxToTRTModel(const std::string& model_file, // if (!parser->parseFromFile(model_file.c_str(), verbosity)) { - std::string msg("failed to parse onnx file"); - g_logger_.log(nvinfer1::ILogger::Severity::kERROR, msg.c_str()); - exit(EXIT_FAILURE); + std::string msg("failed to parse onnx file"); + g_logger_.log(nvinfer1::ILogger::Severity::kERROR, msg.c_str()); + exit(EXIT_FAILURE); } // Build the engine @@ -454,48 +486,48 @@ void PointPillars::onnxToTRTModel(const std::string& model_file, // void PointPillars::preprocessCPU(const float* in_points_array, const int in_num_points) { - int x_coors[MAX_NUM_PILLARS_] = { 0 }; - int y_coors[MAX_NUM_PILLARS_] = { 0 }; - float num_points_per_pillar[MAX_NUM_PILLARS_] = { 0 }; - float* pillar_x = new float[MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_]; - float* pillar_y = new float[MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_]; - float* pillar_z = new float[MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_]; - float* pillar_i = new float[MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_]; - - float* x_coors_for_sub_shaped = new float[MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_]; - float* y_coors_for_sub_shaped = new float[MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_]; - float* pillar_feature_mask = new float[MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_]; - - float* sparse_pillar_map = new float[NUM_INDS_FOR_SCAN_ * NUM_INDS_FOR_SCAN_]; - - preprocess_points_ptr_->preprocess(in_points_array, in_num_points, x_coors, y_coors, num_points_per_pillar, pillar_x, - pillar_y, pillar_z, pillar_i, x_coors_for_sub_shaped, y_coors_for_sub_shaped, - pillar_feature_mask, sparse_pillar_map, host_pillar_count_); - - GPU_CHECK(cudaMemset(dev_x_coors_, 0, MAX_NUM_PILLARS_ * sizeof(int))); - GPU_CHECK(cudaMemset(dev_y_coors_, 0, MAX_NUM_PILLARS_ * sizeof(int))); - GPU_CHECK(cudaMemset(dev_pillar_x_, 0, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); - GPU_CHECK(cudaMemset(dev_pillar_y_, 0, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); - GPU_CHECK(cudaMemset(dev_pillar_z_, 0, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); - GPU_CHECK(cudaMemset(dev_pillar_i_, 0, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); - GPU_CHECK(cudaMemset(dev_x_coors_for_sub_shaped_, 0, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); - GPU_CHECK(cudaMemset(dev_y_coors_for_sub_shaped_, 0, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); - GPU_CHECK(cudaMemset(dev_num_points_per_pillar_, 0, MAX_NUM_PILLARS_ * sizeof(float))); - GPU_CHECK(cudaMemset(dev_sparse_pillar_map_, 0, NUM_INDS_FOR_SCAN_ * NUM_INDS_FOR_SCAN_ * sizeof(int))); - - // clang-format off - GPU_CHECK(cudaMemcpy(dev_x_coors_, x_coors, MAX_NUM_PILLARS_ * sizeof(int), cudaMemcpyHostToDevice)); - GPU_CHECK(cudaMemcpy(dev_y_coors_, y_coors, MAX_NUM_PILLARS_ * sizeof(int), cudaMemcpyHostToDevice)); - GPU_CHECK(cudaMemcpy(dev_pillar_x_, pillar_x, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float),cudaMemcpyHostToDevice)); - GPU_CHECK(cudaMemcpy(dev_pillar_y_, pillar_y, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float),cudaMemcpyHostToDevice)); - GPU_CHECK(cudaMemcpy(dev_pillar_z_, pillar_z, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float),cudaMemcpyHostToDevice)); - GPU_CHECK(cudaMemcpy(dev_pillar_i_, pillar_i, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float),cudaMemcpyHostToDevice)); - GPU_CHECK(cudaMemcpy(dev_x_coors_for_sub_shaped_, x_coors_for_sub_shaped, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyHostToDevice)); - GPU_CHECK(cudaMemcpy(dev_y_coors_for_sub_shaped_, y_coors_for_sub_shaped,MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyHostToDevice)); - GPU_CHECK(cudaMemcpy(dev_num_points_per_pillar_, num_points_per_pillar, MAX_NUM_PILLARS_ * sizeof(float),cudaMemcpyHostToDevice)); - GPU_CHECK(cudaMemcpy(dev_pillar_feature_mask_, pillar_feature_mask,MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyHostToDevice)); - GPU_CHECK(cudaMemcpy(dev_sparse_pillar_map_, sparse_pillar_map,NUM_INDS_FOR_SCAN_ * NUM_INDS_FOR_SCAN_ * sizeof(float), cudaMemcpyHostToDevice)); - // clang-format on + int x_coors[MAX_NUM_PILLARS_]= {0}; + int y_coors[MAX_NUM_PILLARS_]= {0}; + float num_points_per_pillar[MAX_NUM_PILLARS_] = {0}; + float * pillar_x = new float[MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_]; + float * pillar_y = new float[MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_]; + float * pillar_z = new float[MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_]; + float * pillar_i = new float[MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_]; + + float * x_coors_for_sub_shaped = new float[MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_]; + float * y_coors_for_sub_shaped = new float[MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_]; + float * pillar_feature_mask = new float[MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_]; + + float* sparse_pillar_map = new float[NUM_INDS_FOR_SCAN_*NUM_INDS_FOR_SCAN_]; + + preprocess_points_ptr_->preprocess(in_points_array, in_num_points, + x_coors, y_coors, num_points_per_pillar, + pillar_x, pillar_y, pillar_z, pillar_i, + x_coors_for_sub_shaped, y_coors_for_sub_shaped, + pillar_feature_mask, sparse_pillar_map, host_pillar_count_); + + GPU_CHECK( cudaMemset(dev_x_coors_, 0, MAX_NUM_PILLARS_ * sizeof( int ) ) ); + GPU_CHECK( cudaMemset(dev_y_coors_, 0, MAX_NUM_PILLARS_ * sizeof( int ) ) ); + GPU_CHECK( cudaMemset(dev_pillar_x_,0, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); + GPU_CHECK( cudaMemset(dev_pillar_y_,0, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); + GPU_CHECK( cudaMemset(dev_pillar_z_,0, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); + GPU_CHECK( cudaMemset(dev_pillar_i_,0, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); + GPU_CHECK( cudaMemset(dev_x_coors_for_sub_shaped_, 0, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ *sizeof( float ) ) ); + GPU_CHECK( cudaMemset(dev_y_coors_for_sub_shaped_, 0, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ *sizeof( float ) ) ); + GPU_CHECK( cudaMemset(dev_num_points_per_pillar_, 0, MAX_NUM_PILLARS_ * sizeof( float ) ) ); + GPU_CHECK( cudaMemset(dev_sparse_pillar_map_, 0, NUM_INDS_FOR_SCAN_*NUM_INDS_FOR_SCAN_*sizeof( int ) ) ); + + GPU_CHECK(cudaMemcpy(dev_x_coors_, x_coors, MAX_NUM_PILLARS_*sizeof(int), cudaMemcpyHostToDevice )); + GPU_CHECK(cudaMemcpy(dev_y_coors_, y_coors, MAX_NUM_PILLARS_*sizeof(int), cudaMemcpyHostToDevice )); + GPU_CHECK(cudaMemcpy(dev_pillar_x_, pillar_x, MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_*sizeof(float), cudaMemcpyHostToDevice )); + GPU_CHECK(cudaMemcpy(dev_pillar_y_, pillar_y, MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_*sizeof(float), cudaMemcpyHostToDevice )); + GPU_CHECK(cudaMemcpy(dev_pillar_z_, pillar_z, MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_*sizeof(float), cudaMemcpyHostToDevice )); + GPU_CHECK(cudaMemcpy(dev_pillar_i_, pillar_i, MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_*sizeof(float), cudaMemcpyHostToDevice )); + GPU_CHECK(cudaMemcpy(dev_x_coors_for_sub_shaped_, x_coors_for_sub_shaped,MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_*sizeof(float), cudaMemcpyHostToDevice )); + GPU_CHECK(cudaMemcpy(dev_y_coors_for_sub_shaped_, y_coors_for_sub_shaped,MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_*sizeof(float), cudaMemcpyHostToDevice )); + GPU_CHECK(cudaMemcpy(dev_num_points_per_pillar_,num_points_per_pillar,MAX_NUM_PILLARS_*sizeof(float), cudaMemcpyHostToDevice )); + GPU_CHECK(cudaMemcpy(dev_pillar_feature_mask_, pillar_feature_mask, MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_*sizeof(float), cudaMemcpyHostToDevice )); + GPU_CHECK(cudaMemcpy(dev_sparse_pillar_map_, sparse_pillar_map, NUM_INDS_FOR_SCAN_*NUM_INDS_FOR_SCAN_*sizeof(float), cudaMemcpyHostToDevice )); delete[] pillar_x; delete[] pillar_y; @@ -509,34 +541,33 @@ void PointPillars::preprocessCPU(const float* in_points_array, const int in_num_ void PointPillars::preprocessGPU(const float* in_points_array, const int in_num_points) { - float* dev_points; - // clang-format off - GPU_CHECK(cudaMalloc((void**)&dev_points, in_num_points * NUM_BOX_CORNERS_ * sizeof(float))); - GPU_CHECK(cudaMemcpy(dev_points, in_points_array, in_num_points * NUM_BOX_CORNERS_ * sizeof(float), cudaMemcpyHostToDevice)); - // clang-format on - - GPU_CHECK(cudaMemset(dev_pillar_count_histo_, 0, GRID_Y_SIZE_ * GRID_X_SIZE_ * sizeof(int))); - GPU_CHECK(cudaMemset(dev_sparse_pillar_map_, 0, NUM_INDS_FOR_SCAN_ * NUM_INDS_FOR_SCAN_ * sizeof(int))); - GPU_CHECK(cudaMemset(dev_pillar_x_, 0, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); - GPU_CHECK(cudaMemset(dev_pillar_y_, 0, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); - GPU_CHECK(cudaMemset(dev_pillar_z_, 0, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); - GPU_CHECK(cudaMemset(dev_pillar_i_, 0, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); - GPU_CHECK(cudaMemset(dev_x_coors_, 0, MAX_NUM_PILLARS_ * sizeof(int))); - GPU_CHECK(cudaMemset(dev_y_coors_, 0, MAX_NUM_PILLARS_ * sizeof(int))); - GPU_CHECK(cudaMemset(dev_num_points_per_pillar_, 0, MAX_NUM_PILLARS_ * sizeof(float))); - GPU_CHECK(cudaMemset(dev_anchor_mask_, 0, NUM_ANCHOR_ * sizeof(int))); - - preprocess_points_cuda_ptr_->doPreprocessPointsCuda( - dev_points, in_num_points, dev_x_coors_, dev_y_coors_, dev_num_points_per_pillar_, dev_pillar_x_, dev_pillar_y_, - dev_pillar_z_, dev_pillar_i_, dev_x_coors_for_sub_shaped_, dev_y_coors_for_sub_shaped_, dev_pillar_feature_mask_, - dev_sparse_pillar_map_, host_pillar_count_); + float * dev_points; + GPU_CHECK(cudaMalloc((void**)&dev_points, in_num_points*4*sizeof(float))); + GPU_CHECK(cudaMemcpy(dev_points, in_points_array, in_num_points*4*sizeof(float), cudaMemcpyHostToDevice ) ); + + + GPU_CHECK(cudaMemset(dev_pillar_count_histo_, 0, GRID_Y_SIZE_*GRID_X_SIZE_*sizeof(int))); + GPU_CHECK(cudaMemset(dev_sparse_pillar_map_, 0, NUM_INDS_FOR_SCAN_*NUM_INDS_FOR_SCAN_*sizeof( int ) ) ); + GPU_CHECK(cudaMemset(dev_pillar_x_, 0, MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); + GPU_CHECK(cudaMemset(dev_pillar_y_, 0, MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); + GPU_CHECK(cudaMemset(dev_pillar_z_, 0, MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); + GPU_CHECK(cudaMemset(dev_pillar_i_, 0, MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); + GPU_CHECK(cudaMemset(dev_x_coors_, 0, MAX_NUM_PILLARS_ * sizeof( int ) ) ); + GPU_CHECK(cudaMemset(dev_y_coors_, 0, MAX_NUM_PILLARS_ * sizeof( int ) ) ); + GPU_CHECK(cudaMemset(dev_num_points_per_pillar_, 0, MAX_NUM_PILLARS_ * sizeof( float ) ) ); + GPU_CHECK(cudaMemset(dev_anchor_mask_, 0, NUM_ANCHOR_*sizeof(int))); + + preprocess_points_cuda_ptr_->doPreprocessPointsCuda(dev_points, in_num_points, dev_x_coors_, dev_y_coors_, + dev_num_points_per_pillar_, dev_pillar_x_, dev_pillar_y_, dev_pillar_z_, dev_pillar_i_, + dev_x_coors_for_sub_shaped_, dev_y_coors_for_sub_shaped_, + dev_pillar_feature_mask_, dev_sparse_pillar_map_, host_pillar_count_); GPU_CHECK(cudaFree(dev_points)); } void PointPillars::preprocess(const float* in_points_array, const int in_num_points) { - if (reproduce_result_mode_) + if(reproduce_result_mode_) { preprocessCPU(in_points_array, in_num_points); } @@ -546,41 +577,44 @@ void PointPillars::preprocess(const float* in_points_array, const int in_num_poi } } -void PointPillars::doInference(const float* in_points_array, const int in_num_points, std::vector& out_detections) +void PointPillars::doInference(const float* in_points_array, const int in_num_points, + std::vector& out_detection, int& out_num_objects) { preprocess(in_points_array, in_num_points); - anchor_mask_cuda_ptr_->doAnchorMaskCuda(dev_sparse_pillar_map_, dev_cumsum_along_x_, dev_cumsum_along_y_, - dev_box_anchors_min_x_, dev_box_anchors_min_y_, dev_box_anchors_max_x_, - dev_box_anchors_max_y_, dev_anchor_mask_); + anchor_mask_cuda_ptr_->doAnchorMaskCuda(dev_sparse_pillar_map_, dev_cumsum_along_x_, dev_cumsum_along_y_, dev_box_anchors_min_x_, + dev_box_anchors_min_y_, dev_box_anchors_max_x_, dev_box_anchors_max_y_, dev_anchor_mask_); + cudaStream_t stream; GPU_CHECK(cudaStreamCreate(&stream)); - // clang-format off - GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[0], dev_pillar_x_, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyDeviceToDevice, stream)); - GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[1], dev_pillar_y_, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyDeviceToDevice, stream)); - GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[2], dev_pillar_z_, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyDeviceToDevice, stream)); - GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[3], dev_pillar_i_, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyDeviceToDevice, stream)); - GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[4], dev_num_points_per_pillar_, MAX_NUM_PILLARS_ * sizeof(float), cudaMemcpyDeviceToDevice, stream)); - GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[5], dev_x_coors_for_sub_shaped_, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyDeviceToDevice, stream)); - GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[6], dev_y_coors_for_sub_shaped_, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyDeviceToDevice, stream)); - GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[7], dev_pillar_feature_mask_, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyDeviceToDevice, stream)); - // clang-format on + GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[0], dev_pillar_x_, BATCH_SIZE_ * MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyDeviceToDevice, stream)); + GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[1], dev_pillar_y_, BATCH_SIZE_ * MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyDeviceToDevice, stream)); + GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[2], dev_pillar_z_, BATCH_SIZE_ * MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyDeviceToDevice, stream)); + GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[3], dev_pillar_i_, BATCH_SIZE_ * MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyDeviceToDevice, stream)); + GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[4], dev_num_points_per_pillar_, BATCH_SIZE_ * MAX_NUM_PILLARS_ * sizeof(float), cudaMemcpyDeviceToDevice, stream)); + GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[5], dev_x_coors_for_sub_shaped_, BATCH_SIZE_ * MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyDeviceToDevice, stream)); + GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[6], dev_y_coors_for_sub_shaped_, BATCH_SIZE_ * MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyDeviceToDevice, stream)); + GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[7], dev_pillar_feature_mask_, BATCH_SIZE_ * MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyDeviceToDevice, stream)); pfe_context_->enqueue(BATCH_SIZE_, pfe_buffers_, stream, nullptr); - GPU_CHECK(cudaMemset(dev_scattered_feature_, 0, RPN_INPUT_SIZE_ * sizeof(float))); - scatter_cuda_ptr_->doScatterCuda(host_pillar_count_[0], dev_x_coors_, dev_y_coors_, (float*)pfe_buffers_[8], - dev_scattered_feature_); - GPU_CHECK(cudaMemcpyAsync(rpn_buffers_[0], dev_scattered_feature_, BATCH_SIZE_ * RPN_INPUT_SIZE_ * sizeof(float), - cudaMemcpyDeviceToDevice, stream)); + + GPU_CHECK( cudaMemset( dev_scattered_feature_, 0, RPN_INPUT_SIZE_*sizeof(float) ) ); + scatter_cuda_ptr_->doScatterCuda(host_pillar_count_[0], dev_x_coors_, dev_y_coors_, + (float *)pfe_buffers_[8], dev_scattered_feature_); + + + GPU_CHECK(cudaMemcpyAsync(rpn_buffers_[0], dev_scattered_feature_, BATCH_SIZE_ * RPN_INPUT_SIZE_ * sizeof(float), cudaMemcpyDeviceToDevice, stream)); rpn_context_->enqueue(BATCH_SIZE_, rpn_buffers_, stream, nullptr); - GPU_CHECK(cudaMemset(dev_filter_count_, 0, sizeof(int))); - postprocess_cuda_ptr_->doPostprocessCuda( - (float*)rpn_buffers_[1], (float*)rpn_buffers_[2], (float*)rpn_buffers_[3], dev_anchor_mask_, dev_anchors_px_, - dev_anchors_py_, dev_anchors_pz_, dev_anchors_dx_, dev_anchors_dy_, dev_anchors_dz_, dev_anchors_ro_, - dev_filtered_box_, dev_filtered_score_, dev_filtered_dir_, dev_box_for_nms_, dev_filter_count_, out_detections); + + GPU_CHECK(cudaMemset( dev_filter_count_, 0, sizeof( int ))); + postprocess_cuda_ptr_->doPostprocessCuda((float *)rpn_buffers_[1], (float *)rpn_buffers_[2],(float *)rpn_buffers_[3] , dev_anchor_mask_, + dev_anchors_px_, dev_anchors_py_, dev_anchors_pz_, + dev_anchors_dx_, dev_anchors_dy_, dev_anchors_dz_, dev_anchors_ro_, + dev_filtered_box_, dev_filtered_score_, dev_filtered_dir_, dev_box_for_nms_, + dev_filter_count_, out_detection, out_num_objects); // release the stream and the buffers cudaStreamDestroy(stream); diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars_ros.cpp b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars_ros.cpp index 776ce59394a..a7287b3f60e 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars_ros.cpp +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars_ros.cpp @@ -14,98 +14,94 @@ * limitations under the License. */ -// headers in STL +//headers in STL #include #include -// headers in PCL +//headers in PCL #include #include #include -// headers in ROS +//headers in ROS #include -// headers in local files +//headers in local files #include "autoware_msgs/DetectedObjectArray.h" -#include "lidar_point_pillars/point_pillars_ros.h" - -PointPillarsROS::PointPillarsROS() - : private_nh_("~") - , has_subscribed_baselink_(false) - , NUM_POINT_FEATURE_(4) - , OUTPUT_NUM_BOX_FEATURE_(7) - , TRAINED_SENSOR_HEIGHT_(1.73f) - , NORMALIZING_INTENSITY_VALUE_(255.0f) - , BASELINK_FRAME_("base_link") +#include "point_pillars_ros.h" + +PointPillarsROS::PointPillarsROS(): +private_nh_("~"), +has_subscribed_baselink_(false), +NUM_POINT_FEATURE_(4), +OUTPUT_NUM_BOX_FEATURE_(7), +TRAINED_SENSOR_HEIGHT_(1.73), +NORMALIZING_INTENSITY_VALUE_(255.0), +BASELINK_FRAME_("base_link") { - //ros related param private_nh_.param("baselink_support", baselink_support_, true); - - //algorithm related params private_nh_.param("reproduce_result_mode", reproduce_result_mode_, false); - private_nh_.param("score_threshold", score_threshold_, 0.5f); - private_nh_.param("nms_overlap_threshold", nms_overlap_threshold_, 0.5f); + private_nh_.param("score_threshold", score_threshold_, 0.5); + private_nh_.param("nms_overlap_threshold", nms_overlap_threshold_, 0.5); private_nh_.param("pfe_onnx_file", pfe_onnx_file_, ""); private_nh_.param("rpn_onnx_file", rpn_onnx_file_, ""); - point_pillars_ptr_.reset(new PointPillars(reproduce_result_mode_, score_threshold_, nms_overlap_threshold_, - pfe_onnx_file_, rpn_onnx_file_)); + point_pillars_ptr_.reset(new PointPillars( + reproduce_result_mode_, + score_threshold_, + nms_overlap_threshold_, + pfe_onnx_file_, + rpn_onnx_file_)); } void PointPillarsROS::createROSPubSub() { - sub_points_ = nh_.subscribe("/points_raw", 1, &PointPillarsROS::pointsCallback, this); - pub_objects_ = nh_.advertise("/detection/lidar_detector/objects", 1); + sub_points_ = nh_.subscribe("/points_raw", 1, &PointPillarsROS::pointsCallback, this); + pub_objects_ = nh_.advertise("/detection/lidar_detector/objects", 1); } -geometry_msgs::Pose PointPillarsROS::getTransformedPose(const geometry_msgs::Pose& in_pose, const tf::Transform& tf) + +geometry_msgs::Pose PointPillarsROS::getTransformedPose(const geometry_msgs::Pose& in_pose, + const tf::Transform& tf) { tf::Transform transform; geometry_msgs::PoseStamped out_pose; transform.setOrigin(tf::Vector3(in_pose.position.x, in_pose.position.y, in_pose.position.z)); - transform.setRotation( - tf::Quaternion(in_pose.orientation.x, in_pose.orientation.y, in_pose.orientation.z, in_pose.orientation.w)); + transform.setRotation(tf::Quaternion(in_pose.orientation.x, in_pose.orientation.y, in_pose.orientation.z, in_pose.orientation.w)); geometry_msgs::PoseStamped pose_out; - tf::poseTFToMsg(tf * transform, out_pose.pose); + tf::poseTFToMsg(tf*transform, out_pose.pose); return out_pose.pose; } -void PointPillarsROS::pubDetectedObject(const std::vector& detections, const std_msgs::Header& in_header) +void PointPillarsROS::pubDetectedObject(const std::vector& detections, const int num_objects, const std_msgs::Header& pc_header) { autoware_msgs::DetectedObjectArray objects; - objects.header = in_header; - int num_objects = detections.size() / OUTPUT_NUM_BOX_FEATURE_; + objects.header = pc_header; for (size_t i = 0; i < num_objects; i++) { autoware_msgs::DetectedObject object; - object.header = in_header; + object.header = pc_header; object.valid = true; object.pose_reliable = true; - object.pose.position.x = detections[i * OUTPUT_NUM_BOX_FEATURE_ + 0]; - object.pose.position.y = detections[i * OUTPUT_NUM_BOX_FEATURE_ + 1]; - object.pose.position.z = detections[i * OUTPUT_NUM_BOX_FEATURE_ + 2]; + object.pose.position.x = detections[i*OUTPUT_NUM_BOX_FEATURE_+0]; + object.pose.position.y = detections[i*OUTPUT_NUM_BOX_FEATURE_+1]; + object.pose.position.z = detections[i*OUTPUT_NUM_BOX_FEATURE_+2]; - // Trained this way - float yaw = detections[i * OUTPUT_NUM_BOX_FEATURE_ + 6]; - yaw += M_PI/2; + + float yaw = detections[i*OUTPUT_NUM_BOX_FEATURE_+6]; yaw = std::atan2(std::sin(yaw), std::cos(yaw)); geometry_msgs::Quaternion q = tf::createQuaternionMsgFromYaw(-yaw); object.pose.orientation = q; - if (baselink_support_) + if(baselink_support_) { object.pose = getTransformedPose(object.pose, angle_transform_inversed_); } - // Again: Trained this way - object.dimensions.x = detections[i * OUTPUT_NUM_BOX_FEATURE_ + 4]; - object.dimensions.y = detections[i * OUTPUT_NUM_BOX_FEATURE_ + 3]; - object.dimensions.z = detections[i * OUTPUT_NUM_BOX_FEATURE_ + 5]; - - //Only detects car in Version 1.0 - object.label = "car"; + object.dimensions.x = detections[i*OUTPUT_NUM_BOX_FEATURE_+3]; + object.dimensions.y = detections[i*OUTPUT_NUM_BOX_FEATURE_+4]; + object.dimensions.z = detections[i*OUTPUT_NUM_BOX_FEATURE_+5]; objects.objects.push_back(object); } @@ -117,8 +113,8 @@ void PointPillarsROS::getBaselinkToLidarTF(const std::string& target_frameid) try { tf_listener_.waitForTransform(BASELINK_FRAME_, target_frameid, ros::Time(0), ros::Duration(1.0)); - tf_listener_.lookupTransform(BASELINK_FRAME_, target_frameid, ros::Time(0), baselink2lidar_); - analyzeTFInfo(baselink2lidar_); + tf_listener_.lookupTransform( BASELINK_FRAME_, target_frameid, ros::Time(0), baselink2lidar_); + getTFInfo(baselink2lidar_); has_subscribed_baselink_ = true; } catch (tf::TransformException ex) @@ -127,7 +123,7 @@ void PointPillarsROS::getBaselinkToLidarTF(const std::string& target_frameid) } } -void PointPillarsROS::analyzeTFInfo(tf::StampedTransform baselink2lidar) +void PointPillarsROS::getTFInfo(tf::StampedTransform baselink2lidar) { tf::Vector3 v = baselink2lidar.getOrigin(); offset_z_from_trained_data_ = v.getZ() - TRAINED_SENSOR_HEIGHT_; @@ -135,37 +131,39 @@ void PointPillarsROS::analyzeTFInfo(tf::StampedTransform baselink2lidar) tf::Quaternion q = baselink2lidar_.getRotation(); angle_transform_ = tf::Transform(q); angle_transform_inversed_ = angle_transform_.inverse(); + } -void PointPillarsROS::pclToArray(const pcl::PointCloud::Ptr& in_pcl_pc_ptr, float* out_points_array, - const float offset_z) +void PointPillarsROS::pclToArray(const pcl::PointCloud::Ptr & in_pcl_pc_ptr, float* out_points_array, const float offset_z) { - for (size_t i = 0; i < in_pcl_pc_ptr->size(); i++) + for(size_t i = 0; i < in_pcl_pc_ptr->size(); i++) { pcl::PointXYZI point = in_pcl_pc_ptr->at(i); - out_points_array[i * NUM_POINT_FEATURE_ + 0] = point.x; - out_points_array[i * NUM_POINT_FEATURE_ + 1] = point.y; - out_points_array[i * NUM_POINT_FEATURE_ + 2] = point.z + offset_z; - out_points_array[i * NUM_POINT_FEATURE_ + 3] = float(point.intensity / NORMALIZING_INTENSITY_VALUE_); + out_points_array[i*NUM_POINT_FEATURE_ + 0] = point.x; + out_points_array[i*NUM_POINT_FEATURE_ + 1] = point.y; + out_points_array[i*NUM_POINT_FEATURE_ + 2] = point.z + offset_z; + out_points_array[i*NUM_POINT_FEATURE_ + 3] = float(point.intensity/NORMALIZING_INTENSITY_VALUE_); } } + void PointPillarsROS::pointsCallback(const sensor_msgs::PointCloud2::ConstPtr& msg) { + pcl::PointCloud::Ptr pcl_pc_ptr(new pcl::PointCloud); pcl::fromROSMsg(*msg, *pcl_pc_ptr); - if (baselink_support_) + if(baselink_support_) { - if (!has_subscribed_baselink_) + if(!has_subscribed_baselink_) { getBaselinkToLidarTF(msg->header.frame_id); } pcl_ros::transformPointCloud(*pcl_pc_ptr, *pcl_pc_ptr, angle_transform_); } - float* points_array = new float[pcl_pc_ptr->size() * NUM_POINT_FEATURE_]; - if (baselink_support_ && has_subscribed_baselink_) + float * points_array = new float[pcl_pc_ptr->size()*NUM_POINT_FEATURE_]; + if(baselink_support_ && has_subscribed_baselink_) { pclToArray(pcl_pc_ptr, points_array, offset_z_from_trained_data_); } @@ -174,9 +172,10 @@ void PointPillarsROS::pointsCallback(const sensor_msgs::PointCloud2::ConstPtr& m pclToArray(pcl_pc_ptr, points_array); } + int out_num_objects = 0; std::vector out_detection; - point_pillars_ptr_->doInference(points_array, pcl_pc_ptr->size(), out_detection); + point_pillars_ptr_->doInference(points_array, pcl_pc_ptr->size(), out_detection, out_num_objects); delete[] points_array; - pubDetectedObject(out_detection, msg->header); + pubDetectedObject(out_detection, out_num_objects, msg->header); } diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/postprocess_cuda.cu b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/postprocess_cuda.cu index 87abbee141e..48862d2256e 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/postprocess_cuda.cu +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/postprocess_cuda.cu @@ -20,14 +20,13 @@ #include //headers in local files -#include "lidar_point_pillars/postprocess_cuda.h" +#include "postprocess_cuda.h" __global__ void filter_kernel(const float* box_preds, const float* cls_preds, const float* dir_preds, const int* anchor_mask, const float* dev_anchors_px, const float* dev_anchors_py, const float* dev_anchors_pz, const float* dev_anchors_dx, const float* dev_anchors_dy, const float* dev_anchors_dz, const float* dev_anchors_ro, float* filtered_box, float* filtered_score, int* filtered_dir, float* box_for_nms, int* filter_count, - const float FLOAT_MIN, const float FLOAT_MAX, const float score_threshold, - const int NUM_BOX_CORNERS, const int NUM_OUTPUT_BOX_FEATURE) + const float FLOAT_MIN, const float FLOAT_MAX, const float score_threshold) { // boxes ([N, 7] Tensor): normal boxes: x, y, z, w, l, h, r int tid = threadIdx.x + blockIdx.x * blockDim.x; @@ -40,23 +39,23 @@ __global__ void filter_kernel(const float* box_preds, const float* cls_preds, co //decode network output float diagonal = sqrtf(dev_anchors_dx[tid]*dev_anchors_dx[tid] + dev_anchors_dy[tid]*dev_anchors_dy[tid]); - float box_px = box_preds[tid*NUM_OUTPUT_BOX_FEATURE + 0] * diagonal + dev_anchors_px[tid]; - float box_py = box_preds[tid*NUM_OUTPUT_BOX_FEATURE + 1] * diagonal + dev_anchors_py[tid]; - float box_pz = box_preds[tid*NUM_OUTPUT_BOX_FEATURE + 2] * dev_anchors_dz[tid] + za; - float box_dx = expf(box_preds[tid*NUM_OUTPUT_BOX_FEATURE + 3]) * dev_anchors_dx[tid]; - float box_dy = expf(box_preds[tid*NUM_OUTPUT_BOX_FEATURE + 4]) * dev_anchors_dy[tid]; - float box_dz = expf(box_preds[tid*NUM_OUTPUT_BOX_FEATURE + 5]) * dev_anchors_dz[tid]; - float box_ro = box_preds[tid*NUM_OUTPUT_BOX_FEATURE + 6] + dev_anchors_ro[tid]; + float box_px = box_preds[tid*7 + 0] * diagonal + dev_anchors_px[tid]; + float box_py = box_preds[tid*7 + 1] * diagonal + dev_anchors_py[tid]; + float box_pz = box_preds[tid*7 + 2] * dev_anchors_dz[tid] + za; + float box_dx = expf(box_preds[tid*7 + 3]) * dev_anchors_dx[tid]; + float box_dy = expf(box_preds[tid*7 + 4]) * dev_anchors_dy[tid]; + float box_dz = expf(box_preds[tid*7 + 5]) * dev_anchors_dz[tid]; + float box_ro = box_preds[tid*7 + 6] + dev_anchors_ro[tid]; box_pz = box_pz - box_dz/2; - filtered_box[counter*NUM_OUTPUT_BOX_FEATURE + 0] = box_px; - filtered_box[counter*NUM_OUTPUT_BOX_FEATURE + 1] = box_py; - filtered_box[counter*NUM_OUTPUT_BOX_FEATURE + 2] = box_pz; - filtered_box[counter*NUM_OUTPUT_BOX_FEATURE + 3] = box_dx; - filtered_box[counter*NUM_OUTPUT_BOX_FEATURE + 4] = box_dy; - filtered_box[counter*NUM_OUTPUT_BOX_FEATURE + 5] = box_dz; - filtered_box[counter*NUM_OUTPUT_BOX_FEATURE + 6] = box_ro; + filtered_box[counter*7 + 0] = box_px; + filtered_box[counter*7 + 1] = box_py; + filtered_box[counter*7 + 2] = box_pz; + filtered_box[counter*7 + 3] = box_dx; + filtered_box[counter*7 + 4] = box_dy; + filtered_box[counter*7 + 5] = box_dz; + filtered_box[counter*7 + 6] = box_ro; filtered_score[counter] = score; int direction_label; @@ -72,21 +71,21 @@ __global__ void filter_kernel(const float* box_preds, const float* cls_preds, co //convrt normal box(normal boxes: x, y, z, w, l, h, r) to box(xmin, ymin, xmax, ymax) for nms calculation //First: dx, dy -> box(x0y0, x0y1, x1y0, x1y1) - float corners[NUM_3D_BOX_CORNERS_MACRO] = {float(-0.5*box_dx), float(-0.5*box_dy), - float(-0.5*box_dx), float( 0.5*box_dy), - float( 0.5*box_dx), float( 0.5*box_dy), - float( 0.5*box_dx), float(-0.5*box_dy)}; + float corners[2*4] = {float(-0.5*box_dx), float(-0.5*box_dy), + float(-0.5*box_dx), float( 0.5*box_dy), + float( 0.5*box_dx), float( 0.5*box_dy), + float( 0.5*box_dx), float(-0.5*box_dy)}; //Second: Rotate, Offset and convert to point(xmin. ymin, xmax, ymax) - float rotated_corners[NUM_3D_BOX_CORNERS_MACRO]; - float offset_corners[NUM_3D_BOX_CORNERS_MACRO]; + float rotated_corners[2*4]; + float offset_corners[2*4]; float sin_yaw = sinf(box_ro); float cos_yaw = cosf(box_ro); float xmin = FLOAT_MAX; float ymin = FLOAT_MAX; float xmax = FLOAT_MIN; float ymax = FLOAT_MIN; - for(size_t i = 0; i < NUM_BOX_CORNERS; i++) + for(size_t i = 0; i < 4; i++) { rotated_corners[i*2 + 0] = cos_yaw*corners[i*2 + 0] - sin_yaw*corners[i*2 + 1]; rotated_corners[i*2 + 1] = sin_yaw*corners[i*2 + 0] + cos_yaw*corners[i*2 + 1]; @@ -100,44 +99,42 @@ __global__ void filter_kernel(const float* box_preds, const float* cls_preds, co ymax = fmaxf(ymax, offset_corners[i*2 + 1]); } // box_for_nms(num_box, 4) - box_for_nms[counter*NUM_BOX_CORNERS + 0] = xmin; - box_for_nms[counter*NUM_BOX_CORNERS + 1] = ymin; - box_for_nms[counter*NUM_BOX_CORNERS + 2] = xmax; - box_for_nms[counter*NUM_BOX_CORNERS + 3] = ymax; + box_for_nms[counter*4 + 0] = xmin; + box_for_nms[counter*4 + 1] = ymin; + box_for_nms[counter*4 + 2] = xmax; + box_for_nms[counter*4 + 3] = ymax; } } __global__ void sort_boxes_by_indexes_kernel(float* filtered_box, int* filtered_dir, float* box_for_nms, int* indexes, int filter_count, - float* sorted_filtered_boxes, int* sorted_filtered_dir, float* sorted_box_for_nms, - const int NUM_BOX_CORNERS, const int NUM_OUTPUT_BOX_FEATURE) + float* sorted_filtered_boxes, int* sorted_filtered_dir, float* sorted_box_for_nms) { int tid = threadIdx.x + blockIdx.x * blockDim.x; if(tid < filter_count) { int sort_index = indexes[tid]; - sorted_filtered_boxes[tid*NUM_OUTPUT_BOX_FEATURE + 0] = filtered_box[sort_index*NUM_OUTPUT_BOX_FEATURE + 0]; - sorted_filtered_boxes[tid*NUM_OUTPUT_BOX_FEATURE + 1] = filtered_box[sort_index*NUM_OUTPUT_BOX_FEATURE + 1]; - sorted_filtered_boxes[tid*NUM_OUTPUT_BOX_FEATURE + 2] = filtered_box[sort_index*NUM_OUTPUT_BOX_FEATURE + 2]; - sorted_filtered_boxes[tid*NUM_OUTPUT_BOX_FEATURE + 3] = filtered_box[sort_index*NUM_OUTPUT_BOX_FEATURE + 3]; - sorted_filtered_boxes[tid*NUM_OUTPUT_BOX_FEATURE + 4] = filtered_box[sort_index*NUM_OUTPUT_BOX_FEATURE + 4]; - sorted_filtered_boxes[tid*NUM_OUTPUT_BOX_FEATURE + 5] = filtered_box[sort_index*NUM_OUTPUT_BOX_FEATURE + 5]; - sorted_filtered_boxes[tid*NUM_OUTPUT_BOX_FEATURE + 6] = filtered_box[sort_index*NUM_OUTPUT_BOX_FEATURE + 6]; + sorted_filtered_boxes[tid*7 + 0] = filtered_box[sort_index*7 + 0]; + sorted_filtered_boxes[tid*7 + 1] = filtered_box[sort_index*7 + 1]; + sorted_filtered_boxes[tid*7 + 2] = filtered_box[sort_index*7 + 2]; + sorted_filtered_boxes[tid*7 + 3] = filtered_box[sort_index*7 + 3]; + sorted_filtered_boxes[tid*7 + 4] = filtered_box[sort_index*7 + 4]; + sorted_filtered_boxes[tid*7 + 5] = filtered_box[sort_index*7 + 5]; + sorted_filtered_boxes[tid*7 + 6] = filtered_box[sort_index*7 + 6]; sorted_filtered_dir[tid] = filtered_dir[sort_index]; - sorted_box_for_nms[tid*NUM_BOX_CORNERS + 0] = box_for_nms[sort_index*NUM_BOX_CORNERS + 0]; - sorted_box_for_nms[tid*NUM_BOX_CORNERS + 1] = box_for_nms[sort_index*NUM_BOX_CORNERS + 1]; - sorted_box_for_nms[tid*NUM_BOX_CORNERS + 2] = box_for_nms[sort_index*NUM_BOX_CORNERS + 2]; - sorted_box_for_nms[tid*NUM_BOX_CORNERS + 3] = box_for_nms[sort_index*NUM_BOX_CORNERS + 3]; + sorted_box_for_nms[tid*4 + 0] = box_for_nms[sort_index*4 + 0]; + sorted_box_for_nms[tid*4 + 1] = box_for_nms[sort_index*4 + 1]; + sorted_box_for_nms[tid*4 + 2] = box_for_nms[sort_index*4 + 2]; + sorted_box_for_nms[tid*4 + 3] = box_for_nms[sort_index*4 + 3]; } } PostprocessCuda::PostprocessCuda(const float FLOAT_MIN, const float FLOAT_MAX, const int NUM_ANCHOR_X_INDS, const int NUM_ANCHOR_Y_INDS, const int NUM_ANCHOR_R_INDS, - const float score_threshold, const int NUM_THREADS, const float nms_overlap_threshold, - const int NUM_BOX_CORNERS, const int NUM_OUTPUT_BOX_FEATURE): + const float score_threshold, const int NUM_THREADS, const float nms_overlap_threshold): FLOAT_MIN_(FLOAT_MIN), FLOAT_MAX_(FLOAT_MAX), NUM_ANCHOR_X_INDS_(NUM_ANCHOR_X_INDS), @@ -145,13 +142,10 @@ NUM_ANCHOR_Y_INDS_(NUM_ANCHOR_Y_INDS), NUM_ANCHOR_R_INDS_(NUM_ANCHOR_R_INDS), score_threshold_(score_threshold), NUM_THREADS_(NUM_THREADS), -nms_overlap_threshold_(nms_overlap_threshold), -NUM_BOX_CORNERS_(NUM_BOX_CORNERS), -NUM_OUTPUT_BOX_FEATURE_(NUM_OUTPUT_BOX_FEATURE) +nms_overlap_threshold_(nms_overlap_threshold) { nms_cuda_ptr_.reset(new NMSCuda( NUM_THREADS, - NUM_BOX_CORNERS, nms_overlap_threshold)); } @@ -159,7 +153,7 @@ void PostprocessCuda::doPostprocessCuda(const float* rpn_box_output, const float int* dev_anchor_mask, const float* dev_anchors_px, const float* dev_anchors_py, const float* dev_anchors_pz, const float* dev_anchors_dx, const float* dev_anchors_dy, const float* dev_anchors_dz, const float* dev_anchors_ro, float* dev_filtered_box, float* dev_filtered_score, int* dev_filtered_dir, float* dev_box_for_nms, int* dev_filter_count, - std::vector& out_detection) + std::vector& out_detection, int& out_num_objects) { filter_kernel<<>> @@ -167,8 +161,7 @@ void PostprocessCuda::doPostprocessCuda(const float* rpn_box_output, const float dev_anchors_px, dev_anchors_py, dev_anchors_pz, dev_anchors_dx, dev_anchors_dy, dev_anchors_dz, dev_anchors_ro, dev_filtered_box, dev_filtered_score, dev_filtered_dir, dev_box_for_nms, dev_filter_count, - FLOAT_MIN_, FLOAT_MAX_, score_threshold_, - NUM_BOX_CORNERS_, NUM_OUTPUT_BOX_FEATURE_); + FLOAT_MIN_, FLOAT_MAX_, score_threshold_); int host_filter_count[1]; GPU_CHECK( cudaMemcpy(host_filter_count, dev_filter_count, sizeof(int), cudaMemcpyDeviceToHost ) ); @@ -181,43 +174,41 @@ void PostprocessCuda::doPostprocessCuda(const float* rpn_box_output, const float float* dev_sorted_filtered_box, *dev_sorted_box_for_nms; int* dev_sorted_filtered_dir; GPU_CHECK(cudaMalloc((void**)&dev_indexes, host_filter_count[0]*sizeof(int))); - GPU_CHECK(cudaMalloc((void**)&dev_sorted_filtered_box, NUM_OUTPUT_BOX_FEATURE_*host_filter_count[0]*sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_sorted_filtered_box, 7*host_filter_count[0]*sizeof(float))); GPU_CHECK(cudaMalloc((void**)&dev_sorted_filtered_dir, host_filter_count[0]*sizeof(int))); - GPU_CHECK(cudaMalloc((void**)&dev_sorted_box_for_nms, NUM_BOX_CORNERS_*host_filter_count[0]*sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_sorted_box_for_nms, 4*host_filter_count[0]*sizeof(float))); thrust::sequence(thrust::device, dev_indexes, dev_indexes + host_filter_count[0]); thrust::sort_by_key(thrust::device, dev_filtered_score, dev_filtered_score + size_t(host_filter_count[0]), dev_indexes, thrust::greater()); const int num_blocks = DIVUP(host_filter_count[0], NUM_THREADS_); sort_boxes_by_indexes_kernel<<>>(dev_filtered_box, dev_filtered_dir, dev_box_for_nms, dev_indexes, host_filter_count[0], - dev_sorted_filtered_box, dev_sorted_filtered_dir, dev_sorted_box_for_nms, - NUM_BOX_CORNERS_, NUM_OUTPUT_BOX_FEATURE_); + dev_sorted_filtered_box, dev_sorted_filtered_dir, dev_sorted_box_for_nms); int keep_inds[host_filter_count[0]] = {0}; - int out_num_objects = 0; nms_cuda_ptr_->doNMSCuda(host_filter_count[0], dev_sorted_box_for_nms, keep_inds, out_num_objects); - float host_filtered_box[host_filter_count[0]*NUM_OUTPUT_BOX_FEATURE_]; + float host_filtered_box[host_filter_count[0]*7]; int host_filtered_dir[host_filter_count[0]]; - GPU_CHECK( cudaMemcpy(host_filtered_box, dev_sorted_filtered_box, NUM_OUTPUT_BOX_FEATURE_*host_filter_count[0] *sizeof(float), cudaMemcpyDeviceToHost ) ); - GPU_CHECK( cudaMemcpy(host_filtered_dir, dev_sorted_filtered_dir, host_filter_count[0] *sizeof(int), cudaMemcpyDeviceToHost ) ); + GPU_CHECK( cudaMemcpy(host_filtered_box, dev_sorted_filtered_box, 7*host_filter_count[0] *sizeof(float), cudaMemcpyDeviceToHost ) ); + GPU_CHECK( cudaMemcpy(host_filtered_dir, dev_sorted_filtered_dir, host_filter_count[0] *sizeof(int), cudaMemcpyDeviceToHost ) ); for (size_t i = 0; i < out_num_objects; i++) { - out_detection.push_back(host_filtered_box[keep_inds[i]*NUM_OUTPUT_BOX_FEATURE_+0]); - out_detection.push_back(host_filtered_box[keep_inds[i]*NUM_OUTPUT_BOX_FEATURE_+1]); - out_detection.push_back(host_filtered_box[keep_inds[i]*NUM_OUTPUT_BOX_FEATURE_+2]); - out_detection.push_back(host_filtered_box[keep_inds[i]*NUM_OUTPUT_BOX_FEATURE_+3]); - out_detection.push_back(host_filtered_box[keep_inds[i]*NUM_OUTPUT_BOX_FEATURE_+4]); - out_detection.push_back(host_filtered_box[keep_inds[i]*NUM_OUTPUT_BOX_FEATURE_+5]); + out_detection.push_back(host_filtered_box[keep_inds[i]*7+0]); + out_detection.push_back(host_filtered_box[keep_inds[i]*7+1]); + out_detection.push_back(host_filtered_box[keep_inds[i]*7+2]); + out_detection.push_back(host_filtered_box[keep_inds[i]*7+3]); + out_detection.push_back(host_filtered_box[keep_inds[i]*7+4]); + out_detection.push_back(host_filtered_box[keep_inds[i]*7+5]); if(host_filtered_dir[keep_inds[i]] == 0) { - out_detection.push_back(host_filtered_box[keep_inds[i]*NUM_OUTPUT_BOX_FEATURE_+6] + M_PI); + out_detection.push_back(host_filtered_box[keep_inds[i]*7+6] + M_PI); } else { - out_detection.push_back(host_filtered_box[keep_inds[i]*NUM_OUTPUT_BOX_FEATURE_+6]); + out_detection.push_back(host_filtered_box[keep_inds[i]*7+6]); } } diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/preprocess_points.cpp b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/preprocess_points.cpp index 82b6fd46d68..9ea42f9190d 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/preprocess_points.cpp +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/preprocess_points.cpp @@ -14,43 +14,50 @@ * limitations under the License. */ -// headers in STL +//headers in STL #include #include -// headers in local files -#include "lidar_point_pillars/preprocess_points.h" +//headers in local files +#include "preprocess_points.h" -PreprocessPoints::PreprocessPoints(const int MAX_NUM_PILLARS, const int MAX_POINTS_PER_PILLAR, const int GRID_X_SIZE, - const int GRID_Y_SIZE, const int GRID_Z_SIZE, const float PILLAR_X_SIZE, - const float PILLAR_Y_SIZE, const float PILLAR_Z_SIZE, const float MIN_X_RANGE, - const float MIN_Y_RANGE, const float MIN_Z_RANGE, const int NUM_INDS_FOR_SCAN, - const int NUM_BOX_CORNERS) - : MAX_NUM_PILLARS_(MAX_NUM_PILLARS) - , MAX_NUM_POINTS_PER_PILLAR_(MAX_POINTS_PER_PILLAR) - , GRID_X_SIZE_(GRID_X_SIZE) - , GRID_Y_SIZE_(GRID_Y_SIZE) - , GRID_Z_SIZE_(GRID_Z_SIZE) - , PILLAR_X_SIZE_(PILLAR_X_SIZE) - , PILLAR_Y_SIZE_(PILLAR_Y_SIZE) - , PILLAR_Z_SIZE_(PILLAR_Z_SIZE) - , MIN_X_RANGE_(MIN_X_RANGE) - , MIN_Y_RANGE_(MIN_Y_RANGE) - , MIN_Z_RANGE_(MIN_Z_RANGE) - , NUM_INDS_FOR_SCAN_(NUM_INDS_FOR_SCAN) - , NUM_BOX_CORNERS_(NUM_BOX_CORNERS) +PreprocessPoints::PreprocessPoints(const int MAX_NUM_PILLARS, + const int MAX_POINTS_PER_PILLAR, + const int GRID_X_SIZE, + const int GRID_Y_SIZE, + const int GRID_Z_SIZE, + const float PILLAR_X_SIZE, + const float PILLAR_Y_SIZE, + const float PILLAR_Z_SIZE, + const float MIN_X_RANGE, + const float MIN_Y_RANGE, + const float MIN_Z_RANGE, + const int NUM_INDS_FOR_SCAN) +: +MAX_NUM_PILLARS_(MAX_NUM_PILLARS), +MAX_NUM_POINTS_PER_PILLAR_(MAX_POINTS_PER_PILLAR), +GRID_X_SIZE_(GRID_X_SIZE), +GRID_Y_SIZE_(GRID_Y_SIZE), +GRID_Z_SIZE_(GRID_Z_SIZE), +PILLAR_X_SIZE_(PILLAR_X_SIZE), +PILLAR_Y_SIZE_(PILLAR_Y_SIZE), +PILLAR_Z_SIZE_(PILLAR_Z_SIZE), +MIN_X_RANGE_(MIN_X_RANGE), +MIN_Y_RANGE_(MIN_Y_RANGE), +MIN_Z_RANGE_(MIN_Z_RANGE), +NUM_INDS_FOR_SCAN_(NUM_INDS_FOR_SCAN) { } -void PreprocessPoints::initializeVariables(int* coor_to_pillaridx, float* sparse_pillar_map, float* pillar_x, - float* pillar_y, float* pillar_z, float* pillar_i, - float* x_coors_for_sub_shaped, float* y_coors_for_sub_shaped) +void PreprocessPoints::initializeVariables(int* coor_to_pillaridx, float* sparse_pillar_map, + float* pillar_x, float* pillar_y, float* pillar_z, float* pillar_i, + float* x_coors_for_sub_shaped, float* y_coors_for_sub_shaped) { for (int i = 0; i < GRID_Y_SIZE_; i++) { for (int j = 0; j < GRID_X_SIZE_; j++) { - coor_to_pillaridx[i * GRID_X_SIZE_ + j] = -1; + coor_to_pillaridx[i*GRID_X_SIZE_ + j] = -1; } } @@ -58,11 +65,11 @@ void PreprocessPoints::initializeVariables(int* coor_to_pillaridx, float* sparse { for (int j = 0; j < NUM_INDS_FOR_SCAN_; j++) { - sparse_pillar_map[i * NUM_INDS_FOR_SCAN_ + j] = 0; + sparse_pillar_map[i*NUM_INDS_FOR_SCAN_+j] = 0; } } - for (int i = 0; i < MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_; i++) + for(int i = 0; i < MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_; i++) { pillar_x[i] = 0; pillar_y[i] = 0; @@ -73,59 +80,63 @@ void PreprocessPoints::initializeVariables(int* coor_to_pillaridx, float* sparse } } -void PreprocessPoints::preprocess(const float* in_points_array, int in_num_points, int* x_coors, int* y_coors, - float* num_points_per_pillar, float* pillar_x, float* pillar_y, float* pillar_z, - float* pillar_i, float* x_coors_for_sub_shaped, float* y_coors_for_sub_shaped, - float* pillar_feature_mask, float* sparse_pillar_map, int* host_pillar_count) +void PreprocessPoints::preprocess(const float* in_points_array, int in_num_points, + int* x_coors, int* y_coors, float* num_points_per_pillar, + float* pillar_x, float* pillar_y, float* pillar_z, float* pillar_i, + float* x_coors_for_sub_shaped, float* y_coors_for_sub_shaped, + float* pillar_feature_mask, float* sparse_pillar_map, int* host_pillar_count) { int pillar_count = 0; - float x_coors_for_sub[MAX_NUM_PILLARS_] = { 0 }; - float y_coors_for_sub[MAX_NUM_PILLARS_] = { 0 }; - // init variables - int coor_to_pillaridx[GRID_Y_SIZE_ * GRID_X_SIZE_]; - initializeVariables(coor_to_pillaridx, sparse_pillar_map, pillar_x, pillar_y, pillar_z, pillar_i, - x_coors_for_sub_shaped, y_coors_for_sub_shaped); - for (int i = 0; i < in_num_points; i++) + float x_coors_for_sub[MAX_NUM_PILLARS_]= {0}; + float y_coors_for_sub[MAX_NUM_PILLARS_]= {0}; + //init variables + int coor_to_pillaridx[GRID_Y_SIZE_*GRID_X_SIZE_]; + initializeVariables(coor_to_pillaridx, sparse_pillar_map, + pillar_x, pillar_y, pillar_z, pillar_i, + x_coors_for_sub_shaped, y_coors_for_sub_shaped); + for(int i = 0; i < in_num_points; i++) { - int x_coor = std::floor((in_points_array[i * NUM_BOX_CORNERS_ + 0] - MIN_X_RANGE_) / PILLAR_X_SIZE_); - int y_coor = std::floor((in_points_array[i * NUM_BOX_CORNERS_ + 1] - MIN_Y_RANGE_) / PILLAR_Y_SIZE_); - int z_coor = std::floor((in_points_array[i * NUM_BOX_CORNERS_ + 2] - MIN_Z_RANGE_) / PILLAR_Z_SIZE_); - if (x_coor < 0 || x_coor >= GRID_X_SIZE_ || y_coor < 0 || y_coor >= GRID_Y_SIZE_ || z_coor < 0 || - z_coor >= GRID_Z_SIZE_) + int x_coor = std::floor((in_points_array[i*4 + 0] - MIN_X_RANGE_)/PILLAR_X_SIZE_); + int y_coor = std::floor((in_points_array[i*4 + 1] - MIN_Y_RANGE_)/PILLAR_Y_SIZE_); + int z_coor = std::floor((in_points_array[i*4 + 2] - MIN_Z_RANGE_)/PILLAR_Z_SIZE_); + if(x_coor < 0 || x_coor >= GRID_X_SIZE_ || + y_coor < 0 || y_coor >= GRID_Y_SIZE_ || + z_coor < 0 || z_coor >= GRID_Z_SIZE_) { continue; } - // reverse index - int pillar_index = coor_to_pillaridx[y_coor * GRID_X_SIZE_ + x_coor]; - if (pillar_index == -1) + //reverse index + int pillar_index = coor_to_pillaridx[y_coor*GRID_X_SIZE_ + x_coor]; + if(pillar_index == -1) { pillar_index = pillar_count; - if (pillar_count >= MAX_NUM_PILLARS_) + if(pillar_count >= MAX_NUM_PILLARS_) { break; } pillar_count += 1; - coor_to_pillaridx[y_coor * GRID_X_SIZE_ + x_coor] = pillar_index; + coor_to_pillaridx[y_coor*GRID_X_SIZE_ + x_coor] = pillar_index; + //reverse index y_coors[pillar_index] = std::floor(y_coor); x_coors[pillar_index] = std::floor(x_coor); // float y_offset = PILLAR_Y_SIZE_/ 2 + MIN_Y_RANGE_; // float x_offset = PILLAR_X_SIZE_/ 2 + MIN_X_RANGE_; // TODO Need to be modified after proper trining code - // Will be modified in ver 1.1 - y_coors_for_sub[pillar_index] = std::floor(y_coor) * PILLAR_Y_SIZE_ + -39.9f; - x_coors_for_sub[pillar_index] = std::floor(x_coor) * PILLAR_X_SIZE_ + 0.1f; + y_coors_for_sub[pillar_index] = std::floor(y_coor)* PILLAR_Y_SIZE_ + -39.9; + x_coors_for_sub[pillar_index] = std::floor(x_coor)* PILLAR_X_SIZE_ + 0.1; - sparse_pillar_map[y_coor * NUM_INDS_FOR_SCAN_ + x_coor] = 1; + //sparse pillar map + sparse_pillar_map[y_coor*512 + x_coor] = 1; } int num = num_points_per_pillar[pillar_index]; if (num < MAX_NUM_POINTS_PER_PILLAR_) { - pillar_x[pillar_index * MAX_NUM_POINTS_PER_PILLAR_ + num] = in_points_array[i * NUM_BOX_CORNERS_ + 0]; - pillar_y[pillar_index * MAX_NUM_POINTS_PER_PILLAR_ + num] = in_points_array[i * NUM_BOX_CORNERS_ + 1]; - pillar_z[pillar_index * MAX_NUM_POINTS_PER_PILLAR_ + num] = in_points_array[i * NUM_BOX_CORNERS_ + 2]; - pillar_i[pillar_index * MAX_NUM_POINTS_PER_PILLAR_ + num] = in_points_array[i * NUM_BOX_CORNERS_ + 3]; + pillar_x[pillar_index*MAX_NUM_POINTS_PER_PILLAR_ + num]= in_points_array[i*4 + 0]; + pillar_y[pillar_index*MAX_NUM_POINTS_PER_PILLAR_ + num]= in_points_array[i*4 + 1]; + pillar_z[pillar_index*MAX_NUM_POINTS_PER_PILLAR_ + num]= in_points_array[i*4 + 2]; + pillar_i[pillar_index*MAX_NUM_POINTS_PER_PILLAR_ + num]= in_points_array[i*4 + 3]; num_points_per_pillar[pillar_index] += 1; } } @@ -135,19 +146,20 @@ void PreprocessPoints::preprocess(const float* in_points_array, int in_num_point float x = x_coors_for_sub[i]; float y = y_coors_for_sub[i]; int num_points_for_a_pillar = num_points_per_pillar[i]; - for (int j = 0; j < MAX_NUM_POINTS_PER_PILLAR_; j++) + for(int j = 0; j < MAX_NUM_POINTS_PER_PILLAR_; j++) { - x_coors_for_sub_shaped[i * MAX_NUM_POINTS_PER_PILLAR_ + j] = x; - y_coors_for_sub_shaped[i * MAX_NUM_POINTS_PER_PILLAR_ + j] = y; - if (j < num_points_for_a_pillar) - { - pillar_feature_mask[i * MAX_NUM_POINTS_PER_PILLAR_ + j] = 1.0f; - } - else - { - pillar_feature_mask[i * MAX_NUM_POINTS_PER_PILLAR_ + j] = 0.0f; - } + x_coors_for_sub_shaped[i*MAX_NUM_POINTS_PER_PILLAR_ + j] = x; + y_coors_for_sub_shaped[i*MAX_NUM_POINTS_PER_PILLAR_ + j] = y; + if(j < num_points_for_a_pillar) + { + pillar_feature_mask[i*MAX_NUM_POINTS_PER_PILLAR_ + j] = 1.0; + } + else + { + pillar_feature_mask[i*MAX_NUM_POINTS_PER_PILLAR_ + j] = 0.0; + } } } host_pillar_count[0] = pillar_count; + } diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/preprocess_points_cuda.cu b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/preprocess_points_cuda.cu index 343f30ccea1..0ee9bba397e 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/preprocess_points_cuda.cu +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/preprocess_points_cuda.cu @@ -18,8 +18,8 @@ #include //headers in local files -#include "lidar_point_pillars/common.h" -#include "lidar_point_pillars/preprocess_points_cuda.h" +#include "common.h" +#include "preprocess_points_cuda.h" __global__ void make_pillar_histo_kernel( const float* dev_points, @@ -38,8 +38,7 @@ __global__ void make_pillar_histo_kernel( const float MIN_Z_RANGE, const float PILLAR_X_SIZE, const float PILLAR_Y_SIZE, - const float PILLAR_Z_SIZE, - const int NUM_BOX_CORNERS + const float PILLAR_Z_SIZE ) { int th_i = threadIdx.x + blockIdx.x * blockDim.x; @@ -47,9 +46,9 @@ __global__ void make_pillar_histo_kernel( { return; } - int y_coor = floor((dev_points[th_i*NUM_BOX_CORNERS + 1] - MIN_Y_RANGE)/PILLAR_Y_SIZE); - int x_coor = floor((dev_points[th_i*NUM_BOX_CORNERS + 0] - MIN_X_RANGE)/PILLAR_X_SIZE); - int z_coor = floor((dev_points[th_i*NUM_BOX_CORNERS + 2] - MIN_Z_RANGE)/PILLAR_Z_SIZE); + int y_coor = floor((dev_points[th_i*4 + 1] - MIN_Y_RANGE)/PILLAR_Y_SIZE); + int x_coor = floor((dev_points[th_i*4 + 0] - MIN_X_RANGE)/PILLAR_X_SIZE); + int z_coor = floor((dev_points[th_i*4 + 2] - MIN_Z_RANGE)/PILLAR_Z_SIZE); if(x_coor >= 0 && x_coor < GRID_X_SIZE && y_coor >= 0 && y_coor < GRID_Y_SIZE && @@ -59,10 +58,10 @@ __global__ void make_pillar_histo_kernel( if(count < max_points_per_pillar) { int ind = y_coor*GRID_X_SIZE*max_points_per_pillar + x_coor*max_points_per_pillar + count; - dev_pillar_x_in_coors[ind] = dev_points[th_i*NUM_BOX_CORNERS + 0]; - dev_pillar_y_in_coors[ind] = dev_points[th_i*NUM_BOX_CORNERS + 1]; - dev_pillar_z_in_coors[ind] = dev_points[th_i*NUM_BOX_CORNERS + 2]; - dev_pillar_i_in_coors[ind] = dev_points[th_i*NUM_BOX_CORNERS + 3]; + dev_pillar_x_in_coors[ind] = dev_points[th_i*4 + 0]; + dev_pillar_y_in_coors[ind] = dev_points[th_i*4 + 1]; + dev_pillar_z_in_coors[ind] = dev_points[th_i*4 + 2]; + dev_pillar_i_in_coors[ind] = dev_points[th_i*4 + 3]; } } } @@ -108,14 +107,14 @@ __global__ void make_pillar_index_kernel( dev_x_coors[count] = x; dev_y_coors[count] = y; - //TODO Need to be modified after making properly trained weight - // Will be modified in ver 1.1 + //TODO Need to be modified after making properly training model // x_offset = self.vx / 2 + pc_range[0] // y_offset = self.vy / 2 + pc_range[1] // x_sub = coors_x.unsqueeze(1) * 0.16 + x_offset // y_sub = coors_y.unsqueeze(1) * 0.16 + y_offset - dev_x_coors_for_sub[count] = x* PILLAR_X_SIZE + 0.1f; - dev_y_coors_for_sub[count] = y* PILLAR_Y_SIZE + -39.9f; + + dev_x_coors_for_sub[count] = x* PILLAR_X_SIZE + 0.1; + dev_y_coors_for_sub[count] = y* PILLAR_Y_SIZE + -39.9; dev_sparse_pillar_map[y*NUM_INDS_FOR_SCAN + x] = 1; } } @@ -195,8 +194,7 @@ PreprocessPointsCuda::PreprocessPointsCuda(const int NUM_THREADS, const float PILLAR_Z_SIZE, const float MIN_X_RANGE, const float MIN_Y_RANGE, - const float MIN_Z_RANGE, - const int NUM_BOX_CORNERS) + const float MIN_Z_RANGE) : NUM_THREADS_(NUM_THREADS), MAX_NUM_PILLARS_(MAX_NUM_PILLARS), @@ -210,8 +208,7 @@ PILLAR_Y_SIZE_(PILLAR_Y_SIZE), PILLAR_Z_SIZE_(PILLAR_Z_SIZE), MIN_X_RANGE_(MIN_X_RANGE), MIN_Y_RANGE_(MIN_Y_RANGE), -MIN_Z_RANGE_(MIN_Z_RANGE), -NUM_BOX_CORNERS_(NUM_BOX_CORNERS) +MIN_Z_RANGE_(MIN_Z_RANGE) { GPU_CHECK(cudaMalloc((void**)&dev_pillar_x_in_coors_, GRID_Y_SIZE_*GRID_X_SIZE_*MAX_NUM_POINTS_PER_PILLAR_* sizeof(float))); GPU_CHECK(cudaMalloc((void**)&dev_pillar_y_in_coors_, GRID_Y_SIZE_*GRID_X_SIZE_*MAX_NUM_POINTS_PER_PILLAR_* sizeof(float))); @@ -268,8 +265,7 @@ void PreprocessPointsCuda::doPreprocessPointsCuda(const float* dev_points, const MIN_Z_RANGE_, PILLAR_X_SIZE_, PILLAR_Y_SIZE_, - PILLAR_Z_SIZE_, - NUM_BOX_CORNERS_); + PILLAR_Z_SIZE_); make_pillar_index_kernel<<>>( diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/scatter_cuda.cu b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/scatter_cuda.cu index 107e3de6e4a..6933f1da93e 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/scatter_cuda.cu +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/scatter_cuda.cu @@ -15,7 +15,7 @@ */ //headers in local files -#include "lidar_point_pillars/scatter_cuda.h" +#include "scatter_cuda.h" __global__ void scatter_kernel( int *x_coors, int *y_coors, float *pfe_output, float *scattered_feature, const int MAX_NUM_PILLARS_, const int GRID_X_SIZE, const int GRID_Y_SIZE) diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/package.xml b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/package.xml index 53e773449e8..2c79d3dbb70 100755 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/package.xml +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/package.xml @@ -1,24 +1,23 @@ lidar_point_pillars - 1.11.0 + 1.9.1 lidar_point_pillars Kosuke Murakami - Apache 2.0 + BSD catkin - autoware_build_flags roscpp - roslib pcl_ros + cuda-toolkit-10-0 autoware_msgs roscpp - roslib pcl_ros + cuda-toolkit-10-0 autoware_msgs diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/test/src/test_point_pillars.cpp b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/test/src/test_point_pillars.cpp index 70b3a4fa0ae..0b209a92471 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/test/src/test_point_pillars.cpp +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/test/src/test_point_pillars.cpp @@ -14,27 +14,23 @@ * limitations under the License. */ -/** -* @file test_point_pillars.cpp -* @brief unit test file -* @author Kosuke Murakami -* @date 2019/02/26 -*/ + /** + * @file test_point_pillars.cpp + * @brief unit test file + * @author Kosuke Murakami + * @date 2019/02/26 + */ -// headers in ROS #include #include -// headers in gtest #include -//headers in PCL #include #include -//headers in local files -#include "lidar_point_pillars/point_pillars_ros.h" -#include "lidar_point_pillars/preprocess_points.h" +#include "point_pillars_ros.h" +#include "preprocess_points.h" class TestSuite : public ::testing::Test { @@ -50,10 +46,18 @@ class TestSuite : public ::testing::Test class TestClass { public: - TestClass(const int MAX_NUM_PILLARS, const int MAX_NUM_POINTS_PER_PILLAR, const int GRID_X_SIZE, - const int GRID_Y_SIZE, const int GRID_Z_SIZE, const float PILLAR_X_SIZE, const float PILLAR_Y_SIZE, - const float PILLAR_Z_SIZE, const float MIN_X_RANGE, const float MIN_Y_RANGE, const float MIN_Z_RANGE, - const int NUM_INDS_FOR_SCAN, const int NUM_BOX_CORNERS); + TestClass(const int MAX_NUM_PILLARS, + const int MAX_NUM_POINTS_PER_PILLAR, + const int GRID_X_SIZE, + const int GRID_Y_SIZE, + const int GRID_Z_SIZE, + const float PILLAR_X_SIZE, + const float PILLAR_Y_SIZE, + const float PILLAR_Z_SIZE, + const float MIN_X_RANGE, + const float MIN_Y_RANGE, + const float MIN_Z_RANGE, + const int NUM_INDS_FOR_SCAN); const int MAX_NUM_PILLARS_; const int MAX_NUM_POINTS_PER_PILLAR_; const int GRID_X_SIZE_; @@ -66,203 +70,146 @@ class TestClass const float MIN_Y_RANGE_; const float MIN_Z_RANGE_; const int NUM_INDS_FOR_SCAN_; - const int NUM_BOX_CORNERS_; - - // Make pointcloud for test - void makePointsForTest(pcl::PointCloud::Ptr in_pcl_pc_ptr); - void pclToArray(const pcl::PointCloud::Ptr& in_pcl_pc_ptr, float* out_points_array); - void preprocess(const float* in_points_array, int in_num_points, int* x_coors, int* y_coors, - float* num_points_per_pillar, float* pillar_x, float* pillar_y, float* pillar_z, float* pillar_i, - float* x_coors_for_sub_shaped, float* y_coors_for_sub_shaped, float* pillar_feature_mask, - float* sparse_pillar_map, int* host_pillar_count); - void generateAnchors(float* anchors_px, float* anchors_py, float* anchors_pz, float* anchors_dx, - float* anchors_dy, float* anchors_dz, float* anchors_ro); - void convertAnchors2BoxAnchors(float* anchors_px, float* anchors_py, float* anchors_dx, float* anchors_dy, - float* box_anchors_min_x, float* box_anchors_min_y, - float* box_anchors_max_x, float* box_anchors_max_y); - + void loadPoints(pcl::PointCloud::Ptr in_pcl_pc_ptr, + const std::string& in_file ); + void pclToArray(const pcl::PointCloud::Ptr & in_pcl_pc_ptr, float* out_points_array); + void preprocess(const float* in_points_array, int in_num_points, + int* x_coors, int* y_coors, float* num_points_per_pillar, + float* pillar_x, float* pillar_y, float* pillar_z, float* pillar_i, + float* x_coors_for_sub_shaped, float* y_coors_for_sub_shaped, + float* pillar_feature_mask, float* sparse_pillar_map, int* host_pillar_count); private: + std::unique_ptr preprocess_points_ptr_; - std::unique_ptr point_pillars_ptr_; }; -TestClass::TestClass(const int MAX_NUM_PILLARS, const int MAX_NUM_POINTS_PER_PILLAR, const int GRID_X_SIZE, - const int GRID_Y_SIZE, const int GRID_Z_SIZE, const float PILLAR_X_SIZE, const float PILLAR_Y_SIZE, - const float PILLAR_Z_SIZE, const float MIN_X_RANGE, const float MIN_Y_RANGE, - const float MIN_Z_RANGE, const int NUM_INDS_FOR_SCAN, const int NUM_BOX_CORNERS) - : MAX_NUM_PILLARS_(MAX_NUM_PILLARS) - , MAX_NUM_POINTS_PER_PILLAR_(MAX_NUM_POINTS_PER_PILLAR) - , GRID_X_SIZE_(GRID_X_SIZE) - , GRID_Y_SIZE_(GRID_Y_SIZE) - , GRID_Z_SIZE_(GRID_Z_SIZE) - , PILLAR_X_SIZE_(PILLAR_X_SIZE) - , PILLAR_Y_SIZE_(PILLAR_Y_SIZE) - , PILLAR_Z_SIZE_(PILLAR_Z_SIZE) - , MIN_X_RANGE_(MIN_X_RANGE) - , MIN_Y_RANGE_(MIN_Y_RANGE) - , MIN_Z_RANGE_(MIN_Z_RANGE) - , NUM_INDS_FOR_SCAN_(NUM_INDS_FOR_SCAN) - , NUM_BOX_CORNERS_(NUM_BOX_CORNERS) +TestClass::TestClass( + const int MAX_NUM_PILLARS, + const int MAX_NUM_POINTS_PER_PILLAR, + const int GRID_X_SIZE, + const int GRID_Y_SIZE, + const int GRID_Z_SIZE, + const float PILLAR_X_SIZE, + const float PILLAR_Y_SIZE, + const float PILLAR_Z_SIZE, + const float MIN_X_RANGE, + const float MIN_Y_RANGE, + const float MIN_Z_RANGE, + const int NUM_INDS_FOR_SCAN): +MAX_NUM_PILLARS_(MAX_NUM_PILLARS), +MAX_NUM_POINTS_PER_PILLAR_(MAX_NUM_POINTS_PER_PILLAR), +GRID_X_SIZE_(GRID_X_SIZE), +GRID_Y_SIZE_(GRID_Y_SIZE), +GRID_Z_SIZE_(GRID_Z_SIZE), +PILLAR_X_SIZE_(PILLAR_X_SIZE), +PILLAR_Y_SIZE_(PILLAR_Y_SIZE), +PILLAR_Z_SIZE_(PILLAR_Z_SIZE), +MIN_X_RANGE_(MIN_X_RANGE), +MIN_Y_RANGE_(MIN_Y_RANGE), +MIN_Z_RANGE_(MIN_Z_RANGE), +NUM_INDS_FOR_SCAN_(NUM_INDS_FOR_SCAN) { preprocess_points_ptr_.reset(new PreprocessPoints( - MAX_NUM_PILLARS_, MAX_NUM_POINTS_PER_PILLAR_, GRID_X_SIZE_, GRID_Y_SIZE_, GRID_Z_SIZE_, PILLAR_X_SIZE_, - PILLAR_Y_SIZE_, PILLAR_Z_SIZE_, MIN_X_RANGE_, MIN_Y_RANGE_, MIN_Z_RANGE_, NUM_INDS_FOR_SCAN_, NUM_BOX_CORNERS_)); - - bool baselink_support=true; - bool reproduce_result_mode=false; - float score_threshold = 0.5; - float nms_overlap_threshold = 0.5; - std::string package_path = ros::package::getPath("lidar_point_pillars"); - std::string onnx_path = package_path + "/test/data/dummy.onnx"; - std::string pfe_onnx_file = onnx_path; - std::string rpn_onnx_file = onnx_path; - - point_pillars_ptr_.reset(new PointPillars(reproduce_result_mode, score_threshold, nms_overlap_threshold, - pfe_onnx_file, rpn_onnx_file)); + MAX_NUM_PILLARS_, + MAX_NUM_POINTS_PER_PILLAR_, + GRID_X_SIZE_, + GRID_Y_SIZE_, + GRID_Z_SIZE_, + PILLAR_X_SIZE_, + PILLAR_Y_SIZE_, + PILLAR_Z_SIZE_, + MIN_X_RANGE_, + MIN_Y_RANGE_, + MIN_Z_RANGE_, + NUM_INDS_FOR_SCAN_ + )); }; -void TestClass::preprocess(const float* in_points_array, int in_num_points, int* x_coors, int* y_coors, - float* num_points_per_pillar, float* pillar_x, float* pillar_y, float* pillar_z, - float* pillar_i, float* x_coors_for_sub_shaped, float* y_coors_for_sub_shaped, - float* pillar_feature_mask, float* sparse_pillar_map, int* host_pillar_count) +void TestClass::preprocess(const float* in_points_array, int in_num_points, + int* x_coors, int* y_coors, float* num_points_per_pillar, + float* pillar_x, float* pillar_y, float* pillar_z, float* pillar_i, + float* x_coors_for_sub_shaped, float* y_coors_for_sub_shaped, + float* pillar_feature_mask, float* sparse_pillar_map, int* host_pillar_count) { - preprocess_points_ptr_->preprocess(in_points_array, in_num_points, x_coors, y_coors, num_points_per_pillar, pillar_x, - pillar_y, pillar_z, pillar_i, x_coors_for_sub_shaped, y_coors_for_sub_shaped, - pillar_feature_mask, sparse_pillar_map, host_pillar_count); + preprocess_points_ptr_->preprocess(in_points_array, in_num_points, + x_coors, y_coors, num_points_per_pillar, + pillar_x, pillar_y, pillar_z, pillar_i, + x_coors_for_sub_shaped, y_coors_for_sub_shaped, + pillar_feature_mask, sparse_pillar_map, host_pillar_count); } -void TestClass::pclToArray(const pcl::PointCloud::Ptr& in_pcl_pc_ptr, float* out_points_array) +void TestClass::pclToArray(const pcl::PointCloud::Ptr & in_pcl_pc_ptr, float* out_points_array) { - for (size_t i = 0; i < in_pcl_pc_ptr->size(); i++) + for(size_t i = 0; i < in_pcl_pc_ptr->size(); i++) { pcl::PointXYZI point = in_pcl_pc_ptr->at(i); - out_points_array[i * 4 + 0] = point.x; - out_points_array[i * 4 + 1] = point.y; - out_points_array[i * 4 + 2] = point.z; - out_points_array[i * 4 + 3] = point.intensity; + out_points_array[i*4 + 0] = point.x; + out_points_array[i*4 + 1] = point.y; + out_points_array[i*4 + 2] = point.z; + out_points_array[i*4 + 3] = point.intensity; } } -void TestClass::makePointsForTest(pcl::PointCloud::Ptr in_pcl_pc_ptr) -{ - pcl::PointXYZI point; - point.x = 12.9892; - point.y = -9.98058; - point.z = 0; - point.intensity = 4; - in_pcl_pc_ptr->push_back(point); - point.x = 11.8697; - point.y = -11.123; - point.z = -0.189377; - point.intensity = 35; - in_pcl_pc_ptr->push_back(point); - point.x = 12.489; - point.y = -9.59703; - point.z = -2.15565; - point.intensity = 11; - in_pcl_pc_ptr->push_back(point); - point.x = 12.9084; - point.y = -10.9626; - point.z = -2.15565; - point.intensity = 11; - in_pcl_pc_ptr->push_back(point); - point.x = 13.8676; - point.y = -9.61668; - point.z = 0.0980819; - point.intensity = 14; - in_pcl_pc_ptr->push_back(point); - point.x = 13.5673; - point.y = -12.9834; - point.z = 0.21862; - point.intensity = 1; - in_pcl_pc_ptr->push_back(point); - point.x = 13.8213; - point.y = -10.8529; - point.z = -1.22883; - point.intensity = 19; - in_pcl_pc_ptr->push_back(point); - point.x = 11.8957; - point.y = -10.3189; - point.z = -1.28556; - point.intensity = 13; - in_pcl_pc_ptr->push_back(point); -} - -void TestClass::generateAnchors(float* anchors_px, float* anchors_py, float* anchors_pz, float* anchors_dx, - float* anchors_dy, float* anchors_dz, float* anchors_ro) -{ - return point_pillars_ptr_->generateAnchors(anchors_px, anchors_py, anchors_pz, anchors_dx, - anchors_dy, anchors_dz, anchors_ro); -} - -void TestClass::convertAnchors2BoxAnchors(float* anchors_px, float* anchors_py, float* anchors_dx, float* anchors_dy, - float* box_anchors_min_x, float* box_anchors_min_y, - float* box_anchors_max_x, float* box_anchors_max_y) +void TestClass::loadPoints(pcl::PointCloud::Ptr in_pcl_pc_ptr, + const std::string& in_file ) { - return point_pillars_ptr_->convertAnchors2BoxAnchors(anchors_px, anchors_py, anchors_dx, anchors_dy, - box_anchors_min_x, box_anchors_min_y, - box_anchors_max_x, box_anchors_max_y); + if (pcl::io::loadPCDFile (in_file, *in_pcl_pc_ptr) == -1) + { + ROS_ERROR("Couldn't read test pcd file \n"); + } } TEST(TestSuite, CheckPreprocessPointsCPU) { - const int MAX_NUM_PILLARS = 12000; - const int MAX_NUM_POINTS_PER_PILLAR = 100; - const int GRID_X_SIZE = 432; - const int GRID_Y_SIZE = 496; - const int GRID_Z_SIZE = 1; - const float PILLAR_X_SIZE = 0.16; - const float PILLAR_Y_SIZE = 0.16; - const float PILLAR_Z_SIZE = 4.0; - const float MIN_X_RANGE = 0; - const float MIN_Y_RANGE = -39.68; - const float MIN_Z_RANGE = -3.0; - const int NUM_INDS_FOR_SCAN = 512; - const int NUM_BOX_CORNERS = 4; - TestClass test_obj(MAX_NUM_PILLARS, - MAX_NUM_POINTS_PER_PILLAR, - GRID_X_SIZE, - GRID_Y_SIZE, - GRID_Z_SIZE, - PILLAR_X_SIZE, - PILLAR_Y_SIZE, - PILLAR_Z_SIZE, - MIN_X_RANGE, - MIN_Y_RANGE, - MIN_Z_RANGE, - NUM_INDS_FOR_SCAN, - NUM_BOX_CORNERS); + TestClass test_obj( + 12000, + 100, + 432, + 496, + 1, + 0.16, + 0.16, + 4.0, + 0, + -39.68, + -3.0, + 512); pcl::PointCloud::Ptr pcl_pc_ptr(new pcl::PointCloud); - test_obj.makePointsForTest(pcl_pc_ptr); + std::string package_path = ros::package::getPath("lidar_point_pillars"); + std::string in_file = package_path + "/test/data/1527836009720148.pcd"; + test_obj.loadPoints(pcl_pc_ptr, in_file); - float* points_array = new float[pcl_pc_ptr->size() * 4]; + float * points_array = new float[pcl_pc_ptr->size()*4]; test_obj.pclToArray(pcl_pc_ptr, points_array); - int x_coors[test_obj.MAX_NUM_PILLARS_] = { 0 }; - int y_coors[test_obj.MAX_NUM_PILLARS_] = { 0 }; - float num_points_per_pillar[test_obj.MAX_NUM_PILLARS_] = { 0 }; - float* pillar_x = new float[test_obj.MAX_NUM_PILLARS_ * test_obj.MAX_NUM_POINTS_PER_PILLAR_]; - float* pillar_y = new float[test_obj.MAX_NUM_PILLARS_ * test_obj.MAX_NUM_POINTS_PER_PILLAR_]; - float* pillar_z = new float[test_obj.MAX_NUM_PILLARS_ * test_obj.MAX_NUM_POINTS_PER_PILLAR_]; - float* pillar_i = new float[test_obj.MAX_NUM_PILLARS_ * test_obj.MAX_NUM_POINTS_PER_PILLAR_]; - float* x_coors_for_sub_shaped = new float[test_obj.MAX_NUM_PILLARS_ * test_obj.MAX_NUM_POINTS_PER_PILLAR_]; - float* y_coors_for_sub_shaped = new float[test_obj.MAX_NUM_PILLARS_ * test_obj.MAX_NUM_POINTS_PER_PILLAR_]; - float* pillar_feature_mask = new float[test_obj.MAX_NUM_PILLARS_ * test_obj.MAX_NUM_POINTS_PER_PILLAR_]; - - float* sparse_pillar_map = new float[512 * 512]; - - int host_pillar_count[1] = { 0 }; - test_obj.preprocess(points_array, pcl_pc_ptr->size(), x_coors, y_coors, num_points_per_pillar, pillar_x, pillar_y, - pillar_z, pillar_i, x_coors_for_sub_shaped, y_coors_for_sub_shaped, pillar_feature_mask, - sparse_pillar_map, host_pillar_count); - EXPECT_EQ(1, num_points_per_pillar[0]); - EXPECT_FLOAT_EQ(12.9892, pillar_x[0]); - EXPECT_EQ(74, x_coors[1]); - EXPECT_EQ(178, y_coors[1]); - EXPECT_EQ(1, sparse_pillar_map[178 * 512 + 74]); - EXPECT_EQ(8, host_pillar_count[0]); + int x_coors[test_obj.MAX_NUM_PILLARS_]= {0}; + int y_coors[test_obj.MAX_NUM_PILLARS_]= {0}; + float num_points_per_pillar[test_obj.MAX_NUM_PILLARS_] = {0}; + float * pillar_x = new float[test_obj.MAX_NUM_PILLARS_*test_obj.MAX_NUM_POINTS_PER_PILLAR_]; + float * pillar_y = new float[test_obj.MAX_NUM_PILLARS_*test_obj.MAX_NUM_POINTS_PER_PILLAR_]; + float * pillar_z = new float[test_obj.MAX_NUM_PILLARS_*test_obj.MAX_NUM_POINTS_PER_PILLAR_]; + float * pillar_i = new float[test_obj.MAX_NUM_PILLARS_*test_obj.MAX_NUM_POINTS_PER_PILLAR_]; + + float * x_coors_for_sub_shaped = new float[test_obj.MAX_NUM_PILLARS_*test_obj.MAX_NUM_POINTS_PER_PILLAR_]; + float * y_coors_for_sub_shaped = new float[test_obj.MAX_NUM_PILLARS_*test_obj.MAX_NUM_POINTS_PER_PILLAR_]; + float * pillar_feature_mask = new float[test_obj.MAX_NUM_PILLARS_*test_obj.MAX_NUM_POINTS_PER_PILLAR_]; + + float* sparse_pillar_map = new float[512*512]; + + int host_pillar_count[1] = {0}; + test_obj.preprocess(points_array, pcl_pc_ptr->size(), + x_coors, y_coors, num_points_per_pillar, + pillar_x, pillar_y, pillar_z, pillar_i, + x_coors_for_sub_shaped, y_coors_for_sub_shaped, + pillar_feature_mask, sparse_pillar_map, host_pillar_count); + EXPECT_EQ(15, num_points_per_pillar[0]); + EXPECT_FLOAT_EQ(3.7517259, pillar_x[14]); + EXPECT_EQ(71, x_coors[100]); + EXPECT_EQ(177, y_coors[100]); + EXPECT_EQ(1, sparse_pillar_map[177*512 + 71]); + EXPECT_EQ(6270, host_pillar_count[0]); delete[] points_array; delete[] pillar_x; delete[] pillar_y; @@ -274,128 +221,6 @@ TEST(TestSuite, CheckPreprocessPointsCPU) delete[] sparse_pillar_map; } -TEST(TestSuite, CheckGenerateAnchors) -{ - const int MAX_NUM_PILLARS = 12000; - const int MAX_NUM_POINTS_PER_PILLAR = 100; - const int GRID_X_SIZE = 432; - const int GRID_Y_SIZE = 496; - const int GRID_Z_SIZE = 1; - const float PILLAR_X_SIZE = 0.16; - const float PILLAR_Y_SIZE = 0.16; - const float PILLAR_Z_SIZE = 4.0; - const float MIN_X_RANGE = 0; - const float MIN_Y_RANGE = -39.68; - const float MIN_Z_RANGE = -3.0; - const int NUM_INDS_FOR_SCAN = 512; - const int NUM_BOX_CORNERS = 4; - TestClass test_obj(MAX_NUM_PILLARS, - MAX_NUM_POINTS_PER_PILLAR, - GRID_X_SIZE, - GRID_Y_SIZE, - GRID_Z_SIZE, - PILLAR_X_SIZE, - PILLAR_Y_SIZE, - PILLAR_Z_SIZE, - MIN_X_RANGE, - MIN_Y_RANGE, - MIN_Z_RANGE, - NUM_INDS_FOR_SCAN, - NUM_BOX_CORNERS); - - const int NUM_ANCHOR = 432*0.5*496*0.5*2; - float* anchors_px = new float[NUM_ANCHOR]; - float* anchors_py = new float[NUM_ANCHOR]; - float* anchors_pz = new float[NUM_ANCHOR]; - float* anchors_dx = new float[NUM_ANCHOR]; - float* anchors_dy = new float[NUM_ANCHOR]; - float* anchors_dz = new float[NUM_ANCHOR]; - float* anchors_ro = new float[NUM_ANCHOR]; - test_obj.generateAnchors(anchors_px, anchors_py, anchors_pz, anchors_dx, anchors_dy, anchors_dz, anchors_ro); - - EXPECT_NEAR(0.48, anchors_px[3], 0.001); - EXPECT_NEAR(-39.52, anchors_py[109], 0.001); - EXPECT_NEAR(-1.73, anchors_pz[76], 0.001); - EXPECT_NEAR(1.6, anchors_dx[338], 0.001); - EXPECT_NEAR(3.9, anchors_dy[22], 0.001); - EXPECT_NEAR(1.56, anchors_dz[993], 0.001); - EXPECT_NEAR(1.5708, anchors_ro[1765], 0.001); - - delete[] anchors_px; - delete[] anchors_py; - delete[] anchors_pz; - delete[] anchors_dx; - delete[] anchors_dy; - delete[] anchors_dz; - delete[] anchors_ro; -} - -TEST(TestSuite, CheckGenerateBoxAnchors) -{ - const int MAX_NUM_PILLARS = 12000; - const int MAX_NUM_POINTS_PER_PILLAR = 100; - const int GRID_X_SIZE = 432; - const int GRID_Y_SIZE = 496; - const int GRID_Z_SIZE = 1; - const float PILLAR_X_SIZE = 0.16; - const float PILLAR_Y_SIZE = 0.16; - const float PILLAR_Z_SIZE = 4.0; - const float MIN_X_RANGE = 0; - const float MIN_Y_RANGE = -39.68; - const float MIN_Z_RANGE = -3.0; - const int NUM_INDS_FOR_SCAN = 512; - const int NUM_BOX_CORNERS = 4; - TestClass test_obj(MAX_NUM_PILLARS, - MAX_NUM_POINTS_PER_PILLAR, - GRID_X_SIZE, - GRID_Y_SIZE, - GRID_Z_SIZE, - PILLAR_X_SIZE, - PILLAR_Y_SIZE, - PILLAR_Z_SIZE, - MIN_X_RANGE, - MIN_Y_RANGE, - MIN_Z_RANGE, - NUM_INDS_FOR_SCAN, - NUM_BOX_CORNERS); - - const int NUM_ANCHOR = 432*0.5*496*0.5*2; - - float* anchors_px = new float[NUM_ANCHOR]; - float* anchors_py = new float[NUM_ANCHOR]; - float* anchors_pz = new float[NUM_ANCHOR]; - float* anchors_dx = new float[NUM_ANCHOR]; - float* anchors_dy = new float[NUM_ANCHOR]; - float* anchors_dz = new float[NUM_ANCHOR]; - float* anchors_ro = new float[NUM_ANCHOR]; - float* box_anchors_min_x = new float[NUM_ANCHOR]; - float* box_anchors_min_y = new float[NUM_ANCHOR]; - float* box_anchors_max_x = new float[NUM_ANCHOR]; - float* box_anchors_max_y = new float[NUM_ANCHOR]; - test_obj.generateAnchors(anchors_px, anchors_py, anchors_pz, anchors_dx, anchors_dy, anchors_dz, anchors_ro); - test_obj.convertAnchors2BoxAnchors(anchors_px, anchors_py, anchors_dx, anchors_dy, - box_anchors_min_x, box_anchors_min_y, - box_anchors_max_x, box_anchors_max_y); - - EXPECT_NEAR(53.25, box_anchors_min_x[345], 0.001); - EXPECT_NEAR(-41.47, box_anchors_min_y[22], 0.001); - EXPECT_NEAR(38.4, box_anchors_max_x[1098], 0.001); - EXPECT_NEAR(-38.4, box_anchors_max_y[675], 0.001); - - - delete[] anchors_px; - delete[] anchors_py; - delete[] anchors_pz; - delete[] anchors_dx; - delete[] anchors_dy; - delete[] anchors_dz; - delete[] anchors_ro; - delete[] box_anchors_min_x; - delete[] box_anchors_min_y; - delete[] box_anchors_max_x; - delete[] box_anchors_max_y; -} - int main(int argc, char** argv) { testing::InitGoogleTest(&argc, argv); diff --git a/ros/src/util/packages/runtime_manager/scripts/computing.yaml b/ros/src/util/packages/runtime_manager/scripts/computing.yaml index fccc925bb7a..7adabd36ed8 100755 --- a/ros/src/util/packages/runtime_manager/scripts/computing.yaml +++ b/ros/src/util/packages/runtime_manager/scripts/computing.yaml @@ -192,10 +192,12 @@ subs : desc : lidar_cnn_segmentation_baidu_detect. Requires Caffe framework cmd : roslaunch lidar_apollo_cnn_seg_detect lidar_apollo_cnn_seg_detect.launch param: lidar_cnn_baidu_params + - name : lidar_point_pillars desc : lidar_point_pillars. Requires CUDA and TensorRT cmd : roslaunch lidar_point_pillars lidar_point_pillars.launch param: lidar_point_pillars_params + - name : lidar_naive_l_shape_detect desc : lidar_naive_l_shape_detect desc sample cmd : roslaunch lidar_naive_l_shape_detect lidar_naive_l_shape_detect.launch From 7df0c3d61e682b0b80ba047a79b7abb5dafdad35 Mon Sep 17 00:00:00 2001 From: Isamu Takagi Date: Tue, 26 Feb 2019 16:14:35 +0900 Subject: [PATCH 019/139] Support command line options --- ros/src/util/packages/autoware_launcher/scripts/main | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/ros/src/util/packages/autoware_launcher/scripts/main b/ros/src/util/packages/autoware_launcher/scripts/main index 3976c95a727..d00692af767 100755 --- a/ros/src/util/packages/autoware_launcher/scripts/main +++ b/ros/src/util/packages/autoware_launcher/scripts/main @@ -7,7 +7,15 @@ import argparse from autoware_launcher.core import AwLaunchServer from autoware_launcher.gui import AwQtGuiClient -logging.basicConfig(level=logging.INFO, format="%(levelname)-5s: %(name)s: %(message)s") +parser = argparse.ArgumentParser(description='Autoware Launcher') +parser.add_argument("-v", "--verbose", dest="verbose", action="store_true", help="show debug log message") +parser.add_argument("-p", "--profile", dest="profile", action="store", help="name of profile") +parser.add_argument("-s", "--skin", dest="skin", action="store", help="name of style sheet") +args = parser.parse_args() + +loglevel = logging.INFO if not args.verbose else logging.DEBUG +logging.basicConfig(level=loglevel, format="%(levelname)-5s: %(name)s: %(message)s") + server = AwLaunchServer(sys.argv) client = AwQtGuiClient(sys.argv, server) From b883ec63838f9c497136dc7a4361f21c88a877e6 Mon Sep 17 00:00:00 2001 From: cirpue49 Date: Tue, 26 Feb 2019 17:14:30 +0900 Subject: [PATCH 020/139] add readme.md --- .../packages/lidar_point_pillars/README.md | 67 ++++--------------- 1 file changed, 14 insertions(+), 53 deletions(-) diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/README.md b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/README.md index 3cef61d109a..ffae0b6c011 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/README.md +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/README.md @@ -1,70 +1,29 @@ -# Point Pillars for 3D Object Detection: ver. 1.0 +# Point Pillars for 3D Object Detection -Autoware package for Point Pillars. [Referenced paper](https://arxiv.org/abs/1812.05784). +Autoware package for Point Pillars. ([reference paper](https://arxiv.org/abs/1812.05784)) -## Requirements +## Pre requisites -CUDA Toolkit v9.0 or v10.0 - -CUDNN: Tested with v7.3.1 - -TensorRT: Tested with 5.0.2 -> [How to install](https://docs.nvidia.com/deeplearning/sdk/tensorrt-install-guide/index.html#installing) - -## How to setup - -1. Install CUDA from this [website](https://developer.nvidia.com/cuda-downloads) - -2. Install CUDNN - -3. [Download](https://docs.nvidia.com/deeplearning/sdk/tensorrt-install-guide/index.html#downloading) the TensorRT local repo file that matches the Ubuntu version you are using. - -4. Install TensorRT from the Debian local repo package. - -``` -$ sudo dpkg -i -nv-tensorrt-repo-ubuntu1x04-cudax.x-trt5.x.x.x-ga-yyyymmdd_1-1_amd64.deb -$ sudo apt-key add /var/nv-tensorrt-repo-cudax.x-trt5.x.x.x-ga-yyyymmdd/7fa2af80.pub - -$ sudo apt-get update -$ sudo apt-get install tensorrt -``` - -4. Download the pretrained file from [here](https://github.com/cirpue49/kitti_pretrained_pp). - -``` -$ git clone git@github.com:cirpue49/kitti_pretrained_point_pillars.git -``` +CUDA Toolkit v9.0 or 10.0 +TensorRT : [How to install](https://docs.nvidia.com/deeplearning/sdk/tensorrt-install-guide/index.html#installing) ## How to launch -* Launch file: +Using launch file: `roslaunch lidar_point_pillars lidar_point_pillars.launch pfe_onnx_file:=/PATH/TO/FILE.onnx rpn_onnx_file:=/PATH/TO/FILE.onnx input_topic:=/points_raw` -* You can launch it through the runtime manager in Computing tab, as well. - -## API -``` -/** -* @brief Call PointPillars for the inference. -* @param[in] in_points_array pointcloud array -* @param[in] in_num_points Number of points -* @param[out] out_detections Output bounding box from the network -* @details This is an interface for the algorithm. -*/ -void doInference(float* in_points_array, int in_num_points, std::vector out_detections); -``` ## Parameters |Parameter| Type| Description|Default| ----------|-----|--------|----| -|`input_topic`|*String*|Input topic Pointcloud. |`/points_raw`| -|`baselink_support`|*Bool*|Whether to use baselink to adjust parameters. |`True`| -|`reproduce_result_mode`|*Bool*|Whether to enable reproducible result mode at the cost of the runtime. |`False`| -|`score_threshold`|*Float*|Minimum score required to include the result [0,1]|0.5| -|`nms_overlap_threshold`|*Float*|Minimum IOU required to have when applying NMS [0,1]|0.5| +|`input_topic`|*String*|Input topic Pointcloud. Default.|`/points_raw`| +|`baselink_support`|*Bool*|Whether to use baselink to adjust parameters. Default.|`True`| +|`reproduce_result_mode`|*Bool*|Whether to enable reproducible result mode at the cost of the runtime. Default.|`False`| +|`score_threshold`|*Float*|Minimum score required to include the result (0.1)|0.5| +|`nms_overlap_threshold`|*Float*|Minimum IOU required to have when applying NMS (0.1)|0.5| |`pfe_onnx_file`|*String* |Path to the PFE onnx file|| |`rpn_onnx_file`|*String* |Path to the RPN onnx file|| @@ -79,4 +38,6 @@ void doInference(float* in_points_array, int in_num_points, std::vector o * To display the results in Rviz `objects_visualizer` is required. (Launch file launches automatically this node). -* Pretrained models are available [here](https://github.com/cirpue49/kitti_pretrained_pp), trained with the help of the KITTI dataset. For this reason, these are not suitable for commercial purposes. Derivative works are bound to the BY-NC-SA 3.0 License. (https://creativecommons.org/licenses/by-nc-sa/3.0/) +* Pre trained models can be downloaded from the [github repository](https://github.com/cirpue49/kitti_pretrained_pp).Notice that this model is under `BY-NC-SA 3.0` license. + +* If trained model comes from KITTI data, users might not be allowed to use the model for Commercial purpose. From 7f4e8452cc2ceeac572b7af85be17d14efe69957 Mon Sep 17 00:00:00 2001 From: cirpue49 Date: Tue, 26 Feb 2019 19:01:25 +0900 Subject: [PATCH 021/139] Refactor codes --- .../include/point_pillars.h | 2 + .../include/postprocess_cuda.h | 7 +- .../include/preprocess_points.h | 5 +- .../nodes/anchor_mask_cuda.cu | 2 + .../lidar_point_pillars/nodes/nms_cuda.cu | 1 + .../nodes/point_pillars.cpp | 11 +- .../nodes/postprocess_cuda.cu | 104 ++++++++++-------- .../nodes/preprocess_points.cpp | 20 ++-- 8 files changed, 90 insertions(+), 62 deletions(-) diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars.h index c58fc5e58d7..b0c69147ec9 100755 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars.h +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars.h @@ -115,6 +115,8 @@ class PointPillars const float ANCHOR_DX_SIZE_; const float ANCHOR_DY_SIZE_; const float ANCHOR_DZ_SIZE_; + const int NUM_BOX_CORNERS_; + const int NUM_OUTPUT_BOX_FEATURE_; //end initializer list diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/postprocess_cuda.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/postprocess_cuda.h index 261cdd19ed1..3768c040499 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/postprocess_cuda.h +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/postprocess_cuda.h @@ -42,6 +42,8 @@ class PostprocessCuda const float score_threshold_; const int NUM_THREADS_; const float nms_overlap_threshold_; + const int NUM_BOX_CORNERS_; + const int NUM_OUTPUT_BOX_FEATURE_; std::unique_ptr nms_cuda_ptr_; @@ -56,11 +58,14 @@ class PostprocessCuda * @param[in] score_threshold Score threshold for filtering output * @param[in] NUM_THREDS Number of threads for launching cuda kernel * @param[in] nms_overlap_threshold IOU threshold for NMS + * @param[in] NUM_BOX_CORNERS Number of box's corner + * @param[in] NUM_OUTPUT_BOX_FEATURE_ Number of output box's feature * @details Captital variables never change after the compile, non-capital variables could be chaned through rosparam */ PostprocessCuda(const float FLOAT_MIN, const float FLOAT_MAX, const int NUM_ANCHOR_X_INDS, const int NUM_ANCHOR_Y_INDS, const int NUM_ANCHOR_R_INDS, - const float score_threshold, const int NUM_THREADS, const float nms_overlap_threshold); + const float score_threshold, const int NUM_THREADS, const float nms_overlap_threshold, + const int NUM_BOX_CORNERS, const int NUM_OUTPUT_BOX_FEATURE); /** * @brief Postprocessing for the network output diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/preprocess_points.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/preprocess_points.h index bd0b54720f2..426dd50e714 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/preprocess_points.h +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/preprocess_points.h @@ -42,6 +42,7 @@ class PreprocessPoints const float MIN_Y_RANGE_; const float MIN_Z_RANGE_; const int NUM_INDS_FOR_SCAN_; + const int NUM_BOX_CORNERS_; public: @@ -59,6 +60,7 @@ class PreprocessPoints * @param[in] MIN_Y_RANGE Minimum y value for pointcloud * @param[in] MIN_Z_RANGE Minimum z value for pointcloud * @param[in] NUM_INDS_FOR_SCAN Number of indexes for scan(cumsum) + * @param[in] NUM_BOX_CORNERS Number of box's corner * @details Captital variables never change after the compile */ PreprocessPoints(const int MAX_NUM_PILLARS, @@ -72,7 +74,8 @@ class PreprocessPoints const float MIN_X_RANGE, const float MIN_Y_RANGE, const float MIN_Z_RANGE, - const int NUM_INDS_FOR_SCAN); + const int NUM_INDS_FOR_SCAN, + const int NUM_BOX_CORNERS); /** * @brief CPU preprocessing for input pointcloud diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/anchor_mask_cuda.cu b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/anchor_mask_cuda.cu index 4383c1ae63c..72c7556f0c8 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/anchor_mask_cuda.cu +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/anchor_mask_cuda.cu @@ -18,6 +18,7 @@ #include "common.h" #include "anchor_mask_cuda.h" +//modified prefix sum code from https://www.mimuw.edu.pl/~ps209291/kgkp/slides/scan.pdf __global__ void scan_x(int *g_odata, int *g_idata, int n) { extern __shared__ int temp[]; // allocated on invocation @@ -65,6 +66,7 @@ __global__ void scan_x(int *g_odata, int *g_idata, int n) } } +//modified prefix sum code from https://www.mimuw.edu.pl/~ps209291/kgkp/slides/scan.pdf __global__ void scan_y(int *g_odata, int *g_idata, int n) { extern __shared__ int temp[]; // allocated on invocation diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/nms_cuda.cu b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/nms_cuda.cu index 7680a44ad87..d675f9e32f8 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/nms_cuda.cu +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/nms_cuda.cu @@ -33,6 +33,7 @@ __global__ void nms_kernel(const int n_boxes, const float nms_overlap_thresh, min(n_boxes - row_start * block_threads, block_threads); const int col_size = min(n_boxes - col_start * block_threads, block_threads); + //Only can initialize with figures, not by variables __shared__ float block_boxes[64 * 4]; if (threadIdx.x < col_size) { diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp index 4035f399ffa..767008e2788 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp @@ -62,7 +62,9 @@ NUM_THREADS_(64),//if you chancge NUM_THREADS_, need to modify nms_kernel's shar SENSOR_HEIGHT_(1.73), ANCHOR_DX_SIZE_(1.6), ANCHOR_DY_SIZE_(3.9), -ANCHOR_DZ_SIZE_(1.56) +ANCHOR_DZ_SIZE_(1.56), +NUM_BOX_CORNERS_(4), +NUM_OUTPUT_BOX_FEATURE_(7) { anchors_px_ = new float[NUM_ANCHOR_]; anchors_py_ = new float[NUM_ANCHOR_]; @@ -91,7 +93,8 @@ ANCHOR_DZ_SIZE_(1.56) MIN_X_RANGE_, MIN_Y_RANGE_, MIN_Z_RANGE_, - NUM_INDS_FOR_SCAN_)); + NUM_INDS_FOR_SCAN_, + NUM_BOX_CORNERS_)); } else { @@ -141,7 +144,9 @@ ANCHOR_DZ_SIZE_(1.56) NUM_ANCHOR_R_INDS_, score_threshold_, NUM_THREADS_, - nms_overlap_threshold_ + nms_overlap_threshold_, + NUM_BOX_CORNERS_, + NUM_OUTPUT_BOX_FEATURE_ )); deviceMemoryMalloc(); diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/postprocess_cuda.cu b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/postprocess_cuda.cu index 48862d2256e..2b5501e3541 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/postprocess_cuda.cu +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/postprocess_cuda.cu @@ -26,7 +26,8 @@ __global__ void filter_kernel(const float* box_preds, const float* cls_preds, co const float* dev_anchors_px, const float* dev_anchors_py, const float* dev_anchors_pz, const float* dev_anchors_dx, const float* dev_anchors_dy, const float* dev_anchors_dz, const float* dev_anchors_ro, float* filtered_box, float* filtered_score, int* filtered_dir, float* box_for_nms, int* filter_count, - const float FLOAT_MIN, const float FLOAT_MAX, const float score_threshold) + const float FLOAT_MIN, const float FLOAT_MAX, const float score_threshold, + const int NUM_BOX_CORNERS, const int NUM_OUTPUT_BOX_FEATURE) { // boxes ([N, 7] Tensor): normal boxes: x, y, z, w, l, h, r int tid = threadIdx.x + blockIdx.x * blockDim.x; @@ -39,23 +40,23 @@ __global__ void filter_kernel(const float* box_preds, const float* cls_preds, co //decode network output float diagonal = sqrtf(dev_anchors_dx[tid]*dev_anchors_dx[tid] + dev_anchors_dy[tid]*dev_anchors_dy[tid]); - float box_px = box_preds[tid*7 + 0] * diagonal + dev_anchors_px[tid]; - float box_py = box_preds[tid*7 + 1] * diagonal + dev_anchors_py[tid]; - float box_pz = box_preds[tid*7 + 2] * dev_anchors_dz[tid] + za; - float box_dx = expf(box_preds[tid*7 + 3]) * dev_anchors_dx[tid]; - float box_dy = expf(box_preds[tid*7 + 4]) * dev_anchors_dy[tid]; - float box_dz = expf(box_preds[tid*7 + 5]) * dev_anchors_dz[tid]; - float box_ro = box_preds[tid*7 + 6] + dev_anchors_ro[tid]; + float box_px = box_preds[tid*NUM_OUTPUT_BOX_FEATURE + 0] * diagonal + dev_anchors_px[tid]; + float box_py = box_preds[tid*NUM_OUTPUT_BOX_FEATURE + 1] * diagonal + dev_anchors_py[tid]; + float box_pz = box_preds[tid*NUM_OUTPUT_BOX_FEATURE + 2] * dev_anchors_dz[tid] + za; + float box_dx = expf(box_preds[tid*NUM_OUTPUT_BOX_FEATURE + 3]) * dev_anchors_dx[tid]; + float box_dy = expf(box_preds[tid*NUM_OUTPUT_BOX_FEATURE + 4]) * dev_anchors_dy[tid]; + float box_dz = expf(box_preds[tid*NUM_OUTPUT_BOX_FEATURE + 5]) * dev_anchors_dz[tid]; + float box_ro = box_preds[tid*NUM_OUTPUT_BOX_FEATURE + 6] + dev_anchors_ro[tid]; box_pz = box_pz - box_dz/2; - filtered_box[counter*7 + 0] = box_px; - filtered_box[counter*7 + 1] = box_py; - filtered_box[counter*7 + 2] = box_pz; - filtered_box[counter*7 + 3] = box_dx; - filtered_box[counter*7 + 4] = box_dy; - filtered_box[counter*7 + 5] = box_dz; - filtered_box[counter*7 + 6] = box_ro; + filtered_box[counter*NUM_OUTPUT_BOX_FEATURE + 0] = box_px; + filtered_box[counter*NUM_OUTPUT_BOX_FEATURE + 1] = box_py; + filtered_box[counter*NUM_OUTPUT_BOX_FEATURE + 2] = box_pz; + filtered_box[counter*NUM_OUTPUT_BOX_FEATURE + 3] = box_dx; + filtered_box[counter*NUM_OUTPUT_BOX_FEATURE + 4] = box_dy; + filtered_box[counter*NUM_OUTPUT_BOX_FEATURE + 5] = box_dz; + filtered_box[counter*NUM_OUTPUT_BOX_FEATURE + 6] = box_ro; filtered_score[counter] = score; int direction_label; @@ -77,6 +78,7 @@ __global__ void filter_kernel(const float* box_preds, const float* cls_preds, co float( 0.5*box_dx), float(-0.5*box_dy)}; //Second: Rotate, Offset and convert to point(xmin. ymin, xmax, ymax) + //cannot use variable initialization since "error: expression must have a constant value" float rotated_corners[2*4]; float offset_corners[2*4]; float sin_yaw = sinf(box_ro); @@ -85,7 +87,7 @@ __global__ void filter_kernel(const float* box_preds, const float* cls_preds, co float ymin = FLOAT_MAX; float xmax = FLOAT_MIN; float ymax = FLOAT_MIN; - for(size_t i = 0; i < 4; i++) + for(size_t i = 0; i < NUM_BOX_CORNERS; i++) { rotated_corners[i*2 + 0] = cos_yaw*corners[i*2 + 0] - sin_yaw*corners[i*2 + 1]; rotated_corners[i*2 + 1] = sin_yaw*corners[i*2 + 0] + cos_yaw*corners[i*2 + 1]; @@ -99,42 +101,44 @@ __global__ void filter_kernel(const float* box_preds, const float* cls_preds, co ymax = fmaxf(ymax, offset_corners[i*2 + 1]); } // box_for_nms(num_box, 4) - box_for_nms[counter*4 + 0] = xmin; - box_for_nms[counter*4 + 1] = ymin; - box_for_nms[counter*4 + 2] = xmax; - box_for_nms[counter*4 + 3] = ymax; + box_for_nms[counter*NUM_BOX_CORNERS + 0] = xmin; + box_for_nms[counter*NUM_BOX_CORNERS + 1] = ymin; + box_for_nms[counter*NUM_BOX_CORNERS + 2] = xmax; + box_for_nms[counter*NUM_BOX_CORNERS + 3] = ymax; } } __global__ void sort_boxes_by_indexes_kernel(float* filtered_box, int* filtered_dir, float* box_for_nms, int* indexes, int filter_count, - float* sorted_filtered_boxes, int* sorted_filtered_dir, float* sorted_box_for_nms) + float* sorted_filtered_boxes, int* sorted_filtered_dir, float* sorted_box_for_nms, + const int NUM_BOX_CORNERS, const int NUM_OUTPUT_BOX_FEATURE) { int tid = threadIdx.x + blockIdx.x * blockDim.x; if(tid < filter_count) { int sort_index = indexes[tid]; - sorted_filtered_boxes[tid*7 + 0] = filtered_box[sort_index*7 + 0]; - sorted_filtered_boxes[tid*7 + 1] = filtered_box[sort_index*7 + 1]; - sorted_filtered_boxes[tid*7 + 2] = filtered_box[sort_index*7 + 2]; - sorted_filtered_boxes[tid*7 + 3] = filtered_box[sort_index*7 + 3]; - sorted_filtered_boxes[tid*7 + 4] = filtered_box[sort_index*7 + 4]; - sorted_filtered_boxes[tid*7 + 5] = filtered_box[sort_index*7 + 5]; - sorted_filtered_boxes[tid*7 + 6] = filtered_box[sort_index*7 + 6]; + sorted_filtered_boxes[tid*NUM_OUTPUT_BOX_FEATURE + 0] = filtered_box[sort_index*NUM_OUTPUT_BOX_FEATURE + 0]; + sorted_filtered_boxes[tid*NUM_OUTPUT_BOX_FEATURE + 1] = filtered_box[sort_index*NUM_OUTPUT_BOX_FEATURE + 1]; + sorted_filtered_boxes[tid*NUM_OUTPUT_BOX_FEATURE + 2] = filtered_box[sort_index*NUM_OUTPUT_BOX_FEATURE + 2]; + sorted_filtered_boxes[tid*NUM_OUTPUT_BOX_FEATURE + 3] = filtered_box[sort_index*NUM_OUTPUT_BOX_FEATURE + 3]; + sorted_filtered_boxes[tid*NUM_OUTPUT_BOX_FEATURE + 4] = filtered_box[sort_index*NUM_OUTPUT_BOX_FEATURE + 4]; + sorted_filtered_boxes[tid*NUM_OUTPUT_BOX_FEATURE + 5] = filtered_box[sort_index*NUM_OUTPUT_BOX_FEATURE + 5]; + sorted_filtered_boxes[tid*NUM_OUTPUT_BOX_FEATURE + 6] = filtered_box[sort_index*NUM_OUTPUT_BOX_FEATURE + 6]; sorted_filtered_dir[tid] = filtered_dir[sort_index]; - sorted_box_for_nms[tid*4 + 0] = box_for_nms[sort_index*4 + 0]; - sorted_box_for_nms[tid*4 + 1] = box_for_nms[sort_index*4 + 1]; - sorted_box_for_nms[tid*4 + 2] = box_for_nms[sort_index*4 + 2]; - sorted_box_for_nms[tid*4 + 3] = box_for_nms[sort_index*4 + 3]; + sorted_box_for_nms[tid*NUM_BOX_CORNERS + 0] = box_for_nms[sort_index*NUM_BOX_CORNERS + 0]; + sorted_box_for_nms[tid*NUM_BOX_CORNERS + 1] = box_for_nms[sort_index*NUM_BOX_CORNERS + 1]; + sorted_box_for_nms[tid*NUM_BOX_CORNERS + 2] = box_for_nms[sort_index*NUM_BOX_CORNERS + 2]; + sorted_box_for_nms[tid*NUM_BOX_CORNERS + 3] = box_for_nms[sort_index*NUM_BOX_CORNERS + 3]; } } PostprocessCuda::PostprocessCuda(const float FLOAT_MIN, const float FLOAT_MAX, const int NUM_ANCHOR_X_INDS, const int NUM_ANCHOR_Y_INDS, const int NUM_ANCHOR_R_INDS, - const float score_threshold, const int NUM_THREADS, const float nms_overlap_threshold): + const float score_threshold, const int NUM_THREADS, const float nms_overlap_threshold, + const int NUM_BOX_CORNERS, const int NUM_OUTPUT_BOX_FEATURE): FLOAT_MIN_(FLOAT_MIN), FLOAT_MAX_(FLOAT_MAX), NUM_ANCHOR_X_INDS_(NUM_ANCHOR_X_INDS), @@ -142,7 +146,9 @@ NUM_ANCHOR_Y_INDS_(NUM_ANCHOR_Y_INDS), NUM_ANCHOR_R_INDS_(NUM_ANCHOR_R_INDS), score_threshold_(score_threshold), NUM_THREADS_(NUM_THREADS), -nms_overlap_threshold_(nms_overlap_threshold) +nms_overlap_threshold_(nms_overlap_threshold), +NUM_BOX_CORNERS_(NUM_BOX_CORNERS), +NUM_OUTPUT_BOX_FEATURE_(NUM_OUTPUT_BOX_FEATURE) { nms_cuda_ptr_.reset(new NMSCuda( NUM_THREADS, @@ -161,7 +167,8 @@ void PostprocessCuda::doPostprocessCuda(const float* rpn_box_output, const float dev_anchors_px, dev_anchors_py, dev_anchors_pz, dev_anchors_dx, dev_anchors_dy, dev_anchors_dz, dev_anchors_ro, dev_filtered_box, dev_filtered_score, dev_filtered_dir, dev_box_for_nms, dev_filter_count, - FLOAT_MIN_, FLOAT_MAX_, score_threshold_); + FLOAT_MIN_, FLOAT_MAX_, score_threshold_, + NUM_BOX_CORNERS_, NUM_OUTPUT_BOX_FEATURE_); int host_filter_count[1]; GPU_CHECK( cudaMemcpy(host_filter_count, dev_filter_count, sizeof(int), cudaMemcpyDeviceToHost ) ); @@ -174,16 +181,17 @@ void PostprocessCuda::doPostprocessCuda(const float* rpn_box_output, const float float* dev_sorted_filtered_box, *dev_sorted_box_for_nms; int* dev_sorted_filtered_dir; GPU_CHECK(cudaMalloc((void**)&dev_indexes, host_filter_count[0]*sizeof(int))); - GPU_CHECK(cudaMalloc((void**)&dev_sorted_filtered_box, 7*host_filter_count[0]*sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_sorted_filtered_box, NUM_OUTPUT_BOX_FEATURE_*host_filter_count[0]*sizeof(float))); GPU_CHECK(cudaMalloc((void**)&dev_sorted_filtered_dir, host_filter_count[0]*sizeof(int))); - GPU_CHECK(cudaMalloc((void**)&dev_sorted_box_for_nms, 4*host_filter_count[0]*sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_sorted_box_for_nms, NUM_BOX_CORNERS_*host_filter_count[0]*sizeof(float))); thrust::sequence(thrust::device, dev_indexes, dev_indexes + host_filter_count[0]); thrust::sort_by_key(thrust::device, dev_filtered_score, dev_filtered_score + size_t(host_filter_count[0]), dev_indexes, thrust::greater()); const int num_blocks = DIVUP(host_filter_count[0], NUM_THREADS_); sort_boxes_by_indexes_kernel<<>>(dev_filtered_box, dev_filtered_dir, dev_box_for_nms, dev_indexes, host_filter_count[0], - dev_sorted_filtered_box, dev_sorted_filtered_dir, dev_sorted_box_for_nms); + dev_sorted_filtered_box, dev_sorted_filtered_dir, dev_sorted_box_for_nms, + NUM_BOX_CORNERS_, NUM_OUTPUT_BOX_FEATURE_); int keep_inds[host_filter_count[0]] = {0}; nms_cuda_ptr_->doNMSCuda(host_filter_count[0], dev_sorted_box_for_nms, keep_inds, out_num_objects); @@ -191,24 +199,24 @@ void PostprocessCuda::doPostprocessCuda(const float* rpn_box_output, const float float host_filtered_box[host_filter_count[0]*7]; int host_filtered_dir[host_filter_count[0]]; - GPU_CHECK( cudaMemcpy(host_filtered_box, dev_sorted_filtered_box, 7*host_filter_count[0] *sizeof(float), cudaMemcpyDeviceToHost ) ); - GPU_CHECK( cudaMemcpy(host_filtered_dir, dev_sorted_filtered_dir, host_filter_count[0] *sizeof(int), cudaMemcpyDeviceToHost ) ); + GPU_CHECK( cudaMemcpy(host_filtered_box, dev_sorted_filtered_box, NUM_OUTPUT_BOX_FEATURE_*host_filter_count[0] *sizeof(float), cudaMemcpyDeviceToHost ) ); + GPU_CHECK( cudaMemcpy(host_filtered_dir, dev_sorted_filtered_dir, host_filter_count[0] *sizeof(int), cudaMemcpyDeviceToHost ) ); for (size_t i = 0; i < out_num_objects; i++) { - out_detection.push_back(host_filtered_box[keep_inds[i]*7+0]); - out_detection.push_back(host_filtered_box[keep_inds[i]*7+1]); - out_detection.push_back(host_filtered_box[keep_inds[i]*7+2]); - out_detection.push_back(host_filtered_box[keep_inds[i]*7+3]); - out_detection.push_back(host_filtered_box[keep_inds[i]*7+4]); - out_detection.push_back(host_filtered_box[keep_inds[i]*7+5]); + out_detection.push_back(host_filtered_box[keep_inds[i]*NUM_OUTPUT_BOX_FEATURE_+0]); + out_detection.push_back(host_filtered_box[keep_inds[i]*NUM_OUTPUT_BOX_FEATURE_+1]); + out_detection.push_back(host_filtered_box[keep_inds[i]*NUM_OUTPUT_BOX_FEATURE_+2]); + out_detection.push_back(host_filtered_box[keep_inds[i]*NUM_OUTPUT_BOX_FEATURE_+3]); + out_detection.push_back(host_filtered_box[keep_inds[i]*NUM_OUTPUT_BOX_FEATURE_+4]); + out_detection.push_back(host_filtered_box[keep_inds[i]*NUM_OUTPUT_BOX_FEATURE_+5]); if(host_filtered_dir[keep_inds[i]] == 0) { - out_detection.push_back(host_filtered_box[keep_inds[i]*7+6] + M_PI); + out_detection.push_back(host_filtered_box[keep_inds[i]*NUM_OUTPUT_BOX_FEATURE_+6] + M_PI); } else { - out_detection.push_back(host_filtered_box[keep_inds[i]*7+6]); + out_detection.push_back(host_filtered_box[keep_inds[i]*NUM_OUTPUT_BOX_FEATURE_+6]); } } diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/preprocess_points.cpp b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/preprocess_points.cpp index 9ea42f9190d..51fe2a07884 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/preprocess_points.cpp +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/preprocess_points.cpp @@ -32,7 +32,8 @@ PreprocessPoints::PreprocessPoints(const int MAX_NUM_PILLARS, const float MIN_X_RANGE, const float MIN_Y_RANGE, const float MIN_Z_RANGE, - const int NUM_INDS_FOR_SCAN) + const int NUM_INDS_FOR_SCAN, + const int NUM_BOX_CORNERS) : MAX_NUM_PILLARS_(MAX_NUM_PILLARS), MAX_NUM_POINTS_PER_PILLAR_(MAX_POINTS_PER_PILLAR), @@ -45,7 +46,8 @@ PILLAR_Z_SIZE_(PILLAR_Z_SIZE), MIN_X_RANGE_(MIN_X_RANGE), MIN_Y_RANGE_(MIN_Y_RANGE), MIN_Z_RANGE_(MIN_Z_RANGE), -NUM_INDS_FOR_SCAN_(NUM_INDS_FOR_SCAN) +NUM_INDS_FOR_SCAN_(NUM_INDS_FOR_SCAN), +NUM_BOX_CORNERS_(NUM_BOX_CORNERS) { } @@ -96,9 +98,9 @@ void PreprocessPoints::preprocess(const float* in_points_array, int in_num_point x_coors_for_sub_shaped, y_coors_for_sub_shaped); for(int i = 0; i < in_num_points; i++) { - int x_coor = std::floor((in_points_array[i*4 + 0] - MIN_X_RANGE_)/PILLAR_X_SIZE_); - int y_coor = std::floor((in_points_array[i*4 + 1] - MIN_Y_RANGE_)/PILLAR_Y_SIZE_); - int z_coor = std::floor((in_points_array[i*4 + 2] - MIN_Z_RANGE_)/PILLAR_Z_SIZE_); + int x_coor = std::floor((in_points_array[i*NUM_BOX_CORNERS_ + 0] - MIN_X_RANGE_)/PILLAR_X_SIZE_); + int y_coor = std::floor((in_points_array[i*NUM_BOX_CORNERS_ + 1] - MIN_Y_RANGE_)/PILLAR_Y_SIZE_); + int z_coor = std::floor((in_points_array[i*NUM_BOX_CORNERS_ + 2] - MIN_Z_RANGE_)/PILLAR_Z_SIZE_); if(x_coor < 0 || x_coor >= GRID_X_SIZE_ || y_coor < 0 || y_coor >= GRID_Y_SIZE_ || z_coor < 0 || z_coor >= GRID_Z_SIZE_) @@ -133,10 +135,10 @@ void PreprocessPoints::preprocess(const float* in_points_array, int in_num_point int num = num_points_per_pillar[pillar_index]; if (num < MAX_NUM_POINTS_PER_PILLAR_) { - pillar_x[pillar_index*MAX_NUM_POINTS_PER_PILLAR_ + num]= in_points_array[i*4 + 0]; - pillar_y[pillar_index*MAX_NUM_POINTS_PER_PILLAR_ + num]= in_points_array[i*4 + 1]; - pillar_z[pillar_index*MAX_NUM_POINTS_PER_PILLAR_ + num]= in_points_array[i*4 + 2]; - pillar_i[pillar_index*MAX_NUM_POINTS_PER_PILLAR_ + num]= in_points_array[i*4 + 3]; + pillar_x[pillar_index*MAX_NUM_POINTS_PER_PILLAR_ + num]= in_points_array[i*NUM_BOX_CORNERS_ + 0]; + pillar_y[pillar_index*MAX_NUM_POINTS_PER_PILLAR_ + num]= in_points_array[i*NUM_BOX_CORNERS_ + 1]; + pillar_z[pillar_index*MAX_NUM_POINTS_PER_PILLAR_ + num]= in_points_array[i*NUM_BOX_CORNERS_ + 2]; + pillar_i[pillar_index*MAX_NUM_POINTS_PER_PILLAR_ + num]= in_points_array[i*NUM_BOX_CORNERS_ + 3]; num_points_per_pillar[pillar_index] += 1; } } From bd83f1beb4f07c0a69f6adac058c62e0b23eec5f Mon Sep 17 00:00:00 2001 From: Isamu Takagi Date: Tue, 26 Feb 2019 19:03:33 +0900 Subject: [PATCH 022/139] Update gazebo simulator panel --- ros/src/util/packages/autoware_launcher/scripts/main | 1 - 1 file changed, 1 deletion(-) diff --git a/ros/src/util/packages/autoware_launcher/scripts/main b/ros/src/util/packages/autoware_launcher/scripts/main index d00692af767..7efb1b5ed47 100755 --- a/ros/src/util/packages/autoware_launcher/scripts/main +++ b/ros/src/util/packages/autoware_launcher/scripts/main @@ -16,7 +16,6 @@ args = parser.parse_args() loglevel = logging.INFO if not args.verbose else logging.DEBUG logging.basicConfig(level=loglevel, format="%(levelname)-5s: %(name)s: %(message)s") - server = AwLaunchServer(sys.argv) client = AwQtGuiClient(sys.argv, server) sys.exit(client.start(profile=args.profile, skin=args.skin)) From 19ea82364dd6bf6eff0059030152caa583dab62e Mon Sep 17 00:00:00 2001 From: cirpue49 Date: Tue, 26 Feb 2019 19:06:52 +0900 Subject: [PATCH 023/139] apply ros clang --- .../include/anchor_mask_cuda.h | 34 +- .../lidar_point_pillars/include/common.h | 38 +- .../lidar_point_pillars/include/nms_cuda.h | 10 +- .../include/point_pillars.h | 77 +-- .../include/point_pillars_ros.h | 40 +- .../include/postprocess_cuda.h | 81 +-- .../include/preprocess_points.h | 47 +- .../include/preprocess_points_cuda.h | 46 +- .../include/scatter_cuda.h | 18 +- .../nodes/lidar_point_pillars_node.cpp | 4 +- .../nodes/point_pillars.cpp | 584 +++++++++--------- .../nodes/point_pillars_ros.cpp | 91 ++- .../nodes/preprocess_points.cpp | 145 ++--- .../test/src/test_point_pillars.cpp | 183 ++---- 14 files changed, 642 insertions(+), 756 deletions(-) mode change 100755 => 100644 ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars.h mode change 100755 => 100644 ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars_ros.h diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/anchor_mask_cuda.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/anchor_mask_cuda.h index ccca5cb6b6d..6a8b555422c 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/anchor_mask_cuda.h +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/anchor_mask_cuda.h @@ -14,15 +14,15 @@ * limitations under the License. */ - /** - * @file anchor_mask_cuda.h - * @brief Make anchor mask for filtering output - * @author Kosuke Murakami - * @date 2019/02/26 - */ +/** +* @file anchor_mask_cuda.h +* @brief Make anchor mask for filtering output +* @author Kosuke Murakami +* @date 2019/02/26 +*/ -#ifndef ANCHOR_MASK_CUDA_H -#define ANCHOR_MASK_CUDA_H +#ifndef ANCHOR_MASK_CUDA_H +#define ANCHOR_MASK_CUDA_H class AnchorMaskCuda { @@ -37,6 +37,7 @@ class AnchorMaskCuda const float PILLAR_Y_SIZE_; const int GRID_X_SIZE_; const int GRID_Y_SIZE_; + public: /** * @brief Constructor @@ -52,16 +53,9 @@ class AnchorMaskCuda * @param[in] GRID_Y_SIZE Number of pillars in y-coordinate * @details Captital variables never change after the compile */ - AnchorMaskCuda(const int NUM_INDS_FOR_SCAN, - const int NUM_ANCHOR_X_INDS, - const int NUM_ANCHOR_Y_INDS, - const int NUM_ANCHOR_R_INDS, - const float MIN_X_RANGE, - const float MIN_Y_RANGE, - const float PILLAR_X_SIZE, - const float PILLAR_Y_SIZE, - const int GRID_X_SIZE, - const int GRID_Y_SIZE); + AnchorMaskCuda(const int NUM_INDS_FOR_SCAN, const int NUM_ANCHOR_X_INDS, const int NUM_ANCHOR_Y_INDS, + const int NUM_ANCHOR_R_INDS, const float MIN_X_RANGE, const float MIN_Y_RANGE, + const float PILLAR_X_SIZE, const float PILLAR_Y_SIZE, const int GRID_X_SIZE, const int GRID_Y_SIZE); /** * @brief call cuda code for making anchor mask @@ -77,8 +71,8 @@ class AnchorMaskCuda * @details dev_* means device memory. Make a mask for activating pillar occupancy area */ void doAnchorMaskCuda(int* dev_sparse_pillar_map, int* dev_cumsum_along_x, int* dev_cumsum_along_y, - const float* dev_box_anchors_min_x, const float* dev_box_anchors_min_y, - const float* dev_box_anchors_max_x, const float* dev_box_anchors_max_y, int* dev_anchor_mask); + const float* dev_box_anchors_min_x, const float* dev_box_anchors_min_y, + const float* dev_box_anchors_max_x, const float* dev_box_anchors_max_y, int* dev_anchor_mask); }; #endif // ANCHOR_MASK_CUDA_H diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/common.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/common.h index 7cf02333b4d..46e816db735 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/common.h +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/common.h @@ -14,32 +14,36 @@ * limitations under the License. */ - /** - * @file common.h - * @brief MACRO for CUDA codes - * @author Kosuke Murakami - * @date 2019/02/26 - */ +/** +* @file common.h +* @brief MACRO for CUDA codes +* @author Kosuke Murakami +* @date 2019/02/26 +*/ -#ifndef COMMON_H -#define COMMON_H +#ifndef COMMON_H +#define COMMON_H -//headers in STL +// headers in STL #include -//headers in CUDA +// headers in CUDA #include #define DIVUP(m, n) ((m) / (n) + ((m) % (n) > 0)) -#define GPU_CHECK(ans) { GPUAssert((ans), __FILE__, __LINE__); } -inline void GPUAssert(cudaError_t code, const char *file, int line, bool abort=true) +#define GPU_CHECK(ans) \ + { \ + GPUAssert((ans), __FILE__, __LINE__); \ + } +inline void GPUAssert(cudaError_t code, const char* file, int line, bool abort = true) { - if (code != cudaSuccess) - { - fprintf(stderr,"GPUassert: %s %s %d\n", cudaGetErrorString(code), file, line); - if (abort) exit(code); - } + if (code != cudaSuccess) + { + fprintf(stderr, "GPUassert: %s %s %d\n", cudaGetErrorString(code), file, line); + if (abort) + exit(code); + } } #endif // COMMON_H diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/nms_cuda.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/nms_cuda.h index 7a34abf498b..30f2a997062 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/nms_cuda.h +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/nms_cuda.h @@ -21,14 +21,14 @@ * @date 2019/02/26 */ -#ifndef NMS_CUDA_H -#define NMS_CUDA_H +#ifndef NMS_CUDA_H +#define NMS_CUDA_H -//heders in STL +// heders in STL #include #include -//headers in local files +// headers in local files #include "common.h" class NMSCuda @@ -54,7 +54,7 @@ class NMSCuda * @param[out] out_num_to_keep Number of keep bounding box * @details Includes CUDA NMS and postprocessing for selecting box in CPU */ - void doNMSCuda(const int host_filter_count, float* dev_sorted_box_for_nms, int* out_keep_inds, int& out_num_to_keep); + void doNMSCuda(const int host_filter_count, float* dev_sorted_box_for_nms, int* out_keep_inds, int& out_num_to_keep); }; #endif // NMS_CUDA_H diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars.h old mode 100755 new mode 100644 index b0c69147ec9..e65a5c02433 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars.h +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars.h @@ -14,18 +14,17 @@ * limitations under the License. */ - /** - * @file point_pillars.h - * @brief Algorithm for PointPillars - * @author Kosuke Murakami - * @date 2019/02/26 - */ - +/** +* @file point_pillars.h +* @brief Algorithm for PointPillars +* @author Kosuke Murakami +* @date 2019/02/26 +*/ #ifndef POINTS_PILLAR_H #define POINTS_PILLAR_H -//headers in STL +// headers in STL #include #include #include @@ -34,11 +33,11 @@ #include #include -//headers in TensorRT +// headers in TensorRT #include "NvInfer.h" #include "NvOnnxParser.h" -//headers in local files +// headers in local files #include "common.h" #include "preprocess_points.h" #include "preprocess_points_cuda.h" @@ -46,40 +45,48 @@ #include "scatter_cuda.h" #include "postprocess_cuda.h" - // Logger for TensorRT info/warning/errors class Logger : public nvinfer1::ILogger { public: - Logger(Severity severity = Severity::kWARNING) - : reportableSeverity(severity) - { - } + Logger(Severity severity = Severity::kWARNING) : reportableSeverity(severity) + { + } + + void log(Severity severity, const char* msg) override + { + // suppress messages with severity enum value greater than the reportable + if (severity > reportableSeverity) + return; - void log(Severity severity, const char* msg) override + switch (severity) { - // suppress messages with severity enum value greater than the reportable - if (severity > reportableSeverity) - return; - - switch (severity) - { - case Severity::kINTERNAL_ERROR: std::cerr << "INTERNAL_ERROR: "; break; - case Severity::kERROR: std::cerr << "ERROR: "; break; - case Severity::kWARNING: std::cerr << "WARNING: "; break; - case Severity::kINFO: std::cerr << "INFO: "; break; - default: std::cerr << "UNKNOWN: "; break; - } - std::cerr << msg << std::endl; + case Severity::kINTERNAL_ERROR: + std::cerr << "INTERNAL_ERROR: "; + break; + case Severity::kERROR: + std::cerr << "ERROR: "; + break; + case Severity::kWARNING: + std::cerr << "WARNING: "; + break; + case Severity::kINFO: + std::cerr << "INFO: "; + break; + default: + std::cerr << "UNKNOWN: "; + break; } + std::cerr << msg << std::endl; + } - Severity reportableSeverity; + Severity reportableSeverity; }; class PointPillars { private: - //initize in initializer list + // initize in initializer list const bool reproduce_result_mode_; const float score_threshold_; const float nms_overlap_threshold_; @@ -117,8 +124,7 @@ class PointPillars const float ANCHOR_DZ_SIZE_; const int NUM_BOX_CORNERS_; const int NUM_OUTPUT_BOX_FEATURE_; - //end initializer list - + // end initializer list int host_pillar_count_[1]; @@ -182,7 +188,6 @@ class PointPillars float* dev_box_for_nms_; int* dev_filter_count_; - std::unique_ptr preprocess_points_ptr_; std::unique_ptr preprocess_points_cuda_ptr_; std::unique_ptr anchor_mask_cuda_ptr_; @@ -285,8 +290,8 @@ class PointPillars * @param[in] out_num_objects Number of output bounding box * @details This is interface for the algorithm */ - void doInference(const float* in_points_array, const int in_num_points, - std::vector& out_detection, int& out_num_objects); + void doInference(const float* in_points_array, const int in_num_points, std::vector& out_detection, + int& out_num_objects); }; #endif // POINTS_PILLAR_H diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars_ros.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars_ros.h old mode 100755 new mode 100644 index e0b1e1bd53c..8a40722a896 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars_ros.h +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars_ros.h @@ -14,38 +14,37 @@ * limitations under the License. */ - /** - * @file point_pillars_ros.h - * @brief ROS interface for PointPillars - * @author Kosuke Murakami - * @date 2019/02/26 - */ +/** +* @file point_pillars_ros.h +* @brief ROS interface for PointPillars +* @author Kosuke Murakami +* @date 2019/02/26 +*/ #ifndef POINTS_PILLAR_ROS_H #define POINTS_PILLAR_ROS_H -//headers in STL +// headers in STL #include #include -//headers in ROS +// headers in ROS #include #include #include -//headers in PCL +// headers in PCL #include -//headers in local files +// headers in local files #include "point_pillars.h" - class PointPillarsROS { private: friend class TestClass; - //initializer list + // initializer list ros::NodeHandle private_nh_; bool has_subscribed_baselink_; const int NUM_POINT_FEATURE_; @@ -53,16 +52,16 @@ class PointPillarsROS const float TRAINED_SENSOR_HEIGHT_; const float NORMALIZING_INTENSITY_VALUE_; const std::string BASELINK_FRAME_; - //end initializer list + // end initializer list - //rosparam + // rosparam bool baselink_support_; bool reproduce_result_mode_; float score_threshold_; float nms_overlap_threshold_; std::string pfe_onnx_file_; std::string rpn_onnx_file_; - //end rosparam + // end rosparam ros::NodeHandle nh_; ros::Subscriber sub_points_; @@ -73,8 +72,6 @@ class PointPillarsROS tf::Transform angle_transform_; tf::Transform angle_transform_inversed_; - - float offset_z_from_trained_data_; std::unique_ptr point_pillars_ptr_; @@ -100,8 +97,7 @@ class PointPillarsROS * @return geometry_msgs::Pose Transformed pose * @details Calculate transformed pose */ - geometry_msgs::Pose getTransformedPose(const geometry_msgs::Pose& in_pose, - const tf::Transform& tf); + geometry_msgs::Pose getTransformedPose(const geometry_msgs::Pose& in_pose, const tf::Transform& tf); /** * @brief callback for pointcloud @@ -117,7 +113,8 @@ class PointPillarsROS * @param[in] offset_z (default: 1.0) when using baselink_support, offset height based on current sensor configuration * @details convert pcl points to c++ array, plus offset z if it is necessary */ - void pclToArray(const pcl::PointCloud::Ptr & in_pcl_pc_ptr, float* out_points_array, const float offset_z = 0); + void pclToArray(const pcl::PointCloud::Ptr& in_pcl_pc_ptr, float* out_points_array, + const float offset_z = 0); /** * @brief publish DetectedObject @@ -126,7 +123,8 @@ class PointPillarsROS * @param[in] pc_header Header from pointcloud * @details Convert std::vector to DetectedObject, and publish them */ - void pubDetectedObject(const std::vector& detections, const int num_objects, const std_msgs::Header& pc_header); + void pubDetectedObject(const std::vector& detections, const int num_objects, + const std_msgs::Header& pc_header); public: PointPillarsROS(); diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/postprocess_cuda.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/postprocess_cuda.h index 3768c040499..b60a427ca3f 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/postprocess_cuda.h +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/postprocess_cuda.h @@ -14,21 +14,21 @@ * limitations under the License. */ - /** - * @file postprocess_cuda.h - * @brief Postprocess for network output - * @author Kosuke Murakami - * @date 2019/02/26 - */ +/** +* @file postprocess_cuda.h +* @brief Postprocess for network output +* @author Kosuke Murakami +* @date 2019/02/26 +*/ -#ifndef POSTPROCESS_CUDA_H -#define POSTPROCESS_CUDA_H +#ifndef POSTPROCESS_CUDA_H +#define POSTPROCESS_CUDA_H -//headers in STL +// headers in STL #include #include -//headers in local files +// headers in local files #include "nms_cuda.h" class PostprocessCuda @@ -62,38 +62,39 @@ class PostprocessCuda * @param[in] NUM_OUTPUT_BOX_FEATURE_ Number of output box's feature * @details Captital variables never change after the compile, non-capital variables could be chaned through rosparam */ - PostprocessCuda(const float FLOAT_MIN, const float FLOAT_MAX, - const int NUM_ANCHOR_X_INDS, const int NUM_ANCHOR_Y_INDS, const int NUM_ANCHOR_R_INDS, - const float score_threshold, const int NUM_THREADS, const float nms_overlap_threshold, - const int NUM_BOX_CORNERS, const int NUM_OUTPUT_BOX_FEATURE); + PostprocessCuda(const float FLOAT_MIN, const float FLOAT_MAX, const int NUM_ANCHOR_X_INDS, + const int NUM_ANCHOR_Y_INDS, const int NUM_ANCHOR_R_INDS, const float score_threshold, + const int NUM_THREADS, const float nms_overlap_threshold, const int NUM_BOX_CORNERS, + const int NUM_OUTPUT_BOX_FEATURE); - /** - * @brief Postprocessing for the network output - * @param[in] rpn_box_output Box prediction from the network output - * @param[in] rpn_cls_output Class prediction from the network output - * @param[in] rpn_dir_output Direction prediction from the network output - * @param[in] dev_anchor_mask Anchor mask for filtering - * @param[in] dev_anchors_px X-coordinate value for corresponding anchor - * @param[in] dev_anchors_py Y-coordinate value for corresponding anchor - * @param[in] dev_anchors_pz Z-coordinate value for corresponding anchor - * @param[in] dev_anchors_dx X-dimension value for corresponding anchor - * @param[in] dev_anchors_dy Y-dimension value for corresponding anchor - * @param[in] dev_anchors_dz Z-dimension value for corresponding anchor - * @param[in] dev_anchors_ro Rotation value for corresponding anchor - * @param[in] dev_filtered_box Filtered box prediction - * @param[in] dev_filtered_score Filtered score prediction - * @param[in] dev_filtered_dir Filtered direction prediction - * @param[in] dev_box_for_nms Decoded box from pose and dimension to min_x min_y max_x max_y represenation for nms - * @param[in] dev_filter_count The number of filtered output - * @param[out] out_detection Output bounding boxes - * @param[out] out_num_objects The number of output bounding boxes - * @details dev_* represents device memory allocated variables - */ + /** + * @brief Postprocessing for the network output + * @param[in] rpn_box_output Box prediction from the network output + * @param[in] rpn_cls_output Class prediction from the network output + * @param[in] rpn_dir_output Direction prediction from the network output + * @param[in] dev_anchor_mask Anchor mask for filtering + * @param[in] dev_anchors_px X-coordinate value for corresponding anchor + * @param[in] dev_anchors_py Y-coordinate value for corresponding anchor + * @param[in] dev_anchors_pz Z-coordinate value for corresponding anchor + * @param[in] dev_anchors_dx X-dimension value for corresponding anchor + * @param[in] dev_anchors_dy Y-dimension value for corresponding anchor + * @param[in] dev_anchors_dz Z-dimension value for corresponding anchor + * @param[in] dev_anchors_ro Rotation value for corresponding anchor + * @param[in] dev_filtered_box Filtered box prediction + * @param[in] dev_filtered_score Filtered score prediction + * @param[in] dev_filtered_dir Filtered direction prediction + * @param[in] dev_box_for_nms Decoded box from pose and dimension to min_x min_y max_x max_y represenation for nms + * @param[in] dev_filter_count The number of filtered output + * @param[out] out_detection Output bounding boxes + * @param[out] out_num_objects The number of output bounding boxes + * @details dev_* represents device memory allocated variables + */ void doPostprocessCuda(const float* rpn_box_output, const float* rpn_cls_output, const float* rpn_dir_output, - int* dev_anchor_mask, const float* dev_anchors_px, const float* dev_anchors_py, const float* dev_anchors_pz, - const float* dev_anchors_dx, const float* dev_anchors_dy, const float* dev_anchors_dz, const float* dev_anchors_ro, - float* dev_filtered_box, float* dev_filtered_score, int* dev_filtered_dir, float* dev_box_for_nms, int* dev_filter_count, - std::vector& out_detection, int& out_num_objects); + int* dev_anchor_mask, const float* dev_anchors_px, const float* dev_anchors_py, + const float* dev_anchors_pz, const float* dev_anchors_dx, const float* dev_anchors_dy, + const float* dev_anchors_dz, const float* dev_anchors_ro, float* dev_filtered_box, + float* dev_filtered_score, int* dev_filtered_dir, float* dev_box_for_nms, + int* dev_filter_count, std::vector& out_detection, int& out_num_objects); }; #endif // POSTPROCESS_CUDA_H diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/preprocess_points.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/preprocess_points.h index 426dd50e714..b8b361db22e 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/preprocess_points.h +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/preprocess_points.h @@ -14,18 +14,16 @@ * limitations under the License. */ - /** - * @file preprocess_points.h - * @brief CPU version of preprocess points - * @author Kosuke Murakami - * @date 2019/02/26 - */ +/** +* @file preprocess_points.h +* @brief CPU version of preprocess points +* @author Kosuke Murakami +* @date 2019/02/26 +*/ #ifndef PREPROCESS_POINTS_H #define PREPROCESS_POINTS_H - - class PreprocessPoints { private: @@ -44,7 +42,6 @@ class PreprocessPoints const int NUM_INDS_FOR_SCAN_; const int NUM_BOX_CORNERS_; - public: /** * @brief Constructor @@ -63,19 +60,10 @@ class PreprocessPoints * @param[in] NUM_BOX_CORNERS Number of box's corner * @details Captital variables never change after the compile */ - PreprocessPoints(const int MAX_NUM_PILLARS, - const int MAX_POINTS_PER_PILLAR, - const int GRID_X_SIZE, - const int GRID_Y_SIZE, - const int GRID_Z_SIZE, - const float PILLAR_X_SIZE, - const float PILLAR_Y_SIZE, - const float PILLAR_Z_SIZE, - const float MIN_X_RANGE, - const float MIN_Y_RANGE, - const float MIN_Z_RANGE, - const int NUM_INDS_FOR_SCAN, - const int NUM_BOX_CORNERS); + PreprocessPoints(const int MAX_NUM_PILLARS, const int MAX_POINTS_PER_PILLAR, const int GRID_X_SIZE, + const int GRID_Y_SIZE, const int GRID_Z_SIZE, const float PILLAR_X_SIZE, const float PILLAR_Y_SIZE, + const float PILLAR_Z_SIZE, const float MIN_X_RANGE, const float MIN_Y_RANGE, const float MIN_Z_RANGE, + const int NUM_INDS_FOR_SCAN, const int NUM_BOX_CORNERS); /** * @brief CPU preprocessing for input pointcloud @@ -95,11 +83,10 @@ class PreprocessPoints * @param[in] host_pillar_count The numnber of valid pillars for the input pointcloud * @details Convert pointcloud to pillar representation */ - void preprocess(const float* in_points_array, int in_num_points, - int* x_coors, int* y_coors, float* num_points_per_pillar, - float* pillar_x, float* pillar_y, float* pillar_z, float* pillar_i, - float* x_coors_for_sub_shaped, float* y_coors_for_sub_shaped, - float* pillar_feature_mask, float* sparse_pillar_map, int* host_pillar_count); + void preprocess(const float* in_points_array, int in_num_points, int* x_coors, int* y_coors, + float* num_points_per_pillar, float* pillar_x, float* pillar_y, float* pillar_z, float* pillar_i, + float* x_coors_for_sub_shaped, float* y_coors_for_sub_shaped, float* pillar_feature_mask, + float* sparse_pillar_map, int* host_pillar_count); /** * @brief Initializing variables for preprocessing @@ -113,9 +100,9 @@ class PreprocessPoints * @param[in] y_coors_for_sub_shaped Used for y substraction in the network * @details Initializeing input arguments with certain values */ - void initializeVariables(int* coor_to_pillaridx, float* sparse_pillar_map, - float* pillar_x, float* pillar_y, float* pillar_z, float* pillar_i, - float* x_coors_for_sub_shaped, float* y_coors_for_sub_shaped); + void initializeVariables(int* coor_to_pillaridx, float* sparse_pillar_map, float* pillar_x, float* pillar_y, + float* pillar_z, float* pillar_i, float* x_coors_for_sub_shaped, + float* y_coors_for_sub_shaped); }; #endif // PREPROCESS_POINTS_H diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/preprocess_points_cuda.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/preprocess_points_cuda.h index 7a4dd8420d2..710a14a87c3 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/preprocess_points_cuda.h +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/preprocess_points_cuda.h @@ -14,22 +14,20 @@ * limitations under the License. */ - /** - * @file preprocess_points_cuda.h - * @brief GPU version of preprocess points - * @author Kosuke Murakami - * @date 2019/02/26 - */ - - -#ifndef PREPROCESS_POINTS_CUDA_H -#define PREPROCESS_POINTS_CUDA_H +/** +* @file preprocess_points_cuda.h +* @brief GPU version of preprocess points +* @author Kosuke Murakami +* @date 2019/02/26 +*/ +#ifndef PREPROCESS_POINTS_CUDA_H +#define PREPROCESS_POINTS_CUDA_H class PreprocessPointsCuda { private: - //initialzer list + // initialzer list const int NUM_THREADS_; const int MAX_NUM_PILLARS_; const int MAX_NUM_POINTS_PER_PILLAR_; @@ -43,7 +41,7 @@ class PreprocessPointsCuda const float MIN_X_RANGE_; const float MIN_Y_RANGE_; const float MIN_Z_RANGE_; - //end initalizer list + // end initalizer list float* dev_pillar_x_in_coors_; float* dev_pillar_y_in_coors_; @@ -74,19 +72,10 @@ class PreprocessPointsCuda * @param[in] MIN_Z_RANGE Minimum z value for pointcloud * @details Captital variables never change after the compile */ - PreprocessPointsCuda(const int NUM_THREADS, - const int MAX_NUM_PILLARS, - const int MAX_POINTS_PER_PILLAR, - const int NUM_INDS_FOR_SCAN, - const int GRID_X_SIZE, - const int GRID_Y_SIZE, - const int GRID_Z_SIZE, - const float PILLAR_X_SIZE, - const float PILLAR_Y_SIZE, - const float PILLAR_Z_SIZE, - const float MIN_X_RANGE, - const float MIN_Y_RANGE, - const float MIN_Z_RANGE); + PreprocessPointsCuda(const int NUM_THREADS, const int MAX_NUM_PILLARS, const int MAX_POINTS_PER_PILLAR, + const int NUM_INDS_FOR_SCAN, const int GRID_X_SIZE, const int GRID_Y_SIZE, const int GRID_Z_SIZE, + const float PILLAR_X_SIZE, const float PILLAR_Y_SIZE, const float PILLAR_Z_SIZE, + const float MIN_X_RANGE, const float MIN_Y_RANGE, const float MIN_Z_RANGE); ~PreprocessPointsCuda(); /** @@ -108,9 +97,10 @@ class PreprocessPointsCuda * @details Convert pointcloud to pillar representation */ void doPreprocessPointsCuda(const float* dev_points, const int in_num_points, int* dev_x_coors, int* dev_y_coors, - float* dev_num_points_per_pillar, float* dev_pillar_x, float* dev_pillar_y, float* dev_pillar_z, float* dev_pillar_i, - float* dev_x_coors_for_sub_shaped, float* dev_y_coors_for_sub_shaped, - float* dev_pillar_feature_mask, int* dev_sparse_pillar_map, int* host_pillar_count); + float* dev_num_points_per_pillar, float* dev_pillar_x, float* dev_pillar_y, + float* dev_pillar_z, float* dev_pillar_i, float* dev_x_coors_for_sub_shaped, + float* dev_y_coors_for_sub_shaped, float* dev_pillar_feature_mask, + int* dev_sparse_pillar_map, int* host_pillar_count); }; #endif // PREPROCESS_POINTS_CUDA_H diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/scatter_cuda.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/scatter_cuda.h index 24e4f0b79dc..1c955a3a65d 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/scatter_cuda.h +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/scatter_cuda.h @@ -14,15 +14,15 @@ * limitations under the License. */ - /** - * @file scatter_cuda.h - * @brief CUDA code for scatter operation - * @author Kosuke Murakami - * @date 2019/02/26 - */ +/** +* @file scatter_cuda.h +* @brief CUDA code for scatter operation +* @author Kosuke Murakami +* @date 2019/02/26 +*/ -#ifndef SCATTERCUDA_H -#define SCATTERCUDA_H +#ifndef SCATTERCUDA_H +#define SCATTERCUDA_H class ScatterCuda { @@ -52,7 +52,7 @@ class ScatterCuda * @param[out] scattered_feature Gridmap representation for pillars' feature * @details Allocate pillars in gridmap based on index(coordinates) information */ - void doScatterCuda(const int pillar_count, int *x_coors, int *y_coors, float *pfe_output, float *scattered_feature); + void doScatterCuda(const int pillar_count, int* x_coors, int* y_coors, float* pfe_output, float* scattered_feature); }; #endif // SCATTERCUDA_H diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/lidar_point_pillars_node.cpp b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/lidar_point_pillars_node.cpp index 36617dd472b..8faa0bede56 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/lidar_point_pillars_node.cpp +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/lidar_point_pillars_node.cpp @@ -14,10 +14,10 @@ * limitations under the License. */ -//headers in STL +// headers in STL #include -//headers in local files +// headers in local files #include "point_pillars_ros.h" int main(int argc, char** argv) diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp index 767008e2788..117fb5c2a5e 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp @@ -14,57 +14,57 @@ * limitations under the License. */ - -//headers in STL +// headers in STL #include #include -//headers in ROS +// headers in ROS #include -//headers in local files +// headers in local files #include "point_pillars.h" - -PointPillars::PointPillars(const bool reproduce_result_mode, const float score_threshold, const float nms_overlap_threshold, - const std::string pfe_onnx_file, const std::string rpn_onnx_file): -reproduce_result_mode_(reproduce_result_mode), -score_threshold_(score_threshold), -nms_overlap_threshold_(nms_overlap_threshold), -pfe_onnx_file_(pfe_onnx_file), -rpn_onnx_file_(rpn_onnx_file), -MAX_NUM_PILLARS_(12000), -MAX_NUM_POINTS_PER_PILLAR_(100), -PFE_OUTPUT_SIZE_(MAX_NUM_PILLARS_*64), -GRID_X_SIZE_(432), -GRID_Y_SIZE_(496), -GRID_Z_SIZE_(1), -RPN_INPUT_SIZE_(64*GRID_X_SIZE_*GRID_Y_SIZE_), -NUM_ANCHOR_X_INDS_(GRID_X_SIZE_*0.5), -NUM_ANCHOR_Y_INDS_(GRID_Y_SIZE_*0.5), -NUM_ANCHOR_R_INDS_(2), -NUM_ANCHOR_(NUM_ANCHOR_X_INDS_*NUM_ANCHOR_Y_INDS_*NUM_ANCHOR_R_INDS_), -RPN_BOX_OUTPUT_SIZE_(NUM_ANCHOR_*7) , -RPN_CLS_OUTPUT_SIZE_(NUM_ANCHOR_), -RPN_DIR_OUTPUT_SIZE_(NUM_ANCHOR_*2), -PILLAR_X_SIZE_(0.16), -PILLAR_Y_SIZE_(0.16), -PILLAR_Z_SIZE_(4.0), -MIN_X_RANGE_(0.0), -MIN_Y_RANGE_(-39.68), -MIN_Z_RANGE_(-3.0), -MAX_X_RANGE_(69.12), -MAX_Y_RANGE_(39.68), -MAX_Z_RANGE_(1), -BATCH_SIZE_(1), -NUM_INDS_FOR_SCAN_(512), -NUM_THREADS_(64),//if you chancge NUM_THREADS_, need to modify nms_kernel's shared mempry size -SENSOR_HEIGHT_(1.73), -ANCHOR_DX_SIZE_(1.6), -ANCHOR_DY_SIZE_(3.9), -ANCHOR_DZ_SIZE_(1.56), -NUM_BOX_CORNERS_(4), -NUM_OUTPUT_BOX_FEATURE_(7) +PointPillars::PointPillars(const bool reproduce_result_mode, const float score_threshold, + const float nms_overlap_threshold, const std::string pfe_onnx_file, + const std::string rpn_onnx_file) + : reproduce_result_mode_(reproduce_result_mode) + , score_threshold_(score_threshold) + , nms_overlap_threshold_(nms_overlap_threshold) + , pfe_onnx_file_(pfe_onnx_file) + , rpn_onnx_file_(rpn_onnx_file) + , MAX_NUM_PILLARS_(12000) + , MAX_NUM_POINTS_PER_PILLAR_(100) + , PFE_OUTPUT_SIZE_(MAX_NUM_PILLARS_ * 64) + , GRID_X_SIZE_(432) + , GRID_Y_SIZE_(496) + , GRID_Z_SIZE_(1) + , RPN_INPUT_SIZE_(64 * GRID_X_SIZE_ * GRID_Y_SIZE_) + , NUM_ANCHOR_X_INDS_(GRID_X_SIZE_ * 0.5) + , NUM_ANCHOR_Y_INDS_(GRID_Y_SIZE_ * 0.5) + , NUM_ANCHOR_R_INDS_(2) + , NUM_ANCHOR_(NUM_ANCHOR_X_INDS_ * NUM_ANCHOR_Y_INDS_ * NUM_ANCHOR_R_INDS_) + , RPN_BOX_OUTPUT_SIZE_(NUM_ANCHOR_ * 7) + , RPN_CLS_OUTPUT_SIZE_(NUM_ANCHOR_) + , RPN_DIR_OUTPUT_SIZE_(NUM_ANCHOR_ * 2) + , PILLAR_X_SIZE_(0.16) + , PILLAR_Y_SIZE_(0.16) + , PILLAR_Z_SIZE_(4.0) + , MIN_X_RANGE_(0.0) + , MIN_Y_RANGE_(-39.68) + , MIN_Z_RANGE_(-3.0) + , MAX_X_RANGE_(69.12) + , MAX_Y_RANGE_(39.68) + , MAX_Z_RANGE_(1) + , BATCH_SIZE_(1) + , NUM_INDS_FOR_SCAN_(512) + , NUM_THREADS_(64) + , // if you chancge NUM_THREADS_, need to modify nms_kernel's shared mempry size + SENSOR_HEIGHT_(1.73) + , ANCHOR_DX_SIZE_(1.6) + , ANCHOR_DY_SIZE_(3.9) + , ANCHOR_DZ_SIZE_(1.56) + , NUM_BOX_CORNERS_(4) + , NUM_OUTPUT_BOX_FEATURE_(7) { anchors_px_ = new float[NUM_ANCHOR_]; anchors_py_ = new float[NUM_ANCHOR_]; @@ -78,76 +78,31 @@ NUM_OUTPUT_BOX_FEATURE_(7) box_anchors_max_x_ = new float[NUM_ANCHOR_]; box_anchors_max_y_ = new float[NUM_ANCHOR_]; - - if(reproduce_result_mode_) + if (reproduce_result_mode_) { - preprocess_points_ptr_.reset(new PreprocessPoints( - MAX_NUM_PILLARS_, - MAX_NUM_POINTS_PER_PILLAR_, - GRID_X_SIZE_, - GRID_Y_SIZE_, - GRID_Z_SIZE_, - PILLAR_X_SIZE_, - PILLAR_Y_SIZE_, - PILLAR_Z_SIZE_, - MIN_X_RANGE_, - MIN_Y_RANGE_, - MIN_Z_RANGE_, - NUM_INDS_FOR_SCAN_, - NUM_BOX_CORNERS_)); + preprocess_points_ptr_.reset(new PreprocessPoints(MAX_NUM_PILLARS_, MAX_NUM_POINTS_PER_PILLAR_, GRID_X_SIZE_, + GRID_Y_SIZE_, GRID_Z_SIZE_, PILLAR_X_SIZE_, PILLAR_Y_SIZE_, + PILLAR_Z_SIZE_, MIN_X_RANGE_, MIN_Y_RANGE_, MIN_Z_RANGE_, + NUM_INDS_FOR_SCAN_, NUM_BOX_CORNERS_)); } else { preprocess_points_cuda_ptr_.reset(new PreprocessPointsCuda( - NUM_THREADS_, - MAX_NUM_PILLARS_, - MAX_NUM_POINTS_PER_PILLAR_, - NUM_INDS_FOR_SCAN_, - GRID_X_SIZE_, - GRID_Y_SIZE_, - GRID_Z_SIZE_, - PILLAR_X_SIZE_, - PILLAR_Y_SIZE_, - PILLAR_Z_SIZE_, - MIN_X_RANGE_, - MIN_Y_RANGE_, - MIN_Z_RANGE_)); + NUM_THREADS_, MAX_NUM_PILLARS_, MAX_NUM_POINTS_PER_PILLAR_, NUM_INDS_FOR_SCAN_, GRID_X_SIZE_, GRID_Y_SIZE_, + GRID_Z_SIZE_, PILLAR_X_SIZE_, PILLAR_Y_SIZE_, PILLAR_Z_SIZE_, MIN_X_RANGE_, MIN_Y_RANGE_, MIN_Z_RANGE_)); } - anchor_mask_cuda_ptr_.reset(new AnchorMaskCuda( - NUM_INDS_FOR_SCAN_, - NUM_ANCHOR_X_INDS_, - NUM_ANCHOR_Y_INDS_, - NUM_ANCHOR_R_INDS_, - MIN_X_RANGE_, - MIN_Y_RANGE_, - PILLAR_X_SIZE_, - PILLAR_Y_SIZE_, - GRID_X_SIZE_, - GRID_Y_SIZE_ - )); - - scatter_cuda_ptr_.reset(new ScatterCuda( - NUM_THREADS_, - MAX_NUM_PILLARS_, - GRID_X_SIZE_, - GRID_Y_SIZE_ - )); + anchor_mask_cuda_ptr_.reset(new AnchorMaskCuda(NUM_INDS_FOR_SCAN_, NUM_ANCHOR_X_INDS_, NUM_ANCHOR_Y_INDS_, + NUM_ANCHOR_R_INDS_, MIN_X_RANGE_, MIN_Y_RANGE_, PILLAR_X_SIZE_, + PILLAR_Y_SIZE_, GRID_X_SIZE_, GRID_Y_SIZE_)); + + scatter_cuda_ptr_.reset(new ScatterCuda(NUM_THREADS_, MAX_NUM_PILLARS_, GRID_X_SIZE_, GRID_Y_SIZE_)); const float FLOAT_MIN = std::numeric_limits::lowest(); const float FLOAT_MAX = std::numeric_limits::max(); - postprocess_cuda_ptr_.reset(new PostprocessCuda( - FLOAT_MIN, - FLOAT_MAX, - NUM_ANCHOR_X_INDS_, - NUM_ANCHOR_Y_INDS_, - NUM_ANCHOR_R_INDS_, - score_threshold_, - NUM_THREADS_, - nms_overlap_threshold_, - NUM_BOX_CORNERS_, - NUM_OUTPUT_BOX_FEATURE_ - )); + postprocess_cuda_ptr_.reset(new PostprocessCuda(FLOAT_MIN, FLOAT_MAX, NUM_ANCHOR_X_INDS_, NUM_ANCHOR_Y_INDS_, + NUM_ANCHOR_R_INDS_, score_threshold_, NUM_THREADS_, + nms_overlap_threshold_, NUM_BOX_CORNERS_, NUM_OUTPUT_BOX_FEATURE_)); deviceMemoryMalloc(); initTRT(); @@ -156,7 +111,6 @@ NUM_OUTPUT_BOX_FEATURE_(7) PointPillars::~PointPillars() { - delete[] anchors_px_; delete[] anchors_py_; delete[] anchors_pz_; @@ -185,9 +139,9 @@ PointPillars::~PointPillars() GPU_CHECK(cudaFree(dev_pillar_z_)); GPU_CHECK(cudaFree(dev_pillar_i_)); - GPU_CHECK(cudaFree( dev_x_coors_for_sub_shaped_ )); - GPU_CHECK(cudaFree( dev_y_coors_for_sub_shaped_ )); - GPU_CHECK(cudaFree( dev_pillar_feature_mask_ )); + GPU_CHECK(cudaFree(dev_x_coors_for_sub_shaped_)); + GPU_CHECK(cudaFree(dev_y_coors_for_sub_shaped_)); + GPU_CHECK(cudaFree(dev_pillar_feature_mask_)); GPU_CHECK(cudaFree(dev_cumsum_along_x_)); GPU_CHECK(cudaFree(dev_cumsum_along_y_)); @@ -208,7 +162,6 @@ PointPillars::~PointPillars() GPU_CHECK(cudaFree(pfe_buffers_[7])); GPU_CHECK(cudaFree(pfe_buffers_[8])); - GPU_CHECK(cudaFree(rpn_buffers_[0])); GPU_CHECK(cudaFree(rpn_buffers_[1])); GPU_CHECK(cudaFree(rpn_buffers_[2])); @@ -229,8 +182,6 @@ PointPillars::~PointPillars() GPU_CHECK(cudaFree(dev_box_for_nms_)); GPU_CHECK(cudaFree(dev_filter_count_)); - - pfe_context_->destroy(); rpn_context_->destroy(); @@ -242,40 +193,43 @@ PointPillars::~PointPillars() void PointPillars::deviceMemoryMalloc() { - GPU_CHECK(cudaMalloc((void**)&dev_pillar_x_in_coors_, GRID_Y_SIZE_*GRID_X_SIZE_*MAX_NUM_POINTS_PER_PILLAR_* sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_pillar_y_in_coors_, GRID_Y_SIZE_*GRID_X_SIZE_*MAX_NUM_POINTS_PER_PILLAR_* sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_pillar_z_in_coors_, GRID_Y_SIZE_*GRID_X_SIZE_*MAX_NUM_POINTS_PER_PILLAR_* sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_pillar_i_in_coors_, GRID_Y_SIZE_*GRID_X_SIZE_*MAX_NUM_POINTS_PER_PILLAR_* sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_pillar_count_histo_, GRID_Y_SIZE_*GRID_X_SIZE_*sizeof(int))); - - GPU_CHECK(cudaMalloc((void**)&dev_x_coors_, MAX_NUM_PILLARS_* sizeof(int))); - GPU_CHECK(cudaMalloc((void**)&dev_y_coors_, MAX_NUM_PILLARS_* sizeof(int))); - GPU_CHECK(cudaMalloc((void**)&dev_num_points_per_pillar_, MAX_NUM_PILLARS_*sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_sparse_pillar_map_,NUM_INDS_FOR_SCAN_*NUM_INDS_FOR_SCAN_*sizeof(int))); - - - GPU_CHECK(cudaMalloc((void**)&dev_pillar_x_, MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_* sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_pillar_y_, MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_* sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_pillar_z_, MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_* sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_pillar_i_, MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_* sizeof(float))); - - - GPU_CHECK(cudaMalloc((void**)&dev_x_coors_for_sub_shaped_, MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_* sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_y_coors_for_sub_shaped_, MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_* sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_pillar_feature_mask_, MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_* sizeof(float))); - - //cumsum kernel - GPU_CHECK(cudaMalloc((void**)&dev_cumsum_along_x_, NUM_INDS_FOR_SCAN_*NUM_INDS_FOR_SCAN_*sizeof(int))); - GPU_CHECK(cudaMalloc((void**)&dev_cumsum_along_y_, NUM_INDS_FOR_SCAN_*NUM_INDS_FOR_SCAN_*sizeof(int))); - + GPU_CHECK(cudaMalloc((void**)&dev_pillar_x_in_coors_, + GRID_Y_SIZE_ * GRID_X_SIZE_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_pillar_y_in_coors_, + GRID_Y_SIZE_ * GRID_X_SIZE_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_pillar_z_in_coors_, + GRID_Y_SIZE_ * GRID_X_SIZE_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_pillar_i_in_coors_, + GRID_Y_SIZE_ * GRID_X_SIZE_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_pillar_count_histo_, GRID_Y_SIZE_ * GRID_X_SIZE_ * sizeof(int))); + + GPU_CHECK(cudaMalloc((void**)&dev_x_coors_, MAX_NUM_PILLARS_ * sizeof(int))); + GPU_CHECK(cudaMalloc((void**)&dev_y_coors_, MAX_NUM_PILLARS_ * sizeof(int))); + GPU_CHECK(cudaMalloc((void**)&dev_num_points_per_pillar_, MAX_NUM_PILLARS_ * sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_sparse_pillar_map_, NUM_INDS_FOR_SCAN_ * NUM_INDS_FOR_SCAN_ * sizeof(int))); + + GPU_CHECK(cudaMalloc((void**)&dev_pillar_x_, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_pillar_y_, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_pillar_z_, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_pillar_i_, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); + + GPU_CHECK( + cudaMalloc((void**)&dev_x_coors_for_sub_shaped_, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); + GPU_CHECK( + cudaMalloc((void**)&dev_y_coors_for_sub_shaped_, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); + GPU_CHECK( + cudaMalloc((void**)&dev_pillar_feature_mask_, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); + + // cumsum kernel + GPU_CHECK(cudaMalloc((void**)&dev_cumsum_along_x_, NUM_INDS_FOR_SCAN_ * NUM_INDS_FOR_SCAN_ * sizeof(int))); + GPU_CHECK(cudaMalloc((void**)&dev_cumsum_along_y_, NUM_INDS_FOR_SCAN_ * NUM_INDS_FOR_SCAN_ * sizeof(int))); // for make anchor mask kernel - GPU_CHECK(cudaMalloc((void**)&dev_box_anchors_min_x_, NUM_ANCHOR_*sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_box_anchors_min_y_, NUM_ANCHOR_*sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_box_anchors_max_x_, NUM_ANCHOR_*sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_box_anchors_max_y_, NUM_ANCHOR_*sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_anchor_mask_, NUM_ANCHOR_*sizeof(int))); - + GPU_CHECK(cudaMalloc((void**)&dev_box_anchors_min_x_, NUM_ANCHOR_ * sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_box_anchors_min_y_, NUM_ANCHOR_ * sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_box_anchors_max_x_, NUM_ANCHOR_ * sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_box_anchors_max_y_, NUM_ANCHOR_ * sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_anchor_mask_, NUM_ANCHOR_ * sizeof(int))); // for trt inference // create GPU buffers and a stream @@ -295,27 +249,27 @@ void PointPillars::deviceMemoryMalloc() GPU_CHECK(cudaMalloc(&rpn_buffers_[3], RPN_DIR_OUTPUT_SIZE_ * sizeof(float))); // for scatter kernel - GPU_CHECK(cudaMalloc((void**)&dev_scattered_feature_, 64*GRID_Y_SIZE_*GRID_X_SIZE_*sizeof(float) ) ); - - //for filter - GPU_CHECK(cudaMalloc((void**)&dev_anchors_px_, NUM_ANCHOR_*sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_anchors_py_, NUM_ANCHOR_*sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_anchors_pz_, NUM_ANCHOR_*sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_anchors_dx_, NUM_ANCHOR_*sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_anchors_dy_, NUM_ANCHOR_*sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_anchors_dz_, NUM_ANCHOR_*sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_anchors_ro_, NUM_ANCHOR_*sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_filtered_box_, NUM_ANCHOR_*7*sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_filtered_score_, NUM_ANCHOR_*sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_filtered_dir_, NUM_ANCHOR_*sizeof(int))); - GPU_CHECK(cudaMalloc((void**)&dev_box_for_nms_, NUM_ANCHOR_*4*sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_scattered_feature_, 64 * GRID_Y_SIZE_ * GRID_X_SIZE_ * sizeof(float))); + + // for filter + GPU_CHECK(cudaMalloc((void**)&dev_anchors_px_, NUM_ANCHOR_ * sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_anchors_py_, NUM_ANCHOR_ * sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_anchors_pz_, NUM_ANCHOR_ * sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_anchors_dx_, NUM_ANCHOR_ * sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_anchors_dy_, NUM_ANCHOR_ * sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_anchors_dz_, NUM_ANCHOR_ * sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_anchors_ro_, NUM_ANCHOR_ * sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_filtered_box_, NUM_ANCHOR_ * 7 * sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_filtered_score_, NUM_ANCHOR_ * sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_filtered_dir_, NUM_ANCHOR_ * sizeof(int))); + GPU_CHECK(cudaMalloc((void**)&dev_box_for_nms_, NUM_ANCHOR_ * 4 * sizeof(float))); GPU_CHECK(cudaMalloc((void**)&dev_filter_count_, sizeof(int))); } void PointPillars::initAnchors() { // zero clear - for(size_t i = 0; i < NUM_ANCHOR_; i++) + for (size_t i = 0; i < NUM_ANCHOR_; i++) { anchors_px_[i] = 0; anchors_py_[i] = 0; @@ -330,36 +284,36 @@ void PointPillars::initAnchors() box_anchors_max_y_[i] = 0; } - float x_stride = PILLAR_X_SIZE_*2; - float y_stride = PILLAR_Y_SIZE_*2; + float x_stride = PILLAR_X_SIZE_ * 2; + float y_stride = PILLAR_Y_SIZE_ * 2; float x_offset = MIN_X_RANGE_ + PILLAR_X_SIZE_; float y_offset = MIN_Y_RANGE_ + PILLAR_Y_SIZE_; - float anchor_x_count[NUM_ANCHOR_X_INDS_] = {0}; - for(size_t i = 0; i < NUM_ANCHOR_X_INDS_; i++) + float anchor_x_count[NUM_ANCHOR_X_INDS_] = { 0 }; + for (size_t i = 0; i < NUM_ANCHOR_X_INDS_; i++) { - anchor_x_count[i] = float(i)*x_stride + x_offset; + anchor_x_count[i] = float(i) * x_stride + x_offset; } - float anchor_y_count[NUM_ANCHOR_Y_INDS_] = {0}; - for(size_t i = 0; i < NUM_ANCHOR_Y_INDS_; i++) + float anchor_y_count[NUM_ANCHOR_Y_INDS_] = { 0 }; + for (size_t i = 0; i < NUM_ANCHOR_Y_INDS_; i++) { - anchor_y_count[i] = float(i)*y_stride + y_offset; + anchor_y_count[i] = float(i) * y_stride + y_offset; } - float anchor_r_count[NUM_ANCHOR_R_INDS_] = {0, M_PI/2}; + float anchor_r_count[NUM_ANCHOR_R_INDS_] = { 0, M_PI / 2 }; // np.meshgrid - for(size_t y= 0; y < NUM_ANCHOR_Y_INDS_; y++) + for (size_t y = 0; y < NUM_ANCHOR_Y_INDS_; y++) { - for(size_t x = 0; x < NUM_ANCHOR_X_INDS_; x++) + for (size_t x = 0; x < NUM_ANCHOR_X_INDS_; x++) { - for(size_t r=0 ; r < NUM_ANCHOR_R_INDS_; r++) + for (size_t r = 0; r < NUM_ANCHOR_R_INDS_; r++) { - int ind = y*NUM_ANCHOR_X_INDS_*NUM_ANCHOR_R_INDS_ + x*NUM_ANCHOR_R_INDS_ + r; + int ind = y * NUM_ANCHOR_X_INDS_ * NUM_ANCHOR_R_INDS_ + x * NUM_ANCHOR_R_INDS_ + r; anchors_px_[ind] = anchor_x_count[x]; anchors_py_[ind] = anchor_y_count[y]; anchors_ro_[ind] = anchor_r_count[r]; - anchors_pz_[ind] = -1*SENSOR_HEIGHT_; + anchors_pz_[ind] = -1 * SENSOR_HEIGHT_; anchors_dx_[ind] = ANCHOR_DX_SIZE_; anchors_dy_[ind] = ANCHOR_DY_SIZE_; anchors_dz_[ind] = ANCHOR_DZ_SIZE_; @@ -373,49 +327,51 @@ void PointPillars::initAnchors() void PointPillars::putAnchorsInDeviceMemory() { - GPU_CHECK(cudaMemcpy(dev_box_anchors_min_x_, box_anchors_min_x_, NUM_ANCHOR_*sizeof(float), cudaMemcpyHostToDevice ) ); - GPU_CHECK(cudaMemcpy(dev_box_anchors_min_y_, box_anchors_min_y_, NUM_ANCHOR_*sizeof(float), cudaMemcpyHostToDevice ) ); - GPU_CHECK(cudaMemcpy(dev_box_anchors_max_x_, box_anchors_max_x_, NUM_ANCHOR_*sizeof(float), cudaMemcpyHostToDevice ) ); - GPU_CHECK(cudaMemcpy(dev_box_anchors_max_y_, box_anchors_max_y_, NUM_ANCHOR_*sizeof(float), cudaMemcpyHostToDevice ) ); - - GPU_CHECK(cudaMemcpy(dev_anchors_px_, anchors_px_, NUM_ANCHOR_*sizeof(float), cudaMemcpyHostToDevice)); - GPU_CHECK(cudaMemcpy(dev_anchors_py_, anchors_py_, NUM_ANCHOR_*sizeof(float), cudaMemcpyHostToDevice)); - GPU_CHECK(cudaMemcpy(dev_anchors_pz_, anchors_pz_, NUM_ANCHOR_*sizeof(float), cudaMemcpyHostToDevice)); - GPU_CHECK(cudaMemcpy(dev_anchors_dx_, anchors_dx_, NUM_ANCHOR_*sizeof(float), cudaMemcpyHostToDevice)); - GPU_CHECK(cudaMemcpy(dev_anchors_dy_, anchors_dy_, NUM_ANCHOR_*sizeof(float), cudaMemcpyHostToDevice)); - GPU_CHECK(cudaMemcpy(dev_anchors_dz_, anchors_dz_, NUM_ANCHOR_*sizeof(float), cudaMemcpyHostToDevice)); - GPU_CHECK(cudaMemcpy(dev_anchors_ro_, anchors_ro_, NUM_ANCHOR_*sizeof(float), cudaMemcpyHostToDevice)); - + GPU_CHECK( + cudaMemcpy(dev_box_anchors_min_x_, box_anchors_min_x_, NUM_ANCHOR_ * sizeof(float), cudaMemcpyHostToDevice)); + GPU_CHECK( + cudaMemcpy(dev_box_anchors_min_y_, box_anchors_min_y_, NUM_ANCHOR_ * sizeof(float), cudaMemcpyHostToDevice)); + GPU_CHECK( + cudaMemcpy(dev_box_anchors_max_x_, box_anchors_max_x_, NUM_ANCHOR_ * sizeof(float), cudaMemcpyHostToDevice)); + GPU_CHECK( + cudaMemcpy(dev_box_anchors_max_y_, box_anchors_max_y_, NUM_ANCHOR_ * sizeof(float), cudaMemcpyHostToDevice)); + + GPU_CHECK(cudaMemcpy(dev_anchors_px_, anchors_px_, NUM_ANCHOR_ * sizeof(float), cudaMemcpyHostToDevice)); + GPU_CHECK(cudaMemcpy(dev_anchors_py_, anchors_py_, NUM_ANCHOR_ * sizeof(float), cudaMemcpyHostToDevice)); + GPU_CHECK(cudaMemcpy(dev_anchors_pz_, anchors_pz_, NUM_ANCHOR_ * sizeof(float), cudaMemcpyHostToDevice)); + GPU_CHECK(cudaMemcpy(dev_anchors_dx_, anchors_dx_, NUM_ANCHOR_ * sizeof(float), cudaMemcpyHostToDevice)); + GPU_CHECK(cudaMemcpy(dev_anchors_dy_, anchors_dy_, NUM_ANCHOR_ * sizeof(float), cudaMemcpyHostToDevice)); + GPU_CHECK(cudaMemcpy(dev_anchors_dz_, anchors_dz_, NUM_ANCHOR_ * sizeof(float), cudaMemcpyHostToDevice)); + GPU_CHECK(cudaMemcpy(dev_anchors_ro_, anchors_ro_, NUM_ANCHOR_ * sizeof(float), cudaMemcpyHostToDevice)); } -void PointPillars::convertAnchors2BoxAnchors(float* anchors_px, float* anchors_py, - float* anchors_dx, float* anchors_dy) +void PointPillars::convertAnchors2BoxAnchors(float* anchors_px, float* anchors_py, float* anchors_dx, float* anchors_dy) { // flip box's dimension when the at the third axis == 1 - float flipped_anchors_dx[NUM_ANCHOR_] = {0}; - float flipped_anchors_dy[NUM_ANCHOR_] = {0}; - for(size_t x = 0; x < NUM_ANCHOR_X_INDS_; x++) + float flipped_anchors_dx[NUM_ANCHOR_] = { 0 }; + float flipped_anchors_dy[NUM_ANCHOR_] = { 0 }; + for (size_t x = 0; x < NUM_ANCHOR_X_INDS_; x++) { - for(size_t y= 0; y < NUM_ANCHOR_Y_INDS_; y++) + for (size_t y = 0; y < NUM_ANCHOR_Y_INDS_; y++) { - int base_ind = x*NUM_ANCHOR_Y_INDS_*NUM_ANCHOR_R_INDS_ + y*NUM_ANCHOR_R_INDS_; + int base_ind = x * NUM_ANCHOR_Y_INDS_ * NUM_ANCHOR_R_INDS_ + y * NUM_ANCHOR_R_INDS_; flipped_anchors_dx[base_ind + 0] = ANCHOR_DX_SIZE_; flipped_anchors_dy[base_ind + 0] = ANCHOR_DY_SIZE_; flipped_anchors_dx[base_ind + 1] = ANCHOR_DY_SIZE_; flipped_anchors_dy[base_ind + 1] = ANCHOR_DX_SIZE_; } } - for(size_t x = 0; x < NUM_ANCHOR_X_INDS_; x++) + for (size_t x = 0; x < NUM_ANCHOR_X_INDS_; x++) { - for(size_t y= 0; y < NUM_ANCHOR_Y_INDS_; y++) + for (size_t y = 0; y < NUM_ANCHOR_Y_INDS_; y++) { - for(size_t r=0 ; r < NUM_ANCHOR_R_INDS_; r++) + for (size_t r = 0; r < NUM_ANCHOR_R_INDS_; r++) { - int ind = x*NUM_ANCHOR_Y_INDS_*NUM_ANCHOR_R_INDS_ + y*NUM_ANCHOR_R_INDS_ + r; - box_anchors_min_x_[ind] = anchors_px[ind] - flipped_anchors_dx[ind]/2; - box_anchors_min_y_[ind] = anchors_py[ind] - flipped_anchors_dy[ind]/2; - box_anchors_max_x_[ind] = anchors_px[ind] + flipped_anchors_dx[ind]/2; - box_anchors_max_y_[ind] = anchors_py[ind] + flipped_anchors_dy[ind]/2; + int ind = x * NUM_ANCHOR_Y_INDS_ * NUM_ANCHOR_R_INDS_ + y * NUM_ANCHOR_R_INDS_ + r; + box_anchors_min_x_[ind] = anchors_px[ind] - flipped_anchors_dx[ind] / 2; + box_anchors_min_y_[ind] = anchors_py[ind] - flipped_anchors_dy[ind] / 2; + box_anchors_max_x_[ind] = anchors_px[ind] + flipped_anchors_dx[ind] / 2; + box_anchors_max_y_[ind] = anchors_py[ind] + flipped_anchors_dy[ind] / 2; } } } @@ -424,11 +380,11 @@ void PointPillars::convertAnchors2BoxAnchors(float* anchors_px, float* anchors_p void PointPillars::initTRT() { // create a TensorRT model from the onnx model and serialize it to a stream - nvinfer1::IHostMemory* pfe_trt_model_stream{nullptr}; - nvinfer1::IHostMemory* rpn_trt_model_stream{nullptr}; + nvinfer1::IHostMemory* pfe_trt_model_stream{ nullptr }; + nvinfer1::IHostMemory* rpn_trt_model_stream{ nullptr }; onnxToTRTModel(pfe_onnx_file_, pfe_trt_model_stream); onnxToTRTModel(rpn_onnx_file_, rpn_trt_model_stream); - if(pfe_trt_model_stream == nullptr || rpn_trt_model_stream == nullptr) + if (pfe_trt_model_stream == nullptr || rpn_trt_model_stream == nullptr) { ROS_ERROR("Failed to load %s or %s ", pfe_onnx_file_.c_str(), rpn_onnx_file_.c_str()); } @@ -436,13 +392,15 @@ void PointPillars::initTRT() // deserialize the engine pfe_runtime_ = nvinfer1::createInferRuntime(g_logger_); rpn_runtime_ = nvinfer1::createInferRuntime(g_logger_); - if(pfe_runtime_ == nullptr || rpn_runtime_ == nullptr) + if (pfe_runtime_ == nullptr || rpn_runtime_ == nullptr) { ROS_ERROR("Failed to create TensorRT Runtime object."); } - pfe_engine_ = pfe_runtime_->deserializeCudaEngine(pfe_trt_model_stream->data(), pfe_trt_model_stream->size(), nullptr); - rpn_engine_ = rpn_runtime_->deserializeCudaEngine(rpn_trt_model_stream->data(), rpn_trt_model_stream->size(), nullptr); - if(pfe_engine_ == nullptr || rpn_engine_ == nullptr) + pfe_engine_ = + pfe_runtime_->deserializeCudaEngine(pfe_trt_model_stream->data(), pfe_trt_model_stream->size(), nullptr); + rpn_engine_ = + rpn_runtime_->deserializeCudaEngine(rpn_trt_model_stream->data(), rpn_trt_model_stream->size(), nullptr); + if (pfe_engine_ == nullptr || rpn_engine_ == nullptr) { ROS_ERROR("Failed to create TensorRT Engine."); } @@ -450,16 +408,16 @@ void PointPillars::initTRT() rpn_trt_model_stream->destroy(); pfe_context_ = pfe_engine_->createExecutionContext(); rpn_context_ = rpn_engine_->createExecutionContext(); - if(pfe_context_ == nullptr || rpn_context_ == nullptr) + if (pfe_context_ == nullptr || rpn_context_ == nullptr) { ROS_ERROR("Failed to create TensorRT Execution Context."); } } -void PointPillars::onnxToTRTModel(const std::string& model_file, // name of the onnx model - nvinfer1::IHostMemory*& trt_model_stream) // output buffer for the TensorRT model +void PointPillars::onnxToTRTModel(const std::string& model_file, // name of the onnx model + nvinfer1::IHostMemory*& trt_model_stream) // output buffer for the TensorRT model { - int verbosity = (int) nvinfer1::ILogger::Severity::kWARNING; + int verbosity = (int)nvinfer1::ILogger::Severity::kWARNING; // create the builder nvinfer1::IBuilder* builder = nvinfer1::createInferBuilder(g_logger_); @@ -469,9 +427,9 @@ void PointPillars::onnxToTRTModel(const std::string& model_file, // name of the if (!parser->parseFromFile(model_file.c_str(), verbosity)) { - std::string msg("failed to parse onnx file"); - g_logger_.log(nvinfer1::ILogger::Severity::kERROR, msg.c_str()); - exit(EXIT_FAILURE); + std::string msg("failed to parse onnx file"); + g_logger_.log(nvinfer1::ILogger::Severity::kERROR, msg.c_str()); + exit(EXIT_FAILURE); } // Build the engine @@ -491,48 +449,55 @@ void PointPillars::onnxToTRTModel(const std::string& model_file, // name of the void PointPillars::preprocessCPU(const float* in_points_array, const int in_num_points) { - int x_coors[MAX_NUM_PILLARS_]= {0}; - int y_coors[MAX_NUM_PILLARS_]= {0}; - float num_points_per_pillar[MAX_NUM_PILLARS_] = {0}; - float * pillar_x = new float[MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_]; - float * pillar_y = new float[MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_]; - float * pillar_z = new float[MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_]; - float * pillar_i = new float[MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_]; - - float * x_coors_for_sub_shaped = new float[MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_]; - float * y_coors_for_sub_shaped = new float[MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_]; - float * pillar_feature_mask = new float[MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_]; - - float* sparse_pillar_map = new float[NUM_INDS_FOR_SCAN_*NUM_INDS_FOR_SCAN_]; - - preprocess_points_ptr_->preprocess(in_points_array, in_num_points, - x_coors, y_coors, num_points_per_pillar, - pillar_x, pillar_y, pillar_z, pillar_i, - x_coors_for_sub_shaped, y_coors_for_sub_shaped, - pillar_feature_mask, sparse_pillar_map, host_pillar_count_); - - GPU_CHECK( cudaMemset(dev_x_coors_, 0, MAX_NUM_PILLARS_ * sizeof( int ) ) ); - GPU_CHECK( cudaMemset(dev_y_coors_, 0, MAX_NUM_PILLARS_ * sizeof( int ) ) ); - GPU_CHECK( cudaMemset(dev_pillar_x_,0, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); - GPU_CHECK( cudaMemset(dev_pillar_y_,0, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); - GPU_CHECK( cudaMemset(dev_pillar_z_,0, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); - GPU_CHECK( cudaMemset(dev_pillar_i_,0, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); - GPU_CHECK( cudaMemset(dev_x_coors_for_sub_shaped_, 0, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ *sizeof( float ) ) ); - GPU_CHECK( cudaMemset(dev_y_coors_for_sub_shaped_, 0, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ *sizeof( float ) ) ); - GPU_CHECK( cudaMemset(dev_num_points_per_pillar_, 0, MAX_NUM_PILLARS_ * sizeof( float ) ) ); - GPU_CHECK( cudaMemset(dev_sparse_pillar_map_, 0, NUM_INDS_FOR_SCAN_*NUM_INDS_FOR_SCAN_*sizeof( int ) ) ); - - GPU_CHECK(cudaMemcpy(dev_x_coors_, x_coors, MAX_NUM_PILLARS_*sizeof(int), cudaMemcpyHostToDevice )); - GPU_CHECK(cudaMemcpy(dev_y_coors_, y_coors, MAX_NUM_PILLARS_*sizeof(int), cudaMemcpyHostToDevice )); - GPU_CHECK(cudaMemcpy(dev_pillar_x_, pillar_x, MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_*sizeof(float), cudaMemcpyHostToDevice )); - GPU_CHECK(cudaMemcpy(dev_pillar_y_, pillar_y, MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_*sizeof(float), cudaMemcpyHostToDevice )); - GPU_CHECK(cudaMemcpy(dev_pillar_z_, pillar_z, MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_*sizeof(float), cudaMemcpyHostToDevice )); - GPU_CHECK(cudaMemcpy(dev_pillar_i_, pillar_i, MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_*sizeof(float), cudaMemcpyHostToDevice )); - GPU_CHECK(cudaMemcpy(dev_x_coors_for_sub_shaped_, x_coors_for_sub_shaped,MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_*sizeof(float), cudaMemcpyHostToDevice )); - GPU_CHECK(cudaMemcpy(dev_y_coors_for_sub_shaped_, y_coors_for_sub_shaped,MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_*sizeof(float), cudaMemcpyHostToDevice )); - GPU_CHECK(cudaMemcpy(dev_num_points_per_pillar_,num_points_per_pillar,MAX_NUM_PILLARS_*sizeof(float), cudaMemcpyHostToDevice )); - GPU_CHECK(cudaMemcpy(dev_pillar_feature_mask_, pillar_feature_mask, MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_*sizeof(float), cudaMemcpyHostToDevice )); - GPU_CHECK(cudaMemcpy(dev_sparse_pillar_map_, sparse_pillar_map, NUM_INDS_FOR_SCAN_*NUM_INDS_FOR_SCAN_*sizeof(float), cudaMemcpyHostToDevice )); + int x_coors[MAX_NUM_PILLARS_] = { 0 }; + int y_coors[MAX_NUM_PILLARS_] = { 0 }; + float num_points_per_pillar[MAX_NUM_PILLARS_] = { 0 }; + float* pillar_x = new float[MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_]; + float* pillar_y = new float[MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_]; + float* pillar_z = new float[MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_]; + float* pillar_i = new float[MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_]; + + float* x_coors_for_sub_shaped = new float[MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_]; + float* y_coors_for_sub_shaped = new float[MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_]; + float* pillar_feature_mask = new float[MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_]; + + float* sparse_pillar_map = new float[NUM_INDS_FOR_SCAN_ * NUM_INDS_FOR_SCAN_]; + + preprocess_points_ptr_->preprocess(in_points_array, in_num_points, x_coors, y_coors, num_points_per_pillar, pillar_x, + pillar_y, pillar_z, pillar_i, x_coors_for_sub_shaped, y_coors_for_sub_shaped, + pillar_feature_mask, sparse_pillar_map, host_pillar_count_); + + GPU_CHECK(cudaMemset(dev_x_coors_, 0, MAX_NUM_PILLARS_ * sizeof(int))); + GPU_CHECK(cudaMemset(dev_y_coors_, 0, MAX_NUM_PILLARS_ * sizeof(int))); + GPU_CHECK(cudaMemset(dev_pillar_x_, 0, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); + GPU_CHECK(cudaMemset(dev_pillar_y_, 0, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); + GPU_CHECK(cudaMemset(dev_pillar_z_, 0, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); + GPU_CHECK(cudaMemset(dev_pillar_i_, 0, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); + GPU_CHECK(cudaMemset(dev_x_coors_for_sub_shaped_, 0, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); + GPU_CHECK(cudaMemset(dev_y_coors_for_sub_shaped_, 0, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); + GPU_CHECK(cudaMemset(dev_num_points_per_pillar_, 0, MAX_NUM_PILLARS_ * sizeof(float))); + GPU_CHECK(cudaMemset(dev_sparse_pillar_map_, 0, NUM_INDS_FOR_SCAN_ * NUM_INDS_FOR_SCAN_ * sizeof(int))); + + GPU_CHECK(cudaMemcpy(dev_x_coors_, x_coors, MAX_NUM_PILLARS_ * sizeof(int), cudaMemcpyHostToDevice)); + GPU_CHECK(cudaMemcpy(dev_y_coors_, y_coors, MAX_NUM_PILLARS_ * sizeof(int), cudaMemcpyHostToDevice)); + GPU_CHECK(cudaMemcpy(dev_pillar_x_, pillar_x, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), + cudaMemcpyHostToDevice)); + GPU_CHECK(cudaMemcpy(dev_pillar_y_, pillar_y, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), + cudaMemcpyHostToDevice)); + GPU_CHECK(cudaMemcpy(dev_pillar_z_, pillar_z, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), + cudaMemcpyHostToDevice)); + GPU_CHECK(cudaMemcpy(dev_pillar_i_, pillar_i, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), + cudaMemcpyHostToDevice)); + GPU_CHECK(cudaMemcpy(dev_x_coors_for_sub_shaped_, x_coors_for_sub_shaped, + MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyHostToDevice)); + GPU_CHECK(cudaMemcpy(dev_y_coors_for_sub_shaped_, y_coors_for_sub_shaped, + MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyHostToDevice)); + GPU_CHECK(cudaMemcpy(dev_num_points_per_pillar_, num_points_per_pillar, MAX_NUM_PILLARS_ * sizeof(float), + cudaMemcpyHostToDevice)); + GPU_CHECK(cudaMemcpy(dev_pillar_feature_mask_, pillar_feature_mask, + MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyHostToDevice)); + GPU_CHECK(cudaMemcpy(dev_sparse_pillar_map_, sparse_pillar_map, + NUM_INDS_FOR_SCAN_ * NUM_INDS_FOR_SCAN_ * sizeof(float), cudaMemcpyHostToDevice)); delete[] pillar_x; delete[] pillar_y; @@ -546,33 +511,32 @@ void PointPillars::preprocessCPU(const float* in_points_array, const int in_num_ void PointPillars::preprocessGPU(const float* in_points_array, const int in_num_points) { - float * dev_points; - GPU_CHECK(cudaMalloc((void**)&dev_points, in_num_points*4*sizeof(float))); - GPU_CHECK(cudaMemcpy(dev_points, in_points_array, in_num_points*4*sizeof(float), cudaMemcpyHostToDevice ) ); - - - GPU_CHECK(cudaMemset(dev_pillar_count_histo_, 0, GRID_Y_SIZE_*GRID_X_SIZE_*sizeof(int))); - GPU_CHECK(cudaMemset(dev_sparse_pillar_map_, 0, NUM_INDS_FOR_SCAN_*NUM_INDS_FOR_SCAN_*sizeof( int ) ) ); - GPU_CHECK(cudaMemset(dev_pillar_x_, 0, MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); - GPU_CHECK(cudaMemset(dev_pillar_y_, 0, MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); - GPU_CHECK(cudaMemset(dev_pillar_z_, 0, MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); - GPU_CHECK(cudaMemset(dev_pillar_i_, 0, MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); - GPU_CHECK(cudaMemset(dev_x_coors_, 0, MAX_NUM_PILLARS_ * sizeof( int ) ) ); - GPU_CHECK(cudaMemset(dev_y_coors_, 0, MAX_NUM_PILLARS_ * sizeof( int ) ) ); - GPU_CHECK(cudaMemset(dev_num_points_per_pillar_, 0, MAX_NUM_PILLARS_ * sizeof( float ) ) ); - GPU_CHECK(cudaMemset(dev_anchor_mask_, 0, NUM_ANCHOR_*sizeof(int))); - - preprocess_points_cuda_ptr_->doPreprocessPointsCuda(dev_points, in_num_points, dev_x_coors_, dev_y_coors_, - dev_num_points_per_pillar_, dev_pillar_x_, dev_pillar_y_, dev_pillar_z_, dev_pillar_i_, - dev_x_coors_for_sub_shaped_, dev_y_coors_for_sub_shaped_, - dev_pillar_feature_mask_, dev_sparse_pillar_map_, host_pillar_count_); + float* dev_points; + GPU_CHECK(cudaMalloc((void**)&dev_points, in_num_points * 4 * sizeof(float))); + GPU_CHECK(cudaMemcpy(dev_points, in_points_array, in_num_points * 4 * sizeof(float), cudaMemcpyHostToDevice)); + + GPU_CHECK(cudaMemset(dev_pillar_count_histo_, 0, GRID_Y_SIZE_ * GRID_X_SIZE_ * sizeof(int))); + GPU_CHECK(cudaMemset(dev_sparse_pillar_map_, 0, NUM_INDS_FOR_SCAN_ * NUM_INDS_FOR_SCAN_ * sizeof(int))); + GPU_CHECK(cudaMemset(dev_pillar_x_, 0, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); + GPU_CHECK(cudaMemset(dev_pillar_y_, 0, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); + GPU_CHECK(cudaMemset(dev_pillar_z_, 0, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); + GPU_CHECK(cudaMemset(dev_pillar_i_, 0, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); + GPU_CHECK(cudaMemset(dev_x_coors_, 0, MAX_NUM_PILLARS_ * sizeof(int))); + GPU_CHECK(cudaMemset(dev_y_coors_, 0, MAX_NUM_PILLARS_ * sizeof(int))); + GPU_CHECK(cudaMemset(dev_num_points_per_pillar_, 0, MAX_NUM_PILLARS_ * sizeof(float))); + GPU_CHECK(cudaMemset(dev_anchor_mask_, 0, NUM_ANCHOR_ * sizeof(int))); + + preprocess_points_cuda_ptr_->doPreprocessPointsCuda( + dev_points, in_num_points, dev_x_coors_, dev_y_coors_, dev_num_points_per_pillar_, dev_pillar_x_, dev_pillar_y_, + dev_pillar_z_, dev_pillar_i_, dev_x_coors_for_sub_shaped_, dev_y_coors_for_sub_shaped_, dev_pillar_feature_mask_, + dev_sparse_pillar_map_, host_pillar_count_); GPU_CHECK(cudaFree(dev_points)); } void PointPillars::preprocess(const float* in_points_array, const int in_num_points) { - if(reproduce_result_mode_) + if (reproduce_result_mode_) { preprocessCPU(in_points_array, in_num_points); } @@ -582,44 +546,56 @@ void PointPillars::preprocess(const float* in_points_array, const int in_num_poi } } -void PointPillars::doInference(const float* in_points_array, const int in_num_points, - std::vector& out_detection, int& out_num_objects) +void PointPillars::doInference(const float* in_points_array, const int in_num_points, std::vector& out_detection, + int& out_num_objects) { preprocess(in_points_array, in_num_points); - anchor_mask_cuda_ptr_->doAnchorMaskCuda(dev_sparse_pillar_map_, dev_cumsum_along_x_, dev_cumsum_along_y_, dev_box_anchors_min_x_, - dev_box_anchors_min_y_, dev_box_anchors_max_x_, dev_box_anchors_max_y_, dev_anchor_mask_); - + anchor_mask_cuda_ptr_->doAnchorMaskCuda(dev_sparse_pillar_map_, dev_cumsum_along_x_, dev_cumsum_along_y_, + dev_box_anchors_min_x_, dev_box_anchors_min_y_, dev_box_anchors_max_x_, + dev_box_anchors_max_y_, dev_anchor_mask_); cudaStream_t stream; GPU_CHECK(cudaStreamCreate(&stream)); - GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[0], dev_pillar_x_, BATCH_SIZE_ * MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyDeviceToDevice, stream)); - GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[1], dev_pillar_y_, BATCH_SIZE_ * MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyDeviceToDevice, stream)); - GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[2], dev_pillar_z_, BATCH_SIZE_ * MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyDeviceToDevice, stream)); - GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[3], dev_pillar_i_, BATCH_SIZE_ * MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyDeviceToDevice, stream)); - GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[4], dev_num_points_per_pillar_, BATCH_SIZE_ * MAX_NUM_PILLARS_ * sizeof(float), cudaMemcpyDeviceToDevice, stream)); - GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[5], dev_x_coors_for_sub_shaped_, BATCH_SIZE_ * MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyDeviceToDevice, stream)); - GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[6], dev_y_coors_for_sub_shaped_, BATCH_SIZE_ * MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyDeviceToDevice, stream)); - GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[7], dev_pillar_feature_mask_, BATCH_SIZE_ * MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyDeviceToDevice, stream)); + GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[0], dev_pillar_x_, + BATCH_SIZE_ * MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), + cudaMemcpyDeviceToDevice, stream)); + GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[1], dev_pillar_y_, + BATCH_SIZE_ * MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), + cudaMemcpyDeviceToDevice, stream)); + GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[2], dev_pillar_z_, + BATCH_SIZE_ * MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), + cudaMemcpyDeviceToDevice, stream)); + GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[3], dev_pillar_i_, + BATCH_SIZE_ * MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), + cudaMemcpyDeviceToDevice, stream)); + GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[4], dev_num_points_per_pillar_, BATCH_SIZE_ * MAX_NUM_PILLARS_ * sizeof(float), + cudaMemcpyDeviceToDevice, stream)); + GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[5], dev_x_coors_for_sub_shaped_, + BATCH_SIZE_ * MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), + cudaMemcpyDeviceToDevice, stream)); + GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[6], dev_y_coors_for_sub_shaped_, + BATCH_SIZE_ * MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), + cudaMemcpyDeviceToDevice, stream)); + GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[7], dev_pillar_feature_mask_, + BATCH_SIZE_ * MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), + cudaMemcpyDeviceToDevice, stream)); pfe_context_->enqueue(BATCH_SIZE_, pfe_buffers_, stream, nullptr); + GPU_CHECK(cudaMemset(dev_scattered_feature_, 0, RPN_INPUT_SIZE_ * sizeof(float))); + scatter_cuda_ptr_->doScatterCuda(host_pillar_count_[0], dev_x_coors_, dev_y_coors_, (float*)pfe_buffers_[8], + dev_scattered_feature_); - - GPU_CHECK( cudaMemset( dev_scattered_feature_, 0, RPN_INPUT_SIZE_*sizeof(float) ) ); - scatter_cuda_ptr_->doScatterCuda(host_pillar_count_[0], dev_x_coors_, dev_y_coors_, - (float *)pfe_buffers_[8], dev_scattered_feature_); - - - GPU_CHECK(cudaMemcpyAsync(rpn_buffers_[0], dev_scattered_feature_, BATCH_SIZE_ * RPN_INPUT_SIZE_ * sizeof(float), cudaMemcpyDeviceToDevice, stream)); + GPU_CHECK(cudaMemcpyAsync(rpn_buffers_[0], dev_scattered_feature_, BATCH_SIZE_ * RPN_INPUT_SIZE_ * sizeof(float), + cudaMemcpyDeviceToDevice, stream)); rpn_context_->enqueue(BATCH_SIZE_, rpn_buffers_, stream, nullptr); - - GPU_CHECK(cudaMemset( dev_filter_count_, 0, sizeof( int ))); - postprocess_cuda_ptr_->doPostprocessCuda((float *)rpn_buffers_[1], (float *)rpn_buffers_[2],(float *)rpn_buffers_[3] , dev_anchor_mask_, - dev_anchors_px_, dev_anchors_py_, dev_anchors_pz_, - dev_anchors_dx_, dev_anchors_dy_, dev_anchors_dz_, dev_anchors_ro_, - dev_filtered_box_, dev_filtered_score_, dev_filtered_dir_, dev_box_for_nms_, - dev_filter_count_, out_detection, out_num_objects); + GPU_CHECK(cudaMemset(dev_filter_count_, 0, sizeof(int))); + postprocess_cuda_ptr_->doPostprocessCuda((float*)rpn_buffers_[1], (float*)rpn_buffers_[2], (float*)rpn_buffers_[3], + dev_anchor_mask_, dev_anchors_px_, dev_anchors_py_, dev_anchors_pz_, + dev_anchors_dx_, dev_anchors_dy_, dev_anchors_dz_, dev_anchors_ro_, + dev_filtered_box_, dev_filtered_score_, dev_filtered_dir_, dev_box_for_nms_, + dev_filter_count_, out_detection, out_num_objects); // release the stream and the buffers cudaStreamDestroy(stream); diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars_ros.cpp b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars_ros.cpp index a7287b3f60e..0d4b3df7148 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars_ros.cpp +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars_ros.cpp @@ -14,30 +14,30 @@ * limitations under the License. */ -//headers in STL +// headers in STL #include #include -//headers in PCL +// headers in PCL #include #include #include -//headers in ROS +// headers in ROS #include -//headers in local files +// headers in local files #include "autoware_msgs/DetectedObjectArray.h" #include "point_pillars_ros.h" -PointPillarsROS::PointPillarsROS(): -private_nh_("~"), -has_subscribed_baselink_(false), -NUM_POINT_FEATURE_(4), -OUTPUT_NUM_BOX_FEATURE_(7), -TRAINED_SENSOR_HEIGHT_(1.73), -NORMALIZING_INTENSITY_VALUE_(255.0), -BASELINK_FRAME_("base_link") +PointPillarsROS::PointPillarsROS() + : private_nh_("~") + , has_subscribed_baselink_(false) + , NUM_POINT_FEATURE_(4) + , OUTPUT_NUM_BOX_FEATURE_(7) + , TRAINED_SENSOR_HEIGHT_(1.73) + , NORMALIZING_INTENSITY_VALUE_(255.0) + , BASELINK_FRAME_("base_link") { private_nh_.param("baselink_support", baselink_support_, true); private_nh_.param("reproduce_result_mode", reproduce_result_mode_, false); @@ -46,34 +46,30 @@ BASELINK_FRAME_("base_link") private_nh_.param("pfe_onnx_file", pfe_onnx_file_, ""); private_nh_.param("rpn_onnx_file", rpn_onnx_file_, ""); - point_pillars_ptr_.reset(new PointPillars( - reproduce_result_mode_, - score_threshold_, - nms_overlap_threshold_, - pfe_onnx_file_, - rpn_onnx_file_)); + point_pillars_ptr_.reset(new PointPillars(reproduce_result_mode_, score_threshold_, nms_overlap_threshold_, + pfe_onnx_file_, rpn_onnx_file_)); } void PointPillarsROS::createROSPubSub() { - sub_points_ = nh_.subscribe("/points_raw", 1, &PointPillarsROS::pointsCallback, this); - pub_objects_ = nh_.advertise("/detection/lidar_detector/objects", 1); + sub_points_ = nh_.subscribe("/points_raw", 1, &PointPillarsROS::pointsCallback, this); + pub_objects_ = nh_.advertise("/detection/lidar_detector/objects", 1); } - -geometry_msgs::Pose PointPillarsROS::getTransformedPose(const geometry_msgs::Pose& in_pose, - const tf::Transform& tf) +geometry_msgs::Pose PointPillarsROS::getTransformedPose(const geometry_msgs::Pose& in_pose, const tf::Transform& tf) { tf::Transform transform; geometry_msgs::PoseStamped out_pose; transform.setOrigin(tf::Vector3(in_pose.position.x, in_pose.position.y, in_pose.position.z)); - transform.setRotation(tf::Quaternion(in_pose.orientation.x, in_pose.orientation.y, in_pose.orientation.z, in_pose.orientation.w)); + transform.setRotation( + tf::Quaternion(in_pose.orientation.x, in_pose.orientation.y, in_pose.orientation.z, in_pose.orientation.w)); geometry_msgs::PoseStamped pose_out; - tf::poseTFToMsg(tf*transform, out_pose.pose); + tf::poseTFToMsg(tf * transform, out_pose.pose); return out_pose.pose; } -void PointPillarsROS::pubDetectedObject(const std::vector& detections, const int num_objects, const std_msgs::Header& pc_header) +void PointPillarsROS::pubDetectedObject(const std::vector& detections, const int num_objects, + const std_msgs::Header& pc_header) { autoware_msgs::DetectedObjectArray objects; objects.header = pc_header; @@ -84,24 +80,23 @@ void PointPillarsROS::pubDetectedObject(const std::vector& detections, co object.valid = true; object.pose_reliable = true; - object.pose.position.x = detections[i*OUTPUT_NUM_BOX_FEATURE_+0]; - object.pose.position.y = detections[i*OUTPUT_NUM_BOX_FEATURE_+1]; - object.pose.position.z = detections[i*OUTPUT_NUM_BOX_FEATURE_+2]; - + object.pose.position.x = detections[i * OUTPUT_NUM_BOX_FEATURE_ + 0]; + object.pose.position.y = detections[i * OUTPUT_NUM_BOX_FEATURE_ + 1]; + object.pose.position.z = detections[i * OUTPUT_NUM_BOX_FEATURE_ + 2]; - float yaw = detections[i*OUTPUT_NUM_BOX_FEATURE_+6]; + float yaw = detections[i * OUTPUT_NUM_BOX_FEATURE_ + 6]; yaw = std::atan2(std::sin(yaw), std::cos(yaw)); geometry_msgs::Quaternion q = tf::createQuaternionMsgFromYaw(-yaw); object.pose.orientation = q; - if(baselink_support_) + if (baselink_support_) { object.pose = getTransformedPose(object.pose, angle_transform_inversed_); } - object.dimensions.x = detections[i*OUTPUT_NUM_BOX_FEATURE_+3]; - object.dimensions.y = detections[i*OUTPUT_NUM_BOX_FEATURE_+4]; - object.dimensions.z = detections[i*OUTPUT_NUM_BOX_FEATURE_+5]; + object.dimensions.x = detections[i * OUTPUT_NUM_BOX_FEATURE_ + 3]; + object.dimensions.y = detections[i * OUTPUT_NUM_BOX_FEATURE_ + 4]; + object.dimensions.z = detections[i * OUTPUT_NUM_BOX_FEATURE_ + 5]; objects.objects.push_back(object); } @@ -113,7 +108,7 @@ void PointPillarsROS::getBaselinkToLidarTF(const std::string& target_frameid) try { tf_listener_.waitForTransform(BASELINK_FRAME_, target_frameid, ros::Time(0), ros::Duration(1.0)); - tf_listener_.lookupTransform( BASELINK_FRAME_, target_frameid, ros::Time(0), baselink2lidar_); + tf_listener_.lookupTransform(BASELINK_FRAME_, target_frameid, ros::Time(0), baselink2lidar_); getTFInfo(baselink2lidar_); has_subscribed_baselink_ = true; } @@ -131,39 +126,37 @@ void PointPillarsROS::getTFInfo(tf::StampedTransform baselink2lidar) tf::Quaternion q = baselink2lidar_.getRotation(); angle_transform_ = tf::Transform(q); angle_transform_inversed_ = angle_transform_.inverse(); - } -void PointPillarsROS::pclToArray(const pcl::PointCloud::Ptr & in_pcl_pc_ptr, float* out_points_array, const float offset_z) +void PointPillarsROS::pclToArray(const pcl::PointCloud::Ptr& in_pcl_pc_ptr, float* out_points_array, + const float offset_z) { - for(size_t i = 0; i < in_pcl_pc_ptr->size(); i++) + for (size_t i = 0; i < in_pcl_pc_ptr->size(); i++) { pcl::PointXYZI point = in_pcl_pc_ptr->at(i); - out_points_array[i*NUM_POINT_FEATURE_ + 0] = point.x; - out_points_array[i*NUM_POINT_FEATURE_ + 1] = point.y; - out_points_array[i*NUM_POINT_FEATURE_ + 2] = point.z + offset_z; - out_points_array[i*NUM_POINT_FEATURE_ + 3] = float(point.intensity/NORMALIZING_INTENSITY_VALUE_); + out_points_array[i * NUM_POINT_FEATURE_ + 0] = point.x; + out_points_array[i * NUM_POINT_FEATURE_ + 1] = point.y; + out_points_array[i * NUM_POINT_FEATURE_ + 2] = point.z + offset_z; + out_points_array[i * NUM_POINT_FEATURE_ + 3] = float(point.intensity / NORMALIZING_INTENSITY_VALUE_); } } - void PointPillarsROS::pointsCallback(const sensor_msgs::PointCloud2::ConstPtr& msg) { - pcl::PointCloud::Ptr pcl_pc_ptr(new pcl::PointCloud); pcl::fromROSMsg(*msg, *pcl_pc_ptr); - if(baselink_support_) + if (baselink_support_) { - if(!has_subscribed_baselink_) + if (!has_subscribed_baselink_) { getBaselinkToLidarTF(msg->header.frame_id); } pcl_ros::transformPointCloud(*pcl_pc_ptr, *pcl_pc_ptr, angle_transform_); } - float * points_array = new float[pcl_pc_ptr->size()*NUM_POINT_FEATURE_]; - if(baselink_support_ && has_subscribed_baselink_) + float* points_array = new float[pcl_pc_ptr->size() * NUM_POINT_FEATURE_]; + if (baselink_support_ && has_subscribed_baselink_) { pclToArray(pcl_pc_ptr, points_array, offset_z_from_trained_data_); } diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/preprocess_points.cpp b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/preprocess_points.cpp index 51fe2a07884..e36055debc9 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/preprocess_points.cpp +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/preprocess_points.cpp @@ -14,52 +14,43 @@ * limitations under the License. */ -//headers in STL +// headers in STL #include #include -//headers in local files +// headers in local files #include "preprocess_points.h" -PreprocessPoints::PreprocessPoints(const int MAX_NUM_PILLARS, - const int MAX_POINTS_PER_PILLAR, - const int GRID_X_SIZE, - const int GRID_Y_SIZE, - const int GRID_Z_SIZE, - const float PILLAR_X_SIZE, - const float PILLAR_Y_SIZE, - const float PILLAR_Z_SIZE, - const float MIN_X_RANGE, - const float MIN_Y_RANGE, - const float MIN_Z_RANGE, - const int NUM_INDS_FOR_SCAN, +PreprocessPoints::PreprocessPoints(const int MAX_NUM_PILLARS, const int MAX_POINTS_PER_PILLAR, const int GRID_X_SIZE, + const int GRID_Y_SIZE, const int GRID_Z_SIZE, const float PILLAR_X_SIZE, + const float PILLAR_Y_SIZE, const float PILLAR_Z_SIZE, const float MIN_X_RANGE, + const float MIN_Y_RANGE, const float MIN_Z_RANGE, const int NUM_INDS_FOR_SCAN, const int NUM_BOX_CORNERS) -: -MAX_NUM_PILLARS_(MAX_NUM_PILLARS), -MAX_NUM_POINTS_PER_PILLAR_(MAX_POINTS_PER_PILLAR), -GRID_X_SIZE_(GRID_X_SIZE), -GRID_Y_SIZE_(GRID_Y_SIZE), -GRID_Z_SIZE_(GRID_Z_SIZE), -PILLAR_X_SIZE_(PILLAR_X_SIZE), -PILLAR_Y_SIZE_(PILLAR_Y_SIZE), -PILLAR_Z_SIZE_(PILLAR_Z_SIZE), -MIN_X_RANGE_(MIN_X_RANGE), -MIN_Y_RANGE_(MIN_Y_RANGE), -MIN_Z_RANGE_(MIN_Z_RANGE), -NUM_INDS_FOR_SCAN_(NUM_INDS_FOR_SCAN), -NUM_BOX_CORNERS_(NUM_BOX_CORNERS) + : MAX_NUM_PILLARS_(MAX_NUM_PILLARS) + , MAX_NUM_POINTS_PER_PILLAR_(MAX_POINTS_PER_PILLAR) + , GRID_X_SIZE_(GRID_X_SIZE) + , GRID_Y_SIZE_(GRID_Y_SIZE) + , GRID_Z_SIZE_(GRID_Z_SIZE) + , PILLAR_X_SIZE_(PILLAR_X_SIZE) + , PILLAR_Y_SIZE_(PILLAR_Y_SIZE) + , PILLAR_Z_SIZE_(PILLAR_Z_SIZE) + , MIN_X_RANGE_(MIN_X_RANGE) + , MIN_Y_RANGE_(MIN_Y_RANGE) + , MIN_Z_RANGE_(MIN_Z_RANGE) + , NUM_INDS_FOR_SCAN_(NUM_INDS_FOR_SCAN) + , NUM_BOX_CORNERS_(NUM_BOX_CORNERS) { } -void PreprocessPoints::initializeVariables(int* coor_to_pillaridx, float* sparse_pillar_map, - float* pillar_x, float* pillar_y, float* pillar_z, float* pillar_i, - float* x_coors_for_sub_shaped, float* y_coors_for_sub_shaped) +void PreprocessPoints::initializeVariables(int* coor_to_pillaridx, float* sparse_pillar_map, float* pillar_x, + float* pillar_y, float* pillar_z, float* pillar_i, + float* x_coors_for_sub_shaped, float* y_coors_for_sub_shaped) { for (int i = 0; i < GRID_Y_SIZE_; i++) { for (int j = 0; j < GRID_X_SIZE_; j++) { - coor_to_pillaridx[i*GRID_X_SIZE_ + j] = -1; + coor_to_pillaridx[i * GRID_X_SIZE_ + j] = -1; } } @@ -67,11 +58,11 @@ void PreprocessPoints::initializeVariables(int* coor_to_pillaridx, float* sparse { for (int j = 0; j < NUM_INDS_FOR_SCAN_; j++) { - sparse_pillar_map[i*NUM_INDS_FOR_SCAN_+j] = 0; + sparse_pillar_map[i * NUM_INDS_FOR_SCAN_ + j] = 0; } } - for(int i = 0; i < MAX_NUM_PILLARS_*MAX_NUM_POINTS_PER_PILLAR_; i++) + for (int i = 0; i < MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_; i++) { pillar_x[i] = 0; pillar_y[i] = 0; @@ -82,63 +73,60 @@ void PreprocessPoints::initializeVariables(int* coor_to_pillaridx, float* sparse } } -void PreprocessPoints::preprocess(const float* in_points_array, int in_num_points, - int* x_coors, int* y_coors, float* num_points_per_pillar, - float* pillar_x, float* pillar_y, float* pillar_z, float* pillar_i, - float* x_coors_for_sub_shaped, float* y_coors_for_sub_shaped, - float* pillar_feature_mask, float* sparse_pillar_map, int* host_pillar_count) +void PreprocessPoints::preprocess(const float* in_points_array, int in_num_points, int* x_coors, int* y_coors, + float* num_points_per_pillar, float* pillar_x, float* pillar_y, float* pillar_z, + float* pillar_i, float* x_coors_for_sub_shaped, float* y_coors_for_sub_shaped, + float* pillar_feature_mask, float* sparse_pillar_map, int* host_pillar_count) { int pillar_count = 0; - float x_coors_for_sub[MAX_NUM_PILLARS_]= {0}; - float y_coors_for_sub[MAX_NUM_PILLARS_]= {0}; - //init variables - int coor_to_pillaridx[GRID_Y_SIZE_*GRID_X_SIZE_]; - initializeVariables(coor_to_pillaridx, sparse_pillar_map, - pillar_x, pillar_y, pillar_z, pillar_i, - x_coors_for_sub_shaped, y_coors_for_sub_shaped); - for(int i = 0; i < in_num_points; i++) + float x_coors_for_sub[MAX_NUM_PILLARS_] = { 0 }; + float y_coors_for_sub[MAX_NUM_PILLARS_] = { 0 }; + // init variables + int coor_to_pillaridx[GRID_Y_SIZE_ * GRID_X_SIZE_]; + initializeVariables(coor_to_pillaridx, sparse_pillar_map, pillar_x, pillar_y, pillar_z, pillar_i, + x_coors_for_sub_shaped, y_coors_for_sub_shaped); + for (int i = 0; i < in_num_points; i++) { - int x_coor = std::floor((in_points_array[i*NUM_BOX_CORNERS_ + 0] - MIN_X_RANGE_)/PILLAR_X_SIZE_); - int y_coor = std::floor((in_points_array[i*NUM_BOX_CORNERS_ + 1] - MIN_Y_RANGE_)/PILLAR_Y_SIZE_); - int z_coor = std::floor((in_points_array[i*NUM_BOX_CORNERS_ + 2] - MIN_Z_RANGE_)/PILLAR_Z_SIZE_); - if(x_coor < 0 || x_coor >= GRID_X_SIZE_ || - y_coor < 0 || y_coor >= GRID_Y_SIZE_ || - z_coor < 0 || z_coor >= GRID_Z_SIZE_) + int x_coor = std::floor((in_points_array[i * NUM_BOX_CORNERS_ + 0] - MIN_X_RANGE_) / PILLAR_X_SIZE_); + int y_coor = std::floor((in_points_array[i * NUM_BOX_CORNERS_ + 1] - MIN_Y_RANGE_) / PILLAR_Y_SIZE_); + int z_coor = std::floor((in_points_array[i * NUM_BOX_CORNERS_ + 2] - MIN_Z_RANGE_) / PILLAR_Z_SIZE_); + if (x_coor < 0 || x_coor >= GRID_X_SIZE_ || y_coor < 0 || y_coor >= GRID_Y_SIZE_ || z_coor < 0 || + z_coor >= GRID_Z_SIZE_) { continue; } - //reverse index - int pillar_index = coor_to_pillaridx[y_coor*GRID_X_SIZE_ + x_coor]; - if(pillar_index == -1) + // reverse index + int pillar_index = coor_to_pillaridx[y_coor * GRID_X_SIZE_ + x_coor]; + if (pillar_index == -1) { pillar_index = pillar_count; - if(pillar_count >= MAX_NUM_PILLARS_) + if (pillar_count >= MAX_NUM_PILLARS_) { break; } pillar_count += 1; - coor_to_pillaridx[y_coor*GRID_X_SIZE_ + x_coor] = pillar_index; + coor_to_pillaridx[y_coor * GRID_X_SIZE_ + x_coor] = pillar_index; - //reverse index + // reverse index y_coors[pillar_index] = std::floor(y_coor); x_coors[pillar_index] = std::floor(x_coor); // float y_offset = PILLAR_Y_SIZE_/ 2 + MIN_Y_RANGE_; // float x_offset = PILLAR_X_SIZE_/ 2 + MIN_X_RANGE_; // TODO Need to be modified after proper trining code - y_coors_for_sub[pillar_index] = std::floor(y_coor)* PILLAR_Y_SIZE_ + -39.9; - x_coors_for_sub[pillar_index] = std::floor(x_coor)* PILLAR_X_SIZE_ + 0.1; + y_coors_for_sub[pillar_index] = std::floor(y_coor) * PILLAR_Y_SIZE_ + -39.9; + x_coors_for_sub[pillar_index] = std::floor(x_coor) * PILLAR_X_SIZE_ + 0.1; - //sparse pillar map - sparse_pillar_map[y_coor*512 + x_coor] = 1; + // sparse pillar map + sparse_pillar_map[y_coor * 512 + x_coor] = 1; } int num = num_points_per_pillar[pillar_index]; if (num < MAX_NUM_POINTS_PER_PILLAR_) { - pillar_x[pillar_index*MAX_NUM_POINTS_PER_PILLAR_ + num]= in_points_array[i*NUM_BOX_CORNERS_ + 0]; - pillar_y[pillar_index*MAX_NUM_POINTS_PER_PILLAR_ + num]= in_points_array[i*NUM_BOX_CORNERS_ + 1]; - pillar_z[pillar_index*MAX_NUM_POINTS_PER_PILLAR_ + num]= in_points_array[i*NUM_BOX_CORNERS_ + 2]; - pillar_i[pillar_index*MAX_NUM_POINTS_PER_PILLAR_ + num]= in_points_array[i*NUM_BOX_CORNERS_ + 3]; + pillar_x[pillar_index * MAX_NUM_POINTS_PER_PILLAR_ + num] = in_points_array[i * NUM_BOX_CORNERS_ + 0]; + pillar_y[pillar_index * MAX_NUM_POINTS_PER_PILLAR_ + num] = in_points_array[i * NUM_BOX_CORNERS_ + 1]; + pillar_z[pillar_index * MAX_NUM_POINTS_PER_PILLAR_ + num] = in_points_array[i * NUM_BOX_CORNERS_ + 2]; + pillar_i[pillar_index * MAX_NUM_POINTS_PER_PILLAR_ + num] = in_points_array[i * NUM_BOX_CORNERS_ + 3]; num_points_per_pillar[pillar_index] += 1; } } @@ -148,20 +136,19 @@ void PreprocessPoints::preprocess(const float* in_points_array, int in_num_point float x = x_coors_for_sub[i]; float y = y_coors_for_sub[i]; int num_points_for_a_pillar = num_points_per_pillar[i]; - for(int j = 0; j < MAX_NUM_POINTS_PER_PILLAR_; j++) + for (int j = 0; j < MAX_NUM_POINTS_PER_PILLAR_; j++) { - x_coors_for_sub_shaped[i*MAX_NUM_POINTS_PER_PILLAR_ + j] = x; - y_coors_for_sub_shaped[i*MAX_NUM_POINTS_PER_PILLAR_ + j] = y; - if(j < num_points_for_a_pillar) - { - pillar_feature_mask[i*MAX_NUM_POINTS_PER_PILLAR_ + j] = 1.0; - } - else - { - pillar_feature_mask[i*MAX_NUM_POINTS_PER_PILLAR_ + j] = 0.0; - } + x_coors_for_sub_shaped[i * MAX_NUM_POINTS_PER_PILLAR_ + j] = x; + y_coors_for_sub_shaped[i * MAX_NUM_POINTS_PER_PILLAR_ + j] = y; + if (j < num_points_for_a_pillar) + { + pillar_feature_mask[i * MAX_NUM_POINTS_PER_PILLAR_ + j] = 1.0; + } + else + { + pillar_feature_mask[i * MAX_NUM_POINTS_PER_PILLAR_ + j] = 0.0; + } } } host_pillar_count[0] = pillar_count; - } diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/test/src/test_point_pillars.cpp b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/test/src/test_point_pillars.cpp index 0b209a92471..a45cef2bdef 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/test/src/test_point_pillars.cpp +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/test/src/test_point_pillars.cpp @@ -14,12 +14,12 @@ * limitations under the License. */ - /** - * @file test_point_pillars.cpp - * @brief unit test file - * @author Kosuke Murakami - * @date 2019/02/26 - */ +/** +* @file test_point_pillars.cpp +* @brief unit test file +* @author Kosuke Murakami +* @date 2019/02/26 +*/ #include #include @@ -46,17 +46,9 @@ class TestSuite : public ::testing::Test class TestClass { public: - TestClass(const int MAX_NUM_PILLARS, - const int MAX_NUM_POINTS_PER_PILLAR, - const int GRID_X_SIZE, - const int GRID_Y_SIZE, - const int GRID_Z_SIZE, - const float PILLAR_X_SIZE, - const float PILLAR_Y_SIZE, - const float PILLAR_Z_SIZE, - const float MIN_X_RANGE, - const float MIN_Y_RANGE, - const float MIN_Z_RANGE, + TestClass(const int MAX_NUM_PILLARS, const int MAX_NUM_POINTS_PER_PILLAR, const int GRID_X_SIZE, + const int GRID_Y_SIZE, const int GRID_Z_SIZE, const float PILLAR_X_SIZE, const float PILLAR_Y_SIZE, + const float PILLAR_Z_SIZE, const float MIN_X_RANGE, const float MIN_Y_RANGE, const float MIN_Z_RANGE, const int NUM_INDS_FOR_SCAN); const int MAX_NUM_PILLARS_; const int MAX_NUM_POINTS_PER_PILLAR_; @@ -70,90 +62,64 @@ class TestClass const float MIN_Y_RANGE_; const float MIN_Z_RANGE_; const int NUM_INDS_FOR_SCAN_; - void loadPoints(pcl::PointCloud::Ptr in_pcl_pc_ptr, - const std::string& in_file ); - void pclToArray(const pcl::PointCloud::Ptr & in_pcl_pc_ptr, float* out_points_array); - void preprocess(const float* in_points_array, int in_num_points, - int* x_coors, int* y_coors, float* num_points_per_pillar, - float* pillar_x, float* pillar_y, float* pillar_z, float* pillar_i, - float* x_coors_for_sub_shaped, float* y_coors_for_sub_shaped, - float* pillar_feature_mask, float* sparse_pillar_map, int* host_pillar_count); -private: + void loadPoints(pcl::PointCloud::Ptr in_pcl_pc_ptr, const std::string& in_file); + void pclToArray(const pcl::PointCloud::Ptr& in_pcl_pc_ptr, float* out_points_array); + void preprocess(const float* in_points_array, int in_num_points, int* x_coors, int* y_coors, + float* num_points_per_pillar, float* pillar_x, float* pillar_y, float* pillar_z, float* pillar_i, + float* x_coors_for_sub_shaped, float* y_coors_for_sub_shaped, float* pillar_feature_mask, + float* sparse_pillar_map, int* host_pillar_count); +private: std::unique_ptr preprocess_points_ptr_; }; -TestClass::TestClass( - const int MAX_NUM_PILLARS, - const int MAX_NUM_POINTS_PER_PILLAR, - const int GRID_X_SIZE, - const int GRID_Y_SIZE, - const int GRID_Z_SIZE, - const float PILLAR_X_SIZE, - const float PILLAR_Y_SIZE, - const float PILLAR_Z_SIZE, - const float MIN_X_RANGE, - const float MIN_Y_RANGE, - const float MIN_Z_RANGE, - const int NUM_INDS_FOR_SCAN): -MAX_NUM_PILLARS_(MAX_NUM_PILLARS), -MAX_NUM_POINTS_PER_PILLAR_(MAX_NUM_POINTS_PER_PILLAR), -GRID_X_SIZE_(GRID_X_SIZE), -GRID_Y_SIZE_(GRID_Y_SIZE), -GRID_Z_SIZE_(GRID_Z_SIZE), -PILLAR_X_SIZE_(PILLAR_X_SIZE), -PILLAR_Y_SIZE_(PILLAR_Y_SIZE), -PILLAR_Z_SIZE_(PILLAR_Z_SIZE), -MIN_X_RANGE_(MIN_X_RANGE), -MIN_Y_RANGE_(MIN_Y_RANGE), -MIN_Z_RANGE_(MIN_Z_RANGE), -NUM_INDS_FOR_SCAN_(NUM_INDS_FOR_SCAN) +TestClass::TestClass(const int MAX_NUM_PILLARS, const int MAX_NUM_POINTS_PER_PILLAR, const int GRID_X_SIZE, + const int GRID_Y_SIZE, const int GRID_Z_SIZE, const float PILLAR_X_SIZE, const float PILLAR_Y_SIZE, + const float PILLAR_Z_SIZE, const float MIN_X_RANGE, const float MIN_Y_RANGE, + const float MIN_Z_RANGE, const int NUM_INDS_FOR_SCAN) + : MAX_NUM_PILLARS_(MAX_NUM_PILLARS) + , MAX_NUM_POINTS_PER_PILLAR_(MAX_NUM_POINTS_PER_PILLAR) + , GRID_X_SIZE_(GRID_X_SIZE) + , GRID_Y_SIZE_(GRID_Y_SIZE) + , GRID_Z_SIZE_(GRID_Z_SIZE) + , PILLAR_X_SIZE_(PILLAR_X_SIZE) + , PILLAR_Y_SIZE_(PILLAR_Y_SIZE) + , PILLAR_Z_SIZE_(PILLAR_Z_SIZE) + , MIN_X_RANGE_(MIN_X_RANGE) + , MIN_Y_RANGE_(MIN_Y_RANGE) + , MIN_Z_RANGE_(MIN_Z_RANGE) + , NUM_INDS_FOR_SCAN_(NUM_INDS_FOR_SCAN) { preprocess_points_ptr_.reset(new PreprocessPoints( - MAX_NUM_PILLARS_, - MAX_NUM_POINTS_PER_PILLAR_, - GRID_X_SIZE_, - GRID_Y_SIZE_, - GRID_Z_SIZE_, - PILLAR_X_SIZE_, - PILLAR_Y_SIZE_, - PILLAR_Z_SIZE_, - MIN_X_RANGE_, - MIN_Y_RANGE_, - MIN_Z_RANGE_, - NUM_INDS_FOR_SCAN_ - )); + MAX_NUM_PILLARS_, MAX_NUM_POINTS_PER_PILLAR_, GRID_X_SIZE_, GRID_Y_SIZE_, GRID_Z_SIZE_, PILLAR_X_SIZE_, + PILLAR_Y_SIZE_, PILLAR_Z_SIZE_, MIN_X_RANGE_, MIN_Y_RANGE_, MIN_Z_RANGE_, NUM_INDS_FOR_SCAN_)); }; -void TestClass::preprocess(const float* in_points_array, int in_num_points, - int* x_coors, int* y_coors, float* num_points_per_pillar, - float* pillar_x, float* pillar_y, float* pillar_z, float* pillar_i, - float* x_coors_for_sub_shaped, float* y_coors_for_sub_shaped, - float* pillar_feature_mask, float* sparse_pillar_map, int* host_pillar_count) +void TestClass::preprocess(const float* in_points_array, int in_num_points, int* x_coors, int* y_coors, + float* num_points_per_pillar, float* pillar_x, float* pillar_y, float* pillar_z, + float* pillar_i, float* x_coors_for_sub_shaped, float* y_coors_for_sub_shaped, + float* pillar_feature_mask, float* sparse_pillar_map, int* host_pillar_count) { - preprocess_points_ptr_->preprocess(in_points_array, in_num_points, - x_coors, y_coors, num_points_per_pillar, - pillar_x, pillar_y, pillar_z, pillar_i, - x_coors_for_sub_shaped, y_coors_for_sub_shaped, - pillar_feature_mask, sparse_pillar_map, host_pillar_count); + preprocess_points_ptr_->preprocess(in_points_array, in_num_points, x_coors, y_coors, num_points_per_pillar, pillar_x, + pillar_y, pillar_z, pillar_i, x_coors_for_sub_shaped, y_coors_for_sub_shaped, + pillar_feature_mask, sparse_pillar_map, host_pillar_count); } -void TestClass::pclToArray(const pcl::PointCloud::Ptr & in_pcl_pc_ptr, float* out_points_array) +void TestClass::pclToArray(const pcl::PointCloud::Ptr& in_pcl_pc_ptr, float* out_points_array) { - for(size_t i = 0; i < in_pcl_pc_ptr->size(); i++) + for (size_t i = 0; i < in_pcl_pc_ptr->size(); i++) { pcl::PointXYZI point = in_pcl_pc_ptr->at(i); - out_points_array[i*4 + 0] = point.x; - out_points_array[i*4 + 1] = point.y; - out_points_array[i*4 + 2] = point.z; - out_points_array[i*4 + 3] = point.intensity; + out_points_array[i * 4 + 0] = point.x; + out_points_array[i * 4 + 1] = point.y; + out_points_array[i * 4 + 2] = point.z; + out_points_array[i * 4 + 3] = point.intensity; } } -void TestClass::loadPoints(pcl::PointCloud::Ptr in_pcl_pc_ptr, - const std::string& in_file ) +void TestClass::loadPoints(pcl::PointCloud::Ptr in_pcl_pc_ptr, const std::string& in_file) { - if (pcl::io::loadPCDFile (in_file, *in_pcl_pc_ptr) == -1) + if (pcl::io::loadPCDFile(in_file, *in_pcl_pc_ptr) == -1) { ROS_ERROR("Couldn't read test pcd file \n"); } @@ -161,54 +127,39 @@ void TestClass::loadPoints(pcl::PointCloud::Ptr in_pcl_pc_ptr, TEST(TestSuite, CheckPreprocessPointsCPU) { - TestClass test_obj( - 12000, - 100, - 432, - 496, - 1, - 0.16, - 0.16, - 4.0, - 0, - -39.68, - -3.0, - 512); + TestClass test_obj(12000, 100, 432, 496, 1, 0.16, 0.16, 4.0, 0, -39.68, -3.0, 512); pcl::PointCloud::Ptr pcl_pc_ptr(new pcl::PointCloud); std::string package_path = ros::package::getPath("lidar_point_pillars"); std::string in_file = package_path + "/test/data/1527836009720148.pcd"; test_obj.loadPoints(pcl_pc_ptr, in_file); - float * points_array = new float[pcl_pc_ptr->size()*4]; + float* points_array = new float[pcl_pc_ptr->size() * 4]; test_obj.pclToArray(pcl_pc_ptr, points_array); + int x_coors[test_obj.MAX_NUM_PILLARS_] = { 0 }; + int y_coors[test_obj.MAX_NUM_PILLARS_] = { 0 }; + float num_points_per_pillar[test_obj.MAX_NUM_PILLARS_] = { 0 }; + float* pillar_x = new float[test_obj.MAX_NUM_PILLARS_ * test_obj.MAX_NUM_POINTS_PER_PILLAR_]; + float* pillar_y = new float[test_obj.MAX_NUM_PILLARS_ * test_obj.MAX_NUM_POINTS_PER_PILLAR_]; + float* pillar_z = new float[test_obj.MAX_NUM_PILLARS_ * test_obj.MAX_NUM_POINTS_PER_PILLAR_]; + float* pillar_i = new float[test_obj.MAX_NUM_PILLARS_ * test_obj.MAX_NUM_POINTS_PER_PILLAR_]; - int x_coors[test_obj.MAX_NUM_PILLARS_]= {0}; - int y_coors[test_obj.MAX_NUM_PILLARS_]= {0}; - float num_points_per_pillar[test_obj.MAX_NUM_PILLARS_] = {0}; - float * pillar_x = new float[test_obj.MAX_NUM_PILLARS_*test_obj.MAX_NUM_POINTS_PER_PILLAR_]; - float * pillar_y = new float[test_obj.MAX_NUM_PILLARS_*test_obj.MAX_NUM_POINTS_PER_PILLAR_]; - float * pillar_z = new float[test_obj.MAX_NUM_PILLARS_*test_obj.MAX_NUM_POINTS_PER_PILLAR_]; - float * pillar_i = new float[test_obj.MAX_NUM_PILLARS_*test_obj.MAX_NUM_POINTS_PER_PILLAR_]; - - float * x_coors_for_sub_shaped = new float[test_obj.MAX_NUM_PILLARS_*test_obj.MAX_NUM_POINTS_PER_PILLAR_]; - float * y_coors_for_sub_shaped = new float[test_obj.MAX_NUM_PILLARS_*test_obj.MAX_NUM_POINTS_PER_PILLAR_]; - float * pillar_feature_mask = new float[test_obj.MAX_NUM_PILLARS_*test_obj.MAX_NUM_POINTS_PER_PILLAR_]; + float* x_coors_for_sub_shaped = new float[test_obj.MAX_NUM_PILLARS_ * test_obj.MAX_NUM_POINTS_PER_PILLAR_]; + float* y_coors_for_sub_shaped = new float[test_obj.MAX_NUM_PILLARS_ * test_obj.MAX_NUM_POINTS_PER_PILLAR_]; + float* pillar_feature_mask = new float[test_obj.MAX_NUM_PILLARS_ * test_obj.MAX_NUM_POINTS_PER_PILLAR_]; - float* sparse_pillar_map = new float[512*512]; + float* sparse_pillar_map = new float[512 * 512]; - int host_pillar_count[1] = {0}; - test_obj.preprocess(points_array, pcl_pc_ptr->size(), - x_coors, y_coors, num_points_per_pillar, - pillar_x, pillar_y, pillar_z, pillar_i, - x_coors_for_sub_shaped, y_coors_for_sub_shaped, - pillar_feature_mask, sparse_pillar_map, host_pillar_count); + int host_pillar_count[1] = { 0 }; + test_obj.preprocess(points_array, pcl_pc_ptr->size(), x_coors, y_coors, num_points_per_pillar, pillar_x, pillar_y, + pillar_z, pillar_i, x_coors_for_sub_shaped, y_coors_for_sub_shaped, pillar_feature_mask, + sparse_pillar_map, host_pillar_count); EXPECT_EQ(15, num_points_per_pillar[0]); EXPECT_FLOAT_EQ(3.7517259, pillar_x[14]); EXPECT_EQ(71, x_coors[100]); EXPECT_EQ(177, y_coors[100]); - EXPECT_EQ(1, sparse_pillar_map[177*512 + 71]); + EXPECT_EQ(1, sparse_pillar_map[177 * 512 + 71]); EXPECT_EQ(6270, host_pillar_count[0]); delete[] points_array; delete[] pillar_x; From ac9b9a9de3b4e4809399d1d542c05115e861cfb5 Mon Sep 17 00:00:00 2001 From: Kosuke Murakami Date: Thu, 28 Feb 2019 08:35:54 +0900 Subject: [PATCH 024/139] Refactor codes --- .../lidar_point_pillars/CMakeLists.txt | 1 + .../include/point_pillars.h | 30 +++++++++++++++---- .../nodes/point_pillars.cpp | 20 ++++++++++--- 3 files changed, 42 insertions(+), 9 deletions(-) diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/CMakeLists.txt b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/CMakeLists.txt index fad7f1a04c6..b4c451a393b 100755 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/CMakeLists.txt +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/CMakeLists.txt @@ -80,6 +80,7 @@ if(TRT_AVAIL AND CUDA_AVAIL) nodes/point_pillars.cpp nodes/preprocess_points.cpp ) + # Need ${catkin_LIBRARIES} because of #include for ROS_ERROR target_link_libraries(point_pillars_lib ${catkin_LIBRARIES} nvinfer diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars.h index e65a5c02433..541e1d9b347 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars.h +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars.h @@ -220,6 +220,20 @@ class PointPillars */ void initTRT(); + /** + * @brief Generate anchors + * @param[in] anchors_px_ Represents x-coordinate value for corresponding anchor + * @param[in] anchors_py_ Represents y-coordinate value for corresponding anchor + * @param[in] anchors_pz_ Represents z-coordinate value for corresponding anchor + * @param[in] anchors_dx_ Represents x-dimension value for corresponding anchor + * @param[in] anchors_dy_ Represents y-dimension value for corresponding anchor + * @param[in] anchors_dz_ Represents z-dimension value for corresponding anchor + * @param[in] anchors_ro_ Represents rotation value for corresponding anchor + * @details Generate anchors for each grid + */ + void generateAnchors(float* anchors_px_, float* anchors_py_, float* anchors_pz_, + float* anchors_dx_, float* anchors_dy_, float* anchors_dz_, float* anchors_ro_); + /** * @brief Convert ONNX to TensorRT model * @param[in] model_file ONNX model file path @@ -254,13 +268,19 @@ class PointPillars /** * @brief Convert anchors to box form like min_x, min_y, max_x, max_y anchors - * @param[in] anchors_px Represents x-coordinate value for corresponding anchor - * @param[in] anchors_py Represents y-coordinate value for corresponding anchor - * @param[in] anchors_dx Represents x-dimension value for corresponding anchor - * @param[in] anchors_dy Represents y-dimension value for corresponding anchor + * @param[in] anchors_px_ Represents x-coordinate value for a corresponding anchor + * @param[in] anchors_py_ Represents y-coordinate value for a corresponding anchor + * @param[in] anchors_dx_ Represents x-dimension value for a corresponding anchor + * @param[in] anchors_dy_ Represents y-dimension value for a corresponding anchor + * @param[in] box_anchors_min_x_ Represents minimum x value for a correspomding anchor + * @param[in] box_anchors_min_y_ Represents minimum y value for a correspomding anchor + * @param[in] box_anchors_max_x_ Represents maximum x value for a correspomding anchor + * @param[in] box_anchors_max_y_ Represents maximum y value for a correspomding anchor * @details Make box anchors for nms */ - void convertAnchors2BoxAnchors(float* anchors_px, float* anchors_py, float* anchors_dx, float* anchors_dy); + void convertAnchors2BoxAnchors(float* anchors_px_, float* anchors_py_, float* anchors_dx_, float* anchors_dy_, + float* box_anchors_min_x_, float* box_anchors_min_y_, + float* box_anchors_max_x_, float* box_anchors_max_y_); /** * @brief Memory allocation for anchors diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp index 117fb5c2a5e..bb5f33050f6 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp @@ -267,6 +267,19 @@ void PointPillars::deviceMemoryMalloc() } void PointPillars::initAnchors() +{ + generateAnchors(anchors_px_, anchors_py_, anchors_pz_, + anchors_dx_, anchors_dy_, anchors_dz_, anchors_ro_); + + convertAnchors2BoxAnchors(anchors_px_, anchors_py_, anchors_dx_, anchors_dy_, + box_anchors_min_x_, box_anchors_min_y_, + box_anchors_max_x_, box_anchors_max_y_); + + putAnchorsInDeviceMemory(); +} + +void PointPillars::generateAnchors(float* anchors_px_, float* anchors_py_, float* anchors_pz_, + float* anchors_dx_, float* anchors_dy_, float* anchors_dz_, float* anchors_ro_) { // zero clear for (size_t i = 0; i < NUM_ANCHOR_; i++) @@ -320,9 +333,6 @@ void PointPillars::initAnchors() } } } - convertAnchors2BoxAnchors(anchors_px_, anchors_py_, anchors_dx_, anchors_dy_); - - putAnchorsInDeviceMemory(); } void PointPillars::putAnchorsInDeviceMemory() @@ -345,7 +355,9 @@ void PointPillars::putAnchorsInDeviceMemory() GPU_CHECK(cudaMemcpy(dev_anchors_ro_, anchors_ro_, NUM_ANCHOR_ * sizeof(float), cudaMemcpyHostToDevice)); } -void PointPillars::convertAnchors2BoxAnchors(float* anchors_px, float* anchors_py, float* anchors_dx, float* anchors_dy) +void PointPillars::convertAnchors2BoxAnchors(float* anchors_px, float* anchors_py, float* anchors_dx, float* anchors_dy, + float* box_anchors_min_x_, float* box_anchors_min_y_, + float* box_anchors_max_x_, float* box_anchors_max_y_) { // flip box's dimension when the at the third axis == 1 float flipped_anchors_dx[NUM_ANCHOR_] = { 0 }; From 32c0158949e081252d14f6ca88ab9eda42019df0 Mon Sep 17 00:00:00 2001 From: Kosuke Murakami Date: Thu, 28 Feb 2019 09:27:03 +0900 Subject: [PATCH 025/139] fix some test --- .../test/src/test_point_pillars.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/test/src/test_point_pillars.cpp b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/test/src/test_point_pillars.cpp index a45cef2bdef..e3ca4a7dd28 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/test/src/test_point_pillars.cpp +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/test/src/test_point_pillars.cpp @@ -49,7 +49,7 @@ class TestClass TestClass(const int MAX_NUM_PILLARS, const int MAX_NUM_POINTS_PER_PILLAR, const int GRID_X_SIZE, const int GRID_Y_SIZE, const int GRID_Z_SIZE, const float PILLAR_X_SIZE, const float PILLAR_Y_SIZE, const float PILLAR_Z_SIZE, const float MIN_X_RANGE, const float MIN_Y_RANGE, const float MIN_Z_RANGE, - const int NUM_INDS_FOR_SCAN); + const int NUM_INDS_FOR_SCAN, const int NUM_BOX_CORNERS); const int MAX_NUM_PILLARS_; const int MAX_NUM_POINTS_PER_PILLAR_; const int GRID_X_SIZE_; @@ -62,6 +62,8 @@ class TestClass const float MIN_Y_RANGE_; const float MIN_Z_RANGE_; const int NUM_INDS_FOR_SCAN_; + const int NUM_BOX_CORNERS_; + void loadPoints(pcl::PointCloud::Ptr in_pcl_pc_ptr, const std::string& in_file); void pclToArray(const pcl::PointCloud::Ptr& in_pcl_pc_ptr, float* out_points_array); void preprocess(const float* in_points_array, int in_num_points, int* x_coors, int* y_coors, @@ -76,7 +78,7 @@ class TestClass TestClass::TestClass(const int MAX_NUM_PILLARS, const int MAX_NUM_POINTS_PER_PILLAR, const int GRID_X_SIZE, const int GRID_Y_SIZE, const int GRID_Z_SIZE, const float PILLAR_X_SIZE, const float PILLAR_Y_SIZE, const float PILLAR_Z_SIZE, const float MIN_X_RANGE, const float MIN_Y_RANGE, - const float MIN_Z_RANGE, const int NUM_INDS_FOR_SCAN) + const float MIN_Z_RANGE, const int NUM_INDS_FOR_SCAN, const int NUM_BOX_CORNERS) : MAX_NUM_PILLARS_(MAX_NUM_PILLARS) , MAX_NUM_POINTS_PER_PILLAR_(MAX_NUM_POINTS_PER_PILLAR) , GRID_X_SIZE_(GRID_X_SIZE) @@ -89,10 +91,11 @@ TestClass::TestClass(const int MAX_NUM_PILLARS, const int MAX_NUM_POINTS_PER_PIL , MIN_Y_RANGE_(MIN_Y_RANGE) , MIN_Z_RANGE_(MIN_Z_RANGE) , NUM_INDS_FOR_SCAN_(NUM_INDS_FOR_SCAN) + , NUM_BOX_CORNERS_(NUM_BOX_CORNERS) { preprocess_points_ptr_.reset(new PreprocessPoints( MAX_NUM_PILLARS_, MAX_NUM_POINTS_PER_PILLAR_, GRID_X_SIZE_, GRID_Y_SIZE_, GRID_Z_SIZE_, PILLAR_X_SIZE_, - PILLAR_Y_SIZE_, PILLAR_Z_SIZE_, MIN_X_RANGE_, MIN_Y_RANGE_, MIN_Z_RANGE_, NUM_INDS_FOR_SCAN_)); + PILLAR_Y_SIZE_, PILLAR_Z_SIZE_, MIN_X_RANGE_, MIN_Y_RANGE_, MIN_Z_RANGE_, NUM_INDS_FOR_SCAN_, NUM_BOX_CORNERS_)); }; void TestClass::preprocess(const float* in_points_array, int in_num_points, int* x_coors, int* y_coors, @@ -127,7 +130,7 @@ void TestClass::loadPoints(pcl::PointCloud::Ptr in_pcl_pc_ptr, c TEST(TestSuite, CheckPreprocessPointsCPU) { - TestClass test_obj(12000, 100, 432, 496, 1, 0.16, 0.16, 4.0, 0, -39.68, -3.0, 512); + TestClass test_obj(12000, 100, 432, 496, 1, 0.16, 0.16, 4.0, 0, -39.68, -3.0, 512, 4); pcl::PointCloud::Ptr pcl_pc_ptr(new pcl::PointCloud); std::string package_path = ros::package::getPath("lidar_point_pillars"); From 76cc1215addf417510efaf6784b8b3dec4967508 Mon Sep 17 00:00:00 2001 From: Kosuke Murakami Date: Thu, 28 Feb 2019 10:13:59 +0900 Subject: [PATCH 026/139] fix test --- .../test/src/test_point_pillars.cpp | 65 +++++++++++++++---- 1 file changed, 52 insertions(+), 13 deletions(-) diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/test/src/test_point_pillars.cpp b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/test/src/test_point_pillars.cpp index e3ca4a7dd28..51a54579963 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/test/src/test_point_pillars.cpp +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/test/src/test_point_pillars.cpp @@ -64,13 +64,14 @@ class TestClass const int NUM_INDS_FOR_SCAN_; const int NUM_BOX_CORNERS_; - void loadPoints(pcl::PointCloud::Ptr in_pcl_pc_ptr, const std::string& in_file); + void initPoints(pcl::PointCloud::Ptr in_pcl_pc_ptr); void pclToArray(const pcl::PointCloud::Ptr& in_pcl_pc_ptr, float* out_points_array); void preprocess(const float* in_points_array, int in_num_points, int* x_coors, int* y_coors, float* num_points_per_pillar, float* pillar_x, float* pillar_y, float* pillar_z, float* pillar_i, float* x_coors_for_sub_shaped, float* y_coors_for_sub_shaped, float* pillar_feature_mask, float* sparse_pillar_map, int* host_pillar_count); + private: std::unique_ptr preprocess_points_ptr_; }; @@ -120,12 +121,49 @@ void TestClass::pclToArray(const pcl::PointCloud::Ptr& in_pcl_pc } } -void TestClass::loadPoints(pcl::PointCloud::Ptr in_pcl_pc_ptr, const std::string& in_file) +void TestClass::initPoints(pcl::PointCloud::Ptr in_pcl_pc_ptr) { - if (pcl::io::loadPCDFile(in_file, *in_pcl_pc_ptr) == -1) - { - ROS_ERROR("Couldn't read test pcd file \n"); - } + pcl::PointXYZI point; + point.x = 12.9892; + point.y = -9.98058; + point.z = 0; + point.intensity = 4; + in_pcl_pc_ptr->push_back(point); + point.x = 11.8697; + point.y = -11.123; + point.z = -0.189377; + point.intensity = 35; + in_pcl_pc_ptr->push_back(point); + point.x = 12.489; + point.y = -9.59703; + point.z = -2.15565; + point.intensity =11; + in_pcl_pc_ptr->push_back(point); + point.x = 12.9084; + point.y = -10.9626; + point.z = -2.15565; + point.intensity = 11; + in_pcl_pc_ptr->push_back(point); + point.x = 13.8676; + point.y = -9.61668; + point.z = 0.0980819; + point.intensity = 14; + in_pcl_pc_ptr->push_back(point); + point.x = 13.5673; + point.y = -12.9834; + point.z = 0.21862; + point.intensity = 1; + in_pcl_pc_ptr->push_back(point); + point.x = 13.8213; + point.y = -10.8529; + point.z =-1.22883; + point.intensity = 19; + in_pcl_pc_ptr->push_back(point); + point.x = 11.8957; + point.y = -10.3189; + point.z =-1.28556; + point.intensity = 13; + in_pcl_pc_ptr->push_back(point); } TEST(TestSuite, CheckPreprocessPointsCPU) @@ -135,7 +173,8 @@ TEST(TestSuite, CheckPreprocessPointsCPU) pcl::PointCloud::Ptr pcl_pc_ptr(new pcl::PointCloud); std::string package_path = ros::package::getPath("lidar_point_pillars"); std::string in_file = package_path + "/test/data/1527836009720148.pcd"; - test_obj.loadPoints(pcl_pc_ptr, in_file); + test_obj.initPoints(pcl_pc_ptr); + float* points_array = new float[pcl_pc_ptr->size() * 4]; test_obj.pclToArray(pcl_pc_ptr, points_array); @@ -158,12 +197,12 @@ TEST(TestSuite, CheckPreprocessPointsCPU) test_obj.preprocess(points_array, pcl_pc_ptr->size(), x_coors, y_coors, num_points_per_pillar, pillar_x, pillar_y, pillar_z, pillar_i, x_coors_for_sub_shaped, y_coors_for_sub_shaped, pillar_feature_mask, sparse_pillar_map, host_pillar_count); - EXPECT_EQ(15, num_points_per_pillar[0]); - EXPECT_FLOAT_EQ(3.7517259, pillar_x[14]); - EXPECT_EQ(71, x_coors[100]); - EXPECT_EQ(177, y_coors[100]); - EXPECT_EQ(1, sparse_pillar_map[177 * 512 + 71]); - EXPECT_EQ(6270, host_pillar_count[0]); + EXPECT_EQ(1, num_points_per_pillar[0]); + EXPECT_FLOAT_EQ(12.9892, pillar_x[0]); + EXPECT_EQ(74, x_coors[1]); + EXPECT_EQ(178, y_coors[1]); + EXPECT_EQ(1, sparse_pillar_map[178 * 512 + 74]); + EXPECT_EQ(8, host_pillar_count[0]); delete[] points_array; delete[] pillar_x; delete[] pillar_y; From 446326a7b54049bc6fd6fbdcb722c1131c0dbe2b Mon Sep 17 00:00:00 2001 From: Kosuke Murakami Date: Thu, 28 Feb 2019 10:32:22 +0900 Subject: [PATCH 027/139] refactor codes --- .../packages/lidar_point_pillars/include/point_pillars_ros.h | 2 +- .../packages/lidar_point_pillars/nodes/point_pillars_ros.cpp | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars_ros.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars_ros.h index 8a40722a896..97e6ff51f1f 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars_ros.h +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars_ros.h @@ -88,7 +88,7 @@ class PointPillarsROS * @param[in] lidar2baselink transofomation info * @details Calculate z offset compared with trained sensor height and get rotation matrix */ - void getTFInfo(tf::StampedTransform lidar2baselink); + void analyzeTFInfo(tf::StampedTransform lidar2baselink); /** * @brief Transform pose based on tf stamp info diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars_ros.cpp b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars_ros.cpp index 0d4b3df7148..17dcc8ecabc 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars_ros.cpp +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars_ros.cpp @@ -86,6 +86,7 @@ void PointPillarsROS::pubDetectedObject(const std::vector& detections, co float yaw = detections[i * OUTPUT_NUM_BOX_FEATURE_ + 6]; yaw = std::atan2(std::sin(yaw), std::cos(yaw)); + // Trained this way geometry_msgs::Quaternion q = tf::createQuaternionMsgFromYaw(-yaw); object.pose.orientation = q; @@ -109,7 +110,7 @@ void PointPillarsROS::getBaselinkToLidarTF(const std::string& target_frameid) { tf_listener_.waitForTransform(BASELINK_FRAME_, target_frameid, ros::Time(0), ros::Duration(1.0)); tf_listener_.lookupTransform(BASELINK_FRAME_, target_frameid, ros::Time(0), baselink2lidar_); - getTFInfo(baselink2lidar_); + analyzeTFInfo(baselink2lidar_); has_subscribed_baselink_ = true; } catch (tf::TransformException ex) @@ -118,7 +119,7 @@ void PointPillarsROS::getBaselinkToLidarTF(const std::string& target_frameid) } } -void PointPillarsROS::getTFInfo(tf::StampedTransform baselink2lidar) +void PointPillarsROS::analyzeTFInfo(tf::StampedTransform baselink2lidar) { tf::Vector3 v = baselink2lidar.getOrigin(); offset_z_from_trained_data_ = v.getZ() - TRAINED_SENSOR_HEIGHT_; From 0aaf34f1e5055edb8abc09048614278af6965e1e Mon Sep 17 00:00:00 2001 From: Kosuke Murakami Date: Thu, 28 Feb 2019 11:09:57 +0900 Subject: [PATCH 028/139] refactor codes --- .../lidar_point_pillars/include/point_pillars.h | 4 +--- .../lidar_point_pillars/include/point_pillars_ros.h | 3 +-- .../lidar_point_pillars/include/postprocess_cuda.h | 3 +-- .../lidar_point_pillars/nodes/point_pillars.cpp | 13 ++++++------- .../lidar_point_pillars/nodes/point_pillars_ros.cpp | 8 ++++---- .../lidar_point_pillars/nodes/postprocess_cuda.cu | 11 ++++++----- 6 files changed, 19 insertions(+), 23 deletions(-) diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars.h index 541e1d9b347..b2f6c04728f 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars.h +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars.h @@ -307,11 +307,9 @@ class PointPillars * @param[in] in_points_array pointcloud array * @param[in] in_num_points Number of points * @param[in] out_detections Network output bounding box - * @param[in] out_num_objects Number of output bounding box * @details This is interface for the algorithm */ - void doInference(const float* in_points_array, const int in_num_points, std::vector& out_detection, - int& out_num_objects); + void doInference(const float* in_points_array, const int in_num_points, std::vector& out_detection); }; #endif // POINTS_PILLAR_H diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars_ros.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars_ros.h index 97e6ff51f1f..43c0994f547 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars_ros.h +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars_ros.h @@ -119,11 +119,10 @@ class PointPillarsROS /** * @brief publish DetectedObject * @param[in] detections Network output bounding box - * @param[in] num_objects Number of objects * @param[in] pc_header Header from pointcloud * @details Convert std::vector to DetectedObject, and publish them */ - void pubDetectedObject(const std::vector& detections, const int num_objects, + void pubDetectedObject(const std::vector& detections, const std_msgs::Header& pc_header); public: diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/postprocess_cuda.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/postprocess_cuda.h index b60a427ca3f..2add152f904 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/postprocess_cuda.h +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/postprocess_cuda.h @@ -86,7 +86,6 @@ class PostprocessCuda * @param[in] dev_box_for_nms Decoded box from pose and dimension to min_x min_y max_x max_y represenation for nms * @param[in] dev_filter_count The number of filtered output * @param[out] out_detection Output bounding boxes - * @param[out] out_num_objects The number of output bounding boxes * @details dev_* represents device memory allocated variables */ void doPostprocessCuda(const float* rpn_box_output, const float* rpn_cls_output, const float* rpn_dir_output, @@ -94,7 +93,7 @@ class PostprocessCuda const float* dev_anchors_pz, const float* dev_anchors_dx, const float* dev_anchors_dy, const float* dev_anchors_dz, const float* dev_anchors_ro, float* dev_filtered_box, float* dev_filtered_score, int* dev_filtered_dir, float* dev_box_for_nms, - int* dev_filter_count, std::vector& out_detection, int& out_num_objects); + int* dev_filter_count, std::vector& out_detection); }; #endif // POSTPROCESS_CUDA_H diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp index bb5f33050f6..1e0cf78a85a 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp @@ -259,10 +259,10 @@ void PointPillars::deviceMemoryMalloc() GPU_CHECK(cudaMalloc((void**)&dev_anchors_dy_, NUM_ANCHOR_ * sizeof(float))); GPU_CHECK(cudaMalloc((void**)&dev_anchors_dz_, NUM_ANCHOR_ * sizeof(float))); GPU_CHECK(cudaMalloc((void**)&dev_anchors_ro_, NUM_ANCHOR_ * sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_filtered_box_, NUM_ANCHOR_ * 7 * sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_filtered_box_, NUM_ANCHOR_ * NUM_OUTPUT_BOX_FEATURE_ * sizeof(float))); GPU_CHECK(cudaMalloc((void**)&dev_filtered_score_, NUM_ANCHOR_ * sizeof(float))); GPU_CHECK(cudaMalloc((void**)&dev_filtered_dir_, NUM_ANCHOR_ * sizeof(int))); - GPU_CHECK(cudaMalloc((void**)&dev_box_for_nms_, NUM_ANCHOR_ * 4 * sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_box_for_nms_, NUM_ANCHOR_ * NUM_BOX_CORNERS_ * sizeof(float))); GPU_CHECK(cudaMalloc((void**)&dev_filter_count_, sizeof(int))); } @@ -524,8 +524,8 @@ void PointPillars::preprocessCPU(const float* in_points_array, const int in_num_ void PointPillars::preprocessGPU(const float* in_points_array, const int in_num_points) { float* dev_points; - GPU_CHECK(cudaMalloc((void**)&dev_points, in_num_points * 4 * sizeof(float))); - GPU_CHECK(cudaMemcpy(dev_points, in_points_array, in_num_points * 4 * sizeof(float), cudaMemcpyHostToDevice)); + GPU_CHECK(cudaMalloc((void**)&dev_points, in_num_points * NUM_BOX_CORNERS_ * sizeof(float))); + GPU_CHECK(cudaMemcpy(dev_points, in_points_array, in_num_points * NUM_BOX_CORNERS_ * sizeof(float), cudaMemcpyHostToDevice)); GPU_CHECK(cudaMemset(dev_pillar_count_histo_, 0, GRID_Y_SIZE_ * GRID_X_SIZE_ * sizeof(int))); GPU_CHECK(cudaMemset(dev_sparse_pillar_map_, 0, NUM_INDS_FOR_SCAN_ * NUM_INDS_FOR_SCAN_ * sizeof(int))); @@ -558,8 +558,7 @@ void PointPillars::preprocess(const float* in_points_array, const int in_num_poi } } -void PointPillars::doInference(const float* in_points_array, const int in_num_points, std::vector& out_detection, - int& out_num_objects) +void PointPillars::doInference(const float* in_points_array, const int in_num_points, std::vector& out_detection) { preprocess(in_points_array, in_num_points); @@ -607,7 +606,7 @@ void PointPillars::doInference(const float* in_points_array, const int in_num_po dev_anchor_mask_, dev_anchors_px_, dev_anchors_py_, dev_anchors_pz_, dev_anchors_dx_, dev_anchors_dy_, dev_anchors_dz_, dev_anchors_ro_, dev_filtered_box_, dev_filtered_score_, dev_filtered_dir_, dev_box_for_nms_, - dev_filter_count_, out_detection, out_num_objects); + dev_filter_count_, out_detection); // release the stream and the buffers cudaStreamDestroy(stream); diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars_ros.cpp b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars_ros.cpp index 17dcc8ecabc..2d6c88907d2 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars_ros.cpp +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars_ros.cpp @@ -68,11 +68,12 @@ geometry_msgs::Pose PointPillarsROS::getTransformedPose(const geometry_msgs::Pos return out_pose.pose; } -void PointPillarsROS::pubDetectedObject(const std::vector& detections, const int num_objects, +void PointPillarsROS::pubDetectedObject(const std::vector& detections, const std_msgs::Header& pc_header) { autoware_msgs::DetectedObjectArray objects; objects.header = pc_header; + int num_objects = detections.size()/OUTPUT_NUM_BOX_FEATURE_; for (size_t i = 0; i < num_objects; i++) { autoware_msgs::DetectedObject object; @@ -166,10 +167,9 @@ void PointPillarsROS::pointsCallback(const sensor_msgs::PointCloud2::ConstPtr& m pclToArray(pcl_pc_ptr, points_array); } - int out_num_objects = 0; std::vector out_detection; - point_pillars_ptr_->doInference(points_array, pcl_pc_ptr->size(), out_detection, out_num_objects); + point_pillars_ptr_->doInference(points_array, pcl_pc_ptr->size(), out_detection); delete[] points_array; - pubDetectedObject(out_detection, out_num_objects, msg->header); + pubDetectedObject(out_detection, msg->header); } diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/postprocess_cuda.cu b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/postprocess_cuda.cu index 2b5501e3541..cf82496926a 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/postprocess_cuda.cu +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/postprocess_cuda.cu @@ -73,9 +73,9 @@ __global__ void filter_kernel(const float* box_preds, const float* cls_preds, co //convrt normal box(normal boxes: x, y, z, w, l, h, r) to box(xmin, ymin, xmax, ymax) for nms calculation //First: dx, dy -> box(x0y0, x0y1, x1y0, x1y1) float corners[2*4] = {float(-0.5*box_dx), float(-0.5*box_dy), - float(-0.5*box_dx), float( 0.5*box_dy), - float( 0.5*box_dx), float( 0.5*box_dy), - float( 0.5*box_dx), float(-0.5*box_dy)}; + float(-0.5*box_dx), float( 0.5*box_dy), + float( 0.5*box_dx), float( 0.5*box_dy), + float( 0.5*box_dx), float(-0.5*box_dy)}; //Second: Rotate, Offset and convert to point(xmin. ymin, xmax, ymax) //cannot use variable initialization since "error: expression must have a constant value" @@ -159,7 +159,7 @@ void PostprocessCuda::doPostprocessCuda(const float* rpn_box_output, const float int* dev_anchor_mask, const float* dev_anchors_px, const float* dev_anchors_py, const float* dev_anchors_pz, const float* dev_anchors_dx, const float* dev_anchors_dy, const float* dev_anchors_dz, const float* dev_anchors_ro, float* dev_filtered_box, float* dev_filtered_score, int* dev_filtered_dir, float* dev_box_for_nms, int* dev_filter_count, - std::vector& out_detection, int& out_num_objects) + std::vector& out_detection) { filter_kernel<<>> @@ -194,10 +194,11 @@ void PostprocessCuda::doPostprocessCuda(const float* rpn_box_output, const float NUM_BOX_CORNERS_, NUM_OUTPUT_BOX_FEATURE_); int keep_inds[host_filter_count[0]] = {0}; + int out_num_objects = 0; nms_cuda_ptr_->doNMSCuda(host_filter_count[0], dev_sorted_box_for_nms, keep_inds, out_num_objects); - float host_filtered_box[host_filter_count[0]*7]; + float host_filtered_box[host_filter_count[0]*NUM_OUTPUT_BOX_FEATURE_]; int host_filtered_dir[host_filter_count[0]]; GPU_CHECK( cudaMemcpy(host_filtered_box, dev_sorted_filtered_box, NUM_OUTPUT_BOX_FEATURE_*host_filter_count[0] *sizeof(float), cudaMemcpyDeviceToHost ) ); GPU_CHECK( cudaMemcpy(host_filtered_dir, dev_sorted_filtered_dir, host_filter_count[0] *sizeof(int), cudaMemcpyDeviceToHost ) ); From df730579e079fede46aa09f7f5445866f1755e9f Mon Sep 17 00:00:00 2001 From: Kosuke Murakami Date: Thu, 28 Feb 2019 11:18:06 +0900 Subject: [PATCH 029/139] refactor code --- .../nodes/point_pillars.cpp | 101 +++++++----------- 1 file changed, 38 insertions(+), 63 deletions(-) diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp index 1e0cf78a85a..4d23bfcb6c5 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp @@ -193,15 +193,13 @@ PointPillars::~PointPillars() void PointPillars::deviceMemoryMalloc() { - GPU_CHECK(cudaMalloc((void**)&dev_pillar_x_in_coors_, - GRID_Y_SIZE_ * GRID_X_SIZE_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_pillar_y_in_coors_, - GRID_Y_SIZE_ * GRID_X_SIZE_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_pillar_z_in_coors_, - GRID_Y_SIZE_ * GRID_X_SIZE_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); - GPU_CHECK(cudaMalloc((void**)&dev_pillar_i_in_coors_, - GRID_Y_SIZE_ * GRID_X_SIZE_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); + // clang-format off + GPU_CHECK(cudaMalloc((void**)&dev_pillar_x_in_coors_,GRID_Y_SIZE_ * GRID_X_SIZE_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_pillar_y_in_coors_,GRID_Y_SIZE_ * GRID_X_SIZE_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_pillar_z_in_coors_,GRID_Y_SIZE_ * GRID_X_SIZE_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_pillar_i_in_coors_,GRID_Y_SIZE_ * GRID_X_SIZE_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); GPU_CHECK(cudaMalloc((void**)&dev_pillar_count_histo_, GRID_Y_SIZE_ * GRID_X_SIZE_ * sizeof(int))); + // clang-format on GPU_CHECK(cudaMalloc((void**)&dev_x_coors_, MAX_NUM_PILLARS_ * sizeof(int))); GPU_CHECK(cudaMalloc((void**)&dev_y_coors_, MAX_NUM_PILLARS_ * sizeof(int))); @@ -213,12 +211,11 @@ void PointPillars::deviceMemoryMalloc() GPU_CHECK(cudaMalloc((void**)&dev_pillar_z_, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); GPU_CHECK(cudaMalloc((void**)&dev_pillar_i_, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); - GPU_CHECK( - cudaMalloc((void**)&dev_x_coors_for_sub_shaped_, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); - GPU_CHECK( - cudaMalloc((void**)&dev_y_coors_for_sub_shaped_, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); - GPU_CHECK( - cudaMalloc((void**)&dev_pillar_feature_mask_, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); + // clang-format off + GPU_CHECK(cudaMalloc((void**)&dev_x_coors_for_sub_shaped_, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_y_coors_for_sub_shaped_, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_pillar_feature_mask_, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float))); + // clang-format on // cumsum kernel GPU_CHECK(cudaMalloc((void**)&dev_cumsum_along_x_, NUM_INDS_FOR_SCAN_ * NUM_INDS_FOR_SCAN_ * sizeof(int))); @@ -337,14 +334,12 @@ void PointPillars::generateAnchors(float* anchors_px_, float* anchors_py_, float void PointPillars::putAnchorsInDeviceMemory() { - GPU_CHECK( - cudaMemcpy(dev_box_anchors_min_x_, box_anchors_min_x_, NUM_ANCHOR_ * sizeof(float), cudaMemcpyHostToDevice)); - GPU_CHECK( - cudaMemcpy(dev_box_anchors_min_y_, box_anchors_min_y_, NUM_ANCHOR_ * sizeof(float), cudaMemcpyHostToDevice)); - GPU_CHECK( - cudaMemcpy(dev_box_anchors_max_x_, box_anchors_max_x_, NUM_ANCHOR_ * sizeof(float), cudaMemcpyHostToDevice)); - GPU_CHECK( - cudaMemcpy(dev_box_anchors_max_y_, box_anchors_max_y_, NUM_ANCHOR_ * sizeof(float), cudaMemcpyHostToDevice)); + // clang-format off + GPU_CHECK(cudaMemcpy(dev_box_anchors_min_x_, box_anchors_min_x_, NUM_ANCHOR_ * sizeof(float), cudaMemcpyHostToDevice)); + GPU_CHECK(cudaMemcpy(dev_box_anchors_min_y_, box_anchors_min_y_, NUM_ANCHOR_ * sizeof(float), cudaMemcpyHostToDevice)); + GPU_CHECK(cudaMemcpy(dev_box_anchors_max_x_, box_anchors_max_x_, NUM_ANCHOR_ * sizeof(float), cudaMemcpyHostToDevice)); + GPU_CHECK(cudaMemcpy(dev_box_anchors_max_y_, box_anchors_max_y_, NUM_ANCHOR_ * sizeof(float), cudaMemcpyHostToDevice)); + // clang-format on GPU_CHECK(cudaMemcpy(dev_anchors_px_, anchors_px_, NUM_ANCHOR_ * sizeof(float), cudaMemcpyHostToDevice)); GPU_CHECK(cudaMemcpy(dev_anchors_py_, anchors_py_, NUM_ANCHOR_ * sizeof(float), cudaMemcpyHostToDevice)); @@ -490,26 +485,19 @@ void PointPillars::preprocessCPU(const float* in_points_array, const int in_num_ GPU_CHECK(cudaMemset(dev_num_points_per_pillar_, 0, MAX_NUM_PILLARS_ * sizeof(float))); GPU_CHECK(cudaMemset(dev_sparse_pillar_map_, 0, NUM_INDS_FOR_SCAN_ * NUM_INDS_FOR_SCAN_ * sizeof(int))); + // clang-format off GPU_CHECK(cudaMemcpy(dev_x_coors_, x_coors, MAX_NUM_PILLARS_ * sizeof(int), cudaMemcpyHostToDevice)); GPU_CHECK(cudaMemcpy(dev_y_coors_, y_coors, MAX_NUM_PILLARS_ * sizeof(int), cudaMemcpyHostToDevice)); - GPU_CHECK(cudaMemcpy(dev_pillar_x_, pillar_x, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), - cudaMemcpyHostToDevice)); - GPU_CHECK(cudaMemcpy(dev_pillar_y_, pillar_y, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), - cudaMemcpyHostToDevice)); - GPU_CHECK(cudaMemcpy(dev_pillar_z_, pillar_z, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), - cudaMemcpyHostToDevice)); - GPU_CHECK(cudaMemcpy(dev_pillar_i_, pillar_i, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), - cudaMemcpyHostToDevice)); - GPU_CHECK(cudaMemcpy(dev_x_coors_for_sub_shaped_, x_coors_for_sub_shaped, - MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyHostToDevice)); - GPU_CHECK(cudaMemcpy(dev_y_coors_for_sub_shaped_, y_coors_for_sub_shaped, - MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyHostToDevice)); - GPU_CHECK(cudaMemcpy(dev_num_points_per_pillar_, num_points_per_pillar, MAX_NUM_PILLARS_ * sizeof(float), - cudaMemcpyHostToDevice)); - GPU_CHECK(cudaMemcpy(dev_pillar_feature_mask_, pillar_feature_mask, - MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyHostToDevice)); - GPU_CHECK(cudaMemcpy(dev_sparse_pillar_map_, sparse_pillar_map, - NUM_INDS_FOR_SCAN_ * NUM_INDS_FOR_SCAN_ * sizeof(float), cudaMemcpyHostToDevice)); + GPU_CHECK(cudaMemcpy(dev_pillar_x_, pillar_x, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float),cudaMemcpyHostToDevice)); + GPU_CHECK(cudaMemcpy(dev_pillar_y_, pillar_y, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float),cudaMemcpyHostToDevice)); + GPU_CHECK(cudaMemcpy(dev_pillar_z_, pillar_z, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float),cudaMemcpyHostToDevice)); + GPU_CHECK(cudaMemcpy(dev_pillar_i_, pillar_i, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float),cudaMemcpyHostToDevice)); + GPU_CHECK(cudaMemcpy(dev_x_coors_for_sub_shaped_, x_coors_for_sub_shaped, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyHostToDevice)); + GPU_CHECK(cudaMemcpy(dev_y_coors_for_sub_shaped_, y_coors_for_sub_shaped,MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyHostToDevice)); + GPU_CHECK(cudaMemcpy(dev_num_points_per_pillar_, num_points_per_pillar, MAX_NUM_PILLARS_ * sizeof(float),cudaMemcpyHostToDevice)); + GPU_CHECK(cudaMemcpy(dev_pillar_feature_mask_, pillar_feature_mask,MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyHostToDevice)); + GPU_CHECK(cudaMemcpy(dev_sparse_pillar_map_, sparse_pillar_map,NUM_INDS_FOR_SCAN_ * NUM_INDS_FOR_SCAN_ * sizeof(float), cudaMemcpyHostToDevice)); + // clang-format on delete[] pillar_x; delete[] pillar_y; @@ -568,29 +556,16 @@ void PointPillars::doInference(const float* in_points_array, const int in_num_po cudaStream_t stream; GPU_CHECK(cudaStreamCreate(&stream)); - GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[0], dev_pillar_x_, - BATCH_SIZE_ * MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), - cudaMemcpyDeviceToDevice, stream)); - GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[1], dev_pillar_y_, - BATCH_SIZE_ * MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), - cudaMemcpyDeviceToDevice, stream)); - GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[2], dev_pillar_z_, - BATCH_SIZE_ * MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), - cudaMemcpyDeviceToDevice, stream)); - GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[3], dev_pillar_i_, - BATCH_SIZE_ * MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), - cudaMemcpyDeviceToDevice, stream)); - GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[4], dev_num_points_per_pillar_, BATCH_SIZE_ * MAX_NUM_PILLARS_ * sizeof(float), - cudaMemcpyDeviceToDevice, stream)); - GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[5], dev_x_coors_for_sub_shaped_, - BATCH_SIZE_ * MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), - cudaMemcpyDeviceToDevice, stream)); - GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[6], dev_y_coors_for_sub_shaped_, - BATCH_SIZE_ * MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), - cudaMemcpyDeviceToDevice, stream)); - GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[7], dev_pillar_feature_mask_, - BATCH_SIZE_ * MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), - cudaMemcpyDeviceToDevice, stream)); + // clang-format off + GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[0], dev_pillar_x_, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyDeviceToDevice, stream)); + GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[1], dev_pillar_y_, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyDeviceToDevice, stream)); + GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[2], dev_pillar_z_, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyDeviceToDevice, stream)); + GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[3], dev_pillar_i_, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyDeviceToDevice, stream)); + GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[4], dev_num_points_per_pillar_, MAX_NUM_PILLARS_ * sizeof(float), cudaMemcpyDeviceToDevice, stream)); + GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[5], dev_x_coors_for_sub_shaped_, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyDeviceToDevice, stream)); + GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[6], dev_y_coors_for_sub_shaped_, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyDeviceToDevice, stream)); + GPU_CHECK(cudaMemcpyAsync(pfe_buffers_[7], dev_pillar_feature_mask_, MAX_NUM_PILLARS_ * MAX_NUM_POINTS_PER_PILLAR_ * sizeof(float), cudaMemcpyDeviceToDevice, stream)); + // clang-format on pfe_context_->enqueue(BATCH_SIZE_, pfe_buffers_, stream, nullptr); GPU_CHECK(cudaMemset(dev_scattered_feature_, 0, RPN_INPUT_SIZE_ * sizeof(float))); From 70fb9be658d94d26286ff64a65fad91c92176cf9 Mon Sep 17 00:00:00 2001 From: Kosuke Murakami Date: Thu, 28 Feb 2019 11:24:33 +0900 Subject: [PATCH 030/139] apply ros clang --- .../include/point_pillars.h | 8 +++---- .../include/point_pillars_ros.h | 3 +-- .../nodes/point_pillars.cpp | 23 +++++++++---------- .../nodes/point_pillars_ros.cpp | 5 ++-- .../test/src/test_point_pillars.cpp | 8 +++---- 5 files changed, 21 insertions(+), 26 deletions(-) diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars.h index b2f6c04728f..735b80e36b4 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars.h +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars.h @@ -231,8 +231,8 @@ class PointPillars * @param[in] anchors_ro_ Represents rotation value for corresponding anchor * @details Generate anchors for each grid */ - void generateAnchors(float* anchors_px_, float* anchors_py_, float* anchors_pz_, - float* anchors_dx_, float* anchors_dy_, float* anchors_dz_, float* anchors_ro_); + void generateAnchors(float* anchors_px_, float* anchors_py_, float* anchors_pz_, float* anchors_dx_, + float* anchors_dy_, float* anchors_dz_, float* anchors_ro_); /** * @brief Convert ONNX to TensorRT model @@ -279,8 +279,8 @@ class PointPillars * @details Make box anchors for nms */ void convertAnchors2BoxAnchors(float* anchors_px_, float* anchors_py_, float* anchors_dx_, float* anchors_dy_, - float* box_anchors_min_x_, float* box_anchors_min_y_, - float* box_anchors_max_x_, float* box_anchors_max_y_); + float* box_anchors_min_x_, float* box_anchors_min_y_, float* box_anchors_max_x_, + float* box_anchors_max_y_); /** * @brief Memory allocation for anchors diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars_ros.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars_ros.h index 43c0994f547..4aa50f3160d 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars_ros.h +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars_ros.h @@ -122,8 +122,7 @@ class PointPillarsROS * @param[in] pc_header Header from pointcloud * @details Convert std::vector to DetectedObject, and publish them */ - void pubDetectedObject(const std::vector& detections, - const std_msgs::Header& pc_header); + void pubDetectedObject(const std::vector& detections, const std_msgs::Header& pc_header); public: PointPillarsROS(); diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp index 4d23bfcb6c5..be307a5d68a 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp @@ -265,18 +265,16 @@ void PointPillars::deviceMemoryMalloc() void PointPillars::initAnchors() { - generateAnchors(anchors_px_, anchors_py_, anchors_pz_, - anchors_dx_, anchors_dy_, anchors_dz_, anchors_ro_); + generateAnchors(anchors_px_, anchors_py_, anchors_pz_, anchors_dx_, anchors_dy_, anchors_dz_, anchors_ro_); - convertAnchors2BoxAnchors(anchors_px_, anchors_py_, anchors_dx_, anchors_dy_, - box_anchors_min_x_, box_anchors_min_y_, + convertAnchors2BoxAnchors(anchors_px_, anchors_py_, anchors_dx_, anchors_dy_, box_anchors_min_x_, box_anchors_min_y_, box_anchors_max_x_, box_anchors_max_y_); putAnchorsInDeviceMemory(); } -void PointPillars::generateAnchors(float* anchors_px_, float* anchors_py_, float* anchors_pz_, - float* anchors_dx_, float* anchors_dy_, float* anchors_dz_, float* anchors_ro_) +void PointPillars::generateAnchors(float* anchors_px_, float* anchors_py_, float* anchors_pz_, float* anchors_dx_, + float* anchors_dy_, float* anchors_dz_, float* anchors_ro_) { // zero clear for (size_t i = 0; i < NUM_ANCHOR_; i++) @@ -512,8 +510,10 @@ void PointPillars::preprocessCPU(const float* in_points_array, const int in_num_ void PointPillars::preprocessGPU(const float* in_points_array, const int in_num_points) { float* dev_points; + // clang-format off GPU_CHECK(cudaMalloc((void**)&dev_points, in_num_points * NUM_BOX_CORNERS_ * sizeof(float))); - GPU_CHECK(cudaMemcpy(dev_points, in_points_array, in_num_points * NUM_BOX_CORNERS_ * sizeof(float), cudaMemcpyHostToDevice)); + GPU_CHECK(cudaMemcpy(dev_points, in_points_array, in_num_points * NUM_BOX_CORNERS_ * sizeof(float), cudaMemcpyHostToDevice)); + // clang-format on GPU_CHECK(cudaMemset(dev_pillar_count_histo_, 0, GRID_Y_SIZE_ * GRID_X_SIZE_ * sizeof(int))); GPU_CHECK(cudaMemset(dev_sparse_pillar_map_, 0, NUM_INDS_FOR_SCAN_ * NUM_INDS_FOR_SCAN_ * sizeof(int))); @@ -577,11 +577,10 @@ void PointPillars::doInference(const float* in_points_array, const int in_num_po rpn_context_->enqueue(BATCH_SIZE_, rpn_buffers_, stream, nullptr); GPU_CHECK(cudaMemset(dev_filter_count_, 0, sizeof(int))); - postprocess_cuda_ptr_->doPostprocessCuda((float*)rpn_buffers_[1], (float*)rpn_buffers_[2], (float*)rpn_buffers_[3], - dev_anchor_mask_, dev_anchors_px_, dev_anchors_py_, dev_anchors_pz_, - dev_anchors_dx_, dev_anchors_dy_, dev_anchors_dz_, dev_anchors_ro_, - dev_filtered_box_, dev_filtered_score_, dev_filtered_dir_, dev_box_for_nms_, - dev_filter_count_, out_detection); + postprocess_cuda_ptr_->doPostprocessCuda( + (float*)rpn_buffers_[1], (float*)rpn_buffers_[2], (float*)rpn_buffers_[3], dev_anchor_mask_, dev_anchors_px_, + dev_anchors_py_, dev_anchors_pz_, dev_anchors_dx_, dev_anchors_dy_, dev_anchors_dz_, dev_anchors_ro_, + dev_filtered_box_, dev_filtered_score_, dev_filtered_dir_, dev_box_for_nms_, dev_filter_count_, out_detection); // release the stream and the buffers cudaStreamDestroy(stream); diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars_ros.cpp b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars_ros.cpp index 2d6c88907d2..93969a403a7 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars_ros.cpp +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars_ros.cpp @@ -68,12 +68,11 @@ geometry_msgs::Pose PointPillarsROS::getTransformedPose(const geometry_msgs::Pos return out_pose.pose; } -void PointPillarsROS::pubDetectedObject(const std::vector& detections, - const std_msgs::Header& pc_header) +void PointPillarsROS::pubDetectedObject(const std::vector& detections, const std_msgs::Header& pc_header) { autoware_msgs::DetectedObjectArray objects; objects.header = pc_header; - int num_objects = detections.size()/OUTPUT_NUM_BOX_FEATURE_; + int num_objects = detections.size() / OUTPUT_NUM_BOX_FEATURE_; for (size_t i = 0; i < num_objects; i++) { autoware_msgs::DetectedObject object; diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/test/src/test_point_pillars.cpp b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/test/src/test_point_pillars.cpp index 51a54579963..d0736414ef0 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/test/src/test_point_pillars.cpp +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/test/src/test_point_pillars.cpp @@ -71,7 +71,6 @@ class TestClass float* x_coors_for_sub_shaped, float* y_coors_for_sub_shaped, float* pillar_feature_mask, float* sparse_pillar_map, int* host_pillar_count); - private: std::unique_ptr preprocess_points_ptr_; }; @@ -137,7 +136,7 @@ void TestClass::initPoints(pcl::PointCloud::Ptr in_pcl_pc_ptr) point.x = 12.489; point.y = -9.59703; point.z = -2.15565; - point.intensity =11; + point.intensity = 11; in_pcl_pc_ptr->push_back(point); point.x = 12.9084; point.y = -10.9626; @@ -156,12 +155,12 @@ void TestClass::initPoints(pcl::PointCloud::Ptr in_pcl_pc_ptr) in_pcl_pc_ptr->push_back(point); point.x = 13.8213; point.y = -10.8529; - point.z =-1.22883; + point.z = -1.22883; point.intensity = 19; in_pcl_pc_ptr->push_back(point); point.x = 11.8957; point.y = -10.3189; - point.z =-1.28556; + point.z = -1.28556; point.intensity = 13; in_pcl_pc_ptr->push_back(point); } @@ -175,7 +174,6 @@ TEST(TestSuite, CheckPreprocessPointsCPU) std::string in_file = package_path + "/test/data/1527836009720148.pcd"; test_obj.initPoints(pcl_pc_ptr); - float* points_array = new float[pcl_pc_ptr->size() * 4]; test_obj.pclToArray(pcl_pc_ptr, points_array); From 7c75d4b4e61113d6fd2beba2a6d66f7ae48c634d Mon Sep 17 00:00:00 2001 From: Kosuke Murakami Date: Thu, 28 Feb 2019 11:52:44 +0900 Subject: [PATCH 031/139] refactor codes --- .../packages/lidar_point_pillars/CMakeLists.txt | 3 +-- .../packages/lidar_point_pillars/README.md | 13 ++++++++++++- .../lidar_point_pillars/nodes/point_pillars.cpp | 13 +++++-------- 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/CMakeLists.txt b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/CMakeLists.txt index b4c451a393b..1978f5f47eb 100755 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/CMakeLists.txt +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/CMakeLists.txt @@ -80,9 +80,8 @@ if(TRT_AVAIL AND CUDA_AVAIL) nodes/point_pillars.cpp nodes/preprocess_points.cpp ) - # Need ${catkin_LIBRARIES} because of #include for ROS_ERROR + target_link_libraries(point_pillars_lib - ${catkin_LIBRARIES} nvinfer nvonnxparser gpu_point_pillars_lib diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/README.md b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/README.md index ffae0b6c011..d20ad5b2bfc 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/README.md +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/README.md @@ -1,4 +1,4 @@ -# Point Pillars for 3D Object Detection +# Point Pillars for 3D Object Detection: ver. 1.0 Autoware package for Point Pillars. ([reference paper](https://arxiv.org/abs/1812.05784)) @@ -14,6 +14,17 @@ TensorRT : [How to install](https://docs.nvidia.com/deeplearning/sdk/tensorrt-in Using launch file: `roslaunch lidar_point_pillars lidar_point_pillars.launch pfe_onnx_file:=/PATH/TO/FILE.onnx rpn_onnx_file:=/PATH/TO/FILE.onnx input_topic:=/points_raw` +## API +``` +/** +* @brief Call PointPillars for the inference +* @param[in] in_points_array pointcloud array +* @param[in] in_num_points Number of points +* @param[in] out_detections Network output bounding box +* @details This is interface for the algorithm +*/ +void doInference(const float* in_points_array, const int in_num_points, std::vector& out_detection); +``` ## Parameters diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp index be307a5d68a..0c4293a95d3 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp @@ -18,9 +18,6 @@ #include #include -// headers in ROS -#include - // headers in local files #include "point_pillars.h" @@ -391,7 +388,7 @@ void PointPillars::initTRT() onnxToTRTModel(rpn_onnx_file_, rpn_trt_model_stream); if (pfe_trt_model_stream == nullptr || rpn_trt_model_stream == nullptr) { - ROS_ERROR("Failed to load %s or %s ", pfe_onnx_file_.c_str(), rpn_onnx_file_.c_str()); + std::cerr<< "Failed to load ONNX file " << std::endl; } // deserialize the engine @@ -399,7 +396,7 @@ void PointPillars::initTRT() rpn_runtime_ = nvinfer1::createInferRuntime(g_logger_); if (pfe_runtime_ == nullptr || rpn_runtime_ == nullptr) { - ROS_ERROR("Failed to create TensorRT Runtime object."); + std::cerr<<"Failed to create TensorRT Runtime object."<deserializeCudaEngine(pfe_trt_model_stream->data(), pfe_trt_model_stream->size(), nullptr); @@ -407,7 +404,7 @@ void PointPillars::initTRT() rpn_runtime_->deserializeCudaEngine(rpn_trt_model_stream->data(), rpn_trt_model_stream->size(), nullptr); if (pfe_engine_ == nullptr || rpn_engine_ == nullptr) { - ROS_ERROR("Failed to create TensorRT Engine."); + std::cerr << "Failed to create TensorRT Engine." << std::endl; } pfe_trt_model_stream->destroy(); rpn_trt_model_stream->destroy(); @@ -415,7 +412,7 @@ void PointPillars::initTRT() rpn_context_ = rpn_engine_->createExecutionContext(); if (pfe_context_ == nullptr || rpn_context_ == nullptr) { - ROS_ERROR("Failed to create TensorRT Execution Context."); + std::cerr << "Failed to create TensorRT Execution Context." << std::endl;; } } @@ -512,7 +509,7 @@ void PointPillars::preprocessGPU(const float* in_points_array, const int in_num_ float* dev_points; // clang-format off GPU_CHECK(cudaMalloc((void**)&dev_points, in_num_points * NUM_BOX_CORNERS_ * sizeof(float))); - GPU_CHECK(cudaMemcpy(dev_points, in_points_array, in_num_points * NUM_BOX_CORNERS_ * sizeof(float), cudaMemcpyHostToDevice)); + GPU_CHECK(cudaMemcpy(dev_points, in_points_array, in_num_points * NUM_BOX_CORNERS_ * sizeof(float), cudaMemcpyHostToDevice)); // clang-format on GPU_CHECK(cudaMemset(dev_pillar_count_histo_, 0, GRID_Y_SIZE_ * GRID_X_SIZE_ * sizeof(int))); From 338de2131ecc06787be06c05b71a4334c3cfd0bf Mon Sep 17 00:00:00 2001 From: Kosuke Murakami Date: Thu, 28 Feb 2019 12:09:43 +0900 Subject: [PATCH 032/139] remove cuda description in package.xml --- .../packages/lidar_point_pillars/CMakeLists.txt | 7 ++++--- .../packages/lidar_point_pillars/package.xml | 4 +--- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/CMakeLists.txt b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/CMakeLists.txt index 1978f5f47eb..1a832d99e8a 100755 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/CMakeLists.txt +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 2.8.3) project(lidar_point_pillars) -# set flags for CUDA and TensorRT availability +# set flags for CUDA availability option(CUDA_AVAIL "CUDA available" OFF) find_package(CUDA) if (CUDA_FOUND) @@ -14,8 +14,9 @@ else() set(CUDA_AVAIL OFF) endif (CUDA_FOUND) -# try to find the tensorRT modules +# set flags for TensorRT availability option(TRT_AVAIL "TensorRT available" OFF) +# try to find the tensorRT modules find_library(NVINFER NAMES nvinfer) find_library(NVPARSERS NAMES nvparsers) if(NVINFER AND NVPARSERS) @@ -80,7 +81,7 @@ if(TRT_AVAIL AND CUDA_AVAIL) nodes/point_pillars.cpp nodes/preprocess_points.cpp ) - + target_link_libraries(point_pillars_lib nvinfer nvonnxparser diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/package.xml b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/package.xml index 2c79d3dbb70..082e644fa5d 100755 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/package.xml +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/package.xml @@ -5,19 +5,17 @@ lidar_point_pillars Kosuke Murakami - BSD + Apache 2.0 catkin roscpp pcl_ros - cuda-toolkit-10-0 autoware_msgs roscpp pcl_ros - cuda-toolkit-10-0 autoware_msgs From 0b0f8cf047480df27accacc1c54acb7f0f360b53 Mon Sep 17 00:00:00 2001 From: Kosuke Murakami Date: Thu, 28 Feb 2019 12:10:09 +0900 Subject: [PATCH 033/139] Add specific version for TensorRT in README.md --- .../packages/lidar_point_pillars/README.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/README.md b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/README.md index d20ad5b2bfc..e105af0d2a6 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/README.md +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/README.md @@ -2,11 +2,12 @@ Autoware package for Point Pillars. ([reference paper](https://arxiv.org/abs/1812.05784)) -## Pre requisites +## Requirements CUDA Toolkit v9.0 or 10.0 -TensorRT : [How to install](https://docs.nvidia.com/deeplearning/sdk/tensorrt-install-guide/index.html#installing) +TensorRT: Tested with 5.0.2 -> [How to install](https://docs.nvidia.com/deeplearning/sdk/tensorrt-install-guide/index.html#installing) + ## How to launch @@ -17,11 +18,11 @@ Using launch file: ## API ``` /** -* @brief Call PointPillars for the inference +* @brief Call PointPillars for the inference. * @param[in] in_points_array pointcloud array * @param[in] in_num_points Number of points -* @param[in] out_detections Network output bounding box -* @details This is interface for the algorithm +* @param[in] out_detections Output bounding box from the network +* @details This is an interface for the algorithm. */ void doInference(const float* in_points_array, const int in_num_points, std::vector& out_detection); ``` From 7881cbb8423c21d7236767046c0e4673dc34b190 Mon Sep 17 00:00:00 2001 From: Kosuke Murakami Date: Thu, 28 Feb 2019 12:18:39 +0900 Subject: [PATCH 034/139] update readme --- .../packages/lidar_point_pillars/README.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/README.md b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/README.md index e105af0d2a6..ff08e3108e8 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/README.md +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/README.md @@ -1,10 +1,10 @@ # Point Pillars for 3D Object Detection: ver. 1.0 -Autoware package for Point Pillars. ([reference paper](https://arxiv.org/abs/1812.05784)) +Autoware package for Point Pillars. [Referenced paper](https://arxiv.org/abs/1812.05784). ## Requirements -CUDA Toolkit v9.0 or 10.0 +CUDA Toolkit v9.0 or v10.0 TensorRT: Tested with 5.0.2 -> [How to install](https://docs.nvidia.com/deeplearning/sdk/tensorrt-install-guide/index.html#installing) @@ -12,19 +12,21 @@ TensorRT: Tested with 5.0.2 -> [How to install](https://docs.nvidia.com/deeplear ## How to launch -Using launch file: +* Launch file: `roslaunch lidar_point_pillars lidar_point_pillars.launch pfe_onnx_file:=/PATH/TO/FILE.onnx rpn_onnx_file:=/PATH/TO/FILE.onnx input_topic:=/points_raw` +* You can launch it through the runtime manager in Computing tab, as well. + ## API ``` /** * @brief Call PointPillars for the inference. * @param[in] in_points_array pointcloud array * @param[in] in_num_points Number of points -* @param[in] out_detections Output bounding box from the network +* @param[out] out_detections Output bounding box from the network * @details This is an interface for the algorithm. */ -void doInference(const float* in_points_array, const int in_num_points, std::vector& out_detection); +void doInference(float* in_points_array, int in_num_points, std::vector out_detection); ``` ## Parameters @@ -50,6 +52,6 @@ void doInference(const float* in_points_array, const int in_num_points, std::vec * To display the results in Rviz `objects_visualizer` is required. (Launch file launches automatically this node). -* Pre trained models can be downloaded from the [github repository](https://github.com/cirpue49/kitti_pretrained_pp).Notice that this model is under `BY-NC-SA 3.0` license. +* Pre trained models can be downloaded from the [github repository](https://github.com/cirpue49/kitti_pretrained_pp). Notice that this model is under `BY-NC-SA 3.0` license. -* If trained model comes from KITTI data, users might not be allowed to use the model for Commercial purpose. +* If trained model comes from KITTI data, users might not be allowed to use the model for commercial purposes. From e70f51f9c7d465e2006f27a21f39d6c2434d5ffa Mon Sep 17 00:00:00 2001 From: Kosuke Murakami Date: Thu, 28 Feb 2019 12:46:12 +0900 Subject: [PATCH 035/139] refactor codes --- .../include/point_pillars_ros.h | 4 +-- .../nodes/point_pillars.cpp | 33 ++++++++++--------- .../nodes/point_pillars_ros.cpp | 9 +++-- 3 files changed, 26 insertions(+), 20 deletions(-) diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars_ros.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars_ros.h index 4aa50f3160d..c190fb56a97 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars_ros.h +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars_ros.h @@ -119,10 +119,10 @@ class PointPillarsROS /** * @brief publish DetectedObject * @param[in] detections Network output bounding box - * @param[in] pc_header Header from pointcloud + * @param[in] in_header Header from pointcloud * @details Convert std::vector to DetectedObject, and publish them */ - void pubDetectedObject(const std::vector& detections, const std_msgs::Header& pc_header); + void pubDetectedObject(const std::vector& detections, const std_msgs::Header& in_header); public: PointPillarsROS(); diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp index 0c4293a95d3..24ce3b021a7 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp @@ -21,6 +21,7 @@ // headers in local files #include "point_pillars.h" +// clang-format off PointPillars::PointPillars(const bool reproduce_result_mode, const float score_threshold, const float nms_overlap_threshold, const std::string pfe_onnx_file, const std::string rpn_onnx_file) @@ -54,27 +55,14 @@ PointPillars::PointPillars(const bool reproduce_result_mode, const float score_t , MAX_Z_RANGE_(1) , BATCH_SIZE_(1) , NUM_INDS_FOR_SCAN_(512) - , NUM_THREADS_(64) - , // if you chancge NUM_THREADS_, need to modify nms_kernel's shared mempry size - SENSOR_HEIGHT_(1.73) + , NUM_THREADS_(64) // if you chancge NUM_THREADS_, need to modify nms_kernel's shared mempry size + , SENSOR_HEIGHT_(1.73) , ANCHOR_DX_SIZE_(1.6) , ANCHOR_DY_SIZE_(3.9) , ANCHOR_DZ_SIZE_(1.56) , NUM_BOX_CORNERS_(4) , NUM_OUTPUT_BOX_FEATURE_(7) { - anchors_px_ = new float[NUM_ANCHOR_]; - anchors_py_ = new float[NUM_ANCHOR_]; - anchors_pz_ = new float[NUM_ANCHOR_]; - anchors_dx_ = new float[NUM_ANCHOR_]; - anchors_dy_ = new float[NUM_ANCHOR_]; - anchors_dz_ = new float[NUM_ANCHOR_]; - anchors_ro_ = new float[NUM_ANCHOR_]; - box_anchors_min_x_ = new float[NUM_ANCHOR_]; - box_anchors_min_y_ = new float[NUM_ANCHOR_]; - box_anchors_max_x_ = new float[NUM_ANCHOR_]; - box_anchors_max_y_ = new float[NUM_ANCHOR_]; - if (reproduce_result_mode_) { preprocess_points_ptr_.reset(new PreprocessPoints(MAX_NUM_PILLARS_, MAX_NUM_POINTS_PER_PILLAR_, GRID_X_SIZE_, @@ -105,6 +93,7 @@ PointPillars::PointPillars(const bool reproduce_result_mode, const float score_t initTRT(); initAnchors(); } +// clang-format on PointPillars::~PointPillars() { @@ -262,6 +251,20 @@ void PointPillars::deviceMemoryMalloc() void PointPillars::initAnchors() { + // allocate memory for anchors + anchors_px_ = new float[NUM_ANCHOR_]; + anchors_py_ = new float[NUM_ANCHOR_]; + anchors_pz_ = new float[NUM_ANCHOR_]; + anchors_dx_ = new float[NUM_ANCHOR_]; + anchors_dy_ = new float[NUM_ANCHOR_]; + anchors_dz_ = new float[NUM_ANCHOR_]; + anchors_ro_ = new float[NUM_ANCHOR_]; + box_anchors_min_x_ = new float[NUM_ANCHOR_]; + box_anchors_min_y_ = new float[NUM_ANCHOR_]; + box_anchors_max_x_ = new float[NUM_ANCHOR_]; + box_anchors_max_y_ = new float[NUM_ANCHOR_]; + // deallocate these memory in deconstructor + generateAnchors(anchors_px_, anchors_py_, anchors_pz_, anchors_dx_, anchors_dy_, anchors_dz_, anchors_ro_); convertAnchors2BoxAnchors(anchors_px_, anchors_py_, anchors_dx_, anchors_dy_, box_anchors_min_x_, box_anchors_min_y_, diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars_ros.cpp b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars_ros.cpp index 93969a403a7..def9759cf7c 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars_ros.cpp +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars_ros.cpp @@ -39,7 +39,10 @@ PointPillarsROS::PointPillarsROS() , NORMALIZING_INTENSITY_VALUE_(255.0) , BASELINK_FRAME_("base_link") { + //ros related param private_nh_.param("baselink_support", baselink_support_, true); + + //algorithm related params private_nh_.param("reproduce_result_mode", reproduce_result_mode_, false); private_nh_.param("score_threshold", score_threshold_, 0.5); private_nh_.param("nms_overlap_threshold", nms_overlap_threshold_, 0.5); @@ -68,15 +71,15 @@ geometry_msgs::Pose PointPillarsROS::getTransformedPose(const geometry_msgs::Pos return out_pose.pose; } -void PointPillarsROS::pubDetectedObject(const std::vector& detections, const std_msgs::Header& pc_header) +void PointPillarsROS::pubDetectedObject(const std::vector& detections, const std_msgs::Header& in_header) { autoware_msgs::DetectedObjectArray objects; - objects.header = pc_header; + objects.header = in_header; int num_objects = detections.size() / OUTPUT_NUM_BOX_FEATURE_; for (size_t i = 0; i < num_objects; i++) { autoware_msgs::DetectedObject object; - object.header = pc_header; + object.header = in_header; object.valid = true; object.pose_reliable = true; From 8e6da539dd4680dd9debed8592e50c299fd4125a Mon Sep 17 00:00:00 2001 From: Kosuke Murakami Date: Thu, 28 Feb 2019 13:22:10 +0900 Subject: [PATCH 036/139] add empty package declaration when not finding cuda/tensorrt --- .../lidar_detector/packages/lidar_point_pillars/CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/CMakeLists.txt b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/CMakeLists.txt index 1a832d99e8a..ef411001240 100755 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/CMakeLists.txt +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/CMakeLists.txt @@ -24,7 +24,6 @@ if(NVINFER AND NVPARSERS) message("NVINFER: ${NVINFER}") message("NVPARSERS: ${NVPARSERS}") set(TRT_AVAIL ON) - add_definitions(-DTRT_AVAIL) else() message("TensorRT is NOT Available") set(TRT_AVAIL OFF) @@ -116,5 +115,7 @@ if(TRT_AVAIL AND CUDA_AVAIL) target_link_libraries(test-point_pillars ${catkin_LIBRARIES} point_pillars_lib) endif() ELSE() + find_package(catkin REQUIRED) + catkin_package() message("PointPillars won't be built, CUDA and/or TensorRT were not found.") ENDIF () From a6b23413b79a73d748bd9c54ac24b1eec219901f Mon Sep 17 00:00:00 2001 From: Kosuke Murakami Date: Thu, 28 Feb 2019 14:39:22 +0900 Subject: [PATCH 037/139] add more tests --- .../include/point_pillars.h | 1 + .../test/src/test_point_pillars.cpp | 185 +++++++++++++++++- 2 files changed, 183 insertions(+), 3 deletions(-) diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars.h index 735b80e36b4..983c785c618 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars.h +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars.h @@ -86,6 +86,7 @@ class Logger : public nvinfer1::ILogger class PointPillars { private: + friend class TestClass; // initize in initializer list const bool reproduce_result_mode_; const float score_threshold_; diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/test/src/test_point_pillars.cpp b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/test/src/test_point_pillars.cpp index d0736414ef0..d42fa7d7c44 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/test/src/test_point_pillars.cpp +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/test/src/test_point_pillars.cpp @@ -70,9 +70,15 @@ class TestClass float* num_points_per_pillar, float* pillar_x, float* pillar_y, float* pillar_z, float* pillar_i, float* x_coors_for_sub_shaped, float* y_coors_for_sub_shaped, float* pillar_feature_mask, float* sparse_pillar_map, int* host_pillar_count); + void generateAnchors(float* anchors_px, float* anchors_py, float* anchors_pz, float* anchors_dx, + float* anchors_dy, float* anchors_dz, float* anchors_ro); + void convertAnchors2BoxAnchors(float* anchors_px, float* anchors_py, float* anchors_dx, float* anchors_dy, + float* box_anchors_min_x, float* box_anchors_min_y, + float* box_anchors_max_x, float* box_anchors_max_y); private: std::unique_ptr preprocess_points_ptr_; + std::unique_ptr point_pillars_ptr_; }; TestClass::TestClass(const int MAX_NUM_PILLARS, const int MAX_NUM_POINTS_PER_PILLAR, const int GRID_X_SIZE, @@ -96,6 +102,18 @@ TestClass::TestClass(const int MAX_NUM_PILLARS, const int MAX_NUM_POINTS_PER_PIL preprocess_points_ptr_.reset(new PreprocessPoints( MAX_NUM_PILLARS_, MAX_NUM_POINTS_PER_PILLAR_, GRID_X_SIZE_, GRID_Y_SIZE_, GRID_Z_SIZE_, PILLAR_X_SIZE_, PILLAR_Y_SIZE_, PILLAR_Z_SIZE_, MIN_X_RANGE_, MIN_Y_RANGE_, MIN_Z_RANGE_, NUM_INDS_FOR_SCAN_, NUM_BOX_CORNERS_)); + + bool baselink_support=true; + bool reproduce_result_mode=false; + float score_threshold = 0.5; + float nms_overlap_threshold = 0.5; + std::string package_path = ros::package::getPath("lidar_point_pillars"); + std::string onnx_path = package_path + "/test/data/dummy.onnx"; + std::string pfe_onnx_file = onnx_path; + std::string rpn_onnx_file = onnx_path; + + point_pillars_ptr_.reset(new PointPillars(reproduce_result_mode, score_threshold, nms_overlap_threshold, + pfe_onnx_file, rpn_onnx_file)); }; void TestClass::preprocess(const float* in_points_array, int in_num_points, int* x_coors, int* y_coors, @@ -165,13 +183,52 @@ void TestClass::initPoints(pcl::PointCloud::Ptr in_pcl_pc_ptr) in_pcl_pc_ptr->push_back(point); } +void TestClass::generateAnchors(float* anchors_px, float* anchors_py, float* anchors_pz, float* anchors_dx, + float* anchors_dy, float* anchors_dz, float* anchors_ro) +{ + return point_pillars_ptr_->generateAnchors(anchors_px, anchors_py, anchors_pz, anchors_dx, + anchors_dy, anchors_dz, anchors_ro); +} + +void TestClass::convertAnchors2BoxAnchors(float* anchors_px, float* anchors_py, float* anchors_dx, float* anchors_dy, + float* box_anchors_min_x, float* box_anchors_min_y, + float* box_anchors_max_x, float* box_anchors_max_y) +{ + return point_pillars_ptr_->convertAnchors2BoxAnchors(anchors_px, anchors_py, anchors_dx, anchors_dy, + box_anchors_min_x, box_anchors_min_y, + box_anchors_max_x, box_anchors_max_y); +} + TEST(TestSuite, CheckPreprocessPointsCPU) { - TestClass test_obj(12000, 100, 432, 496, 1, 0.16, 0.16, 4.0, 0, -39.68, -3.0, 512, 4); + const int MAX_NUM_PILLARS = 12000; + const int MAX_NUM_POINTS_PER_PILLAR = 100; + const int GRID_X_SIZE = 432; + const int GRID_Y_SIZE = 496; + const int GRID_Z_SIZE = 1; + const float PILLAR_X_SIZE = 0.16; + const float PILLAR_Y_SIZE = 0.16; + const float PILLAR_Z_SIZE = 4.0; + const float MIN_X_RANGE = 0; + const float MIN_Y_RANGE = -39.68; + const float MIN_Z_RANGE = -3.0; + const int NUM_INDS_FOR_SCAN = 512; + const int NUM_BOX_CORNERS = 4; + TestClass test_obj(MAX_NUM_PILLARS, + MAX_NUM_POINTS_PER_PILLAR, + GRID_X_SIZE, + GRID_Y_SIZE, + GRID_Z_SIZE, + PILLAR_X_SIZE, + PILLAR_Y_SIZE, + PILLAR_Z_SIZE, + MIN_X_RANGE, + MIN_Y_RANGE, + MIN_Z_RANGE, + NUM_INDS_FOR_SCAN, + NUM_BOX_CORNERS); pcl::PointCloud::Ptr pcl_pc_ptr(new pcl::PointCloud); - std::string package_path = ros::package::getPath("lidar_point_pillars"); - std::string in_file = package_path + "/test/data/1527836009720148.pcd"; test_obj.initPoints(pcl_pc_ptr); float* points_array = new float[pcl_pc_ptr->size() * 4]; @@ -212,6 +269,128 @@ TEST(TestSuite, CheckPreprocessPointsCPU) delete[] sparse_pillar_map; } +TEST(TestSuite, CheckGenerateAnchors) +{ + const int MAX_NUM_PILLARS = 12000; + const int MAX_NUM_POINTS_PER_PILLAR = 100; + const int GRID_X_SIZE = 432; + const int GRID_Y_SIZE = 496; + const int GRID_Z_SIZE = 1; + const float PILLAR_X_SIZE = 0.16; + const float PILLAR_Y_SIZE = 0.16; + const float PILLAR_Z_SIZE = 4.0; + const float MIN_X_RANGE = 0; + const float MIN_Y_RANGE = -39.68; + const float MIN_Z_RANGE = -3.0; + const int NUM_INDS_FOR_SCAN = 512; + const int NUM_BOX_CORNERS = 4; + TestClass test_obj(MAX_NUM_PILLARS, + MAX_NUM_POINTS_PER_PILLAR, + GRID_X_SIZE, + GRID_Y_SIZE, + GRID_Z_SIZE, + PILLAR_X_SIZE, + PILLAR_Y_SIZE, + PILLAR_Z_SIZE, + MIN_X_RANGE, + MIN_Y_RANGE, + MIN_Z_RANGE, + NUM_INDS_FOR_SCAN, + NUM_BOX_CORNERS); + + const int NUM_ANCHOR = 432*0.5*496*0.5*2; + float* anchors_px = new float[NUM_ANCHOR]; + float* anchors_py = new float[NUM_ANCHOR]; + float* anchors_pz = new float[NUM_ANCHOR]; + float* anchors_dx = new float[NUM_ANCHOR]; + float* anchors_dy = new float[NUM_ANCHOR]; + float* anchors_dz = new float[NUM_ANCHOR]; + float* anchors_ro = new float[NUM_ANCHOR]; + test_obj.generateAnchors(anchors_px, anchors_py, anchors_pz, anchors_dx, anchors_dy, anchors_dz, anchors_ro); + + EXPECT_NEAR(0.48, anchors_px[3], 0.001); + EXPECT_NEAR(-39.52, anchors_py[109], 0.001); + EXPECT_NEAR(-1.73, anchors_pz[76], 0.001); + EXPECT_NEAR(1.6, anchors_dx[338], 0.001); + EXPECT_NEAR(3.9, anchors_dy[22], 0.001); + EXPECT_NEAR(1.56, anchors_dz[993], 0.001); + EXPECT_NEAR(1.5708, anchors_ro[1765], 0.001); + + delete[] anchors_px; + delete[] anchors_py; + delete[] anchors_pz; + delete[] anchors_dx; + delete[] anchors_dy; + delete[] anchors_dz; + delete[] anchors_ro; +} + +TEST(TestSuite, CheckGenerateBoxAnchors) +{ + const int MAX_NUM_PILLARS = 12000; + const int MAX_NUM_POINTS_PER_PILLAR = 100; + const int GRID_X_SIZE = 432; + const int GRID_Y_SIZE = 496; + const int GRID_Z_SIZE = 1; + const float PILLAR_X_SIZE = 0.16; + const float PILLAR_Y_SIZE = 0.16; + const float PILLAR_Z_SIZE = 4.0; + const float MIN_X_RANGE = 0; + const float MIN_Y_RANGE = -39.68; + const float MIN_Z_RANGE = -3.0; + const int NUM_INDS_FOR_SCAN = 512; + const int NUM_BOX_CORNERS = 4; + TestClass test_obj(MAX_NUM_PILLARS, + MAX_NUM_POINTS_PER_PILLAR, + GRID_X_SIZE, + GRID_Y_SIZE, + GRID_Z_SIZE, + PILLAR_X_SIZE, + PILLAR_Y_SIZE, + PILLAR_Z_SIZE, + MIN_X_RANGE, + MIN_Y_RANGE, + MIN_Z_RANGE, + NUM_INDS_FOR_SCAN, + NUM_BOX_CORNERS); + + const int NUM_ANCHOR = 432*0.5*496*0.5*2; + + float* anchors_px = new float[NUM_ANCHOR]; + float* anchors_py = new float[NUM_ANCHOR]; + float* anchors_pz = new float[NUM_ANCHOR]; + float* anchors_dx = new float[NUM_ANCHOR]; + float* anchors_dy = new float[NUM_ANCHOR]; + float* anchors_dz = new float[NUM_ANCHOR]; + float* anchors_ro = new float[NUM_ANCHOR]; + float* box_anchors_min_x = new float[NUM_ANCHOR]; + float* box_anchors_min_y = new float[NUM_ANCHOR]; + float* box_anchors_max_x = new float[NUM_ANCHOR]; + float* box_anchors_max_y = new float[NUM_ANCHOR]; + test_obj.generateAnchors(anchors_px, anchors_py, anchors_pz, anchors_dx, anchors_dy, anchors_dz, anchors_ro); + test_obj.convertAnchors2BoxAnchors(anchors_px, anchors_py, anchors_dx, anchors_dy, + box_anchors_min_x, box_anchors_min_y, + box_anchors_max_x, box_anchors_max_y); + + EXPECT_NEAR(53.25, box_anchors_min_x[345], 0.001); + EXPECT_NEAR(-41.47, box_anchors_min_y[22], 0.001); + EXPECT_NEAR(38.4, box_anchors_max_x[1098], 0.001); + EXPECT_NEAR(-38.4, box_anchors_max_y[675], 0.001); + + + delete[] anchors_px; + delete[] anchors_py; + delete[] anchors_pz; + delete[] anchors_dx; + delete[] anchors_dy; + delete[] anchors_dz; + delete[] anchors_ro; + delete[] box_anchors_min_x; + delete[] box_anchors_min_y; + delete[] box_anchors_max_x; + delete[] box_anchors_max_y; +} + int main(int argc, char** argv) { testing::InitGoogleTest(&argc, argv); From 8ee723b46ecf0549e68f4456d03fd434755ad85d Mon Sep 17 00:00:00 2001 From: Kosuke Murakami Date: Thu, 28 Feb 2019 18:07:38 +0900 Subject: [PATCH 038/139] Update README.md --- .../lidar_detector/packages/lidar_point_pillars/README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/README.md b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/README.md index ff08e3108e8..447cf5ca13c 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/README.md +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/README.md @@ -52,6 +52,4 @@ void doInference(float* in_points_array, int in_num_points, std::vector o * To display the results in Rviz `objects_visualizer` is required. (Launch file launches automatically this node). -* Pre trained models can be downloaded from the [github repository](https://github.com/cirpue49/kitti_pretrained_pp). Notice that this model is under `BY-NC-SA 3.0` license. - -* If trained model comes from KITTI data, users might not be allowed to use the model for commercial purposes. +* Pretrained models are available [here](https://github.com/cirpue49/kitti_pretrained_pp), trained with the help of the KITTI dataset. For this reason, these are not suitable for commercial purposes. Derivative works are bound to the BY-NC-SA 3.0 License. (https://creativecommons.org/licenses/by-nc-sa/3.0/) From ebf1dd843de783cd196555287ffd488a9f0fe124 Mon Sep 17 00:00:00 2001 From: Kosuke Murakami Date: Thu, 28 Feb 2019 18:53:15 +0900 Subject: [PATCH 039/139] refactor codes --- .../packages/lidar_point_pillars/README.md | 12 ++++++------ .../lidar_point_pillars/include/point_pillars.h | 2 +- .../lidar_point_pillars/nodes/point_pillars.cpp | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/README.md b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/README.md index 447cf5ca13c..ddca50651f5 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/README.md +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/README.md @@ -26,18 +26,18 @@ TensorRT: Tested with 5.0.2 -> [How to install](https://docs.nvidia.com/deeplear * @param[out] out_detections Output bounding box from the network * @details This is an interface for the algorithm. */ -void doInference(float* in_points_array, int in_num_points, std::vector out_detection); +void doInference(float* in_points_array, int in_num_points, std::vector out_detections); ``` ## Parameters |Parameter| Type| Description|Default| ----------|-----|--------|----| -|`input_topic`|*String*|Input topic Pointcloud. Default.|`/points_raw`| -|`baselink_support`|*Bool*|Whether to use baselink to adjust parameters. Default.|`True`| -|`reproduce_result_mode`|*Bool*|Whether to enable reproducible result mode at the cost of the runtime. Default.|`False`| -|`score_threshold`|*Float*|Minimum score required to include the result (0.1)|0.5| -|`nms_overlap_threshold`|*Float*|Minimum IOU required to have when applying NMS (0.1)|0.5| +|`input_topic`|*String*|Input topic Pointcloud. |`/points_raw`| +|`baselink_support`|*Bool*|Whether to use baselink to adjust parameters. |`True`| +|`reproduce_result_mode`|*Bool*|Whether to enable reproducible result mode at the cost of the runtime. |`False`| +|`score_threshold`|*Float*|Minimum score required to include the result [0,1]|0.5| +|`nms_overlap_threshold`|*Float*|Minimum IOU required to have when applying NMS [0,1]|0.5| |`pfe_onnx_file`|*String* |Path to the PFE onnx file|| |`rpn_onnx_file`|*String* |Path to the RPN onnx file|| diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars.h index 983c785c618..7945df61354 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars.h +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars.h @@ -310,7 +310,7 @@ class PointPillars * @param[in] out_detections Network output bounding box * @details This is interface for the algorithm */ - void doInference(const float* in_points_array, const int in_num_points, std::vector& out_detection); + void doInference(const float* in_points_array, const int in_num_points, std::vector& out_detections); }; #endif // POINTS_PILLAR_H diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp index 24ce3b021a7..35beffa4bb0 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp @@ -546,7 +546,7 @@ void PointPillars::preprocess(const float* in_points_array, const int in_num_poi } } -void PointPillars::doInference(const float* in_points_array, const int in_num_points, std::vector& out_detection) +void PointPillars::doInference(const float* in_points_array, const int in_num_points, std::vector& out_detections) { preprocess(in_points_array, in_num_points); @@ -580,7 +580,7 @@ void PointPillars::doInference(const float* in_points_array, const int in_num_po postprocess_cuda_ptr_->doPostprocessCuda( (float*)rpn_buffers_[1], (float*)rpn_buffers_[2], (float*)rpn_buffers_[3], dev_anchor_mask_, dev_anchors_px_, dev_anchors_py_, dev_anchors_pz_, dev_anchors_dx_, dev_anchors_dy_, dev_anchors_dz_, dev_anchors_ro_, - dev_filtered_box_, dev_filtered_score_, dev_filtered_dir_, dev_box_for_nms_, dev_filter_count_, out_detection); + dev_filtered_box_, dev_filtered_score_, dev_filtered_dir_, dev_box_for_nms_, dev_filter_count_, out_detections); // release the stream and the buffers cudaStreamDestroy(stream); From bc55cf60507772fe1215a58a8a242bfea4435e9a Mon Sep 17 00:00:00 2001 From: Kosuke Murakami Date: Thu, 28 Feb 2019 19:02:03 +0900 Subject: [PATCH 040/139] refactor codes --- .../packages/lidar_point_pillars/nodes/point_pillars.cpp | 6 +++--- .../lidar_point_pillars/nodes/preprocess_points_cuda.cu | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp index 35beffa4bb0..a202a0b2e14 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp @@ -55,7 +55,7 @@ PointPillars::PointPillars(const bool reproduce_result_mode, const float score_t , MAX_Z_RANGE_(1) , BATCH_SIZE_(1) , NUM_INDS_FOR_SCAN_(512) - , NUM_THREADS_(64) // if you chancge NUM_THREADS_, need to modify nms_kernel's shared mempry size + , NUM_THREADS_(64) // if you change NUM_THREADS_, need to modify nms_kernel's shared memory size , SENSOR_HEIGHT_(1.73) , ANCHOR_DX_SIZE_(1.6) , ANCHOR_DY_SIZE_(3.9) @@ -352,7 +352,7 @@ void PointPillars::convertAnchors2BoxAnchors(float* anchors_px, float* anchors_p float* box_anchors_min_x_, float* box_anchors_min_y_, float* box_anchors_max_x_, float* box_anchors_max_y_) { - // flip box's dimension when the at the third axis == 1 + // flip box's dimension when the third axis == 1 float flipped_anchors_dx[NUM_ANCHOR_] = { 0 }; float flipped_anchors_dy[NUM_ANCHOR_] = { 0 }; for (size_t x = 0; x < NUM_ANCHOR_X_INDS_; x++) @@ -390,7 +390,7 @@ void PointPillars::initTRT() onnxToTRTModel(pfe_onnx_file_, pfe_trt_model_stream); onnxToTRTModel(rpn_onnx_file_, rpn_trt_model_stream); if (pfe_trt_model_stream == nullptr || rpn_trt_model_stream == nullptr) - { + {//use std:cerr instead of ROS_ERROR because want to keep this fille ros-agnostics std::cerr<< "Failed to load ONNX file " << std::endl; } diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/preprocess_points_cuda.cu b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/preprocess_points_cuda.cu index 0ee9bba397e..c175ac36b3e 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/preprocess_points_cuda.cu +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/preprocess_points_cuda.cu @@ -107,7 +107,7 @@ __global__ void make_pillar_index_kernel( dev_x_coors[count] = x; dev_y_coors[count] = y; - //TODO Need to be modified after making properly training model + //TODO Need to be modified after making properly trained model // x_offset = self.vx / 2 + pc_range[0] // y_offset = self.vy / 2 + pc_range[1] // x_sub = coors_x.unsqueeze(1) * 0.16 + x_offset From 33a24c6e7cf8e4489a59b98c208780af5432448d Mon Sep 17 00:00:00 2001 From: Isamu Takagi Date: Fri, 1 Mar 2019 17:29:21 +0900 Subject: [PATCH 041/139] Add plugin edit tool and update plugins --- .../src/autoware_launcher/tool/editor.py | 163 ++++++++++++++++-- 1 file changed, 146 insertions(+), 17 deletions(-) diff --git a/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py b/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py index c06d4c38785..c691b1543a6 100644 --- a/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py +++ b/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py @@ -1,28 +1,157 @@ -#import xml.etree.ElementTree as xmltree - -import rospkg +from autoware_launcher.core import plugin +from autoware_launcher.core import myutils from python_qt_binding import QtCore from python_qt_binding import QtWidgets +import argparse +import collections +import re +import rospkg +import yaml +import xml.etree.ElementTree as xtree + + +def represent_ordered_dict(dumper, instance): + return dumper.represent_mapping('tag:yaml.org,2002:map', instance.items()) +yaml.add_representer(collections.OrderedDict, represent_ordered_dict) + def main(sys_argv): + if len(sys_argv) < 2: + print("missing plugin file path") + return 2 application = QtWidgets.QApplication(sys_argv) + widget = PluginEditWidget() + ynode = plugin.AwPluginNode(None, sys_argv[1]) + ynode.load(myutils.package("plugins")) + xnode = load_launch_xml(ynode.rosxml()) + + fields = [PluginEditField(child.attrib) for child in xnode if child.tag == "arg"] + for field in fields: widget.add_field(field) + widget.add_button() + for field in ynode.args(): widget.set_yaml(field) - rospack = rospkg.RosPack() - combo = QtWidgets.QComboBox() - for package in sorted(rospack.list()): - combo.addItem(package) - combo.setEditable(True) - combo.setCurrentIndex(combo.findText("autoware_launcher")) - - widget = QtWidgets.QWidget() - widget.setLayout(QtWidgets.QHBoxLayout()) - widget.layout().addWidget(QtWidgets.QLabel("Package")) - widget.layout().addWidget(combo) - widget.layout().addWidget(QtWidgets.QLabel("File")) - widget.layout().addWidget(QtWidgets.QLineEdit()) - widget.layout().addWidget(QtWidgets.QPushButton()) widget.show() return application.exec_() + + +def load_launch_xml(rosxml): + + rospack = rospkg.RosPack() + regex = re.compile("\$\(find (.*?)\)") + match = regex.match(rosxml) + xpath = regex.sub(rospack.get_path(match.group(1)), rosxml) + return xtree.parse(xpath).getroot() + + +class PluginEditWidget(QtWidgets.QWidget): + + header = ["Field Name", "Field Type", "Array Type", "Default Value"] + + def __init__(self): + + super(PluginEditWidget, self).__init__() + self.fields = collections.OrderedDict() + self.setLayout(QtWidgets.QGridLayout()) + for col,text in enumerate(PluginEditWidget.header): + self.layout().addWidget(QtWidgets.QLabel(text), 0, col) + self.export = QtWidgets.QPushButton("Export") + self.export.clicked.connect(self.export_yaml) + + def add_field(self, field): + + row = self.layout().rowCount() + self.layout().addWidget(field.name, row, 0) + self.layout().addWidget(field.type, row, 1) + self.layout().addWidget(field.list, row, 2) + self.layout().addWidget(field.default, row, 3) + self.fields[field.name.text()] = field + + def add_button(self): + + row = self.layout().rowCount() + self.layout().addWidget(self.export, row, 0, 1, 4) + + def set_yaml(self, data): + + self.fields[data.name].set_yaml(data) + + def export_yaml(self): + + views = [field.export_view() for field in self.fields.values()] + fields = [field.export_dict() for field in self.fields.values()] + data = collections.OrderedDict() + data["args"] = fields + data["panel"] = collections.OrderedDict() + data["panel"]["widget"] = "node.panel" + data["panel"]["frames"] = views + text = yaml.dump(data, default_flow_style=None) + print text + clipboard = QtWidgets.QApplication.clipboard() + clipboard.setText(text) + + +class PluginEditField(object): + + viewtypes = {"str":"text", "int":"int", "real":"real", "bool":"bool"} + + def __init__(self, attr): + + self.name = QtWidgets.QLabel() + self.type = QtWidgets.QComboBox() + self.list = QtWidgets.QComboBox() + self.default = QtWidgets.QLineEdit() + + self.name.setText(attr["name"]) + self.type.addItems(["str", "int", "real", "bool"]) + self.list.addItems(["none", "space", "yaml"]) + self.default.setText(attr.get("default")) + + self.type.setCurrentIndex(-1) + if attr.get("default"): + itype = self.type_inference(attr["default"]) + self.type.setCurrentIndex(self.type.findText(itype)) + + def type_inference(self, value): + + if value.lower() in ["true", "false"]: return "bool" + if value.isdigit(): return "int" + if value.replace('.','',1).isdigit(): return "real" + return "str" + + def set_yaml(self, data): + + self.type.setCurrentIndex(self.type.findText(data.type)) + if data.list: + self.list.setCurrentIndex(self.list.findText(data.list)) + if data.rest.get("default"): + self.default.setText(str(data.rest["default"])) + + def export_dict(self): + + data = collections.OrderedDict() + data["name"] = str(self.name.text()) + data["type"] = str(self.type.currentText()) + if self.list.currentText() != "none": + data["list"] = str(self.list.currentText()) + if self.default.text(): + data["default"] = self.export_default(data, self.default.text()) + return data + + def export_default(self, data, value): + + if data.get("list") is None: + if data["type"] == "str" : return str(value) + if data["type"] == "int" : return int(value) + if data["type"] == "real": return float(value) + if data["type"] == "bool": return (value.lower() == "true") + raise NotImplementedError("Unkown Type: " + str(data)) + + def export_view(self): + + data = collections.OrderedDict() + data["target"] = "args." + str(self.name.text()) + data["widget"] = "basic." + PluginEditField.viewtypes[self.type.currentText()] + return data \ No newline at end of file From 3f85cae8f5e921627b861d3634d36dc2ca6bdbfb Mon Sep 17 00:00:00 2001 From: Isamu Takagi Date: Sun, 3 Mar 2019 16:52:21 +0900 Subject: [PATCH 042/139] Update the code for compatibility with python3 --- .../autoware_launcher/src/autoware_launcher/tool/editor.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py b/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py index c691b1543a6..99f03a6551a 100644 --- a/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py +++ b/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py @@ -88,7 +88,7 @@ def export_yaml(self): data["panel"]["widget"] = "node.panel" data["panel"]["frames"] = views text = yaml.dump(data, default_flow_style=None) - print text + print(text) clipboard = QtWidgets.QApplication.clipboard() clipboard.setText(text) From bd7db2d0847ff4ee13bbdad5d46655e940dc4de0 Mon Sep 17 00:00:00 2001 From: Isamu Takagi Date: Sun, 3 Mar 2019 18:39:01 +0900 Subject: [PATCH 043/139] Update the code for colcon build --- .../src/autoware_launcher/gui/guimgr.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/ros/src/util/packages/autoware_launcher/src/autoware_launcher/gui/guimgr.py b/ros/src/util/packages/autoware_launcher/src/autoware_launcher/gui/guimgr.py index 4db24ac8ebd..60d73cfada2 100644 --- a/ros/src/util/packages/autoware_launcher/src/autoware_launcher/gui/guimgr.py +++ b/ros/src/util/packages/autoware_launcher/src/autoware_launcher/gui/guimgr.py @@ -19,13 +19,11 @@ def __init__(self, client): self.__client = client self.__widgets = {} - for filepath in os.listdir(myutils.package("src/autoware_launcher/gui/plugins")): - fkey, fext = os.path.splitext(os.path.basename(filepath)) - if (fkey != "__init__") and (fext == ".py"): - logger.debug("load plugin module: " + fkey) - module = importlib.import_module("autoware_launcher.gui.plugins." + fkey) - for wkey, wcls in module.plugin_widgets().items(): - self.__widgets[fkey + "." + wkey] = wcls + import autoware_launcher.gui.plugins as plugins + for modkey, modcls in plugins.modules.items(): + for guikey, guicls in modcls.plugin_widgets().items(): + logger.debug("load plugin module: " + modkey + "." + guikey) + self.__widgets[modkey + "." + guikey] = guicls def client(self): return self.__client From 463a51294829b5f6910985f17e85eab86f75d9b2 Mon Sep 17 00:00:00 2001 From: Kosuke Murakami Date: Mon, 4 Mar 2019 09:12:34 +0900 Subject: [PATCH 044/139] Modify cmake --- .../lidar_detector/packages/lidar_point_pillars/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/CMakeLists.txt b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/CMakeLists.txt index ef411001240..4174b349c51 100755 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/CMakeLists.txt +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/CMakeLists.txt @@ -97,7 +97,7 @@ if(TRT_AVAIL AND CUDA_AVAIL) lidar_point_pillars ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} - RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION} + RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} ) install(DIRECTORY launch/ From 7d8825b5ef40b75122ce202f53dbe99eb302f583 Mon Sep 17 00:00:00 2001 From: Kosuke Murakami Date: Mon, 4 Mar 2019 09:27:07 +0900 Subject: [PATCH 045/139] update readme --- .../packages/lidar_point_pillars/README.md | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/README.md b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/README.md index ddca50651f5..2a4b5d3697b 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/README.md +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/README.md @@ -8,6 +8,29 @@ CUDA Toolkit v9.0 or v10.0 TensorRT: Tested with 5.0.2 -> [How to install](https://docs.nvidia.com/deeplearning/sdk/tensorrt-install-guide/index.html#installing) +## How to setup + +1. Install CUDA from this [website](https://developer.nvidia.com/cuda-downloads) + +2. [Download](https://docs.nvidia.com/deeplearning/sdk/tensorrt-install-guide/index.html#downloading) the TensorRT local repo file that matches the Ubuntu version you are using. + +3. Install TensorRT from the Debian local repo package. + +``` +$ sudo dpkg -i +nv-tensorrt-repo-ubuntu1x04-cudax.x-trt5.x.x.x-ga-yyyymmdd_1-1_amd64.deb +$ sudo apt-key add /var/nv-tensorrt-repo-cudax.x-trt5.x.x.x-ga-yyyymmdd/7fa2af80.pub + +$ sudo apt-get update +$ sudo apt-get install tensorrt +``` + +4. Download the pretrained file from [here](https://github.com/cirpue49/kitti_pretrained_pp). + +``` +$ git clone git@github.com:cirpue49/kitti_pretrained_point_pillars.git +``` + ## How to launch From 830034518d74085f127eb168e7693ee964e5377c Mon Sep 17 00:00:00 2001 From: dimethylether Date: Mon, 4 Mar 2019 12:32:28 +0900 Subject: [PATCH 046/139] updated plugin for lane_rule, lane_stop, and voxel_grid_filter --- .../plugins/leaf/lane_stop.xml | 28 ++++++++----------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/ros/src/util/packages/autoware_launcher/plugins/leaf/lane_stop.xml b/ros/src/util/packages/autoware_launcher/plugins/leaf/lane_stop.xml index b3be15d70a7..d19954f3ddb 100644 --- a/ros/src/util/packages/autoware_launcher/plugins/leaf/lane_stop.xml +++ b/ros/src/util/packages/autoware_launcher/plugins/leaf/lane_stop.xml @@ -3,25 +3,21 @@ - + - + + + + From 4a8cc18b0fe224508f8a0cd1b3b94b726bbd7fc2 Mon Sep 17 00:00:00 2001 From: dimethylether Date: Tue, 5 Mar 2019 04:01:53 -0600 Subject: [PATCH 047/139] added point_pillar plugin files for autoware_launcher --- .../plugins/node/detect_obj.yaml | 3 ++- .../plugins/refs/lidar_point_pillars.yaml | 20 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 ros/src/util/packages/autoware_launcher/plugins/refs/lidar_point_pillars.yaml diff --git a/ros/src/util/packages/autoware_launcher/plugins/node/detect_obj.yaml b/ros/src/util/packages/autoware_launcher/plugins/node/detect_obj.yaml index 7dbb4c0cedb..2b9dfc489ef 100644 --- a/ros/src/util/packages/autoware_launcher/plugins/node/detect_obj.yaml +++ b/ros/src/util/packages/autoware_launcher/plugins/node/detect_obj.yaml @@ -5,4 +5,5 @@ rules: - { name: points_detect, plugin: refs/euclidean_cluster } - { name: images_detect, plugin: refs/yolov3 } - { name: fusion, plugin: refs/range_vision_fusion } -- { name: tracking, plugin: refs/imm_ukf_pda_track } +- { name: tracking, plugin: refs/imm_ukf_pda_track } +- { name: lidar_point_pillars, plugin: refs/lidar_point_pillars } diff --git a/ros/src/util/packages/autoware_launcher/plugins/refs/lidar_point_pillars.yaml b/ros/src/util/packages/autoware_launcher/plugins/refs/lidar_point_pillars.yaml new file mode 100644 index 00000000000..280165491ae --- /dev/null +++ b/ros/src/util/packages/autoware_launcher/plugins/refs/lidar_point_pillars.yaml @@ -0,0 +1,20 @@ +format: Autoware Launcher Plugin Version 0.1 +rosxml: $(find lidar_point_pillars)/launch/lidar_point_pillars.launch +args: +- {name: input_topic, type: str, default: /points_raw} +- {name: baselink_support, type: bool, default: true} +- {name: reproduce_result_mode, type: bool, default: true} +- {name: score_threshold, type: real, default: 0.5} +- {name: nms_overlap_threshold, type: real, default: 0.5} +- {name: pfe_onnx_file, type: str} +- {name: rpn_onnx_file, type: str} +panel: + widget: node.panel + frames: + - {target: args.input_topic, widget: basic.text} + - {target: args.baselink_support, widget: basic.bool} + - {target: args.reproduce_result_mode, widget: basic.bool} + - {target: args.score_threshold, widget: basic.real} + - {target: args.nms_overlap_threshold, widget: basic.real} + - {target: args.pfe_onnx_file, widget: basic.file} + - {target: args.rpn_onnx_file, widget: basic.file} From f1ab08d2835e618d88a9f5706960f1dc3e2f6df3 Mon Sep 17 00:00:00 2001 From: Isamu Takagi Date: Thu, 21 Feb 2019 23:18:29 +0900 Subject: [PATCH 048/139] Add prototype of plugin file editor --- .../src/autoware_launcher/tool/editor.py | 163 ++---------------- 1 file changed, 17 insertions(+), 146 deletions(-) diff --git a/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py b/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py index 99f03a6551a..c06d4c38785 100644 --- a/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py +++ b/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py @@ -1,157 +1,28 @@ -from autoware_launcher.core import plugin -from autoware_launcher.core import myutils +#import xml.etree.ElementTree as xmltree + +import rospkg from python_qt_binding import QtCore from python_qt_binding import QtWidgets -import argparse -import collections -import re -import rospkg -import yaml -import xml.etree.ElementTree as xtree - - -def represent_ordered_dict(dumper, instance): - return dumper.represent_mapping('tag:yaml.org,2002:map', instance.items()) -yaml.add_representer(collections.OrderedDict, represent_ordered_dict) - def main(sys_argv): - if len(sys_argv) < 2: - print("missing plugin file path") - return 2 application = QtWidgets.QApplication(sys_argv) - widget = PluginEditWidget() - ynode = plugin.AwPluginNode(None, sys_argv[1]) - ynode.load(myutils.package("plugins")) - xnode = load_launch_xml(ynode.rosxml()) - - fields = [PluginEditField(child.attrib) for child in xnode if child.tag == "arg"] - for field in fields: widget.add_field(field) - widget.add_button() - for field in ynode.args(): widget.set_yaml(field) + rospack = rospkg.RosPack() + combo = QtWidgets.QComboBox() + for package in sorted(rospack.list()): + combo.addItem(package) + combo.setEditable(True) + combo.setCurrentIndex(combo.findText("autoware_launcher")) + + widget = QtWidgets.QWidget() + widget.setLayout(QtWidgets.QHBoxLayout()) + widget.layout().addWidget(QtWidgets.QLabel("Package")) + widget.layout().addWidget(combo) + widget.layout().addWidget(QtWidgets.QLabel("File")) + widget.layout().addWidget(QtWidgets.QLineEdit()) + widget.layout().addWidget(QtWidgets.QPushButton()) widget.show() return application.exec_() - - -def load_launch_xml(rosxml): - - rospack = rospkg.RosPack() - regex = re.compile("\$\(find (.*?)\)") - match = regex.match(rosxml) - xpath = regex.sub(rospack.get_path(match.group(1)), rosxml) - return xtree.parse(xpath).getroot() - - -class PluginEditWidget(QtWidgets.QWidget): - - header = ["Field Name", "Field Type", "Array Type", "Default Value"] - - def __init__(self): - - super(PluginEditWidget, self).__init__() - self.fields = collections.OrderedDict() - self.setLayout(QtWidgets.QGridLayout()) - for col,text in enumerate(PluginEditWidget.header): - self.layout().addWidget(QtWidgets.QLabel(text), 0, col) - self.export = QtWidgets.QPushButton("Export") - self.export.clicked.connect(self.export_yaml) - - def add_field(self, field): - - row = self.layout().rowCount() - self.layout().addWidget(field.name, row, 0) - self.layout().addWidget(field.type, row, 1) - self.layout().addWidget(field.list, row, 2) - self.layout().addWidget(field.default, row, 3) - self.fields[field.name.text()] = field - - def add_button(self): - - row = self.layout().rowCount() - self.layout().addWidget(self.export, row, 0, 1, 4) - - def set_yaml(self, data): - - self.fields[data.name].set_yaml(data) - - def export_yaml(self): - - views = [field.export_view() for field in self.fields.values()] - fields = [field.export_dict() for field in self.fields.values()] - data = collections.OrderedDict() - data["args"] = fields - data["panel"] = collections.OrderedDict() - data["panel"]["widget"] = "node.panel" - data["panel"]["frames"] = views - text = yaml.dump(data, default_flow_style=None) - print(text) - clipboard = QtWidgets.QApplication.clipboard() - clipboard.setText(text) - - -class PluginEditField(object): - - viewtypes = {"str":"text", "int":"int", "real":"real", "bool":"bool"} - - def __init__(self, attr): - - self.name = QtWidgets.QLabel() - self.type = QtWidgets.QComboBox() - self.list = QtWidgets.QComboBox() - self.default = QtWidgets.QLineEdit() - - self.name.setText(attr["name"]) - self.type.addItems(["str", "int", "real", "bool"]) - self.list.addItems(["none", "space", "yaml"]) - self.default.setText(attr.get("default")) - - self.type.setCurrentIndex(-1) - if attr.get("default"): - itype = self.type_inference(attr["default"]) - self.type.setCurrentIndex(self.type.findText(itype)) - - def type_inference(self, value): - - if value.lower() in ["true", "false"]: return "bool" - if value.isdigit(): return "int" - if value.replace('.','',1).isdigit(): return "real" - return "str" - - def set_yaml(self, data): - - self.type.setCurrentIndex(self.type.findText(data.type)) - if data.list: - self.list.setCurrentIndex(self.list.findText(data.list)) - if data.rest.get("default"): - self.default.setText(str(data.rest["default"])) - - def export_dict(self): - - data = collections.OrderedDict() - data["name"] = str(self.name.text()) - data["type"] = str(self.type.currentText()) - if self.list.currentText() != "none": - data["list"] = str(self.list.currentText()) - if self.default.text(): - data["default"] = self.export_default(data, self.default.text()) - return data - - def export_default(self, data, value): - - if data.get("list") is None: - if data["type"] == "str" : return str(value) - if data["type"] == "int" : return int(value) - if data["type"] == "real": return float(value) - if data["type"] == "bool": return (value.lower() == "true") - raise NotImplementedError("Unkown Type: " + str(data)) - - def export_view(self): - - data = collections.OrderedDict() - data["target"] = "args." + str(self.name.text()) - data["widget"] = "basic." + PluginEditField.viewtypes[self.type.currentText()] - return data \ No newline at end of file From 2242c83605635e552464f00c4e7348f0565e3aaf Mon Sep 17 00:00:00 2001 From: Isamu Takagi Date: Tue, 26 Feb 2019 15:24:42 +0900 Subject: [PATCH 049/139] Change logger level --- ros/src/util/packages/autoware_launcher/scripts/main | 9 +-------- .../src/autoware_launcher/gui/guimgr.py | 12 +++++++----- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/ros/src/util/packages/autoware_launcher/scripts/main b/ros/src/util/packages/autoware_launcher/scripts/main index 7efb1b5ed47..3976c95a727 100755 --- a/ros/src/util/packages/autoware_launcher/scripts/main +++ b/ros/src/util/packages/autoware_launcher/scripts/main @@ -7,14 +7,7 @@ import argparse from autoware_launcher.core import AwLaunchServer from autoware_launcher.gui import AwQtGuiClient -parser = argparse.ArgumentParser(description='Autoware Launcher') -parser.add_argument("-v", "--verbose", dest="verbose", action="store_true", help="show debug log message") -parser.add_argument("-p", "--profile", dest="profile", action="store", help="name of profile") -parser.add_argument("-s", "--skin", dest="skin", action="store", help="name of style sheet") -args = parser.parse_args() - -loglevel = logging.INFO if not args.verbose else logging.DEBUG -logging.basicConfig(level=loglevel, format="%(levelname)-5s: %(name)s: %(message)s") +logging.basicConfig(level=logging.INFO, format="%(levelname)-5s: %(name)s: %(message)s") server = AwLaunchServer(sys.argv) client = AwQtGuiClient(sys.argv, server) diff --git a/ros/src/util/packages/autoware_launcher/src/autoware_launcher/gui/guimgr.py b/ros/src/util/packages/autoware_launcher/src/autoware_launcher/gui/guimgr.py index 60d73cfada2..4db24ac8ebd 100644 --- a/ros/src/util/packages/autoware_launcher/src/autoware_launcher/gui/guimgr.py +++ b/ros/src/util/packages/autoware_launcher/src/autoware_launcher/gui/guimgr.py @@ -19,11 +19,13 @@ def __init__(self, client): self.__client = client self.__widgets = {} - import autoware_launcher.gui.plugins as plugins - for modkey, modcls in plugins.modules.items(): - for guikey, guicls in modcls.plugin_widgets().items(): - logger.debug("load plugin module: " + modkey + "." + guikey) - self.__widgets[modkey + "." + guikey] = guicls + for filepath in os.listdir(myutils.package("src/autoware_launcher/gui/plugins")): + fkey, fext = os.path.splitext(os.path.basename(filepath)) + if (fkey != "__init__") and (fext == ".py"): + logger.debug("load plugin module: " + fkey) + module = importlib.import_module("autoware_launcher.gui.plugins." + fkey) + for wkey, wcls in module.plugin_widgets().items(): + self.__widgets[fkey + "." + wkey] = wcls def client(self): return self.__client From 6d934518f3911e79497eaa18cc018732fd6c0cd6 Mon Sep 17 00:00:00 2001 From: Isamu Takagi Date: Tue, 26 Feb 2019 16:14:35 +0900 Subject: [PATCH 050/139] Support command line options --- ros/src/util/packages/autoware_launcher/scripts/main | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/ros/src/util/packages/autoware_launcher/scripts/main b/ros/src/util/packages/autoware_launcher/scripts/main index 3976c95a727..d00692af767 100755 --- a/ros/src/util/packages/autoware_launcher/scripts/main +++ b/ros/src/util/packages/autoware_launcher/scripts/main @@ -7,7 +7,15 @@ import argparse from autoware_launcher.core import AwLaunchServer from autoware_launcher.gui import AwQtGuiClient -logging.basicConfig(level=logging.INFO, format="%(levelname)-5s: %(name)s: %(message)s") +parser = argparse.ArgumentParser(description='Autoware Launcher') +parser.add_argument("-v", "--verbose", dest="verbose", action="store_true", help="show debug log message") +parser.add_argument("-p", "--profile", dest="profile", action="store", help="name of profile") +parser.add_argument("-s", "--skin", dest="skin", action="store", help="name of style sheet") +args = parser.parse_args() + +loglevel = logging.INFO if not args.verbose else logging.DEBUG +logging.basicConfig(level=loglevel, format="%(levelname)-5s: %(name)s: %(message)s") + server = AwLaunchServer(sys.argv) client = AwQtGuiClient(sys.argv, server) From 20f8887e6f998acb1b119aafab573c6721c3da99 Mon Sep 17 00:00:00 2001 From: Isamu Takagi Date: Tue, 26 Feb 2019 19:03:33 +0900 Subject: [PATCH 051/139] Update gazebo simulator panel --- ros/src/util/packages/autoware_launcher/scripts/main | 1 - 1 file changed, 1 deletion(-) diff --git a/ros/src/util/packages/autoware_launcher/scripts/main b/ros/src/util/packages/autoware_launcher/scripts/main index d00692af767..7efb1b5ed47 100755 --- a/ros/src/util/packages/autoware_launcher/scripts/main +++ b/ros/src/util/packages/autoware_launcher/scripts/main @@ -16,7 +16,6 @@ args = parser.parse_args() loglevel = logging.INFO if not args.verbose else logging.DEBUG logging.basicConfig(level=loglevel, format="%(levelname)-5s: %(name)s: %(message)s") - server = AwLaunchServer(sys.argv) client = AwQtGuiClient(sys.argv, server) sys.exit(client.start(profile=args.profile, skin=args.skin)) From ffe2f365586e9120a0eba3bff41951d71e55761b Mon Sep 17 00:00:00 2001 From: Isamu Takagi Date: Fri, 1 Mar 2019 17:29:21 +0900 Subject: [PATCH 052/139] Add plugin edit tool and update plugins --- .../src/autoware_launcher/tool/editor.py | 163 ++++++++++++++++-- .../autoware_launcher/tests/test_plugins.py | 2 +- 2 files changed, 147 insertions(+), 18 deletions(-) diff --git a/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py b/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py index c06d4c38785..c691b1543a6 100644 --- a/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py +++ b/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py @@ -1,28 +1,157 @@ -#import xml.etree.ElementTree as xmltree - -import rospkg +from autoware_launcher.core import plugin +from autoware_launcher.core import myutils from python_qt_binding import QtCore from python_qt_binding import QtWidgets +import argparse +import collections +import re +import rospkg +import yaml +import xml.etree.ElementTree as xtree + + +def represent_ordered_dict(dumper, instance): + return dumper.represent_mapping('tag:yaml.org,2002:map', instance.items()) +yaml.add_representer(collections.OrderedDict, represent_ordered_dict) + def main(sys_argv): + if len(sys_argv) < 2: + print("missing plugin file path") + return 2 application = QtWidgets.QApplication(sys_argv) + widget = PluginEditWidget() + ynode = plugin.AwPluginNode(None, sys_argv[1]) + ynode.load(myutils.package("plugins")) + xnode = load_launch_xml(ynode.rosxml()) + + fields = [PluginEditField(child.attrib) for child in xnode if child.tag == "arg"] + for field in fields: widget.add_field(field) + widget.add_button() + for field in ynode.args(): widget.set_yaml(field) - rospack = rospkg.RosPack() - combo = QtWidgets.QComboBox() - for package in sorted(rospack.list()): - combo.addItem(package) - combo.setEditable(True) - combo.setCurrentIndex(combo.findText("autoware_launcher")) - - widget = QtWidgets.QWidget() - widget.setLayout(QtWidgets.QHBoxLayout()) - widget.layout().addWidget(QtWidgets.QLabel("Package")) - widget.layout().addWidget(combo) - widget.layout().addWidget(QtWidgets.QLabel("File")) - widget.layout().addWidget(QtWidgets.QLineEdit()) - widget.layout().addWidget(QtWidgets.QPushButton()) widget.show() return application.exec_() + + +def load_launch_xml(rosxml): + + rospack = rospkg.RosPack() + regex = re.compile("\$\(find (.*?)\)") + match = regex.match(rosxml) + xpath = regex.sub(rospack.get_path(match.group(1)), rosxml) + return xtree.parse(xpath).getroot() + + +class PluginEditWidget(QtWidgets.QWidget): + + header = ["Field Name", "Field Type", "Array Type", "Default Value"] + + def __init__(self): + + super(PluginEditWidget, self).__init__() + self.fields = collections.OrderedDict() + self.setLayout(QtWidgets.QGridLayout()) + for col,text in enumerate(PluginEditWidget.header): + self.layout().addWidget(QtWidgets.QLabel(text), 0, col) + self.export = QtWidgets.QPushButton("Export") + self.export.clicked.connect(self.export_yaml) + + def add_field(self, field): + + row = self.layout().rowCount() + self.layout().addWidget(field.name, row, 0) + self.layout().addWidget(field.type, row, 1) + self.layout().addWidget(field.list, row, 2) + self.layout().addWidget(field.default, row, 3) + self.fields[field.name.text()] = field + + def add_button(self): + + row = self.layout().rowCount() + self.layout().addWidget(self.export, row, 0, 1, 4) + + def set_yaml(self, data): + + self.fields[data.name].set_yaml(data) + + def export_yaml(self): + + views = [field.export_view() for field in self.fields.values()] + fields = [field.export_dict() for field in self.fields.values()] + data = collections.OrderedDict() + data["args"] = fields + data["panel"] = collections.OrderedDict() + data["panel"]["widget"] = "node.panel" + data["panel"]["frames"] = views + text = yaml.dump(data, default_flow_style=None) + print text + clipboard = QtWidgets.QApplication.clipboard() + clipboard.setText(text) + + +class PluginEditField(object): + + viewtypes = {"str":"text", "int":"int", "real":"real", "bool":"bool"} + + def __init__(self, attr): + + self.name = QtWidgets.QLabel() + self.type = QtWidgets.QComboBox() + self.list = QtWidgets.QComboBox() + self.default = QtWidgets.QLineEdit() + + self.name.setText(attr["name"]) + self.type.addItems(["str", "int", "real", "bool"]) + self.list.addItems(["none", "space", "yaml"]) + self.default.setText(attr.get("default")) + + self.type.setCurrentIndex(-1) + if attr.get("default"): + itype = self.type_inference(attr["default"]) + self.type.setCurrentIndex(self.type.findText(itype)) + + def type_inference(self, value): + + if value.lower() in ["true", "false"]: return "bool" + if value.isdigit(): return "int" + if value.replace('.','',1).isdigit(): return "real" + return "str" + + def set_yaml(self, data): + + self.type.setCurrentIndex(self.type.findText(data.type)) + if data.list: + self.list.setCurrentIndex(self.list.findText(data.list)) + if data.rest.get("default"): + self.default.setText(str(data.rest["default"])) + + def export_dict(self): + + data = collections.OrderedDict() + data["name"] = str(self.name.text()) + data["type"] = str(self.type.currentText()) + if self.list.currentText() != "none": + data["list"] = str(self.list.currentText()) + if self.default.text(): + data["default"] = self.export_default(data, self.default.text()) + return data + + def export_default(self, data, value): + + if data.get("list") is None: + if data["type"] == "str" : return str(value) + if data["type"] == "int" : return int(value) + if data["type"] == "real": return float(value) + if data["type"] == "bool": return (value.lower() == "true") + raise NotImplementedError("Unkown Type: " + str(data)) + + def export_view(self): + + data = collections.OrderedDict() + data["target"] = "args." + str(self.name.text()) + data["widget"] = "basic." + PluginEditField.viewtypes[self.type.currentText()] + return data \ No newline at end of file diff --git a/ros/src/util/packages/autoware_launcher/tests/test_plugins.py b/ros/src/util/packages/autoware_launcher/tests/test_plugins.py index c441fa58872..232bff1779a 100644 --- a/ros/src/util/packages/autoware_launcher/tests/test_plugins.py +++ b/ros/src/util/packages/autoware_launcher/tests/test_plugins.py @@ -14,7 +14,7 @@ def test_plugin_type(): for frame in plugin.panel().frames: print(plugin.path() + " " + str(frame.target)) yield ok_, guimgr.widget(frame).validate_argtypes(fields, frame) - print("") + print def test_plugin_field(): rospack = rospkg.RosPack() From f8d487cefe4ebb0c71de2d0520cdb2766f1ad0fe Mon Sep 17 00:00:00 2001 From: Isamu Takagi Date: Sun, 3 Mar 2019 16:52:21 +0900 Subject: [PATCH 053/139] Update the code for compatibility with python3 --- .../autoware_launcher/src/autoware_launcher/tool/editor.py | 2 +- ros/src/util/packages/autoware_launcher/tests/test_plugins.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py b/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py index c691b1543a6..99f03a6551a 100644 --- a/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py +++ b/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py @@ -88,7 +88,7 @@ def export_yaml(self): data["panel"]["widget"] = "node.panel" data["panel"]["frames"] = views text = yaml.dump(data, default_flow_style=None) - print text + print(text) clipboard = QtWidgets.QApplication.clipboard() clipboard.setText(text) diff --git a/ros/src/util/packages/autoware_launcher/tests/test_plugins.py b/ros/src/util/packages/autoware_launcher/tests/test_plugins.py index 232bff1779a..0c976241b63 100644 --- a/ros/src/util/packages/autoware_launcher/tests/test_plugins.py +++ b/ros/src/util/packages/autoware_launcher/tests/test_plugins.py @@ -14,7 +14,7 @@ def test_plugin_type(): for frame in plugin.panel().frames: print(plugin.path() + " " + str(frame.target)) yield ok_, guimgr.widget(frame).validate_argtypes(fields, frame) - print + print() def test_plugin_field(): rospack = rospkg.RosPack() From 61c5aaab69c9a4e99099c5f8fe830912f9ae4334 Mon Sep 17 00:00:00 2001 From: Isamu Takagi Date: Sun, 3 Mar 2019 18:39:01 +0900 Subject: [PATCH 054/139] Update the code for colcon build --- .../src/autoware_launcher/gui/guimgr.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/ros/src/util/packages/autoware_launcher/src/autoware_launcher/gui/guimgr.py b/ros/src/util/packages/autoware_launcher/src/autoware_launcher/gui/guimgr.py index 4db24ac8ebd..60d73cfada2 100644 --- a/ros/src/util/packages/autoware_launcher/src/autoware_launcher/gui/guimgr.py +++ b/ros/src/util/packages/autoware_launcher/src/autoware_launcher/gui/guimgr.py @@ -19,13 +19,11 @@ def __init__(self, client): self.__client = client self.__widgets = {} - for filepath in os.listdir(myutils.package("src/autoware_launcher/gui/plugins")): - fkey, fext = os.path.splitext(os.path.basename(filepath)) - if (fkey != "__init__") and (fext == ".py"): - logger.debug("load plugin module: " + fkey) - module = importlib.import_module("autoware_launcher.gui.plugins." + fkey) - for wkey, wcls in module.plugin_widgets().items(): - self.__widgets[fkey + "." + wkey] = wcls + import autoware_launcher.gui.plugins as plugins + for modkey, modcls in plugins.modules.items(): + for guikey, guicls in modcls.plugin_widgets().items(): + logger.debug("load plugin module: " + modkey + "." + guikey) + self.__widgets[modkey + "." + guikey] = guicls def client(self): return self.__client From 11cb45552b128e5967f3dfbbc16b30d165256c8a Mon Sep 17 00:00:00 2001 From: Isamu Takagi Date: Thu, 7 Mar 2019 10:43:34 +0900 Subject: [PATCH 055/139] Fix launch file error --- .../plugins/leaf/lane_stop.xml | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/ros/src/util/packages/autoware_launcher/plugins/leaf/lane_stop.xml b/ros/src/util/packages/autoware_launcher/plugins/leaf/lane_stop.xml index d19954f3ddb..070517f7453 100644 --- a/ros/src/util/packages/autoware_launcher/plugins/leaf/lane_stop.xml +++ b/ros/src/util/packages/autoware_launcher/plugins/leaf/lane_stop.xml @@ -1,23 +1,29 @@ + - - + - + - - + From 094e641bcc979634c05749ed883846b93878c7c7 Mon Sep 17 00:00:00 2001 From: Isamu Takagi Date: Thu, 7 Mar 2019 23:02:20 +0900 Subject: [PATCH 056/139] Skip test of unbuilt packages --- ros/src/util/packages/autoware_launcher/tests/test_plugins.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ros/src/util/packages/autoware_launcher/tests/test_plugins.py b/ros/src/util/packages/autoware_launcher/tests/test_plugins.py index 0c976241b63..c441fa58872 100644 --- a/ros/src/util/packages/autoware_launcher/tests/test_plugins.py +++ b/ros/src/util/packages/autoware_launcher/tests/test_plugins.py @@ -14,7 +14,7 @@ def test_plugin_type(): for frame in plugin.panel().frames: print(plugin.path() + " " + str(frame.target)) yield ok_, guimgr.widget(frame).validate_argtypes(fields, frame) - print() + print("") def test_plugin_field(): rospack = rospkg.RosPack() From cc8d766c5a654d9f2f689187f5f602b0ae927695 Mon Sep 17 00:00:00 2001 From: Isamu Takagi Date: Fri, 8 Mar 2019 10:57:05 +0900 Subject: [PATCH 057/139] Add run script --- ros/run-experimental | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/ros/run-experimental b/ros/run-experimental index 77498756b55..e661b125e23 100755 --- a/ros/run-experimental +++ b/ros/run-experimental @@ -1,13 +1,9 @@ #! /usr/bin/env python import subprocess -import time - -print("This feature is experimental and may change in the future.") -time.sleep(2.0) roscore_command = "roscore" -manager_command = "rosrun autoware_launcher main --profile quickstart" +manager_command = "rosrun autoware_launcher main" def gnome_terminal(command): return ["gnome-terminal", "--command", command] From 68a60f975f06c36ed3205dde6162d9a5656e56f1 Mon Sep 17 00:00:00 2001 From: Isamu Takagi Date: Thu, 14 Mar 2019 18:43:34 +0900 Subject: [PATCH 058/139] Update README file --- ros/run-experimental | 2 +- .../util/packages/autoware_launcher/README.md | 54 +++---------------- 2 files changed, 9 insertions(+), 47 deletions(-) diff --git a/ros/run-experimental b/ros/run-experimental index e661b125e23..a23a1ccd433 100755 --- a/ros/run-experimental +++ b/ros/run-experimental @@ -3,7 +3,7 @@ import subprocess roscore_command = "roscore" -manager_command = "rosrun autoware_launcher main" +manager_command = "rosrun autoware_launcher main --profile quickstart" def gnome_terminal(command): return ["gnome-terminal", "--command", command] diff --git a/ros/src/util/packages/autoware_launcher/README.md b/ros/src/util/packages/autoware_launcher/README.md index b3528232c2d..200e7fafd46 100644 --- a/ros/src/util/packages/autoware_launcher/README.md +++ b/ros/src/util/packages/autoware_launcher/README.md @@ -11,7 +11,7 @@ 1. Start the Autoware Launcher
``` $ cd Autoware/ros -$ ./run-experimental +$ ./run-experimental` ``` ![quickstart01](./documents/images/quickstart01.png) 1. Load a profile if needed
@@ -19,64 +19,26 @@ Window Menu -> File -> Load Profile 1. Show simulation panel
Window Menu -> View -> Simulation 1. Play rosbag
-Swtich on Simulation Mode check box, then, push Play button. +Check "Simulation Mode", then, push "Play" button. 1. Push launch buttons
Map, Vehicle, Sensing, and Visualization ![quickstart02](./documents/images/quickstart02.png) -1. Push Localization button on rviz plugin and check the estimated vehicle pose +1. Push localization button on rviz plugin +Check the estimated vehicle pose ![quickstart03](./documents/images/quickstart03.png) -1. Push other buttons on rviz plugin
-Detection, Prediction, Decision, Mission, and Motion +1. Push buttons on rviz plugin
+detection, prediction, decision, mission, motion ![quickstart04](./documents/images/quickstart04.png) ![quickstart05](./documents/images/quickstart05.png) ## Develop Develop mode is under development and very unstable (Window Menu -> View -> Develop Mode).
+* [Plugin File Format](./documents/plugin/format.md) + ![develop](./documents/images/develop.png) NOTICE * On treeview widget, R key is run, T key is terminate. -* On summary panel, I key initialize the parameters to default. * Use "save as" instead of "save". * Choose .launch file when you save/load profile. - -## Plugins -If you want to use your launch file. Create the plugin file. -* [Plugin File Format](./documents/plugin/format.md). - -For example, you can add ndt matching as following. -1. Create plugin file template by text editor (e.g. autoware_launcher/plugins/refs/ndt_matching.yaml) -``` - format: Autoware Launcher Plugin Version 0.1 - rosxml: $(find lidar_localizer)/launch/ndt_matching.launch -``` -1. Launch plugin file generate tool
-`rosrun autoware_launcher tool refs/ndt_matching` -1. Set type and default value
-![plugin_tool](./documents/images/plugin_tool.png) -1. Push export button. The tool will set the text to clipboard. Paste it to yaml file.
-``` - format: Autoware Launcher Plugin Version 0.1 - rosxml: $(find lidar_localizer)/launch/ndt_matching.launch - args: - - {name: method_type, type: int, default: 0} - - {name: use_gnss, type: int, default: 1} - - {name: use_odom, type: bool, default: false} - ... - panel: - widget: node.panel - frames: - - {target: args.method_type, widget: basic.int} - - {target: args.use_gnss, widget: basic.int} - - {target: args.use_odom, widget: basic.bool} - ... -``` -1. Add new plugin path to parent plugin file by text editor (e.g. autoware_launcher/plugins/node/localization.yaml). -``` - format: Autoware Launcher Plugin Version 0.1 - rules: - - { name: downsampler, plugin: leaf/voxel_grid_filter } - - { name: localizer, plugin: refs/ndt_matching } - - { name: vel_pose_connect, plugin: refs/vel_pose_connect } -``` From c977b652b1cfb600fced83b89fab8ea05ded7720 Mon Sep 17 00:00:00 2001 From: Isamu Takagi Date: Thu, 14 Mar 2019 19:47:41 +0900 Subject: [PATCH 059/139] Update README file for plugin file --- .../util/packages/autoware_launcher/README.md | 54 ++++++++++++++++--- 1 file changed, 46 insertions(+), 8 deletions(-) diff --git a/ros/src/util/packages/autoware_launcher/README.md b/ros/src/util/packages/autoware_launcher/README.md index 200e7fafd46..d14dc6f8735 100644 --- a/ros/src/util/packages/autoware_launcher/README.md +++ b/ros/src/util/packages/autoware_launcher/README.md @@ -11,7 +11,7 @@ 1. Start the Autoware Launcher
``` $ cd Autoware/ros -$ ./run-experimental` +$ ./run-experimental ``` ![quickstart01](./documents/images/quickstart01.png) 1. Load a profile if needed
@@ -19,26 +19,64 @@ Window Menu -> File -> Load Profile 1. Show simulation panel
Window Menu -> View -> Simulation 1. Play rosbag
-Check "Simulation Mode", then, push "Play" button. +Swtich on Simulation Mode check box, then, push Play button. 1. Push launch buttons
Map, Vehicle, Sensing, and Visualization ![quickstart02](./documents/images/quickstart02.png) -1. Push localization button on rviz plugin -Check the estimated vehicle pose +1. Push Localization button on rviz plugin and check the estimated vehicle pose ![quickstart03](./documents/images/quickstart03.png) -1. Push buttons on rviz plugin
-detection, prediction, decision, mission, motion +1. Push other buttons on rviz plugin
+Detection, Prediction, Decision, Mission, and Motion ![quickstart04](./documents/images/quickstart04.png) ![quickstart05](./documents/images/quickstart05.png) ## Develop Develop mode is under development and very unstable (Window Menu -> View -> Develop Mode).
-* [Plugin File Format](./documents/plugin/format.md) - ![develop](./documents/images/develop.png) NOTICE * On treeview widget, R key is run, T key is terminate. +* On summary panel, I key initialize the parameters to default. * Use "save as" instead of "save". * Choose .launch file when you save/load profile. + +## Plugins +If you want to use your launch file. Create the plugin file. +* [Plugin File Format](./documents/plugin/format.md). + +For example, you can add ndt matching as following. +1. Create plugin file template by text editor (e.g. autoware_launcher/plugins/refs/ndt_matching.yaml) +``` + format: Autoware Launcher Plugin Version 0.1 + rosxml: $(find lidar_localizer)/launch/ndt_matching.launch +``` +1. Launch plugin file generate tool
+`rosrun autoware_launcher tool refs/ndt_matching` +1. Set type and default value
+![plugin_tool](./documents/images/plugin_tool.png) +1. Push export button. The tool will set the text to clipboard. Paste it to yaml file.
+``` + format: Autoware Launcher Plugin Version 0.1 + rosxml: $(find lidar_localizer)/launch/ndt_matching.launch + args: + - {name: method_type, type: int, default: 0} + - {name: use_gnss, type: int, default: 1} + - {name: use_odom, type: bool, default: false} + ... + panel: + widget: node.panel + frames: + - {target: args.method_type, widget: basic.int} + - {target: args.use_gnss, widget: basic.int} + - {target: args.use_odom, widget: basic.bool} + ... +``` +1. Add new plugin path to parent plugin file by text editor (e.g. autoware_launcher/plugins/refs/ndt_matching.yaml). +``` + format: Autoware Launcher Plugin Version 0.1 + rules: + - { name: downsampler, plugin: leaf/voxel_grid_filter } + - { name: localizer, plugin: refs/ndt_matching } + - { name: vel_pose_connect, plugin: refs/vel_pose_connect } +``` From a8d6f572ee7342376c6a6785fc6ccf74167db2c6 Mon Sep 17 00:00:00 2001 From: Isamu Takagi Date: Thu, 14 Mar 2019 19:59:45 +0900 Subject: [PATCH 060/139] Fix README file --- ros/src/util/packages/autoware_launcher/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ros/src/util/packages/autoware_launcher/README.md b/ros/src/util/packages/autoware_launcher/README.md index d14dc6f8735..b3528232c2d 100644 --- a/ros/src/util/packages/autoware_launcher/README.md +++ b/ros/src/util/packages/autoware_launcher/README.md @@ -72,7 +72,7 @@ For example, you can add ndt matching as following. - {target: args.use_odom, widget: basic.bool} ... ``` -1. Add new plugin path to parent plugin file by text editor (e.g. autoware_launcher/plugins/refs/ndt_matching.yaml). +1. Add new plugin path to parent plugin file by text editor (e.g. autoware_launcher/plugins/node/localization.yaml). ``` format: Autoware Launcher Plugin Version 0.1 rules: From c3768adc67d1ef548165ebcfe9b8677fbb1cf90d Mon Sep 17 00:00:00 2001 From: Isamu Takagi Date: Fri, 15 Mar 2019 18:40:19 +0900 Subject: [PATCH 061/139] Add notice to run script --- ros/run-experimental | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ros/run-experimental b/ros/run-experimental index a23a1ccd433..77498756b55 100755 --- a/ros/run-experimental +++ b/ros/run-experimental @@ -1,6 +1,10 @@ #! /usr/bin/env python import subprocess +import time + +print("This feature is experimental and may change in the future.") +time.sleep(2.0) roscore_command = "roscore" manager_command = "rosrun autoware_launcher main --profile quickstart" From ba31f785466c29c51b3e2fd36f2d35f00b17484d Mon Sep 17 00:00:00 2001 From: Joshua Whitley Date: Wed, 27 Mar 2019 16:45:21 -0500 Subject: [PATCH 062/139] Fixing a bunch of rebase botches. --- .../lidar_point_pillars/CMakeLists.txt | 51 ++- .../packages/lidar_point_pillars/README.md | 8 +- .../include/anchor_mask_cuda.h | 78 ----- .../lidar_point_pillars/include/common.h | 49 --- .../lidar_point_pillars/include/nms_cuda.h | 60 ---- .../include/point_pillars.h | 316 ------------------ .../include/point_pillars_ros.h | 137 -------- .../include/postprocess_cuda.h | 99 ------ .../include/preprocess_points.h | 108 ------ .../include/preprocess_points_cuda.h | 106 ------ .../include/scatter_cuda.h | 58 ---- .../launch/lidar_point_pillars.launch | 4 +- .../nodes/anchor_mask_cuda.cu | 6 +- .../nodes/lidar_point_pillars_node.cpp | 2 +- .../lidar_point_pillars/nodes/nms_cuda.cu | 33 +- .../nodes/point_pillars.cpp | 48 +-- .../nodes/point_pillars_ros.cpp | 21 +- .../nodes/postprocess_cuda.cu | 10 +- .../nodes/preprocess_points.cpp | 15 +- .../nodes/preprocess_points_cuda.cu | 38 ++- .../lidar_point_pillars/nodes/scatter_cuda.cu | 2 +- .../packages/lidar_point_pillars/package.xml | 5 +- .../test/src/test_point_pillars.cpp | 15 +- 23 files changed, 153 insertions(+), 1116 deletions(-) delete mode 100644 ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/anchor_mask_cuda.h delete mode 100644 ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/common.h delete mode 100644 ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/nms_cuda.h delete mode 100644 ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars.h delete mode 100644 ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars_ros.h delete mode 100644 ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/postprocess_cuda.h delete mode 100644 ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/preprocess_points.h delete mode 100644 ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/preprocess_points_cuda.h delete mode 100644 ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/scatter_cuda.h diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/CMakeLists.txt b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/CMakeLists.txt index 4174b349c51..87d2a5728b8 100755 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/CMakeLists.txt +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/CMakeLists.txt @@ -19,21 +19,41 @@ option(TRT_AVAIL "TensorRT available" OFF) # try to find the tensorRT modules find_library(NVINFER NAMES nvinfer) find_library(NVPARSERS NAMES nvparsers) -if(NVINFER AND NVPARSERS) - message("TensorRT is available!") - message("NVINFER: ${NVINFER}") - message("NVPARSERS: ${NVPARSERS}") - set(TRT_AVAIL ON) +find_library(NVONNXPARSERS NAMES nvonnxparser) +if(NVINFER AND NVPARSERS AND NVONNXPARSERS) + message("TensorRT is available!") + message("NVINFER: ${NVINFER}") + message("NVPARSERS: ${NVPARSERS}") + message("NVONNXPARSERS: ${NVONNXPARSERS}") + set(TRT_AVAIL ON) else() message("TensorRT is NOT Available") set(TRT_AVAIL OFF) endif() -if(TRT_AVAIL AND CUDA_AVAIL) +# set flags for CUDNN availability +option(CUDNN_AVAIL "CUDNN available" OFF) +# try to find the CUDNN module +find_library(CUDNN_LIBRARY +NAMES libcudnn.so${__cudnn_ver_suffix} libcudnn${__cudnn_ver_suffix}.dylib ${__cudnn_lib_win_name} +PATHS $ENV{LD_LIBRARY_PATH} ${__libpath_cudart} ${CUDNN_ROOT_DIR} ${PC_CUDNN_LIBRARY_DIRS} ${CMAKE_INSTALL_PREFIX} +PATH_SUFFIXES lib lib64 bin +DOC "CUDNN library." ) +if(CUDNN_LIBRARY) + message("CUDNN is available!") + message("CUDNN_LIBRARY: ${CUDNN_LIBRARY}") + set(CUDNN_AVAIL ON) +else() + message("CUDNN is NOT Available") + set(CUDNN_AVAIL OFF) +endif() + +if(TRT_AVAIL AND CUDA_AVAIL AND CUDNN_AVAIL) find_package(autoware_build_flags REQUIRED) find_package(catkin REQUIRED COMPONENTS roscpp + roslib pcl_ros autoware_msgs ) @@ -43,6 +63,7 @@ if(TRT_AVAIL AND CUDA_AVAIL) catkin_package( CATKIN_DEPENDS roscpp + roslib pcl_ros autoware_msgs ) @@ -81,9 +102,13 @@ if(TRT_AVAIL AND CUDA_AVAIL) nodes/preprocess_points.cpp ) - target_link_libraries(point_pillars_lib - nvinfer - nvonnxparser + target_link_libraries(point_pillars_lib + ${NVINFER} + ${NVONNXPARSERS} + ${CUDA_LIBRARIES} + ${CUDA_CUBLAS_LIBRARIES} + ${CUDA_curand_LIBRARY} + ${CUDNN_LIBRARY} gpu_point_pillars_lib ) @@ -94,6 +119,8 @@ if(TRT_AVAIL AND CUDA_AVAIL) install(TARGETS + gpu_point_pillars_lib + point_pillars_lib lidar_point_pillars ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} @@ -105,7 +132,7 @@ if(TRT_AVAIL AND CUDA_AVAIL) PATTERN ".svn" EXCLUDE) install(DIRECTORY include/ - DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} + DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}/${PROJECT_NAME}/ PATTERN ".svn" EXCLUDE ) @@ -114,8 +141,8 @@ if(TRT_AVAIL AND CUDA_AVAIL) catkin_add_gtest(test-point_pillars test/src/test_point_pillars.cpp) target_link_libraries(test-point_pillars ${catkin_LIBRARIES} point_pillars_lib) endif() -ELSE() +else() find_package(catkin REQUIRED) catkin_package() message("PointPillars won't be built, CUDA and/or TensorRT were not found.") -ENDIF () +endif() diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/README.md b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/README.md index 2a4b5d3697b..3cef61d109a 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/README.md +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/README.md @@ -6,15 +6,19 @@ Autoware package for Point Pillars. [Referenced paper](https://arxiv.org/abs/18 CUDA Toolkit v9.0 or v10.0 +CUDNN: Tested with v7.3.1 + TensorRT: Tested with 5.0.2 -> [How to install](https://docs.nvidia.com/deeplearning/sdk/tensorrt-install-guide/index.html#installing) ## How to setup 1. Install CUDA from this [website](https://developer.nvidia.com/cuda-downloads) -2. [Download](https://docs.nvidia.com/deeplearning/sdk/tensorrt-install-guide/index.html#downloading) the TensorRT local repo file that matches the Ubuntu version you are using. +2. Install CUDNN + +3. [Download](https://docs.nvidia.com/deeplearning/sdk/tensorrt-install-guide/index.html#downloading) the TensorRT local repo file that matches the Ubuntu version you are using. -3. Install TensorRT from the Debian local repo package. +4. Install TensorRT from the Debian local repo package. ``` $ sudo dpkg -i diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/anchor_mask_cuda.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/anchor_mask_cuda.h deleted file mode 100644 index 6a8b555422c..00000000000 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/anchor_mask_cuda.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright 2018-2019 Autoware Foundation. All rights reserved. - * - * 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. - */ - -/** -* @file anchor_mask_cuda.h -* @brief Make anchor mask for filtering output -* @author Kosuke Murakami -* @date 2019/02/26 -*/ - -#ifndef ANCHOR_MASK_CUDA_H -#define ANCHOR_MASK_CUDA_H - -class AnchorMaskCuda -{ -private: - const int NUM_INDS_FOR_SCAN_; - const int NUM_ANCHOR_X_INDS_; - const int NUM_ANCHOR_Y_INDS_; - const int NUM_ANCHOR_R_INDS_; - const float MIN_X_RANGE_; - const float MIN_Y_RANGE_; - const float PILLAR_X_SIZE_; - const float PILLAR_Y_SIZE_; - const int GRID_X_SIZE_; - const int GRID_Y_SIZE_; - -public: - /** - * @brief Constructor - * @param[in] NUM_INDS_FOR_SCAN Number of indexes for scan(cumsum) - * @param[in] NUM_ANCHOR_X_INDS Number of x-indexes for anchors - * @param[in] NUM_ANCHOR_Y_INDS Number of y-indexes for anchors - * @param[in] NUM_ANCHOR_R_INDS Number of rotation-indexes for anchors - * @param[in] MIN_X_RANGE Minimum x value for pointcloud - * @param[in] MIN_Y_RANGE Minimum y value for pointcloud - * @param[in] PILLAR_X_SIZE Size of x-dimension for a pillar - * @param[in] PILLAR_Y_SIZE Size of y-dimension for a pillar - * @param[in] GRID_X_SIZE Number of pillars in x-coordinate - * @param[in] GRID_Y_SIZE Number of pillars in y-coordinate - * @details Captital variables never change after the compile - */ - AnchorMaskCuda(const int NUM_INDS_FOR_SCAN, const int NUM_ANCHOR_X_INDS, const int NUM_ANCHOR_Y_INDS, - const int NUM_ANCHOR_R_INDS, const float MIN_X_RANGE, const float MIN_Y_RANGE, - const float PILLAR_X_SIZE, const float PILLAR_Y_SIZE, const int GRID_X_SIZE, const int GRID_Y_SIZE); - - /** - * @brief call cuda code for making anchor mask - * @param[in] dev_sparse_pillar_map Grid map representation for pillar occupancy - * @param[in] dev_cumsum_along_x Cumsum dev_sparse_pillar_map along x axis - * @param[in] dev_cumsum_along_y Cumsum dev_cumsum_along_x along y axis - * @param[in] dev_box_anchors_min_x Array for storng min x value for each anchor - * @param[in] dev_box_anchors_min_y Array for storng min y value for each anchor - * @param[in] dev_box_anchors_max_x Array for storng max x value for each anchor - * @param[in] dev_box_anchors_max_y Array for storng max y value for each anchor - * @param[in] dev_box_anchors_max_y Array for storng max y value for each anchor - * @param[out] dev_anchor_mask Anchor mask for filtering output - * @details dev_* means device memory. Make a mask for activating pillar occupancy area - */ - void doAnchorMaskCuda(int* dev_sparse_pillar_map, int* dev_cumsum_along_x, int* dev_cumsum_along_y, - const float* dev_box_anchors_min_x, const float* dev_box_anchors_min_y, - const float* dev_box_anchors_max_x, const float* dev_box_anchors_max_y, int* dev_anchor_mask); -}; - -#endif // ANCHOR_MASK_CUDA_H diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/common.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/common.h deleted file mode 100644 index 46e816db735..00000000000 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/common.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright 2018-2019 Autoware Foundation. All rights reserved. - * - * 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. - */ - -/** -* @file common.h -* @brief MACRO for CUDA codes -* @author Kosuke Murakami -* @date 2019/02/26 -*/ - -#ifndef COMMON_H -#define COMMON_H - -// headers in STL -#include - -// headers in CUDA -#include - -#define DIVUP(m, n) ((m) / (n) + ((m) % (n) > 0)) - -#define GPU_CHECK(ans) \ - { \ - GPUAssert((ans), __FILE__, __LINE__); \ - } -inline void GPUAssert(cudaError_t code, const char* file, int line, bool abort = true) -{ - if (code != cudaSuccess) - { - fprintf(stderr, "GPUassert: %s %s %d\n", cudaGetErrorString(code), file, line); - if (abort) - exit(code); - } -} - -#endif // COMMON_H diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/nms_cuda.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/nms_cuda.h deleted file mode 100644 index 30f2a997062..00000000000 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/nms_cuda.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright 2018-2019 Autoware Foundation. All rights reserved. - * - * 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. - */ - -/** -* @file nms_cuda.h -* @brief Non-maximum suppresion for network output -* @author Modified by Kosuke Murakami -* @date 2019/02/26 -*/ - -#ifndef NMS_CUDA_H -#define NMS_CUDA_H - -// heders in STL -#include -#include - -// headers in local files -#include "common.h" - -class NMSCuda -{ -private: - const int NUM_THREADS_; - const float nms_overlap_threshold_; - -public: - /** - * @brief Constructor - * @param[in] NUM_THRESD Number of threads for launching cuda kernel - * @param[in] nms_overlap_threshold IOU threshold for NMS - * @details Captital variables never change after the compile, Non-captital variables could be chaned through rosparam - */ - NMSCuda(const int NUM_THREADS, const float nms_overlap_threshold); - - /** - * @brief GPU Non-Maximum Suppresion for network output - * @param[in] host_filter_count Number of filtered output - * @param[in] dev_sorted_box_for_nms Bounding box output sorted by score - * @param[out] out_keep_inds Indexes for selected bounding box - * @param[out] out_num_to_keep Number of keep bounding box - * @details Includes CUDA NMS and postprocessing for selecting box in CPU - */ - void doNMSCuda(const int host_filter_count, float* dev_sorted_box_for_nms, int* out_keep_inds, int& out_num_to_keep); -}; - -#endif // NMS_CUDA_H diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars.h deleted file mode 100644 index 7945df61354..00000000000 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars.h +++ /dev/null @@ -1,316 +0,0 @@ -/* - * Copyright 2018-2019 Autoware Foundation. All rights reserved. - * - * 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. - */ - -/** -* @file point_pillars.h -* @brief Algorithm for PointPillars -* @author Kosuke Murakami -* @date 2019/02/26 -*/ - -#ifndef POINTS_PILLAR_H -#define POINTS_PILLAR_H - -// headers in STL -#include -#include -#include -#include -#include -#include -#include - -// headers in TensorRT -#include "NvInfer.h" -#include "NvOnnxParser.h" - -// headers in local files -#include "common.h" -#include "preprocess_points.h" -#include "preprocess_points_cuda.h" -#include "anchor_mask_cuda.h" -#include "scatter_cuda.h" -#include "postprocess_cuda.h" - -// Logger for TensorRT info/warning/errors -class Logger : public nvinfer1::ILogger -{ -public: - Logger(Severity severity = Severity::kWARNING) : reportableSeverity(severity) - { - } - - void log(Severity severity, const char* msg) override - { - // suppress messages with severity enum value greater than the reportable - if (severity > reportableSeverity) - return; - - switch (severity) - { - case Severity::kINTERNAL_ERROR: - std::cerr << "INTERNAL_ERROR: "; - break; - case Severity::kERROR: - std::cerr << "ERROR: "; - break; - case Severity::kWARNING: - std::cerr << "WARNING: "; - break; - case Severity::kINFO: - std::cerr << "INFO: "; - break; - default: - std::cerr << "UNKNOWN: "; - break; - } - std::cerr << msg << std::endl; - } - - Severity reportableSeverity; -}; - -class PointPillars -{ -private: - friend class TestClass; - // initize in initializer list - const bool reproduce_result_mode_; - const float score_threshold_; - const float nms_overlap_threshold_; - const std::string pfe_onnx_file_; - const std::string rpn_onnx_file_; - const int MAX_NUM_PILLARS_; - const int MAX_NUM_POINTS_PER_PILLAR_; - const int PFE_OUTPUT_SIZE_; - const int GRID_X_SIZE_; - const int GRID_Y_SIZE_; - const int GRID_Z_SIZE_; - const int RPN_INPUT_SIZE_; - const int NUM_ANCHOR_X_INDS_; - const int NUM_ANCHOR_Y_INDS_; - const int NUM_ANCHOR_R_INDS_; - const int NUM_ANCHOR_; - const int RPN_BOX_OUTPUT_SIZE_; - const int RPN_CLS_OUTPUT_SIZE_; - const int RPN_DIR_OUTPUT_SIZE_; - const float PILLAR_X_SIZE_; - const float PILLAR_Y_SIZE_; - const float PILLAR_Z_SIZE_; - const float MIN_X_RANGE_; - const float MIN_Y_RANGE_; - const float MIN_Z_RANGE_; - const float MAX_X_RANGE_; - const float MAX_Y_RANGE_; - const float MAX_Z_RANGE_; - const int BATCH_SIZE_; - const int NUM_INDS_FOR_SCAN_; - const int NUM_THREADS_; - const float SENSOR_HEIGHT_; - const float ANCHOR_DX_SIZE_; - const float ANCHOR_DY_SIZE_; - const float ANCHOR_DZ_SIZE_; - const int NUM_BOX_CORNERS_; - const int NUM_OUTPUT_BOX_FEATURE_; - // end initializer list - - int host_pillar_count_[1]; - - float* anchors_px_; - float* anchors_py_; - float* anchors_pz_; - float* anchors_dx_; - float* anchors_dy_; - float* anchors_dz_; - float* anchors_ro_; - - float* box_anchors_min_x_; - float* box_anchors_min_y_; - float* box_anchors_max_x_; - float* box_anchors_max_y_; - - // cuda malloc - float* dev_pillar_x_in_coors_; - float* dev_pillar_y_in_coors_; - float* dev_pillar_z_in_coors_; - float* dev_pillar_i_in_coors_; - int* dev_pillar_count_histo_; - - int* dev_x_coors_; - int* dev_y_coors_; - float* dev_num_points_per_pillar_; - int* dev_sparse_pillar_map_; - int* dev_cumsum_along_x_; - int* dev_cumsum_along_y_; - - float* dev_pillar_x_; - float* dev_pillar_y_; - float* dev_pillar_z_; - float* dev_pillar_i_; - - float* dev_x_coors_for_sub_shaped_; - float* dev_y_coors_for_sub_shaped_; - float* dev_pillar_feature_mask_; - - float* dev_box_anchors_min_x_; - float* dev_box_anchors_min_y_; - float* dev_box_anchors_max_x_; - float* dev_box_anchors_max_y_; - int* dev_anchor_mask_; - - void* pfe_buffers_[9]; - void* rpn_buffers_[4]; - - float* dev_scattered_feature_; - - float* dev_anchors_px_; - float* dev_anchors_py_; - float* dev_anchors_pz_; - float* dev_anchors_dx_; - float* dev_anchors_dy_; - float* dev_anchors_dz_; - float* dev_anchors_ro_; - float* dev_filtered_box_; - float* dev_filtered_score_; - int* dev_filtered_dir_; - float* dev_box_for_nms_; - int* dev_filter_count_; - - std::unique_ptr preprocess_points_ptr_; - std::unique_ptr preprocess_points_cuda_ptr_; - std::unique_ptr anchor_mask_cuda_ptr_; - std::unique_ptr scatter_cuda_ptr_; - std::unique_ptr postprocess_cuda_ptr_; - - Logger g_logger_; - nvinfer1::IExecutionContext* pfe_context_; - nvinfer1::IExecutionContext* rpn_context_; - nvinfer1::IRuntime* pfe_runtime_; - nvinfer1::IRuntime* rpn_runtime_; - nvinfer1::ICudaEngine* pfe_engine_; - nvinfer1::ICudaEngine* rpn_engine_; - - /** - * @brief Memory allocation for device memory - * @details Call in the constructor - */ - void deviceMemoryMalloc(); - - /** - * @brief Initialize anchor - * @details Call in the constructor - */ - void initAnchors(); - - /** - * @brief Initialize TensorRT isntances - * @details Call in the constructor - */ - void initTRT(); - - /** - * @brief Generate anchors - * @param[in] anchors_px_ Represents x-coordinate value for corresponding anchor - * @param[in] anchors_py_ Represents y-coordinate value for corresponding anchor - * @param[in] anchors_pz_ Represents z-coordinate value for corresponding anchor - * @param[in] anchors_dx_ Represents x-dimension value for corresponding anchor - * @param[in] anchors_dy_ Represents y-dimension value for corresponding anchor - * @param[in] anchors_dz_ Represents z-dimension value for corresponding anchor - * @param[in] anchors_ro_ Represents rotation value for corresponding anchor - * @details Generate anchors for each grid - */ - void generateAnchors(float* anchors_px_, float* anchors_py_, float* anchors_pz_, float* anchors_dx_, - float* anchors_dy_, float* anchors_dz_, float* anchors_ro_); - - /** - * @brief Convert ONNX to TensorRT model - * @param[in] model_file ONNX model file path - * @param[out] trt_model_stream TensorRT model made out of ONNX model - * @details Load ONNX model, and convert it to TensorRT model - */ - void onnxToTRTModel(const std::string& model_file, nvinfer1::IHostMemory*& trt_model_stream); - - /** - * @brief Preproces points - * @param[in] in_points_array pointcloud array - * @param[in] in_num_points Number of points - * @details Call CPU or GPU preprocess - */ - void preprocess(const float* in_points_array, const int in_num_points); - - /** - * @brief Preproces by CPU - * @param[in] in_points_array pointcloud array - * @param[in] in_num_points Number of points - * @details The output from CPU preprocess is reproducible - */ - void preprocessCPU(const float* in_points_array, const int in_num_points); - - /** - * @brief Preproces by GPU - * @param[in] in_points_array pointcloud array - * @param[in] in_num_points Number of points - * @details Fast preprocess comapared with CPU preprocess - */ - void preprocessGPU(const float* in_points_array, const int in_num_points); - - /** - * @brief Convert anchors to box form like min_x, min_y, max_x, max_y anchors - * @param[in] anchors_px_ Represents x-coordinate value for a corresponding anchor - * @param[in] anchors_py_ Represents y-coordinate value for a corresponding anchor - * @param[in] anchors_dx_ Represents x-dimension value for a corresponding anchor - * @param[in] anchors_dy_ Represents y-dimension value for a corresponding anchor - * @param[in] box_anchors_min_x_ Represents minimum x value for a correspomding anchor - * @param[in] box_anchors_min_y_ Represents minimum y value for a correspomding anchor - * @param[in] box_anchors_max_x_ Represents maximum x value for a correspomding anchor - * @param[in] box_anchors_max_y_ Represents maximum y value for a correspomding anchor - * @details Make box anchors for nms - */ - void convertAnchors2BoxAnchors(float* anchors_px_, float* anchors_py_, float* anchors_dx_, float* anchors_dy_, - float* box_anchors_min_x_, float* box_anchors_min_y_, float* box_anchors_max_x_, - float* box_anchors_max_y_); - - /** - * @brief Memory allocation for anchors - * @details Memory allocation for anchors - */ - void putAnchorsInDeviceMemory(); - -public: - /** - * @brief Constructor - * @param[in] reproduce_result_mode Boolean, if true, the output is reproducible for the same input - * @param[in] score_threshold Score threshold for filtering output - * @param[in] nms_overlap_threshold IOU threshold for NMS - * @param[in] pfe_onnx_file Pillar Feature Extractor ONNX file path - * @param[in] rpn_onnx_file Region Proposal Network ONNX file path - * @details Variables could be chaned through rosparam - */ - PointPillars(const bool reproduce_result_mode, const float score_threshold, const float nms_overlap_threshold, - const std::string pfe_onnx_file, const std::string rpn_onnx_file); - ~PointPillars(); - - /** - * @brief Call PointPillars for the inference - * @param[in] in_points_array pointcloud array - * @param[in] in_num_points Number of points - * @param[in] out_detections Network output bounding box - * @details This is interface for the algorithm - */ - void doInference(const float* in_points_array, const int in_num_points, std::vector& out_detections); -}; - -#endif // POINTS_PILLAR_H diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars_ros.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars_ros.h deleted file mode 100644 index c190fb56a97..00000000000 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/point_pillars_ros.h +++ /dev/null @@ -1,137 +0,0 @@ -/* - * Copyright 2018-2019 Autoware Foundation. All rights reserved. - * - * 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. - */ - -/** -* @file point_pillars_ros.h -* @brief ROS interface for PointPillars -* @author Kosuke Murakami -* @date 2019/02/26 -*/ - -#ifndef POINTS_PILLAR_ROS_H -#define POINTS_PILLAR_ROS_H - -// headers in STL -#include -#include - -// headers in ROS -#include -#include -#include - -// headers in PCL -#include - -// headers in local files -#include "point_pillars.h" - -class PointPillarsROS -{ -private: - friend class TestClass; - - // initializer list - ros::NodeHandle private_nh_; - bool has_subscribed_baselink_; - const int NUM_POINT_FEATURE_; - const int OUTPUT_NUM_BOX_FEATURE_; - const float TRAINED_SENSOR_HEIGHT_; - const float NORMALIZING_INTENSITY_VALUE_; - const std::string BASELINK_FRAME_; - // end initializer list - - // rosparam - bool baselink_support_; - bool reproduce_result_mode_; - float score_threshold_; - float nms_overlap_threshold_; - std::string pfe_onnx_file_; - std::string rpn_onnx_file_; - // end rosparam - - ros::NodeHandle nh_; - ros::Subscriber sub_points_; - ros::Publisher pub_objects_; - - tf::TransformListener tf_listener_; - tf::StampedTransform baselink2lidar_; - tf::Transform angle_transform_; - tf::Transform angle_transform_inversed_; - - float offset_z_from_trained_data_; - - std::unique_ptr point_pillars_ptr_; - - /** - * @brief Get base_link to lidar transformation - * @param[in] target_frameid target lidar frame_id - * @details Get transformation info - */ - void getBaselinkToLidarTF(const std::string& target_frameid); - - /** - * @brief Analyze tf information - * @param[in] lidar2baselink transofomation info - * @details Calculate z offset compared with trained sensor height and get rotation matrix - */ - void analyzeTFInfo(tf::StampedTransform lidar2baselink); - - /** - * @brief Transform pose based on tf stamp info - * @param[in] in_pose Target pose to be transformed - * @param[in] tf TF stamp contains rotation matrix and translation matrix - * @return geometry_msgs::Pose Transformed pose - * @details Calculate transformed pose - */ - geometry_msgs::Pose getTransformedPose(const geometry_msgs::Pose& in_pose, const tf::Transform& tf); - - /** - * @brief callback for pointcloud - * @param[in] input pointcloud from lidar sensor - * @details Call point_pillars to get 3D bounding box - */ - void pointsCallback(const sensor_msgs::PointCloud2::ConstPtr& input); - - /** - * @brief convert pcl point to c++ array - * @param[in] in_pcl_pc_ptr pointcloud in pcl format - * @param[out] out_points_array converted pointcloud in c++ array format - * @param[in] offset_z (default: 1.0) when using baselink_support, offset height based on current sensor configuration - * @details convert pcl points to c++ array, plus offset z if it is necessary - */ - void pclToArray(const pcl::PointCloud::Ptr& in_pcl_pc_ptr, float* out_points_array, - const float offset_z = 0); - - /** - * @brief publish DetectedObject - * @param[in] detections Network output bounding box - * @param[in] in_header Header from pointcloud - * @details Convert std::vector to DetectedObject, and publish them - */ - void pubDetectedObject(const std::vector& detections, const std_msgs::Header& in_header); - -public: - PointPillarsROS(); - - /** - * @brief Create ROS pub/sub obejct - * @details Create/Initializing ros pub/sub object - */ - void createROSPubSub(); -}; - -#endif // POINTS_PILLAR_ROS_H diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/postprocess_cuda.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/postprocess_cuda.h deleted file mode 100644 index 2add152f904..00000000000 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/postprocess_cuda.h +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright 2018-2019 Autoware Foundation. All rights reserved. - * - * 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. - */ - -/** -* @file postprocess_cuda.h -* @brief Postprocess for network output -* @author Kosuke Murakami -* @date 2019/02/26 -*/ - -#ifndef POSTPROCESS_CUDA_H -#define POSTPROCESS_CUDA_H - -// headers in STL -#include -#include - -// headers in local files -#include "nms_cuda.h" - -class PostprocessCuda -{ -private: - const float FLOAT_MIN_; - const float FLOAT_MAX_; - const int NUM_ANCHOR_X_INDS_; - const int NUM_ANCHOR_Y_INDS_; - const int NUM_ANCHOR_R_INDS_; - const float score_threshold_; - const int NUM_THREADS_; - const float nms_overlap_threshold_; - const int NUM_BOX_CORNERS_; - const int NUM_OUTPUT_BOX_FEATURE_; - - std::unique_ptr nms_cuda_ptr_; - -public: - /** - * @brief Constructor - * @param[in] FLOAT_MIN the lowest float value - * @param[in] FLOAT_MAX the maximum float value - * @param[in] NUM_ANCHOR_X_INDS Number of x-indexes for anchors - * @param[in] NUM_ANCHOR_Y_INDS Number of y-indexes for anchors - * @param[in] NUM_ANCHOR_R_INDS Number of rotation-indexes for anchors - * @param[in] score_threshold Score threshold for filtering output - * @param[in] NUM_THREDS Number of threads for launching cuda kernel - * @param[in] nms_overlap_threshold IOU threshold for NMS - * @param[in] NUM_BOX_CORNERS Number of box's corner - * @param[in] NUM_OUTPUT_BOX_FEATURE_ Number of output box's feature - * @details Captital variables never change after the compile, non-capital variables could be chaned through rosparam - */ - PostprocessCuda(const float FLOAT_MIN, const float FLOAT_MAX, const int NUM_ANCHOR_X_INDS, - const int NUM_ANCHOR_Y_INDS, const int NUM_ANCHOR_R_INDS, const float score_threshold, - const int NUM_THREADS, const float nms_overlap_threshold, const int NUM_BOX_CORNERS, - const int NUM_OUTPUT_BOX_FEATURE); - - /** - * @brief Postprocessing for the network output - * @param[in] rpn_box_output Box prediction from the network output - * @param[in] rpn_cls_output Class prediction from the network output - * @param[in] rpn_dir_output Direction prediction from the network output - * @param[in] dev_anchor_mask Anchor mask for filtering - * @param[in] dev_anchors_px X-coordinate value for corresponding anchor - * @param[in] dev_anchors_py Y-coordinate value for corresponding anchor - * @param[in] dev_anchors_pz Z-coordinate value for corresponding anchor - * @param[in] dev_anchors_dx X-dimension value for corresponding anchor - * @param[in] dev_anchors_dy Y-dimension value for corresponding anchor - * @param[in] dev_anchors_dz Z-dimension value for corresponding anchor - * @param[in] dev_anchors_ro Rotation value for corresponding anchor - * @param[in] dev_filtered_box Filtered box prediction - * @param[in] dev_filtered_score Filtered score prediction - * @param[in] dev_filtered_dir Filtered direction prediction - * @param[in] dev_box_for_nms Decoded box from pose and dimension to min_x min_y max_x max_y represenation for nms - * @param[in] dev_filter_count The number of filtered output - * @param[out] out_detection Output bounding boxes - * @details dev_* represents device memory allocated variables - */ - void doPostprocessCuda(const float* rpn_box_output, const float* rpn_cls_output, const float* rpn_dir_output, - int* dev_anchor_mask, const float* dev_anchors_px, const float* dev_anchors_py, - const float* dev_anchors_pz, const float* dev_anchors_dx, const float* dev_anchors_dy, - const float* dev_anchors_dz, const float* dev_anchors_ro, float* dev_filtered_box, - float* dev_filtered_score, int* dev_filtered_dir, float* dev_box_for_nms, - int* dev_filter_count, std::vector& out_detection); -}; - -#endif // POSTPROCESS_CUDA_H diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/preprocess_points.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/preprocess_points.h deleted file mode 100644 index b8b361db22e..00000000000 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/preprocess_points.h +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright 2018-2019 Autoware Foundation. All rights reserved. - * - * 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. - */ - -/** -* @file preprocess_points.h -* @brief CPU version of preprocess points -* @author Kosuke Murakami -* @date 2019/02/26 -*/ - -#ifndef PREPROCESS_POINTS_H -#define PREPROCESS_POINTS_H - -class PreprocessPoints -{ -private: - friend class TestClass; - const int MAX_NUM_PILLARS_; - const int MAX_NUM_POINTS_PER_PILLAR_; - const int GRID_X_SIZE_; - const int GRID_Y_SIZE_; - const int GRID_Z_SIZE_; - const float PILLAR_X_SIZE_; - const float PILLAR_Y_SIZE_; - const float PILLAR_Z_SIZE_; - const float MIN_X_RANGE_; - const float MIN_Y_RANGE_; - const float MIN_Z_RANGE_; - const int NUM_INDS_FOR_SCAN_; - const int NUM_BOX_CORNERS_; - -public: - /** - * @brief Constructor - * @param[in] MAX_NUM_PILLARS Maximum number of pillars - * @param[in] MAX_POINTS_PER_PILLAR Maximum number of points per pillar - * @param[in] GRID_X_SIZE Number of pillars in x-coordinate - * @param[in] GRID_Y_SIZE Number of pillars in y-coordinate - * @param[in] GRID_Z_SIZE Number of pillars in z-coordinate - * @param[in] PILLAR_X_SIZE Size of x-dimension for a pillar - * @param[in] PILLAR_Y_SIZE Size of y-dimension for a pillar - * @param[in] PILLAR_Z_SIZE Size of z-dimension for a pillar - * @param[in] MIN_X_RANGE Minimum x value for pointcloud - * @param[in] MIN_Y_RANGE Minimum y value for pointcloud - * @param[in] MIN_Z_RANGE Minimum z value for pointcloud - * @param[in] NUM_INDS_FOR_SCAN Number of indexes for scan(cumsum) - * @param[in] NUM_BOX_CORNERS Number of box's corner - * @details Captital variables never change after the compile - */ - PreprocessPoints(const int MAX_NUM_PILLARS, const int MAX_POINTS_PER_PILLAR, const int GRID_X_SIZE, - const int GRID_Y_SIZE, const int GRID_Z_SIZE, const float PILLAR_X_SIZE, const float PILLAR_Y_SIZE, - const float PILLAR_Z_SIZE, const float MIN_X_RANGE, const float MIN_Y_RANGE, const float MIN_Z_RANGE, - const int NUM_INDS_FOR_SCAN, const int NUM_BOX_CORNERS); - - /** - * @brief CPU preprocessing for input pointcloud - * @param[in] in_points_array Pointcloud array - * @param[in] in_num_points The number of points - * @param[in] x_coors X-coordinate indexes for corresponding pillars - * @param[in] y_coors Y-coordinate indexes for corresponding pillars - * @param[in] num_points_per_pillar Number of points in corresponding pillars - * @param[in] pillar_x X-coordinate value for points in each pillar - * @param[in] pillar_y Y-coordinate value for points in each pillar - * @param[in] pillar_z Z-coordinate value for points in each pillar - * @param[in] pillar_i Intensity value for points in each pillar - * @param[in] x_coors_for_sub_shaped Used for x substraction in the network - * @param[in] y_coors_for_sub_shaped Used for y substraction in the network - * @param[in] pillar_feature_mask Mask to make sure pillars' feature equal to zero where no points in the pillars - * @param[in] sparse_pillar_map Grid map represents occupancy pillars - * @param[in] host_pillar_count The numnber of valid pillars for the input pointcloud - * @details Convert pointcloud to pillar representation - */ - void preprocess(const float* in_points_array, int in_num_points, int* x_coors, int* y_coors, - float* num_points_per_pillar, float* pillar_x, float* pillar_y, float* pillar_z, float* pillar_i, - float* x_coors_for_sub_shaped, float* y_coors_for_sub_shaped, float* pillar_feature_mask, - float* sparse_pillar_map, int* host_pillar_count); - - /** - * @brief Initializing variables for preprocessing - * @param[in] coor_to_pillaridx Map for converting from one set of coordinate to a pillar - * @param[in] sparse_pillar_map Grid map represents occupancy pillars - * @param[in] pillar_x X-coordinate value for points in each pillar - * @param[in] pillar_y Y-coordinate value for points in each pillar - * @param[in] pillar_z Z-coordinate value for points in each pillar - * @param[in] pillar_i Intensity value for points in each pillar - * @param[in] x_coors_for_sub_shaped Used for x substraction in the network - * @param[in] y_coors_for_sub_shaped Used for y substraction in the network - * @details Initializeing input arguments with certain values - */ - void initializeVariables(int* coor_to_pillaridx, float* sparse_pillar_map, float* pillar_x, float* pillar_y, - float* pillar_z, float* pillar_i, float* x_coors_for_sub_shaped, - float* y_coors_for_sub_shaped); -}; - -#endif // PREPROCESS_POINTS_H diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/preprocess_points_cuda.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/preprocess_points_cuda.h deleted file mode 100644 index 710a14a87c3..00000000000 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/preprocess_points_cuda.h +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright 2018-2019 Autoware Foundation. All rights reserved. - * - * 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. - */ - -/** -* @file preprocess_points_cuda.h -* @brief GPU version of preprocess points -* @author Kosuke Murakami -* @date 2019/02/26 -*/ - -#ifndef PREPROCESS_POINTS_CUDA_H -#define PREPROCESS_POINTS_CUDA_H - -class PreprocessPointsCuda -{ -private: - // initialzer list - const int NUM_THREADS_; - const int MAX_NUM_PILLARS_; - const int MAX_NUM_POINTS_PER_PILLAR_; - const int NUM_INDS_FOR_SCAN_; - const int GRID_X_SIZE_; - const int GRID_Y_SIZE_; - const int GRID_Z_SIZE_; - const float PILLAR_X_SIZE_; - const float PILLAR_Y_SIZE_; - const float PILLAR_Z_SIZE_; - const float MIN_X_RANGE_; - const float MIN_Y_RANGE_; - const float MIN_Z_RANGE_; - // end initalizer list - - float* dev_pillar_x_in_coors_; - float* dev_pillar_y_in_coors_; - float* dev_pillar_z_in_coors_; - float* dev_pillar_i_in_coors_; - int* dev_pillar_count_histo_; - - int* dev_counter_; - int* dev_pillar_count_; - float* dev_x_coors_for_sub_; - float* dev_y_coors_for_sub_; - -public: - /** - * @brief Constructor - * @param[in] NUM_THREDS Number of threads for launching cuda kernel - * @param[in] MAX_NUM_PILLARS Maximum number of pillars - * @param[in] MAX_POINTS_PER_PILLAR Maximum number of points per pillar - * @param[in] NUM_INDS_FOR_SCAN Number of indexes for scan(cumsum) - * @param[in] GRID_X_SIZE Number of pillars in x-coordinate - * @param[in] GRID_Y_SIZE Number of pillars in y-coordinate - * @param[in] GRID_Z_SIZE Number of pillars in z-coordinate - * @param[in] PILLAR_X_SIZE Size of x-dimension for a pillar - * @param[in] PILLAR_Y_SIZE Size of y-dimension for a pillar - * @param[in] PILLAR_Z_SIZE Size of z-dimension for a pillar - * @param[in] MIN_X_RANGE Minimum x value for pointcloud - * @param[in] MIN_Y_RANGE Minimum y value for pointcloud - * @param[in] MIN_Z_RANGE Minimum z value for pointcloud - * @details Captital variables never change after the compile - */ - PreprocessPointsCuda(const int NUM_THREADS, const int MAX_NUM_PILLARS, const int MAX_POINTS_PER_PILLAR, - const int NUM_INDS_FOR_SCAN, const int GRID_X_SIZE, const int GRID_Y_SIZE, const int GRID_Z_SIZE, - const float PILLAR_X_SIZE, const float PILLAR_Y_SIZE, const float PILLAR_Z_SIZE, - const float MIN_X_RANGE, const float MIN_Y_RANGE, const float MIN_Z_RANGE); - ~PreprocessPointsCuda(); - - /** - * @brief CUDA preprocessing for input pointcloud - * @param[in] dev_points Pointcloud array - * @param[in] in_num_points The number of points - * @param[in] dev_x_coors X-coordinate indexes for corresponding pillars - * @param[in] dev_y_coors Y-coordinate indexes for corresponding pillars - * @param[in] dev_num_points_per_pillar Number of points in corresponding pillars - * @param[in] dev_pillar_x X-coordinate value for points in each pillar - * @param[in] dev_pillar_y Y-coordinate value for points in each pillar - * @param[in] dev_pillar_z Z-coordinate value for points in each pillar - * @param[in] dev_pillar_i Intensity value for points in each pillar - * @param[in] dev_x_coors_for_sub_shaped Used for x substraction in the network - * @param[in] dev_y_coors_for_sub_shaped Used for y substraction in the network - * @param[in] dev_pillar_feature_mask Mask to make sure pillars' feature equal to zero where no points in the pillars - * @param[in] dev_sparse_pillar_map Grid map represents occupancy pillars - * @param[in] host_pillar_count The numnber of valid pillars for the input pointcloud - * @details Convert pointcloud to pillar representation - */ - void doPreprocessPointsCuda(const float* dev_points, const int in_num_points, int* dev_x_coors, int* dev_y_coors, - float* dev_num_points_per_pillar, float* dev_pillar_x, float* dev_pillar_y, - float* dev_pillar_z, float* dev_pillar_i, float* dev_x_coors_for_sub_shaped, - float* dev_y_coors_for_sub_shaped, float* dev_pillar_feature_mask, - int* dev_sparse_pillar_map, int* host_pillar_count); -}; - -#endif // PREPROCESS_POINTS_CUDA_H diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/scatter_cuda.h b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/scatter_cuda.h deleted file mode 100644 index 1c955a3a65d..00000000000 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/include/scatter_cuda.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright 2018-2019 Autoware Foundation. All rights reserved. - * - * 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. - */ - -/** -* @file scatter_cuda.h -* @brief CUDA code for scatter operation -* @author Kosuke Murakami -* @date 2019/02/26 -*/ - -#ifndef SCATTERCUDA_H -#define SCATTERCUDA_H - -class ScatterCuda -{ -private: - const int NUM_THREADS_; - const int MAX_NUM_PILLARS_; - const int GRID_X_SIZE_; - const int GRID_Y_SIZE_; - -public: - /** - * @brief Constructor - * @param[in] NUM_THREADS The number of threads to launch cuda kernel - * @param[in] MAX_NUM_PILLARS Maximum number of pillars - * @param[in] GRID_X_SIZE Number of pillars in x-coordinate - * @param[in] GRID_Y_SIZE Number of pillars in y-coordinate - * @details Captital variables never change after the compile - */ - ScatterCuda(const int NUM_THREADS, const int MAX_NUM_PILLARS, const int GRID_X_SIZE, const int GRID_Y_SIZE); - - /** - * @brief Call scatter cuda kernel - * @param[in] pillar_count The valid number of pillars - * @param[in] x_coors X-coordinate indexes for corresponding pillars - * @param[in] y_coors Y-coordinate indexes for corresponding pillars - * @param[in] pfe_output Output from Pillar Feature Extractor - * @param[out] scattered_feature Gridmap representation for pillars' feature - * @details Allocate pillars in gridmap based on index(coordinates) information - */ - void doScatterCuda(const int pillar_count, int* x_coors, int* y_coors, float* pfe_output, float* scattered_feature); -}; - -#endif // SCATTERCUDA_H diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/launch/lidar_point_pillars.launch b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/launch/lidar_point_pillars.launch index 4a7618eacc8..9bf500fc6e8 100755 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/launch/lidar_point_pillars.launch +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/launch/lidar_point_pillars.launch @@ -4,8 +4,8 @@ - - + + diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/anchor_mask_cuda.cu b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/anchor_mask_cuda.cu index 72c7556f0c8..6b58021cbc4 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/anchor_mask_cuda.cu +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/anchor_mask_cuda.cu @@ -15,8 +15,8 @@ */ //headers in local files -#include "common.h" -#include "anchor_mask_cuda.h" +#include "lidar_point_pillars/common.h" +#include "lidar_point_pillars/anchor_mask_cuda.h" //modified prefix sum code from https://www.mimuw.edu.pl/~ps209291/kgkp/slides/scan.pdf __global__ void scan_x(int *g_odata, int *g_idata, int n) @@ -127,7 +127,7 @@ __global__ void make_anchor_mask_kernel(const float* dev_box_anchors_min_x, cons const int NUM_INDS_FOR_SCAN) { int tid = threadIdx.x + blockIdx.x * blockDim.x; - int anchor_coor[4] = {0}; + int anchor_coor[NUM_2D_BOX_CORNERS_MACRO] = {0}; const int GRID_X_SIZE_1 = GRID_X_SIZE - 1;//grid_x_size - 1 const int GRID_Y_SIZE_1 = GRID_Y_SIZE - 1;//grid_y_size - 1 diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/lidar_point_pillars_node.cpp b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/lidar_point_pillars_node.cpp index 8faa0bede56..001933b8197 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/lidar_point_pillars_node.cpp +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/lidar_point_pillars_node.cpp @@ -18,7 +18,7 @@ #include // headers in local files -#include "point_pillars_ros.h" +#include "lidar_point_pillars/point_pillars_ros.h" int main(int argc, char** argv) { diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/nms_cuda.cu b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/nms_cuda.cu index d675f9e32f8..4bb01ecac3d 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/nms_cuda.cu +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/nms_cuda.cu @@ -6,7 +6,7 @@ //headers in local files -#include "nms_cuda.h" +#include "lidar_point_pillars/nms_cuda.h" __device__ inline float devIoU(float const *const a, float const *const b) @@ -21,36 +21,36 @@ __device__ inline float devIoU(float const *const a, float const *const b) } __global__ void nms_kernel(const int n_boxes, const float nms_overlap_thresh, - const float *dev_boxes, unsigned long long *dev_mask) + const float *dev_boxes, unsigned long long *dev_mask, + const int NUM_BOX_CORNERS) { const int row_start = blockIdx.y; const int col_start = blockIdx.x; - // if (row_start > col_start) return; const int block_threads = blockDim.x; const int row_size = min(n_boxes - row_start * block_threads, block_threads); const int col_size = min(n_boxes - col_start * block_threads, block_threads); - //Only can initialize with figures, not by variables - __shared__ float block_boxes[64 * 4]; + + __shared__ float block_boxes[NUM_THREADS_MACRO * NUM_2D_BOX_CORNERS_MACRO]; if (threadIdx.x < col_size) { - block_boxes[threadIdx.x * 4 + 0] = dev_boxes[(block_threads * col_start + threadIdx.x) * 4 + 0]; - block_boxes[threadIdx.x * 4 + 1] = dev_boxes[(block_threads * col_start + threadIdx.x) * 4 + 1]; - block_boxes[threadIdx.x * 4 + 2] = dev_boxes[(block_threads * col_start + threadIdx.x) * 4 + 2]; - block_boxes[threadIdx.x * 4 + 3] = dev_boxes[(block_threads * col_start + threadIdx.x) * 4 + 3]; + block_boxes[threadIdx.x * NUM_BOX_CORNERS + 0] = dev_boxes[(block_threads * col_start + threadIdx.x) * NUM_BOX_CORNERS + 0]; + block_boxes[threadIdx.x * NUM_BOX_CORNERS + 1] = dev_boxes[(block_threads * col_start + threadIdx.x) * NUM_BOX_CORNERS + 1]; + block_boxes[threadIdx.x * NUM_BOX_CORNERS + 2] = dev_boxes[(block_threads * col_start + threadIdx.x) * NUM_BOX_CORNERS + 2]; + block_boxes[threadIdx.x * NUM_BOX_CORNERS + 3] = dev_boxes[(block_threads * col_start + threadIdx.x) * NUM_BOX_CORNERS + 3]; } __syncthreads(); if (threadIdx.x < row_size) { const int cur_box_idx = block_threads * row_start + threadIdx.x; - const float cur_box[4] = {dev_boxes[cur_box_idx*4 + 0], - dev_boxes[cur_box_idx*4 + 1], - dev_boxes[cur_box_idx*4 + 2], - dev_boxes[cur_box_idx*4 + 3]}; + const float cur_box[NUM_2D_BOX_CORNERS_MACRO] = {dev_boxes[cur_box_idx*NUM_BOX_CORNERS + 0], + dev_boxes[cur_box_idx*NUM_BOX_CORNERS + 1], + dev_boxes[cur_box_idx*NUM_BOX_CORNERS + 2], + dev_boxes[cur_box_idx*NUM_BOX_CORNERS + 3]}; unsigned long long t = 0; int start = 0; if (row_start == col_start) @@ -59,7 +59,7 @@ __global__ void nms_kernel(const int n_boxes, const float nms_overlap_thresh, } for (int i = start; i < col_size; i++) { - if (devIoU(cur_box, block_boxes + i * 4) > nms_overlap_thresh) + if (devIoU(cur_box, block_boxes + i * NUM_BOX_CORNERS) > nms_overlap_thresh) { t |= 1ULL << i; } @@ -69,8 +69,9 @@ __global__ void nms_kernel(const int n_boxes, const float nms_overlap_thresh, } } -NMSCuda::NMSCuda(const int NUM_THREADS, const float nms_overlap_threshold): +NMSCuda::NMSCuda(const int NUM_THREADS, const int NUM_BOX_CORNERS ,const float nms_overlap_threshold): NUM_THREADS_(NUM_THREADS), +NUM_BOX_CORNERS_(NUM_BOX_CORNERS), nms_overlap_threshold_(nms_overlap_threshold) { } @@ -84,7 +85,7 @@ void NMSCuda::doNMSCuda(const int host_filter_count, float* dev_sorted_box_for_n unsigned long long *dev_mask = NULL; GPU_CHECK(cudaMalloc(&dev_mask, host_filter_count * col_blocks * sizeof(unsigned long long))); - nms_kernel<<>>(host_filter_count, nms_overlap_threshold_, dev_sorted_box_for_nms, dev_mask); + nms_kernel<<>>(host_filter_count, nms_overlap_threshold_, dev_sorted_box_for_nms, dev_mask, NUM_BOX_CORNERS_); // postprocess for nms output std::vector host_mask(host_filter_count * col_blocks); diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp index a202a0b2e14..52fa314bf85 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars.cpp @@ -19,7 +19,7 @@ #include // headers in local files -#include "point_pillars.h" +#include "lidar_point_pillars/point_pillars.h" // clang-format off PointPillars::PointPillars(const bool reproduce_result_mode, const float score_threshold, @@ -44,22 +44,22 @@ PointPillars::PointPillars(const bool reproduce_result_mode, const float score_t , RPN_BOX_OUTPUT_SIZE_(NUM_ANCHOR_ * 7) , RPN_CLS_OUTPUT_SIZE_(NUM_ANCHOR_) , RPN_DIR_OUTPUT_SIZE_(NUM_ANCHOR_ * 2) - , PILLAR_X_SIZE_(0.16) - , PILLAR_Y_SIZE_(0.16) - , PILLAR_Z_SIZE_(4.0) - , MIN_X_RANGE_(0.0) - , MIN_Y_RANGE_(-39.68) - , MIN_Z_RANGE_(-3.0) - , MAX_X_RANGE_(69.12) - , MAX_Y_RANGE_(39.68) + , PILLAR_X_SIZE_(0.16f) + , PILLAR_Y_SIZE_(0.16f) + , PILLAR_Z_SIZE_(4.0f) + , MIN_X_RANGE_(0.0f) + , MIN_Y_RANGE_(-39.68f) + , MIN_Z_RANGE_(-3.0f) + , MAX_X_RANGE_(69.12f) + , MAX_Y_RANGE_(39.68f) , MAX_Z_RANGE_(1) , BATCH_SIZE_(1) , NUM_INDS_FOR_SCAN_(512) - , NUM_THREADS_(64) // if you change NUM_THREADS_, need to modify nms_kernel's shared memory size - , SENSOR_HEIGHT_(1.73) - , ANCHOR_DX_SIZE_(1.6) - , ANCHOR_DY_SIZE_(3.9) - , ANCHOR_DZ_SIZE_(1.56) + , NUM_THREADS_(64) // if you change NUM_THREADS_, need to modify NUM_THREADS_MACRO in common.h + , SENSOR_HEIGHT_(1.73f) + , ANCHOR_DX_SIZE_(1.6f) + , ANCHOR_DY_SIZE_(3.9f) + , ANCHOR_DZ_SIZE_(1.56f) , NUM_BOX_CORNERS_(4) , NUM_OUTPUT_BOX_FEATURE_(7) { @@ -74,7 +74,7 @@ PointPillars::PointPillars(const bool reproduce_result_mode, const float score_t { preprocess_points_cuda_ptr_.reset(new PreprocessPointsCuda( NUM_THREADS_, MAX_NUM_PILLARS_, MAX_NUM_POINTS_PER_PILLAR_, NUM_INDS_FOR_SCAN_, GRID_X_SIZE_, GRID_Y_SIZE_, - GRID_Z_SIZE_, PILLAR_X_SIZE_, PILLAR_Y_SIZE_, PILLAR_Z_SIZE_, MIN_X_RANGE_, MIN_Y_RANGE_, MIN_Z_RANGE_)); + GRID_Z_SIZE_, PILLAR_X_SIZE_, PILLAR_Y_SIZE_, PILLAR_Z_SIZE_, MIN_X_RANGE_, MIN_Y_RANGE_, MIN_Z_RANGE_, NUM_BOX_CORNERS_)); } anchor_mask_cuda_ptr_.reset(new AnchorMaskCuda(NUM_INDS_FOR_SCAN_, NUM_ANCHOR_X_INDS_, NUM_ANCHOR_Y_INDS_, @@ -232,7 +232,7 @@ void PointPillars::deviceMemoryMalloc() GPU_CHECK(cudaMalloc(&rpn_buffers_[3], RPN_DIR_OUTPUT_SIZE_ * sizeof(float))); // for scatter kernel - GPU_CHECK(cudaMalloc((void**)&dev_scattered_feature_, 64 * GRID_Y_SIZE_ * GRID_X_SIZE_ * sizeof(float))); + GPU_CHECK(cudaMalloc((void**)&dev_scattered_feature_, NUM_THREADS_ * GRID_Y_SIZE_ * GRID_X_SIZE_ * sizeof(float))); // for filter GPU_CHECK(cudaMalloc((void**)&dev_anchors_px_, NUM_ANCHOR_ * sizeof(float))); @@ -263,7 +263,7 @@ void PointPillars::initAnchors() box_anchors_min_y_ = new float[NUM_ANCHOR_]; box_anchors_max_x_ = new float[NUM_ANCHOR_]; box_anchors_max_y_ = new float[NUM_ANCHOR_]; - // deallocate these memory in deconstructor + // deallocate these memories in deconstructor generateAnchors(anchors_px_, anchors_py_, anchors_pz_, anchors_dx_, anchors_dy_, anchors_dz_, anchors_ro_); @@ -292,8 +292,8 @@ void PointPillars::generateAnchors(float* anchors_px_, float* anchors_py_, float box_anchors_max_y_[i] = 0; } - float x_stride = PILLAR_X_SIZE_ * 2; - float y_stride = PILLAR_Y_SIZE_ * 2; + float x_stride = PILLAR_X_SIZE_ * 2.0f; + float y_stride = PILLAR_Y_SIZE_ * 2.0f; float x_offset = MIN_X_RANGE_ + PILLAR_X_SIZE_; float y_offset = MIN_Y_RANGE_ + PILLAR_Y_SIZE_; @@ -352,7 +352,7 @@ void PointPillars::convertAnchors2BoxAnchors(float* anchors_px, float* anchors_p float* box_anchors_min_x_, float* box_anchors_min_y_, float* box_anchors_max_x_, float* box_anchors_max_y_) { - // flip box's dimension when the third axis == 1 + // flipping box's dimension float flipped_anchors_dx[NUM_ANCHOR_] = { 0 }; float flipped_anchors_dy[NUM_ANCHOR_] = { 0 }; for (size_t x = 0; x < NUM_ANCHOR_X_INDS_; x++) @@ -373,10 +373,10 @@ void PointPillars::convertAnchors2BoxAnchors(float* anchors_px, float* anchors_p for (size_t r = 0; r < NUM_ANCHOR_R_INDS_; r++) { int ind = x * NUM_ANCHOR_Y_INDS_ * NUM_ANCHOR_R_INDS_ + y * NUM_ANCHOR_R_INDS_ + r; - box_anchors_min_x_[ind] = anchors_px[ind] - flipped_anchors_dx[ind] / 2; - box_anchors_min_y_[ind] = anchors_py[ind] - flipped_anchors_dy[ind] / 2; - box_anchors_max_x_[ind] = anchors_px[ind] + flipped_anchors_dx[ind] / 2; - box_anchors_max_y_[ind] = anchors_py[ind] + flipped_anchors_dy[ind] / 2; + box_anchors_min_x_[ind] = anchors_px[ind] - flipped_anchors_dx[ind] / 2.0f; + box_anchors_min_y_[ind] = anchors_py[ind] - flipped_anchors_dy[ind] / 2.0f; + box_anchors_max_x_[ind] = anchors_px[ind] + flipped_anchors_dx[ind] / 2.0f; + box_anchors_max_y_[ind] = anchors_py[ind] + flipped_anchors_dy[ind] / 2.0f; } } } diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars_ros.cpp b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars_ros.cpp index def9759cf7c..776ce59394a 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars_ros.cpp +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/point_pillars_ros.cpp @@ -28,15 +28,15 @@ // headers in local files #include "autoware_msgs/DetectedObjectArray.h" -#include "point_pillars_ros.h" +#include "lidar_point_pillars/point_pillars_ros.h" PointPillarsROS::PointPillarsROS() : private_nh_("~") , has_subscribed_baselink_(false) , NUM_POINT_FEATURE_(4) , OUTPUT_NUM_BOX_FEATURE_(7) - , TRAINED_SENSOR_HEIGHT_(1.73) - , NORMALIZING_INTENSITY_VALUE_(255.0) + , TRAINED_SENSOR_HEIGHT_(1.73f) + , NORMALIZING_INTENSITY_VALUE_(255.0f) , BASELINK_FRAME_("base_link") { //ros related param @@ -44,8 +44,8 @@ PointPillarsROS::PointPillarsROS() //algorithm related params private_nh_.param("reproduce_result_mode", reproduce_result_mode_, false); - private_nh_.param("score_threshold", score_threshold_, 0.5); - private_nh_.param("nms_overlap_threshold", nms_overlap_threshold_, 0.5); + private_nh_.param("score_threshold", score_threshold_, 0.5f); + private_nh_.param("nms_overlap_threshold", nms_overlap_threshold_, 0.5f); private_nh_.param("pfe_onnx_file", pfe_onnx_file_, ""); private_nh_.param("rpn_onnx_file", rpn_onnx_file_, ""); @@ -87,9 +87,10 @@ void PointPillarsROS::pubDetectedObject(const std::vector& detections, co object.pose.position.y = detections[i * OUTPUT_NUM_BOX_FEATURE_ + 1]; object.pose.position.z = detections[i * OUTPUT_NUM_BOX_FEATURE_ + 2]; + // Trained this way float yaw = detections[i * OUTPUT_NUM_BOX_FEATURE_ + 6]; + yaw += M_PI/2; yaw = std::atan2(std::sin(yaw), std::cos(yaw)); - // Trained this way geometry_msgs::Quaternion q = tf::createQuaternionMsgFromYaw(-yaw); object.pose.orientation = q; @@ -98,10 +99,14 @@ void PointPillarsROS::pubDetectedObject(const std::vector& detections, co object.pose = getTransformedPose(object.pose, angle_transform_inversed_); } - object.dimensions.x = detections[i * OUTPUT_NUM_BOX_FEATURE_ + 3]; - object.dimensions.y = detections[i * OUTPUT_NUM_BOX_FEATURE_ + 4]; + // Again: Trained this way + object.dimensions.x = detections[i * OUTPUT_NUM_BOX_FEATURE_ + 4]; + object.dimensions.y = detections[i * OUTPUT_NUM_BOX_FEATURE_ + 3]; object.dimensions.z = detections[i * OUTPUT_NUM_BOX_FEATURE_ + 5]; + //Only detects car in Version 1.0 + object.label = "car"; + objects.objects.push_back(object); } pub_objects_.publish(objects); diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/postprocess_cuda.cu b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/postprocess_cuda.cu index cf82496926a..87abbee141e 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/postprocess_cuda.cu +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/postprocess_cuda.cu @@ -20,7 +20,7 @@ #include //headers in local files -#include "postprocess_cuda.h" +#include "lidar_point_pillars/postprocess_cuda.h" __global__ void filter_kernel(const float* box_preds, const float* cls_preds, const float* dir_preds, const int* anchor_mask, const float* dev_anchors_px, const float* dev_anchors_py, const float* dev_anchors_pz, @@ -72,15 +72,14 @@ __global__ void filter_kernel(const float* box_preds, const float* cls_preds, co //convrt normal box(normal boxes: x, y, z, w, l, h, r) to box(xmin, ymin, xmax, ymax) for nms calculation //First: dx, dy -> box(x0y0, x0y1, x1y0, x1y1) - float corners[2*4] = {float(-0.5*box_dx), float(-0.5*box_dy), + float corners[NUM_3D_BOX_CORNERS_MACRO] = {float(-0.5*box_dx), float(-0.5*box_dy), float(-0.5*box_dx), float( 0.5*box_dy), float( 0.5*box_dx), float( 0.5*box_dy), float( 0.5*box_dx), float(-0.5*box_dy)}; //Second: Rotate, Offset and convert to point(xmin. ymin, xmax, ymax) - //cannot use variable initialization since "error: expression must have a constant value" - float rotated_corners[2*4]; - float offset_corners[2*4]; + float rotated_corners[NUM_3D_BOX_CORNERS_MACRO]; + float offset_corners[NUM_3D_BOX_CORNERS_MACRO]; float sin_yaw = sinf(box_ro); float cos_yaw = cosf(box_ro); float xmin = FLOAT_MAX; @@ -152,6 +151,7 @@ NUM_OUTPUT_BOX_FEATURE_(NUM_OUTPUT_BOX_FEATURE) { nms_cuda_ptr_.reset(new NMSCuda( NUM_THREADS, + NUM_BOX_CORNERS, nms_overlap_threshold)); } diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/preprocess_points.cpp b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/preprocess_points.cpp index e36055debc9..82b6fd46d68 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/preprocess_points.cpp +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/preprocess_points.cpp @@ -19,7 +19,7 @@ #include // headers in local files -#include "preprocess_points.h" +#include "lidar_point_pillars/preprocess_points.h" PreprocessPoints::PreprocessPoints(const int MAX_NUM_PILLARS, const int MAX_POINTS_PER_PILLAR, const int GRID_X_SIZE, const int GRID_Y_SIZE, const int GRID_Z_SIZE, const float PILLAR_X_SIZE, @@ -107,18 +107,17 @@ void PreprocessPoints::preprocess(const float* in_points_array, int in_num_point pillar_count += 1; coor_to_pillaridx[y_coor * GRID_X_SIZE_ + x_coor] = pillar_index; - // reverse index y_coors[pillar_index] = std::floor(y_coor); x_coors[pillar_index] = std::floor(x_coor); // float y_offset = PILLAR_Y_SIZE_/ 2 + MIN_Y_RANGE_; // float x_offset = PILLAR_X_SIZE_/ 2 + MIN_X_RANGE_; // TODO Need to be modified after proper trining code - y_coors_for_sub[pillar_index] = std::floor(y_coor) * PILLAR_Y_SIZE_ + -39.9; - x_coors_for_sub[pillar_index] = std::floor(x_coor) * PILLAR_X_SIZE_ + 0.1; + // Will be modified in ver 1.1 + y_coors_for_sub[pillar_index] = std::floor(y_coor) * PILLAR_Y_SIZE_ + -39.9f; + x_coors_for_sub[pillar_index] = std::floor(x_coor) * PILLAR_X_SIZE_ + 0.1f; - // sparse pillar map - sparse_pillar_map[y_coor * 512 + x_coor] = 1; + sparse_pillar_map[y_coor * NUM_INDS_FOR_SCAN_ + x_coor] = 1; } int num = num_points_per_pillar[pillar_index]; if (num < MAX_NUM_POINTS_PER_PILLAR_) @@ -142,11 +141,11 @@ void PreprocessPoints::preprocess(const float* in_points_array, int in_num_point y_coors_for_sub_shaped[i * MAX_NUM_POINTS_PER_PILLAR_ + j] = y; if (j < num_points_for_a_pillar) { - pillar_feature_mask[i * MAX_NUM_POINTS_PER_PILLAR_ + j] = 1.0; + pillar_feature_mask[i * MAX_NUM_POINTS_PER_PILLAR_ + j] = 1.0f; } else { - pillar_feature_mask[i * MAX_NUM_POINTS_PER_PILLAR_ + j] = 0.0; + pillar_feature_mask[i * MAX_NUM_POINTS_PER_PILLAR_ + j] = 0.0f; } } } diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/preprocess_points_cuda.cu b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/preprocess_points_cuda.cu index c175ac36b3e..343f30ccea1 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/preprocess_points_cuda.cu +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/preprocess_points_cuda.cu @@ -18,8 +18,8 @@ #include //headers in local files -#include "common.h" -#include "preprocess_points_cuda.h" +#include "lidar_point_pillars/common.h" +#include "lidar_point_pillars/preprocess_points_cuda.h" __global__ void make_pillar_histo_kernel( const float* dev_points, @@ -38,7 +38,8 @@ __global__ void make_pillar_histo_kernel( const float MIN_Z_RANGE, const float PILLAR_X_SIZE, const float PILLAR_Y_SIZE, - const float PILLAR_Z_SIZE + const float PILLAR_Z_SIZE, + const int NUM_BOX_CORNERS ) { int th_i = threadIdx.x + blockIdx.x * blockDim.x; @@ -46,9 +47,9 @@ __global__ void make_pillar_histo_kernel( { return; } - int y_coor = floor((dev_points[th_i*4 + 1] - MIN_Y_RANGE)/PILLAR_Y_SIZE); - int x_coor = floor((dev_points[th_i*4 + 0] - MIN_X_RANGE)/PILLAR_X_SIZE); - int z_coor = floor((dev_points[th_i*4 + 2] - MIN_Z_RANGE)/PILLAR_Z_SIZE); + int y_coor = floor((dev_points[th_i*NUM_BOX_CORNERS + 1] - MIN_Y_RANGE)/PILLAR_Y_SIZE); + int x_coor = floor((dev_points[th_i*NUM_BOX_CORNERS + 0] - MIN_X_RANGE)/PILLAR_X_SIZE); + int z_coor = floor((dev_points[th_i*NUM_BOX_CORNERS + 2] - MIN_Z_RANGE)/PILLAR_Z_SIZE); if(x_coor >= 0 && x_coor < GRID_X_SIZE && y_coor >= 0 && y_coor < GRID_Y_SIZE && @@ -58,10 +59,10 @@ __global__ void make_pillar_histo_kernel( if(count < max_points_per_pillar) { int ind = y_coor*GRID_X_SIZE*max_points_per_pillar + x_coor*max_points_per_pillar + count; - dev_pillar_x_in_coors[ind] = dev_points[th_i*4 + 0]; - dev_pillar_y_in_coors[ind] = dev_points[th_i*4 + 1]; - dev_pillar_z_in_coors[ind] = dev_points[th_i*4 + 2]; - dev_pillar_i_in_coors[ind] = dev_points[th_i*4 + 3]; + dev_pillar_x_in_coors[ind] = dev_points[th_i*NUM_BOX_CORNERS + 0]; + dev_pillar_y_in_coors[ind] = dev_points[th_i*NUM_BOX_CORNERS + 1]; + dev_pillar_z_in_coors[ind] = dev_points[th_i*NUM_BOX_CORNERS + 2]; + dev_pillar_i_in_coors[ind] = dev_points[th_i*NUM_BOX_CORNERS + 3]; } } } @@ -107,14 +108,14 @@ __global__ void make_pillar_index_kernel( dev_x_coors[count] = x; dev_y_coors[count] = y; - //TODO Need to be modified after making properly trained model + //TODO Need to be modified after making properly trained weight + // Will be modified in ver 1.1 // x_offset = self.vx / 2 + pc_range[0] // y_offset = self.vy / 2 + pc_range[1] // x_sub = coors_x.unsqueeze(1) * 0.16 + x_offset // y_sub = coors_y.unsqueeze(1) * 0.16 + y_offset - - dev_x_coors_for_sub[count] = x* PILLAR_X_SIZE + 0.1; - dev_y_coors_for_sub[count] = y* PILLAR_Y_SIZE + -39.9; + dev_x_coors_for_sub[count] = x* PILLAR_X_SIZE + 0.1f; + dev_y_coors_for_sub[count] = y* PILLAR_Y_SIZE + -39.9f; dev_sparse_pillar_map[y*NUM_INDS_FOR_SCAN + x] = 1; } } @@ -194,7 +195,8 @@ PreprocessPointsCuda::PreprocessPointsCuda(const int NUM_THREADS, const float PILLAR_Z_SIZE, const float MIN_X_RANGE, const float MIN_Y_RANGE, - const float MIN_Z_RANGE) + const float MIN_Z_RANGE, + const int NUM_BOX_CORNERS) : NUM_THREADS_(NUM_THREADS), MAX_NUM_PILLARS_(MAX_NUM_PILLARS), @@ -208,7 +210,8 @@ PILLAR_Y_SIZE_(PILLAR_Y_SIZE), PILLAR_Z_SIZE_(PILLAR_Z_SIZE), MIN_X_RANGE_(MIN_X_RANGE), MIN_Y_RANGE_(MIN_Y_RANGE), -MIN_Z_RANGE_(MIN_Z_RANGE) +MIN_Z_RANGE_(MIN_Z_RANGE), +NUM_BOX_CORNERS_(NUM_BOX_CORNERS) { GPU_CHECK(cudaMalloc((void**)&dev_pillar_x_in_coors_, GRID_Y_SIZE_*GRID_X_SIZE_*MAX_NUM_POINTS_PER_PILLAR_* sizeof(float))); GPU_CHECK(cudaMalloc((void**)&dev_pillar_y_in_coors_, GRID_Y_SIZE_*GRID_X_SIZE_*MAX_NUM_POINTS_PER_PILLAR_* sizeof(float))); @@ -265,7 +268,8 @@ void PreprocessPointsCuda::doPreprocessPointsCuda(const float* dev_points, const MIN_Z_RANGE_, PILLAR_X_SIZE_, PILLAR_Y_SIZE_, - PILLAR_Z_SIZE_); + PILLAR_Z_SIZE_, + NUM_BOX_CORNERS_); make_pillar_index_kernel<<>>( diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/scatter_cuda.cu b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/scatter_cuda.cu index 6933f1da93e..107e3de6e4a 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/scatter_cuda.cu +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/nodes/scatter_cuda.cu @@ -15,7 +15,7 @@ */ //headers in local files -#include "scatter_cuda.h" +#include "lidar_point_pillars/scatter_cuda.h" __global__ void scatter_kernel( int *x_coors, int *y_coors, float *pfe_output, float *scattered_feature, const int MAX_NUM_PILLARS_, const int GRID_X_SIZE, const int GRID_Y_SIZE) diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/package.xml b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/package.xml index 082e644fa5d..53e773449e8 100755 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/package.xml +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/package.xml @@ -1,20 +1,23 @@ lidar_point_pillars - 1.9.1 + 1.11.0 lidar_point_pillars Kosuke Murakami Apache 2.0 catkin + autoware_build_flags roscpp + roslib pcl_ros autoware_msgs roscpp + roslib pcl_ros autoware_msgs diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/test/src/test_point_pillars.cpp b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/test/src/test_point_pillars.cpp index d42fa7d7c44..a002fb79cc8 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/test/src/test_point_pillars.cpp +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/test/src/test_point_pillars.cpp @@ -21,16 +21,20 @@ * @date 2019/02/26 */ +// headers in ros #include #include +// headers in gtest #include +// headers in PCL #include #include -#include "point_pillars_ros.h" -#include "preprocess_points.h" +// headers in local files +#include "lidar_point_pillars/point_pillars_ros.h" +#include "lidar_point_pillars/preprocess_points.h" class TestSuite : public ::testing::Test { @@ -64,7 +68,8 @@ class TestClass const int NUM_INDS_FOR_SCAN_; const int NUM_BOX_CORNERS_; - void initPoints(pcl::PointCloud::Ptr in_pcl_pc_ptr); + // Make pointcloud for test + void makePointsForTest(pcl::PointCloud::Ptr in_pcl_pc_ptr); void pclToArray(const pcl::PointCloud::Ptr& in_pcl_pc_ptr, float* out_points_array); void preprocess(const float* in_points_array, int in_num_points, int* x_coors, int* y_coors, float* num_points_per_pillar, float* pillar_x, float* pillar_y, float* pillar_z, float* pillar_i, @@ -138,7 +143,7 @@ void TestClass::pclToArray(const pcl::PointCloud::Ptr& in_pcl_pc } } -void TestClass::initPoints(pcl::PointCloud::Ptr in_pcl_pc_ptr) +void TestClass::makePointsForTest(pcl::PointCloud::Ptr in_pcl_pc_ptr) { pcl::PointXYZI point; point.x = 12.9892; @@ -229,7 +234,7 @@ TEST(TestSuite, CheckPreprocessPointsCPU) NUM_BOX_CORNERS); pcl::PointCloud::Ptr pcl_pc_ptr(new pcl::PointCloud); - test_obj.initPoints(pcl_pc_ptr); + test_obj.makePointsForTest(pcl_pc_ptr); float* points_array = new float[pcl_pc_ptr->size() * 4]; test_obj.pclToArray(pcl_pc_ptr, points_array); From ff7769727fa936385798fe100e38c1dd4ad2c343 Mon Sep 17 00:00:00 2001 From: Joshua Whitley Date: Wed, 27 Mar 2019 16:51:24 -0500 Subject: [PATCH 063/139] Two other minor rebase fixes. --- .../lidar_point_pillars/test/src/test_point_pillars.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/test/src/test_point_pillars.cpp b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/test/src/test_point_pillars.cpp index a002fb79cc8..70b3a4fa0ae 100644 --- a/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/test/src/test_point_pillars.cpp +++ b/ros/src/computing/perception/detection/lidar_detector/packages/lidar_point_pillars/test/src/test_point_pillars.cpp @@ -21,18 +21,18 @@ * @date 2019/02/26 */ -// headers in ros +// headers in ROS #include #include // headers in gtest #include -// headers in PCL +//headers in PCL #include #include -// headers in local files +//headers in local files #include "lidar_point_pillars/point_pillars_ros.h" #include "lidar_point_pillars/preprocess_points.h" From 19c9c9573bb4eef578ade5010bd99694a2417e0c Mon Sep 17 00:00:00 2001 From: Joshua Whitley Date: Thu, 28 Mar 2019 09:51:42 -0500 Subject: [PATCH 064/139] Minor spacing issue fix. --- ros/src/util/packages/runtime_manager/scripts/computing.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/ros/src/util/packages/runtime_manager/scripts/computing.yaml b/ros/src/util/packages/runtime_manager/scripts/computing.yaml index 7adabd36ed8..fccc925bb7a 100755 --- a/ros/src/util/packages/runtime_manager/scripts/computing.yaml +++ b/ros/src/util/packages/runtime_manager/scripts/computing.yaml @@ -192,12 +192,10 @@ subs : desc : lidar_cnn_segmentation_baidu_detect. Requires Caffe framework cmd : roslaunch lidar_apollo_cnn_seg_detect lidar_apollo_cnn_seg_detect.launch param: lidar_cnn_baidu_params - - name : lidar_point_pillars desc : lidar_point_pillars. Requires CUDA and TensorRT cmd : roslaunch lidar_point_pillars lidar_point_pillars.launch param: lidar_point_pillars_params - - name : lidar_naive_l_shape_detect desc : lidar_naive_l_shape_detect desc sample cmd : roslaunch lidar_naive_l_shape_detect lidar_naive_l_shape_detect.launch From 5fbba6863d4711e858a11aa469c2c55b14b1278e Mon Sep 17 00:00:00 2001 From: Yusuke FUJII Date: Thu, 1 Nov 2018 00:22:57 +0900 Subject: [PATCH 065/139] rebuild decision_maker --- .../include/amathutils_lib/amathutils.hpp | 18 +- .../libs/amathutils_lib/src/Amathutils.cpp | 14 +- .../include/state_machine_lib/state.hpp | 9 +- .../state_machine_lib/state_context.hpp | 12 +- .../state_machine_lib/src/state_context.cpp | 93 ++-- .../packages/decision_maker/CMakeLists.txt | 42 +- .../decision_maker/autoware_state_drive.yaml | 100 ++-- .../autoware_state_mission.yaml | 14 +- .../autoware_state_vehicle.yaml | 11 +- .../include/decision_maker_node.hpp | 430 ++++++++++++++++++ .../include/planner_selector.hpp | 77 ++++ .../launch/decision_maker.launch | 22 - .../decision_maker_node_callback.cpp | 63 ++- .../decision_maker_node_decision.cpp | 14 +- .../decision_maker_node_init.cpp | 137 ++++-- .../decision_maker_node_publish.cpp | 46 +- .../decision_maker_node_state_drive.cpp | 71 +-- .../decision_maker_node_state_mission.cpp | 52 +-- .../decision_maker_node_state_vehicle.cpp | 12 +- .../planner_selector_node.cpp | 234 ++++++++++ .../lane_planner/include/lane_select_core.h | 6 - .../nodes/twist_gate/twist_gate.cpp | 118 ++++- .../nodes/wf_simulator/wf_simulator.cpp | 111 +++-- .../waypoint_loader/waypoint_loader_core.cpp | 26 +- .../msg/ConfigDecisionMaker.msg | 6 +- .../nodes/vehicle_sender/vehicle_sender.cpp | 3 +- .../plugin_description.xml | 27 ++ .../decision_maker_panel.cpp | 176 +++++++ .../decision_maker_panel.h | 62 +++ .../state_panel/CMakeLists.txt | 5 +- .../runtime_manager/scripts/computing.yaml | 25 +- 31 files changed, 1648 insertions(+), 388 deletions(-) create mode 100644 ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp create mode 100644 ros/src/computing/planning/decision/packages/decision_maker/include/planner_selector.hpp create mode 100644 ros/src/computing/planning/decision/packages/decision_maker/nodes/planner_selector/planner_selector_node.cpp create mode 100644 ros/src/util/packages/autoware_rviz_plugins/plugin_description.xml create mode 100644 ros/src/util/packages/autoware_rviz_plugins/src/decision_maker_panel/decision_maker_panel.cpp create mode 100644 ros/src/util/packages/autoware_rviz_plugins/src/decision_maker_panel/decision_maker_panel.h diff --git a/ros/src/common/libs/amathutils_lib/include/amathutils_lib/amathutils.hpp b/ros/src/common/libs/amathutils_lib/include/amathutils_lib/amathutils.hpp index 1063d9a2ef2..652136b615a 100644 --- a/ros/src/common/libs/amathutils_lib/include/amathutils_lib/amathutils.hpp +++ b/ros/src/common/libs/amathutils_lib/include/amathutils_lib/amathutils.hpp @@ -15,40 +15,42 @@ namespace amathutils { #define G_MPSS 9.80665 // m/s^2 -inline double rad2deg(double _angle) +inline double rad2deg(const double &_angle) { return _angle * 180 / M_PI; } -inline double deg2rad(double _angle) +inline double deg2rad(const double &_angle) { return _angle / 180 * M_PI; } -inline double mps2kmph(double _mpsval) +inline double mps2kmph(const double &_mpsval) { return (_mpsval * 3.6); // mps * 60sec * 60minutes / 1000m } -inline double kmph2mps(double _kmphval) +inline double kmph2mps(const double &_kmphval) { return (_kmphval * 1000 / 60 / 60); // kmph * 1000m / 60sec / 60sec } -inline double getGravityAcceleration(double _acceleration_mpss) +inline double getGravityAcceleration(const double &_acceleration_mpss) { return _acceleration_mpss / G_MPSS; } -inline double getAcceleration(double _v0, double _v, double _x) +inline double getAcceleration(const double &_v0, const double &_v, const double &_x) { return (_v * _v - _v0 * _v0) / 2 / _x; } -inline double getTimefromAcceleration(double _v0, double _v, double _a) +inline double getTimefromAcceleration(const double &_v0, const double &_v, const double &_a) { return (_v - _v0) / _a; } +geometry_msgs::Point getCrossPoint(const geometry_msgs::Point &_l1_p1, const geometry_msgs::Point &_l1_p2, + const geometry_msgs::Point &_l2_p1, const geometry_msgs::Point &_l2_p2); geometry_msgs::Point getNearPtOnLine(const geometry_msgs::Point &_p, const geometry_msgs::Point &_a, const geometry_msgs::Point &_b); double find_distance(const geometry_msgs::Point &_from, const geometry_msgs::Point &_to); @@ -60,7 +62,7 @@ int isPointLeftFromLine(const geometry_msgs::Point &_target, const geometry_msgs const geometry_msgs::Point &_line_p2); double getPoseYawAngle(const geometry_msgs::Pose &_pose); double calcPosesAngleDiffRaw(const geometry_msgs::Pose &p_from, const geometry_msgs::Pose &_p_to); -double radianNormalize(double _angle); +double radianNormalize(const double &_angle); double calcPosesAngleDiffDeg(const geometry_msgs::Pose &_p_from, const geometry_msgs::Pose &_p_to); double calcPosesAngleDiffRad(const geometry_msgs::Pose &_p_from, const geometry_msgs::Pose &_p_to); } diff --git a/ros/src/common/libs/amathutils_lib/src/Amathutils.cpp b/ros/src/common/libs/amathutils_lib/src/Amathutils.cpp index be827ea7ce4..ab4ec72a1cc 100644 --- a/ros/src/common/libs/amathutils_lib/src/Amathutils.cpp +++ b/ros/src/common/libs/amathutils_lib/src/Amathutils.cpp @@ -2,6 +2,10 @@ namespace amathutils { +geometry_msgs::Point getCrossPoint(const geometry_msgs::Point &_l1_p1, const geometry_msgs::Point &_l1_p2, + const geometry_msgs::Point &_l2_p1, const geometry_msgs::Point &_l2_p2) +{ +} geometry_msgs::Point getNearPtOnLine(const geometry_msgs::Point &_p, const geometry_msgs::Point &_a, const geometry_msgs::Point &_b) { @@ -13,17 +17,17 @@ geometry_msgs::Point getNearPtOnLine(const geometry_msgs::Point &_p, const geome vnab.x = (_b.x - _a.x) / len; vnab.y = (_b.y - _a.y) / len; - vnab.z = (_b.z - _a.z) / len; + vnab.z = 0; //(_b.z - _a.z) / len; vap.x = _p.x - _a.x; vap.y = _p.y - _a.y; - vap.z = _p.z - _a.z; + vap.z = 0; //_p.z - _a.z; - double dist_ax = vnab.x * vap.x + vnab.y * vap.y + vnab.z * vap.z; + double dist_ax = vnab.x * vap.x + vnab.y * vap.y + vnab.z + vap.z; ret.x = _a.x + (vnab.x * dist_ax); ret.y = _a.y + (vnab.y * dist_ax); - ret.z = _a.z + (vnab.z * dist_ax); + ret.z = 0; //_a.z + (vnab.z * dist_ax); return ret; } @@ -94,7 +98,7 @@ double calcPosesAngleDiffRaw(const geometry_msgs::Pose &p_from, const geometry_m return getPoseYawAngle(p_from) - getPoseYawAngle(_p_to); } -double radianNormalize(double _angle) +double radianNormalize(const double &_angle) { double n_angle = std::fmod(_angle, 2 * M_PI); n_angle = n_angle > M_PI ? n_angle - 2 * M_PI : n_angle < -M_PI ? 2 * M_PI + n_angle : n_angle; diff --git a/ros/src/common/libs/state_machine_lib/include/state_machine_lib/state.hpp b/ros/src/common/libs/state_machine_lib/include/state_machine_lib/state.hpp index f87a1100cab..6742eb062cf 100644 --- a/ros/src/common/libs/state_machine_lib/include/state_machine_lib/state.hpp +++ b/ros/src/common/libs/state_machine_lib/include/state_machine_lib/state.hpp @@ -20,8 +20,9 @@ class State std::string state_name_; uint64_t state_id_; - + std::shared_ptr parent_state_; + std::function CallbackUpdateFunc; std::function CallbackEntryFunc; @@ -125,12 +126,12 @@ class State transition_map_[key] = val; } - uint64_t getTansitionVal(std::string key) const + uint64_t getTansitionVal(std::string key) { - return transition_map_.at(key); + return transition_map_[key]; } - const std::map& getTransitionMap(void) + std::map getTransitionMap(void) { return transition_map_; } diff --git a/ros/src/common/libs/state_machine_lib/include/state_machine_lib/state_context.hpp b/ros/src/common/libs/state_machine_lib/include/state_machine_lib/state_context.hpp index 69bc9020fe1..c4397f2df3c 100644 --- a/ros/src/common/libs/state_machine_lib/include/state_machine_lib/state_context.hpp +++ b/ros/src/common/libs/state_machine_lib/include/state_machine_lib/state_context.hpp @@ -32,24 +32,22 @@ class StateContext state_map_[child]->setParent(state_map_[parent]); } uint64_t parseChildState(const YAML::Node& node, uint64_t _id_counter, uint64_t _parent_id); - int32_t getStateIDbyName(std::string _name); + uint64_t getStateIDbyName(std::string _name); void setTransitionMap(const YAML::Node& node, const std::shared_ptr& _state); std::shared_ptr getStatePtr(const YAML::Node& node); std::shared_ptr getStatePtr(const std::string& _state_name); std::shared_ptr getStatePtr(const uint64_t& _state_id); + void parseChildTransitionMap(const YAML::Node& node); bool isCurrentState(const std::string& state_name); - std::string dot_output_name; - public: - StateContext(const std::string& file_name, const std::string& msg_name) + StateContext(const std::string& file_name, const std::string& msg_name = "autoware_states") { createStateMap(file_name, msg_name); root_state_ = getStartState(); - dot_output_name = "/tmp/" + msg_name + ".dot"; - createDOTGraph(dot_output_name); + createDOTGraph("/tmp/a.dot"); } ~StateContext() @@ -60,6 +58,8 @@ class StateContext std::shared_ptr getStartState(void); void onUpdate(void); + void onEntry(uint64_t _prev_state_id); + void onExit(); bool setCallback(const CallbackType& _type, const std::string& _state_name, const std::function& _f); diff --git a/ros/src/common/libs/state_machine_lib/src/state_context.cpp b/ros/src/common/libs/state_machine_lib/src/state_context.cpp index 7b41abad3e8..8ea630fb506 100644 --- a/ros/src/common/libs/state_machine_lib/src/state_context.cpp +++ b/ros/src/common/libs/state_machine_lib/src/state_context.cpp @@ -6,7 +6,6 @@ #include #include #include -#include #include @@ -28,21 +27,21 @@ bool StateContext::setCallback(const CallbackType& _type, const std::string& _st const std::function& _f) { bool ret = false; - int32_t _state_id = getStateIDbyName(_state_name); - if (_state_id != -1 && getStatePtr(static_cast(_state_id))) + uint64_t _state_id = getStateIDbyName(_state_name); + if (getStatePtr(_state_id)) { switch (_type) { case CallbackType::UPDATE: - getStatePtr(static_cast(_state_id))->setCallbackUpdate(_f); + getStatePtr(_state_id)->setCallbackUpdate(_f); ret = true; break; case CallbackType::ENTRY: - getStatePtr(static_cast(_state_id))->setCallbackEntry(_f); + getStatePtr(_state_id)->setCallbackEntry(_f); ret = true; break; case CallbackType::EXIT: - getStatePtr(static_cast(_state_id))->setCallbackExit(_f); + getStatePtr(_state_id)->setCallbackExit(_f); ret = true; break; default: @@ -77,23 +76,24 @@ bool StateContext::isCurrentState(const std::string& state_name) void StateContext::nextState(const std::string& transition_key) { + const std::string dot_output_name = "/tmp/a.dot"; std::shared_ptr state = root_state_; std::string _target_state_name; - std::vector key_list; + std::vector key_list_; while (state) { if (state->getTransitionMap().count(transition_key) != 0) { const uint64_t transition_state_id = state->getTransitionMap().at(transition_key); - _target_state_name = state_map_.at(transition_state_id)->getStateName(); + _target_state_name = state_map_[transition_state_id]->getStateName(); if (isCurrentState(_target_state_name)) { return; } - if (state_map_.at(transition_state_id)->getParent()) + if (state_map_[transition_state_id]->getParent()) { DEBUG_PRINT("[Child]:TransitionState: %d -> %d\n", state->getStateID(), transition_state_id); @@ -101,37 +101,33 @@ void StateContext::nextState(const std::string& transition_key) do { - if (in_state == state_map_.at(transition_state_id)->getParent()) + if (in_state == state_map_[transition_state_id]->getParent()) { if (in_state->getChild()) { - key_list.push_back(in_state->getChild()->getEnteredKey()); + key_list_.push_back(in_state->getChild()->getEnteredKey()); in_state->getChild()->onExit(); } - in_state->setChild(state_map_.at(transition_state_id)); + in_state->setChild(state_map_[transition_state_id]); break; } in_state = in_state->getChild(); } while (in_state); -#ifdef DEBUG createDOTGraph(dot_output_name); -#endif - state_map_.at(transition_state_id)->setEnteredKey(transition_key); - state_map_.at(transition_state_id)->onEntry(); + state_map_[transition_state_id]->setEnteredKey(transition_key); + state_map_[transition_state_id]->onEntry(); } else { DEBUG_PRINT("[Root]:TransitionState: %d -> %d\n", state->getStateID(), transition_state_id); state->onExit(); - root_state_ = state_map_.at(transition_state_id); + root_state_ = state_map_[transition_state_id]; root_state_->setChild(nullptr); root_state_->setParent(nullptr); root_state_->setEnteredKey(transition_key); -#ifdef DEBUG createDOTGraph(dot_output_name); -#endif root_state_->onEntry(); } @@ -153,11 +149,14 @@ void StateContext::nextState(const std::string& transition_key) void StateContext::createGraphTransitionList(std::ofstream& outputfile, int idx, std::map>& sublist) { - if (!sublist[idx].empty() || state_map_.at(idx)->getParent() == NULL) + /* FIX THIS + * Not support single state, which state is integrated before state circle.....;( + * */ + if (!sublist[idx].empty() || state_map_[idx]->getParent() == NULL) { outputfile << "subgraph cluster_" << idx << "{\n" - << "label = \"" << state_map_.at(idx)->getStateName() << "\";\n"; - if (!state_map_.at(idx)->getParent()) + << "label = \"" << state_map_[idx]->getStateName() << "\";\n"; + if (!state_map_[idx]->getParent()) { outputfile << "group = 1;\n"; } @@ -168,24 +167,24 @@ void StateContext::createGraphTransitionList(std::ofstream& outputfile, int idx, } } - for (auto& map : state_map_.at(idx)->getTransitionMap()) + for (auto& map : state_map_[idx]->getTransitionMap()) { - if ((state_map_.at(map.second)->getParent() == state_map_.at(idx)->getParent() || - state_map_.at(map.second)->getParent() == state_map_.at(idx)) && - state_map_.at(map.second)->getParent() != NULL) + if ((state_map_[map.second]->getParent() == state_map_[idx]->getParent() || + state_map_[map.second]->getParent() == state_map_[idx]) && + state_map_[map.second]->getParent() != NULL) { outputfile << idx << "->" << map.second << " [label=\"" << map.first << "\"];\n"; } } - if (!sublist[idx].empty() || state_map_.at(idx)->getParent() == NULL) + if (!sublist[idx].empty() || state_map_[idx]->getParent() == NULL) { outputfile << "}\n"; } - for (auto& map : state_map_.at(idx)->getTransitionMap()) + for (auto& map : state_map_[idx]->getTransitionMap()) { - if ((state_map_.at(map.second)->getParent() != state_map_.at(idx)->getParent() && - state_map_.at(map.second)->getParent() != state_map_.at(idx)) || - state_map_.at(map.second)->getParent() == NULL) + if ((state_map_[map.second]->getParent() != state_map_[idx]->getParent() && + state_map_[map.second]->getParent() != state_map_[idx]) || + state_map_[map.second]->getParent() == NULL) { outputfile << idx << "->" << map.second << " [label=\"" << map.first << "\"];\n"; } @@ -250,16 +249,16 @@ std::shared_ptr StateContext::getStartState() return nullptr; } -int32_t StateContext::getStateIDbyName(std::string _name) +uint64_t StateContext::getStateIDbyName(std::string _name) { for (const auto& i : state_map_) { if (i.second->getStateName() == _name) { - return static_cast(i.second->getStateID()); + return i.second->getStateID(); } } - return -1; + return 0; } std::string StateContext::getAvailableTransition(void) @@ -271,7 +270,7 @@ std::string StateContext::getAvailableTransition(void) { for (const auto& keyval : state->getTransitionMap()) { - text += keyval.first + ":" + state_map_.at(keyval.second)->getStateName() + ","; + text += keyval.first + ":" + state_map_[keyval.second]->getStateName() + ","; } state = state->getChild(); } while (state != nullptr); @@ -297,11 +296,7 @@ void StateContext::setTransitionMap(const YAML::Node& node, const std::shared_pt { for (unsigned int j = 0; j < node.size(); j++) { - int32_t state_id = getStateIDbyName(node[j]["Target"].as()); - if (state_id == -1) - continue; - - _state->addTransition(node[j]["Key"].as(), static_cast(state_id)); + _state->addTransition(node[j]["Key"].as(), getStateIDbyName(node[j]["Target"].as())); } } @@ -318,20 +313,26 @@ std::shared_ptr StateContext::getStatePtr(const YAML::Node& node) { return getStatePtr(node["StateName"].as()); } - std::shared_ptr StateContext::getStatePtr(const std::string& _state_name) { - int32_t state_id = getStateIDbyName(_state_name); - - if (_state_name == "~" || state_id == -1) + if (_state_name == "~") return nullptr; else - return getStatePtr(static_cast(state_id)); + return getStatePtr(getStateIDbyName(_state_name)); } std::shared_ptr StateContext::getStatePtr(const uint64_t& _state_id) { - return state_map_.at(_state_id); + return state_map_[_state_id]; +} + +void StateContext::parseChildTransitionMap(const YAML::Node& node) +{ + for (unsigned int j = 0; j < node.size(); j++) + { + setTransitionMap(node[j]["Transition"], getStatePtr(node[j])); + parseChildTransitionMap(node[j]["Child"]); + } } void StateContext::createStateMap(std::string _state_file_name, std::string _msg_name) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/CMakeLists.txt b/ros/src/computing/planning/decision/packages/decision_maker/CMakeLists.txt index f30761c526a..6c56aa80be3 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/CMakeLists.txt +++ b/ros/src/computing/planning/decision/packages/decision_maker/CMakeLists.txt @@ -67,11 +67,8 @@ add_executable(decision_maker_node nodes/decision_maker/decision_maker_node_publish.cpp nodes/decision_maker/cross_road_area.cpp ) -target_link_libraries(decision_maker_node - ${catkin_LIBRARIES} - ${vector_map_LIBRARIES} - ) -add_dependencies(decision_maker_node autoware_msgs_generate_msgs_cpp ${catkin_EXPORTED_TARGETS}) +target_link_libraries(decision_maker_node ${catkin_LIBRARIES}) +add_dependencies(decision_maker_node ${catkin_EXPORTED_TARGETS}) install(TARGETS decision_maker_node ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} @@ -85,33 +82,8 @@ install(DIRECTORY include/${PROJECT_NAME}/ PATTERN ".svn" EXCLUDE ) -install(DIRECTORY launch/ - DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/launch - PATTERN ".svn" EXCLUDE - ) - -install(FILES - autoware_state_drive.yaml - autoware_state_mission.yaml - autoware_state_vehicle.yaml - DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}) - -if(CATKIN_ENABLE_TESTING) - find_package(rostest REQUIRED) - add_rostest_gtest(test-decision_maker - test/test_decision_maker.test - test/src/test_main.cpp - test/src/test_node_decision.cpp - test/src/test_node_state_drive.cpp - nodes/decision_maker/decision_maker_node_core.cpp - nodes/decision_maker/decision_maker_node_decision.cpp - nodes/decision_maker/decision_maker_node_init.cpp - nodes/decision_maker/decision_maker_node_callback.cpp - nodes/decision_maker/decision_maker_node_state_vehicle.cpp - nodes/decision_maker/decision_maker_node_state_drive.cpp - nodes/decision_maker/decision_maker_node_state_mission.cpp - nodes/decision_maker/decision_maker_node_publish.cpp - nodes/decision_maker/cross_road_area.cpp) - add_dependencies(test-decision_maker ${catkin_EXPORTED_TARGETS}) - target_link_libraries(test-decision_maker ${catkin_LIBRARIES} ${vector_map_LIBRARIES}) -endif() +# Install config files +foreach(dir config) + install(DIRECTORY ${dir}/ + DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/${dir}) +endforeach(dir) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_drive.yaml b/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_drive.yaml index 472efcbceaf..eb06c6fe6db 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_drive.yaml +++ b/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_drive.yaml @@ -1,17 +1,10 @@ --- -autoware_states_drive: +autoware_states: - StateName: Start Transition: - Key: started - Target: WaitReady - Parent: ~ - - - StateName: WaitReady - Transition: - - - Key: vehicle_is_ready Target: WaitEngage Parent: ~ - @@ -20,19 +13,6 @@ autoware_states_drive: - Key: operation_start Target: Drive - - - Key: emergency - Target: DriveEmergency - Parent: ~ - - - StateName: DriveEmergency - Transition: - - - Key: return_from_emergency - Target: WaitEngage - - - Key: return_to_ready - Target: WaitEngage Parent: ~ - StateName: Drive @@ -46,9 +26,6 @@ autoware_states_drive: - Key: operation_end Target: WaitEngage - - - Key: emergency - Target: DriveEmergency Parent: ~ - StateName: LaneArea @@ -59,19 +36,22 @@ autoware_states_drive: - Key: on_bus_stop Target: BusStop + - + Key: emergency + Target: LaneAreaEmergency Parent: Drive - StateName: BusStop Transition: - - Key: on_pull_in - Target: PullIn + Key: on_pull_over + Target: PullOver - Key: on_pull_out Target: PullOut Parent: LaneArea - - StateName: PullIn + StateName: PullOver Transition: [] Parent: BusStop - @@ -112,9 +92,6 @@ autoware_states_drive: - Key: wait Target: L_Wait - - - Key: found_obstacle_in_stopped_area - Target: L_Stop Parent: Cruise - StateName: L_Stop @@ -165,9 +142,6 @@ autoware_states_drive: - Key: wait Target: R_Wait - - - Key: found_obstacle_in_stopped_area - Target: R_Stop Parent: Cruise - StateName: R_Stop @@ -218,9 +192,6 @@ autoware_states_drive: - Key: wait Target: Wait - - - Key: found_obstacle_in_stopped_area - Target: Stop Parent: Cruise - StateName: Stop @@ -254,6 +225,49 @@ autoware_states_drive: - Key: found_stopline Target: StopLine + - + Key: completely_stopped + Target: TryAvoidance + Parent: Straight + - + StateName: TryAvoidance + Transition: + - + Key: found_path + Target: CheckAvoidance + - + Key: cannot_found_path + Target: Go + Parent: Straight + - + StateName: CheckAvoidance + Transition: + - + Key: execute_avoidance + Target: Avoidance + - + Key: avoidance_aborted + Target: Go + Parent: Straight + - + StateName: Avoidance + Transition: + - + Key: completed_avoidance + Target: ReturnToLane + - + Key: avoidance_aborted + Target: Go + Parent: Straight + - + StateName: ReturnToLane + Transition: + - + Key: completed_return + Target: Go + - + Key: avoidance_aborted + Target: Go Parent: Straight - StateName: Back @@ -264,9 +278,6 @@ autoware_states_drive: - Key: wait Target: B_Wait - - - Key: found_obstacle_in_stopped_area - Target: B_Stop Parent: Cruise - StateName: B_Stop @@ -343,8 +354,19 @@ autoware_states_drive: - Key: on_parking Target: Parking + - + Key: emergency + Target: FreeAreaEmergency Parent: Drive - StateName: Parking Transition: [] Parent: FreeArea + - + StateName: LaneAreaEmergency + Transition: [] + Parent: LaneArea + - + StateName: FreeAreaEmergency + Transition: [] + Parent: FreeArea diff --git a/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_mission.yaml b/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_mission.yaml index e73ff04f714..6ab51320820 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_mission.yaml +++ b/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_mission.yaml @@ -1,5 +1,5 @@ --- -autoware_states_mission: +autoware_states: - StateName: Start Transition: @@ -40,9 +40,6 @@ autoware_states_mission: - Key: mission_canceled Target: MissionAborted - - - Key: emergency - Target: MissionAborted Parent: ~ - StateName: Driving @@ -53,9 +50,6 @@ autoware_states_mission: - Key: mission_aborted Target: MissionAborted - - - Key: emergency - Target: MissionAborted - Key: request_mission_change Target: DrivingMissionChange @@ -100,10 +94,4 @@ autoware_states_mission: - Key: goto_wait_order Target: WaitOrder - - - Key: return_from_emergency - Target: WaitVehicleReady - - - Key: return_to_ready - Target: DriveReady Parent: ~ diff --git a/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_vehicle.yaml b/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_vehicle.yaml index 06c26c609c3..8faef7fc4d8 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_vehicle.yaml +++ b/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_vehicle.yaml @@ -1,5 +1,5 @@ --- -autoware_states_vehicle: +autoware_states: - StateName: Start Transition: @@ -54,15 +54,12 @@ autoware_states_vehicle: Transition: - Key: emergency - Target: VehicleEmergency + Target: Emergency Parent: ~ - - StateName: VehicleEmergency + StateName: Emergency Transition: - - Key: return_from_emergency + Key: restart Target: Init - - - Key: return_to_ready - Target: VehicleReady Parent: ~ diff --git a/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp b/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp new file mode 100644 index 00000000000..137b765a278 --- /dev/null +++ b/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp @@ -0,0 +1,430 @@ +#ifndef __DECISION_MAKER_NODE__ +#define __DECISION_MAKER_NODE__ + +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +namespace decision_maker +{ +using namespace vector_map; +using cstring_t = const std::string; + +enum class E_Lamp : int32_t +{ + LAMP_EMPTY = -1, + LAMP_CLEAR = 0, + LAMP_RIGHT = 1, + LAMP_LEFT = 2, + LAMP_HAZARD = 3 +}; +enum class E_Control : int32_t +{ + KEEP = -1, + STOP = 1, + DECELERATE = 2, + ACCELERATE = 3, + OTHERS = 4, +}; + +enum class E_ChangeFlags : int32_t +{ + STRAIGHT, + RIGHT, + LEFT, + + UNKNOWN = -1, +}; + +inline bool hasvMap(void) +{ + return true; +} + +template +typename std::underlying_type::type enumToInteger(T t) +{ + return static_cast::type>(t); +} + +struct AutowareStatus +{ + std::map EventFlags; + + // planning status + autoware_msgs::LaneArray using_lane_array; // with wpstate + autoware_msgs::LaneArray based_lane_array; + autoware_msgs::Lane finalwaypoints; + int closest_waypoint; + int obstacle_waypoint; + int change_flag; + + // vehicle status + geometry_msgs::Pose pose; + double velocity; // kmph + + int found_stopsign_idx; + int prev_stopped_wpidx; + + AutowareStatus(void) : closest_waypoint(-1), velocity(0), found_stopsign_idx(-1), obstacle_waypoint(-1) + { + } + + // control status +}; + +class DecisionMakerNode +{ +private: + ros::NodeHandle nh_; + ros::NodeHandle private_nh_; + + // Publishers + std::unordered_map Pubs; + // Subscribers + std::unordered_map Subs; + + std::shared_ptr spinners; + + AutowareStatus current_status_; + + // ROS Messages + std_msgs::String state_string_msg; + geometry_msgs::PoseStamped current_pose_; + + jsk_rviz_plugins::OverlayText state_text_msg; + + // ROS Messages(Autoware) + autoware_msgs::Lane current_finalwaypoints_; + vector_map_msgs::AreaArray vMap_Areas; + vector_map_msgs::PointArray vMap_Points; + vector_map_msgs::LineArray vMap_Lines; + vector_map_msgs::CrossRoadArray vMap_CrossRoads; + + std::vector inside_points_; + + tf::TransformListener tflistener_baselink; + + int closest_stop_waypoint_; + int closest_stopline_waypoint_; + int goal_waypoint_; + autoware_msgs::Waypoint CurrentStoplineTarget_; + + double average_velocity_; + int closest_waypoint_; + CrossRoadArea* ClosestArea_; + std::string CurrentStateName; + std::string TextOffset; + std::vector intersects; + double displacement_from_path_; + + bool foundOtherVehicleForIntersectionStop_; // In fact this should be defined as state. + class DetectionArea + { + public: + double x1, x2; + double y1, y2; + + DetectionArea() + { + } + }; + DetectionArea detectionArea_; + + bool isManualLight; + + // Param + bool enableDisplayMarker; + bool auto_mission_reload_; + bool use_management_system_; + bool disuse_vector_map_; + uint32_t param_num_of_steer_behind_; + double change_threshold_dist_; + double change_threshold_angle_; + double time_to_avoidance_; + double goal_threshold_dist_; + double goal_threshold_vel_; + + // for vectormap server + // ros::ServiceClient cross_road_cli; + // vector_map_server::GetCrossRoad cross_road_srv; + + // initialization flags for initialized by callback + std::mutex vMap_mutex; + bool created_shift_lane_flag_; + + // initialization method + void initROS(); + void initVectorMap(void); + void initStateMsgs(void); + bool initVectorMapClient(void); + + void createSubscriber(void); + void createPublisher(void); + + // looping method + void update(void); + void update_msgs(void); + void update_pubsub(void); + + void publishToVelocityArray(); + int createCrossRoadAreaMarker(visualization_msgs::Marker& crossroad_marker, double scale); + + /* for planning according to state*/ + void publishStoppedLaneArray(void); + void publishControlledLaneArray(void); + void updateLaneWaypointsArray(void); + void changeVelocityBasedLane(void); + void changeVelocityLane(int dir); + void createShiftLane(void); + void changeShiftLane(void); + void removeShiftLane(void); + void setAllStoplineStop(void); + + void publishOperatorHelpMessage(cstring_t& message); + void publishLampCmd(const E_Lamp& status); + void publishStoplineWaypointIdx(int wp_idx); + void publishLightColor(int status); + + /* decision */ + void tryNextState(cstring_t& key); + bool isArrivedGoal(void); + bool isCrossRoadByVectorMapServer(const autoware_msgs::Lane& lane_msg, const geometry_msgs::PoseStamped& pose_msg); + bool isLocalizationConvergence(const geometry_msgs::Point& _current_point); + bool handleStateCmd(const uint64_t _state_num); + void insertPointWithinCrossRoad(const std::vector& _intersects, autoware_msgs::LaneArray& lane_array); + void setWaypointState(autoware_msgs::LaneArray& lane_array); + bool waitForEvent(cstring_t& key, const bool& flag); + bool waitForEvent(cstring_t& key, const bool& flag, const double& timeout); + bool drivingMissionCheck(void); + + double calcIntersectWayAngle(const autoware_msgs::Lane& laneinArea); + double calcPosesAngleDiff(const geometry_msgs::Pose& p_from, const geometry_msgs::Pose& p_to); + double calcPosesAngleDiffN(const geometry_msgs::Pose& p_from, const geometry_msgs::Pose& p_to); + double getPoseAngle(const geometry_msgs::Pose& p); + + uint8_t getSteeringStateFromWaypoint(void); + uint8_t getEventStateFromWaypoint(void); + std::pair getStopSignStateFromWaypoint(void); + + // current decision maker is support only lane area + bool isVehicleOnLaneArea(void) + { + return true; + } + bool isVehicleOnFreeArea(void) + { + return false; + } + + void setupStateCallback(void); + + /* + * state callback + **/ + + /*** state vehicle ***/ + // entry callback + void entryInitState(cstring_t& state_name, int status); + void entrySensorInitState(cstring_t& state_name, int status); + void entryMapInitState(cstring_t& state_name, int status); + void entryLocalizationInitState(cstring_t& state_name, int status); + void entryPlanningInitState(cstring_t& state_name, int status); + void entryVehicleInitState(cstring_t& state_name, int status); + void entryVehicleReadyState(cstring_t& state_name, int status); + void entryVehicleEmergencyState(cstring_t& state_name, int status); + // update callback + void updateInitState(cstring_t& state_name, int status); + void updateSensorInitState(cstring_t& state_name, int status); + void updateMapInitState(cstring_t& state_name, int status); + void updateLocalizationInitState(cstring_t& state_name, int status); + void updatePlanningInitState(cstring_t& state_name, int status); + void updateVehicleInitState(cstring_t& state_name, int status); + void updateVehicleReadyState(cstring_t& state_name, int status); + void updateVehicleEmergencyState(cstring_t& state_name, int status); + // exit callback + + /*** state mission ***/ + // entry callback + void entryWaitVehicleReadyState(cstring_t& state_name, int status); + void entryWaitOrderState(cstring_t& state_name, int status); + void entryMissionCheckState(cstring_t& state_name, int status); + void entryDriveReadyState(cstring_t& state_name, int status); + void entryDrivingState(cstring_t& state_name, int status); + void entryDrivingMissionChangeState(cstring_t& state_name, int status); + void entryMissionAbortedState(cstring_t& state_name, int status); + void entryMissionCompleteState(cstring_t& state_name, int status); + // update callback + void updateWaitVehicleReadyState(cstring_t& state_name, int status); + void updateWaitOrderState(cstring_t& state_name, int status); + void updateMissionCheckState(cstring_t& state_name, int status); + void updateDriveReadyState(cstring_t& state_name, int status); + void updateDrivingState(cstring_t& state_name, int status); + void updateDrivingMissionChangeState(cstring_t& state_name, int status); + void updateMissionChangeSucceededState(cstring_t& state_name, int status); + void updateMissionChangeFailedState(cstring_t& state_name, int status); + void updateMissionCompleteState(cstring_t& state_name, int status); + void updateMissionAbortedState(cstring_t& state_name, int status); + // exit callback + void exitWaitOrderState(cstring_t& state_name, int status); + void exitDrivingState(cstring_t& state_name, int status); + // void exitWaitMissionOrderState(cstring_t& state_name, int status); + + /*** state drive ***/ + // entry callback + void entryDriveState(cstring_t& state_name, int status); + void entryTurnState(cstring_t& state_name, int status); + void entryTryAvoidanceState(cstring_t& state_name, int status); + void entryCheckAvoidanceState(cstring_t& state_name, int status); + void entryAvoidanceState(cstring_t& state_name, int status); + void entryReturnToLaneState(cstring_t& state_name, int status); + void entryLaneChangeState(cstring_t& state_name, int status); + // update callback + void updateWaitEngageState(cstring_t& state_name, int status); + void updateDriveState(cstring_t& state_name, int status); + void updateLaneAreaState(cstring_t& state_name, int status); + void updateFreeAreaState(cstring_t& state_name, int status); + void updateCruiseState(cstring_t& state_name, int status); + void updateBusStopState(cstring_t& state_name, int status); + void updateParkingState(cstring_t& state_name, int status); + void updateDriveEmergencyState(cstring_t& state_name, int status); + void updateLeftTurnState(cstring_t& state_name, int status); + void updateRightTurnState(cstring_t& state_name, int status); + void updateStraightState(cstring_t& state_name, int status); + void updateBackState(cstring_t& state_name, int status); + void updateLeftLaneChangeState(cstring_t& state_name, int status); + void updateRightLaneChangeState(cstring_t& state_name, int status); + void updatePullOverState(cstring_t& state_name, int status); + void updatePullOutState(cstring_t& state_name, int status); + void updateStoplineState(cstring_t& state_name, int status); + void updateGoState(cstring_t& state_name, int status); + void updateWaitState(cstring_t& state_name, int status); + void updateStopState(cstring_t& state_name, int status); + void updateCheckLeftLaneState(cstring_t& state_name, int status); + void updateCheckRightLaneState(cstring_t& state_name, int status); + void updateChangeToLeftState(cstring_t& state_name, int status); + void updateChangeToRightState(cstring_t& state_name, int status); + void updateTryAvoidanceState(cstring_t& state_name, int status); + void updateCheckAvoidanceState(cstring_t& state_name, int status); + void updateAvoidanceState(cstring_t& state_name, int status); + void updateReturnToLaneState(cstring_t& state_name, int status); + // exit callback + void exitStopState(cstring_t& state_name, int status); + + // callback by topic subscribing + void callbackFromFilteredPoints(const sensor_msgs::PointCloud2::ConstPtr& msg); + void callbackFromCurrentVelocity(const geometry_msgs::TwistStamped& msg); + void callbackFromCurrentPose(const geometry_msgs::PoseStamped& msg); + void callbackFromClosestWaypoint(const std_msgs::Int32& msg); + void callbackFromLightColor(const ros::MessageEvent& event); + void callbackFromLaneChangeFlag(const std_msgs::Int32& msg); + void callbackFromFinalWaypoint(const autoware_msgs::Lane& msg); + void callbackFromLaneWaypoint(const autoware_msgs::LaneArray& msg); + void callbackFromTwistCmd(const geometry_msgs::TwistStamped& msg); + void callbackFromSimPose(const geometry_msgs::PoseStamped& msg); + void callbackFromConfig(const autoware_config_msgs::ConfigDecisionMaker& msg); + void callbackFromObjectDetector(const autoware_msgs::CloudClusterArray& msg); + void callbackFromStateCmd(const std_msgs::String& msg); + void callbackFromObstacleWaypoint(const std_msgs::Int32& msg); + + void setEventFlag(cstring_t& key, const bool& value) + { + current_status_.EventFlags[key] = value; + } + + bool isEventFlagTrue(std::string key) + { + if (current_status_.EventFlags.count(key) == 0) + { + current_status_.EventFlags[key] = false; + } + return current_status_.EventFlags[key]; + } + +public: + state_machine::StateContext* ctx_vehicle; + state_machine::StateContext* ctx_mission; + state_machine::StateContext* ctx_drive; + VectorMap g_vmap; + + DecisionMakerNode(int argc, char** argv) + : private_nh_("~") + , enableDisplayMarker(false) + , auto_mission_reload_(false) + , use_management_system_(false) + , param_num_of_steer_behind_(30) + { + std::string file_name_mission; + std::string file_name_drive; + std::string file_name_vehicle; + private_nh_.getParam("state_vehicle_file_name", file_name_vehicle); + private_nh_.getParam("state_mission_file_name", file_name_mission); + private_nh_.getParam("state_drive_file_name", file_name_drive); + + ctx_vehicle = new state_machine::StateContext(file_name_vehicle); + ctx_mission = new state_machine::StateContext(file_name_mission); + ctx_drive = new state_machine::StateContext(file_name_drive); + init(); + setupStateCallback(); + + current_status_.prev_stopped_wpidx = -1; + } + + void init(void); + void run(void); + + bool isSubscriberRegistered(cstring_t& topic_name) + { + return Subs.count(topic_name) ? true : false; + } + + static geometry_msgs::Point VMPoint2GeoPoint(const vector_map_msgs::Point& vp) + { + geometry_msgs::Point gp; + gp.x = vp.ly; + gp.y = vp.bx; + gp.z = vp.h; + return gp; + } +}; + +} // namespace decision_maker + +#endif diff --git a/ros/src/computing/planning/decision/packages/decision_maker/include/planner_selector.hpp b/ros/src/computing/planning/decision/packages/decision_maker/include/planner_selector.hpp new file mode 100644 index 00000000000..86eb42af78a --- /dev/null +++ b/ros/src/computing/planning/decision/packages/decision_maker/include/planner_selector.hpp @@ -0,0 +1,77 @@ +#ifndef __PLANNER_SELECTOR_HPP__ +#define __PLANNER_SELECTOR_HPP__ + +#include +#include +#include +#include + +#include +#include +#include + +#include + +namespace decision_maker +{ +#define DEFAULT_LATENCY_NUM 5 +#define DEFAULT_WAYPOINTS_NUM 3 +#define DEFAULT_CONVERGENCE_NUM 2.0 +class PlannerSelector +{ +private: + ros::NodeHandle nh_; + + std::unordered_map waypoints_; + std::unordered_map Pubs; + std::unordered_map Subs; + + autoware_msgs::Lane final_waypoints_dp_; + autoware_msgs::Lane final_waypoints_astar_; + + std::unordered_map closest_waypoints_; + int closest_waypoint_astar_; + int closest_waypoint_dp_; + + unsigned int way_offset; + + std::mutex _mutex; + + int enableLattice_; + bool pastWaypoint; + unsigned int config_latency_num_; + unsigned int config_waypoints_num_; + double config_convergence_num_; + double current_velocity_; + + bool existWaypoints(const int _config_waypoints_num); + +public: + PlannerSelector() + { + this->initROS(); + enableLattice_ = 0; + pastWaypoint = false; + config_latency_num_ = DEFAULT_LATENCY_NUM; + config_waypoints_num_ = DEFAULT_WAYPOINTS_NUM; + config_convergence_num_ = DEFAULT_CONVERGENCE_NUM; + } + + void initROS(); + +<<<<<<< HEAD + void callbackFromClosest(const ros::MessageEvent& event); + void callbackFromWaypoints(const ros::MessageEvent& event); + void callbackFromLattice(const std_msgs::Int32& msg); + void callbackFromConfig(const autoware_msgs::ConfigPlannerSelector& msg); + void callbackFromCurrentVelocity(const geometry_msgs::TwistStamped& msg); +======= + void callbackFromClosest(const ros::MessageEvent &event); + void callbackFromWaypoints(const ros::MessageEvent &event); + void callbackFromLattice(const std_msgs::Int32 &msg); + void callbackFromConfig(const autoware_config_msgs::ConfigPlannerSelector &msg); + void callbackFromCurrentVelocity(const geometry_msgs::TwistStamped &msg); +>>>>>>> develop +}; +} +#endif diff --git a/ros/src/computing/planning/decision/packages/decision_maker/launch/decision_maker.launch b/ros/src/computing/planning/decision/packages/decision_maker/launch/decision_maker.launch index eb6ec8d28c8..ebc8dd90877 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/launch/decision_maker.launch +++ b/ros/src/computing/planning/decision/packages/decision_maker/launch/decision_maker.launch @@ -3,33 +3,11 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp index e5857792603..a8d3f436c24 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp @@ -22,6 +22,9 @@ namespace decision_maker void DecisionMakerNode::callbackFromFilteredPoints(const sensor_msgs::PointCloud2::ConstPtr& msg) { setEventFlag("received_pointcloud_for_NDT", true); + + /* todo */ + /* create timer for flags reset */ } void DecisionMakerNode::callbackFromSimPose(const geometry_msgs::PoseStamped& msg) @@ -44,13 +47,13 @@ void DecisionMakerNode::callbackFromLaneChangeFlag(const std_msgs::Int32& msg) void DecisionMakerNode::callbackFromConfig(const autoware_config_msgs::ConfigDecisionMaker& msg) { ROS_INFO("Param setted by Runtime Manager"); + enableDisplayMarker = msg.enable_display_marker; auto_mission_reload_ = msg.auto_mission_reload; - auto_engage_ = msg.auto_engage; - auto_mission_change_ = msg.auto_mission_change; - use_fms_ = msg.use_fms; + use_management_system_ = msg.use_management_system; param_num_of_steer_behind_ = msg.num_of_steer_behind; change_threshold_dist_ = msg.change_threshold_dist; change_threshold_angle_ = msg.change_threshold_angle; + time_to_avoidance_ = msg.time_to_avoidance; goal_threshold_dist_ = msg.goal_threshold_dist; goal_threshold_vel_ = msg.goal_threshold_vel; disuse_vector_map_ = msg.disuse_vector_map; @@ -61,6 +64,53 @@ void DecisionMakerNode::callbackFromLightColor(const ros::MessageEventisCurrentState(state_machine::DRIVE_STATE)) + { + if (msg.clusters.size()) + { + // if euclidean_cluster does not use wayarea, it may always founded. + for (const auto cluster : msg.clusters) + { + geometry_msgs::PoseStamped cluster_pose; + geometry_msgs::PoseStamped baselink_pose; + cluster_pose.pose = cluster.bounding_box.pose; + cluster_pose.header = cluster.header; + + tflistener_baselink.transformPose(cluster.header.frame_id, cluster.header.stamp, cluster_pose, "base_link", + baselink_pose); + + if (detectionArea_.x1 * param_detection_area_rate_ >= baselink_pose.pose.position.x && + baselink_pose.pose.position.x >= detectionArea_.x2 * param_detection_area_rate_ && + detectionArea_.y1 * param_detection_area_rate_ >= baselink_pose.pose.position.y && + baselink_pose.pose.position.y >= detectionArea_.y2 * param_detection_area_rate_) + { + l_detection_flag = true; + setFlagTime = ros::Time::now().toSec(); + break; + } + } + } + } + /* The true state continues for more than 1 second. */ + if (l_detection_flag || (ros::Time::now().toSec() - setFlagTime) >= 1.0 /*1.0sec*/) + { + foundOtherVehicleForIntersectionStop_ = l_detection_flag; + } +#endif +} + void DecisionMakerNode::insertPointWithinCrossRoad(const std::vector& _intersects, autoware_msgs::LaneArray& lane_array) { @@ -97,6 +147,7 @@ void DecisionMakerNode::insertPointWithinCrossRoad(const std::vector change_threshold_dist_ || angle_diff_degree > change_threshold_angle_) { return false; @@ -293,6 +343,9 @@ void DecisionMakerNode::callbackFromFinalWaypoint(const autoware_msgs::Lane& msg current_status_.finalwaypoints = msg; setEventFlag("received_finalwaypoints", true); } +void DecisionMakerNode::callbackFromTwistCmd(const geometry_msgs::TwistStamped& msg) +{ +} void DecisionMakerNode::callbackFromClosestWaypoint(const std_msgs::Int32& msg) { diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_decision.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_decision.cpp index aebef11ff05..1db4acafd83 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_decision.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_decision.cpp @@ -79,7 +79,7 @@ bool DecisionMakerNode::isLocalizationConvergence(const geometry_msgs::Point& _c static std::vector distances; static uint32_t distances_count = 0; static geometry_msgs::Point prev_point; - static const int param_convergence_count = 10; + static const int param_convergence_count_ = 10; bool ret = false; @@ -91,11 +91,11 @@ bool DecisionMakerNode::isLocalizationConvergence(const geometry_msgs::Point& _c } distances.push_back(amathutils::find_distance(prev_point, _current_point)); - if (++distances_count > param_convergence_count) /* num of count to judge convergence*/ + if (++distances_count > param_convergence_count_) /* num of count to judge convergence*/ { distances.erase(distances.begin()); distances_count--; - double avg_distances = std::accumulate(distances.begin(), distances.end(), 0.0) / (double)distances.size(); + double avg_distances = std::accumulate(distances.begin(), distances.end(), 0) / distances.size(); if (avg_distances <= 2) /*meter*/ { ret = true; @@ -118,4 +118,12 @@ bool DecisionMakerNode::isArrivedGoal() } return false; } +bool DecisionMakerNode::handleStateCmd(const uint64_t _state_num) +{ + bool _ret = false; + + /* todo */ + /* key */ + return _ret; +} } diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_init.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_init.cpp index 04816112811..d016b15f9a8 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_init.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_init.cpp @@ -107,12 +107,8 @@ void DecisionMakerNode::setupStateCallback(void) std::bind(&DecisionMakerNode::updateBusStopState, this, std::placeholders::_1, 0)); ctx_drive->setCallback(state_machine::CallbackType::UPDATE, "Parking", std::bind(&DecisionMakerNode::updateParkingState, this, std::placeholders::_1, 0)); - ctx_drive->setCallback(state_machine::CallbackType::ENTRY, "DriveEmergency", - std::bind(&DecisionMakerNode::entryDriveEmergencyState, this, std::placeholders::_1, 0)); ctx_drive->setCallback(state_machine::CallbackType::UPDATE, "DriveEmergency", std::bind(&DecisionMakerNode::updateDriveEmergencyState, this, std::placeholders::_1, 0)); - ctx_drive->setCallback(state_machine::CallbackType::EXIT, "DriveEmergency", - std::bind(&DecisionMakerNode::exitDriveEmergencyState, this, std::placeholders::_1, 0)); ctx_drive->setCallback(state_machine::CallbackType::ENTRY, "LeftTurn", std::bind(&DecisionMakerNode::entryTurnState, this, std::placeholders::_1, 0)); ctx_drive->setCallback(state_machine::CallbackType::UPDATE, "LeftTurn", @@ -137,8 +133,8 @@ void DecisionMakerNode::setupStateCallback(void) std::bind(&DecisionMakerNode::entryLaneChangeState, this, std::placeholders::_1, 0)); ctx_drive->setCallback(state_machine::CallbackType::UPDATE, "RightLaneChange", std::bind(&DecisionMakerNode::updateRightLaneChangeState, this, std::placeholders::_1, 0)); - ctx_drive->setCallback(state_machine::CallbackType::UPDATE, "PullIn", - std::bind(&DecisionMakerNode::updatePullInState, this, std::placeholders::_1, 0)); + ctx_drive->setCallback(state_machine::CallbackType::UPDATE, "PullOver", + std::bind(&DecisionMakerNode::updatePullOverState, this, std::placeholders::_1, 0)); ctx_drive->setCallback(state_machine::CallbackType::UPDATE, "PullOut", std::bind(&DecisionMakerNode::updatePullOutState, this, std::placeholders::_1, 0)); @@ -151,15 +147,6 @@ void DecisionMakerNode::setupStateCallback(void) ctx_drive->setCallback(state_machine::CallbackType::UPDATE, "ChangeToRight", std::bind(&DecisionMakerNode::updateChangeToRightState, this, std::placeholders::_1, 0)); - ctx_drive->setCallback(state_machine::CallbackType::ENTRY, "Go", - std::bind(&DecisionMakerNode::entryGoState, this, std::placeholders::_1, 0)); - ctx_drive->setCallback(state_machine::CallbackType::ENTRY, "L_Go", - std::bind(&DecisionMakerNode::entryGoState, this, std::placeholders::_1, 0)); - ctx_drive->setCallback(state_machine::CallbackType::ENTRY, "R_Go", - std::bind(&DecisionMakerNode::entryGoState, this, std::placeholders::_1, 0)); - ctx_drive->setCallback(state_machine::CallbackType::ENTRY, "B_Go", - std::bind(&DecisionMakerNode::entryGoState, this, std::placeholders::_1, 0)); - ctx_drive->setCallback(state_machine::CallbackType::UPDATE, "Go", std::bind(&DecisionMakerNode::updateGoState, this, std::placeholders::_1, 0)); ctx_drive->setCallback(state_machine::CallbackType::UPDATE, "L_Go", @@ -187,15 +174,6 @@ void DecisionMakerNode::setupStateCallback(void) ctx_drive->setCallback(state_machine::CallbackType::UPDATE, "B_StopLine", std::bind(&DecisionMakerNode::updateStoplineState, this, std::placeholders::_1, 0)); - ctx_drive->setCallback(state_machine::CallbackType::ENTRY, "Stop", - std::bind(&DecisionMakerNode::entryStopState, this, std::placeholders::_1, 1)); - ctx_drive->setCallback(state_machine::CallbackType::ENTRY, "L_Stop", - std::bind(&DecisionMakerNode::entryStopState, this, std::placeholders::_1, 1)); - ctx_drive->setCallback(state_machine::CallbackType::ENTRY, "R_Stop", - std::bind(&DecisionMakerNode::entryStopState, this, std::placeholders::_1, 1)); - ctx_drive->setCallback(state_machine::CallbackType::ENTRY, "B_Stop", - std::bind(&DecisionMakerNode::entryStopState, this, std::placeholders::_1, 1)); - ctx_drive->setCallback(state_machine::CallbackType::UPDATE, "Stop", std::bind(&DecisionMakerNode::updateStopState, this, std::placeholders::_1, 1)); ctx_drive->setCallback(state_machine::CallbackType::UPDATE, "L_Stop", @@ -230,6 +208,23 @@ void DecisionMakerNode::setupStateCallback(void) ctx_drive->setCallback(state_machine::CallbackType::EXIT, "B_Stop", std::bind(&DecisionMakerNode::exitStopState, this, std::placeholders::_1, 1)); + ctx_drive->setCallback(state_machine::CallbackType::ENTRY, "TryAvoidance", + std::bind(&DecisionMakerNode::entryTryAvoidanceState, this, std::placeholders::_1, 0)); + ctx_drive->setCallback(state_machine::CallbackType::UPDATE, "TryAvoidance", + std::bind(&DecisionMakerNode::updateTryAvoidanceState, this, std::placeholders::_1, 0)); + ctx_drive->setCallback(state_machine::CallbackType::ENTRY, "CheckAvoidance", + std::bind(&DecisionMakerNode::entryCheckAvoidanceState, this, std::placeholders::_1, 0)); + ctx_drive->setCallback(state_machine::CallbackType::UPDATE, "CheckAvoidance", + std::bind(&DecisionMakerNode::updateCheckAvoidanceState, this, std::placeholders::_1, 0)); + ctx_drive->setCallback(state_machine::CallbackType::ENTRY, "Avoidance", + std::bind(&DecisionMakerNode::entryAvoidanceState, this, std::placeholders::_1, 0)); + ctx_drive->setCallback(state_machine::CallbackType::UPDATE, "Avoidance", + std::bind(&DecisionMakerNode::updateAvoidanceState, this, std::placeholders::_1, 0)); + ctx_drive->setCallback(state_machine::CallbackType::ENTRY, "ReturnToLane", + std::bind(&DecisionMakerNode::entryReturnToLaneState, this, std::placeholders::_1, 0)); + ctx_drive->setCallback(state_machine::CallbackType::UPDATE, "ReturnToLane", + std::bind(&DecisionMakerNode::updateReturnToLaneState, this, std::placeholders::_1, 0)); + ctx_vehicle->nextState("started"); ctx_mission->nextState("started"); ctx_drive->nextState("started"); @@ -261,13 +256,18 @@ void DecisionMakerNode::createPublisher(void) Pubs["lamp_cmd"] = nh_.advertise("/lamp_cmd", 1); // for visualize status + Pubs["crossroad_marker"] = nh_.advertise("/state/cross_road_marker", 1); + Pubs["stopline_target"] = nh_.advertise("/state/stopline_target", 1); + + Pubs["crossroad_inside_marker"] = private_nh_.advertise("/state/cross_inside_marker", 1); + Pubs["crossroad_bbox"] = private_nh_.advertise("/state/crossroad_bbox", 10); + Pubs["state"] = private_nh_.advertise("state", 1, true); - Pubs["state_msg"] = private_nh_.advertise("state_msg", 1, true); - Pubs["state_overlay"] = private_nh_.advertise("state_overlay", 1); + Pubs["state_overlay"] = private_nh_.advertise("/state/overlay_text", 1); Pubs["available_transition"] = private_nh_.advertise("available_transition", 1, true); // for debug - Pubs["target_velocity_array"] = nh_.advertise("target_velocity_array", 1); + Pubs["target_velocity_array"] = nh_.advertise("/target_velocity_array", 1); Pubs["operator_help_text"] = private_nh_.advertise("operator_help_text", 1, true); } @@ -281,7 +281,90 @@ void DecisionMakerNode::initROS() spinners = std::shared_ptr(new ros::AsyncSpinner(3)); spinners->start(); +#if 0 + // message setup + state_text_msg.width = 400; + state_text_msg.height = 500; + state_text_msg.top = 10; + state_text_msg.left = 10; + state_text_msg.bg_color.r = 0; + state_text_msg.bg_color.g = 0; + state_text_msg.bg_color.b = 0; + state_text_msg.bg_color.a = 0.8; + + state_text_msg.line_width = 2; + state_text_msg.text_size = 18; + state_text_msg.font = "DejaVu Sans Mono"; + state_text_msg.fg_color.r = 0.1; + state_text_msg.fg_color.g = 1.0; + state_text_msg.fg_color.b = 0.94; + state_text_msg.fg_color.a = 0.8; + state_text_msg.text = "UNDEFINED"; +#endif update_msgs(); + +#if 0 + // status subscriber + Subs["sim_pose"] = nh_.subscribe("sim_pose", 20, &DecisionMakerNode::callbackFromSimPose, this); + Subs["current_pose"] = nh_.subscribe("current_pose", 20, &DecisionMakerNode::callbackFromCurrentPose, this); + Subs["current_velocity"] = + nh_.subscribe("current_velocity", 20, &DecisionMakerNode::callbackFromCurrentVelocity, this); + Subs["light_color"] = nh_.subscribe("light_color", 10, &DecisionMakerNode::callbackFromLightColor, this); + Subs["final_waypoints"] = nh_.subscribe("final_waypoints", 100, &DecisionMakerNode::callbackFromFinalWaypoint, this); + Subs["twist_cmd"] = nh_.subscribe("twist_cmd", 10, &DecisionMakerNode::callbackFromTwistCmd, this); + Subs["change_flag"] = nh_.subscribe("change_flag", 1, &DecisionMakerNode::callbackFromLaneChangeFlag, this); + Subs["state_cmd"] = nh_.subscribe("state_cmd", 1, &DecisionMakerNode::callbackFromStateCmd, this); + Subs["closest_waypoint"] = + nh_.subscribe("closest_waypoint", 1, &DecisionMakerNode::callbackFromClosestWaypoint, this); + Subs["cloud_clusters"] = nh_.subscribe("cloud_clusters", 1, &DecisionMakerNode::callbackFromObjectDetector, this); + + Subs["state_cmd"] = nh_.subscribe("/state_cmd", 1, &DecisionMakerNode::callbackFromStateCmd, this); + Subs["current_velocity"] = + nh_.subscribe("/current_velocity", 1, &DecisionMakerNode::callbackFromCurrentVelocity, this); + Subs["obstacle_waypoint"] = + nh_.subscribe("/obstacle_waypoint", 1, &DecisionMakerNode::callbackFromObstacleWaypoint, this); + Subs["change_flag"] = nh_.subscribe("/change_flag", 1, &DecisionMakerNode::callbackFromLaneChangeFlag, this); +} +void DecisionMakerNode::createPublisher(void) +{ + // pub + Pubs["state/stopline_wpidx"] = nh_.advertise("/state/stopline_wpidx", 1, false); + + // for controlling other planner + Pubs["lane_waypoints_array"] = nh_.advertise(TPNAME_CONTROL_LANE_WAYPOINTS_ARRAY, 10, true); + Pubs["light_color"] = nh_.advertise("/light_color_managed", 1); + + // for controlling vehicle + Pubs["lamp_cmd"] = nh_.advertise("/lamp_cmd", 1); + + // for visualize status + Pubs["state_overlay"] = nh_.advertise("/state/overlay_text", 1); + Pubs["crossroad_marker"] = nh_.advertise("/state/cross_road_marker", 1); + Pubs["crossroad_inside_marker"] = nh_.advertise("/state/cross_inside_marker", 1); + Pubs["crossroad_bbox"] = nh_.advertise("/state/crossroad_bbox", 10); + Pubs["detection_area"] = nh_.advertise("/state/detection_area", 1); + Pubs["stopline_target"] = nh_.advertise("/state/stopline_target", 1); + + // for debug + Pubs["target_velocity_array"] = nh_.advertise("target_velocity_array", 1); + Pubs["operator_help_text"] = private_nh_.advertise("operator_help_text", 1, true); +} + +void DecisionMakerNode::initROS() +{ + // for subscribe callback function + + ctx->nextState("started"); + + spinners = std::shared_ptr(new ros::AsyncSpinner(3)); + spinners->start(); + + ROS_INFO("Initialized OUT\n"); + // ctx->setCurrentState(state_machine::LOCATEVEHICLE_STATE); + + Subs["lane_waypoints_array"] = + nh_.subscribe(TPNAME_BASED_LANE_WAYPOINTS_ARRAY, 100, &DecisionMakerNode::callbackFromLaneWaypoint, this); +#endif } void DecisionMakerNode::initVectorMap(void) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_publish.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_publish.cpp index f0d240f63b4..c240c766270 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_publish.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_publish.cpp @@ -5,7 +5,6 @@ namespace decision_maker void DecisionMakerNode::publishLampCmd(const E_Lamp& status) { autoware_msgs::LampCmd lamp_msg; - lamp_msg.header.stamp = ros::Time::now(); switch (status) { @@ -77,28 +76,47 @@ void DecisionMakerNode::publishOperatorHelpMessage(cstring_t& message) Pubs["operator_help_text"].publish(createOverlayText(joined_msg, 0)); } +void DecisionMakerNode::update_pubsub(void) +{ +} + +int DecisionMakerNode::createCrossRoadAreaMarker(visualization_msgs::Marker& crossroad_marker, double scale) +{ + jsk_rviz_plugins::OverlayText ret; + + // message setup + ret.width = 500; + ret.height = 500; + ret.top = 10 + (column * 500); + ret.left = 10; + ret.bg_color.r = 0; + ret.bg_color.g = 0; + ret.bg_color.b = 0; + ret.bg_color.a = 0.8; + + ret.line_width = 2; + ret.text_size = 9; + ret.font = "DejaVu Sans Mono"; + ret.fg_color.r = 1.0; + ret.fg_color.g = 1.0; + ret.fg_color.b = 0.5; + ret.fg_color.a = 0.9; + + ret.text = data; + + return ret; +} + void DecisionMakerNode::update_msgs(void) { #if 1 if (ctx_vehicle && ctx_mission && ctx_drive) { - static std::string text_vehicle_state, text_mission_state, text_drive_state; - text_vehicle_state = ctx_vehicle->getStateText(); - text_mission_state = ctx_mission->getStateText(); - text_drive_state = ctx_drive->getStateText(); - static std_msgs::String state_msg; - state_msg.data = text_vehicle_state + text_mission_state + text_drive_state; + state_msg.data = ctx_vehicle->getStateText() + ctx_mission->getStateText() + ctx_drive->getStateText(); Pubs["state"].publish(state_msg); Pubs["state_overlay"].publish(createOverlayText(state_msg.data, 1)); - static autoware_msgs::State state_array_msg; - state_array_msg.header.stamp = ros::Time::now(); - state_array_msg.vehicle_state = text_vehicle_state; - state_array_msg.mission_state = text_mission_state; - state_array_msg.drive_state = text_drive_state; - Pubs["state_msg"].publish(state_array_msg); - static std_msgs::String transition_msg; transition_msg.data = ctx_vehicle->getAvailableTransition() + ctx_mission->getAvailableTransition() + ctx_drive->getAvailableTransition(); diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp index 0bd4668547d..997ffee5f8a 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp @@ -2,10 +2,6 @@ namespace decision_maker { -void DecisionMakerNode::updateWaitReadyState(cstring_t& state_name, int status) -{ -} - void DecisionMakerNode::updateWaitEngageState(cstring_t& state_name, int status) { } @@ -87,7 +83,7 @@ uint8_t DecisionMakerNode::getEventStateFromWaypoint(void) state = current_status_.finalwaypoints.waypoints.at(idx).wpstate.event_state; - if (state && (state != autoware_msgs::WaypointState::TYPE_EVENT_NULL || distance >= distance_to_target)) + if (state && distance >= distance_to_target) { break; } @@ -102,7 +98,7 @@ std::pair DecisionMakerNode::getStopSignStateFromWaypoint(void) static const double g = 9.80665; static const double margin = 5; static const double reaction_time = 0.3 + margin; // system delay(sec) - static const size_t reset_count = stopline_reset_count_; + static const size_t reset_count = 20; // const double velocity = amathutils::kmph2mps(current_status_.velocity); const double free_running_distance = reaction_time * velocity; @@ -218,7 +214,7 @@ void DecisionMakerNode::updateBusStopState(cstring_t& state_name, int status) { } -void DecisionMakerNode::updatePullInState(cstring_t& state_name, int status) +void DecisionMakerNode::updatePullOverState(cstring_t& state_name, int status) { publishLampCmd(E_Lamp::LAMP_LEFT); } @@ -237,11 +233,6 @@ void DecisionMakerNode::entryTurnState(cstring_t& state_name, int status) tryNextState("found_stopline"); return; } - else if (isEventFlagTrue("entry_stop_state")) - { - tryNextState("found_obstacle_in_stopped_area"); - return; - } tryNextState("clear"); } @@ -275,10 +266,14 @@ void DecisionMakerNode::updateRightLaneChangeState(cstring_t& state_name, int st void DecisionMakerNode::updateCheckLeftLaneState(cstring_t& state_name, int status) { + /* need safety check function */ + // static bool is_target_lane_safe = false; } void DecisionMakerNode::updateCheckRightLaneState(cstring_t& state_name, int status) { + /* need safety check function */ + // static bool is_target_lane_safe = false; } void DecisionMakerNode::updateChangeToLeftState(cstring_t& state_name, int status) @@ -299,10 +294,6 @@ void DecisionMakerNode::updateParkingState(cstring_t& state_name, int status) publishLampCmd(E_Lamp::LAMP_HAZARD); } -void DecisionMakerNode::entryGoState(cstring_t& state_name, int status) -{ - setEventFlag("entry_stop_state", false); -} void DecisionMakerNode::updateGoState(cstring_t& state_name, int status) { std::pair get_stopsign = getStopSignStateFromWaypoint(); @@ -312,6 +303,18 @@ void DecisionMakerNode::updateGoState(cstring_t& state_name, int status) tryNextState("found_stopline"); } + static double stopped_time; + if (current_status_.velocity == 0.0 && current_status_.obstacle_waypoint != -1) + { + if (ros::Time::now().toSec() - stopped_time > time_to_avoidance_) + { + tryNextState("completely_stopped"); + } + } + else + { + stopped_time = ros::Time::now().toSec(); + } } void DecisionMakerNode::updateWaitState(cstring_t& state_name, int status) @@ -320,10 +323,6 @@ void DecisionMakerNode::updateWaitState(cstring_t& state_name, int status) publishStoplineWaypointIdx(current_status_.closest_waypoint + 1); } -void DecisionMakerNode::entryStopState(cstring_t& state_name, int status) -{ - setEventFlag("entry_stop_state", true); -} void DecisionMakerNode::updateStopState(cstring_t& state_name, int status) { publishStoplineWaypointIdx(current_status_.closest_waypoint + 1); @@ -343,7 +342,7 @@ void DecisionMakerNode::updateStoplineState(cstring_t& state_name, int status) static bool timerflag = false; static ros::Timer stopping_timer; - if (current_status_.velocity == 0.0 && !timerflag && (current_status_.obstacle_waypoint + current_status_.closest_waypoint) == current_status_.found_stopsign_idx) + if (current_status_.velocity == 0.0 && !timerflag) { stopping_timer = nh_.createTimer(ros::Duration(0.5), [&](const ros::TimerEvent&) { @@ -371,17 +370,35 @@ void DecisionMakerNode::exitStopState(cstring_t& state_name, int status) } } -void DecisionMakerNode::entryDriveEmergencyState(cstring_t& state_name, int status) +void DecisionMakerNode::entryTryAvoidanceState(cstring_t& state_name, int status) { - setEventFlag("emergency_flag", true); - tryNextState("mission_aborted"); } -void DecisionMakerNode::updateDriveEmergencyState(cstring_t& state_name, int status) +void DecisionMakerNode::updateTryAvoidanceState(cstring_t& state_name, int status) +{ +} + +void DecisionMakerNode::entryCheckAvoidanceState(cstring_t& state_name, int status) +{ +} +void DecisionMakerNode::updateCheckAvoidanceState(cstring_t& state_name, int status) +{ +} + +void DecisionMakerNode::entryAvoidanceState(cstring_t& state_name, int status) { } -void DecisionMakerNode::exitDriveEmergencyState(cstring_t& state_name, int status) +void DecisionMakerNode::updateAvoidanceState(cstring_t& state_name, int status) { - setEventFlag("emergency_flag", false); } +void DecisionMakerNode::entryReturnToLaneState(cstring_t& state_name, int status) +{ +} +void DecisionMakerNode::updateReturnToLaneState(cstring_t& state_name, int status) +{ +} + +void DecisionMakerNode::updateDriveEmergencyState(cstring_t& state_name, int status) +{ +} } diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_mission.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_mission.cpp index d9fcec2a348..290f820c5a4 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_mission.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_mission.cpp @@ -16,7 +16,7 @@ void DecisionMakerNode::entryWaitOrderState(cstring_t& state_name, int status) if (!isSubscriberRegistered("lane_waypoints_array")) { Subs["lane_waypoints_array"] = - nh_.subscribe(TPNAME_BASED_LANE_WAYPOINTS_ARRAY, 1, &DecisionMakerNode::callbackFromLaneWaypoint, this); + nh_.subscribe(TPNAME_BASED_LANE_WAYPOINTS_ARRAY, 100, &DecisionMakerNode::callbackFromLaneWaypoint, this); } } @@ -34,9 +34,6 @@ void DecisionMakerNode::exitWaitOrderState(cstring_t& state_name, int status) void DecisionMakerNode::entryMissionCheckState(cstring_t& state_name, int status) { - intersects.clear(); - initVectorMap(); - publishOperatorHelpMessage("Received mission, checking now..."); setEventFlag("received_back_state_waypoint", false); @@ -82,24 +79,14 @@ void DecisionMakerNode::entryMissionCheckState(cstring_t& state_name, int status if (!isSubscriberRegistered("final_waypoints")) { Subs["final_waypoints"] = - nh_.subscribe("final_waypoints", 1, &DecisionMakerNode::callbackFromFinalWaypoint, this); + nh_.subscribe("final_waypoints", 100, &DecisionMakerNode::callbackFromFinalWaypoint, this); } } void DecisionMakerNode::updateMissionCheckState(cstring_t& state_name, int status) { if (isEventFlagTrue("received_finalwaypoints") && current_status_.closest_waypoint != -1) { - if (current_status_.finalwaypoints.waypoints.size() < 5) - publishOperatorHelpMessage("Finalwaypoints is too short.If you wont to Engage,\nplease publish \"mission_is_compatible\" key by \"state_cmd\" topic."); - else - tryNextState("mission_is_compatible"); - } - else - { - if (current_status_.closest_waypoint == -1) - publishOperatorHelpMessage("[ERROR]Couldn't received \"closest_waypoint\" or its value is -1."); - if (!isEventFlagTrue("received_finalwaypoints")) - publishOperatorHelpMessage("[ERROR]Couldn't received \"final_waypoints\"."); + tryNextState("mission_is_compatible"); } } @@ -109,7 +96,7 @@ void DecisionMakerNode::entryMissionAbortedState(cstring_t& state_name, int stat } void DecisionMakerNode::updateMissionAbortedState(cstring_t& state_name, int status) { - if (!use_fms_) + if (!use_management_system_) { sleep(1); tryNextState("goto_wait_order"); @@ -124,7 +111,8 @@ void DecisionMakerNode::entryDriveReadyState(cstring_t& state_name, int status) void DecisionMakerNode::updateDriveReadyState(cstring_t& state_name, int status) { - if (!use_fms_ && auto_engage_) + const bool start_flag = false; + if (start_flag /*isEventFlagTrue("")*/) { tryNextState("engage"); } @@ -132,27 +120,10 @@ void DecisionMakerNode::updateDriveReadyState(cstring_t& state_name, int status) void DecisionMakerNode::entryDrivingState(cstring_t& state_name, int status) { - setEventFlag("received_based_lane_waypoint", false); - - if (isEventFlagTrue("emergency_flag")) - { - tryNextState("mission_aborted"); - return; - } - tryNextState("operation_start"); } void DecisionMakerNode::updateDrivingState(cstring_t& state_name, int status) { - if (isEventFlagTrue("emergency_flag")) - { - tryNextState("mission_aborted"); - } - - if (!use_fms_ && auto_mission_change_ && isEventFlagTrue("received_based_lane_waypoint")) - { - tryNextState("request_mission_change"); - } } void DecisionMakerNode::exitDrivingState(cstring_t& state_name, int status) { @@ -160,8 +131,7 @@ void DecisionMakerNode::exitDrivingState(cstring_t& state_name, int status) void DecisionMakerNode::entryDrivingMissionChangeState(cstring_t& state_name, int status) { - if (!auto_mission_change_) - setEventFlag("received_based_lane_waypoint", false); + setEventFlag("received_based_lane_waypoint", false); } void DecisionMakerNode::updateDrivingMissionChangeState(cstring_t& state_name, int status) @@ -186,7 +156,7 @@ void DecisionMakerNode::updateDrivingMissionChangeState(cstring_t& state_name, i void DecisionMakerNode::updateMissionChangeSucceededState(cstring_t& state_name, int status) { - if (!use_fms_) + if (!use_management_system_) { sleep(1); tryNextState("return_to_driving"); @@ -194,7 +164,7 @@ void DecisionMakerNode::updateMissionChangeSucceededState(cstring_t& state_name, } void DecisionMakerNode::updateMissionChangeFailedState(cstring_t& state_name, int status) { - if (!use_fms_) + if (!use_management_system_) { sleep(1); tryNextState("return_to_driving"); @@ -203,13 +173,11 @@ void DecisionMakerNode::updateMissionChangeFailedState(cstring_t& state_name, in void DecisionMakerNode::entryMissionCompleteState(cstring_t& state_name, int status) { - setEventFlag("received_based_lane_waypoint", false); tryNextState("operation_end"); } void DecisionMakerNode::updateMissionCompleteState(cstring_t& state_name, int status) { - setEventFlag("received_based_lane_waypoint", false); - if (!use_fms_) + if (!use_management_system_) { if (auto_mission_reload_) { diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_vehicle.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_vehicle.cpp index d5703fe6eb3..c2d21bc1862 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_vehicle.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_vehicle.cpp @@ -48,7 +48,6 @@ void DecisionMakerNode::updateSensorInitState(cstring_t& state_name, int status) { ROS_INFO("DecisionMaker is in simulation mode"); tryNextState("sensor_is_ready"); - return; } else if (isEventFlagTrue("received_pointcloud_for_NDT")) { @@ -66,19 +65,18 @@ void DecisionMakerNode::updateMapInitState(cstring_t& state_name, int status) { bool vmap_loaded = false; - g_vmap.subscribe(nh_, Category::POINT | Category::LINE | Category::VECTOR | Category::AREA | + g_vmap.subscribe(nh_, Category::POINT | Category::LINE | Category::VECTOR | Category::AREA | Category::DTLANE | Category::STOP_LINE | Category::ROAD_SIGN | Category::CROSS_ROAD, ros::Duration(5.0)); vmap_loaded = - g_vmap.hasSubscribed(Category::POINT | Category::LINE | Category::AREA | - Category::STOP_LINE | Category::ROAD_SIGN); + g_vmap.hasSubscribed(Category::POINT | Category::LINE | Category::AREA | Category::DTLANE | Category::STOP_LINE); if (!vmap_loaded) { ROS_WARN("Necessary vectormap have not been loaded"); ROS_WARN("DecisionMaker keeps on waiting until it loads"); - if (disuse_vector_map_) + if(disuse_vector_map_) { ROS_WARN("Disuse vectormap mode."); tryNextState("map_is_ready"); @@ -135,10 +133,6 @@ void DecisionMakerNode::entryVehicleReadyState(cstring_t& state_name, int status void DecisionMakerNode::updateVehicleReadyState(cstring_t& state_name, int status) { - if (isEventFlagTrue("emergency_flag")) - { - tryNextState("emergency"); - } } void DecisionMakerNode::entryVehicleEmergencyState(cstring_t& state_name, int status) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/planner_selector/planner_selector_node.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/planner_selector/planner_selector_node.cpp new file mode 100644 index 00000000000..5f0b1fbd425 --- /dev/null +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/planner_selector/planner_selector_node.cpp @@ -0,0 +1,234 @@ +#include +#include +#include +#include + +#include +#include +#include + +#include +#include + +namespace decision_maker +{ +void PlannerSelector::initROS() +{ + Subs["/dp/final_waypoints"] = nh_.subscribe("/dp/final_waypoints", 1, &PlannerSelector::callbackFromWaypoints, this); + Subs["/astar/final_waypoints"] = + nh_.subscribe("/astar/final_waypoints", 1, &PlannerSelector::callbackFromWaypoints, this); + Subs["/enableLattice"] = nh_.subscribe("/enableLattice", 10, &PlannerSelector::callbackFromLattice, this); + + Subs["/dp/closest_waypoint"] = nh_.subscribe("/dp/closest_waypoint", 1, &PlannerSelector::callbackFromClosest, this); + Subs["/astar/closest_waypoint"] = + nh_.subscribe("/astar/closest_waypoint", 1, &PlannerSelector::callbackFromClosest, this); + + Subs["/config/planner_selector"] = + nh_.subscribe("/config/PlannerSelector", 1, &PlannerSelector::callbackFromConfig, this); + + Subs["current_velocity"] = nh_.subscribe("current_velocity", 3, &PlannerSelector::callbackFromCurrentVelocity, this); + + Pubs["final_waypoints"] = nh_.advertise("/final_waypoints", 1); + Pubs["closest_waypoint"] = nh_.advertise("/closest_waypoint", 1); +} + +inline bool PlannerSelector::existWaypoints(const int _config_waypoints_num) +{ + bool ret; + ret = (_config_waypoints_num < final_waypoints_dp_.waypoints.size()) && + (_config_waypoints_num < final_waypoints_dp_.waypoints.size()); + return ret; +} + +void PlannerSelector::callbackFromLattice(const std_msgs::Int32& msg) +{ + // static int prev[LATENCY_NUM] = { 1 }; + static int counter = 0; + double _distance = 100.0; + + try + { + autoware_msgs::Waypoint dp_point = final_waypoints_dp_.waypoints.at(config_waypoints_num_); + autoware_msgs::Waypoint astar_point = final_waypoints_astar_.waypoints.at(config_waypoints_num_); + + amathutils::point p_dp, p_astar; + p_dp.x = dp_point.pose.pose.position.x; + p_dp.x = dp_point.pose.pose.position.y; + p_dp.z = 0.0; + + p_astar.x = astar_point.pose.pose.position.x; + p_astar.x = astar_point.pose.pose.position.y; + p_astar.z = 0.0; + + _distance = amathutils::find_distance(&p_dp, &p_astar); + // ROS_INFO("distance=%f. %d:%d", _distance, dp_point.dtlane.dist,astar_point.dtlane.dist); + } + catch (const std::out_of_range& ex) + { + ROS_ERROR("Out of Range:%s", ex.what()); + } + +#if 0 // delay switch + _mutex.lock(); + if(enableLattice_){ + if (msg.data == 0){ + if(counter++ >= config_latency_num_){ + enableLattice_ = 0; + counter = 0; + } + } + }else{ + enableLattice_ = msg.data; + } + ROS_INFO("msg.data=%d, enableLattice_ = %d", msg.data, enableLattice_); + _mutex.unlock(); +#else + _mutex.lock(); + if (msg.data != enableLattice_) + { + if (enableLattice_ == 1 && msg.data == 0) + { + if (pastWaypoint == false) + { + pastWaypoint = true; + counter = 0; + way_offset = config_waypoints_num_; + } + } + enableLattice_ = msg.data; + } + if (counter++ >= config_latency_num_) + { + counter = 0; + if (way_offset > 0) + { + way_offset--; + } + else + { + pastWaypoint = false; + } + } + + // ROS_INFO("msg.data=%d, enableLattice_ = %d", msg.data, enableLattice_); + _mutex.unlock(); +#endif + // for debug + // ROS_INFO("\n***** EnableLattice = %d **** \n",enableLattice_,msg.data); +} + +void PlannerSelector::callbackFromWaypoints(const ros::MessageEvent& event) +{ + const ros::M_string& header = event.getConnectionHeader(); + std::string topic = header.at("topic"); + const autoware_msgs::Lane* waypoints = event.getMessage().get(); + + _mutex.lock(); + + if (this->enableLattice_ && topic.find("dp") != std::string::npos) + { + Pubs["final_waypoints"].publish(*waypoints); + final_waypoints_dp_ = *waypoints; + } + else if (!this->enableLattice_ && topic.find("astar") != std::string::npos) + { + if (pastWaypoint) + { + for (int i = 0; i < config_waypoints_num_; i++) + { + if (!final_waypoints_astar_.waypoints.empty()) + final_waypoints_astar_.waypoints.erase(final_waypoints_astar_.waypoints.begin()); + else + { + pastWaypoint = false; + way_offset = 0; + } + } +#if 0 + if(final_waypoints_astar_.waypoints.empty()){ + int _size = final_waypoints_astar_.waypoints.size(); + _size = _size>=5?5:_size; + auto itr = final_waypoints_astar_.waypoints.begin(); + for(int i=0; i < 5; i++){ + itr->twist.twist.linear.x = (current_velocity_*2 + itr->twist.twist.linear.x) / 3; + std::cout << "set linear velocity:" << mps2kmph(itr->twist.twist.linear.x) << std::endl; + itr++; + } + } +#endif + Pubs["final_waypoints"].publish(final_waypoints_astar_); + } + else + { + Pubs["final_waypoints"].publish(*waypoints); + } + final_waypoints_astar_ = *waypoints; + } + + // for debug + // ROS_INFO("%s, %d-%d-%d", topic.c_str(), closest_waypoint_dp_, closest_waypoint_astar_, this->enableLattice_); + _mutex.unlock(); +} + +void PlannerSelector::callbackFromCurrentVelocity(const geometry_msgs::TwistStamped& msg) +{ + current_velocity_ = msg.twist.linear.x; +} + +void PlannerSelector::callbackFromConfig(const autoware_config_msgs::ConfigPlannerSelector& msg) +{ + config_latency_num_ = msg.latency_num; + config_waypoints_num_ = msg.waypoints_num; + config_convergence_num_ = msg.convergence_num; + + ROS_INFO("PARAM_SET-latency:%d, waypoints:%d, convergence:%f", config_latency_num_, config_waypoints_num_, + config_convergence_num_); +} + +void PlannerSelector::callbackFromClosest(const ros::MessageEvent& event) +{ + const ros::M_string& header = event.getConnectionHeader(); + std::string topic = header.at("topic"); + + int temp = event.getMessage().get()->data; + std_msgs::Int32 msg; + +#if 1 + if (topic.find("/dp") == 0) + { + closest_waypoints_["dp"] = temp; + + if (closest_waypoints_["astar"]) + { + msg.data = closest_waypoint_astar_; + } + closest_waypoint_dp_ = temp; + } + else if (topic.find("/astar") == 0) + { + closest_waypoints_["astar"] = temp; + closest_waypoint_astar_ = temp; + } + + // ROS_INFO("PastWaypoint:%s-offset:%d, latency:%d, closest:%d", pastWaypoint?"true":"false", way_offset, + // config_latency_num_,closest_waypoint_astar); + if (pastWaypoint && final_waypoints_astar_.waypoints.size() > closest_waypoint_astar_ + way_offset) + { + msg.data = closest_waypoint_astar_ + way_offset; + } + else + { + msg.data = closest_waypoint_astar_; + } +#endif + Pubs["closest_waypoint"].publish(msg); +} +} + +int main(int argc, char** argv) +{ + ros::init(argc, argv, "planner_selector"); + + decision_maker::PlannerSelector _psn; + ros::spin(); +} diff --git a/ros/src/computing/planning/mission/packages/lane_planner/include/lane_select_core.h b/ros/src/computing/planning/mission/packages/lane_planner/include/lane_select_core.h index b155388ad38..0db8b3ce109 100644 --- a/ros/src/computing/planning/mission/packages/lane_planner/include/lane_select_core.h +++ b/ros/src/computing/planning/mission/packages/lane_planner/include/lane_select_core.h @@ -134,12 +134,6 @@ friend class LaneSelectTestClass; void updateChangeFlag(); void createLaneForChange(); int32_t getClosestLaneChangeWaypointNumber(const std::vector& wps, int32_t cl_wp); - - // spinOnce for test - void spinOnce() - { - ros::spinOnce(); - } }; int32_t getClosestWaypointNumber(const autoware_msgs::Lane& current_lane, const geometry_msgs::Pose& current_pose, diff --git a/ros/src/computing/planning/motion/packages/waypoint_follower/nodes/twist_gate/twist_gate.cpp b/ros/src/computing/planning/motion/packages/waypoint_follower/nodes/twist_gate/twist_gate.cpp index e423a17db85..b1a805b4f22 100644 --- a/ros/src/computing/planning/motion/packages/waypoint_follower/nodes/twist_gate/twist_gate.cpp +++ b/ros/src/computing/planning/motion/packages/waypoint_follower/nodes/twist_gate/twist_gate.cpp @@ -28,9 +28,82 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "twist_gate.h" - #include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include "autoware_msgs/ControlCommandStamped.h" +#include "autoware_msgs/RemoteCmd.h" +#include "autoware_msgs/VehicleCmd.h" + +#define CMD_GEAR_D 1 +#define CMD_GEAR_R 2 +#define CMD_GEAR_B 3 +#define CMD_GEAR_N 4 +#define CMD_GEAR_P 5 +#include "autoware_msgs/ControlCommandStamped.h" +#include "tablet_socket_msgs/gear_cmd.h" +#include "tablet_socket_msgs/mode_cmd.h" +class TwistGate +{ + using remote_msgs_t = autoware_msgs::RemoteCmd; + using vehicle_cmd_msg_t = autoware_msgs::VehicleCmd; + +public: + TwistGate(const ros::NodeHandle& nh, const ros::NodeHandle& private_nh); + ~TwistGate(); + +private: + void check_state(); + void watchdog_timer(); + void remote_cmd_callback(const remote_msgs_t::ConstPtr& input_msg); + void auto_cmd_twist_cmd_callback(const geometry_msgs::TwistStamped::ConstPtr& input_msg); + void mode_cmd_callback(const tablet_socket_msgs::mode_cmd::ConstPtr& input_msg); + void gear_cmd_callback(const tablet_socket_msgs::gear_cmd::ConstPtr& input_msg); + void accel_cmd_callback(const autoware_msgs::AccelCmd::ConstPtr& input_msg); + void steer_cmd_callback(const autoware_msgs::SteerCmd::ConstPtr& input_msg); + void brake_cmd_callback(const autoware_msgs::BrakeCmd::ConstPtr& input_msg); + void lamp_cmd_callback(const autoware_msgs::LampCmd::ConstPtr& input_msg); + void ctrl_cmd_callback(const autoware_msgs::ControlCommandStamped::ConstPtr& input_msg); + void state_callback(const std_msgs::StringConstPtr& input_msg); + + bool is_using_decisionmaker(); + void reset_vehicle_cmd_msg(); + + ros::NodeHandle nh_; + ros::NodeHandle private_nh_; + ros::Publisher emergency_stop_pub_; + ros::Publisher control_command_pub_; + ros::Publisher vehicle_cmd_pub_; + ros::Publisher state_cmd_pub_; + ros::Subscriber remote_cmd_sub_; + std::map auto_cmd_sub_stdmap_; + + vehicle_cmd_msg_t twist_gate_msg_; + std_msgs::Bool emergency_stop_msg_; + ros::Time remote_cmd_time_; + ros::Duration timeout_period_; + + std::thread watchdog_timer_thread_; + enum class CommandMode + { + AUTO = 1, + REMOTE = 2 + } command_mode_, + previous_command_mode_; + std_msgs::String command_mode_topic_; + + bool is_state_drive_ = true; + // still send is true + bool send_emergency_cmd = false; +}; TwistGate::TwistGate(const ros::NodeHandle& nh, const ros::NodeHandle& private_nh) : nh_(nh) @@ -116,7 +189,7 @@ void TwistGate::check_state() void TwistGate::watchdog_timer() { - while (is_alive) + while (1) { ros::Time now_time = ros::Time::now(); bool emergency_flag = false; @@ -186,10 +259,7 @@ void TwistGate::remote_cmd_callback(const remote_msgs_t::ConstPtr& input_msg) command_mode_ = static_cast(input_msg->control_mode); emergency_stop_msg_.data = static_cast(input_msg->vehicle_cmd.emergency); - // Update Emergency Mode - twist_gate_msg_.emergency = input_msg->vehicle_cmd.emergency; - - if (command_mode_ == CommandMode::REMOTE && emergency_stop_msg_.data == false) + if (command_mode_ == CommandMode::REMOTE) { twist_gate_msg_.header.frame_id = input_msg->vehicle_cmd.header.frame_id; twist_gate_msg_.header.stamp = input_msg->vehicle_cmd.header.stamp; @@ -208,9 +278,7 @@ void TwistGate::remote_cmd_callback(const remote_msgs_t::ConstPtr& input_msg) void TwistGate::auto_cmd_twist_cmd_callback(const geometry_msgs::TwistStamped::ConstPtr& input_msg) { - node_status_pub_ptr_->NODE_ACTIVATE(); - node_status_pub_ptr_->CHECK_RATE("/topic/rate/twist_cmd/slow",8,5,1,"topic twist_cmd subscribe rate low."); - if(command_mode_ == CommandMode::AUTO) + if (command_mode_ == CommandMode::AUTO) { twist_gate_msg_.header.frame_id = input_msg->header.frame_id; twist_gate_msg_.header.stamp = input_msg->header.stamp; @@ -312,6 +380,36 @@ void TwistGate::ctrl_cmd_callback(const autoware_msgs::ControlCommandStamped::Co } void TwistGate::state_callback(const std_msgs::StringConstPtr& input_msg) +{ + if (command_mode_ == CommandMode::AUTO) + { + // Set Parking Gear + if (input_msg->data.find("WaitOrder") != std::string::npos) + { + twist_gate_msg_.gear = CMD_GEAR_P; + emergency_stop_msg_.data = false; + send_emergency_cmd = false; + } + // Set Drive Gear + else + { + twist_gate_msg_.gear = CMD_GEAR_D; + } + + // get drive state + if (input_msg->data.find("Drive\n") != std::string::npos) + { + is_state_drive_ = true; + } + else + { + is_state_drive_ = false; + } + vehicle_cmd_pub_.publish(twist_gate_msg_); + } +} + +int main(int argc, char** argv) { if (command_mode_ == CommandMode::AUTO) { diff --git a/ros/src/computing/planning/motion/packages/waypoint_follower/nodes/wf_simulator/wf_simulator.cpp b/ros/src/computing/planning/motion/packages/waypoint_follower/nodes/wf_simulator/wf_simulator.cpp index 7ced485d649..69a6a17612a 100644 --- a/ros/src/computing/planning/motion/packages/waypoint_follower/nodes/wf_simulator/wf_simulator.cpp +++ b/ros/src/computing/planning/motion/packages/waypoint_follower/nodes/wf_simulator/wf_simulator.cpp @@ -34,67 +34,61 @@ const std::string SIMULATION_FRAME = "sim_base_link"; const std::string LIDAR_FRAME = "sim_lidar"; const std::string MAP_FRAME = "map"; -bool initial_set_ = false; -bool pose_set_ = false; -bool waypoint_set_ = false; -bool use_ctrl_cmd = false; -bool is_closest_waypoint_subscribed_ = false; - -geometry_msgs::Pose initial_pose_; -WayPoints current_waypoints_; -geometry_msgs::Twist current_velocity_; - -ros::Publisher odometry_publisher_; -ros::Publisher velocity_publisher_; - -int32_t closest_waypoint_ = -1; -double position_error_; -double angle_error_; -double linear_acceleration_ = 0; -double steering_angle_ = 0; -double lidar_height_ = 1.0; -double wheel_base_ = 2.7; +geometry_msgs::Pose _initial_pose; +bool _initial_set = false; +bool _pose_set = false; +bool _waypoint_set = false; +bool _use_ctrl_cmd = false; +bool g_is_closest_waypoint_subscribed = false; +WayPoints _current_waypoints; +ros::Publisher g_odometry_publisher; +ros::Publisher g_velocity_publisher; +int32_t g_closest_waypoint = -1; +double g_position_error; +double g_angle_error; +double g_linear_acceleration = 0; +double g_steering_angle = 0; +double g_wheel_base_m = 2.7; constexpr int LOOP_RATE = 50; // 50Hz void CmdCallBack(const autoware_msgs::VehicleCmdConstPtr& msg, double accel_rate) { - if (use_ctrl_cmd == true) + if (_use_ctrl_cmd == true) { - linear_acceleration_ = msg->ctrl_cmd.linear_acceleration; - steering_angle_ = msg->ctrl_cmd.steering_angle; + g_linear_acceleration = msg->ctrl_cmd.linear_acceleration; + g_steering_angle = msg->ctrl_cmd.steering_angle; } else { static double previous_linear_velocity = 0; - if (current_velocity_.linear.x < msg->twist_cmd.twist.linear.x) + if (_current_velocity.linear.x < msg->twist_cmd.twist.linear.x) { - current_velocity_.linear.x = previous_linear_velocity + accel_rate / (double)LOOP_RATE; + _current_velocity.linear.x = previous_linear_velocity + accel_rate / (double)LOOP_RATE; - if (current_velocity_.linear.x > msg->twist_cmd.twist.linear.x) + if (_current_velocity.linear.x > msg->twist_cmd.twist.linear.x) { - current_velocity_.linear.x = msg->twist_cmd.twist.linear.x; + _current_velocity.linear.x = msg->twist_cmd.twist.linear.x; } } else { - current_velocity_.linear.x = previous_linear_velocity - accel_rate / (double)LOOP_RATE; + _current_velocity.linear.x = previous_linear_velocity - accel_rate / (double)LOOP_RATE; - if (current_velocity_.linear.x < msg->twist_cmd.twist.linear.x) + if (_current_velocity.linear.x < msg->twist_cmd.twist.linear.x) { - current_velocity_.linear.x = msg->twist_cmd.twist.linear.x; + _current_velocity.linear.x = msg->twist_cmd.twist.linear.x; } } - previous_linear_velocity = current_velocity_.linear.x; + previous_linear_velocity = _current_velocity.linear.x; - current_velocity_.angular.z = msg->twist_cmd.twist.angular.z; + _current_velocity.angular.z = msg->twist_cmd.twist.angular.z; - //current_velocity_ = msg->twist; + //_current_velocity = msg->twist; } } - void getTransformFromTF(const std::string parent_frame, const std::string child_frame, tf::StampedTransform& transform) { static tf::TransformListener listener; @@ -136,8 +130,10 @@ void callbackFromPoseStamped(const geometry_msgs::PoseStampedConstPtr& msg) void waypointCallback(const autoware_msgs::LaneConstPtr& msg) { - current_waypoints_.setPath(*msg); - waypoint_set_ = true; + // _path_og.setPath(msg); + _current_waypoints.setPath(*msg); + _waypoint_set = true; + // ROS_INFO_STREAM("waypoint subscribed"); } void callbackFromClosestWaypoint(const std_msgs::Int32ConstPtr& msg) @@ -148,11 +144,11 @@ void callbackFromClosestWaypoint(const std_msgs::Int32ConstPtr& msg) void updateVelocity() { - if (use_ctrl_cmd == false) + if (_use_ctrl_cmd == false) return; - current_velocity_.linear.x += linear_acceleration_ / (double)LOOP_RATE; - current_velocity_.angular.z = current_velocity_.linear.x * std::sin(steering_angle_) / wheel_base_; + _current_velocity.linear.x += g_linear_acceleration / (double)LOOP_RATE; + _current_velocity.angular.z = _current_velocity.linear.x * std::sin(g_steering_angle) / g_wheel_base_m; } void publishOdometry() @@ -173,10 +169,21 @@ void publishOdometry() pose_set_ = true; } - if (waypoint_set_ && is_closest_waypoint_subscribed_) - pose.position.z = current_waypoints_.getWaypointPosition(closest_waypoint_).z; - double vx = current_velocity_.linear.x; - double vth = current_velocity_.angular.z; + /*int closest_waypoint = getClosestWaypoint(_current_waypoints.getCurrentWaypoints(), pose); + if (closest_waypoint == -1) + { + ROS_INFO("cannot publish odometry because closest waypoint is -1."); + return; + } + else + { + pose.position.z = _current_waypoints.getWaypointPosition(closest_waypoint).z; + } +*/ if ( + _waypoint_set && g_is_closest_waypoint_subscribed) + pose.position.z = _current_waypoints.getWaypointPosition(g_closest_waypoint).z; + double vx = _current_velocity.linear.x; + double vth = _current_velocity.angular.z; current_time = ros::Time::now(); // compute odometry in a typical way given the velocities of the robot @@ -197,6 +204,15 @@ void publishOdometry() th += delta_th; pose.orientation = tf::createQuaternionMsgFromYaw(th); + // std::cout << "delta (x y th) : (" << delta_x << " " << delta_y << " " << + // delta_th << ")" << std::endl; + // std::cout << "current_velocity(linear.x angular.z) : (" << + // _current_velocity.linear.x << " " << + // _current_velocity.angular.z << ")"<< std::endl; + // std::cout << "current_pose : (" << pose.position.x << " " << + // pose.position.y<< " " << pose.position.z << " " << + // th << ")" << std::endl << std::endl; + // first, we'll publish the transform over tf geometry_msgs::TransformStamped odom_trans; odom_trans.header.stamp = current_time; @@ -257,12 +273,9 @@ int main(int argc, char** argv) private_nh.param("accel_rate", accel_rate, double(1.0)); ROS_INFO_STREAM("accel_rate : " << accel_rate); - private_nh.param("position_error", position_error_, double(0.0)); - private_nh.param("angle_error", angle_error_, double(0.0)); - private_nh.param("lidar_height", lidar_height_, double(1.0)); - private_nh.param("use_ctrl_cmd", use_ctrl_cmd, false); - - nh.param("vehicle_info/wheel_base", wheel_base_, double(2.7)); + private_nh.param("position_error", g_position_error, double(0.0)); + private_nh.param("angle_error", g_angle_error, double(0.0)); + nh.param("vehicle_info/wheel_base", g_wheel_base_m, double(2.7)); // publish topic odometry_publisher_ = nh.advertise("sim_pose", 10); diff --git a/ros/src/computing/planning/motion/packages/waypoint_maker/nodes/waypoint_loader/waypoint_loader_core.cpp b/ros/src/computing/planning/motion/packages/waypoint_maker/nodes/waypoint_loader/waypoint_loader_core.cpp index 1358c8c0e71..8cad4ea57f6 100644 --- a/ros/src/computing/planning/motion/packages/waypoint_maker/nodes/waypoint_loader/waypoint_loader_core.cpp +++ b/ros/src/computing/planning/motion/packages/waypoint_maker/nodes/waypoint_loader/waypoint_loader_core.cpp @@ -53,7 +53,31 @@ void WaypointLoaderNode::createLaneArray(const std::vector& paths, { autoware_msgs::Lane lane; createLaneWaypoint(el, &lane); - lane_array->lanes.emplace_back(lane); + if (replanning_mode_) + { + replanner_.replanLaneWaypointVel(&lane); + } + lane_array->lanes.push_back(lane); + } +} + +void WaypointLoaderNode::saveLaneArray(const std::vector& paths, + const autoware_msgs::LaneArray& lane_array) +{ + unsigned long idx = 0; + for (const auto& file_path : paths) + { + std::ofstream ofs(file_path.c_str()); + ofs << "x,y,z,yaw,velocity,change_flag,steering_flag,accel_flag,stop_flag,event_flag" << std::endl; + for (const auto& el : lane_array.lanes[idx].waypoints) + { + ofs << std::fixed << std::setprecision(4) << el.pose.pose.position.x << "," << el.pose.pose.position.y << "," + << el.pose.pose.position.z << "," << tf::getYaw(el.pose.pose.orientation) << "," + << mps2kmph(el.twist.twist.linear.x) << "," << (int)el.change_flag << "," << (int)el.wpstate.steering_state + << "," << (int)el.wpstate.accel_state << "," << (int)el.wpstate.stop_state << "," + << (int)el.wpstate.event_state << std::endl; + } + idx++; } } diff --git a/ros/src/msgs/autoware_config_msgs/msg/ConfigDecisionMaker.msg b/ros/src/msgs/autoware_config_msgs/msg/ConfigDecisionMaker.msg index 96a933e35c9..975beb3ec08 100644 --- a/ros/src/msgs/autoware_config_msgs/msg/ConfigDecisionMaker.msg +++ b/ros/src/msgs/autoware_config_msgs/msg/ConfigDecisionMaker.msg @@ -1,11 +1,11 @@ Header header +bool enable_display_marker bool auto_mission_reload -bool auto_engage -bool auto_mission_change -bool use_fms +bool use_management_system bool disuse_vector_map uint32 num_of_steer_behind float64 change_threshold_dist float64 change_threshold_angle +float64 time_to_avoidance float64 goal_threshold_dist float64 goal_threshold_vel diff --git a/ros/src/socket/packages/vehicle_socket/nodes/vehicle_sender/vehicle_sender.cpp b/ros/src/socket/packages/vehicle_socket/nodes/vehicle_sender/vehicle_sender.cpp index 70437419509..8bcabd5b2ba 100644 --- a/ros/src/socket/packages/vehicle_socket/nodes/vehicle_sender/vehicle_sender.cpp +++ b/ros/src/socket/packages/vehicle_socket/nodes/vehicle_sender/vehicle_sender.cpp @@ -98,8 +98,7 @@ static void *sendCommand(void *arg) oss << command_data.brakeValue << ","; oss << command_data.steerValue << ","; oss << command_data.linear_velocity << ","; - oss << command_data.steering_angle << ","; - oss << command_data.lampValue; + oss << command_data.steering_angle; std::string cmd(oss.str()); ssize_t n = write(client_sock, cmd.c_str(), cmd.size()); diff --git a/ros/src/util/packages/autoware_rviz_plugins/plugin_description.xml b/ros/src/util/packages/autoware_rviz_plugins/plugin_description.xml new file mode 100644 index 00000000000..87d0b3df570 --- /dev/null +++ b/ros/src/util/packages/autoware_rviz_plugins/plugin_description.xml @@ -0,0 +1,27 @@ + + + + + State Panel on rviz + + + + + + Tool for sim_obj flags on the ground plane in rviz. + + + + + + A panel widget to order state_cmd for decision_maekr. + + + + diff --git a/ros/src/util/packages/autoware_rviz_plugins/src/decision_maker_panel/decision_maker_panel.cpp b/ros/src/util/packages/autoware_rviz_plugins/src/decision_maker_panel/decision_maker_panel.cpp new file mode 100644 index 00000000000..e79b42d7d12 --- /dev/null +++ b/ros/src/util/packages/autoware_rviz_plugins/src/decision_maker_panel/decision_maker_panel.cpp @@ -0,0 +1,176 @@ +/* + * Copyright (c) 2018, TierIV Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the Willow Garage, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include +#include "decision_maker_panel.h" + +namespace autoware_rviz_debug +{ +// BEGIN_TUTORIAL +// Here is the implementation of the DecisionMakerPanel class. DecisionMakerPanel +// has these responsibilities: +// +// - Act as a container for GUI elements DriveWidget and QLineEdit. +// - Publish command velocities 10 times per second (whether 0 or not). +// - Saving and restoring internal state from a config file. +// +// We start with the constructor, doing the standard Qt thing of +// passing the optional *parent* argument on to the superclass +// constructor, and also zero-ing the velocities we will be +// publishing. + +class StateInfo +{ +private: +public: + uint64_t state_num_; + uint8_t state_category_; + std::string state_num_name_; + std::string state_category_name_; +}; + +DecisionMakerPanel::DecisionMakerPanel(QWidget* parent) : rviz::Panel(parent) +{ + statecmd_publisher_ = nh_.advertise("/state_cmd", 1); + // Subs_["state"] = nh_ + + // Next we lay out the "output topic" text entry field using a + // QLabel and a QLineEdit in a QHBoxLayout. + QHBoxLayout* label_layout = new QHBoxLayout; + label_layout->addWidget(new QLabel("DecisionMaker QuickOrder")); + + QSignalMapper* signalMapper = new QSignalMapper(this); + connect(signalMapper, SIGNAL(mapped(QString)), this, SLOT(sendTopic(QString))); + + QHBoxLayout* button_layout = new QHBoxLayout; + QPushButton* button_engage = new QPushButton("Engage"); + signalMapper->setMapping(button_engage, QString("engage")); + connect(button_engage, SIGNAL(clicked()), signalMapper, SLOT(map())); + + QPushButton* button_stop = new QPushButton("Stop"); + signalMapper->setMapping(button_stop, QString("found_obstacle_in_stopped_area")); + connect(button_stop, SIGNAL(clicked()), signalMapper, SLOT(map())); + + QPushButton* button_go = new QPushButton("Go"); + signalMapper->setMapping(button_go, QString("clear")); + connect(button_go, SIGNAL(clicked()), signalMapper, SLOT(map())); + + button_layout->addWidget(button_engage); + button_layout->addWidget(button_stop); + button_layout->addWidget(button_go); + + QHBoxLayout* button_second_layout = new QHBoxLayout; + QPushButton* button_execute_avoidance = new QPushButton("Execute Avoidance"); + signalMapper->setMapping(button_execute_avoidance, QString("execute_avoidance")); + connect(button_execute_avoidance, SIGNAL(clicked()), signalMapper, SLOT(map())); + + QPushButton* button_execute_lane_change = new QPushButton("Execute LaneChange"); + signalMapper->setMapping(button_execute_lane_change, QString("execute_lane_change")); + connect(button_execute_lane_change, SIGNAL(clicked()), signalMapper, SLOT(map())); + + button_second_layout->addWidget(button_execute_avoidance); + button_second_layout->addWidget(button_execute_lane_change); + + QHBoxLayout* button_middle_layout = new QHBoxLayout; + QPushButton* button_request_mission_change = new QPushButton("Request mission change"); + signalMapper->setMapping(button_request_mission_change, QString("request_mission_change")); + connect(button_request_mission_change, SIGNAL(clicked()), signalMapper, SLOT(map())); + + QPushButton* button_return_to_driving = new QPushButton("Return to driving"); + signalMapper->setMapping(button_return_to_driving, QString("return_to_driving")); + connect(button_return_to_driving, SIGNAL(clicked()), signalMapper, SLOT(map())); + + QPushButton* button_mission_canceled = new QPushButton("Mission cancel"); + signalMapper->setMapping(button_mission_canceled, QString("mission_canceled")); + connect(button_mission_canceled, SIGNAL(clicked()), signalMapper, SLOT(map())); + + button_middle_layout->addWidget(button_request_mission_change); + button_middle_layout->addWidget(button_return_to_driving); + button_middle_layout->addWidget(button_mission_canceled); + + QHBoxLayout* button_low_layout = new QHBoxLayout; + QPushButton* button_emergency = new QPushButton("Emergency"); + signalMapper->setMapping(button_emergency, QString("emergency")); + connect(button_emergency, SIGNAL(clicked()), signalMapper, SLOT(map())); + + QPushButton* button_return_from_emergency = new QPushButton("Return from emergency"); + signalMapper->setMapping(button_return_from_emergency, QString("return_from_emergency")); + connect(button_return_from_emergency, SIGNAL(clicked()), signalMapper, SLOT(map())); + + button_low_layout->addWidget(button_emergency); + button_low_layout->addWidget(button_return_from_emergency); + + QVBoxLayout* layout = new QVBoxLayout; + layout->addLayout(label_layout); + layout->addLayout(button_layout); + layout->addLayout(button_second_layout); + layout->addLayout(button_middle_layout); + layout->addLayout(button_low_layout); + setLayout(layout); +} + +void DecisionMakerPanel::sendTopic(const QString &text) +{ + if (statecmd_publisher_) + { + std_msgs::String msg; + msg.data = text.toStdString(); + statecmd_publisher_.publish(msg); + } +} + +void DecisionMakerPanel::save(rviz::Config config) const +{ + rviz::Panel::save(config); +} + +void DecisionMakerPanel::load(const rviz::Config& config) +{ + rviz::Panel::load(config); +} + +} // end namespace autoware_rviz_debug + +#include +PLUGINLIB_EXPORT_CLASS(autoware_rviz_debug::DecisionMakerPanel, rviz::Panel) +// END_TUTORIAL diff --git a/ros/src/util/packages/autoware_rviz_plugins/src/decision_maker_panel/decision_maker_panel.h b/ros/src/util/packages/autoware_rviz_plugins/src/decision_maker_panel/decision_maker_panel.h new file mode 100644 index 00000000000..7c35ac019d4 --- /dev/null +++ b/ros/src/util/packages/autoware_rviz_plugins/src/decision_maker_panel/decision_maker_panel.h @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2011, Willow Garage, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the Willow Garage, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#ifndef TELEOP_PANEL_H +#define TELEOP_PANEL_H + +#ifndef Q_MOC_RUN +#include + +#include +#endif + +class QLineEdit; + +namespace autoware_rviz_debug +{ +class DecisionMakerPanel : public rviz::Panel +{ + Q_OBJECT +public: + DecisionMakerPanel(QWidget* parent = 0); + + virtual void load(const rviz::Config& config); + virtual void save(rviz::Config config) const; + +public Q_SLOTS: + void sendTopic(const QString &text); + + // Then we finish up with protected member variables. +protected: + ros::Publisher statecmd_publisher_; + ros::NodeHandle nh_; +}; + +} // end namespace autoware_rviz_debug + +#endif // TELEOP_PANEL_H diff --git a/ros/src/util/packages/autoware_rviz_plugins/state_panel/CMakeLists.txt b/ros/src/util/packages/autoware_rviz_plugins/state_panel/CMakeLists.txt index b054beded6b..dc3a22161f5 100644 --- a/ros/src/util/packages/autoware_rviz_plugins/state_panel/CMakeLists.txt +++ b/ros/src/util/packages/autoware_rviz_plugins/state_panel/CMakeLists.txt @@ -54,7 +54,8 @@ set(CMAKE_AUTOMOC ON) set(SOURCE_FILES src/state_panel/state_panel.cpp src/sim_object/autoware_flag_tool.cpp -) + src/decision_maker_panel/decision_maker_panel.cpp + ) add_library(autoware_rviz_plugins ${SOURCE_FILES} ${UIC_FILES}) target_link_libraries(autoware_rviz_plugins ${QT_LIBRARIES} ${catkin_LIBRARIES} ${rviz_DEFAULT_PLUGIN_LIBRARIES}) @@ -75,4 +76,4 @@ install(DIRECTORY icons/ DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/icons) install(FILES plugin_description.xml - DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}) \ No newline at end of file + DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}) diff --git a/ros/src/util/packages/runtime_manager/scripts/computing.yaml b/ros/src/util/packages/runtime_manager/scripts/computing.yaml index fccc925bb7a..34fef0efee5 100755 --- a/ros/src/util/packages/runtime_manager/scripts/computing.yaml +++ b/ros/src/util/packages/runtime_manager/scripts/computing.yaml @@ -729,7 +729,7 @@ subs : use_fms: flags : [ nl ] auto_mission_reload: - depend : use_fms + depend : use_management_system depend_bool : 'lambda v : v == 0' auto_engage: depend : use_fms @@ -738,6 +738,11 @@ subs : depend : use_fms depend_bool : 'lambda v : v == 0' + - name : planner_selector + desc : planner_selector desc sample + cmd : roslaunch planner_selector planner_selector.launch + param: planner_selector + buttons: @@ -1968,6 +1973,14 @@ params : topic : /config/decision_maker msg : ConfigDecisionMaker vars : + - name : enable_display_marker + desc : enable display marker flag + label : enable_display_marker + kind : checkbox + v : False + cmd_param : + dash : '' + delim : ':=' - name : disuse_vector_map desc : If this is enabled, the state passes through the MapInit state without vectormap. label : disuse_vector_map @@ -2006,6 +2019,12 @@ params : min : 0.0 max : 90.0 v : 15.0 + - name : time_to_avoidance + desc : The stop time until the state transitions to Avoidance state after the vehicle stops due to the obstacle. + label : time_to_avoidance[s] + min : 0.0 + max : 60.0 + v : 3.0 - name : points_topic desc : points_topic kind : str @@ -2020,9 +2039,9 @@ params : cmd_param : dash : '' delim: ':=' - - name : use_fms + - name : use_management_system desc : If this is disbled, part of state transitions are automatically executed. - label : use_fms + label : use_management_system kind : checkbox v : False cmd_param : From 461e375426f153d6cb49a9afd78491df00ddde56 Mon Sep 17 00:00:00 2001 From: Yuki Iida Date: Wed, 7 Nov 2018 12:48:16 +0900 Subject: [PATCH 066/139] fix emergency bug --- .../waypoint_follower/nodes/twist_gate/twist_gate.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ros/src/computing/planning/motion/packages/waypoint_follower/nodes/twist_gate/twist_gate.cpp b/ros/src/computing/planning/motion/packages/waypoint_follower/nodes/twist_gate/twist_gate.cpp index b1a805b4f22..6ab34c07739 100644 --- a/ros/src/computing/planning/motion/packages/waypoint_follower/nodes/twist_gate/twist_gate.cpp +++ b/ros/src/computing/planning/motion/packages/waypoint_follower/nodes/twist_gate/twist_gate.cpp @@ -259,7 +259,10 @@ void TwistGate::remote_cmd_callback(const remote_msgs_t::ConstPtr& input_msg) command_mode_ = static_cast(input_msg->control_mode); emergency_stop_msg_.data = static_cast(input_msg->vehicle_cmd.emergency); - if (command_mode_ == CommandMode::REMOTE) + // Update Emergency Mode + twist_gate_msg_.emergency = input_msg->vehicle_cmd.emergency; + + if (command_mode_ == CommandMode::REMOTE && emergency_stop_msg_.data == false) { twist_gate_msg_.header.frame_id = input_msg->vehicle_cmd.header.frame_id; twist_gate_msg_.header.stamp = input_msg->vehicle_cmd.header.stamp; From 08178fb5eb3b57f23143909f0dd647c7931ca768 Mon Sep 17 00:00:00 2001 From: Azumi SUZUKI Date: Wed, 7 Nov 2018 12:50:07 +0900 Subject: [PATCH 067/139] fixed state_machine_lib according to review. --- .../include/state_machine_lib/state.hpp | 10 +++++----- .../libs/state_machine_lib/src/state_context.cpp | 7 ++++--- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/ros/src/common/libs/state_machine_lib/include/state_machine_lib/state.hpp b/ros/src/common/libs/state_machine_lib/include/state_machine_lib/state.hpp index 6742eb062cf..5ee60cab69d 100644 --- a/ros/src/common/libs/state_machine_lib/include/state_machine_lib/state.hpp +++ b/ros/src/common/libs/state_machine_lib/include/state_machine_lib/state.hpp @@ -20,9 +20,9 @@ class State std::string state_name_; uint64_t state_id_; - + std::shared_ptr parent_state_; - + std::function CallbackUpdateFunc; std::function CallbackEntryFunc; @@ -126,12 +126,12 @@ class State transition_map_[key] = val; } - uint64_t getTansitionVal(std::string key) + uint64_t getTansitionVal(std::string key) const { - return transition_map_[key]; + return transition_map_.at(key); } - std::map getTransitionMap(void) + const std::map& getTransitionMap(void) { return transition_map_; } diff --git a/ros/src/common/libs/state_machine_lib/src/state_context.cpp b/ros/src/common/libs/state_machine_lib/src/state_context.cpp index 8ea630fb506..4f93f88533f 100644 --- a/ros/src/common/libs/state_machine_lib/src/state_context.cpp +++ b/ros/src/common/libs/state_machine_lib/src/state_context.cpp @@ -79,14 +79,14 @@ void StateContext::nextState(const std::string& transition_key) const std::string dot_output_name = "/tmp/a.dot"; std::shared_ptr state = root_state_; std::string _target_state_name; - std::vector key_list_; + std::vector key_list; while (state) { if (state->getTransitionMap().count(transition_key) != 0) { const uint64_t transition_state_id = state->getTransitionMap().at(transition_key); - _target_state_name = state_map_[transition_state_id]->getStateName(); + _target_state_name = state_map_.at(transition_state_id)->getStateName(); if (isCurrentState(_target_state_name)) { @@ -105,7 +105,7 @@ void StateContext::nextState(const std::string& transition_key) { if (in_state->getChild()) { - key_list_.push_back(in_state->getChild()->getEnteredKey()); + key_list.push_back(in_state->getChild()->getEnteredKey()); in_state->getChild()->onExit(); } in_state->setChild(state_map_[transition_state_id]); @@ -313,6 +313,7 @@ std::shared_ptr StateContext::getStatePtr(const YAML::Node& node) { return getStatePtr(node["StateName"].as()); } + std::shared_ptr StateContext::getStatePtr(const std::string& _state_name) { if (_state_name == "~") From 42eadbe8727c1be53ae465fe3a3dd6eaa13f90a2 Mon Sep 17 00:00:00 2001 From: Azumi SUZUKI Date: Wed, 7 Nov 2018 14:05:02 +0900 Subject: [PATCH 068/139] deleted unused function in amathutils. --- .../amathutils_lib/include/amathutils_lib/amathutils.hpp | 2 -- ros/src/common/libs/amathutils_lib/src/Amathutils.cpp | 5 +---- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/ros/src/common/libs/amathutils_lib/include/amathutils_lib/amathutils.hpp b/ros/src/common/libs/amathutils_lib/include/amathutils_lib/amathutils.hpp index 652136b615a..fd589452a8a 100644 --- a/ros/src/common/libs/amathutils_lib/include/amathutils_lib/amathutils.hpp +++ b/ros/src/common/libs/amathutils_lib/include/amathutils_lib/amathutils.hpp @@ -49,8 +49,6 @@ inline double getTimefromAcceleration(const double &_v0, const double &_v, const return (_v - _v0) / _a; } -geometry_msgs::Point getCrossPoint(const geometry_msgs::Point &_l1_p1, const geometry_msgs::Point &_l1_p2, - const geometry_msgs::Point &_l2_p1, const geometry_msgs::Point &_l2_p2); geometry_msgs::Point getNearPtOnLine(const geometry_msgs::Point &_p, const geometry_msgs::Point &_a, const geometry_msgs::Point &_b); double find_distance(const geometry_msgs::Point &_from, const geometry_msgs::Point &_to); diff --git a/ros/src/common/libs/amathutils_lib/src/Amathutils.cpp b/ros/src/common/libs/amathutils_lib/src/Amathutils.cpp index ab4ec72a1cc..37e4c585129 100644 --- a/ros/src/common/libs/amathutils_lib/src/Amathutils.cpp +++ b/ros/src/common/libs/amathutils_lib/src/Amathutils.cpp @@ -2,10 +2,7 @@ namespace amathutils { -geometry_msgs::Point getCrossPoint(const geometry_msgs::Point &_l1_p1, const geometry_msgs::Point &_l1_p2, - const geometry_msgs::Point &_l2_p1, const geometry_msgs::Point &_l2_p2) -{ -} + geometry_msgs::Point getNearPtOnLine(const geometry_msgs::Point &_p, const geometry_msgs::Point &_a, const geometry_msgs::Point &_b) { From dbac526001b6d9e0febdf6e3b07bb7de25e2c5e7 Mon Sep 17 00:00:00 2001 From: Azumi SUZUKI Date: Wed, 7 Nov 2018 16:09:54 +0900 Subject: [PATCH 069/139] fixed decision_maker nodes according to review. --- .../nodes/decision_maker/decision_maker_node_decision.cpp | 4 ++-- .../decision_maker/decision_maker_node_state_mission.cpp | 5 ----- .../decision_maker/decision_maker_node_state_vehicle.cpp | 1 + 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_decision.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_decision.cpp index 1db4acafd83..6c5412ed0bb 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_decision.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_decision.cpp @@ -79,7 +79,7 @@ bool DecisionMakerNode::isLocalizationConvergence(const geometry_msgs::Point& _c static std::vector distances; static uint32_t distances_count = 0; static geometry_msgs::Point prev_point; - static const int param_convergence_count_ = 10; + static const int param_convergence_count = 10; bool ret = false; @@ -91,7 +91,7 @@ bool DecisionMakerNode::isLocalizationConvergence(const geometry_msgs::Point& _c } distances.push_back(amathutils::find_distance(prev_point, _current_point)); - if (++distances_count > param_convergence_count_) /* num of count to judge convergence*/ + if (++distances_count > param_convergence_count) /* num of count to judge convergence*/ { distances.erase(distances.begin()); distances_count--; diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_mission.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_mission.cpp index 290f820c5a4..dd60d66c9ae 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_mission.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_mission.cpp @@ -111,11 +111,6 @@ void DecisionMakerNode::entryDriveReadyState(cstring_t& state_name, int status) void DecisionMakerNode::updateDriveReadyState(cstring_t& state_name, int status) { - const bool start_flag = false; - if (start_flag /*isEventFlagTrue("")*/) - { - tryNextState("engage"); - } } void DecisionMakerNode::entryDrivingState(cstring_t& state_name, int status) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_vehicle.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_vehicle.cpp index c2d21bc1862..ff08766c6a5 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_vehicle.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_vehicle.cpp @@ -48,6 +48,7 @@ void DecisionMakerNode::updateSensorInitState(cstring_t& state_name, int status) { ROS_INFO("DecisionMaker is in simulation mode"); tryNextState("sensor_is_ready"); + return; } else if (isEventFlagTrue("received_pointcloud_for_NDT")) { From 1950adeef601107f65c596585e4afca2a3479a28 Mon Sep 17 00:00:00 2001 From: Azumi SUZUKI Date: Thu, 8 Nov 2018 16:23:07 +0900 Subject: [PATCH 070/139] fixed emergency bug of state transition and command sent from decision_maker_pannel. moded dot file generation of state_machine. --- .../state_machine_lib/state_context.hpp | 4 +-- .../decision_maker/autoware_state_drive.yaml | 26 ++++++++----------- .../autoware_state_mission.yaml | 5 +++- .../autoware_state_vehicle.yaml | 4 +-- .../include/decision_maker_node.hpp | 6 ++--- .../decision_maker_node_state_mission.cpp | 1 - .../nodes/twist_gate/twist_gate.cpp | 2 +- .../decision_maker_panel.cpp | 20 ++++++++++++-- .../decision_maker_panel.h | 2 ++ .../state_panel/CMakeLists.txt | 1 + 10 files changed, 44 insertions(+), 27 deletions(-) diff --git a/ros/src/common/libs/state_machine_lib/include/state_machine_lib/state_context.hpp b/ros/src/common/libs/state_machine_lib/include/state_machine_lib/state_context.hpp index c4397f2df3c..9fb8a69956d 100644 --- a/ros/src/common/libs/state_machine_lib/include/state_machine_lib/state_context.hpp +++ b/ros/src/common/libs/state_machine_lib/include/state_machine_lib/state_context.hpp @@ -43,11 +43,11 @@ class StateContext bool isCurrentState(const std::string& state_name); public: - StateContext(const std::string& file_name, const std::string& msg_name = "autoware_states") + StateContext(const std::string& file_name, const std::string& msg_name/* = "autoware_states"*/) { createStateMap(file_name, msg_name); root_state_ = getStartState(); - createDOTGraph("/tmp/a.dot"); + createDOTGraph("/tmp/" + msg_name + ".dot"); } ~StateContext() diff --git a/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_drive.yaml b/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_drive.yaml index eb06c6fe6db..a59fa3f326c 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_drive.yaml +++ b/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_drive.yaml @@ -1,5 +1,5 @@ --- -autoware_states: +autoware_states_drive: - StateName: Start Transition: @@ -14,6 +14,13 @@ autoware_states: Key: operation_start Target: Drive Parent: ~ + - + StateName: DriveEmergency + Transition: + - + Key: return_from_emergency + Target: WaitEngage + Parent: ~ - StateName: Drive Transition: @@ -26,6 +33,9 @@ autoware_states: - Key: operation_end Target: WaitEngage + - + Key: emergency + Target: DriveEmergency Parent: ~ - StateName: LaneArea @@ -36,9 +46,6 @@ autoware_states: - Key: on_bus_stop Target: BusStop - - - Key: emergency - Target: LaneAreaEmergency Parent: Drive - StateName: BusStop @@ -354,19 +361,8 @@ autoware_states: - Key: on_parking Target: Parking - - - Key: emergency - Target: FreeAreaEmergency Parent: Drive - StateName: Parking Transition: [] Parent: FreeArea - - - StateName: LaneAreaEmergency - Transition: [] - Parent: LaneArea - - - StateName: FreeAreaEmergency - Transition: [] - Parent: FreeArea diff --git a/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_mission.yaml b/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_mission.yaml index 6ab51320820..dc67700847d 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_mission.yaml +++ b/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_mission.yaml @@ -1,5 +1,5 @@ --- -autoware_states: +autoware_states_mission: - StateName: Start Transition: @@ -50,6 +50,9 @@ autoware_states: - Key: mission_aborted Target: MissionAborted + - + Key: emergency + Target: MissionAborted - Key: request_mission_change Target: DrivingMissionChange diff --git a/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_vehicle.yaml b/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_vehicle.yaml index 8faef7fc4d8..5c016f7360c 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_vehicle.yaml +++ b/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_vehicle.yaml @@ -1,5 +1,5 @@ --- -autoware_states: +autoware_states_vehicle: - StateName: Start Transition: @@ -60,6 +60,6 @@ autoware_states: StateName: Emergency Transition: - - Key: restart + Key: return_from_emergency Target: Init Parent: ~ diff --git a/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp b/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp index 137b765a278..d2c0caba4ae 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp @@ -398,9 +398,9 @@ class DecisionMakerNode private_nh_.getParam("state_mission_file_name", file_name_mission); private_nh_.getParam("state_drive_file_name", file_name_drive); - ctx_vehicle = new state_machine::StateContext(file_name_vehicle); - ctx_mission = new state_machine::StateContext(file_name_mission); - ctx_drive = new state_machine::StateContext(file_name_drive); + ctx_vehicle = new state_machine::StateContext(file_name_vehicle, "autoware_states_vehicle"); + ctx_mission = new state_machine::StateContext(file_name_mission, "autoware_states_mission"); + ctx_drive = new state_machine::StateContext(file_name_drive, "autoware_states_drive"); init(); setupStateCallback(); diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_mission.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_mission.cpp index dd60d66c9ae..cd8a42c9edd 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_mission.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_mission.cpp @@ -92,7 +92,6 @@ void DecisionMakerNode::updateMissionCheckState(cstring_t& state_name, int statu void DecisionMakerNode::entryMissionAbortedState(cstring_t& state_name, int status) { - tryNextState("operation_end"); } void DecisionMakerNode::updateMissionAbortedState(cstring_t& state_name, int status) { diff --git a/ros/src/computing/planning/motion/packages/waypoint_follower/nodes/twist_gate/twist_gate.cpp b/ros/src/computing/planning/motion/packages/waypoint_follower/nodes/twist_gate/twist_gate.cpp index 6ab34c07739..842ef05cf0a 100644 --- a/ros/src/computing/planning/motion/packages/waypoint_follower/nodes/twist_gate/twist_gate.cpp +++ b/ros/src/computing/planning/motion/packages/waypoint_follower/nodes/twist_gate/twist_gate.cpp @@ -400,7 +400,7 @@ void TwistGate::state_callback(const std_msgs::StringConstPtr& input_msg) } // get drive state - if (input_msg->data.find("Drive\n") != std::string::npos) + if (input_msg->data.find("Drive\n") != std::string::npos && input_msg->data.find("VehicleReady\n") != std::string::npos) { is_state_drive_ = true; } diff --git a/ros/src/util/packages/autoware_rviz_plugins/src/decision_maker_panel/decision_maker_panel.cpp b/ros/src/util/packages/autoware_rviz_plugins/src/decision_maker_panel/decision_maker_panel.cpp index e79b42d7d12..72293be37f0 100644 --- a/ros/src/util/packages/autoware_rviz_plugins/src/decision_maker_panel/decision_maker_panel.cpp +++ b/ros/src/util/packages/autoware_rviz_plugins/src/decision_maker_panel/decision_maker_panel.cpp @@ -42,6 +42,7 @@ #include #include +#include "autoware_msgs/RemoteCmd.h" #include "decision_maker_panel.h" namespace autoware_rviz_debug @@ -72,7 +73,7 @@ class StateInfo DecisionMakerPanel::DecisionMakerPanel(QWidget* parent) : rviz::Panel(parent) { statecmd_publisher_ = nh_.advertise("/state_cmd", 1); - // Subs_["state"] = nh_ + emergency_publisher_ = nh_.advertise("/remote_cmd", 1); // Next we lay out the "output topic" text entry field using a // QLabel and a QLineEdit in a QHBoxLayout. @@ -151,7 +152,11 @@ DecisionMakerPanel::DecisionMakerPanel(QWidget* parent) : rviz::Panel(parent) void DecisionMakerPanel::sendTopic(const QString &text) { - if (statecmd_publisher_) + if (text == "emergency") + { + sendEmergency(); + } + else if (statecmd_publisher_) { std_msgs::String msg; msg.data = text.toStdString(); @@ -159,6 +164,17 @@ void DecisionMakerPanel::sendTopic(const QString &text) } } +void DecisionMakerPanel::sendEmergency() +{ + if (emergency_publisher_) + { + autoware_msgs::RemoteCmd remote_emergency; + remote_emergency.header.stamp = ros::Time::now(); + remote_emergency.vehicle_cmd.emergency = 1; + emergency_publisher_.publish(remote_emergency); + } +} + void DecisionMakerPanel::save(rviz::Config config) const { rviz::Panel::save(config); diff --git a/ros/src/util/packages/autoware_rviz_plugins/src/decision_maker_panel/decision_maker_panel.h b/ros/src/util/packages/autoware_rviz_plugins/src/decision_maker_panel/decision_maker_panel.h index 7c35ac019d4..fc02ea4e827 100644 --- a/ros/src/util/packages/autoware_rviz_plugins/src/decision_maker_panel/decision_maker_panel.h +++ b/ros/src/util/packages/autoware_rviz_plugins/src/decision_maker_panel/decision_maker_panel.h @@ -50,10 +50,12 @@ class DecisionMakerPanel : public rviz::Panel public Q_SLOTS: void sendTopic(const QString &text); + void sendEmergency(); // Then we finish up with protected member variables. protected: ros::Publisher statecmd_publisher_; + ros::Publisher emergency_publisher_; ros::NodeHandle nh_; }; diff --git a/ros/src/util/packages/autoware_rviz_plugins/state_panel/CMakeLists.txt b/ros/src/util/packages/autoware_rviz_plugins/state_panel/CMakeLists.txt index dc3a22161f5..09adb0008c3 100644 --- a/ros/src/util/packages/autoware_rviz_plugins/state_panel/CMakeLists.txt +++ b/ros/src/util/packages/autoware_rviz_plugins/state_panel/CMakeLists.txt @@ -5,6 +5,7 @@ find_package(autoware_build_flags REQUIRED) find_package(catkin REQUIRED COMPONENTS rviz std_msgs + autoware_msgs ) if(rviz_QT_VERSION VERSION_LESS "5") From 885204f236aeffddb537021af882fcf2616992d1 Mon Sep 17 00:00:00 2001 From: Servando German Date: Thu, 8 Nov 2018 16:04:23 +0000 Subject: [PATCH 071/139] Fix error in Amathutils.cpp which caused error calculating distance between 3D points --- ros/src/common/libs/amathutils_lib/src/Amathutils.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ros/src/common/libs/amathutils_lib/src/Amathutils.cpp b/ros/src/common/libs/amathutils_lib/src/Amathutils.cpp index 37e4c585129..162f46f0bf9 100644 --- a/ros/src/common/libs/amathutils_lib/src/Amathutils.cpp +++ b/ros/src/common/libs/amathutils_lib/src/Amathutils.cpp @@ -14,17 +14,17 @@ geometry_msgs::Point getNearPtOnLine(const geometry_msgs::Point &_p, const geome vnab.x = (_b.x - _a.x) / len; vnab.y = (_b.y - _a.y) / len; - vnab.z = 0; //(_b.z - _a.z) / len; + vnab.z = (_b.z - _a.z) / len; vap.x = _p.x - _a.x; vap.y = _p.y - _a.y; - vap.z = 0; //_p.z - _a.z; + vap.z = _p.z - _a.z; - double dist_ax = vnab.x * vap.x + vnab.y * vap.y + vnab.z + vap.z; + double dist_ax = vnab.x * vap.x + vnab.y * vap.y + vnab.z * vap.z; ret.x = _a.x + (vnab.x * dist_ax); ret.y = _a.y + (vnab.y * dist_ax); - ret.z = 0; //_a.z + (vnab.z * dist_ax); + ret.z = _a.z + (vnab.z * dist_ax); return ret; } From 29218f195dad66a1aaf9b4c23cf01e5a222a3546 Mon Sep 17 00:00:00 2001 From: Yusuke FUJII Date: Tue, 13 Nov 2018 17:20:24 +0900 Subject: [PATCH 072/139] apply clang-format --- ros/src/common/libs/amathutils_lib/src/Amathutils.cpp | 1 - .../libs/state_machine_lib/include/state_machine_lib/state.hpp | 1 - .../include/state_machine_lib/state_context.hpp | 2 +- .../nodes/decision_maker/decision_maker_node_state_vehicle.cpp | 2 +- 4 files changed, 2 insertions(+), 4 deletions(-) diff --git a/ros/src/common/libs/amathutils_lib/src/Amathutils.cpp b/ros/src/common/libs/amathutils_lib/src/Amathutils.cpp index 162f46f0bf9..8422cbc6de5 100644 --- a/ros/src/common/libs/amathutils_lib/src/Amathutils.cpp +++ b/ros/src/common/libs/amathutils_lib/src/Amathutils.cpp @@ -2,7 +2,6 @@ namespace amathutils { - geometry_msgs::Point getNearPtOnLine(const geometry_msgs::Point &_p, const geometry_msgs::Point &_a, const geometry_msgs::Point &_b) { diff --git a/ros/src/common/libs/state_machine_lib/include/state_machine_lib/state.hpp b/ros/src/common/libs/state_machine_lib/include/state_machine_lib/state.hpp index 5ee60cab69d..f87a1100cab 100644 --- a/ros/src/common/libs/state_machine_lib/include/state_machine_lib/state.hpp +++ b/ros/src/common/libs/state_machine_lib/include/state_machine_lib/state.hpp @@ -23,7 +23,6 @@ class State std::shared_ptr parent_state_; - std::function CallbackUpdateFunc; std::function CallbackEntryFunc; std::function CallbackExitFunc; diff --git a/ros/src/common/libs/state_machine_lib/include/state_machine_lib/state_context.hpp b/ros/src/common/libs/state_machine_lib/include/state_machine_lib/state_context.hpp index 9fb8a69956d..d2bcd7989bb 100644 --- a/ros/src/common/libs/state_machine_lib/include/state_machine_lib/state_context.hpp +++ b/ros/src/common/libs/state_machine_lib/include/state_machine_lib/state_context.hpp @@ -43,7 +43,7 @@ class StateContext bool isCurrentState(const std::string& state_name); public: - StateContext(const std::string& file_name, const std::string& msg_name/* = "autoware_states"*/) + StateContext(const std::string& file_name, const std::string& msg_name /* = "autoware_states"*/) { createStateMap(file_name, msg_name); root_state_ = getStartState(); diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_vehicle.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_vehicle.cpp index ff08766c6a5..88f917841f7 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_vehicle.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_vehicle.cpp @@ -77,7 +77,7 @@ void DecisionMakerNode::updateMapInitState(cstring_t& state_name, int status) { ROS_WARN("Necessary vectormap have not been loaded"); ROS_WARN("DecisionMaker keeps on waiting until it loads"); - if(disuse_vector_map_) + if (disuse_vector_map_) { ROS_WARN("Disuse vectormap mode."); tryNextState("map_is_ready"); From d04121382193439176f3c62c8f067c7e4a05b22f Mon Sep 17 00:00:00 2001 From: Azumi SUZUKI Date: Wed, 14 Nov 2018 18:59:52 +0900 Subject: [PATCH 073/139] removed planner_selector and its related parameters --- .../include/planner_selector.hpp | 77 ------ .../planner_selector_node.cpp | 234 ------------------ .../dp_planner/include/dp_planner_core.h | 2 - .../dp_planner/launch/dp_planner.launch | 48 ++-- .../dp_planner/nodes/dp_planner_core.cpp | 39 +-- .../launch/velocity_set.launch | 2 - .../src/velocity_set/velocity_set.cpp | 8 +- .../runtime_manager/scripts/computing.yaml | 5 - 8 files changed, 26 insertions(+), 389 deletions(-) delete mode 100644 ros/src/computing/planning/decision/packages/decision_maker/include/planner_selector.hpp delete mode 100644 ros/src/computing/planning/decision/packages/decision_maker/nodes/planner_selector/planner_selector_node.cpp diff --git a/ros/src/computing/planning/decision/packages/decision_maker/include/planner_selector.hpp b/ros/src/computing/planning/decision/packages/decision_maker/include/planner_selector.hpp deleted file mode 100644 index 86eb42af78a..00000000000 --- a/ros/src/computing/planning/decision/packages/decision_maker/include/planner_selector.hpp +++ /dev/null @@ -1,77 +0,0 @@ -#ifndef __PLANNER_SELECTOR_HPP__ -#define __PLANNER_SELECTOR_HPP__ - -#include -#include -#include -#include - -#include -#include -#include - -#include - -namespace decision_maker -{ -#define DEFAULT_LATENCY_NUM 5 -#define DEFAULT_WAYPOINTS_NUM 3 -#define DEFAULT_CONVERGENCE_NUM 2.0 -class PlannerSelector -{ -private: - ros::NodeHandle nh_; - - std::unordered_map waypoints_; - std::unordered_map Pubs; - std::unordered_map Subs; - - autoware_msgs::Lane final_waypoints_dp_; - autoware_msgs::Lane final_waypoints_astar_; - - std::unordered_map closest_waypoints_; - int closest_waypoint_astar_; - int closest_waypoint_dp_; - - unsigned int way_offset; - - std::mutex _mutex; - - int enableLattice_; - bool pastWaypoint; - unsigned int config_latency_num_; - unsigned int config_waypoints_num_; - double config_convergence_num_; - double current_velocity_; - - bool existWaypoints(const int _config_waypoints_num); - -public: - PlannerSelector() - { - this->initROS(); - enableLattice_ = 0; - pastWaypoint = false; - config_latency_num_ = DEFAULT_LATENCY_NUM; - config_waypoints_num_ = DEFAULT_WAYPOINTS_NUM; - config_convergence_num_ = DEFAULT_CONVERGENCE_NUM; - } - - void initROS(); - -<<<<<<< HEAD - void callbackFromClosest(const ros::MessageEvent& event); - void callbackFromWaypoints(const ros::MessageEvent& event); - void callbackFromLattice(const std_msgs::Int32& msg); - void callbackFromConfig(const autoware_msgs::ConfigPlannerSelector& msg); - void callbackFromCurrentVelocity(const geometry_msgs::TwistStamped& msg); -======= - void callbackFromClosest(const ros::MessageEvent &event); - void callbackFromWaypoints(const ros::MessageEvent &event); - void callbackFromLattice(const std_msgs::Int32 &msg); - void callbackFromConfig(const autoware_config_msgs::ConfigPlannerSelector &msg); - void callbackFromCurrentVelocity(const geometry_msgs::TwistStamped &msg); ->>>>>>> develop -}; -} -#endif diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/planner_selector/planner_selector_node.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/planner_selector/planner_selector_node.cpp deleted file mode 100644 index 5f0b1fbd425..00000000000 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/planner_selector/planner_selector_node.cpp +++ /dev/null @@ -1,234 +0,0 @@ -#include -#include -#include -#include - -#include -#include -#include - -#include -#include - -namespace decision_maker -{ -void PlannerSelector::initROS() -{ - Subs["/dp/final_waypoints"] = nh_.subscribe("/dp/final_waypoints", 1, &PlannerSelector::callbackFromWaypoints, this); - Subs["/astar/final_waypoints"] = - nh_.subscribe("/astar/final_waypoints", 1, &PlannerSelector::callbackFromWaypoints, this); - Subs["/enableLattice"] = nh_.subscribe("/enableLattice", 10, &PlannerSelector::callbackFromLattice, this); - - Subs["/dp/closest_waypoint"] = nh_.subscribe("/dp/closest_waypoint", 1, &PlannerSelector::callbackFromClosest, this); - Subs["/astar/closest_waypoint"] = - nh_.subscribe("/astar/closest_waypoint", 1, &PlannerSelector::callbackFromClosest, this); - - Subs["/config/planner_selector"] = - nh_.subscribe("/config/PlannerSelector", 1, &PlannerSelector::callbackFromConfig, this); - - Subs["current_velocity"] = nh_.subscribe("current_velocity", 3, &PlannerSelector::callbackFromCurrentVelocity, this); - - Pubs["final_waypoints"] = nh_.advertise("/final_waypoints", 1); - Pubs["closest_waypoint"] = nh_.advertise("/closest_waypoint", 1); -} - -inline bool PlannerSelector::existWaypoints(const int _config_waypoints_num) -{ - bool ret; - ret = (_config_waypoints_num < final_waypoints_dp_.waypoints.size()) && - (_config_waypoints_num < final_waypoints_dp_.waypoints.size()); - return ret; -} - -void PlannerSelector::callbackFromLattice(const std_msgs::Int32& msg) -{ - // static int prev[LATENCY_NUM] = { 1 }; - static int counter = 0; - double _distance = 100.0; - - try - { - autoware_msgs::Waypoint dp_point = final_waypoints_dp_.waypoints.at(config_waypoints_num_); - autoware_msgs::Waypoint astar_point = final_waypoints_astar_.waypoints.at(config_waypoints_num_); - - amathutils::point p_dp, p_astar; - p_dp.x = dp_point.pose.pose.position.x; - p_dp.x = dp_point.pose.pose.position.y; - p_dp.z = 0.0; - - p_astar.x = astar_point.pose.pose.position.x; - p_astar.x = astar_point.pose.pose.position.y; - p_astar.z = 0.0; - - _distance = amathutils::find_distance(&p_dp, &p_astar); - // ROS_INFO("distance=%f. %d:%d", _distance, dp_point.dtlane.dist,astar_point.dtlane.dist); - } - catch (const std::out_of_range& ex) - { - ROS_ERROR("Out of Range:%s", ex.what()); - } - -#if 0 // delay switch - _mutex.lock(); - if(enableLattice_){ - if (msg.data == 0){ - if(counter++ >= config_latency_num_){ - enableLattice_ = 0; - counter = 0; - } - } - }else{ - enableLattice_ = msg.data; - } - ROS_INFO("msg.data=%d, enableLattice_ = %d", msg.data, enableLattice_); - _mutex.unlock(); -#else - _mutex.lock(); - if (msg.data != enableLattice_) - { - if (enableLattice_ == 1 && msg.data == 0) - { - if (pastWaypoint == false) - { - pastWaypoint = true; - counter = 0; - way_offset = config_waypoints_num_; - } - } - enableLattice_ = msg.data; - } - if (counter++ >= config_latency_num_) - { - counter = 0; - if (way_offset > 0) - { - way_offset--; - } - else - { - pastWaypoint = false; - } - } - - // ROS_INFO("msg.data=%d, enableLattice_ = %d", msg.data, enableLattice_); - _mutex.unlock(); -#endif - // for debug - // ROS_INFO("\n***** EnableLattice = %d **** \n",enableLattice_,msg.data); -} - -void PlannerSelector::callbackFromWaypoints(const ros::MessageEvent& event) -{ - const ros::M_string& header = event.getConnectionHeader(); - std::string topic = header.at("topic"); - const autoware_msgs::Lane* waypoints = event.getMessage().get(); - - _mutex.lock(); - - if (this->enableLattice_ && topic.find("dp") != std::string::npos) - { - Pubs["final_waypoints"].publish(*waypoints); - final_waypoints_dp_ = *waypoints; - } - else if (!this->enableLattice_ && topic.find("astar") != std::string::npos) - { - if (pastWaypoint) - { - for (int i = 0; i < config_waypoints_num_; i++) - { - if (!final_waypoints_astar_.waypoints.empty()) - final_waypoints_astar_.waypoints.erase(final_waypoints_astar_.waypoints.begin()); - else - { - pastWaypoint = false; - way_offset = 0; - } - } -#if 0 - if(final_waypoints_astar_.waypoints.empty()){ - int _size = final_waypoints_astar_.waypoints.size(); - _size = _size>=5?5:_size; - auto itr = final_waypoints_astar_.waypoints.begin(); - for(int i=0; i < 5; i++){ - itr->twist.twist.linear.x = (current_velocity_*2 + itr->twist.twist.linear.x) / 3; - std::cout << "set linear velocity:" << mps2kmph(itr->twist.twist.linear.x) << std::endl; - itr++; - } - } -#endif - Pubs["final_waypoints"].publish(final_waypoints_astar_); - } - else - { - Pubs["final_waypoints"].publish(*waypoints); - } - final_waypoints_astar_ = *waypoints; - } - - // for debug - // ROS_INFO("%s, %d-%d-%d", topic.c_str(), closest_waypoint_dp_, closest_waypoint_astar_, this->enableLattice_); - _mutex.unlock(); -} - -void PlannerSelector::callbackFromCurrentVelocity(const geometry_msgs::TwistStamped& msg) -{ - current_velocity_ = msg.twist.linear.x; -} - -void PlannerSelector::callbackFromConfig(const autoware_config_msgs::ConfigPlannerSelector& msg) -{ - config_latency_num_ = msg.latency_num; - config_waypoints_num_ = msg.waypoints_num; - config_convergence_num_ = msg.convergence_num; - - ROS_INFO("PARAM_SET-latency:%d, waypoints:%d, convergence:%f", config_latency_num_, config_waypoints_num_, - config_convergence_num_); -} - -void PlannerSelector::callbackFromClosest(const ros::MessageEvent& event) -{ - const ros::M_string& header = event.getConnectionHeader(); - std::string topic = header.at("topic"); - - int temp = event.getMessage().get()->data; - std_msgs::Int32 msg; - -#if 1 - if (topic.find("/dp") == 0) - { - closest_waypoints_["dp"] = temp; - - if (closest_waypoints_["astar"]) - { - msg.data = closest_waypoint_astar_; - } - closest_waypoint_dp_ = temp; - } - else if (topic.find("/astar") == 0) - { - closest_waypoints_["astar"] = temp; - closest_waypoint_astar_ = temp; - } - - // ROS_INFO("PastWaypoint:%s-offset:%d, latency:%d, closest:%d", pastWaypoint?"true":"false", way_offset, - // config_latency_num_,closest_waypoint_astar); - if (pastWaypoint && final_waypoints_astar_.waypoints.size() > closest_waypoint_astar_ + way_offset) - { - msg.data = closest_waypoint_astar_ + way_offset; - } - else - { - msg.data = closest_waypoint_astar_; - } -#endif - Pubs["closest_waypoint"].publish(msg); -} -} - -int main(int argc, char** argv) -{ - ros::init(argc, argv, "planner_selector"); - - decision_maker::PlannerSelector _psn; - ros::spin(); -} diff --git a/ros/src/computing/planning/motion/packages/dp_planner/include/dp_planner_core.h b/ros/src/computing/planning/motion/packages/dp_planner/include/dp_planner_core.h index e21fabbca11..7feda87e5c2 100644 --- a/ros/src/computing/planning/motion/packages/dp_planner/include/dp_planner_core.h +++ b/ros/src/computing/planning/motion/packages/dp_planner/include/dp_planner_core.h @@ -139,8 +139,6 @@ class PlannerX std::vector m_LogData; - bool enablePlannerDynamicSwitch; - protected: //ROS messages (topics) diff --git a/ros/src/computing/planning/motion/packages/dp_planner/launch/dp_planner.launch b/ros/src/computing/planning/motion/packages/dp_planner/launch/dp_planner.launch index e70b84dfc47..a6f2a449271 100644 --- a/ros/src/computing/planning/motion/packages/dp_planner/launch/dp_planner.launch +++ b/ros/src/computing/planning/motion/packages/dp_planner/launch/dp_planner.launch @@ -1,52 +1,52 @@ - + - - + + - - + + - + - + - + - + - + - + - + - + - + @@ -55,41 +55,39 @@ - - + + - + - + - + - + - + - + - + - - diff --git a/ros/src/computing/planning/motion/packages/dp_planner/nodes/dp_planner_core.cpp b/ros/src/computing/planning/motion/packages/dp_planner/nodes/dp_planner_core.cpp index 2cecd6fde59..5fd8659bc13 100644 --- a/ros/src/computing/planning/motion/packages/dp_planner/nodes/dp_planner_core.cpp +++ b/ros/src/computing/planning/motion/packages/dp_planner/nodes/dp_planner_core.cpp @@ -71,8 +71,6 @@ PlannerX::PlannerX() m_ObstacleTracking.m_dt = 0.12; m_ObstacleTracking.m_bUseCenterOnly = true; - enablePlannerDynamicSwitch = false; - int iSource = 0; nh.getParam("/dp_planner/mapSource", iSource); @@ -95,12 +93,6 @@ PlannerX::PlannerX() std::string topic_prefix; - nh.getParam("/dp_planner/enablePlannerDynamicSwitch", enablePlannerDynamicSwitch); - if(enablePlannerDynamicSwitch){ - topic_prefix = "/dp"; - pub_LocalTrajectoriesRviz_dynamic = nh.advertise("local_trajectories_dynamic", 1); - pub_EnableLattice = nh.advertise("enableLattice", 1); - } pub_LocalPath = nh.advertise(topic_prefix + "/final_waypoints", 100,true); pub_LocalBasePath = nh.advertise(topic_prefix + "/base_waypoints", 100,true); @@ -116,7 +108,7 @@ PlannerX::PlannerX() pub_DetectedPolygonsRviz = nh.advertise("detected_polygons", 1, true); pub_TrackedObstaclesRviz = nh.advertise("dp_planner_tracked_boxes", 1); pub_LocalTrajectoriesRviz = nh.advertise("local_trajectories", 1); - + pub_TestLineRviz = nh.advertise("testing_line", 1); pub_BehaviorStateRviz = nh.advertise("behavior_state", 1); pub_SafetyBorderRviz = nh.advertise("safety_border", 1); @@ -770,37 +762,10 @@ void PlannerX::PlannerMainLoop() pub_LocalPath.publish(current_trajectory); visualization_msgs::MarkerArray all_rollOuts; - + ROSHelpers::ConvertFromPlannerHToAutowareVisualizePathFormat(m_LocalPlanner.m_Path, m_LocalPlanner.m_RollOuts, m_LocalPlanner, all_rollOuts); pub_LocalTrajectoriesRviz.publish(all_rollOuts); - //Publish markers that visualize only when avoiding objects - if(enablePlannerDynamicSwitch){ - visualization_msgs::MarkerArray all_rollOuts_dynamic; - std_msgs::Int32 enableLattice; - if(iDirection != 0) { // if obstacle avoidance state, - all_rollOuts_dynamic = all_rollOuts; - - for(auto &ro : all_rollOuts_dynamic.markers){ - ro.ns = "global_lane_array_marker_dynamic"; - } - pub_LocalTrajectoriesRviz_dynamic.publish(all_rollOuts_dynamic); - enableLattice.data = 1; - }else{ - visualization_msgs::Marker delMarker; -#ifndef ROS_KINETIC - delMarker.action = visualization_msgs::Marker::DELETE; -#else - delMarker.action = visualization_msgs::Marker::DELETEALL; -#endif - delMarker.ns = "global_lane_array_marker_dynamic"; - all_rollOuts_dynamic.markers.push_back(delMarker); - pub_LocalTrajectoriesRviz_dynamic.publish(all_rollOuts_dynamic); - enableLattice.data = 0; - } - pub_EnableLattice.publish(enableLattice); //Publish flag of object avoidance - } - if(m_CurrentBehavior.bNewPlan) { diff --git a/ros/src/computing/planning/motion/packages/waypoint_planner/launch/velocity_set.launch b/ros/src/computing/planning/motion/packages/waypoint_planner/launch/velocity_set.launch index ee344be4fc7..afa3df973af 100644 --- a/ros/src/computing/planning/motion/packages/waypoint_planner/launch/velocity_set.launch +++ b/ros/src/computing/planning/motion/packages/waypoint_planner/launch/velocity_set.launch @@ -6,7 +6,6 @@ - @@ -15,7 +14,6 @@ - diff --git a/ros/src/computing/planning/motion/packages/waypoint_planner/src/velocity_set/velocity_set.cpp b/ros/src/computing/planning/motion/packages/waypoint_planner/src/velocity_set/velocity_set.cpp index cfcdd2698f7..07df490ba36 100644 --- a/ros/src/computing/planning/motion/packages/waypoint_planner/src/velocity_set/velocity_set.cpp +++ b/ros/src/computing/planning/motion/packages/waypoint_planner/src/velocity_set/velocity_set.cpp @@ -529,12 +529,10 @@ int main(int argc, char** argv) bool use_crosswalk_detection; bool enable_multiple_crosswalk_detection; - bool enablePlannerDynamicSwitch; std::string points_topic; private_nh.param("use_crosswalk_detection", use_crosswalk_detection, true); private_nh.param("enable_multiple_crosswalk_detection", enable_multiple_crosswalk_detection, true); - private_nh.param("enablePlannerDynamicSwitch", enablePlannerDynamicSwitch, false); private_nh.param("points_topic", points_topic, "points_lanes"); @@ -570,11 +568,7 @@ int main(int argc, char** argv) ros::Publisher obstacle_waypoint_pub = nh.advertise("obstacle_waypoint", 1, true); ros::Publisher final_waypoints_pub; - if(enablePlannerDynamicSwitch){ - final_waypoints_pub = nh.advertise("astar/final_waypoints", 1, true); - }else{ - final_waypoints_pub = nh.advertise("final_waypoints", 1, true); - } + final_waypoints_pub = nh.advertise("final_waypoints", 1, true); ros::Rate loop_rate(LOOP_RATE); while (ros::ok()) diff --git a/ros/src/util/packages/runtime_manager/scripts/computing.yaml b/ros/src/util/packages/runtime_manager/scripts/computing.yaml index 34fef0efee5..cc56fc32586 100755 --- a/ros/src/util/packages/runtime_manager/scripts/computing.yaml +++ b/ros/src/util/packages/runtime_manager/scripts/computing.yaml @@ -738,11 +738,6 @@ subs : depend : use_fms depend_bool : 'lambda v : v == 0' - - name : planner_selector - desc : planner_selector desc sample - cmd : roslaunch planner_selector planner_selector.launch - param: planner_selector - buttons: From 12b7f9b66180d677ab74ad36f531f04b9282b972 Mon Sep 17 00:00:00 2001 From: Azumi SUZUKI Date: Sun, 18 Nov 2018 14:27:26 +0900 Subject: [PATCH 074/139] add WaitReady state into Drive states, and fixed emergency bag. --- .../decision_maker/autoware_state_drive.yaml | 10 ++++++++++ .../decision_maker/autoware_state_mission.yaml | 6 +++--- .../decision_maker/include/decision_maker_node.hpp | 3 +++ .../decision_maker/decision_maker_node_init.cpp | 4 ++++ .../decision_maker_node_state_drive.cpp | 14 ++++++++++++++ .../decision_maker_node_state_mission.cpp | 9 +++++++++ .../decision_maker_node_state_vehicle.cpp | 4 ++++ 7 files changed, 47 insertions(+), 3 deletions(-) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_drive.yaml b/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_drive.yaml index a59fa3f326c..d29284e5155 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_drive.yaml +++ b/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_drive.yaml @@ -5,6 +5,13 @@ autoware_states_drive: Transition: - Key: started + Target: WaitReady + Parent: ~ + - + StateName: WaitReady + Transition: + - + Key: vehicle_is_ready Target: WaitEngage Parent: ~ - @@ -13,6 +20,9 @@ autoware_states_drive: - Key: operation_start Target: Drive + - + Key: emergency + Target: DriveEmergency Parent: ~ - StateName: DriveEmergency diff --git a/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_mission.yaml b/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_mission.yaml index dc67700847d..ef76fd79464 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_mission.yaml +++ b/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_mission.yaml @@ -50,9 +50,6 @@ autoware_states_mission: - Key: mission_aborted Target: MissionAborted - - - Key: emergency - Target: MissionAborted - Key: request_mission_change Target: DrivingMissionChange @@ -97,4 +94,7 @@ autoware_states_mission: - Key: goto_wait_order Target: WaitOrder + - + Key: return_from_emergency + Target: WaitVehicleReady Parent: ~ diff --git a/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp b/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp index d2c0caba4ae..0868fc2d89e 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp @@ -316,7 +316,9 @@ class DecisionMakerNode void entryAvoidanceState(cstring_t& state_name, int status); void entryReturnToLaneState(cstring_t& state_name, int status); void entryLaneChangeState(cstring_t& state_name, int status); + void entryDriveEmergencyState(cstring_t& state_name, int status); // update callback + void updateWaitReadyState(cstring_t& state_name, int status); void updateWaitEngageState(cstring_t& state_name, int status); void updateDriveState(cstring_t& state_name, int status); void updateLaneAreaState(cstring_t& state_name, int status); @@ -347,6 +349,7 @@ class DecisionMakerNode void updateReturnToLaneState(cstring_t& state_name, int status); // exit callback void exitStopState(cstring_t& state_name, int status); + void exitDriveEmergencyState(cstring_t& state_name, int status); // callback by topic subscribing void callbackFromFilteredPoints(const sensor_msgs::PointCloud2::ConstPtr& msg); diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_init.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_init.cpp index d016b15f9a8..4591c08c837 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_init.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_init.cpp @@ -107,8 +107,12 @@ void DecisionMakerNode::setupStateCallback(void) std::bind(&DecisionMakerNode::updateBusStopState, this, std::placeholders::_1, 0)); ctx_drive->setCallback(state_machine::CallbackType::UPDATE, "Parking", std::bind(&DecisionMakerNode::updateParkingState, this, std::placeholders::_1, 0)); + ctx_drive->setCallback(state_machine::CallbackType::ENTRY, "DriveEmergency", + std::bind(&DecisionMakerNode::entryDriveEmergencyState, this, std::placeholders::_1, 0)); ctx_drive->setCallback(state_machine::CallbackType::UPDATE, "DriveEmergency", std::bind(&DecisionMakerNode::updateDriveEmergencyState, this, std::placeholders::_1, 0)); + ctx_drive->setCallback(state_machine::CallbackType::EXIT, "DriveEmergency", + std::bind(&DecisionMakerNode::exitDriveEmergencyState, this, std::placeholders::_1, 0)); ctx_drive->setCallback(state_machine::CallbackType::ENTRY, "LeftTurn", std::bind(&DecisionMakerNode::entryTurnState, this, std::placeholders::_1, 0)); ctx_drive->setCallback(state_machine::CallbackType::UPDATE, "LeftTurn", diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp index 997ffee5f8a..53857cca439 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp @@ -2,6 +2,10 @@ namespace decision_maker { +void DecisionMakerNode::updateWaitReadyState(cstring_t& state_name, int status) +{ +} + void DecisionMakerNode::updateWaitEngageState(cstring_t& state_name, int status) { } @@ -398,7 +402,17 @@ void DecisionMakerNode::updateReturnToLaneState(cstring_t& state_name, int statu { } +void DecisionMakerNode::entryDriveEmergencyState(cstring_t& state_name, int status) +{ + setEventFlag("emergency_flag", true); + tryNextState("mission_aborted"); +} void DecisionMakerNode::updateDriveEmergencyState(cstring_t& state_name, int status) { } +void DecisionMakerNode::exitDriveEmergencyState(cstring_t& state_name, int status) +{ + setEventFlag("emergency_flag", false); +} + } diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_mission.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_mission.cpp index cd8a42c9edd..d3ae43d8071 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_mission.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_mission.cpp @@ -115,9 +115,18 @@ void DecisionMakerNode::updateDriveReadyState(cstring_t& state_name, int status) void DecisionMakerNode::entryDrivingState(cstring_t& state_name, int status) { tryNextState("operation_start"); + + if (isEventFlagTrue("emergency_flag")) + { + tryNextState("mission_aborted"); + } } void DecisionMakerNode::updateDrivingState(cstring_t& state_name, int status) { + if (isEventFlagTrue("emergency_flag")) + { + tryNextState("mission_aborted"); + } } void DecisionMakerNode::exitDrivingState(cstring_t& state_name, int status) { diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_vehicle.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_vehicle.cpp index 88f917841f7..cd874a2599c 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_vehicle.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_vehicle.cpp @@ -134,6 +134,10 @@ void DecisionMakerNode::entryVehicleReadyState(cstring_t& state_name, int status void DecisionMakerNode::updateVehicleReadyState(cstring_t& state_name, int status) { + if (isEventFlagTrue("emergency_flag")) + { + tryNextState("emergency"); + } } void DecisionMakerNode::entryVehicleEmergencyState(cstring_t& state_name, int status) From 2856ceeee24722b5d8d93c495600ddf77b51c447 Mon Sep 17 00:00:00 2001 From: Azumi SUZUKI Date: Sun, 18 Nov 2018 23:57:44 +0900 Subject: [PATCH 075/139] fixed TryAvoidance state bug. --- .../decision_maker/include/decision_maker_node.hpp | 1 + .../nodes/decision_maker/decision_maker_node_init.cpp | 9 +++++++++ .../decision_maker/decision_maker_node_state_drive.cpp | 7 ++++++- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp b/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp index 0868fc2d89e..3081647b5ef 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp @@ -311,6 +311,7 @@ class DecisionMakerNode // entry callback void entryDriveState(cstring_t& state_name, int status); void entryTurnState(cstring_t& state_name, int status); + void entryGoState(cstring_t& state_name, int status); void entryTryAvoidanceState(cstring_t& state_name, int status); void entryCheckAvoidanceState(cstring_t& state_name, int status); void entryAvoidanceState(cstring_t& state_name, int status); diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_init.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_init.cpp index 4591c08c837..83b49579a0c 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_init.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_init.cpp @@ -151,6 +151,15 @@ void DecisionMakerNode::setupStateCallback(void) ctx_drive->setCallback(state_machine::CallbackType::UPDATE, "ChangeToRight", std::bind(&DecisionMakerNode::updateChangeToRightState, this, std::placeholders::_1, 0)); + ctx_drive->setCallback(state_machine::CallbackType::ENTRY, "Go", + std::bind(&DecisionMakerNode::entryGoState, this, std::placeholders::_1, 0)); + ctx_drive->setCallback(state_machine::CallbackType::ENTRY, "L_Go", + std::bind(&DecisionMakerNode::entryGoState, this, std::placeholders::_1, 0)); + ctx_drive->setCallback(state_machine::CallbackType::ENTRY, "R_Go", + std::bind(&DecisionMakerNode::entryGoState, this, std::placeholders::_1, 0)); + ctx_drive->setCallback(state_machine::CallbackType::ENTRY, "B_Go", + std::bind(&DecisionMakerNode::entryGoState, this, std::placeholders::_1, 0)); + ctx_drive->setCallback(state_machine::CallbackType::UPDATE, "Go", std::bind(&DecisionMakerNode::updateGoState, this, std::placeholders::_1, 0)); ctx_drive->setCallback(state_machine::CallbackType::UPDATE, "L_Go", diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp index 53857cca439..fc58363141c 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp @@ -298,6 +298,10 @@ void DecisionMakerNode::updateParkingState(cstring_t& state_name, int status) publishLampCmd(E_Lamp::LAMP_HAZARD); } +void DecisionMakerNode::entryGoState(cstring_t& state_name, int status) +{ + setEventFlag("entry_go_state", true); +} void DecisionMakerNode::updateGoState(cstring_t& state_name, int status) { std::pair get_stopsign = getStopSignStateFromWaypoint(); @@ -308,7 +312,7 @@ void DecisionMakerNode::updateGoState(cstring_t& state_name, int status) } static double stopped_time; - if (current_status_.velocity == 0.0 && current_status_.obstacle_waypoint != -1) + if (current_status_.velocity == 0.0 && current_status_.obstacle_waypoint != -1 && !isEventFlagTrue("entry_go_state")) { if (ros::Time::now().toSec() - stopped_time > time_to_avoidance_) { @@ -319,6 +323,7 @@ void DecisionMakerNode::updateGoState(cstring_t& state_name, int status) { stopped_time = ros::Time::now().toSec(); } + setEventFlag("entry_go_state", false); } void DecisionMakerNode::updateWaitState(cstring_t& state_name, int status) From 94af9207568ed783877e1cb1776f5e589f141736 Mon Sep 17 00:00:00 2001 From: Azumi SUZUKI Date: Mon, 19 Nov 2018 01:21:32 +0900 Subject: [PATCH 076/139] fixed stop button bug and mission change bug. removed DTLANE from required vector_map. --- .../decision_maker/autoware_state_drive.yaml | 12 ++++++++++++ .../decision_maker/include/decision_maker_node.hpp | 1 + .../decision_maker/decision_maker_node_callback.cpp | 1 + .../decision_maker/decision_maker_node_init.cpp | 9 +++++++++ .../decision_maker_node_state_drive.cpp | 10 ++++++++++ .../decision_maker_node_state_mission.cpp | 1 + .../decision_maker_node_state_vehicle.cpp | 5 +++-- 7 files changed, 37 insertions(+), 2 deletions(-) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_drive.yaml b/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_drive.yaml index d29284e5155..12669b0b63c 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_drive.yaml +++ b/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_drive.yaml @@ -109,6 +109,9 @@ autoware_states_drive: - Key: wait Target: L_Wait + - + Key: found_obstacle_in_stopped_area + Target: L_Stop Parent: Cruise - StateName: L_Stop @@ -159,6 +162,9 @@ autoware_states_drive: - Key: wait Target: R_Wait + - + Key: found_obstacle_in_stopped_area + Target: R_Stop Parent: Cruise - StateName: R_Stop @@ -209,6 +215,9 @@ autoware_states_drive: - Key: wait Target: Wait + - + Key: found_obstacle_in_stopped_area + Target: Stop Parent: Cruise - StateName: Stop @@ -295,6 +304,9 @@ autoware_states_drive: - Key: wait Target: B_Wait + - + Key: found_obstacle_in_stopped_area + Target: B_Stop Parent: Cruise - StateName: B_Stop diff --git a/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp b/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp index 3081647b5ef..b9ba58eb153 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp @@ -318,6 +318,7 @@ class DecisionMakerNode void entryReturnToLaneState(cstring_t& state_name, int status); void entryLaneChangeState(cstring_t& state_name, int status); void entryDriveEmergencyState(cstring_t& state_name, int status); + void entryStopState(cstring_t& state_name, int status); // update callback void updateWaitReadyState(cstring_t& state_name, int status); void updateWaitEngageState(cstring_t& state_name, int status); diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp index a8d3f436c24..236d38837ac 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp @@ -261,6 +261,7 @@ void DecisionMakerNode::setWaypointState(autoware_msgs::LaneArray& lane_array) bool DecisionMakerNode::drivingMissionCheck() { publishOperatorHelpMessage("Received new mission, checking now..."); + setEventFlag("received_back_state_waypoint", false); int gid = 0; for (auto& lane : current_status_.based_lane_array.lanes) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_init.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_init.cpp index 83b49579a0c..7cbf9da8c60 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_init.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_init.cpp @@ -187,6 +187,15 @@ void DecisionMakerNode::setupStateCallback(void) ctx_drive->setCallback(state_machine::CallbackType::UPDATE, "B_StopLine", std::bind(&DecisionMakerNode::updateStoplineState, this, std::placeholders::_1, 0)); + ctx_drive->setCallback(state_machine::CallbackType::ENTRY, "Stop", + std::bind(&DecisionMakerNode::entryStopState, this, std::placeholders::_1, 1)); + ctx_drive->setCallback(state_machine::CallbackType::ENTRY, "L_Stop", + std::bind(&DecisionMakerNode::entryStopState, this, std::placeholders::_1, 1)); + ctx_drive->setCallback(state_machine::CallbackType::ENTRY, "R_Stop", + std::bind(&DecisionMakerNode::entryStopState, this, std::placeholders::_1, 1)); + ctx_drive->setCallback(state_machine::CallbackType::ENTRY, "B_Stop", + std::bind(&DecisionMakerNode::entryStopState, this, std::placeholders::_1, 1)); + ctx_drive->setCallback(state_machine::CallbackType::UPDATE, "Stop", std::bind(&DecisionMakerNode::updateStopState, this, std::placeholders::_1, 1)); ctx_drive->setCallback(state_machine::CallbackType::UPDATE, "L_Stop", diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp index fc58363141c..ef3cafde377 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp @@ -237,6 +237,11 @@ void DecisionMakerNode::entryTurnState(cstring_t& state_name, int status) tryNextState("found_stopline"); return; } + else if (isEventFlagTrue("entry_stop_state")) + { + tryNextState("found_obstacle_in_stopped_area"); + return; + } tryNextState("clear"); } @@ -301,6 +306,7 @@ void DecisionMakerNode::updateParkingState(cstring_t& state_name, int status) void DecisionMakerNode::entryGoState(cstring_t& state_name, int status) { setEventFlag("entry_go_state", true); + setEventFlag("entry_stop_state", false); } void DecisionMakerNode::updateGoState(cstring_t& state_name, int status) { @@ -332,6 +338,10 @@ void DecisionMakerNode::updateWaitState(cstring_t& state_name, int status) publishStoplineWaypointIdx(current_status_.closest_waypoint + 1); } +void DecisionMakerNode::entryStopState(cstring_t& state_name, int status) +{ + setEventFlag("entry_stop_state", true); +} void DecisionMakerNode::updateStopState(cstring_t& state_name, int status) { publishStoplineWaypointIdx(current_status_.closest_waypoint + 1); diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_mission.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_mission.cpp index d3ae43d8071..8c40d23d96f 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_mission.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_mission.cpp @@ -92,6 +92,7 @@ void DecisionMakerNode::updateMissionCheckState(cstring_t& state_name, int statu void DecisionMakerNode::entryMissionAbortedState(cstring_t& state_name, int status) { + tryNextState("operation_end"); } void DecisionMakerNode::updateMissionAbortedState(cstring_t& state_name, int status) { diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_vehicle.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_vehicle.cpp index cd874a2599c..d5703fe6eb3 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_vehicle.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_vehicle.cpp @@ -66,12 +66,13 @@ void DecisionMakerNode::updateMapInitState(cstring_t& state_name, int status) { bool vmap_loaded = false; - g_vmap.subscribe(nh_, Category::POINT | Category::LINE | Category::VECTOR | Category::AREA | Category::DTLANE | + g_vmap.subscribe(nh_, Category::POINT | Category::LINE | Category::VECTOR | Category::AREA | Category::STOP_LINE | Category::ROAD_SIGN | Category::CROSS_ROAD, ros::Duration(5.0)); vmap_loaded = - g_vmap.hasSubscribed(Category::POINT | Category::LINE | Category::AREA | Category::DTLANE | Category::STOP_LINE); + g_vmap.hasSubscribed(Category::POINT | Category::LINE | Category::AREA | + Category::STOP_LINE | Category::ROAD_SIGN); if (!vmap_loaded) { From 3e9a4c62571855b847bb7156db787aa296b213b4 Mon Sep 17 00:00:00 2001 From: Azumi SUZUKI Date: Tue, 20 Nov 2018 21:19:10 +0900 Subject: [PATCH 077/139] corrected the codes that where pointed out by sgermanserrano. --- .../state_machine_lib/state_context.hpp | 4 +- .../state_machine_lib/src/state_context.cpp | 52 ++++++++----------- .../autoware_state_vehicle.yaml | 4 +- 3 files changed, 25 insertions(+), 35 deletions(-) diff --git a/ros/src/common/libs/state_machine_lib/include/state_machine_lib/state_context.hpp b/ros/src/common/libs/state_machine_lib/include/state_machine_lib/state_context.hpp index d2bcd7989bb..117affceafa 100644 --- a/ros/src/common/libs/state_machine_lib/include/state_machine_lib/state_context.hpp +++ b/ros/src/common/libs/state_machine_lib/include/state_machine_lib/state_context.hpp @@ -38,12 +38,11 @@ class StateContext std::shared_ptr getStatePtr(const YAML::Node& node); std::shared_ptr getStatePtr(const std::string& _state_name); std::shared_ptr getStatePtr(const uint64_t& _state_id); - void parseChildTransitionMap(const YAML::Node& node); bool isCurrentState(const std::string& state_name); public: - StateContext(const std::string& file_name, const std::string& msg_name /* = "autoware_states"*/) + StateContext(const std::string& file_name, const std::string& msg_name) { createStateMap(file_name, msg_name); root_state_ = getStartState(); @@ -58,7 +57,6 @@ class StateContext std::shared_ptr getStartState(void); void onUpdate(void); - void onEntry(uint64_t _prev_state_id); void onExit(); bool setCallback(const CallbackType& _type, const std::string& _state_name, diff --git a/ros/src/common/libs/state_machine_lib/src/state_context.cpp b/ros/src/common/libs/state_machine_lib/src/state_context.cpp index 4f93f88533f..c6b03a58c21 100644 --- a/ros/src/common/libs/state_machine_lib/src/state_context.cpp +++ b/ros/src/common/libs/state_machine_lib/src/state_context.cpp @@ -6,6 +6,7 @@ #include #include #include +#include #include @@ -93,7 +94,7 @@ void StateContext::nextState(const std::string& transition_key) return; } - if (state_map_[transition_state_id]->getParent()) + if (state_map_.at(transition_state_id)->getParent()) { DEBUG_PRINT("[Child]:TransitionState: %d -> %d\n", state->getStateID(), transition_state_id); @@ -101,29 +102,29 @@ void StateContext::nextState(const std::string& transition_key) do { - if (in_state == state_map_[transition_state_id]->getParent()) + if (in_state == state_map_.at(transition_state_id)->getParent()) { if (in_state->getChild()) { key_list.push_back(in_state->getChild()->getEnteredKey()); in_state->getChild()->onExit(); } - in_state->setChild(state_map_[transition_state_id]); + in_state->setChild(state_map_.at(transition_state_id)); break; } in_state = in_state->getChild(); } while (in_state); createDOTGraph(dot_output_name); - state_map_[transition_state_id]->setEnteredKey(transition_key); - state_map_[transition_state_id]->onEntry(); + state_map_.at(transition_state_id)->setEnteredKey(transition_key); + state_map_.at(transition_state_id)->onEntry(); } else { DEBUG_PRINT("[Root]:TransitionState: %d -> %d\n", state->getStateID(), transition_state_id); state->onExit(); - root_state_ = state_map_[transition_state_id]; + root_state_ = state_map_.at(transition_state_id); root_state_->setChild(nullptr); root_state_->setParent(nullptr); root_state_->setEnteredKey(transition_key); @@ -152,11 +153,11 @@ void StateContext::createGraphTransitionList(std::ofstream& outputfile, int idx, /* FIX THIS * Not support single state, which state is integrated before state circle.....;( * */ - if (!sublist[idx].empty() || state_map_[idx]->getParent() == NULL) + if (!sublist[idx].empty() || state_map_.at(idx)->getParent() == NULL) { outputfile << "subgraph cluster_" << idx << "{\n" - << "label = \"" << state_map_[idx]->getStateName() << "\";\n"; - if (!state_map_[idx]->getParent()) + << "label = \"" << state_map_.at(idx)->getStateName() << "\";\n"; + if (!state_map_.at(idx)->getParent()) { outputfile << "group = 1;\n"; } @@ -167,24 +168,24 @@ void StateContext::createGraphTransitionList(std::ofstream& outputfile, int idx, } } - for (auto& map : state_map_[idx]->getTransitionMap()) + for (auto& map : state_map_.at(idx)->getTransitionMap()) { - if ((state_map_[map.second]->getParent() == state_map_[idx]->getParent() || - state_map_[map.second]->getParent() == state_map_[idx]) && - state_map_[map.second]->getParent() != NULL) + if ((state_map_.at(map.second)->getParent() == state_map_.at(idx)->getParent() || + state_map_.at(map.second)->getParent() == state_map_.at(idx)) && + state_map_.at(map.second)->getParent() != NULL) { outputfile << idx << "->" << map.second << " [label=\"" << map.first << "\"];\n"; } } - if (!sublist[idx].empty() || state_map_[idx]->getParent() == NULL) + if (!sublist[idx].empty() || state_map_.at(idx)->getParent() == NULL) { outputfile << "}\n"; } - for (auto& map : state_map_[idx]->getTransitionMap()) + for (auto& map : state_map_.at(idx)->getTransitionMap()) { - if ((state_map_[map.second]->getParent() != state_map_[idx]->getParent() && - state_map_[map.second]->getParent() != state_map_[idx]) || - state_map_[map.second]->getParent() == NULL) + if ((state_map_.at(map.second)->getParent() != state_map_.at(idx)->getParent() && + state_map_.at(map.second)->getParent() != state_map_.at(idx)) || + state_map_.at(map.second)->getParent() == NULL) { outputfile << idx << "->" << map.second << " [label=\"" << map.first << "\"];\n"; } @@ -258,7 +259,7 @@ uint64_t StateContext::getStateIDbyName(std::string _name) return i.second->getStateID(); } } - return 0; + return UINT64_MAX; } std::string StateContext::getAvailableTransition(void) @@ -270,7 +271,7 @@ std::string StateContext::getAvailableTransition(void) { for (const auto& keyval : state->getTransitionMap()) { - text += keyval.first + ":" + state_map_[keyval.second]->getStateName() + ","; + text += keyval.first + ":" + state_map_.at(keyval.second)->getStateName() + ","; } state = state->getChild(); } while (state != nullptr); @@ -324,16 +325,7 @@ std::shared_ptr StateContext::getStatePtr(const std::string& _state_name) std::shared_ptr StateContext::getStatePtr(const uint64_t& _state_id) { - return state_map_[_state_id]; -} - -void StateContext::parseChildTransitionMap(const YAML::Node& node) -{ - for (unsigned int j = 0; j < node.size(); j++) - { - setTransitionMap(node[j]["Transition"], getStatePtr(node[j])); - parseChildTransitionMap(node[j]["Child"]); - } + return state_map_.at(_state_id); } void StateContext::createStateMap(std::string _state_file_name, std::string _msg_name) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_vehicle.yaml b/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_vehicle.yaml index 5c016f7360c..66b842f88db 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_vehicle.yaml +++ b/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_vehicle.yaml @@ -54,10 +54,10 @@ autoware_states_vehicle: Transition: - Key: emergency - Target: Emergency + Target: VehicleEmergency Parent: ~ - - StateName: Emergency + StateName: VehicleEmergency Transition: - Key: return_from_emergency From 02b57f9b9be76df794b7d686a2473747a347d1ec Mon Sep 17 00:00:00 2001 From: Azumi SUZUKI Date: Wed, 21 Nov 2018 19:48:45 +0900 Subject: [PATCH 078/139] removed unnecessary codes. --- .../include/decision_maker_node.hpp | 2 - .../decision_maker_node_callback.cpp | 47 ----------- .../decision_maker_node_decision.cpp | 8 -- .../decision_maker_node_init.cpp | 83 ------------------- .../decision_maker_node_state_drive.cpp | 4 - 5 files changed, 144 deletions(-) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp b/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp index b9ba58eb153..a7459859a35 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp @@ -228,7 +228,6 @@ class DecisionMakerNode bool isArrivedGoal(void); bool isCrossRoadByVectorMapServer(const autoware_msgs::Lane& lane_msg, const geometry_msgs::PoseStamped& pose_msg); bool isLocalizationConvergence(const geometry_msgs::Point& _current_point); - bool handleStateCmd(const uint64_t _state_num); void insertPointWithinCrossRoad(const std::vector& _intersects, autoware_msgs::LaneArray& lane_array); void setWaypointState(autoware_msgs::LaneArray& lane_array); bool waitForEvent(cstring_t& key, const bool& flag); @@ -365,7 +364,6 @@ class DecisionMakerNode void callbackFromTwistCmd(const geometry_msgs::TwistStamped& msg); void callbackFromSimPose(const geometry_msgs::PoseStamped& msg); void callbackFromConfig(const autoware_config_msgs::ConfigDecisionMaker& msg); - void callbackFromObjectDetector(const autoware_msgs::CloudClusterArray& msg); void callbackFromStateCmd(const std_msgs::String& msg); void callbackFromObstacleWaypoint(const std_msgs::Int32& msg); diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp index 236d38837ac..1d929c1d6a8 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp @@ -64,53 +64,6 @@ void DecisionMakerNode::callbackFromLightColor(const ros::MessageEventisCurrentState(state_machine::DRIVE_STATE)) - { - if (msg.clusters.size()) - { - // if euclidean_cluster does not use wayarea, it may always founded. - for (const auto cluster : msg.clusters) - { - geometry_msgs::PoseStamped cluster_pose; - geometry_msgs::PoseStamped baselink_pose; - cluster_pose.pose = cluster.bounding_box.pose; - cluster_pose.header = cluster.header; - - tflistener_baselink.transformPose(cluster.header.frame_id, cluster.header.stamp, cluster_pose, "base_link", - baselink_pose); - - if (detectionArea_.x1 * param_detection_area_rate_ >= baselink_pose.pose.position.x && - baselink_pose.pose.position.x >= detectionArea_.x2 * param_detection_area_rate_ && - detectionArea_.y1 * param_detection_area_rate_ >= baselink_pose.pose.position.y && - baselink_pose.pose.position.y >= detectionArea_.y2 * param_detection_area_rate_) - { - l_detection_flag = true; - setFlagTime = ros::Time::now().toSec(); - break; - } - } - } - } - /* The true state continues for more than 1 second. */ - if (l_detection_flag || (ros::Time::now().toSec() - setFlagTime) >= 1.0 /*1.0sec*/) - { - foundOtherVehicleForIntersectionStop_ = l_detection_flag; - } -#endif -} - void DecisionMakerNode::insertPointWithinCrossRoad(const std::vector& _intersects, autoware_msgs::LaneArray& lane_array) { diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_decision.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_decision.cpp index 6c5412ed0bb..5d5b7c1e360 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_decision.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_decision.cpp @@ -118,12 +118,4 @@ bool DecisionMakerNode::isArrivedGoal() } return false; } -bool DecisionMakerNode::handleStateCmd(const uint64_t _state_num) -{ - bool _ret = false; - - /* todo */ - /* key */ - return _ret; -} } diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_init.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_init.cpp index 7cbf9da8c60..85e0f97e12b 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_init.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_init.cpp @@ -303,90 +303,7 @@ void DecisionMakerNode::initROS() spinners = std::shared_ptr(new ros::AsyncSpinner(3)); spinners->start(); -#if 0 - // message setup - state_text_msg.width = 400; - state_text_msg.height = 500; - state_text_msg.top = 10; - state_text_msg.left = 10; - state_text_msg.bg_color.r = 0; - state_text_msg.bg_color.g = 0; - state_text_msg.bg_color.b = 0; - state_text_msg.bg_color.a = 0.8; - - state_text_msg.line_width = 2; - state_text_msg.text_size = 18; - state_text_msg.font = "DejaVu Sans Mono"; - state_text_msg.fg_color.r = 0.1; - state_text_msg.fg_color.g = 1.0; - state_text_msg.fg_color.b = 0.94; - state_text_msg.fg_color.a = 0.8; - state_text_msg.text = "UNDEFINED"; -#endif update_msgs(); - -#if 0 - // status subscriber - Subs["sim_pose"] = nh_.subscribe("sim_pose", 20, &DecisionMakerNode::callbackFromSimPose, this); - Subs["current_pose"] = nh_.subscribe("current_pose", 20, &DecisionMakerNode::callbackFromCurrentPose, this); - Subs["current_velocity"] = - nh_.subscribe("current_velocity", 20, &DecisionMakerNode::callbackFromCurrentVelocity, this); - Subs["light_color"] = nh_.subscribe("light_color", 10, &DecisionMakerNode::callbackFromLightColor, this); - Subs["final_waypoints"] = nh_.subscribe("final_waypoints", 100, &DecisionMakerNode::callbackFromFinalWaypoint, this); - Subs["twist_cmd"] = nh_.subscribe("twist_cmd", 10, &DecisionMakerNode::callbackFromTwistCmd, this); - Subs["change_flag"] = nh_.subscribe("change_flag", 1, &DecisionMakerNode::callbackFromLaneChangeFlag, this); - Subs["state_cmd"] = nh_.subscribe("state_cmd", 1, &DecisionMakerNode::callbackFromStateCmd, this); - Subs["closest_waypoint"] = - nh_.subscribe("closest_waypoint", 1, &DecisionMakerNode::callbackFromClosestWaypoint, this); - Subs["cloud_clusters"] = nh_.subscribe("cloud_clusters", 1, &DecisionMakerNode::callbackFromObjectDetector, this); - - Subs["state_cmd"] = nh_.subscribe("/state_cmd", 1, &DecisionMakerNode::callbackFromStateCmd, this); - Subs["current_velocity"] = - nh_.subscribe("/current_velocity", 1, &DecisionMakerNode::callbackFromCurrentVelocity, this); - Subs["obstacle_waypoint"] = - nh_.subscribe("/obstacle_waypoint", 1, &DecisionMakerNode::callbackFromObstacleWaypoint, this); - Subs["change_flag"] = nh_.subscribe("/change_flag", 1, &DecisionMakerNode::callbackFromLaneChangeFlag, this); -} -void DecisionMakerNode::createPublisher(void) -{ - // pub - Pubs["state/stopline_wpidx"] = nh_.advertise("/state/stopline_wpidx", 1, false); - - // for controlling other planner - Pubs["lane_waypoints_array"] = nh_.advertise(TPNAME_CONTROL_LANE_WAYPOINTS_ARRAY, 10, true); - Pubs["light_color"] = nh_.advertise("/light_color_managed", 1); - - // for controlling vehicle - Pubs["lamp_cmd"] = nh_.advertise("/lamp_cmd", 1); - - // for visualize status - Pubs["state_overlay"] = nh_.advertise("/state/overlay_text", 1); - Pubs["crossroad_marker"] = nh_.advertise("/state/cross_road_marker", 1); - Pubs["crossroad_inside_marker"] = nh_.advertise("/state/cross_inside_marker", 1); - Pubs["crossroad_bbox"] = nh_.advertise("/state/crossroad_bbox", 10); - Pubs["detection_area"] = nh_.advertise("/state/detection_area", 1); - Pubs["stopline_target"] = nh_.advertise("/state/stopline_target", 1); - - // for debug - Pubs["target_velocity_array"] = nh_.advertise("target_velocity_array", 1); - Pubs["operator_help_text"] = private_nh_.advertise("operator_help_text", 1, true); -} - -void DecisionMakerNode::initROS() -{ - // for subscribe callback function - - ctx->nextState("started"); - - spinners = std::shared_ptr(new ros::AsyncSpinner(3)); - spinners->start(); - - ROS_INFO("Initialized OUT\n"); - // ctx->setCurrentState(state_machine::LOCATEVEHICLE_STATE); - - Subs["lane_waypoints_array"] = - nh_.subscribe(TPNAME_BASED_LANE_WAYPOINTS_ARRAY, 100, &DecisionMakerNode::callbackFromLaneWaypoint, this); -#endif } void DecisionMakerNode::initVectorMap(void) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp index ef3cafde377..7e22100df7e 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp @@ -275,14 +275,10 @@ void DecisionMakerNode::updateRightLaneChangeState(cstring_t& state_name, int st void DecisionMakerNode::updateCheckLeftLaneState(cstring_t& state_name, int status) { - /* need safety check function */ - // static bool is_target_lane_safe = false; } void DecisionMakerNode::updateCheckRightLaneState(cstring_t& state_name, int status) { - /* need safety check function */ - // static bool is_target_lane_safe = false; } void DecisionMakerNode::updateChangeToLeftState(cstring_t& state_name, int status) From e83693b32c9b120b8eb5006bd4b56e9d2e8cec49 Mon Sep 17 00:00:00 2001 From: Azumi SUZUKI Date: Thu, 22 Nov 2018 17:59:39 +0900 Subject: [PATCH 079/139] removed unnecessary codes. parameterized reset_count of stopline function. --- ros/src/common/libs/state_machine_lib/src/state_context.cpp | 3 --- .../packages/decision_maker/include/decision_maker_node.hpp | 3 +++ .../packages/decision_maker/launch/decision_maker.launch | 2 ++ .../nodes/decision_maker/decision_maker_node_callback.cpp | 3 --- .../nodes/decision_maker/decision_maker_node_state_drive.cpp | 2 +- 5 files changed, 6 insertions(+), 7 deletions(-) diff --git a/ros/src/common/libs/state_machine_lib/src/state_context.cpp b/ros/src/common/libs/state_machine_lib/src/state_context.cpp index c6b03a58c21..515c2d3b578 100644 --- a/ros/src/common/libs/state_machine_lib/src/state_context.cpp +++ b/ros/src/common/libs/state_machine_lib/src/state_context.cpp @@ -150,9 +150,6 @@ void StateContext::nextState(const std::string& transition_key) void StateContext::createGraphTransitionList(std::ofstream& outputfile, int idx, std::map>& sublist) { - /* FIX THIS - * Not support single state, which state is integrated before state circle.....;( - * */ if (!sublist[idx].empty() || state_map_.at(idx)->getParent() == NULL) { outputfile << "subgraph cluster_" << idx << "{\n" diff --git a/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp b/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp index a7459859a35..e5c5e96580f 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp @@ -181,6 +181,7 @@ class DecisionMakerNode double time_to_avoidance_; double goal_threshold_dist_; double goal_threshold_vel_; + int stopline_reset_count_; // for vectormap server // ros::ServiceClient cross_road_cli; @@ -407,6 +408,8 @@ class DecisionMakerNode init(); setupStateCallback(); + stopline_reset_count_ = 20; + private_nh_.getParam("stopline_reset_count", stopline_reset_count_); current_status_.prev_stopped_wpidx = -1; } diff --git a/ros/src/computing/planning/decision/packages/decision_maker/launch/decision_maker.launch b/ros/src/computing/planning/decision/packages/decision_maker/launch/decision_maker.launch index ebc8dd90877..bf508b0c906 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/launch/decision_maker.launch +++ b/ros/src/computing/planning/decision/packages/decision_maker/launch/decision_maker.launch @@ -3,11 +3,13 @@ + + diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp index 1d929c1d6a8..fca5d0ac9d0 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp @@ -22,9 +22,6 @@ namespace decision_maker void DecisionMakerNode::callbackFromFilteredPoints(const sensor_msgs::PointCloud2::ConstPtr& msg) { setEventFlag("received_pointcloud_for_NDT", true); - - /* todo */ - /* create timer for flags reset */ } void DecisionMakerNode::callbackFromSimPose(const geometry_msgs::PoseStamped& msg) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp index 7e22100df7e..636b6779eb2 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp @@ -102,7 +102,7 @@ std::pair DecisionMakerNode::getStopSignStateFromWaypoint(void) static const double g = 9.80665; static const double margin = 5; static const double reaction_time = 0.3 + margin; // system delay(sec) - static const size_t reset_count = 20; // + static const size_t reset_count = stopline_reset_count_; const double velocity = amathutils::kmph2mps(current_status_.velocity); const double free_running_distance = reaction_time * velocity; From 11226e2a7051f6f16f53968c48c19b0dcb463932 Mon Sep 17 00:00:00 2001 From: Azumi SUZUKI Date: Wed, 28 Nov 2018 17:54:17 +0900 Subject: [PATCH 080/139] removed unnecessary codes. add exception handling for getStateIDbyName function in state_context.cpp. --- .../state_machine_lib/state_context.hpp | 3 +- .../state_machine_lib/src/state_context.cpp | 28 +++++++++++-------- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/ros/src/common/libs/state_machine_lib/include/state_machine_lib/state_context.hpp b/ros/src/common/libs/state_machine_lib/include/state_machine_lib/state_context.hpp index 117affceafa..758abf64b2b 100644 --- a/ros/src/common/libs/state_machine_lib/include/state_machine_lib/state_context.hpp +++ b/ros/src/common/libs/state_machine_lib/include/state_machine_lib/state_context.hpp @@ -32,7 +32,7 @@ class StateContext state_map_[child]->setParent(state_map_[parent]); } uint64_t parseChildState(const YAML::Node& node, uint64_t _id_counter, uint64_t _parent_id); - uint64_t getStateIDbyName(std::string _name); + int32_t getStateIDbyName(std::string _name); void setTransitionMap(const YAML::Node& node, const std::shared_ptr& _state); std::shared_ptr getStatePtr(const YAML::Node& node); @@ -57,7 +57,6 @@ class StateContext std::shared_ptr getStartState(void); void onUpdate(void); - void onExit(); bool setCallback(const CallbackType& _type, const std::string& _state_name, const std::function& _f); diff --git a/ros/src/common/libs/state_machine_lib/src/state_context.cpp b/ros/src/common/libs/state_machine_lib/src/state_context.cpp index 515c2d3b578..15f7f817b37 100644 --- a/ros/src/common/libs/state_machine_lib/src/state_context.cpp +++ b/ros/src/common/libs/state_machine_lib/src/state_context.cpp @@ -28,21 +28,21 @@ bool StateContext::setCallback(const CallbackType& _type, const std::string& _st const std::function& _f) { bool ret = false; - uint64_t _state_id = getStateIDbyName(_state_name); - if (getStatePtr(_state_id)) + int32_t _state_id = getStateIDbyName(_state_name); + if (_state_id != -1 && getStatePtr(static_cast(_state_id))) { switch (_type) { case CallbackType::UPDATE: - getStatePtr(_state_id)->setCallbackUpdate(_f); + getStatePtr(static_cast(_state_id))->setCallbackUpdate(_f); ret = true; break; case CallbackType::ENTRY: - getStatePtr(_state_id)->setCallbackEntry(_f); + getStatePtr(static_cast(_state_id))->setCallbackEntry(_f); ret = true; break; case CallbackType::EXIT: - getStatePtr(_state_id)->setCallbackExit(_f); + getStatePtr(static_cast(_state_id))->setCallbackExit(_f); ret = true; break; default: @@ -247,16 +247,16 @@ std::shared_ptr StateContext::getStartState() return nullptr; } -uint64_t StateContext::getStateIDbyName(std::string _name) +int32_t StateContext::getStateIDbyName(std::string _name) { for (const auto& i : state_map_) { if (i.second->getStateName() == _name) { - return i.second->getStateID(); + return static_cast(i.second->getStateID()); } } - return UINT64_MAX; + return -1; } std::string StateContext::getAvailableTransition(void) @@ -294,7 +294,11 @@ void StateContext::setTransitionMap(const YAML::Node& node, const std::shared_pt { for (unsigned int j = 0; j < node.size(); j++) { - _state->addTransition(node[j]["Key"].as(), getStateIDbyName(node[j]["Target"].as())); + int32_t state_id = getStateIDbyName(node[j]["Target"].as()); + if (state_id == -1) + continue; + + _state->addTransition(node[j]["Key"].as(), static_cast(state_id)); } } @@ -314,10 +318,12 @@ std::shared_ptr StateContext::getStatePtr(const YAML::Node& node) std::shared_ptr StateContext::getStatePtr(const std::string& _state_name) { - if (_state_name == "~") + int32_t state_id = getStateIDbyName(_state_name); + + if (_state_name == "~" || state_id == -1) return nullptr; else - return getStatePtr(getStateIDbyName(_state_name)); + return getStatePtr(static_cast(state_id)); } std::shared_ptr StateContext::getStatePtr(const uint64_t& _state_id) From 72d0b6392362e5e4d676398342a989e3943cfb7b Mon Sep 17 00:00:00 2001 From: mitsudome-r Date: Thu, 27 Dec 2018 20:57:35 +0900 Subject: [PATCH 081/139] initial commit for decision_maker README.md --- .../packages/decision_maker/README.md | 172 ++++++------------ 1 file changed, 51 insertions(+), 121 deletions(-) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/README.md b/ros/src/computing/planning/decision/packages/decision_maker/README.md index 2884e619199..3228fcfaa9d 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/README.md +++ b/ros/src/computing/planning/decision/packages/decision_maker/README.md @@ -1,44 +1,24 @@ # Decision Maker -## Overview -**This feature is experimental.**
-Autoware package that manages the Vehicle status, given Mission(waypoints) status, and Driving(Motion) status. -Each status is managed by state machine. - -### Vehicle - +### Overview +Autoware package that visualize internal state and publish some commands. -### Mission - - -### Driving - - -## Runtime Manager Parameters +### Parameters from runtime manager Parameter|Type|Description --|---|-- -auto_mission_reload|Bool|(default: *false*)
If this is set true, decision maker automatically reloads mission as new mission after previous mission is completed. -auto_engage|Bool|(default: *false*)
If this is set true, decision maker automatically engage immediately after ready to drive. -auto_mission_change|Bool|(default: *false*)
If this is set true, decision maker automatically change the mission(waypoint) without state_cmd when new mission is loaded while driving. -use_fms|Bool|(default: *false*)
This must be true in order to incoorporate with [Autoware Management System](https://github.com/CPFL/AMS) +enable_display_marker|Bool|(default: *false*)
not used +auto_mission_reload|Bool|(default: *false*)
If this is set true, decision maker automatically reloads mission after mission is completed. +use_management_system|Bool|(default: *false*)
This must be true in order to incoorporate with [Autoware Management System](https://github.com/CPFL/AMS) disuse_vector_map|Bool|(default: *false*)
If set *true*, decision_maker will exit "MapInitState" even if vector map is not successfully loaded. num_of_steer_behind|Int|(default: *20*)
lookup distance along waypoints to determine steering state(straight, turning right, or turning left) -change_threshold_dist|Double|(default: *1*)
This is relevent only if *use_fms* is *true*.
If the distance from vehicle to closest waypoint in the new mission is further than *change_threshold_dist* [m], mission change fails. -change_threshold_angle|Double|(default:*15*)
This is relevent only if *use_fms* is *true*.
If the angle from vehicle to closest waypoint in the new mission is further than this *change_threshold_dist* [deg], mission change fails. +change_threshold_dist|Double|(default: *1*)
This is relevent only if *use_management_system* is *true*.
If the distance from vehicle to closest waypoint in the new mission is further than *change_threshold_dist* [m], mission change fails. +change_threshold_angle|Double|(default:*15*)
This is relevent only if *use_management_system* is *true*.
If the angle from vehicle to closest waypoint in the new mission is further than this *change_threshold_dist* [deg], mission change fails. time_to_avoidance|Double|(default: *3*)
If the vehicle is stuck for *time_to_avoidance* seconds (e.g. due to obstacles), the state transits to from "Go" to "Avoidance". goal_threshold_dist|Double|(default: *3*)
Threshold used to check if vehicle has reached to the goal (i.e. end of waypoints). The vehicle must be less than *goal_threshold_dist* [m] to the goal. goal_threshold_vel|Double|(default: *0.1*)
Threshold used to check if vehicle has reached to the goal (i.e. end of waypoints). The vehicle must be less than *goal_threshold_vel* [m/s] to be treated as goal arrival. -## ROS Parameters -Parameter|Type|Description ---|---|-- -state_vehicle_file_name|string|file that defines vehicle state transition -state_mission_file_name|string|file that defines mission state transition -state_drive_file_name|string|file that defines drive state transition -stopline_reset_count|int|This parameter is used if the vehicle stops at the stop line and moves backward without crossing the stop line. When the vehicle moves backward by this count of the waypoints, the stop line is recognized again. - -## Subscribed topics +### Subscribed topics Topic|Type|Objective --|---|-- /based/lane_waypoints_array|autoware_msgs/LaneArray|waypoints for the vehicle to follow. (e.g. waypoints given from waypoint_loader node) @@ -48,9 +28,10 @@ Topic|Type|Objective /current_pose|geometry_msgs/PoseStamped|Current pose of vehicle /current_velocity|geometry_msgs/TwistStamped|Current velocity of vehicle /filtered_points|sensor_msgs/PointCloud2|Used to check if sensor data is ready. This is meant to give pointcloud data used for ndt_matching. -/final_waypoints|autoware_msgs/Lane|resultant waypoints from planner nodes, e.g. from velocity_set node. +/lane_waypoints_array|autoware_msgs/LaneArray| +/final_waypoints|autoware_msgs/Lane| /obstacle_waypoint|std_msgs/Int32|Obstacle waypoint index. Used in "Go" state. -/state_cmd|std_msgs/String|Decision_maker will try to transit state according to the key given through this topic. +/state_cmd|std_msgs/String|Decision_maker will try to transit state according to key given by through this topic. /vector_map_info/area|vector_map_msgs/AreaArray|Area information from vector map.
This is ignored unless area, cross_road, line, point, road_sign, stop_line, and vector are subscribed. /vector_map_info/cross_road|vector_map_msgs/CrossRoadArray|Cross road information from vector map.
This is ignored unless area, cross_road, line, point, road_sign, stop_line, and vector are subscribed. /vector_map_info/line|vector_map_msgs/LineArray|Line information from vector map.
This is ignored unless area, cross_road, line, point, road_sign, stop_line, and vector are subscribed. @@ -60,106 +41,55 @@ Topic|Type|Objective /vector_map_info/vector|vector_map_msgs/VectorArray|Vector information from vector map.
This is ignored unless area, cross_road, line, point, road_sign, stop_line, and vector are subscribed. -## Published topics +### Published topics Topic|Type|Objective --|---|-- -/decision_maker/available_transition|std_msgs/String|available transition from current state -/decision_maker/operator_help_text|jsk_rviz_plugins/OverlayText|Help message during operation -/decision_maker/state|std_msgs/String|current state for "Vehicle", "Mission", and "Drive" state machine. -/decision_maker/state_msg|autoware_msgs/State|current state for "Vehicle", "Mission", and "Drive" state machine with header. -/lamp_cmd|autoware_msgs/LampCmd|blinker command to vehicle (0=straight, 1=right, 2=left) -/lane_waypoints_array|autoware_msgs/LaneArray|waypoints passed down to following planners. (e.g. lane_rule) -/light_color_managed|autoware_msgs/TrafficLight|meant to publish light_color status. Not implemented yet. -/decision_maker/state_overlay|jsk_rviz_plugins/OverlayText|Current state as overlay_txt. -/state/stopline_wpidx|std_msgs/Int32|Index of waypoint for the vehicle to stop. -/decision_maker/target_velocity_array|std_msgs/Float64MultiArray| Array of target velocity obtained from final_waypoints. - - -## State Description -### Vehicle States -State name|Required topic|Description|Implementation ---|--|---|-- -Init|-|The parent state of the following states.|- -SensorInit|/filtered_points|Waits until all sensors are ready.|Waits until /filtered_points is received unless wf_simulator node is launched. -MapInit||Waits until vector map is ready|Waits until vector_map is subscribed if disuse_vector_map is set false. -LocalizationInit|/current_pose|Waits until localizer is ready | Waits until current_pose is converged. (i.e. ndt_matching is stable.) -PlanningInit|/closest_waypoint|Waits unil planners are ready | Subscriber is set for /closest_waypoint. -VehicleInit|-|Waits until vehicle is ready for departure.|No implementation goes directly to vehilce ready state. -VehicleReady|-|Vehicle is ready to move.|Exits to VehicleEmergency when `emergency` key is given by state_cmd from other states, or if `emergency_flag` is set true by other states. -VehicleEmergency|-|Emergency is detected somewhere in the system. |Waits until `return_from_emergency` or `return_to_ready` key is by /state_cmd (e.g. by DecisionMakerPanel) - -### Mission States -State name|Required topic|Description|Implementation ---|--|---|-- -WaitVehicleReady|-|Waits until vehicle setup is done|Waits until vehicle_is_ready key is given from Vehicle State Machine -WaitOrder|/based_lane_array|wayits until mission is given. | waits until base_lane_array is received. -MissionCheck|/final_waypoints
/current_waypoint|Waits until all the planners are ready. |Waits until /final_waypoints (from planner nodes) and /current_waypoint are received. -DriveReady|-|Given Mission is approved and vehicle is ready to move. |Waits until engage or mission_canceled key is given. -Driving|-|The vehicle is driving. According to the planner nodes|Sets operation_start key. Goes to MissionAborted in case of emergency. -DrivingMissionChange|/based/lane_waypoints_array|Waits for new mission while the vehicle keeps driving. | Waits until new /based/lane_waypoints_array is sent from management system. Then, checks if the waypoint is compatible or not depending on change_threshold_dist and change_threshold_angle parameters. Publish the new mission as /lane_waypoints_array if compatible. -MissionChangeSucceeded|-|New waypoints are compatible and vehicle will start following the new mission. | Throws return_to_driving key after 1 second if use_fms is set false. -MissionChangeFailed|-|New waypoints are NOT compatible and vehicle will continue following the old mission. | Throws return_to_driving key after 1 second if use_fms is set false. -MissionComplete|-|Vehicle has reached the goal.|If use_fms is false and auto_mission_reload is true, go to MissionCheck state. Otherwise, got to WaitOrder state after 1 second. -MissionAborted|-|Mission is aborted by other nodes(e.g. by AMS). | Throws operation_end to Drving State Machine. Then, go to wait order automatically if use_fms is false, otherwise waits until goto_wait_order key is given by management system. - -### Driving States -State name|Required topic|Description|Implementation ---|--|---|-- -WaitReady|-|Waits until vehicle setup is done|Waits until vehicle_is_ready key is given from Vehicle State Machine -WaitEngage|-|Waits for engage button in DecisionMakerPanel to be pressed|Waits until engage key is given by DecisionMakerPanel -DriveEmergency|-|Vehicle is stopping due to emergency |Throws mission_aborted key -Drive|/closest_waypoint|Vehicle drives according to the waypoint|mission_aborted key if waypoint is far from the vehicle.(i.e. vehicle moves out of the waypoint) Throws arrived_goal key if vehicle is near the end of the waypoints. -LaneArea|/final_waypoints|Vehicle is driving within lanes| Throws on_bus_stop key if waypoint state has bus stop event, otherwise, throws on_cruise key. -Cruise|-|Vehicle Drives along the waypoint|Throws on_left_turn, on_right_turn, on_straight, lane_change_left, or lane_change_right key depending on waypoint state and change flags. -Straight|-|Vehicle is driving along lane (i.e. not turning at intersection)| publish /lamp_cmd to clear blinkers -Stop|-|vehicle is stopping since stop signal is sent from other nodes (e.g. by stop button on decisionMakerPanel)|Publishes /state/stopline_wpidx with the index = closest_waypoint + 1. -Wait|-|Vehilce is waiting (e.g. due to safety reason)|Publishes /state/stopline_wpidx with the index = closest_waypoint + 1. -Go|-|Vehicle is moving|Throws found_stopline if stopline is nearby. Throws completely_stopped if vehicle stops due to obstacle. -StopLine|/vector_map_info/stop_line|Vehicle is stopping due to stop line|Throws clear key after vehicle stops for 0.5 seconds. -LeftTurn|-|Vehicle is turning left at intersection. Change blinker to left. | Publish /lamp_cmd to change blinker. -L_Stop|-|Same as Stop State|Same as Stop State -L_Wait|-|Same as Wait State|Same as Wait State -L_Go|-|Same as Go State|Same as Go State -L_StopLine|-|Same as StopLine State|Same as StopLine State -RightTurn|-|Vehicle is turning right at intersection. Change blinker to right. | Publish /lamp_cmd to change blinker. -R_Stop|-|Same as Stop State|Same as Stop State -R_Wait|-|Same as Wait State|Same as Wait State -R_Go|-|Same as Go State|Same as Go State -R_StopLine|-|Same as StopLine State|Same as StopLine State -Back|-|Vehicle is moving backwards|Publish /lamp_cmd to clear blinkers -B_Stop|-|Same as Stop State|Same as Stop State -B_Wait|-|Same as Wait State|Same as Wait State -B_Go|-|Same as Go State|Same as Go State -B_StopLine|-|Same as StopLine State|Same as StopLine State -LeftLaneChange|-|Vehicle is switching to left lane|publish /lamp_cmd to change blinker to left. -CheckLeftLane|-|Check if it is safe to change lane to left|No implementation. -ChangeToLeft|-|Change to left lane|No implementation. -RightLaneChange|-|Vehicle is switching to right lane|publish /lamp_cmd to change blinker to right. -CheckRightLane|-|Check if it is safe to change lane to left|No implementation. -ChangeToRight|-|Change to left lane|No implementation. -BusStop|-|Vehicle is approaching to bus stop(not supported yet)| No implementation. -PullIn|-|Vehicle is pulling in to bus stop| publish /lamp_cmd to change blinker to left. -PullOut|-|Vehicle is pulling out from bus stop|publish /lamp_cmd to change blinker to right. -FreeArea|-|Vehicle is driving in free space(e.g. parking area)(not supported yet)|No implementation. -Parking|-|Vehicle is parking|Publish /lamp_cmd to change blinker to hazard. +/decision_maker/available_transition|std_msgs/String| +/decision_maker/operator_help_text|jsk_rviz_plugins/OverlayText| +/decision_maker/state|std_msgs/String| +/lamp_cmd|autoware_msgs/LampCmd| +/lane_waypoints_array|autoware_msgs/LaneArray| +/light_color_managed|autoware_msgs/TrafficLight| +/state/cross_inside_marker|visualization_msgs/Marker| +/state/cross_road_marker|visualization_msgs/MarkerArray| +/state/crossroad_bbox|jsk_recognition_msgs/BoundingBoxArray| +/state/overlay_text|jsk_rviz_plugins/OverlayText| +/state/stopline_target|visualization_msgs/Marker| +/state/stopline_wpidx|std_msgs/Int32| +/target_velocity_array|std_msgs/Float64MultiArray| + +### Requirements of each state or behavior + +- ##### Initialize + +State name|Required topic|Description +--|---|-- +Init|-|The parent state of the following states. +SensorInit|/filtered_points| +MapInit|| +LocalizationInit|/current_pose| +PlanningInit|/closest_waypoint| +VehicleInit|-| -## Basic Usage in Autoware +- ##### Ready to driving + 1. Launch Autoware and localization on real vehicle or wf_simulator + 2. Launch `decision_maker` and lane_planner, astar_planner, waypoint_follower + 3. When `VehicleReady` and `WaitOrder` state, launch `waypoint_loader` + 4. On `DriveReady` state, push `Engage` button on DecisionMakerPannel + 5. When the vehicle reaches the end of waypoint and stops, state Mission state transits to `WaitOrder` via the `MissionComplete` + 6. You can repeat from 3. with other waypoint -### Start Driving -1. Launch Autoware and localization on real vehicle or wf_simulator -2. Launch `decision_maker` and lane_planner, astar_planner, waypoint_follower -3. When `VehicleReady` and `WaitOrder` state, launch `waypoint_loader` -4. On `DriveReady` state, push `Engage` button on DecisionMakerPannel -5. When the vehicle reaches the end of waypoint and stops, state Mission state transits to `WaitOrder` via the `MissionComplete` -6. You can repeat from 3. with other waypoint +- ##### Move backward -### Lane change +- ##### Lane change 1. Start Normal driving with waypoint files necessary for lane change 2. On `CheckLeft` or `RightLane` state, push `Execute LaneChange` button on DecisionMakerPannel 3. The vehicle start lane change -### Driving mission change +- ##### Stop at stop line + +- ##### Driving mission change 1. Prepare waypoint files to change, and start Normal driving 2. On `Driving` state, push `Request mission change` button on DecisionMakerPannel 3. When the state becomes `DrivingMissionChange`, please load another waypoint for change From 7a48ecf278afb34522c6a9865d00a6ace0f3eda4 Mon Sep 17 00:00:00 2001 From: mitsudome-r Date: Thu, 27 Dec 2018 23:14:06 +0900 Subject: [PATCH 082/139] modified README.md for decision_maker --- .../planning/decision/packages/decision_maker/README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/README.md b/ros/src/computing/planning/decision/packages/decision_maker/README.md index 3228fcfaa9d..dae1006fcd9 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/README.md +++ b/ros/src/computing/planning/decision/packages/decision_maker/README.md @@ -7,7 +7,7 @@ Autoware package that visualize internal state and publish some commands. Parameter|Type|Description --|---|-- enable_display_marker|Bool|(default: *false*)
not used -auto_mission_reload|Bool|(default: *false*)
If this is set true, decision maker automatically reloads mission after mission is completed. +auto_mission_reload|Bool|(default: *false*)
If this is set true, decision maker automatically reloads mission as new mission after previous mission is completed. use_management_system|Bool|(default: *false*)
This must be true in order to incoorporate with [Autoware Management System](https://github.com/CPFL/AMS) disuse_vector_map|Bool|(default: *false*)
If set *true*, decision_maker will exit "MapInitState" even if vector map is not successfully loaded. num_of_steer_behind|Int|(default: *20*)
lookup distance along waypoints to determine steering state(straight, turning right, or turning left) @@ -28,7 +28,6 @@ Topic|Type|Objective /current_pose|geometry_msgs/PoseStamped|Current pose of vehicle /current_velocity|geometry_msgs/TwistStamped|Current velocity of vehicle /filtered_points|sensor_msgs/PointCloud2|Used to check if sensor data is ready. This is meant to give pointcloud data used for ndt_matching. -/lane_waypoints_array|autoware_msgs/LaneArray| /final_waypoints|autoware_msgs/Lane| /obstacle_waypoint|std_msgs/Int32|Obstacle waypoint index. Used in "Go" state. /state_cmd|std_msgs/String|Decision_maker will try to transit state according to key given by through this topic. From 01ca6ba7a5090629d016f38a5e57d4354ae30c8e Mon Sep 17 00:00:00 2001 From: Kenji Funaoka Date: Fri, 28 Dec 2018 08:56:25 +0900 Subject: [PATCH 083/139] Replace const double & with double in amathutils_lib --- .../include/amathutils_lib/amathutils.hpp | 16 ++++++++-------- .../libs/amathutils_lib/src/Amathutils.cpp | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/ros/src/common/libs/amathutils_lib/include/amathutils_lib/amathutils.hpp b/ros/src/common/libs/amathutils_lib/include/amathutils_lib/amathutils.hpp index fd589452a8a..1063d9a2ef2 100644 --- a/ros/src/common/libs/amathutils_lib/include/amathutils_lib/amathutils.hpp +++ b/ros/src/common/libs/amathutils_lib/include/amathutils_lib/amathutils.hpp @@ -15,36 +15,36 @@ namespace amathutils { #define G_MPSS 9.80665 // m/s^2 -inline double rad2deg(const double &_angle) +inline double rad2deg(double _angle) { return _angle * 180 / M_PI; } -inline double deg2rad(const double &_angle) +inline double deg2rad(double _angle) { return _angle / 180 * M_PI; } -inline double mps2kmph(const double &_mpsval) +inline double mps2kmph(double _mpsval) { return (_mpsval * 3.6); // mps * 60sec * 60minutes / 1000m } -inline double kmph2mps(const double &_kmphval) +inline double kmph2mps(double _kmphval) { return (_kmphval * 1000 / 60 / 60); // kmph * 1000m / 60sec / 60sec } -inline double getGravityAcceleration(const double &_acceleration_mpss) +inline double getGravityAcceleration(double _acceleration_mpss) { return _acceleration_mpss / G_MPSS; } -inline double getAcceleration(const double &_v0, const double &_v, const double &_x) +inline double getAcceleration(double _v0, double _v, double _x) { return (_v * _v - _v0 * _v0) / 2 / _x; } -inline double getTimefromAcceleration(const double &_v0, const double &_v, const double &_a) +inline double getTimefromAcceleration(double _v0, double _v, double _a) { return (_v - _v0) / _a; } @@ -60,7 +60,7 @@ int isPointLeftFromLine(const geometry_msgs::Point &_target, const geometry_msgs const geometry_msgs::Point &_line_p2); double getPoseYawAngle(const geometry_msgs::Pose &_pose); double calcPosesAngleDiffRaw(const geometry_msgs::Pose &p_from, const geometry_msgs::Pose &_p_to); -double radianNormalize(const double &_angle); +double radianNormalize(double _angle); double calcPosesAngleDiffDeg(const geometry_msgs::Pose &_p_from, const geometry_msgs::Pose &_p_to); double calcPosesAngleDiffRad(const geometry_msgs::Pose &_p_from, const geometry_msgs::Pose &_p_to); } diff --git a/ros/src/common/libs/amathutils_lib/src/Amathutils.cpp b/ros/src/common/libs/amathutils_lib/src/Amathutils.cpp index 8422cbc6de5..be827ea7ce4 100644 --- a/ros/src/common/libs/amathutils_lib/src/Amathutils.cpp +++ b/ros/src/common/libs/amathutils_lib/src/Amathutils.cpp @@ -94,7 +94,7 @@ double calcPosesAngleDiffRaw(const geometry_msgs::Pose &p_from, const geometry_m return getPoseYawAngle(p_from) - getPoseYawAngle(_p_to); } -double radianNormalize(const double &_angle) +double radianNormalize(double _angle) { double n_angle = std::fmod(_angle, 2 * M_PI); n_angle = n_angle > M_PI ? n_angle - 2 * M_PI : n_angle < -M_PI ? 2 * M_PI + n_angle : n_angle; From 266708dbc1ff57c4b640a8a92203b1025e02cd06 Mon Sep 17 00:00:00 2001 From: Kenji Funaoka Date: Fri, 28 Dec 2018 10:42:31 +0900 Subject: [PATCH 084/139] Revert vehicle_sender.cpp --- .../vehicle_socket/nodes/vehicle_sender/vehicle_sender.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ros/src/socket/packages/vehicle_socket/nodes/vehicle_sender/vehicle_sender.cpp b/ros/src/socket/packages/vehicle_socket/nodes/vehicle_sender/vehicle_sender.cpp index 8bcabd5b2ba..70437419509 100644 --- a/ros/src/socket/packages/vehicle_socket/nodes/vehicle_sender/vehicle_sender.cpp +++ b/ros/src/socket/packages/vehicle_socket/nodes/vehicle_sender/vehicle_sender.cpp @@ -98,7 +98,8 @@ static void *sendCommand(void *arg) oss << command_data.brakeValue << ","; oss << command_data.steerValue << ","; oss << command_data.linear_velocity << ","; - oss << command_data.steering_angle; + oss << command_data.steering_angle << ","; + oss << command_data.lampValue; std::string cmd(oss.str()); ssize_t n = write(client_sock, cmd.c_str(), cmd.size()); From 839f4dff7e520c65a95d5dc6d7aa1cd596ea9a80 Mon Sep 17 00:00:00 2001 From: dimethylether Date: Fri, 28 Dec 2018 19:55:36 +0900 Subject: [PATCH 085/139] updated README.md --- .../packages/decision_maker/README.md | 77 +++++++++++++++--- .../decision_maker/docs/DriveStates.jpg | Bin 1048593 -> 1241916 bytes .../decision_maker/docs/MissionStates.jpg | Bin 259175 -> 239848 bytes .../decision_maker/docs/VehicleStates.jpg | Bin 119869 -> 115745 bytes 4 files changed, 64 insertions(+), 13 deletions(-) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/README.md b/ros/src/computing/planning/decision/packages/decision_maker/README.md index dae1006fcd9..e214703dca5 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/README.md +++ b/ros/src/computing/planning/decision/packages/decision_maker/README.md @@ -1,9 +1,17 @@ # Decision Maker -### Overview -Autoware package that visualize internal state and publish some commands. +## Overview +Autoware package that manages the Vehicle status, given Mission(waypoints) status, and Driving(Motion) status. +Each status is managed by state machine. + +### Vehicle + +### Mission + +### Driving + -### Parameters from runtime manager +## Runtime Manager Parameters Parameter|Type|Description --|---|-- enable_display_marker|Bool|(default: *false*)
not used @@ -17,8 +25,16 @@ time_to_avoidance|Double|(default: *3*)
If the vehicle is stuck for *time_to goal_threshold_dist|Double|(default: *3*)
Threshold used to check if vehicle has reached to the goal (i.e. end of waypoints). The vehicle must be less than *goal_threshold_dist* [m] to the goal. goal_threshold_vel|Double|(default: *0.1*)
Threshold used to check if vehicle has reached to the goal (i.e. end of waypoints). The vehicle must be less than *goal_threshold_vel* [m/s] to be treated as goal arrival. +## ROS Parameters +Parameter|Type|Description +--|---|-- +state_vehicle_file_name|string|file that defines vehicle state transition +state_mission_file_name|string|file that defines mission state transition +state_drive_file_name|string|file that defines drive state transition +stopline_reset_count|int| -### Subscribed topics + +## Subscribed topics Topic|Type|Objective --|---|-- /based/lane_waypoints_array|autoware_msgs/LaneArray|waypoints for the vehicle to follow. (e.g. waypoints given from waypoint_loader node) @@ -30,7 +46,7 @@ Topic|Type|Objective /filtered_points|sensor_msgs/PointCloud2|Used to check if sensor data is ready. This is meant to give pointcloud data used for ndt_matching. /final_waypoints|autoware_msgs/Lane| /obstacle_waypoint|std_msgs/Int32|Obstacle waypoint index. Used in "Go" state. -/state_cmd|std_msgs/String|Decision_maker will try to transit state according to key given by through this topic. +/state_cmd|std_msgs/String|Decision_maker will try to transit state according to the key given through this topic. /vector_map_info/area|vector_map_msgs/AreaArray|Area information from vector map.
This is ignored unless area, cross_road, line, point, road_sign, stop_line, and vector are subscribed. /vector_map_info/cross_road|vector_map_msgs/CrossRoadArray|Cross road information from vector map.
This is ignored unless area, cross_road, line, point, road_sign, stop_line, and vector are subscribed. /vector_map_info/line|vector_map_msgs/LineArray|Line information from vector map.
This is ignored unless area, cross_road, line, point, road_sign, stop_line, and vector are subscribed. @@ -40,24 +56,59 @@ Topic|Type|Objective /vector_map_info/vector|vector_map_msgs/VectorArray|Vector information from vector map.
This is ignored unless area, cross_road, line, point, road_sign, stop_line, and vector are subscribed. -### Published topics +## Published topics Topic|Type|Objective --|---|-- -/decision_maker/available_transition|std_msgs/String| -/decision_maker/operator_help_text|jsk_rviz_plugins/OverlayText| -/decision_maker/state|std_msgs/String| -/lamp_cmd|autoware_msgs/LampCmd| -/lane_waypoints_array|autoware_msgs/LaneArray| +/decision_maker/available_transition|std_msgs/String|available transition from current state +/decision_maker/operator_help_text|jsk_rviz_plugins/OverlayText|Help message during operation +/decision_maker/state|std_msgs/String|current state for "Vehicle", "Mission", and "Drive" state machine. +/lamp_cmd|autoware_msgs/LampCmd|blinker command to vehicle (0=straight, 1=right, 2=left) +/lane_waypoints_array|autoware_msgs/LaneArray|waypoints passed down to following planners. (e.g. lane_rule) /light_color_managed|autoware_msgs/TrafficLight| /state/cross_inside_marker|visualization_msgs/Marker| /state/cross_road_marker|visualization_msgs/MarkerArray| /state/crossroad_bbox|jsk_recognition_msgs/BoundingBoxArray| -/state/overlay_text|jsk_rviz_plugins/OverlayText| +/state/overlay_text|jsk_rviz_plugins/OverlayText|Current state as overlay_txt /state/stopline_target|visualization_msgs/Marker| /state/stopline_wpidx|std_msgs/Int32| /target_velocity_array|std_msgs/Float64MultiArray| -### Requirements of each state or behavior +## Basic Usage in Autoware +1. Launch Autoware and localization on real vehicle or wf_simulator +2. Launch `decision_maker` and lane_planner, astar_planner, waypoint_follower +3. When `VehicleReady` and `WaitOrder` state, launch `waypoint_loader` +4. On `DriveReady` state, push `Engage` button on DecisionMakerPannel +5. When the vehicle reaches the end of waypoint and stops, state Mission state transits to `WaitOrder` via the `MissionComplete` +6. You can repeat from 3. with other waypoint + + + +## Requirements of each state or behavior +### Vehicle States +State name|Group|Required topic|Description +--|--|---|-- +Init|Init|-|The parent state of the following states. +SensorInit|Init|/filtered_points|Waits until /filtered_points is received unless wf_simulator node is launched. +MapInit|Init||Waits until vector_map is loaded unless disuse_vector_map is set true. +LocalizationInit|Init|/current_pose|waits until current_pose is converged. (i.e. ndt_matching is stable.) +PlanningInit|Init|/closest_waypoint|Do initialization for planning. Currently, only subscriber is set for /closest_waypoint. +VehicleInit|Init|-|Waits until vehicle is ready for departure. Currently nothing is implemented and goes to Vehicle Ready. +VehicleReady|-|-|Exits to VehicleEmergency when `emergency` key is given by state_cmd from other states, or if `emergency_flag` is set true by other states. +VehicleEmergency|-|-|Waits until `return_from_emergency` key is by /state_cmd (e.g. by DecisionMakerPanel) + +### Mission States +State name|Group|Required topic|Description +--|--|---|-- +WaitVehicleReady|-||Waits until vehicle_is_ready key is given.(e.g. from Vehicle State Machine) +WaitOrder|-|/based_lane_array|wayits until base_lane_array is received. +MissionCheck|-||waits until /final_waypoints (from planner nodes) and /current_waypoint are received. +DriveReady|-||Waits until engage or mission_canceled key is given. +Driving|-||Sets operation_start key. Goes to MissionAborted in case of emergency. +DrivingMissionChange|-|| +MissionChangeSucceeded|-|| +MissionChangeFailed|-|| +MissionComplete|-|| +MissionAborted|-||Throws operation_end to Drving State Machine. Then, go to wait order automatically if use_management_system is false, otherwise waits until goto_wait_order key is given by management system. - ##### Initialize diff --git a/ros/src/computing/planning/decision/packages/decision_maker/docs/DriveStates.jpg b/ros/src/computing/planning/decision/packages/decision_maker/docs/DriveStates.jpg index 207c01df728cabe15e7b378de5098a4588280462..5ed7a7284c491c1276ee9081ddbab5328008ef1c 100644 GIT binary patch literal 1241916 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 z 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�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/Ju$^{`kPVq;!B@wm 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%0AZ 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

P1ARY_4Yo!A~2QPdL1=WOl5llwbF4$w{!?}u)@ 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

=sm@6(qA1x#D~Dp3>20faYH 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 XH!wG_24D@q8u;hd!2cgDaNhnOr{uB3 literal 1048593 zcmeF42UwF`w(nn>p+}@65EK*y0a1`nK%|LOr8gCnCQW(`ML;@&fPi!n1Ob&My?2#f zq(kU6p+*SFWzM%V&u0x~i(N(xFQDk`Sy z7g#S`|Eq8KMu3KtY=t9>h~OeXNJBtGLx67uU;scsa@yP9b@>0@2ndOYNzOn>$;c^A zA5eZ4AS56nA|xgvAt5F{eYEfC-vMG8l5-b?ZA3K0Bo~CvoRianJanSHcs+oW?$*n!PfcW;H?&dokDm3DGjIvdT|)n^YyZ)+ zzpP_{|D~S&(y>4EYaE~?A~^lskJ-^CG!tM&}MUyhP~dlMsxqKR)vp zeb^lRH2%E>%?-=7&_FY`-P<2FfV_3OhzBlxQ!S(&45gl5L<`p=7Gg5N)i!P&-*-TwEru_nnPoSpr}VM z(lGF>U|EfIQdRKyjiar11+C3_P~?U3j2t{5$=;;kBw^VGr=B^RL?s=O@pB{D_(Tt0 z%vVxYTVC(4VeLeRW{;r_fxRwNla3LnXQ+eNe6mUp=XvKGOs6GF0yfYFAOj!+AOj!+ zAOru#4CrNGkn>z#SK`$Mk}nNOs9a#yhqu*LQ{!Hxs+goPJ>@r6Q&5kq!Bt8)ob@PF zK~0|DE{3EiY7;LhVI`r?0j8=YSoM+eNBst(2dg1&q z`6TzJaW*W=35vaCjSH`RB(zhOlG10mBvjZ9SX9{3#uk&KRb-Y@73d*lbXp3)?;E{M zi+26M7V!b&J)>@T_)Si@nPH&<;j8-zZ;NBJQQK`*^l>w0{t|n~_xS>)e|Y1Vj`Z?> zn2p=$zIT1>#EOC|MSX^!_zmwY+F}r`)kz`SGW`#4(!bcfV6QE=1uroi5Mi18x#1^w zr@*=8`158z9!Og7y`u0CW7)>Q&NGPXx0$$nmn_qKR}qoFCsJjU=Zq{ENW1by%^)*7 z{7UTa-zWI}51$!m3(yuI10Vw+10Vzc`V43pPbyj4@_+qS!4q3knMuUeC!Ff0bRJFH z&fPLXVQw*NBg)qT{b`XV>Z>7#Ngtkz{JLQf_Jo@&K2FVSRK&Xco6Wk`o3ugk3(kjn zpK(NlrR#~$mMmA2pPUhsActFTuj2uLCp$d8pZp3La84aqQ+uLN@Xfty!UN)_Ah3GzM;k^JJ11XWtlC zBY(rp`4}?DN&n5Nx_Z@rwK|aLj?j3k<8|jCoXDVtlv`i&V=-A-?m=$YNM`+@ohws? zu_758t7Ffeh?dQWWkz_Gwky5ixjRlq(kZ^MsW0259hWxr@_Sw~-%^r%6{`dfUDy9O zW!4ZbaJG%MOf&Y=&tRSV3F6^n%m)+^(mU%L1^Ui zyxnjy7ZSO0>+Kxh&V;I9$7oMhUcoxesulBW;;l)-GmLPteAm0ZXn6 zGIbI@&PJZ=-$ha}3`P*E&4FnT}c<-fXKKcs(F@ zsY#GiS&mguE~w9YRNfd5JclpP3ZA&bkH|;mZsRU~F1CFB{Oz{Osl-=VAu$|uIIlj; zFQ^&YcQ=mG`>ah79l4ganoQoXY#;%IV_?W_O?#Znp*El3X#Q<+%TDE&Q{_ntDnU>Q zgA9NSfDC{PfDHV5F~CREUTtnO4IQ$3>8{MVdzLykcB}CS35#;*S1BxH(avAJAEmsN zhC?pi;d_tX4w-1FzYweV`g7G~qh}Dn-K-J!y4bLarS#L09eH1g+WnBPrvy>m89iv< zY4&#I5Pl)c{mxrQpTAsEOqVX5B0EY^c?B|Y+)Py8yB;YHZVDOICblKClrBU&DgsUW>nT5;e>G?K%5LzD)c4E0|4Q3_t-b7Hf1cKm z+SK^r&RFYUS?Z>Q%ERy_8msLFNfoEPP3*dTIFCKDWp3`4RP4miY3CK^3~>yD=k?Gs zX%>vUyL|BDh#o)x5d|+i(2SreFZxiu+5Jd0cxSVTjaI61UWvVBx`3ue?8a5?mWR1A zHG+C4#(Uj7+0`-M2~XuV*gzYA41f%P41f%P4E*~sK$$^<@f&QdzMUv4Z++Z<2O`w) z2;MSK?>$mxG)1Hx*M4*{PH^hsp^5kP^!fUf4;g1Y+%?db0?HdA#FoVMLL-lYP9$`l zLxnaL4L*E)wvhf25t<@nlU?mVi{aEk4Sm>Aw7=@SGud8?XbeSV3{F?2EL#`#e#tRR zv$`_qE~h}JY4c~x$Jzy@A9b|9b^ru%YFF5Ub9sHo3b+rWmX3ifV|(%$YgdGu>phrc`0Idd~tB6kG$? zfOk#Ax*wH@X+CHvW@(*$z_UmAw)l0M0*vJK61`Blcy6|l;CjB60=-iDpS`VLWvqdJ z1G64L20#Wt20#Wt2L81f;LPrfjLu33A%7XG;8=YcWtoEA=f9b*p62LzfzibhM>K)z z7^tbfBAmXg2%|TG3fO3W+THquI&3wR7rLpqMuP|V?fjf#@}^-4&o(|p>bxo>3M6f! z-`CNq?=Smy_t8=FIC5G!h-Ob(!D7`-CJ5SEYN#8G9mxpTrKjH(MNnV`UE>ldvmQ!;`ZbFW{b`pR>dXr@IZ}#+N-XwMQB`_ zT_Us(TX!uXKd>V&FSc>EQA5YhYM8S zFFq2BF5AnYhqd8>m%Sc{CNIHI!n&e{DI<4;5GNJea(TNFZlU_41f%P41f&$H4J!KZW7@EuC|8t1K3GQog#eSdXIi_rVNUW zXTSp`V~7KreI`6GoY$vGl>cv(kOwZi|9dUFgP%9}d4mjq41f&$_Zisf9f#mlA`qh+ z@M96LNW|LU3SUoy73}9_emr3I5f5w(uL2j97Cgll++2YwU|nd1T73^`fq>~J37&sx0WBqOI2Gm+H% zf9~l2o7d3%Ti4_SU+-^U=M=OlXj6~@kO7bZkbz$@AXR!0fCu6p&FmjTao9$Y)urtW*bpfhT4ANbA`B`>l2zD_sQMOf=aw#vMBdRSoFx_XHk7~y9nW#9|PRIKas}fq2;+txXP1t+{UAkvZgz9+~Pl}KC z4jwT&Ed&$u^okMIeFiVLUtMmX^!_`P@CWS+USl8wAOj!+{}c@TvE&;C^ z<*?nNegC%fwjJG85cJxg>#n2P3^3=d2SO$}C@q@cl^X9zRr9-i#WuJFo24R7tMrXZJiHGULvHwG016Ujn5hGckK z!`-dJBYJfy>|X9O!Cw}_%5-W=eZ(p}`aZY3zrAx-W^Lo;GXw(>y7;FQ{hadRxsJIg zdJD*fk!B9({RtyRhKfVCUOQ*vd$LH|wu@(U*`KqMW>Q1i4pSUj5usk~33C%GC0lRH zRfF}ZH|Skm6*+^=E6=M#7fdetR3-LYHEO( zm367krbGSHz-DkohNXiwAWmb{`Y9hS3lvn!obM}f@SAYWULBl5^m^K9W#EoDg$Y_Q zaYhYc=>(&*{Y7uA2PR6!a+ArW7xL$J{E=ik!Nk!j(!er&&Y?Ap*yH-3^2k1)ui(7_ zCOw?dE|;47PEkorW`WYs}rCk@aMa}-crrBzfxDzUv?Z(-bCAD6OCk(d2~aT zT`&_eQ^1*%m;9*N310Vw+10Vw+ z10VzW0^4>j$4{#2szSzzj|aYSD8RHmO5h`YH!(`;NgLxnl@j0P#PpwDyh?@#JZ51n z!UQXOdeL3TlCTs^d(@nf8p|0xkU0J-_l@`FY|Qb(uoB8LazCe`RYsTzyNyWk!Fs2QpGQi6!kCL2pMIV>p)H1+Ob3vIjkEOg*L-T ze>5aZ7qwyEF4Rpf#Q8SQ!dmsz9?wNV)SF8CKX5$6s@P{WNImhtejZt$>e?PN7lqK0 z4xjMPTMg{k%Qu=2jV}2z=*OlC&8n@QI6C_UyZ$-bUn~)=)J{=PdmD8UD?Qco@~5)W zs#YSV&8f#DNWL6W=4j8k8;J)bw(>KnDOch2+^0nhkYlvCDuYa%@|6ZugpVAe4$Z!R zsIh@#3bykzp@JhaOdc_1+ii#v`^p zi-x3_FrNva!X>QS*MtyCiK1C#%rOysFr{)P+>`XHe*7)C!uFBtF)B|7@jz6($rK$y z3q^0F+Z#M!<>80%5`K(`D^ixSMB9wwWTd!rrt;V9md7-fFW_{>`(;_Zu%_rs87z4% zXJ|!Ur;gElONW%U;%`; z!~Gyb=mW&Lu`Fql7A7c8hQ#&esM}#|Sdsn3bk6>H$8H3Tsk85_1BH#as03A*`Ebq) z#SXMF%kmS9T$X}pM$YtF%3b7Ec~Ms*b_Zby9IWxR-BZP6WU{Wx2!`qgd+xZ3)jv6y zbcbO*bnfFHpQW%E z5}}{>m8+_(*o^fOI$T|?$pzf&Inhr-=OhKoZ4D!J^Zn*&lj48ee}*96Rl!~I=xFEa zm`$V9*B2$aKjgpQRj>o!gEzUsFFSv8-c=0kzrWwnFiYaj0i50> z2xQrPq0Q(51lrwHN-sWt7VxB+*9c`#{6r6*d^zpBH3 zjd8%o{^cNnwgPPhG5|6FG5|90_hCQ}j*Rlbm^DdMe0;rYH!Gv-vHWG*#`q)Z;i%@T+pJbXd(lV%d#NM*thFt;h%B4O<1mkfkoT711TAnIm5 zIl|Z?O>8v{tw=X6KgcGT`dZW@Su67C-mL>?pS?G<{A?{k~19VkOCQq8#w`YZJ;22`e3ZFm$n`giO2 zb3~r?9*xA%^ajcBt>GAA6Uu72CV~bz9AfYQE0?cqCUvMjCceNbowovYG83}d);5^k za&1WCRnzxA=S2%jl*guN0IkV+*+F@7<4y6XOIK6tMCl>y#|ZKrcvR29d*S`k;FO(a z#+sD-VnVk}v=BG3AAQ&Rd?e?+ef63cra97@Gb^qezrLV-J7xc`GI|BGGX+ROyCYL9^8Co{HMz|w*8UpR;MP|Y^ zJzinl)hZahQsfW9g1Qzv$ej*Ti5Ip^0ck6utYULRwDT(a)d3fg0fA!0tjNiZ!$(~m zd1CDvoJ8r?Po)ga+SKOiv>OdDT=0U+F9;L_W-|pE&n;*mACNgM4l;yd$V!G2kr;Ey=)NW~oiEKC4$H@0g zBj+a+BysVSQA0If(2V`^5ehwkNLo_kl~?@>hk zXoS@)Z)J3sKgC^WPUnb_8!fAef@!`EfWBVm(zcj=*zq2jS7|u!2Yl3;zt{@MeCxsk z6=l6)hi5Sj?I{c~nPN4ymHf-9_U<3Nlf7Pc^pwS~rT_=yyyYh+#YqpP_cwZ|%1$f0 zoX;ez^3`bfdY6{VX5nG#K9F!bdh=P~^^OxfAP9-Zd{^>umSu~g4`qyS@$@;38I$pR z;Z&pf861vnd1J?U`~%5eo(7L_6~o??QeY2^dB>#ieb6%u8+W7TNppky8;4BlitH~5 zbCsT)fvTZeFXTIv_||T!}-!iYUT1*>p2GY3e^NC8aAnpO^Uxhx#rLC#Ox}H zfOR>(oiF>BGqkBi+x^IJKRou+SnfTXm%J-oH)LtQBf*EbiU-vB@-cSE63ktfu&nwQ zMz$&5o}ve>=2U|o?4gk8R+`mRo#hlX9(XP}UlNK{vpcTw)z;WJky9e5e830m!vhmS zvg|Xbr)3g=4YUEs0LTEy0LTEyz`q^?rk?0}GH#4U;m-#d{8?^9$Jsi)7##hItA^en z|9%ns?%f*WiK%8(SM-;MkuhEXa_=?jt#5FKkrUOR%o= zB=?=9Z*mNwhXzMUiSY^Pp2&*JFFSbkVtgz=rrsUe(_r{PRch3I(G50zukHpOh=F$3 zg?y4S%M=X5^83DBWKfA0lH4;O=#Jlf*;`>nl#Yrj^Ai}{pYl3l(06UNn~$n4`b-$K zq9Wi|zLd_8p&6)(2SRrF603(2*pi}NUb*~8rXV8beTnyg%Zf|X#X85g^U>k_l)jah zYwgi?T!VcrBH==$Il+s?n5myi70MlKzMjLq0a%4RkEPvK8J6Lz*{XB6msImY?M`nV zICpj~cxj%o!|G{b5vbYfYQ}RF=?kCRId#rk&M9%TTE=Ne+aSVb5zS60EHYygcJiLY za99d5&+KEC>k-#uT#ozEEs{kq^Mzf)W|7yapU<}y<1I-6!QPGP&U0Jluj6il137F*^_;LaD@ zqt8MuH%@b*6sDHP&)=!4sNHD|kqjfcJTU2R-ZU4(3^N?Ugw8UcpX!dLxbz#YGklP$ znoOXq`c9^)%&|i)?Q2CC(_Xa@+H`Y`g7k4i*yV{S!cv3?eP7qydl5B}c?7*J?T@Kj z_x<@lqEAo8D3&G_q44m&k7j)St`BQ?HAPW@aIIVS(N_tX5ruI@$St|$%=xOR^G!2n z%f$5VmZH^O4AL$}E%rq&A{TuU`ur=(t26}PUcyK5P~nyAz>%j=)% z%J*_RKIKV~K<;}V@u4kk9+x7q)n{cl^RpI(Je91>4>f6GUJ=UTIBeRhW|_*(&S+%w z@4eeHP-vOf*cC2?&Lf^W1@xJ-@ur0aOBp!NRk^6So0c;)Jh{1gz!TcsR0`T-J$G&P#z<&ub`{ zGDbJX$K(Q9nA7s#oDHqeV>0Lov$PI6E`!)dbpUI0mhWLctkevdDF(!2fSLOu<#QUL zM@gYlD(`JV&74UVTa*u0nard>TV>FMQSgX5$0EXWC6R z68fwank5XJFi{z`OH`D`_8Ic7R=jl)`?+}fp9y&zP~>ZToXtnqG2SgVSqx{(Xb3o= z^UggPZDB=Tzoe7#eXkclytST&eT+ygjCw?Kmd)!L68#vv-cLrJ``RDq;x6|*bpe`K zMNEG6IN>x5wWT{Pe`xtdx??a14-lB0rq7In)xG{Hs(XPIF2M?yAOj!+AOj!+{}l$r z9A0EVliEg5HY`u^z(X`u=r>C@>KoB+Hzh3_o*tcpUYSF%3m-1GO!HLYdeD^I=1M%{ z@#$^QyBX@C72e*Loc#n*0-;D-0*68)zkSG-eRgvX4IX%0CmpQ-=w;V#c}RJpMi*;> zu^Mv=t4^eF>tMt<>l!Bho9_~%kmy9snXv-Ij+LfhA-zzF2AKy(& z>(W%02_5JxLp)&PjRgD$5kYWfno{Hq>LruO)9`UiGthW?Mzl^@|l>0U*^ zlgTxfhBmufY7{N(kMlxbR?Mt@f9n}k&9R-Ko>vbsd)z0?25*tLR1u%se6c*h5u)8u zBebQmkW!krI^w1F{HBC&neNEP;<5QKw}S9;FwNz!$ZPuhEJ1=xyP#b`20#Wt20#Y> z&I~xoT*2I%Gox1?z47Bb-;O&)&&7-J?(a7`CL@nW?Gylyul46J$#d*3zSp!U^=g3N~yAfu7xU@d%UWP0aJ;2LROa65~* z=Jm=Ub{?YV16Y;pby+si`(;(!X)n7epauJ|1RGt`Pbjm-qbf@ip0T@Ls^%9WUHtAyWx7JgnXf;vutTmAW-O zgWD1;(S)AtV|0!Y&+9Ls`L0fjqi>fGh~vHw)+^(JKc2pydX>YHhuQu@wbFCa6wMV4 zmi;cB{B)5w@_QPNzk9;NicAzP93li&x-t8Xo?>y)xBI<%fY_L}P}G%nXWEKcxJ&XvQ`@0-hm1J%J8g?V?)Z)nl` z3zmzOoOr-yxa3y{(s)H8)&^I2h`Ji))NP|$8_v0out!uO4sykOsG~J7$LPEl@Ali; z;pw&`R+&&J;Jo)_Zio z8kk@OCRl+CfDC{PfDC{PfDHUU82IDkdrfm-M`cIkJKKLA5g{1T`h89l`2F`=_rdQV z3m^j^10Vw+10Vzc$$+QjpT{HU7iY?#*mwp!P%?%%u-QLds~OJg(jc?H4jhE@e2Ag5l5d@6uJ2FT zvXygZ@0Eeo)&^mMB55Yi@erAYcc3Z)>lsnsqQjH!nee}TOg!kjw2;wAIZNG0U_=LK z+n*0#u%LXYIc=!qYkjHg8&9-c$hEI%(b-OUXya%smcif9V|1QByX$J01A>)jpvrCh zvoTK(y9VHz34NUX`(n&hP&N;0`1z=-Dut%{6l7n=D&Yt*>}&Io&G-(H(Z1iR)j`NW ze!Z38%`@+T(QvHJ;Cv}219h}?#a`9arr@!PfQ3u98uiV>bBx>RbOffu|LcQMV1^#J zI0rHSG5|6FG5|90-)G=Y7I%v8>7cd}W?|8W4EZArNQL3=oVt-uD>4ES*cd6b0ye)O zb6pX?)>NaIPjk-mF`@2S&8a0%Uztpp7ca2p9~IB-w*jIZUhJv!y|ftTTUDhYmeINm zRj)FyCZZ#s_8Lomj`X^+_aV)@)$P!XCiJ;Q^og+a^|r@V6@&awUcP%-u@Uv0*T9@y zt^-J?R-!LN6>aYqoyC;u8=Ki^DNy?LwbsZTOfD(mfdJ?oq?BHP25JHs<3h<739+$Yd^wyh$3BzOIzb@440b;ipSSQtL^&w8_Lda1fNx& zR*nt4lSouD#aSeZ^m&m%x}W<5s0z4GJM!PhbL9%C;Tozh+3Dvv79e(9|&14@en8g$8f>sLdHkJG5De*eTt6 zZY=brE1J&fm2!MG@b;PbcXiujRB@eQ)8 zmT_V~J0G>g%*~!7fQ(dWJcsRQ;SRlgs}X>oc6CYaR1pLOZVtm47UYb5;=KV+qH<2cd5rDi7{$I^)hxv^}Y?oe)Px|7f!7$0d8QDN;~_J>HO%cTlz&Tv#=gyXd?86wiPMR^su$t4 z++cO6HA^LNy~W$+MU!{z#U%JwKi3(LjMhXJ?t@!4XJ(Ei?^hpleO3$f7q;(tgATk; zlzz>MC~0sn=8Q-C`fW7qxt@CXx_Y(B;~h>Kc%mF-91nA^I5XQ9F_Bf*S@>BWdT3y+ zMwYD~Ny4Ux>UtCTDyoY2=fdZhEvFDRaW=l0e4s=O^MiiKjM|mz&fvZJvbfRipZrT> zpU=G14C&ww+3%oV*dWATu+6z+}1@+r6np)XiEvhgb&|{NDK+)Lzgw- zl<-KU8uMcg|Lcx7$^+j+*57EJ>F_r)==0+-U1jl0D@HV*_xLdK&D&DSX+lhGl9|qq znX>-02IV~ywT4hj2O3O-K6+@}cjVOouk}k4F{=m9?Ynqpc+3;J)?+=}tgX|MNrvO=p#BgFyQ{bE~r^yOsRV?~c3?YiU-MI|l^ z(PLAJ{biv~&pW=gTpCkm>e_qfBQ(li&*BkbjIs<{G9vcQC^Izv?$*K4KDi|Y+`mGM zZi1xq5Nd?6vw!ZZzvLq!;po9{In2lq-q9VEX!WeKj*%lWAYdoPD+!tRyy(OC45Tf; z1R49l;+ZU(NV_z5st?Gl1v~LICNCX$gp5G{R;~4{>ak>&yLp}s)z#6PGqsWP%FGG+ zj$eT;BDjZM>6Ba^rm}_BsJiojC8~yd`=Zr^Ev2O`Ah&g0nujPEZJPCV8hhE=<(SVX z!tT~MkMR1va~r#tnr{>Ck*E>{3|j9M$G5PveMVJ=770f%z2pqM#+Kk{;Y0P^S4C_W8wM%(jwGlts+Qemq<;(UlMQIsp3z*ib=_WYu1ru>V20#Wt20#Wt2L8nv z_>(#B?-CldPyQbXjj=8CwKPq{)^u9=_oL`|^VtBR%y%X~#%Cr($`{K-&%&p}EvSq3 zA>k?EKyIGZk!fsX%9B(}i>SlIags<_aUXB)_H(TGdlQjiJP^89SQvUd&}(_V>L~7p z5uN54otY393e1JTUHL)#i~e>Y;zgXUkzPEUG0i!@Q!6c(`wUMfaBqEIpKFGFQu;_c zV?XIeU#b9Du2xgW#+#crZ2KloU7XqHiBz`E$=B%<-f zH)}0f8e_wWsfqHsuQX~zk;2b79&=8z^Ih+4Ha$OBth?0HGOkv(_Uv=hW0q@2XMgv` zNZ6DV2FimKhW2_S``%<$1z1e%O;TU6h&UEhPIgI?xa{%Bt+MpR2i`4$3k2yx0 zrQ*}$len>$;AaslsU3JAXa#`@htFNXoEG1^Jq^dg&!g>TNorSQw^1}QJuuC4L8FFMnO<)NLa%E=p`4**qG-q4uDaMhkyI(q({Wdbxrm&H z@J)((>dhSX9Dxj*!~Wu-Dy#dQIej;;lU&ZpvG!`_wehk`TjS=fymmFfFEyaBOp`>p ztVjY@>Z!}{>EsoC;U}7>^ipM`p2Js~Noy-<+?T3G9B=7u8NA^(~{)pqH_k z(aSORUZb}6i-mo!Z{hgX(e^hm!-XD8)2q>J0Y}HrJS3`Jc>A zYn=C8iS_@a=sQdpw58_yFYXnQ z#2;b0<{mq4_#WuF5v-{p7q1UTl}gd#0eP8ZJb-8eT<`1g;Q@*pP4K-Ns~Lw_tzZA3 z3DHq_*6>G9fc?==;L}0Vf!KhT%zye0&|UnIa|B%_ILd${ET}F(Wd*9r-^*)ohy;ho z|2y>pPa{#)h8|2w~f zB>MHickUYD8Xn?-AB98actAHp&eY_$j-vx4!v8TR7DKO|WFi(`SDyH_;DJ&-^$aSh zbLQGULhmezaQfs+a4Xo)%lvr2>?0o77+w>?1BDuynbc-D`iwxtivA#cyD{fi_lpa{ zfknie0frkF9CZVSC5Qj&{#t$}wcf8D3_cMw&My>!2Hp4Dqm*~Xi|S(@+t!8v=sjC&C_y|2oG?zHLM@NPEzU=;rrHm z^ouiPP;5K{9w-?@9N6qL;ep}2K24(h>~MhRAJBGs$00bC2*l_H{8+>*60tV8!q?OA zn>(W*S_*Uk*gzYA4E*n5K<@%t@b;jH8G&uQnf^qtba93gf9+>Qiq`Jn0NpilqFmSg zUd%R5WjPG7LGOwOvQzw}LT5DsvEuVEk{L6bBelB4?lmZR7Y|nfDUyTQV=-pg#68Rp zW+OooSzXz3qKyYMYAfzt7>wK$scU47rRgH5lXOECS>nFKcQizx$K+k7ubN%*Ad?z4 z7uw2Gi^!DPxgBex8+mSv4lbZE<+@!qiyjMQ0`$?ve=|D74bDo+iRL7h#szcqzPV@WAyQrrQsF zzAX62F|skf;-X$SA_w+U_&WIcr6lKJ&)pQt4{jwj~7%S z9U#ohB1I@8P4w+)SnZ&XhUI$&{#W7rdG&$H~J0cY@iK5 z2L4wuK-Aq}x&4#-24YOnVIg6ye9^4*5F4M|u)!(1b1FaoN3`8PftDj!%=iuYtC#d! z)dXazLB{`AF%FJ9;MfZkJI@n;YC)~H7I6mOduPnUg^WKBz|YARN9WrZvcLTBoaJ4D zxex7@Z^6{1iM>f`9->Y>V40?;UW#JKp&vf^aE?lC@@*+^+B+V9G46MA*uoEJhc+s~ zyXD?6Xm|B=!}V7cWuH!PBe>m!PQc3*oLH4;=P07hMCGhycz1P6-+CxpbiY6hIsNJ+1>tf?w~0Z1lBY`2l z81%k37QQ^7fhvhBz=gi;Encr+(WyL|=o+9GTm6EB%Z;Kkp;a#5?u_aW@|T}y_L(qx z-TFypK=cYT1oBdMtuE>fi(7`B`O{R6im*pfzVxzy->nb-kPGskqLvonKd6Qm_<#Q~ zwbMYmgLVfQ02%mKWB|&0lF_j6<{KV($lMU8S1|e~YRT&F9_Yv~=AW;rNE~;8Qg)iV zNHZ%p!4gyz03W`269zMCOsaPOQkSi2$O|FdCCH*f>jRv~YDQ^qD5A{gv2)R#q~a@o(M;1JLE@(aX%)St9$kN z@O*%?d!UUJ-8`lxcKD61TiXs}D6akGPO;Q6IrM@#*uc{w1JRTE<#2yZf zCB&9nlQz#biM=*|B5qj`jq!?aag@L4aT0cHm#B@TgSL)FcD?mc8?73yeaw)=d@6q= zEc7{X#5XgBhOAMcN>#5kifmHqOGMqOtHj`=`_*(#c{sC?s{O;QF^?d%v|iY1H_o!-OJ9wJ90pb@ycNGynH7?}`AWt)3jMf!AynL?4t4h|2&rdnrk&acXgI}oR zTu&)w>usBYoT%sIdIXZJB$0B)#^g^NeaeJdX4gi;qVx<^$mX{pYhG3>_I4eqH1KHn zE!*-wzY7@E)>Ov3qx_~%R*9n)l{GSTo8ZBK%idp`BC2C2uUR%w_H%oCS(*RAt(`l| z1hU2Fmgn2ktWn)?#-6iEHJ)+p{i#c@J`_h}sM9g*El+T;hbcURp#s|dE<>5q40k<( zx)=;jW~L@aj~m)5Vcu{0XB`MSW`hb|4VQ=z<*Q%5JbUuha@RcFs2;+q2{HSl06M*q z<`BPdk&O58&jAYkv$b(mjhZ}!-{^y8XU=g))C$@aE0BfoC10k=l6tOULYMK3j&{q| z%b%Pl+yCrGtwat=Wc+kuEfiUp7viHg$L}>ZsmfFBoy?KAq!bk?NXtX6LU#D#r)-H& z=C7xP{}nM$pHSivuY_s~s2g!5wYz|0TV8TrDG)c`An^?DZJlB8s7r?tS(!cl%xyJX zP7|=Nvx*0@d`SSW{o$$dgqlf{Nd*T&%CfjG3TE%6$Y=L6qD;vKjN90AF6YWPUi|o? zDM=syiIjE-lI$f}@|97XoiM`?$Rn%5gHV?~_WLq1jsQy+W zSfMLCERzy~DV;CUi-CF&qOy)l*Uov~K@b9Xpre3cxL(M{Cur`3!;3^f2^YfmCEH(& zGY6}6n)?;gz}^Neugium6sq6>($MGyJYawpI6+KSoE|RF=6-tNoTdVkmb8+d=KEq* zY8(zX8;&{E8O#_q#VXP18P9SutID-9S`{_cO%~}0S_Q-F1*~h0tqcX;v+P@O?Tq1` z!uMD{!P*Z7KT4_1PFdb13c6~$)Un@1(J?48+NY>U1+c(c8z3Gpvh{5%>YW`gy!k0` zx(XPX@y_-`iNJ^t!JMy)Q0)MJYte`mqnX=xu=qUfaKO z&tebvf;I|{_)9m3@6<6Og|E$APC(iTm=I}7k-cW9jGq*J_%p_9pOiafi8!51Ti=2p zPI>J5N9iUu1wiGGcmx-B{vL}v;A?_hfee5QfDHU|G4MaID6in`Op;bsDSA(dlIDsh z*UP|y{52J65z44s)OS9S4~|DeN;zl&AkQUQ3n$} z<%&OKDxZB(zyppn*e02lB7q>(pvs`VdQPFr`f z4be_qlKnsIy?0bo&)Y8=q(nf72na}tiUNv&DA<4m3j!j>hA34RUjfN zR)W%$7Ey}S(4(T#1f+%}Dor4vZo?*=3Hm+n@Auww-?h$K_r3S5b^XJ#VfM^3&ph+g z&&;MQ|DrN?8uCc7@KkV=^4I>B-jU2&6%}$E?Ri|J?z53%Yq0)LyrxqIeDq7Xs9$;d zSV?KC@7A6xV^21no39Qv?(SV>`oYNZ9A3YOgN)&=8{rJe2P?mS)7hlo8bx00eJ6DQTLP~?)e&RX9K~HAL{QqCl;7h%?FEk+fizA zZ4}XQrDOddDqYp_#pB1F4W$cRBCbyN1e*4p{6<(7Y&dWBI=R#MO=n)7bE0W!dtBU1 z*5Q^3v8Z1gRLob<_fL((qr;fMwT}bGCP@HuyR&MRGYjTJ& zp;#|FYM5$dUB5zWxqM#M7zLAhL-lF4L}^Woxq9rAw}M{+J56)^ALCjGM%37k+xuM9 z9A7UK$*65#TP#)CFw_%NIu(Pc>GH~UPjz5VMCyze__t??h;HuT#w@-MB@!GOw zzXmsZ9Uti^txV+XG;b{kjB}&yEona+w9Np@jM;dNGbr^=WFWRGNO#l*Em5iQ)nBsl zbaT4Mq)5rO;W_cihL2ZE@RM1_r-l=n6qrTjH&~X^b(I*%Z{hKaboy7{4LhwxrA=3A zZBP~`mf}vt#=9)bjSTl)4fQZ9P`FN=*x~fDpe&~MkH(7iXLAOw?tJ?hDJHq~s!16o zd*cuY(rC&O?*<3#aAC} zFJdQtlM>bpTSn{O!_0Alf(EWN|gkPyT=xy6#?=7%`ZDWIx>yzwS^xk5fNh?NmPupf> zVxDs>d|n8}KhE2wPVIAicQODSr3Y0m^C#6-I#s^(A{2{@tur_;vdr$uS=4P(-X?BQ zS%w3zY0v67;h$PBPmg$PnC*Er66?G!zZXB+RDtlNFgCL3V}hwJ-IreaxeL!cNy1!^ zs#QFQf7ux>6$N!)J(M`50=J_P)mfuhIm5k-3Jbe0+BxSQohqXnAWKhgaA~m+yj_yG z@u0wP485dtI+r+0V#o0w5v1W-h7(lS_*EO*`ybUz9Cb0fSgiH- zT-0#V-C%>UPlyv7&xpLdf<;8c>d8^R*F}XZwuUD}$9$Cyu|Dq{i~KgYA(qp8vTd3b z#J)a96AvV!qkQ7_uC>VbUFS^F6?QOhFszPs8t**D41C~(3zeKqIeowDNn%aNtX<+S z^oLi5SUvZ7T_|hYh;pGzmE9!4-Dwf=n*6RA*}_x&vY{Q;N^?7L*5bxRiQ0j)SA13w zpSoEa4X9Z|evId7QVU6!w;3HcB;lhcFkq7uuNSxTG^c_RTkv&4-{1N6u$SZhA9c+v zsrAd2<0e+=migJmJj)zXQ7(c^2&EaMEV~i4&$eamVHpm~8BVLe*Zy3drD!b6^LZKzSx4>LoJB3Ct>zxS%bJJMvL;q;u+4O;CY0&Uw3@8CE`%zSce zbk4tTv~5$E^!@1e+e#}%uAi0eZARkQ+xHfAlyAE3S#YWFZAjDC!l-917k#dNs8*BT z@N$JDYJXV$d0378H1d`qHrpMe+peBu5kJ~^I-|m+xv|iq>`DApC&b_rrD@p?cqQlF zZFYD>w9%&mEw>BN=X6SMJWabHE`-!vlf5Ee{__oi8!U{lJ3+S9@mOM=+^fBQ(p&Bm z-8>VvZ5@+0MD99@JC2|QAVvtQ(LWty`qkLU_kyl*#k%=8?9Wc;&sQI^g!5< zV@D0oVL^!;Z=3w`FNNYy*Y8rhFg32wTlac>aOU%Gw*#)Clm_C%YI&PmRTokXOpc|Z9XWC{)AuTDb?*-=RcvamyJM4=0 z-aCGSmT80d0F|-F8>#iJymjZJo>?}Gge-;D-oafT#=nn zL36H0GNbNIyHA&?oKAoXv1RY8P_z$ygcD&6UNMNC=l_A)7i|1re)N%|{cj(N{9TR? zR_5n29K2YhXqFju5pmPIc1NuhX9HR1ZaK|!eDF(vbNn~INTy@F&Y0&~wqJPsB4VYZ z&csIKtzD#3>TjIL=bF4M*^yy6hN_wJDGM_{srsLKNXe%rrd7hYQ^xX-OlylPzF>9aZ6Y6;bP^omP?iwIGiTIRDWbWGgtEguXXG&wdVKa_AtG(ntU`^6Oy6^9)? zT7N7s&*D7PSMBSMH8NU0&}r(hkx3D!4|P*uHGQC7!-jk3 zlQVmph3@ZI{pjM|Q`dKJdU_7*Nb`zCY_9*4gFD@?)?TPAZI*QORcqVPm8#}?2M6jH zrn?;ziv3vePe(7^4*p;jyf$`aU^5au;JK#HzvBaQM(?eb7UOo^-g52l?B&1kuXapz z8j)o0<>1ZR^>DJb{)CCz>rCcw%ee<`>L1Pyy6m2OE#hx@Juk2-9WHufr-ab1mRxl8jl=1EbKZv{MKmn3bbiq9qbd*q-zE4q{fn%`d{TA3d*R4{G+Cn!j3ip{cDJ@wO;;R^8y!ZPun)2JZ^%Q@+tI zRI7ZiLHORw7fMv2GXivO*imRz>q++9?7dcx^7f3tUy*ZuleZwX7Gq^2*(Q4^9T|;_ z^yxY0_c9IZ^1v|J?rJ9b#;YSoz7Gg?Jb%S;CCcuMn6VJJ_~HQ`I_!NT|L~JRcaIav zD52|mh)12b$Yz{NiO=#9e6Q)Rxby>Cw)%+C?uKnQvhb7z+Y8_6Ai#OrTKYa3fv`fxAiu8PdPLW3|)+n)lpB(ia4A4l6GGd)_l=A zK`bbEY_N#XX`DYSy5r;EmG4M}iH?`9?5GDlDCNe-8Mv!eQPdgSMR*u(C^_;iCL;jX|l6E8CRiG#h%c6Y8r z=v=@7+jj|h2d=$~GIKsXn=FDlj#AzXA_Le7b!&{!?wsLJ>oFy0*kJTHM8WZ1qw|x= zl%q&9`)kk@Ed?K4`7Wnpo@Erq|yE>l#s?3i3BruSFZX2o^oh*Maw~YnM#Sv@znPCy>Lu zb>*eSZ;DEa&Fz2OUY{!U;af6Im7O9nqWPiRgfmxTa}X+^W3AsR8-{nS4(g*m5GhZp zb5y}Q=1jyinE5>RZs@W4_+ak(`=-(mW3+XP<1UaW3LjfU#LYbP)X~If&j@)e$EnkcbX1HZNFI>uOL6QdFR9Y|}1?rn;i!f+}ryZ%J>hyR5#sCEu!ei=_Xquf4?AL7F{j@w=b< zr-PwRpgP3X{Inv;->CG-gNIP;75uJk4h6FN(N@>9pV}+WE;$2Q(`rxt$ z$M>bw%Oh7v?nX}P|D1HaFMT>F)K<~?O#}T+!67GFM(_C-UH%re0Uo`6*D)%s9#@<` zzfXA`r+jVe)v60u&2nQ9bzmrinjcaqSTz89S8`uagjNcd<*@@N1Rc55ryikaedVG1 z^5{iGv-@?B-Xv9Hq+|AOAjr2IqpiDNv(}VVlw-;uqH5HohHTD@heU^VA2h7){J|nO z6uP9WD8oq%omz<#PQI1Vv;S(@rFg}YCbt8&3MR~C^!Pj0c3f?e$P3TdD>M4~LQJdv zDxFlsZnRCu^Wd#m2LEI?pv`)J6J-|f2wR#X!|*!p>jH@qL+lcHE#=rlUc)sVeKG=3 zhRO`zIF_Tt5Cc8&BL9}ejN*+jHhFLh$Ro z$YMjz%2=i&|J3*ym38clgiP0A?P&JszV>mOqm(P>i;Kk`><;>P6XbM^7P5<;2ODTR-NfKKEhJYd*iWcuu}l3@6KD*6h)jqY|29o0Nj*26|^2TZN1p8|8bNk zI&HaU)2;VfoaAoC+|2g_XYb(fopwA~_RlwIlP-H~KLiUU9(2g*ba$(y1|!%e{Bmg z`;Hq}9gMk`Ly{St<;k%dp5@w2-cOJdf8u#1hI(rycFm7+15RW$LA6UMASJ)V^Vd1N zVJdmF@*+l729bqCoOr=M&9O|pxYXj3`>u13yylL(9(E(- z$VS20O?ss0?uKHfW`$%^O@d;NCGTp`;mvssV!glclO_RH{*+qEFRlJ9i-_W;g-wSL zxy16y8g9IfYExg}7tuBHjt*&*%xXLVngBfwi*%sa=hiIz``B>-0OA zO)DT3kjl$*4-NVdSM~abRkyfzUwTB@@_fH?PTS93*)FfQo2m`G+bXyBzkx+r4`CP2 zGX*bxIu)FamuR_TNy}_}b@u9wrenayZq|H4TbKu5y`Jx!sFf41BsG$=C*Jf5vovez1|7}M%tW3nt=`@C9nmiZii2-Gpoz=;VpNpu z=5FU&KetxkoH%T6!I*vSHQ#fzSeHD0&yYO-t$5H_g=%sh+Hd9IUEPhzT=y|)hnM-f zMa1P7ecT^KOA_+me&**N1N!&hzn9wlm4Ux9@K*-@%E14@GVtGhq1_}p1`EzU7$R@% zgaZo__lXWEjS0@2`(=I63e;u~I?DND%r3ue-;ySG{jj8H0x=T9QXM57s%B$vt>-vI zyrz!NDB?{5uN+*n8>v8hR;|iWej%9oFANo=Rc`-knc)_oe(Q2XSMGNy1JuN({)Yg` z9r@i}=cY$0=Q=rWw6pnjZJxBJj7Pi2Z5i}FbMKkF$a?NFh+NazedO4Mhufv8CbyMd zV!D*(FHwf~`0P2D;F@Vm>a*RKuTv?qea6T|u-Z@y^Gqmd5h3xzTFdw4W&<6?^~Vp_ z1zE|VPdM)1oVC_O!0I4E8IgAhg{(%_X_93^A3kb1-_>jW1jHqk`$(Tl0}$Ufv|m>H(rg8pviBwuxYx6>Tq*w`IinhsI+3ljgpG|Vm{98XkF2#xziW=iwyrBbxa;%wSjig-N~A-UC#neRlIpqE(OU`| zT|IMIx*zAfR;DP|elr=1G?bo5e1yp67^0vf81xhGh15kv;o5YFyogYx)=tceq8Ai| z?K#fjhL)7kQejx#;$+JYX+f>JkW7zv=4(yEKUcRIxlP2usxSRB=w{`w-xj@TFX)1Y zir*OCc!v$V5|EXASD?G|CLYx?U12-#H*aD2rhKxp>H9*4aN;HWN7mI{pON1k-mD;K zL|P>LNU|*Z@@-(Pj&Ql5S6E?J$>@_nC#u8%QP97!YSQ8HrRFQgf2z&gVO~_d^z&@g zBBEPQptB#6K5%F1NO{|IkEUX_!P~)AwpFUVDU+El3hx%&6Ct{{a1%)2MIXm$TAik! z``jV*{&rBkPe2TOprp`0Co)n?Il_>>$5kPy!ATH%)ct8ELD`*~6yigb?D>?baP~=G zpS`8w!#hsY>xkHI7n?Q=#@`j_^?xTg5QLXnL~I=;Ev#;DgpjyBv}%K(ou70cXS=@; zTtxW!+(Edfc6#W4vaRuZgg?c_`xRd`M3sL3=%R4_4k{_}3nyeI$5I?u!FH~Vp6*Ez*bCD;N%g!R1{Xk>0i%DduihdQM-E=Nrw8Un7$I2YUefU(c&6v!DGSSW_$>wu;k4?)s!u9R6$Z{*;q=#Ov8xrik8hH2!AFGyl zcdp{ba8n_|l<{<*@~QsshN>6c&!uhnDbYjYl^)qC6YCUD-j1$fzQV|6(^zPghRK4Q z(qQ4Qh||9kFFZkP3kpBOri9`h8J-4*3p;b2rbDfp_FZAU<4yq<023FgLD9lc+J@qOv9 zwO=3jTz!%eEOce9(u%1^h(TCUiAy2j-4!}KbF}ZzjrT-F-_dur`aFFlOj)<1)V)c- zb<+JlVf~kxz9a6rhS?k57%qQiRgCCyQo2C?{HENJJp~SZfP3u{{jIGm4NiDP-#>bN zcfr@jiHxR|y>_+U%nCQn_K=$iXSz*ZYq4&RUll()DIhN-XsjIcFXtiU z3EPtmh(e=x4qc_5dq`Y$Q{Y#Eg9>$dxoZ}LJKT{o>$bYhHhO*G)Vn(yHaro&yh5d1 zWkIvW(AjHeT)C<1fP_LLGT~CY^N|Bmn~<(^LxeI@Z-+itcZs+stM9*44PD-$(d=V& zEEv1a7`=RCkHfPxdqw+0ADExLI(D-(=m}Z(<}y;#hq)EmHY2A_&E4L4dN6hm?_fEt z4%~(s?rT3eeB91eIyrRvk9zW)E%|*o!k=EFBjJ{;#u1(=y2rH06+4}arzLltekd0Z zmnm6(VUXfBi-t~CZUc8r=jVWvVlT1K3|fpJJHiv->`1>6bi>)pUB5U{dY`Sga@Duc zUBe>*oq0!*35$rDbWYNOY@9Q10i4L8y;wwqTd;JvnroUCxQXDvj&&Y5S7*A25KC%s zoIa&bo}U57@KnIZOLStXLpko)xe*-C$f3jpaRUu+c2pp?obDh_d?CXDr2kA#064Jo zjmUn92dCmpoX#vFsK<$%5iH|4)X0lzc(aHgq%9&??W5qB-Cwe1{&MSoSGL%sD6RC@ z9JQCOMvZ-z!r$`WUtL55oU&e9@@>+r=|sny>~@SAtld71?7*K0^mFmh)|cB_FLmkq zDub=+YXw5a-Mhh9D&rnSHaX9kg_q>nhpC)-dECPO=yND1-kqnK=OdC1szQ!aY{j#^j zM~n4SZK}`al(AwZzZ38ODc3e@kx^oC-QDcjeNTpYy6#Kvt5d3z6zyh1ah8!_!d9wC<|MBk2#S&s7@1+M$pSmyiZk0_fa~9%7WJ`JXC3~v9oT;#&3w9nUWi)eytp8DnTPd#2V z!6EE+VW+Zwk$pz-Jpp6*^8#!PHGvEz*%60|@|=#ai(|I%R7X@c-!WR3 zS`qoq-M1`JBW117&U^0{zK->F;+VILPMlybj6cqxxj0Pr4LHAjcw3E8aC_MffA!X2 zUBaqG#CzQq0C_9s#Rm+g(L#9Jx7>`Hrbw+5N|wFUG}T9%|7GtPTwr8f>!48FQn>C? z&DYBJ9vPSVN*b>zh+sJ5u6S>7!|BDeo^Hd?P3PX4pR&6qx62E9i3O}tzj?IZG>9oG zK+pPAsWh{Cc(M*F1$@?!P89o5KkH1huR=t{i>|()O4GLy0+QlePrRLoi^r)_*qu4G zE3UImg)~-ad|9snvdaPv?nL&WT`O$qo$J5-OlVzSzUx??K-ZmXUcptd--1n*;}BPR z{1q+R@MqA`d39pi8P`|Dtb&lWxaTj9!C8HX8`iKEc@?omn z)>g*xqMM?rY-K9+XvRhZgk}t{5y1)AfCKDePZ^P;N38i?0VoS%dcq=DhC?A^^FuJCFq#FZ93l=K21G9-asJF#F6h-f zPjZRIltsiEEW^Kx*qjR53!!1FfLs}Y?~d&9%haJ`{I^iN%_PX-k@JFBC7)t&{)CzR z4?~7Ch|Ssj_Z*iRbsNv~e!`cDEHW0TPh=JVRg%rch6+V4FK_1eJh+C9XKq}G* z&6rh2m-X{!3UNH`u=&0Idjq;g_m8?!Vf)|1%!abPMm=&+xvv)y93ONys`^%k^64NC zuqk8y=^|Ow$oeGO_S_<({`exIb}yvfb^?jkm&Qy1pZ z3^Sk6)uR`$5b|{(a7YJ5!U!69=FvKU3aohw$YNDFPOk*Tu_{v_uM+?`KD~(e#R12u zshT{Q$U|+9bHiV9Yp4ukrIpacfNJNl611&3wkC-uR~$?nQukU!1m7Ws`w_o#ofiai zu@f~wg4eYa6pdzdk#od(G6J=z_)3J4?-^Q0t0PYhyq6h_9nt|31h#Emr{_W>aNC-- z!Gk~>yh$=Vwb*`h-GWCOtRWbKR^p+POY2fcodJ)fEdaGN#@vDkc%f=H6^i)@?p@XM zc?A_2^~jExM+1AXv1~1V{3wUuj7<47^9Sgnb-WLnW#7-3WZxqYWNK1`r6tG zoG+(EE+U46Gl&Blhzv8l7UPHf9?AQJBJlfg#5E9Rlvb*MIn_`hQLqoB4q^207$d_2 z6~{RN}x2Pz_$k#@&4Xp4||GTkr=8p{`j( z1ELPB0@D%QNL_N{qce#$y==LK75C|L03^=Q&%>h_>$l={o)ZTuK{XVpuI1`sfGH<| zu43Dx_*5u3F*}2saI3m`o58d%rUT}@8NhKBJg`9Vh_(G+s`6==Wo)nA{3`VUc*}aA zms|v~yw$}aIQV0c<6~mD29!N;oKKTJ=?AffLaY%SnBdC#IKqfqK+|LZMpm*t7sN_| zWSIi7JHcC>6ha-k^a|vDnxNyP7_c1;ahber=X1!B$tzUR>|14r@|`!FuJU z5eL>2!x4LdoMEfc)7yvXbF=&{vb`D$9>{a>iKbeTa3UEpnWofq5oc9WZg<- zE4T!?DBBB zrbDn6v8D!0SYi*BCqm=tr7}@r<}`St%}!Pz8fwQvR>>mZ-AlDR2+IQYC;Y^KBX@NU z6)=Adf(qC;7e*a&Yay~hHGA`2|EcP4Uf@_0=gWHZyuLF!Tt&zTukQ?9L3e;z?hL^W z*%ZJ%u!|s$Crw3yxpY1Qilzb0+YA^aO1%k|-Uak^4#=PE8FhwwFrU)v)G#3bvcOu4 zk${%b>LJoSfl56pQpG6_7p>x8VsM49BVU)Q5x|$)o+TXw5df|WN49+ zkdQl^7HF>yb!rgA@P=0^RnXzzfb=_OkVCO3bC$8{a3ElboUyVWydeO+AW|>^i{Ut# zM9(4mv>XuCs=I&?78Pg}qeVmt@FFe%7sh@kPsR_>vg|!@Bom1oAAxR(KvSoN-1CGa zQD7;09^n>*w@}&Zunlh$**h7(lw4X->EGzEl{&0JMG%|Ud%`P{09#Tdzq#)@qp;@Q zLzOlP)UrSU2LE6iU=aoCTuu=77fRMEp|y@Lng3%Lpg~eD(s;t}d3pl~z?ULa6~L1I%l=%@qOsAP9KEav73YoG*)O^Sd&VpxW;$`iHdQnSdRnxv1o3Cf^@ z1JM~QYjT2{;4t_cS4SE+eMMlK&iSHY(M81QQRK_e6I#k5>B(6q_`A*Rh5J$b297 z`E=DaLo4RFVcr8OY=Q_#m;LTM;7jsc4Lu3+1iLai9WCTxT*V@=!4bJ10^rC64+ z%1e_Qr=i^elBRV!(x~|xo}3g|UnuKPu36Qp0Y-O*h$hQDPUS8r`=xU~FkYN)#EhHf2h&=dvH%IP z35a9?)Yx}HMlmUb#f+QaKY>L8EpWBuD5FXZdvtCl*x$f65u0PG?Sh_Sd0^kno)j1< zu)a$|;LVgVY8Fse*a9Htra1GoA^wolOaU4&G1ugVIa{Z0oW4qc+ZA(cfE=^-EdC%4 zUgij{R0njX`Rg!W40BeY8$RK9jeFUC^}+s7_+>(oJKsbjvyV9($8Y3#D&hCOQSX0` zg<_E51RX##?k84p1BkbL1V+9962#&2NRrAhJ?<_Mc1z+(QDeh0<9#x?T_D8jULq5C z^#+`~-awrd-42QazJ3<=6=plo@!y|=tqFvdll5CHUsdW!CTlh0N{Z328|f!5PBk;8 z978{?yND=wu_WNU2B;JG9Xlg&3;9@n8*&_ZTGt;W2Z2~9{AU0BcGh{$LK)-!+*dlk z3BU^8YMO0|uH=IT%-sbzu)`pRu>4Ons`R04>_;AzCjn}zf&82%LtZr9+(75ge}Jt zL^%cUWu=A4TJ;`pBIh?Vf{Izr3(H_I|Dc`x5NDRuP)(cN8DUEgByv9dW<()ohYnnY z-$rNe0E{kBc4WDrC$%B4#67@-vA!%Vew;JQVK=)eQgjyRbk2xK2`8Hxt|vH62HW8% zfB8-&C+fFo(sGWiDZPo=K_5`D}#cPN8kYgl^X}t zfjF+7I&Gm(nTLS5{MqL=m7A5&;icn2x6lijrmz-K8dbqAt3!vD0HFqx1`E^7Q zr;Ed;B$p>3-LnVFxZ=*D)S{#XM!x|y-!Sx#O0ED2?-o6N9)P-}x&JK>@JAtEbCgtM zOhkuF&u?E!1N-vU*{|tq97O5 z2=*MG4kaRA3pyq%p#%4G){ysK0&D+gEXPWDbf7tB*}_tsoXV2}dJx&)R#?yN2DVA= z550QGo5=oxj*|h8fe~j80RtJzcIKF5Ys~DZ{fDX-gl2-MI`6y_uP+klb>N3ags?FL zUMe7+z7T+z*#o{}%OFCEyg;yG13)9M@q=~fz!zxxG{IX|hzJOh{o%;2EEff~F^LF? zePM7|RR@T)1)yq+fe4Esrb{(HMbbPG3E-|f&5)UbM0iszD>Hccpw)vQ4`5P37|=3A z*@IT91fk%^KcV1}e~a!A0m`z2wJg8d)*GGgxLr7)A5TO!G)3NI@m8VX#J5Yzkltdq z5^7^lKOxo}_!F4%z4TA)d0vDDa0=IW^413%lxjwRAJPU;TzLj?x`EB%=uJR&DnO?{ zi$^ULFQko?D`e|YwndGqFR~X77+|%<)^X@q!^x%s%l-4 zV?1MFQ!O(ygoKkm&D&x+og!Hi^Ubs#Ets6F)&}&V?h&+f`AVFMdK*z8I7RYx%y;nJ z%>Rfb(5nn(j$j!YAk5fEYzW>HqxldmWhf7Rw5b)#*1|SC!K{V!z`U$LJa?JMGFILw z`ng`O(!8p3`ZaMBxXCFJ0h${AWMg$f zyEd@K6u|3-Cx)ia5<_x^>p;J)#5ja&%b8lomguVX9DWPFgX`Zhednsa!Fu8-1KSX+ zbL?aTB_lE9MYlA#ED<=DwI^PwFXMhCb4REw zRqEHH`>C#%9(*2+zOT!D#L~ycIS97->CDo)zoDz$#VZMM!PH!YFJ^OTWj_0U{*8>+ zxnmViURRy*lNd>hH<+e8&cV9i*4PZ#Wjqcrcnde|ytfV{S!7 zC+|b!f_oB2hXfn=QYg0!)o1(EZLyp=53l80?c;xS(-P@xohd>WewhTQhhilCNewFY zU-F-Bx41%RzZ&UHnw8ED@>iJ_80}vH#ic@(8$#@CMgp(R-cdQS=PtGm>*)5={gG#I zzm&b`mfW~+a-65bFSlfVqK}yN(OwCTCcBf92WfN^#`4-bh-7l)QFw})OJ_R`0yvA4 z0z(DXMvMtXh*&p7?JB)_>Do4rbc2m(wshynHqB@Mb_49P|9t5~30=|uI949IQ9vtk z_gl3k-%P~#?DB7Z@@l1h9keaZpL#AYk(GrKSZbMNE|2iAx)rJY&AG zZ)TJ}vh9WG+Y8HOO%0?>#YzTC)L$Apftu9jiiIZu5oGU+y60r;ET!-5TDx`a0C(z? zMhZ%=1;2^aw7kY=Oxmi2qE~;dMT={e^KiGJ#>`w^Hm=3jJa1hYM>18m_f-*;oBM2X zAZ`&+@qWv<>+h?koAjIi^`4E`4>4!HZVtI)UbXD)Q)gyG^tr2Bdva2KZE zpYGj;-9mOlj6J-!vh0=BF@D4HsZ*TfRA!KQx&DBBWv73yotxuiLs!5mMK14*zEN?A zp)+gnO!+x~AA9-RwH9wY`^~UDhAd9g{PPOieeBtLjHkMK3o0KpEiMkaNuK8B8|KgH z36KV`%TD_%nz^j?_9kBS>vwqj>j!ZtRb7z&rPJEvzvV;p|9cR{LxaBo^_?teA^lV4^mv=njo=Z}`e_jj+mpU^a9gnN}Ds^jTVFuIANqjuVZv2W6h z7QXB)J%a1e6j$zqt&=#kI=-e?zlbCr-y4yLj)u*7Lph@o238O)%XCXiQzo>z+p=nB z0CAQ7QzCuj;n9;Lh0YSYAA<<)vXKh&5LMyCxVHU_s(w?f$}7=YgFMF|*5tJq%V1wklexlO#DP7;@SXF5Aor4D63G)(hfaYr zqz~}BpCu-yy7I%2EMmAGMIQ(Q01chPtIfp_TeWD)+azY^(4*fo=Z3o)a?s;3+iiE-D#y^QjNRnQ7haME}EMTOdM zH97)P;O#N$L<>>)$a{LGjoR+yl|ZS)YSJ~GzrOc7H{trgusDpx%Hiapx63PLY zSX31b<@CL?+^n(&JoYW2B2))<#E8h%C2vH}&Vr1+;J}glB69T@{v#E({Ebx@xOiJ0 zAoA}Ld-y{EfWbFCLqOChAg$uMrz6YygfV zfqjW%+Q<m!*2m$?O^XQS6#PyOGaj>vPT1kN@VeqSpqdI<6IU9unBgtl zF5)a$ECG)E3Z1$xQpYQvxTM4-YV3J;^O=NGts?>&?T)Xh6Sj9q{8t6 z^fi^Y52N4-iGxx+mEc4HvOWd9br0{msA zAX2S59aKr{kImBK!g%Kh3Rt!pe=ja!dU&nSSL_c_Mj}udo;(AK1qvre62Fu2Iw<`d zSVs4D;Ld6Cx}jzyW;Od4rVV6nyRpTU+d;N#eMAJV@Ew?O;co`7gfAe7^|GnIGsxYj zXpAoESAx%*=}N%N_|7b_;{bm|t?L=@*}@S<6p$fg-6hu8b1qy1d1t9HJQ)CTa+k13 z58;za#kDWYW-A;)1|G8HsZ+Gr4F2Okh$iW#Xp6bZHThfz5<8W*8dYb-s8l$ND;xkb zbN>ge6vshaCCK#+c25Bq2x#RPAF0l8ct&!s1v#jt`ESC?7+w~^)jU1HF2llZVH{k8 zssdz{Ly*n~i)JH^MfOwff z#Y`2Dh=vbgZoebWKGlJ>`YvCkuYeDuGH-)jWAbNWZwqxh8BNiV6t2N472>X$Cs5`O9r$ZehxGFL!e zsngK{lE_$)sy!SuD&d8DR^Z6f{-e8G&`7`H_Uh>!*l2!S@zkpmK}Bo_X>wXeIsO42^fyab|NeZSGh4&PFX9J&JrxA`ygC zc~~7}NBhfK7A+V^6KVb#=$6Ej9lBKW@yTN|(Ye?YM;@L%Vi}i@oq12J3Em~e>8Sz< z=R{I&8kvFP1AqWA>!M9NK7-0@Sy<|DWZvUTgjYJy3CZv@sj&3Z2@_Yy05o$JVz8l^ zPNksBKY);I8s!u-Sj3Oj0RF>YAYWQ-x2kW;^wdldj-5eXG4vbm1Jb7{lBe-55FV$p z9@o&}1pq!LXbrf?!OSQo?C}FVztP9JCRtfs-MAIZoB}jK%>(>8Mq+1esVRV&05j1n zvK*=%ShXF8yi5P2hPyE0?3eNwg_fwfS4&O=TF~F56tX>lwdY?X z5WJ06Pg*8Tg3N&e23uFmA9^`(+@GUQV%8B4mE#2lm|!WE=Ydy)!GAbh=xL>C4u%Z9kMV~d4&33Bf_V(e^xyLkV`HHeQx9dK^BsqVSgeG zq!DcprG~@-CVz}mw;;MHPY;-pBQWrn_B%u_BEsYWdgBvT6kZNIpfzvcoy54U@OrjX z6MW)2Jq(mrWR2IbXez6W439lWXFLOi30a)VHg?G_l?^TLXDh)RV{%m4fmKLKrFHAprI|JXqc(IVL`_UDCnykTx8U{PM;d1JQjHT-c;=v znTh4#bTCO^t{fjableez9RhXu_dO)uZewK^j!Hy;`yMYYKxwo!RHPPL+SDy*OT+GQ zSRsrG`B%tRt^*Eigf>(aJ#sK3PJ`i4*o(&`0nmV8+s&weJx}J_vKvu97Y4lHHBnru)KhVhkYoWw@fZ*uWKHe(NWdib{1}i`+CSCMa3rI8&bLYG z#54a6F9 zdt@(^z`O{mK0r*EOSLymw5a}fta{zVs*oXPuvl+^@QJ0?r5X@4{3AJj*!knZM#p1- ze_%z>6cp!J*uhpL-j^jWW3Mn_v)dvfRtOaKY!EX54?(KMD(Un>FJF-7a#6t10L^Hm zq;M!bz_fx43iN-9UYhi%u*|yQ&wDO?T%rrf*#!KbBK7`vpiuF9dN=Vn2RY`Rgoz7O zhAF&`Dw{M8A1K~6{1~h;C`SFRFW zY1z$rAZh5CraSj$FQ}2b@T#F^l!{LC*T5cNV)-?5Pi0O19d`C*cd@&JY&Kz09=DlIXaC=%=+>w_rP zunTB2!8|)pmoVo#`~#~2kO;>L_6Miwav*?cc78d58p!bNqS+Ud7s8iTY(LXEUTy-` z`~tXl=_lWjbA)VEwhE0y*4aGi#NT|@plE`+-b-f6HoCYkz52oLg0MSuTWKeVr=$qW z2Nw~pKzffkSOc5uZ7-+=aOJhUJ~|(Mz>^bsv7F9k)r|t<^@*?a|7m#tr(hWau)hI2 z{1x;M>b|F)h#}=isI#L>7#K%j;sp%K6_{Qmt`8r*t)sO|fLfER?l|uaoS#4P?a-~U z%TvN1zU2nIwP( zR((AGY^Hz+ASV{j%X{&@Yyra&zVQVyi5X@$9&6sgPWBxs1_OYamVBUQGDgjRV?IfG_zCy3Fv8czdMifNf6FxINFvmy!7Jc! zkky&IOSy`i3KBpjradoVu$qtww3ulu?PwJ7XZu=C@y(vh=;;&F)LZ@cbfqv;>9>I>0|w&Ml7Vm$+!vFf zAEaOEwmNcn8)$9lwnM9RvUg#lBPT^%@8tTW!esQU7j9Jp-S^9a1OoG)^R<7U|Lc7A zU;g~%&;QFZ@c-b2p|A9*ijY(7vxwZ>F55jbQSVD}^Nefsbg%9BD+OQF+=-%)r*&rr zQZY4(h8_$xWrFYQ<*r+|cSA68!=uR%FHTaOovC{&2KWIWqV=wH*JQRj0Hv4HXln&OHyj>Exr!$cjZT6SP)#r^X9>@eE1s;r#?_VviVCX}60WuZa*rwH3 zl)rUj8TDAUn|s)gBViw6LG1q&E1ftTGu{3B7G6osI=UEsBQwc$T#w@#aD>o#0snIQ z$kna1-cWZ^QWeN`8EQ5~&J5{~Zk#WA6xE|PgHs!NINpdINRn9c*)&@H@zHI zHy|`e|JaA?BsCZMJaUXT)XfQ>UtQ?(xlc6#F2=G~S5pr8oLQOr;^Mi`oNdeb7lc|3 zJiYwJ-k;F1+m^hobE^^;zPXH$(kxVQ&_wnfwpzibL5o3DaO2v{to(rg!aXayus5p} zA~I)Vy*-0c-SZ`Ht^aj|Xo7|~DU!^XsWP%6)U-e3dnWl$h@G@ zNA-}Geyv>B>D%JzIqaPd1qOXY@8H|y@3U{7Yi8+TfT(O!xgs5zekssprS{mxRl^su zYhO6>1trWH)aOIZANppp(_b5G1b_Wgi=13!j; z-clJu^(=Fjdmgmg<3a^Ws7BZ&j*)lc%7C1VYu{~z4Qwu_@FX(oSl>_Bp)f+ex7qDx z1=q*S-SO+@)A?xQ9t_=3W4q)d?0EMfSj(6J93-0!#QKH1WE>qbk}xT>in|{~O&+(Z z!wY!1BTDJE+0%C_%-=kyRvHfhu5`On>aOR8@*qjgvS;OO3##;@;2A3K6Y$N;W@|~! zBuL82d+Ag^_Kf{_?*&u(JHuIBNziAuu|Z0hbgP`CHeAy^cy+w{Kr^(dXGUG^K3$nW z%+GSTd#qDQ-*Wdgpg8?(yOKWuTigx>uYbnPs>Px$-0nVYEqcQkk|x)+GZuMkeU-xK z`_id4qpcmD)qdK#qCM^l%%x{VbR!p&e~P#KXMq7*{)_%y%9^Ilvahvw{Ol^6kzA{bSaDnyfX%R&vG-&UI*Ac-RC+lp6s5uaAq^uA-LuU> zd?VW|pXUr4a!5Nyz1s5QfKo)wQC6p_q?GH+b*;O3&&8@MdTL3KdxMA%Os@F8a`zo* zfAAPi@nh&Zcg;qTt?Ea&QS;L#=39PLOis{To-e*=fAynfC|Fxau28f~RY}yw=k@Gq z(%si1N+rb?+xC4tWdeQWOZ>LVd6(z7U(Pvd(T_U$NLw)pP`?97d9cc$>2}oPd;nnRrd5) z${@}5vij4P=FA&!{SAqQ!OL?EH1kVm5%+tK#Usv80CMqTTJ)c>$m@VNZ)<#l+D4V1 zz6w>}dlfLR;XA$?{w~HYm>`8Gs#&8wh)-{XonW?i;m+duv^kk;pxKQH8PQbBugmu? zD>&CKTn7rF|W{0E1+2qcJC@|PecEn!u!2^qTf$X6 z(+A@S+LAG9z&JvAg-Hybd%ZRFQIuh2VCHBR(0FcM|8BoY! zs#!x!>Hx=M58!*ITGoQdU9=?O?ku5Jf^q9AK$slE>X>}D=1I74kJ$}Exfghk+u>|J z8fj>Si~ylsyo|(51h0mOo|X^*%(kn*JF9?KJqf{07Z^q>Wd#U*Kx7@JA0?fdCB&$a z9&DQd?a#I8iX`QmTB2_zJGhvo4W!Jvu)@$hkYLoX-gjLG<|a!J4ooQwox^iJ+`wGD z>ozYD-a}gfzN6}`a-NeTU^`t)8q1SS@Hz~71WkvHVH@fJWXDDMe$S0XH?Tr_m+3pH zz8*1K!#Wos=AkDnPFGXqo*s+gm9G_wge}>VWC6B+C5e678(^=zb*^k_iE8%KcLDxn z_Z09fLDVf{W}PEc|3fi{ne9wYO@0%&A(mO@o3O#(wU6u&89em5a=B^)3Q9-sR|c?# z?Zx#=020|{_X=zQMVCWz-#<31wdbO*o$N0N)1QkszR?cAmHtSk+MjEEIxGRaD*&gV z;#u(B3zxuppB5Ir<7!V=*r3G#oOAHhnuZ6_3t*OjIWZb8IEL0HtB*6&Fw_mc3m`?? zf-OY9lBGBPP!Yf|tPkWQyUi}tRN@tk^$_Suz49l4nL|D-f{N7IO}B2}05M&oPJN)8 z_2NYUa5QJIVgTX>0MmTI=Zn2-(DNnI?}n}7DW6NX9#P-PupDt`I!vuS$cPLoU-oEY#E0ILn6T^kaoXp-#CLbcY&SNZQ4=yPjv6{cJ4vG{{zk;eAQ#{U40)@$V zDO8UlUk{)(44N(D0P^^o^)d=LAUjI+5d8_ey8<->+mzNmr4gz_%d{_|{`V>uusf3$ z(1+h54BMIYK&=s=j>MA+&m-oCvCLzC;~}4qAEDp`okm06A!r7`GKN!t`w?zbQ z(R3sEAf5Lx3Nyl?c>}+ZORz$vjGgISB>B78)b7h4yEPxGjI|IHeN*CE>&Uj=48$E_ zEf6fNDxq$DK%XhNoBEwZU+KLLw*`*<~AmSBS2>f?f=ge_;T6k`Bql8TCkcn4XO z-DN--CG4iwj_sc&8oD;0;AFPh8jaz%Rg926M+cMx=Yy&!N%jFRYTFbAEp~{Nf3!IElX8@dB(0*t;0qX6okUuG^d}nN2#c zwpdJ*|KOkpi|KkHd~A+#Gn^q|l~PfM+$5Fg9kpEL6oZ5Lh%ARP0yg-oZg!5TQ|qRE zz*tLpXZ@l4W%j@~@P>%(1Y{NU5C67dN6llyN^t7;-)u{Ijf&Pp2~hw%hAgR!9F_NZ z&YFha#;n^7o?c+)dTf;dMruq~5(5>b@oUNkOu&nA(XZnu{z67ApvM43@(bZtzN1{y zG6LXrUj#tg4=~Q(yx9nWm1-(j+~Y4OUET-{Pa;AQVZAJl3E129B7kZoi^#?#gI8La z+@HQM+i^CQb(Ebkb%8}QAqdvg?*R)qBOwUIv7j~dt*k$`Khd56u@ZM{Nf$T=(mt-Vbm*Y%q6hORm>bR zCKBfG`EAu} z-a;E;>%!0~z-tRk--IL7JS;@`{ucb<8iJbnn}L%>@S80FV)Coqx$-p9U`U{iO&Ec>SmkSPnMTGwz++Vgg17kGb# z)D|eMw}%GoL(#ye6w3x(Ciopedh43RxY;nuSIDRa!+@3aQ;(n3;3Wd0vf@up>z+0E zOD<}{J>V|~%ZWK)YfBl0>+Rgs1Za*Wp4i~E^ja2n0A4JHHDGDTbidMmyVDp>u%<+^sf(S8sH@X zK{8WP*vm>s3DlH|TxtSRhUJw$$$)Y&9La+6bSJ9su*PYGxPA+>RaWj6+-T!(`pafaC{YRx-dTk=hue zyBuYw{lI5}ptiV*r71N<+qJsDF?-q@PVLSubeN-fIrA^S1rrAMHu;R1Di8lbn%VMG zs5#5F&5BlWxT517uxq`{&1CeNEuY9f|5s1-|8MnF|G)8m{h#%bzt|EHu!m|}eDaOny59Og0nmEh;XdL!q?*b<+GX5otQSH;DQ zZW!|d;(qYLC0x)LVmtNnflg1`3)k)9ix-lZv|HHTz~ez=PVjoX=!1O6>wJ6kF2&M6 z5OW@{G-VS^>TAaBgHiDwAWszyf5b2L zEtlUwQ&2+i4-AKEH(3d^;_B|w6 z=y@P3D?>X6Y*U_^%IyW7fyr&JIrL@U6pG!zQHP0q;Wx@ihp=iN@9B2Sz`NFXJ?db_ z`Q&Pg%lTTVW46|Jki+rkuOr%)r6#ir1{~I1LX&u&y4Y{Nd$^!~jB8uaGNQc}dGn@A z_SXi-o15?0o(__ZRIPs<8@Mew@UW5wFTs$WQpi1RdW0$M5QIOhe8CFAfoAj6cjax4 z_G@yJwSJL^!^ftGI>wO4_( z)r@4h4j^l4Fi`|o98Z5@3e~5PxoCL4l{n_|Eoe2%cX%VyG^fT~YoT%OEL7`+WcC2* z3U5UF2sPz3oZ|8xNJ7eHAD`!Z1l6bZr7X}5`nW)d6yTrd4DL|(EW> zVD}c1_7}RAxevJ*npedRbnZ$5E*DNyx_nmznV^|aW&O&=eUvrDk z>Z`(8l(6c7QuwykeV7oUOVavV(;eegdO!S6QtHNTfVdIS&>Ff z%U#r5_oWbP2W@(|kQ1#AN|SZ=g%-Xm9y6IUu%eC!u5FbppDDY=n& z-!1HU)a+tq9MC*4o6T6>%5d%m_4z);mP2Dea1UW>PTfAq@$d~p)Dch0K^x;|nEPjf z88r7%nq{p!7-C4O8B^MI1<$V<%=~r>Pcwa{#bG-Hy*F&u+FR9r@gf_RHl^zO35fW6 z5u4Ck9nKhC@$hX(?NdXxQnr~}UC9Dnw5p`KUOFTS71YYa4xa&#z=c-&EEv9j5>VrG zSJLEJ@(V+i>bx?CJ1#5Y0W#6Cx=@YsV9pO6_hco^O5ql#I3HKy(JL3{N_xNCI1om= z+1I@y*+RC;?+qx+a0Hdo_bxBnv-A1;;75;7`R(+*uc@cP=6izAq4(^tof=!h<8OyG zxm0Gz_CU=j{LU7X<}aKBIK9_DU5TgT&oEmx)_Y^}9Y=O|61q!sE9dj~i(2nwUXD$V z9b1&!#P~1bbpETjp})5C-^;!Ib$$Q3zW*I#fJ<9?^Crz1WtZEdzFe4|ErvQUOLea( z|5*i(l?bRl!$sJ@wf3boD@#+*Hxl;Am1io3QtAR?F3srj`$>gis09ZxTmM_*h|V&Q z8mvpY8IrQ#u36~rs4?K2U?qM20Q=*x0SBxx|T#>0} zNx2P5?C=dIR5nw9GZeO_3hk7oRREZ|c^V>|ad2i9HUo0v+sZdmN-$h1y#K=BW-aNGG``Z{~ zPJJFQ*`(+L)z;!yvp5M*ba%i4u^=BHv=!hL0_-#n0ObZ>_O9d0G^~ItFRd5Lc$&%F z36D5H(c1SO8YzMQhQa}eqCiXr5Ks|-g!<^*a8d;Q67uahO`5p^G@vCLwi7G5G+xvy zJEk-YU=5!*7b97bTMAuGc5sN2-m)0Efe7P&w8wyN@gt)<@GMu+7gko*PN;y z@j&eIi_I7&7a@XK5D~zWS8`~s&5b`{Pi}_7nVSJla-q;1+_s#VQL#Se^-*pFt@tq0 zy@OFre(p=vI}K58Yct*dw8L#xYF4FWH-Cs1@wC6@KR2R|L%%z~=!6 zQFu~`Eqwm{Cm`LO-QZ#nLN%wcvsxlP4|!Lw0#KxM8bNS#GGvwz`Xb_)!-D|F{k>aZ zGXUd&Xl2A)FNirl23D!p+K;4p!vB_pjPq1wLF4T}`u;W>1P{LeHw+LjZj@#0PCe#I z24EgmoB$aE5z^@*T6FbdsP-0~ZgCd>OG>+CeGpoi?S2)r!-$dzNI`8WC%jY**RbpD zzFDWy&X=gzG}!H`(zcb-q;*B_PuX7)Bc&Ctd6$2}3?fP|9l)(V-Egm*=M=(=Go>mn z-AkIiiC8vx8lX(q3P=Mclz}Vs&Z6^3}a)_*uc z4}n>tB1X6Z(pYIjMf4d9Y77ew`kg?UPa1q@)K|ZbBHYf%a19yZ48VzY0iKUckAYo6 zO8ICZtN#XHAEma{FHq3>nH8Pu(m+9Fsf^x75?>+pWRHDD#G4zDJnFbXW+#*X11qz0 zTDVCH4pkRS$1GQa^4BK8Yfh3mpMQ1K@ByOtEhqH=Y2_zu0>#c4eA~ioKVJdd7js>@ z39L!OGM#7I%Se+sx036>-;CjOy{ZDL)-YPW}66=mPtYE%;?i#4YaXXRH zwp@kiKF^sAA|7{RoNN{|X<9xq&vKodps#NMbtp?$2KStEsM`w^SHo3Eko&}nS}UZU zPu}zswCCZBFq`(lvU12x%C|Ffn{Z$N`E7u68ySP9dH9(c58^cd9s2H za0KY^|IG3dR15E$N1rE)fG1bamGMfCF5fN;rkKcNuuI?lu8iD2{Rk+@>>+A)05npH zpx*(&DHms>Ck@NL&y|wb^0)ZOZPb@o52A_@m>fU?XqJ=^wN`XZ!#}%%whHE(=1&`O zk5E4x%ofp}V2bqZ=KU@xyNYZsohHJ$TUR2&n4Q1i>K}L(EKFCHrGuc(Al-$SxSuf2 zP;f3d{Cf9BZkm5J3r<#OIJ!a2MG1smp!V0IRS7NN!8JuZ11kYH0l?$WkW;lN_m>?J zL)9kq3BbhRqgp9+wyUG_Bdo_t<reh|D!A!G0P87qW2!Fkvo!nQ7UdJmXkdNS4(9C14fuP*Sa5qb7d-fw2&-v!EaMS| zda)vxSwWz%CISpdxc+58*a_okucN=V`M>|wEoDJNK&>ZInDxq#Orb@gJOhjW z_6)pLuZZFwS-t-94?$fc?+YEN{ql0HH;%)6``CzuQR=!8evG)xcZaGAiux1pq7GXw z-wL9pe@HrYmA7`Pj2}dL4stYx7#fK-HCn=&CItqpP<=xLd-# zEKiz_B2C+{-Yh6VWsEP17rEm^ftTLKk|6ZFxm|9-u^%W{S!!FWyKYsH$xg&?#QN;CcmKll?z z__zPRri%zgdhwQ8Q>7aetL=K4`{IyvKka}e{{Dx&nt`$fa_r)bz99=u7(smkH=lP@ z!(Bf1+|icK8=MTAG7pVGAdI!Zcuap9PLah2Da+PdM9Im}b# zA;MX}0p9El)D*Ax4am>(v1@Lz?bdysQ=f9(S8h2r2I(wCzNmrhenSojv^?)=!3_m!U0=`+veLE8pD;cjGixKjfam$%) z4-Fk!;(ju-DfR*8J>2Y*uNUm7T;_e5NSO=cI@`j7*|eu%KMpMa`;RgAqvI11#00@{ zFZuTkdxB=T<`v$n7IMuZxK;IQkYg7H#tl61CLLS%8BiQrDk`Lh?r4Ta!s)9^h2zM&kFJ5`4!qOc+qRkBJ_Ik(E+sy(#bzpz}@2_j{*BJO~4E$d^1|DoW ztSvnPGO9xI6|oD0jicrq&s}7VAbj?KTCX6Y6SOxJ%_q$5Vlpw=6}?}1mve0E?ZhEG zi2TKsn_#DH1SQ?6;g8w^)%;V z4xFGD1P20LJa@yI*pHla9!Vyz58FD`owwdmZ_z0Pw~el8-yQ}!f*faoZmis;IUFZi z>vr;Z1l~;Dzt?4OZXMlY4h`(NosYx>}qFS`#>C0&P$dUOB3oDaw7kP zz4b(Zc2~dkr>CiIP|s|DG=|aE$WmWHKz9|-Kt|Gy)3DP~41vE1P_4nzShO*A6;$mr zfU)Fwjh(^C_@pA{zT>ISf6Hv;F?_6|S8ES^p`>C%^%@ra1z=_`0nNx>4oae55i}rT zKE#{64Y308&)YI+2l95%zCTY&F`tqI#M@|s0*i=|B6~+;8}HUaH&3GsEU29O^?10C7cNWq_OQ_ z|L*Gu=J7v;pbtig51?5s32Er9FP`WC&MAU*PS_oXY#D9s%wHz}iu3J=W_?hw+T|gJ zD#0b#sC0{nDxygQC_HeXND{xA>dOi&LXj$0HiJN9(gLe$9;}8e1fcr42t=QcQe*2Z zGZOJi@V9J~+7Zw24z1ZJZhM+!=_;HdR*V}d1x-u_fU~?LiI#HM5va>vacB zH*>d=3kkE!WG>JF3P_PIc}%HmU?Ke?S4#dvfNvEr`AOffP{X>}1{xiBn17rTl)m9} zp!9vQQTo36r_#4H1<2f?T7t_iTonkYHq!nH1DbXQS`j4qI3OOTb9E7s_pv}<`JB1( z0W)dI--6?fpQmQ)&|Qf@lx_}%N^u3?M7qLgMfPhJ-c-Y}6Y5l_FHjYLp3ZX&_*6F> z^>5$hs0cC%fC{@u-6!mi_<3hBKd9P0Y`yOw&?V#Gcoa_)_2M~1d^b1g3}M#u%Ts_h zfw7g&GpuT)g?#JpG^!7v4x2aeIsOnjWbLbbVCuIPP{R8?6a{K|_w2^CJdaRY1*{mgt zVUDycZ^BT`l3JPBM0mtF7~uM@Q}r9GfiSKSY19fzKtmTX8V8`xjW{lRvm=0=Ugj@9 z8mjoGz7~^>U_R)f8&|qget>9xX%Jt56$H?n6UJRfQ;V9k6W0Ic{01$}~($~BC!vjIZXK&Vm@gjA*e7WP%H2>gVh zzynhB`vJj{YIY-6nA~I;X!Qr;6}ThI8(>%V4PY0rb)$HK6OjWezLpLHUyCYu~ zL<3zwf(-b00PTd)T6Z&@wI$00TV3njWcE&;UB+n z8tPn;jX@uf9RkgdM(0Nxp;f2iwEbVM(UM1!fu6D%$_Mw?yvwo+Kyp?&Hfpqz1I)53 zvZ1IIcQETz)qUCg_^+?>|Msfnp4AVaH$VvIFZvD`dzx-Sc6)4TFXt)a?%ATi%tGXKSy32#m0 zWgs0%pQw2;BXyXHm)6S?tvN~9bhm79$Hhy9cPi(WkIz0DmIn{j84GIMs|Mnz~P_6x<$>e!_(zoN5eR^x4=A@0wmqwv1+A~sZ~SqH;om% zONL6cPYe#uGEeh=zyAD3P@4$z09i0QL_^gt-wr!GsF!eV?EPej$-MCvH)tze)%)A9 z&mf91QC$$Qd>cNqTjMq6Tp*9;rr73Ux-oAfCUP}Rz!Y`*i<{Rg`}sDdYg)D1bW~?8 z8kP=&u?KE}DgJvJihG!5|Gi@liCT(X9I6Q3A;tPQx(S~e`wSb5q2}9{Z7!Vn5Y<0q zJ(T`vd-%Wsz;g1vc?XY6-?qL#-?d=su6q8fkHUBI-YdU<|CzUPnrgAWh`&!Un||Xw zvc2YE>AK+T!9U1V!ZP&W=9OMVBbH`=sEcKKI$^b0*?YUB)4t2o&*J`;?-;8%e9b3dS&D0N{>RXu&cC8rwYxH2$nGR$^9FZIvKV9bB37hi$p;}2*xa$@m;aQMB?T6$vlcEfMF8%>Qw?9o zMBrpF{U0YmZMN;VcEpm}gy=zA^t8}O${-UDMYY221Wd36S?fD~HVeq2uKf)*P$TA{ zW&-wt0(hmf6?&bFqUzy}wouTHnQfr@R}_Hca)0IYex&vZ8~HVu@%r>bb9;10W8xs; zP{3Z`nxTXZ!~hyVi0_@vpx$uJd;?_T_c5UIj_zPAa5@wNN9oBd)TH8XWFd)uA&TMJ zFlY&K)xBQ>a&s&)I2AoV3ux?A z*QuBJE#!Ct9qZlb#!E?0fRe4u*Lg5X>!0=mWzk6a8HRi=716*4<&h=;Cb4hpdZU@gDtQ64VeY&UxDr<0lAVZ|6yGIU0BYELe+Sn zW5Le%UjjqYm7)K-ou);VdzR@G2RDBU?*YM^pq(eks-3*}gy$^tZ>h2TJp^if;*Q0=GSto`0 z_R{O0uoJ(Gg`oa#C*~n$agudl&!1PIOfdw(p2~!;jBYQ4gFy)0|FvI;;7rXx0Gx5V z7x+hk-{_i-A^4HFszhC<`V$@ep^jGO<-aLE`V69&T4*Jr1F-EOm)x{L*LbOHep~0A zP@ka%ymceybHaq~OOj^H4uVr0DRZ4pek3t~@*?l@TcPKWKRP7p-IdAKv$WDt2v? zcy7)?m;KdM30EsZc04*e$!5Oe5wvZQm%G26?A)wKoU;>_66?BlWcrvp&;HBz;=%%S zkvPsh#<$Vu@YQ5*mYq9v{g1r+=!-K;+4SN-cL9da@fEp~$;%8iT;ObFqw6?g+QLPe{mT< zkY&S5!RU0bQpaV>#g1%wFS_>P_WR7YsHdZ%^8#aUWp>DoxoJ!F zu!=KlsRMn_Ni88OiZ{@Lr9r7+u<>mJ3+65PxnwQ7t;C~k`dvT zQOhxK^GGkPNQkyOVdjWIeEp;5!MN_DaYIr%zXLS$bDV^dEwP#m`t+7OE<62;V{(EC zW21bsQ8h{~1v*Z1H13PxGhWIO_(NEODb%bF7TYT5pR3- zsQ1KULgvs`8NWGGwz+4kxoXh%WvkxOR9j@?q*3jgIP33aXz?tOlh5{VUhZ1Qs9~8@`C-$svXSh=P32h5qaTp$h+)xr2_wQ*(((D=gtx*SntCLUHLSX@kmw=I?!rzKTmI3svwt zdnHsQQtpfVUb$`QJTUh3!Xy8{Bo!$6ufYKS)^fWO#MGk;1XLs@##2Pfh=W}3EVOI+ z9CjsAod-E)tga^2Vsdft%spqtvXA-)`S<8cyCqzg-n?sCdzWKX!powUgEPnY^H!6% zWFmE@!0Q5ayT_^K<{yg6UgLd%mCTxKOd8F z8R<2pvFn|Nj>#qx!8@)zCAz+Q7zz(c-&(=lBMmld*Y(~zITdM^wm0wG82Hs=(7G8imQ!6SImf?UF9kPEy#NG zwZwe(qiPBMhoNd1>iZ=N0k$T65~j|SvA{jZOS#myrfQZnh5@yq*w!;MNgg1trQ(kx$xh6~ubLcBHL)>2!vJ=Q{SQ`~0I2W> zAYGr~qnMf?a3Bp%yJt^-vLVwj1${fp5mX8_J3ks~H+MulD~0OuR17BoEFR(1@0DYT zzxz(r1BQP0Png+wt-8syVlprw8K~f6?kuW;gt*U$ftVn~@5nQz-G*4lnsuJ(-zrLz!%^$uX)N|=H4RG|81Y7pB`*jXy-?l?Zd z8~ZJEV|yiJ`^Gq^r3DlrWvc|B1H!{mrxFofW=)$DbCyG)Zd*Uey$S7MQrZZX){Ug|h$9a)>N0WAP= zzCceuPRWPkmJ4}bWjkd&4oZ%k-bY#mHQO8<8PA|yLwvM2P{U0C^=>cKUe|thRb**x zE`3`O+JI!eGO|MqUtJq{^B`&YZJ_?$XOkLB{N0EOPi24!i&3LK=jQeX!Hys;}=rEs35=O#S<=Z zOv0Bwj5{JI-KE*hC_zR1_#~nGDAXtZ4bhssp;*WSq}3NUH&Th27HKGnvH1q@XsEwH zkk?3)jc?!%B0piOfS50}O5lwh(70&l+el?DHCNg9&Y7JF=de(2pDo z3K1WI7W>g){5I0I`hCwESvDEDnAqGWtfFyx01{iwg2wxr9y$Bh0T{P+K`FTi?zqR=(n!D^uFE2HU!qQZ{FehIdDW7v9c z$i17*)e(h1JmFk6Z>`IQPf5F<{Nuq*(0j}bsQXpel-|{f5lT}QL}oJY<`TC?f5(u{ z#Fy!%YhYiF8cYZ5wH-1XGrHmDqPy7aY62#^bwTn&3Nd*+uf?aX?1tT!=U9Kk`aER4abwQJ21TnULe-Ol%7FF+AIsR6h`ScEKg9Yu-MT^Q!q9KDhzT4`0_~ zAAb_AU*{g36D9f|8rLgMtXDj-FZL_JOzf?#`vsn-ZE9K*wcB{Zt1R*Ngi;76@MTKZ zcDL?rB#K{HYJ1I zrTc0i?|}H(t~~md7oS}0U3WZ0>A3K>h?vIRGrhtFZvb3tPY2zjE3ZIH*r}q#rk-Ni z%)jGfV9mX!Yz~ zdHK-$y9phITYkjvt9f+L0Qt4=bMypq{u$xUJ(=Y?8QATMgF}WSj?cgDGK#0=4#rt2 zQQz=R9p8x-$?(~W*!ws*22S7K@vX+p5dt+QTu9$NF(N(zGwTZEoP$=1id}81ffgx~L&gDw&7LRn zU3b36lDf47)>_)Ks?vPPq%)sHs#IfcLTXx((c9Wq(_!dYZ;Hm@LZ z=8VFQ`|7(4wWVCipPM_!2{&GOsn)n(w0Uxl@96!G#AMa0+2wk0gSTV(O4_8phEHmZ zZjP3T6ouzanmvt&U$^dEGgwHRakoO)prU&hhv@tIG9$JhKKm>X5pqMpJQ&iH_jQm~v&dmU?%LtM z#gK$D_2;Rl)vZqqYT6oA-if)_4~Zr9r9h!g0*)=M3_r&2w9%_+H=(IZD%O9Tov{vlkJgq6)<#vZ&aU{)OLJOLZ0oU2R1?1quVoYlx_H{9TiIqi12n>6|eOrp3T2f zx#ilv0k@c1ca0`lkh+gx`>I3c)sJrqkPUIw`L?)S;Q-D-@rtfI%s3>1^PsM;XMy{q zZp9Zc*N=ln3^?4;GPjjb>vH4KrK95PT$Q2w9~xpcy?38CESPB4 z*5r|cQJ)iP72b{RQh^Jng8t7!6OhvRio>DNh!ZZA%?6K#)t_t5e!=axv7W_Ab$JTj z-#XE=aP|JzRgS~yYu^$ykBC)BcU!hc(@%27XbAgdNr_D;uFlVxzX+ZH09mi z8W2$1HB&_jowN>l>;pnB^C^qxvWma03+lum5H_%td<3$zGjDg%n~Ke8Lk2X1%r)&d(F*MS{O{TgzN;=*k|v{;V_XTV zAw-d}8w#(j4<&iVolTFuTXp%-cF!qoO{c!d6@8{S`i`r>$Y9(4h`hmr{DxwaSGK*@ z>lW!L8sd+fhX{^TKhwoI4b?jX&AE4uY{@&K9thP+@7yFeqdzIhmd=A9uGDsGAxOK6 zy9*URF*9C&xZxcmc|FWIynpWfXcznOENaP^pQL!bu$Dq`Z8yFm?|KAtRB^l%Q>Amx z{-o8yH5Yb~)vb5zMu|$z;l(oIlCpMQfjgt z=xz;Q`7UF&yi(MY$R4zgm*2ftsQ#8akD|h26rX-MysP=e?q)q1KDSS@b@_LfE>hj` zw^Jt*KTOYA>Tf-0F8^k8S|u+gU9j7S&jHf_@fc1hB_>b*(GRC!*T!x-Z!zWVJ6>qkrQva%=x?cj*un4bDt@~bcjQf|V9U_vagPcZ zTb-!vOD@h7M_;?=e&nUbZn zO+2tHPOE-;Ex}H9UPFXS?(& zFMqP;x%Yd~rTF;D%V{S)bD08tS)|FjB_gf0@OEKxcggm))*F^?(lS0gjdC&tcgGQd zc}m=u&>F}c`x89ItFb?5!4t@=r{^qZE9Z~Ay0&!sX0+?%Bi}ynaY_01rqQillFAK7 zZHBaaXB34xdLBM`dSUN4W~^CriaoKkl(Z0zKCl@lQ$!YI7J1*^mq??@uSA<3ouufP zIlZ2Ysgbz(tf&3K9MJ_;FBTg@eBza&ulP){Y^Y7Orcj(cu;5OMBg*apyE#)5eTB5F zC0N>t*7NZkHZ%^mRsSS@RXf;Wci^2nu-#*ms#A7wvJzb;)L*xgBkJ@Yjl#;$b>F%Y zy*M}Pa*9gJ#DC$@*1(RnhqXu7aOZ&jZcg45A){CNxSpHWmQZa`iqgSvLyv^Km*Deg zR>g_S;Do7fiI~l{myn0zwp0xdwkRhqMl62j@Xu<&bs!nfM4)7#8^;;{zBA>VFpzD#K;aFjY;L^jTrtO$*$Ee)Tq!8xQ}jkbSa z>h`v^#TeGA83bFb9%k34`jaP(DpQQhm<_$UiVclfiZ5k&AMXm;Q~xabGNR0v6I1Gs z01c~2pM%_PZl1sCHy9zxcC9?z{p}2U^4-EA{`j_>`stp}0YLi-Q%9`s1_nYEiEzTeUp zT-N4(bYIuxIe+^rsFSDs1(Ff(;$>d%5Q`qUfgCpR7THX@9PpTJdc82@2TmMUM&6`o zW?EBaxHpD-sJhqsLSR-ndrbd$`dsXmn>IE+-i=xU_fdQos9@^9P+h^-=Fdp*Z9X9C zLCbhmX5rC1!lV4zxssaj{311pFjA6b{mSp@RbD=xg7-57y|;sy=1M3GC4$!E4RKMy z?i!I)GwsR{`dp&h|8VyJ*KP?37}xO=pI|qrZe_z}W1~?jcu_~I{QXHcReH^wEI;Qp zd~nY)4AeheBb9k)wIFH?8>XU5^?p99XHcU4oTjaILvRV|eUJ4k93G#x6$`CEM5FnM zj-}Q5h~gKW^Lt8?FMPF|KO@flKKo&C;8xMANbM8#R9RxGV1VS*z>)4f>dA&Gx*f*T z?w!@ar5+W|n{3l3lVQ&Z;tH2et|pN$m8I5Lk`5*26*WFL7ZUn-hx3&TQ)Sr7xVQ`N z#JeL(;et!!y62HVX5YGbt~$Cnyb=+0^#Q+A0|78U1npp3mvK4c)7v z5zYQiX=TJ1`SH~VQu!O%121DVGYykWUmYUcd7h+^aInAqO!V?Zpc49GlxZn7Xbe;2 zL_@FNKQPZ0rBAg49$=I@98}xzVVzT5!nN)3lDdp~`9gV{YH|#N3-?7-I z?CEnYf}hY=DnkNx(^VAZVaZ8Pz9PKP{U@}B;2&yZzM6;*g;e?XCf-q=JEXZ93H=yrU<$6LzZDhBdw`)`7gTPD*Bve6jQmjbY&tSHEl+4rdiEV? z%+$}~4$1HVS)I-?QdW5(5B65_m@wLnT&pF2X(K+tWz;Ze_GCW{c1&I=xO;&oa(_x_C$>whZ=m?F=^tQdc36-ti z?o#p=B%LutDA2yik|J#By6u zO&XI?4KcgQs@rB;M-2i8;hLGTeMb%rhrc)=9eaTfIu%BWGKS#PE%A+2AuHb#650mN zI8^ZRz1ddy_AA#-gceK|rev_(zUh51p*?iy%|Mk=xv`H(gohnOJAO8-PCfcc=t_@d zL4x^ z3~x=XQVzTvJ@|;;aL4=FUVHjizYwtG5ey%T+c zG?*xErC;6(z5)+9w}Y6{tvjilCeepSsxpf%F0w@)gnwb0!|*(UHOgeyCcCX=X*WAB z2OXMwo_P9yvG?9_O>Wz|a3~Twg7g*?6{ITCOM)Uzq)IPA1*8c`?}Q?~3JQwSK|q?+ z0Me_7NH2nvfOLTbDFH(G-nI5w=d88QzGv@y&;5G-cz-ZSUXqN=ImR=}GX`Gw(#?=8 zd)J*B!^kL{E_WX022R*Rf;Vsd;F13)j}zYl|7c5leFQ%*PI#Th4%sT4sm)P1|7r-oZd>h0i&BZnjzf z#p}HJl~3fzh)!^;nX;2MKqZNG=X6?{J*p&PLc%O0O88;)7|H26YcRd4p0@NFjhiLQ zV|t%osHlc?QAuIdfG@55kY;56gOrf=o#|lNQx?=fVPun~>!OdRh2F-ZqgR4m`4zgA z%61_wa3R%@SKDF(UBvls0r!R_2JUxXkKMYplg?9h1K>QxK6+^!f$$DBdmidK;4k4L z8i`X~FlkaPb@amXHKLo4?yS>2Q=}#a>Zd04Ju<+i=>#e15 z#iPU*1*R&4GJRYhXuN~S(>kubQ@2H#ZEC#gWOJszf0XlrpKo%z;KEI5N)+x<$`}#KQICHMG-4wVA~7TTDUq z&)N3pw{(;GcXkioH)^H%x}V&_rl@GT>m^JG%Uy}@R2NO1Q(_&SN`8yf{X{~-rJ84- zDN}`kmM~>SP_!W9k??ueDJ9CKZDQAknPAWYb;>9>2K^)IH|>vJSk+MG+`s5l1yefG zAq#5GHN%MmgWcDg6ePwZr^owhKO&R8o?9OctII`S#-q9Yn3%>L)4K+pSBL(CY*2xI0)owlT)B!#eF*OG#R7BzU*9mD6Gt zCxe{?$6u*Ub%N-HKdATV@j?+Zoq>Fw7=reH_$`oBV6;2^b36++;O8=D?u{3Jmy7(z1;87{%lh1%{<4mjtQyUJz9pjLK+oFqZSv{#S6ObA(afC40B7C(`+?jWI?AE1aj?TX`TNe#UFjL}-ogQ)unh&l*&(WP44Rqn2Bt>+7y zPwC|(%ch;|&XgQ#VktZ=F>WINLif@+OS~#e*>dA4*d6ZGXc-3;`Bd$A)rA(TmNfiL z#Z_VYKqwHJ$90{~bWNTQ{eDt&42Epd^qM}5GLLYKO-z?g%)PevQ(LRuaoCPTN@+;E zm1h0<`n2*}uev@Qzl_yJZwbWR6kuj?>z>^HQW+p|$GK`AnEE`ug$n_6>-n`7t}*#* z(siQ&+M-c;NKuz!Xj;8fx-OrrTMQ|SJKzLDMejpAoKiKART4U zN)5EnO~^r=_|`hzF?OI}WjU{YA?p?G-7PTB!OoT<K?g*mx^cVodF|Ez_?(7Lq?q@;B>@w66twu^o9|=-BU}*bD);GlNmI5k#b6 zPw9|5KeB0WqP$+Zm%yl%p!`w^4cHTzkyICr`cqMuU9h~pGyhRx?9mRVt z_^}=ZXRvI{Qh=)!S2Pd<=UQvISTm7bPi&KTw@Eo&2-4boeTs*gJ3F(s0P{#=ha9Jj zo=?oFOJ3}m6Rn&jg?QK;A2VEj;`Mpb1kytXo}KCP*j%sJdE6G!LFIi@Z58`eh3Jrv zdyl9)z%5HB1+|@6CcIMc=rFmP@fh*SN}2A0jNv_!BqNA~7bZX=3fr%Zv6-kX(s-{( zk>QQsxP6Pm01-mwimWG*|B)%Tw1?D0cdD{SMaZp7@Xx8`%1{OryMfEa$o%)0q$}*> zM~o-bro^sOm(tz>H-miXo;mYicDl6L&9JFV9}_iSnN5Au{^F{_HU5fEv)6%P)^}k7 z5xf`u6DsBt+ZkWvkXW!@gp{l-&k@VFt`g(re{y~L$N9EZ7lpOv$p99qZUs}kh1XIi zdw3X!YU($y=1p3*EH_yv(g)PmOPBY`58I94R8lNqoyXmEImH&p4DXxY!S!zwwuTmL zgFz%C!7`B;iNa`{cg57k&_)`&NYbVwO-6i1SD(=LqeRgch0?r~WxWBm={=(nIjD+Q zW*U?*FWi#Kfrz)cE={{3ft4#-uT3q_4kBo~A*;^}zX+iW67@--@sqI{uKgDO-RN$3 zX!4gfOdpB=wO)D3Jv->7b<@)yrY_G`@MFzMVV7esL^)Xvit?V9v!$d}Z(Aw@Jq6k* zHd{^$b{>1at45G|OX`^u@4jwI*7J0V`SCuvxR;f56!eqx&Sx!+X>7eUXytA2#=mc?OGQaBRW=;~ov;AY>% z4jc}OiTJqC{4jM|?sd!fJI!m;NUBjvZPKlo-lB(!beI%a2jaro^hDGSSqK95ZJ$P5 z=6dmFGb6f?P2Otz_=0W#9QhH64O`Hzbnt%q=2Tff@AJs*gyhcJF6*r&gx1ZN32csC zrt~0;){YKEGwxi4hCx;%^BggmGv2o{KAq$pe z2gbF^BT!)63t0600Tbj{aUcr<} zo?kJmP&y3`+-+>C!Pw4NrwE#`QhgInN5O*V;vyK=@gKU1Y>F1MKZQd_A$y6ZNp%0o@}amHtl<<5jtDn&uO`-gA?-VJJpscnjGkiq20QfH>V>qd(ayJ+OP(vjiQy&Z?qwt?cGs_uQ&DK+1o?o9IYSY<1J*Yt5I zF{&0|wLfmN-yL*v^7gva)DRY_hRJw8-=QskqC@80?I=oP$4%2%Kg>)8J8!>5)v1uG z-0@gh&)W0o!!7xSA4|>J81@~Vu^_M+Hd#UMU}U|tjL)MktzVt`-Szg$K8Vbc^kNZC z2?GunX`yrQQw_fyu_&A*qru-VBydGV_+sy8Em+j{Yb2FLWr1t(%h%-)rn!nF}u zE@CCN)**|ZAqNp7u9J*JWjO(oiCvkTXs?DMN52^Ow5jO;L+4dqaZjqRIv42@gmNOQT9wp<@<0Vop$^8vbpN)9dR6Z!%>L6(!Nu{;|pX zE~sxaT|t*7bZd+8SOWBgs zB(g{Hd`JCB@LOlE1&}n!<-PV_S?93x8V#7caqZc*v)h?4Mj_qPG?ziX3q`Upk`DjHhYKl!B z#9_z^{BN3=!Pon^DjVbT>}jVYQEGz&AChjQti!hmMb-a}Vje=l=>G!>MhV{^;S3Y@ z!2jMoAg1={)g$BK-aLMBfaNXeLT86$`?VJc1&U~czHuDI=hei@fG2h9#aM?O?joS$ z-s0~)?DRZc;=R60MFuE%fqj+*v{(7@`iKsDj2=*D^DaO(LU;b>;d?}i#P5W2)y2Zt z2at6Hm1hA-amcjgG8Yeao)NNp9&H=#R5^Ld3RyAyoqpYg1u9!+XPhsNm%SNr)O~(* zqXdm}#Ue!KCi0_>)$OJB?!zNKmls$lUE3i4RC?3|%QIgc91*%Qh})}E0a}sEOhJXP z3`-pH8g@5bt^QlJd?_I!nJ6qX=eZqSD6h;z47pFuwF7fRb{A!UjLG-sqxL~&X zv&I3wv0VjF*Zr(wajQ@&i16k(k28fLJ$kx_GSPrS4{_W{7 zPAB0=+`T5qqS-yqfg)*uXCE^*6cC8MQ+PqW$c%f@@qX{=E6+RiyN=cQvK?#gA2HB?JUk3EobGEk_kMHPvK`bGuyOg}F#DGZ zWTut$o)W2;AmPH$mSG`T!z|l_e(a)KyxXetR6j{Zuxv6I?ha3bODy^npjCURL|MNV zvvZf6uld-}+fTAZF2&ustdxQWx=uL+D52wl1d#+RI)EokW!$5U@9O9e^(F8MkV7f! z(dI=q+xl#pr2sKQB9?BiLn%WeApe#;jas_hV-usy19@fZbu%-xaX#vJHW$mHQ&sa) zWT)25tEQ?hB&=zRXXYhI5hx||6;q$j=q)JYY5MZ;RnMF4O!X@iR`nS6oAb3~=EdS^Rg! zye`^VLBsf<|1|AMe%SXr*@<7+cOn0@94VV75mZ;5jnio!5kHj!4(>Baj7eGg!B?N9 zx~FgI#rUVi*aGqJclkp&)dK8_li7U?Q)&g`k;vR!$H=^PL*|^cKHaOMy9W7Be!YD@ z1DbSs=d;q^&0gvi#CG*~PIA^iz{=*Y|#>SsU>MrHW79L&DN7E|9p zPq36_6W7l(*s)I_fjRXB^|5$*4ZHm0gRxKg10o!D51_kY9~Ry|b(1x+f!|n4ywJ_k zqbYg^Bfm1=(dT@1_s6FQU-Bp7t#dkU)Z9dzhuP!-8b#}HPHfIXU%(~wOm~sR8#(Mx zBd4aeCI>N=ACEa^q<@^hIh}!V6TUmT2o8mIm(0;2Hw4Z#Rb3#K)nM-Y@Bq>}pD8;| z7mdFejb!tOJ zR{;6>{@1XT9*k>Zy@CD;6$2&?N-kf@kxdY5}h}!YVNqU3KS@kOZPIl-^Y~a1uo3` zTcS_joJLF!$G`Y>Tj@ItqxRl+cg*9{QGy@QAPn8w17}U_NHQNp98_GGO+9(UWbYz! z`TNsskh-}Q>yaW*9wHt@x`{mA>Fk(}?@D9%Hm6Xf&ddBLL^t^Ieh)4XRH0dM;WVSx zkyZX?V6KK+ba7qY<=m;PEZdi?vx)bL+4heo>;7AlhyUe?utqO7luj%Ul13iD#7(tc z`~rA4PDmhTy0m^|RAThf?mK>@<>Ks^T`_X~mHRO;L3>W*RjTlPt?HI|S_6@6 z6GdqDbqOzE;MZt?LayERU;z*miv7?jQC4+F?Qj~LUBYr~6H(%F5UA2Kz00}UUmtC4 ze#%O3Sd>jUA?um&8h8Zyb#4TB1Q~5*ehMPaZ65Y0)AF%x9TnPMjy%;*X{!=LG^#D3 zOU86au0&iz`8!vjnWCia`<~rFvtGW|^D%qnZXX1W?+Pa|X6)37Y`qLtUt;{L;l4{G4 z!Z~|gMb>H`rA{dpCvT}pk7yASBwOZZu^-3Vf^Wx=bF655@g?;lJ5!sP+-EBFH3_%h z%YxLTnE;NRt9N5!v)?4 zV^iaD(za(^h!u69*3eBO{%lIwgxCT{%Gl!dRHGc|T0@BS%-(kz%2Y@BS#+?Qv%D$9dnKqdM*WS(cB z$UP@Rk2ks_LZVl+n6`zJRV;HJxEkfgNIx>pRZbA+FgX8!e~&mz8D!g?V}IU3xTw3p zxHsTP*e!MKip*we55hEAflo75H$^v5yH;bJY_h>v|8D0{otVQiBT+_?9lKuhie5anUhpR} zB~cwEd*^wh&?I*Ex^q+bFSVWlz4nQ{3K5Qbn^8qJJ_^mjZbV`0+-2Yq36Q$@7j!tTgZM^YWH{4kIU*- zERzKeP#$oAI&wGsY%2Av<-4Ht3^c3buXm%^;24u{Hhe^>-UAP?a2ScIWHuJT^Tek#EHA{+dN#mwW-MMPP5vc_bBBOR_XKfb#8L`FaE_G)%$E^ ziKO<1hRErbf;{_Gt>KEMtZK6(6`r3V$S=IoQ>6AsracZ9rUFE_{9GH2Qy_XTA7=8|9*$KGtl8MTZy-qWZFTQqrc<1fsb+G zH&wXk#<&H#8Hrw6q2ft2p68G5DTobEF+E1sB#7PmsYVhL0|8?n&8<7(r4CSYrU{Af95AJRnHlzeQEnxG`XM@?rqOnCbg^+xJxEd}r8u;TCVqbk zT6_nf!q10`bBX0jo;g^HZD)y-2uCyHX)*(9H|m1Mb8usz*v7~|XPx<&EZi!8n(n*l z?aFK0Q=BQ=TG~t6b;Eo8f_)Xj9-Go4g@bS8bp)EScCNF*;w`c%{Td^NU0&=-?$Y5r zCQ}1g(XElSE)iZVrU_vMbLMQ1?@M&Qb(0}h3f3TY9Nk}+&!XLM18AcohPb3jCbT3> z6eW^8|7&>F1sAt;tOG_k+B;b}*Bzu{%-XWNq?0ZsW^)<{X3?w}AzPgqhdtJ}TUVRv zih#POK>GC2++Yxhl>}tKA?VHmlNs2{-cnk?222kzi1WzIN#sgZn zxMW9ueU?ewIxqBwuIM|hz(XrLk?yJ5VDqT1+Yedi&Rd7iPI6`{3;;XL3htxYX&OE{ z3&(n^H`KeQr8@G@PMst-NVwJn-q@S}IWhWVy0`FK9Oa|^lltCuBfD(s5(u>&yLtT8 zteo}Kgtiii=6u&=x<`tf26Bm%cFgqJMfNQhhL^{3R8r4r80Xqw0lnmYJpUr4XZzcL zhqw-y;_uaWBKB?&z)2pKN(6F^fNP9lng#s(pR#1H7pbI0ajGZ(r8YHN3wn2LdRb5lN+ozn(w^`kYyVqaZHH2l?; z9%75gYE~iyqu^|L>X%$2RCSc-Zqu0t0y?p9ja@QDP~+V?GqWCy`e34u&81l9nx`;W zb;1kbU@s{(16`di8?k8BY+J11&!(=&N#!U%IG|r^bTg6ZpDBA!K6O%l-EZ_sfGBE9 z%rH%RsHR_??QZqVv??19`W6qZOql~e2{Q!j^Jwmec{^(0(zW(aFNGc%f+sJ!8zX_N z*cbNjFOr!cjS{OUD!sF=VH0nxPzXBva+CY^)_OZIQwa(G8-_Dr_ z(aiXX%WQ-0H|wdPHN4k+kxhI+@@pT*j&KbXE6gI>KyHv6>!{P{Uoua-E+s|lwmV?M z@e$%?bhXYdo7TPCs0ypmHvMut{N0`1Z@|O_B9?xUPmOg{~xMZ=nID12*t)0uuRjdWYA`GrmN{#V%{ zuyCIJ9P3zsMWI6w&1l(!&`_$BiG3 z{>=YyLiKH?HghP;*6u}bjn_=vqtanT#+ogN#t41Nz0oH>pW}CD6f48_r_Z_JFJVhi zmQl5y9CH(tEHKu&6Gms$t zbF2;-U#R%zE02?AE8XDEVn->mU7wkqJI~I=+}ti=gt$2tN;pY&Q7jfo`` zXNlpqZpMr+t@}Zhlygn$sA%)PKwHf-TfLfOjLWJrEM@8WrEL3_ z?EO3P2d4%N!FKPN;aeX9!!t^nV>|sAX3Ma{9w?uu^LEU|E4GtfH`5nd?I1^2g@HB( zAAXx3umMy=mS|^ZQ#K}~yxTxWc`86h4z9>hxKn=0K4oREum=uG2gQTxVeuKe$E>N+ zPP$CJc_0~_qh1WCw;G)mv3F9?ScN`Fae5jlC?u(ymzYB$K8Z#|TyB)oMh#pnr*aXi zjZ^OTTXl9f)7K$&aUo4znMK8C3x4SNO!;!J_nv_;OmVp8HM^#i`iCkn*2i^qYJJBq ziE9AWTc*^>PFCT15U-&$Dr(y!-~UGK#}hxB5b-KAGavukO->x@A@Wgh<1OJw#$Dwl zN!k1xPtQ33b!S%=EE#<`x+YlIBjY*lKzY->rAY3FO3)Wc--)Yl)5&&yyDC#2Y>%g& zs4bJipC6FZlB)Br)E3EkHxsoOD)GR=^bV16<1+DX(31tC^evYFKGeY7wOPwGc8l?L z88HAhRURjcIcm*KQ>igi*;z#}vKlYxyl++HCl)*v>ofoWZ=RKtFRlCX_d8W0L2={- zm7}E|{fO%I1FwUmRj5T1z;asyF+Gj}b-(H0W~=|`*w7@GukJQb|K&h8jc?M`e5IfT z-5a^D&Y-DudsJkW@sdP$z8jP75b>?HGN6G+ZOa=g+ebo9rDY4%pdw_<6=SqteDvDMxs7!$s#NQ$5u2wwP|!yNx18=@--@HgRf$) z+jRH#ikg@c%N*F#;%q|}*^|_S7z{eg@_nb(wwhz13Y3%Th`jamygSno8TMX7Z@Zj% zOei4+pQLdDJ9q!C6V<;pjNSZ=9qZMA)x^ku%S!3Uyqw|zo2_lwJKzl2<2`xT>~IFU zH@a^uAOBY`&v;H6oq>#(zvi7cSZnRtGN%U{zYE<&DE-uY7{HIQ_}Y-8owv!60w1>g ziHurZc_3|cxONMgr_c@ZnqYT|Nc+t@{5<_9@37d?$EdS0W4N((Nc`i+h)tmb*H5b$ zUWp383e5fvds+Vmd&z!>y>W;t@+EYs!fj2b7(U_ zEB&3*nl&44RqZzH*N@NNG`uoY6TQzg_IRY!y2ae7!QVqH&ZCn)eJD5h+CaX28hfba zK%uF+Uu>la_c<|vV=`VIH;1_Y1x>r|F+)*$?pdATh)Fo5@br}%3mzP=56`dGSF1#4(LT4|gM1F~X?z32N=Eqy+bRB?&q?C1zEwEeb zD_BqU;-B|*dSD!KyhSn*uc|y!8?HRI*Dp8pHv4a0Ev>*lBN0t)S@X-rnQ60b(rbU9 z=J)+M_7^q;iv|je`vU4`+z!@kSl1(XB>-S>KSh1?@tD<^&FB{VSYkR&nDRBFA6buL z$qPa@mXMJr>;b|aAnXCc9{As|2b2}cnm=!4k{56%^SG?)4J)#yL21y!u0o^?b;o!%%*3cPjZVvHQ62-FYQ$~`S$Yg^e(Xn<|f!x ztw!DHjWKFG)C@B5w|?iaC7a-t(N4cq1=eC1c2_Tv1E*7Y21<(Te3r!()aTQ5dL90I zld}q}xnFo8F1&>sn=nLMa8U#%_MQd`Nt~mx{pQJCVtv}(UBQb#vVs@r4vQ0(k)zdrVlH)GK;y0x4h3usSzvr+^7b7tH6^Ld#UdVlq<RpNA@-i zliaVAHC}wUuREY#Z0Dy^Rn+({%_e~NBy?l;3J~$875tiy1*3ev_Z2$GPGp|OHxKo0 zy0;jf>?zSGYlI&*F-A?Q@r8f0n$E>A0{2m2$2$h6x#rAxYb2I_{Pqb`KuwQnEgCvYjJ=>S9uNTbwYu= zjWE5xNEc`7jSKWqRU5N{m)W|0$ZBf<#>3H6{C)U?aSf-rwEB`+JMu;@1BukZPd<`{ zp0AEnc;@W}z|p%{5y`$^1o2a2{M`Cl2WFZ%xilZToYLRqq@n%vso}=Z55)YrB9dyv zIjo_2(<=IF+{mijbjPJ{`(LLkeNh=Cx(Td1H42jJ7cDA<4xZP?`SJ6H?3KpSMF&xi zeGtZJ783hW6zoRhAWS1Oa5H%Cis|=GS%e=SHSC5W)7~u0-QnRBjZvYWx-GlYZIvYZ z)8I1pf6p;^=g8c0C+9=63ksmY-;mB0B^2XNHg@R1_U5Lf` z1YkJk4gK;a2r70nqW&WgqjkL*xPGNFe(F@+{I@s;O<6&0{O_pJg*b3(Q85M@?5bZL zAe953JFVMP9xZG<17+?`=fO_*R2;QpK=-JvNVsn3Kk*Rey;q;S*m<|ICf#yB`IhtZ z>Qgl~2_PdCdt!kgA*H$LM}O z{%ebKJC+hC?U;vzvhO$kXu0BJiD%d$-e7-X-?(KoSiAr0eiC@h2C<+&7y}0bqbg+&|xe@2mJ8AYU=!NkAW4IK0dbv$}zfb9$Lsgg%*%QikZ^T z2~*Pn0%)8qHrpPygM18xTHd$z_zzp53r%G@?^Sl>O?t%8t*5UCT(S0;CtFLscYVnC z7DwQ15W*BR^}is7|3Y-_7|}Q!48`FhXF8UHylivv>$>IX7-v?+UC>;qCLq zw}-dSKsEcmS0?vUgh6ucN2=pIoxaJOnAo);q8(dddkh&uJuK%IPJ8E3)W z#G}hoI1fPpZvRj(*%b0_K0W+8)2z=K4#j2pZ6E(<%gJqWqId@CyWw(t3S<}` zSLi05ng*Wp_1+=@2Gw=9ZXQ5R)0~3(Iai*N{l+q~XMq(rq@WQun(| zF{^C7g+R3m&3nO@z}$$}3t7i(dxIzV--by1#{!sY&|rx*$pixOIa&9BVUUZ7e^~{~ z5^nzwY5iX;x?Rzz)KMRno<{F33t36YWU+6XH+W7kZ$W1uIOzDjU;0m=@55ssK72&r zO*}x)&nv;sqYfJKX4k#vE{|TWZH&%+9)KA-&v|V0LVXADlhk46iehUh0TpAAEf=2_y^qcLly_@S< zhd3RufwEgGx?29i8Au8G`V55VhWup(^3*pH{PP{Ue_jx7|BJ8)qWfbL5w^{r4jJLd z5VQ?J(-N%AAIgznCjO8F!Aua$#P2wiU?K@7l3*eUCh`x%KroSiNP=J@2_}+YA_+k! zLcER;Y$OC52{CFyeE#1v6$EHRfJOvpM1V#FXheWU1ZYHnMg(X?fJQ(83jr1qU?Bk( z5?~<#77}0~0TvQqApsT=U?Bk(5~{fWsCg&U8WC!Z2(?CpTBAQIYzVbRe@Fu4X>e{l zzF;rNVz!ip;`EypEsWQE6(=-EdIlOAe219FsQ!7ONP$2Pw#%k!_C|OtXy2!XtHWX* zHI!5Yx6t{@&rnEcis^o?EgN3KpHL%A*IWP0Zi4-J0r~+@pNz5n8mqUlDaGd?UL0#* zKEoKg5KA@TEfRL~?b(i>6kr}d5I?Tdty;MJ`7QkQ{cxt?gcIr4Iek)4D-};-4_B+9 zZU`P2W@B^|Duw0Hb>(b)QOA%HpOz%{;NrAwFR-3{wmsla~(CwU?T60U4*Aj*M!vXQF{lyu_IZN73}e7jf3*mR+$aB zcOaZbkxWh+cV1|+_L>J9({+b?Lpgw<)S^s`iCW`}W~u8=t|!IrYb1d?SXw)hvfSd0 z^t!CvsoL#AUz&pVNz~QS2Bdpz5@7^qpWy8O183iIME)Uaz;CNeJj3DhE=s2%hD}Lw zcx-9(xgv)LK(PMTiPL%$;vbz{RGLP1E_gP77iJ7=A@5PG-w@bhBwEfQ_w>&Y-++Q9 zEZH+-d3{MSt7a)lssKG&#q#dH>@V#YDC-#MM35AEddXrKZyT?Q3uwF9ptcjN&DG9Z zE?9<+jM+N_v0=UDjYemdUF(da`;~Z3J_ThJweKi$jQvkA!5RPVxlBJ~eF2`QH|G74 zmdor~<~45579Zp7Tg$3r$=6{mnJ+iTy94ylDcI`vk>1DT<4=q&j2qE&kIq2k&?Vl@ zu<2kqQ^6Nl&&4&I?ZSzLaumyR{NgS&{3^W33mgG4-T0^UZ<5bJG7#i?CI@;KGUt%q zq+a8#+kR@{I1cpxBm-6OV_0z7FgsD|^}N+cwW{QUTc?vxmiFnhdYa+El)&V*|Nd1D z>4q@N3!|cGN-XMfidOBaD~XL}*R++7FJw7@wgq2dw7ckNd}ME)mKCcYSwByA|N1hI zrXSsSs<0U?j8R<#&+4PS;!eMsZcXm-o`E=Vj_=UOjx1^)_$`mRvLXkQ?~};hFM)H} z+>9q7S?-FQy|~K=dOQy&_F2zB zm&6KG`vkf$jJ0oPN=KI?D+a6SKHVPv2T z0=Us?p2i^3u+{#M9`<#%3Ay@;^M+6juv8xH-pLST2Bo|c_Et=H%K_6dSTbAKy415JbR>amE)pRf}NZ`qx24;YhuzhjyG&}_El z%U2IaXN}!jL$axtv5pJgI{l~&p<*`D+t-yv|ID^C*YHv5IRnvB)T1BgPS3>^3g^vp zHj19!l=t839WE(CBf7chy4?dqwQp)nByFW=H62+#-C%s{eEc-9i1_f&|BArk`+qxY zk*Q<7QRHm{@+)K1Rpd4} zfg$>2-rzfKA}&`LR0y1Awf=YuoP~#Mt;t63hlu_>F&Qqm=yX93`*2ac$sQH!m35~< zWtSNb4bN{%hln9agUOhnG+A&x%3YW zxuUiOwVJ}r&s8Lld6uAMNPeI9m3-E2z)k@1wT z&W$t)nMe1-j~%pDlp6!$|6jZ?GlSULGY|^{HfX0ah|ekIKuyH`usK32C~khX;!!Cb z8`gBR2hQ9yT>jym!7O#YbvOS>DU7=%`}tf$)-(LIk7G3-vuHMbH4#cK)!zj(t>d0n z?2MA0(qVMKxx>ngAl?7r^#D6#&dq@~tSBLyxzb$Cns_P>6F@9=>42%wgLu9(5IxRy zvF<4EL~V2{tMbm~v5+mM!nmAe0UzNZ8sVoWyXfC7mAqOk=GJfq3U-2od+Yxful8TP zlYe{6IP)SVG7={Uep9+pcTmV?{JNSKm=!IA5cqX~%~(uikqK*qGr!K}gG{F#$NNM*ZQ`bRBkXWN;D_~0#?f+|dNDV#=|y_c zh9?ZF^{j_XhBGLd?Pj;M`SbGXo~55@Q8py3Wkbi*R(n+N=lOPi@UX|i;u+An&qU)q zaU$Bq`_PqO`CdFgMve-SJ8H5h7m0iav$%PW*IzX6`sE;-me7xh)IQ)&`1v@5wf%Ed z==DjlfL$bxd>0xnQ-#hqu)>RbD+D|?|N}bdd*AspJp&e&ObRboCoSNklXwQ>8 zwe0B9Yj^?Sg-f)|@)*H-_#l?r$>3vXjMsJ=K3c;e_9H z{-W^+^7#LyJc!S;sqvim;W?~$1LgB^QLV$SqB3OXwUMD;0bPNx3uW!#-LAKG26GlM z?G*%^fiT*5EtYo6gQYW2fr}zH#^#~zyBXoy@Oj)1#QOqS(4ok)F)q zvi0!pkLrhaUdgE+eB~z|U|MOk4fl8hA#VpK(iCjBdaj61GF*`8ykS*y$F)_UK#^R! zmq}w`{B$R_g?Z4acz#Yi^-$0BN|$@pUB*jdxP{etd^3oVXk*VPEPxGtgh>mjg=`II z;TQXAuSrdp{>*eda<$2S>V3WEdIL$QmQN3|(>kpKFog2D3$c#H%OgBUvyVP2ZgaX& zleWQ{`on2{lBu-{jv<_C0d~d7>^_DmwF2=-WNxlwWL~==b52^H?$yyZ!GEjkVYbu2~c0uj~VfYT=o)Z)F!h zwLw-yET(Eg1_nQ21y`kT=e}wAA0bTlD>yfIP^}d3c||FB{dto@?~JcwB$Fvw*%Dno zGi{QCXajLG?*y~0tMncT99Pv?TS9X8ho7wAox|0H8lo)^qtuNS zmMX0C@njcyt>)d`b)gt>DYqRHn@7Z{JhW0)31M~8Od0m}sQL3)J&FKzt3|=nN88^u zgbxo4Hd*s+2DfA0jT;Pd_(%`RWYbyYHWi{2&OmXi=*MLRo6N`|2gAE68ScgHmwey6 ztP3@_39b4yh6>&*N&lx?fRSij-{^G!#iYyrd}MenN3_V5>L!2dWEG)q;yjT0W<2(o z2>wR#9DwTx7eNMuJ@9|t9{6W|6F4HfN8w2-=(8 zeA!-Hld-6RBeb+sjFme(W;eqTRbGsWzpG6jAl1O^4PL1qxeTkX=Z>KxS@W|Ets&ZE zG@@HbjP~=6Sq>E2Wf{TUA~Ot>U0QyUP;hh1-;?{*%EuUx098MSrpkDkOWDIlB%+xS z6M26h9FrLXI(mbe3>R0>Ub2l5kKK~xh==xX1>K<)E3QN7`W)yf`wP!^SQ5|9Gzp_- zj1Q?@BHhGJLTP-Zf-jHrVvm+?=FgaXH+N~FPV=Ur3_sEP5uxv<<=Ug*yT1qFoX4WX zV{KCIjbvB)Z`w4bj~uAy>;Fp0wi^w7O0gP-9Rlkva8WLG!l^zCm$yz#v)z{gyB(G5 zV>a?3J&kuU+Of|a471M5(;o=K(SfbHI>O6IujogN>$t)|r+6G@qR!Kj>RW(RpyMK` z>AM17k5pxLjt1}2s!Ae_^I(q3-di)Al%Rb9!CqludAUUhsl`mRO$+{W zvlU}p!|Aa8^!tV-7ckqZ1UOXw;i3yofav6QfbPR0iapQ!wjw#C&tHe(iW(kJfv|@} zk+mRy1E!_a)J!f6T{ur#S1R;U>x9TwSJgbi23{GXVvb*X?_^+(L59WsN}s?A7y0D6 z(9PMm@KulHrhZmt9-Y5+*-7XL9jN|X-OJc519CYCA(Wx@rK*bsqD_SEQw@uwH`vbLmf zdo@uJ4+5p?#v$>p5Y8vo!=8a8y?z=z4OOonzOmmR`u@7trKxb^9LWDAlal(_*8VBw z=>4jsC{Z30tA}w#4{^P}n3mY#X+>~c0Oo4Q)#l>nbo+Vv#HaUi`F1&TrO-C7s6$4j z+kb%kYk?;=Ct-E-jj`U!WBb=GW5|jVQk z!*D6oV2avCokxmw;jLGxcFY8veMp|e(=}I!If!R;nkB+tDE8TxnEX$hzaE78y7%?^ zfer)&1v_P*H6p{s1Mdd-PI_G*yh=v4s@S_PQSw(K`xl>3Vxx9h57GBU=?wG$cKT`v z{2qu65G`B&C4#tH@$Ce!{$>7v{>{-9zcSF@dy7mfEy7r<%Z)i0snG47_(jGmulUZ- zdSC2S)E))bZz~AIfPNt;0}Ns|a6X9ciOAa+%7^#d13rB9XS5ns2$5EZu23tbWAc$w z!enL~C_EmpX@lzb@AlL08*c5b`G>(hIC`@v$vD*)E2vb55=5Nt?@N;x)CnY)A@z%Cg-c`)@^x53U=c1Bttgg>0z?RFxsql&Dpoh^>*cm8*eb0ib12_>6c0HT~rU%qI z#qECqaT5E)FZ0o5exP4xAi4lfbX_cL#^qv~$(Z{0N!eK6*DgBEF!?OMopA$3fg%GE z5K-_s;eR0z^|z22&@}NMw5&5q`$vXUk+wo01+Vo8azX?+WIfG>P4BgjWTFs1!9di8 z9kg%y-|P}7pR%YY6&B!~?Sr3HtFvWh&(@ugTbH!;i9$b1>vzP28n2xflGTZEZhx2R(n*deeMioW4Y|9z;OTJ)A+++_yt(-%)XK$ zcQhfi@c+xu0wKJ__^*BMmhw2Grn=aJVD#H6ZFW_s175jm5N~&X<#+#pd`LkcrJ@Z_ z@U4ZgxesP-czQ1(Jo7MHqMipf8iw5h!JQB)cSNRZL$lewJL}M`!UGp!(a9G5B{NuA zy9$+;?=(H#-Pw<#SF8mDG9%e+FIxxH@0a)E&uaq;WT-gj47AV)!C$RdPbZ7deXaE} z-`JQG>g1H5fD&Niu5kMNRuu|uhJ8GPpAPx{N8o$-skMS@7{NZF_s8`Q9v%XO@XLJX zJLec$J1hkRlCoMY{jFKGT^+%OqJd(gS)skV!paNj;R&#fm0;%5@z z@DvI@BO^s?2fK^9&2*PK86SZTSX5|TuYZEB z<~{s+zEHDNvN+=(-9L-1Iqg3|ZNr%u&A_E6L+)luuStn)&m*Bny&!E|e7Z5+%rBXYE?5IJ6m@&fTAVGGbsnoM<5<0`5==;i*C*E*Op66g?1)Z0a z`pttlt1_x?YSO6P;hgsbS|MEC*YQy?Tq50c_N;0{X*j3uCn#liG6QzDuWSW=JA${( zopYBk9mm6700doCg}H_7z?&loUWYdYUdbjbZ=T}o)Q=ayCI)k2G8shX&I;O&EE*?* z42^oiBv^SsG+6IB__=sfT4uPgGLfJhNpnxkW`MVz5iTM$-7hR`4!NV!ANpRjlcsCXjB3eSbMzfaG zkUwqI#3?H*@#5hG(hxL4EJ%DwagkcxRKP9|7ck$u=*m2-S%4E(x!~YKy7qE!P~X$b znXq$YJN9VJlxv7H&aOBk$2iwzwt(w3RVP`10y{M(dz(U`TmgpZf1T$04w{745BLG$w<#jky~1J2OPC86{ykE%nzrYWb^eyO>` zRKuCzLdIeaGUs~jG(hDrjdQr&&~R!u7LlXr@)IPtRH=+OU5y+q*plviSRtNxsC(qv zN!;p4(-p!duOpsrvRtm~@j)9Ymt~MLzbbBzzW50pnL23NBxtgs_jL0n~ z|3_59Bt{LThw=gb3^`0h-D~YM4q=T+|4>XqF7_O zTtG{r8Cj(qXG`oINBS<-thW{kbTk?CZx)ugp>1w7K9!qpx(VZB{dR5+bZu0E*n57X zAvLnhB@P+Zx=CJZhm&?6#C6WG&q~snKk-~r_?kwAKxLQbtT&z;yjuDt+Jj&8)XM%G z>#;p2DDP+}+=wr%!!mPJ~w3wm!5!R;0hA#I8a-W=<7I&2yG!yT&Z#r2SWhmrA;A>m-1 zLLxwUw4=aCV8gx$LVtl(tky+J+#~A?f3-%~O;JJfy{O-4gONG2J=i0Pzt=6hx0A?74-dfv>fM=UHzWprPcW($qvm|ircnBe0}mfxZCU7G6)8oM?I3- zYN1!zR2CPk&gqH$;OVd81CnD8KQ8EKf;zZFkyB8fyWqT*9q3&(pZZ=uT1QwKa#(jJ zJ#Ka?i%UO%QO;SpJrqr(r#X&cco}#35YGrbUDYBh|0jwjqHer0RuGfu=fbaHX4jv% zIOX}?EQoWh$D4K(5!A>ePlrR~7~D&?UpA|lUMYEppFj1hM9hnI-odcrhkA3h~9;RDl8;SLvP1AoCm`(6F$MYL(_9A>w zPH({>`~vMi!plgDIE!Gn83@8c}oy1J>>OMqmR85wFH!v5^;U`yj-%m;4;_5)ir z95<@RtEAetd=?j=C0jAR8w*?*br6^`ziEi2g>?>~0En*;AK;z|XKdj)A!-MCSmLk# z1YNFwE`k=g)QZ|**s#dH_ziix833`q%N2aWth8v7;p`HuDh9n=seFdv@Rj~zNH?Sg zH14Pb0)Yf2|DEdQPwj{J-D~@gy*vNnU91m3PHZ+~<7j+#bx8IhL%a|-c_LpVv~BAr zs42=s0$9pn>qCjDKFp5DZg*`_h*P_DuQ?}!j`(sPnJM2A;x@mqUso_&h zya^NA9lnc~loe@-KBn7FI)pigx@hn&-Qs`2Dtz#8M&FgQMl8!zs>Izv7iUtafi59! z8E0nA@yW>mw?ywSZjx2c92xu77Qrns9jWtOl~a6vZgO3G4i+EOmZ{P^F@7;|`yH=& zz=NwL%s3&eiVoH_FK^B8pzXCu>VER=+)KoL%tFZf{vvUad+q-RzV{z1C%V5S=*RQN zZMAQ(EL);`s?s}WS>f5r-JOG8*jD960LuNnD;llGCyNo zk-6@!IE>HWWl@!BL8eX=(sSQLLU*__Lfa+V%xG2tv6M+e2F>wwP0yZKA1kuW{V_E& zRjr>BDV^Fp{&5{fyl?Tv_9y6~jb})Rz!$m9@8dosOQL2O>S|BfOWC%A;F4A)C|-bbb$34b{F@x{u`S!} zo`+RN$rLrW((Gfua=5@k(S-wlh~+X9gF9iH!k&+DW2OxIv)9PoB{^o1JNBy&&thD44jOR}RMxc(pAovxN&K6A?M2iTPK_f+F%GP=AdCf{x ziSLC&$_fJAr2ED^2_boT4yQePGGY<+Hsq)a_Ct=<>y=L>dbgdwVuyCH{-JWa0o%Q@ zn2CUa0kSz~Jps&4TR^)H@z8;?_c-OH=!NlK&G;r^k^QT6|Iq(Rn2iomxZ z+6~kC^3Y7Z!?E(41~Q<1GOjc76TR$*SAu2SIsIw%(NVXr@-zbkI=T11#?tk;i|{I# zK0h=CKh^H3Yq|?>`%;U9$F*ppH$Z4DdL4C06_)|K^71_sigK(DJ60YxRh0)K*xJ&` zHWV0mN<>C{ByjdJsimvBlfg}%?)rsxQ^aSg-%fmO!s>BN=sDa$*)X2(`5C*@vL-Sc z0>jXyL3HXHD~5}bmQU6x^ci;4W&LQq)zI~)`nV~S(T&D$nP&yYjodb^PcJ;tJnaO8 z1Vp{M<+y9vCdT|L5n@FT+w{y!Ca*t7u7a)s*O{OBWCNM%fT%Yqgj;Qx|7IMc{9Q$L zZ`DPDDADrVB$PqcIFTLDB1zP7K2K9k0rKhWJt^M6j$_jihf z1H;`s*y8dP004m!zFUDut^UmcroRq8MY~_As|JQXxDuEiWyaKWm&N#>-{xB^iGWgG z$B366e&KQ(*q%P7^4K*hN$5OgUzlb-S%CJC^4%>E1a4u)@lnQg+mGx5Syu=`#ja3EnjU?I!y)SXl^5VaRBjA zgY6Gd!Rw^RrKsv{Pp;=J^ROp>p1{*;0|RTwb_i9Z?JRl3V?WPnYaM)>=N1ccl?Ob= zQzAOtD22Pdj3~EJK2@n@6?Lm>dvc~HiFY)aO)Rlyo;H1vnD=A0SlFjuxKTchod|)l<u6#a|gNVeu&~-tbI5+ADU4z2iPegFI@$ zrUvb!l~zJ4YV;A{ne3e&sbZhK1qt7myDVnWx@_tGD*b2%Xpz%lDg~V71?ddE6wB$b z>P~9&2i?)?AV2`6ST!iR8cN`*R6xjTkv>m_*7JVX>25V_w4YVVUpRPzxEIzax(+NM z?vgOUnk;R84^4V#N$T$GZ4K@pYd#Wp_oiHIpJ}$VIaP|rKn`4hd z{C%!iGcO%hK1KIHw^-&$+S{tWzHeTYe=f;NMJf$ZG|f^1y~-dkuo@$&S09>}f31eS zb;cIq&8s%ZLT+K#87+V7#ZT#0v1P8 z=&5LH+L3f`rJP?fQ@bR1W<_+9z=xwbW!DRPIS$*KayC0*q#KynI1$f7Zk`#o?8wRY zzm7$48q1CQ*9&>2!W4$X3LDoQtSpk>qD{T3PxjrLh|4EUi!9&R7|=Oh zYyUpjN_@{?F~&dNZzR@}{P-sbEzy~n+&2Vg-(rOqCdDwmIN0@DBVbnss47<)<#Fjn zxb3Bk_r2K(MehoqIV4Wh60V<-J>d&UyTI&W=p=J*OUQ2dc3bJo6{&+>ZwX6mn~kS; zCNo2@i;1PK;FTKHj42w`NA}0T4~Y7o$Zaf>pEw*kkCW^KlvKFA{FXDl17w=}i%fv~ z45H7M|11Q36n4{%1a9%Mbm2f?}V|0X!|C*E9oq zQgK4QyYs)nnmk0KzYpR4$@Y^5#Pxw_)|Z?w1Pf{JC&jrW-EdKAsAHw@qFxb_e-Gu6 zZwp_tz(rxfZJg|^7=P=rt)Y!aK91`QO9TxC_I3m5oN!UL%bbtKUf!HQ5Ra1=`h-8w z@Q_WRz(zMDUqhC|}nf9n%BB`fmR9h7aI)fA@L-nN4FnBc$c71BbX3-wF9oIa z&^UCjg-&ykcMIfbx6l;s_Th)Sz=O&=12faxoa^AcGv4b>xK6MBNxWRnDKCBJGV_-t z9&k^+;(Sx6yg->c?2>ziM#>DUYHorJd3ElSaFrF^P1(x}MKDeOjw$rTvBLq5Xvu|2 z6sytV9v>6BH#Yg?>w!VRJaH8Tl^2?hV9Q z^69Y_>DC_|o%;22|K7;iuXFo#ZogvSR}B1$fj<-j|Ff^S^epGU=^*AhIcM(Z(l%bj6`@~7$gsg$ z#iNGQkjdgO);)kxG6Ws!xkOQXA<+_6lLYAr0z?a-!b348}s?A?l)*^ zE@@*}@cE(z>aR3PjH|in3V0GV1=c(6i3=n<7c#Aw-Q{L_Vvc1XLm5K&r>Tk92S~e= zfhj(q5sLm&#{>44CTpubPDN7#qvH3AXb~JYU?>{w#@SC$m|n)&lmnsf%Q_DjAj<+_ zoi~o;uiKEFZI}by3Z(#^6GqLs3=17DWs{ghV#VgP6<9gSaMfg&aO0ZqJT+bf9PEC} zDK5Z9cNVz2X?NzAt^5Qj6r;mI=y5c6TLC0l8^cyPMAc+o2TD!rNgc{Di*`Lk?6P8l zn{qs>W7$;DQ|`r8;h^+v_;bwlyoy_2*eXJBw-&5Qe}c|&I&7FkMQ1(DS6o>;sv37h z^s9U5D&fBtL$xs-K?Tp}*68&vBBD?xb4Oz$#+7p|P^$OseTn>pnAi1%35jF?H+b$F zJ~Rzt`>9@6Mj%|CS!xKb?od1>0J9t!UU9H%170nZ&U1X>(aHThhXpf=IqRDb<|-9r zC-hIw9i{kp zom6Nm**NcyqIO;Q<;Qkm+tatph>pWiE}DL`7P<7wJHQ@{IoH6R zyM8j3oMt^_wqE^t(y(((%?K1ln`J>B-9u9An1Y_`~glmgBsiLMdHrU9a>nYZCl#B&O2VtDt{mR$xdYbwG>a|A3(d`3~p)t9_ zCX-g6+-1vFFNEu3#o<}Q^&(a?!o=m~*qQ$M%83cu>)&UlCtN`S##@VM~;_F|l&0PKfn*c{X0!vP-_pUOd;+XCC$@t#cg zx(-c<&5Q`_Bn*=4GywI1O^O1F4IMtdT#GAjBmJoqX@6IR@`un{KnnEdkng`!{r~so z?{6y*$AZ|@@|kCAbKITOQXh`m$IcE>C%A5Vfuv)-h)l(tywQk=vdfKj6kiun<`2V4 z$ZGe29H?@t-wSdv<;1mT|CnRrY^8sV3(;GA31DCknGP)39Jf02=z29!NM`qu;}l^m z*kGcGTYdP!XlDj{2zKV6xb-$>J0A6g+B(ai(*cSVT>5ZQ&aPH;57aUMfP4V#n-7@u zSie%@fo{Ba>q5+{T(ACvI0tpS$-U1PGoSbiQ##howL&P@cfCKcycl*+oUW$l?zz(7 z8V$RDI&P^1^1w?swWSg*^zos4*`!zaoFfhvQ}GB)i2?@EW=4e@ldE$Xj6P6)URJ|$ zUDFg6>J@p44qvR-2D(ahEUo_u&53IX(+u5NNjECw_C&`{iJ2$pAc?OFE`sHJjF~Nf z1UGU7sUQ-D_00|*Mo;yd?{wC%X_lNj-zD|Ofc?KwiT%+~`t@^vkTm&qw!dQVR}B1$ zf&a&2;P;%d{>%i^Z}#B4QY*n@7r1NUuLg_V+*SShSYcgFj>N(}wVhcn(AmJn#BiZI zNb)XgebJ9cZa__2>|Sz3+=mlaB5lKd)x){u;x@!Ct8Ky~;SN9#c8S*uB=VPtUtk21-PxB=on08I1rR{sEp^1M_< z)Q&Z`Ou6-9q44=5+7ljd@Mt6bYNFfKQ#n(VaW%jEg4uWJg-J}g+%2=t7s>1y@hbcav_8H8!yLNsqlnrbX5nbv3eaq{b22;NQH~xj72Ebr%{|?q@#DW z&LI`Z?s@;0=9G+K0m-t?P9DrxE2?^H(;~53jb=Y1_$y5KU7s|2;C{{;&?YHoWEt5A z;*{zA(btm1nDcjdTRHuGo#iV7uv3J)5dxu=L`b~ulG_Y6om_>nk=cc;K5#rnG@5*!-UR}^~#VrY?NN86xJ}C|@|+LUDdRZcBT6(rXe<#4_eP*7b%rKQ$oV3S zI;JScr|w-`Jjd!`X)ltJ6TVjIt-Pa-Iq1mbw_8k^1dD#I{Cc+~@-yV~N_xj5%Sm6+ z)nZQwtp__@i1FAKY3d4z&=gm&rQO6tlZ%g2>X&Fa&jk@fY-0v$;%d_>+h4wtCgG_W5Lb#GWR_>j*k$vS5H{(U;-2Xirg3*52NdP1mFsBI(v z=Y*sCm_pL?OM(fBkEZrO7n*k)72#(usDFb|kD?7CK+dM`zF##8v+y8vTEb1k*( zWlyFN=oZ5|V(o)7QE8ETPg@;H>XZW<%2c8II9A_9@KjiV7%3pR{3WS%)J2YWL#qRk7%jf@UK^-&=7W{hC@xuc6 zKaTQxEtcv?ad+odJ)cjVi0Y+THD12Rqutu4zacjmF()l-*3QJ_>21u?Y{`>wlj6W0 zazVCxq{pck#(kir+Si2z%PLu;i%2PTzYBA{*Nr0V3eE=*JgK#e-D3?(whKiyB-i!m z1NmE-0=1Rfo?qXkGMWHKpU3bvchHO+9A}psSBUIHDWK?IV$P^QAgzP+$?M8 zZW+p5?+T<*VYMVaWa9xBeyZ)g+@UMaff=?nv}^c|7S>gNPO+Rp6f3C8CbiM~Y_*97 zxFW6&ZQl}&BHdlzmilgOQ=G9#o+(p%{E+JnshXrb4zy!c{IJDT9N9MRHtF4wDxRFL zpE_sQ{k3N8%`1`qYR3(|Tk!i({X~_an^W42es_$YDYEL$?^7+ZYo-woke<n@M~Re_HLYSL#o$woOe*c6K#Ko>S}U;PVt-<`T{? z45aKXssT@f{bF|f6sZ2HZ!6rgRUDSR^K8sB>w}wMN^;2ekWo!7pZE-*fi0@s32lV* z6_#lhxrbyIqU0g^PeOK65od-{g{OY|5p8W4h=Km_4 z|1%R(e?Zjshp<5vS*+nykE3h^tI!n>w&-)YOkAhWGE0PUsQhU~6om=Zx2hRix3CvN zXWy5aL@K;5q)|P9RKQKKGPa(vUBE_-r5iavs?VW9^q$Vm5so*V*242ca{)_}Cm=yk ze$s>YfaQaDo!zG`|4AWcuZ7wpInA-+|Am37ItBP%*h(_w0r$D=gc)Z0p(E_hAt=A{ zkB%oUiW-JZo=#b9TH}`O#?iBD<`bk1cm-7~JIO6u!aYoy6t&M#LJJDx(;b)RWJdb?XY5lWp z5`Rk0ON5Klr8gJPhCBndsZ>x346DVkHsH2cFHtmMohUBhRlKZE7+B~Ddi43?6q1{% zAB@ehP7zN!ZL4Os==1Z=nd}4`U)vg(EDWe6hG$^=b7_gjwT(agP8#Fg38{aY<&JFa zFEUbnRvjoYNpH$blff-{xFY|Ss7dK{)$hD>Rygyv1XI2N^ytkyg)i^PIvmAxYB}Pd z>9j=Ue-UYtzGz5WBXA8_3|I2pebXfgYm55v_VDUwA7&g<3$qgnMeT&H2-jOTsnt6i z+g_bd1 z$jMWzvcDZdQypL*I!Wy$Sg!Rt@UXd%~40$Ahx7w0c}g_mc$PulL#Oj{>PlN_envQoZE ztiEGYMzu)2i|mvK)Ym3Tubte#Xx9uw9}U*a@e@9zm31HSQQXTYxOz#A)$zmS3FiU= zGxo)MbkzCvu~q!zJSxv)l=?zSmo?1V0 zd4Br>XS9gF7gc-)%7NCJz(1I%J=_yC4Y(yRT1~sc-bo#$QP!>0OQBC8G;`~R2?3BC zV-K$F{&!7t>_0BTKwd+*e%)j>%wk9X$J<*8L%k{wMMG=|#?>fO)0=uIvv$gx8P$gm zGVI^n+jQ?IZ#!e~xg$g88#Us}fl^HLe)T>_sp%jv2JYQ^;@L zKB*jm${b&L_sxPgFR)E`D1k{UZ6Q|9aVXc;^yWytRCaM*{;E}-yTxTuhLq=@gC$Ac zq>;svU9cYi4`0ccvO2RA`Yn1pA0PFyg%1cRi&0Qh>#hO@Wb@7Bb8~OUk-(M2}96hZi7P zZeWMizl1E7V`(YvUS*`mI|d+)j}h+=e(O;Ff5IETVk-;B8;P+bl{MF`o!16wU7nfS z!`R~+fG(N4_3EDk?GpT=tYLkViaEDqP1V`PhNQ@c?=tK?Cc_p_{J;($nzCz>em`)JWF`b|_zRN9A63%+u;??+_$(YF0z z(r)1ia@U@fg>=y`Z)<$dl;oDzBRdM&O`}AH`mh0Fs^qWLRiVknpV+;dSa(cc$!GB4 z#s$)G0ffsA=dGAU zk@WVO=3(Gex)y9yWu)Y6Uvr+`SE@g}nv~z`>zi+m*D5p25+|(o7N$Z^I3&5_rTfWQ2TAwM@I2k^1@p57_YZUim;H{f4ws)c3?oKi0;z zx8p}Y&_qr=OQVwTbZ&S22_h9`V|j$}o<0eVd+H%PS9jqSf2=aaQio$KgozvJx$W|i z{0z=1@0ZqYTZNugWw-4KxhS#X#LCHFp1>6=CDx1MYiSh4m?ny+o*%fCp5P>Jine&t z{#aA>1pdia+5)2+V~v)R(I38P_wsoa&CLj6MdI*og?Yy}h@#g}>f$H$*pSw5TUlyP zy;ZlIrO0SnB*iL=4e-jNFRztXCbu3^@Wxx4C%t$BUcL9k+c7oEa>IvY+#Sx^`;wO`lg4TAVVdT#0-DyJR{tj#JH0+pPc99SOW$RPWWwQ zI!!ijTYRl*vvh5ZL* zl%5sWu?HI&BY=7@Hj~Q_Yk1$>=V;reneSWt*GuvT+DaVPJ9ddHr#2 z#ts=jV?t;?!pea!MiQ%(u5%m(He4%2-a7PzsctSMjazX6MiKE1i0bg$(Z~-PUpdyu2&CM=ncDnoM>2s@MuG@CX{bD|Cz?JP<8DQg zZ}?CS-Ey8n<@B<~RkrjH@4UH}zs1oZd8{I}Gvq5=aSLXpN#oZn{hAfgY`4}#QWCTj zTyM`J9kEVoz3cN*kg*@lUg6wC;U3$MHcdyrAHOGP+P)}y!{z#-;^%W0ki>*d$4CSF?{@LzhyFYV=TXmy?Jh1$0cBETf^{QUkQXrHNYAC-G2SHrLXJYGY~qvs!S}U|ffHtp#j{d_xohSs$3r&Opl<+vpAY zf6mknMFq&xq!A@>MsFo7hd%1H>;l6E;}TN>%8z?hJz<(|=@ zn^@JqY<*(!<|E6Pbtg1560vYFKF*05R*;8cl->%b8zuW4zTX>nBJ%YKr}d#5|1X*5 zZ%C3cS?EvDaHFt0eaBRCgj)jI*cJKPsu{SLb0ffveMD(o+c~(PuzocVnxacsM{Z2! z;csFZv#uTNM8j36k&j2l?JB=OaEAer7hSo*bKn#;z_I4981{ej^Pj8c|A6ZB9}TJg z+1GT7sZ0nbv;dK*T6?`=x*m7hP4lmS@=e2Y#t~3<@^MGhQ@B~$WX?^+xL8ML-|Yua z`?szufi#tzOi8hKeRwh787zG3Lp}5y_iu1)bf&M%H;xVs{ADUGL{buz@*@pGkBj&T zy7r|7aR_K`vjj{>P4&`_4#{ zGWbB^Va%}yKxh@LOPfSxhUNFtD01o0tC8OMRBRT#0PSbnplH<-u{q)5Pd8G^ScMmr z@-Q3FUQT#?niu!sa!pDmd6y=!dx%Nx=nD2l`tx3w=XU(MosR0S^o1m!$mAb!?TYBQ z>$Ri^4DRm_?uc!O4W)NQ6+OHDI&;P91*2)s2O+iwUmiHQ6h>|tv3eEA{I{g#iGi`- z7%yN)0>JGLIzH|v!O65WUaW4c@IQJ`Tker$b;WMIuZ@Ic&U#XisF^HgtPn4WDXyNM zxw@j!$P6F+CS!c_^MhmJ{NkaD=E%2BDQ7%jzB|VVD;SO6@TnA)+~L%yK;YOBb6-I2 zcd;$yzKyM2xi-P`uMGS@cEVr2_FzKO0BnwiGIYs zcJytIT=Z38ivrnCxwB{t!wsNe+hX3g?UaxShA8yoH}Mlh6wHeYjGeD;q+a5x9kJW2 z7sv^;Ez-Gd0lA{Uzi^y-lZY>cK~hcwSoH=gyw<&LdUZ5Wr!f>--pcHurJ&032Gk=& z#u7SzIXolVs__Q0(@mO?!5+sY(o$90$u^Q)guZxT>fPtI136)@a8PN1zB^KHptvHe zB8u8>C9pMU#Nt?T-fz)$9+?H~IXbZ3d@%}#=6UqtZ(Zkw=&@*xswgwV6Y@J;A$cS!#=I(~Ndub7;($X1qG=g+N0l9A!w`IHd(s3EG zV?RNZm5IJ@mPPL%w=2SnPA(hx@MD_7;cCUJ(vd=|hYM=S{f}&GjlSD;wOMvELOJjo z6}6?z9Z_=81rChr?qtz|0$%Kce-EPv@vvJ!{SOCG@Ps)Rpc;U~!7q^jG6 z2ja+IqS=)+7_i{hdW@4sg`TKc3!b^6edS2Q7q8%Q=4~TiV#R=whvLYGKS8(8Rb0XL z2j+CfqobI@whmXzkL>}PnKw{+InD{m`KT-rw%3PZIcBaeEKYwLOqNb23aZflwFl#$ z-A;Zz_A4%a#lWu^_!R^HcVgflWsCI%hdzLM!b##R@C8B5v_Roc?c~`Nh(Oe0cUm{{ zU?UOVo^kD8>=1R$)p;eSkVZ+)NAZ=w z70_CconX@9un@m2P8Jkti){JGDvVMS=q($}A96?IY)y>#-1akwh8gd9e8#DgY7l6-SwxY$VCf{k1N497ZQ-9ks-U*ZC%fVen&4pbV5-46wI+Tp)lnqtY6y&2L&xn*F z!{mwnpP&T3vT{r&r&?p>=yuk~w#)fLQ{%34iHsb)xhMb{pju1<_54ohY4RHsQ35~_ z4*vl~cv<`>6u}4;hoFqJmS6W~ux2{B1j%yMl@`y) zSQ{5nbYjmdHeTqhZE&Iy7pVZ{Pd$G9D$PxHPk}KhZryOF?L4p=m4EA&T?I)`QE%(r zB1hhoAnmfpay9%0W|y5|mwb zD6gv;lm9B3$UtMF=HehzuErVjv0IC3#%ZnHdA!N$l*@nYJonqk^DA#VB4w8Rt0WIa ziN52-uuwc#BSl4u%8Z-6e7|GdHw)Iwz)Bt++mC~Enp>1;VFfPhE|thPNc&UJR)Sh*`14Iy2&E??q!(m04E z;=i3uY)uc4z{0Dq%OL>l)#+Mgfmveg^Qm_ej4jpQ&v#9CzOl_3m8Eql61RhCW3QLX zWlrpIUY)QcrtS)4PkS^giU}%-+!y$4tor0V%Xfblmip=rX*V+2@DEb}=iPayG)C^&xVpw2yJFO<3`}1pQ22tnX0|#_ z>j!WNViCyTq>sI)U#;E+o<&nHvs*l1zcbF}qb0?rS}-esbFEtm-gG{@wK+Mhf6pRV z?OoNOY^l?@BTRhT<7C7zHBk03T9e$wx^BDHdZkVvAt8n?>Z2-0SKIUbRS>wC66D+n zk-|Li)im4OK%CK6R_e1uhAO>T6skXu?(i3LRYzS3HA*KB%>Z-lcIHU3N$Z~d#aUQY z_3_O%5UHA6F4z~_xkI=Lm#>O=ADp%PMmkV8GIaphBw1E(*6f(d3V+mywIZpAVi&P^ za+difpf+UwJ7QklbWnlhe}4J(AH79A9&w)HH`7dM)vAhK9&(xD(zzH6U1_qx_Uw@2 z3Q&c+COFOSWA(B|@Fe5R_vr^eHgHbs5W~Ys9&k5aY+;L{4HrDSuzA#s+T8Y0Q)E+s zw&Q#xi$A?b_XqnhVS_E2%60|nBBpdW-?9IYY(+Ht6*D_f!0%yRJc#io3)^p7b8vQ@ z<~^kWIM7DqX$8@&wlPU!d(@3vLCDaT0u?N%ql_S7fpgJyvY{{%1vj>V1#SYRz0BC8U&EOM=P-xp>EPrf4iMK_$gGA(Oj*SB3M<-XTYUIBysnzetZfY;Te|JEGAW2wZy z{;@~CIy4l1uey#YxmP^5Mg;Uaf10vjn1hB&$TZ|{Zk@W~rRWASg@Qd5ULLA&!057v&$2FTK7GOhYKc|S##3pImhYvhd3 zj~>n;%yGB7HN5nE$YL)9!(8nb);enn#G5YQ713_$NOt#dl@OWW_c0MF zLzyP0yF001MnlU7D{wdGw>eGqf#FU4(^xC8KPItdDtOc!uv@w{{%A~@ndRws`bJ-> zKx7xYhwOOn;NScQ|IJ46&kUv%{Ew~Hfv{ma0}nLMyZbw^y5F1bC!SuPwAp{-BFw{f znliuF#ie@`jMvC^FSu{CCH!imIrcgV?V!xo6tiU-W@?6R3cBSYfo1S_U{D$J*?&XD zzwPx#ML}~QU=<=tG^A}z`X0+MF-OVLQ3p?=&y}3JntIjD#r~Dtu1bSjj5;g!W~pkK z@&fPbYevri1<0R>UeKppo5``{bc5suokJFV73G*(^Hnk(@1R%TN^m9Uo4uCvJyN1u zd@|R^?1N`zj?Kr{;)b^eNK+&5_LFwqR_xHgb$QM@nXA>2_Lt)Dns_Yk1NnL*EA9fE zEl0!2TVnEHV{h5aP=vq zFh<>IdV@Y^j3o`0lyqs)dW|rl;`U$cXh!zcO?A&`ib=Cti_gim$f^}?1fvI*t+Zz;tC7&Y5H!_;2MK>yq zAz~|`m>RJz*uoJiCp3+%yJHh3?B8Gt7-}MMX3Y1Y*fUfr^%VPYr4HG0OLo9-Sk5)c z_yZQ;j5O>JxLDf}n;S)GHH=A&i|o+=bR!KyUBUgpoV)ep%GU1jASfzA1nDgbDmW;;NDUU6h=2%4R}pCf(mMf>E+8O+ zpakhfK&45MUKFG^=>(7}kWd38;lFX5xq4^r%)Q@pzk9#m{4>upk2y(B687Hb?Dt*o zTI&VV6qE>6AftX{2enl;yygXQQK7QRD=Y&)=Cbu;gs?E8=J7IoqOp@j0{6^a&XH0Ztth8^etPJDS1FL;^STZj!kI?P!EC z&Z79UlnQD)5kCErR5PhOn?QqjD7pig$5Ez% zS>mJh@;`3|CMa}b+XlOZHFD<4yuSqhz`Wa8Z#fUEw^awjY@-M39#MV1c?b6NoC1!| zlbxNFCEoDX)vY58x~^FqLpD($%z6StnpV zpO$2XR{I#Vo{v=D*fi)RIo`nzxpkN>d3UI7zaMIdjrz40y~54UT$w{tcBjcc8^Ni4 zj_fw8?>}WL^G{Lazu$$3kBQ?-Tm!^4KwJZV={4|gw;O}fVw?lkp#CEqZ^46{xCz;E ztASi34EI`m>LOc!#zLe7y9Ay^uM2lBO)kT{m_oYTH)Afn^wk%IROh={bDG{JoFF!k zbL9&3VwlsVO6LodVZZXEOMKWiMbVaw&?EtU(I8X}q=B!J-aaQCzw#X6;PB3xNm%8M zP?54;^(%S+(1gJ`ecPCF2mS@k@=GIXmwY*NVczqsk(A5wSLrrWqVPTQ*i}F%O_C*x z@|Nt2o7Zi9fjOd$Ajit9u3m{t$Pf=ZyPcJ=Icd95N+oE%KHwZe;GuqZ0=?u1%NE0V z805WLg>SS0UGh8BDCMjnT_fdGtHT;^Y2;}N>W(9 zN0itez9;i^*3dl@cL@ElZ{O0zl5Sz1imY|}$V5C8?#=N|A{c@xk>bQ?*AC5=PCXx| zaGa$ZceR5x;taDY!=+S{CS9Vc+*0;edX2Yjd?3KEYwnJ;BohP9^$7AgMvcsPB`DfJ z{zG_UG~P1fb+2&C?8Nwtp4%)~InE0A2gQo8DT5MXD#u0!k6Qz64Lk(@xAZqz45AP5La^-f= zOw2&;*0~ATAX`JVM0ljNTO_{>lqWuI;E(1bJ^>bwx)0rbh}HslP*p zKNYD$%PFWBD6Qk2NZz5dJU<`>n=iCv1hmYz=Ws2isuPt5^-Mp4c3psMC^fAOzSmxs zjgqdu4P#oZb{lcmHK0?{6*^x`m*6Gn;-xL{>AJ;6+b6w2Qrst4r?)gs@X8uyDQF2X z$%LNQeGDtzIM~5Ar2)&i6p7RC4&Q?N3+IRmbu2EDMqqiSfl7EWcs#(Hz&*#s9PqGU zn^sz@Y19@LqzTWtuIls1FdUm9Wt2PTm34yp1&+lTc0rbTARxFLo;tly+Vb!;+$SA4 z)4dnZHJqOy_wTjgR0-RGXg)({np?ZV(WhbWnZG!+`Bsp1u0L+S_13m$@p)?7SfkCX zfnV6u^x1ox5}u)jDMmxZLB_C0prgE-wEMVxIi$mbdVPO<%GR^8d(uwN(>HtG5*V<9 z2Gex}QA-!qk;2X{GtMsO<}F{tYGAb<$56er*X;BO18yUIDv$Z~l^~fi)n;T(S?q*j z^7RS1i|T%wj1c#Oj{kOll>eI57r3nmIp&ZmVc3G+^qxLiUMx+o`9WhYJqu~;YiR6@ zj?zbW=h=_(Q7e&MT$Hfd9Hm~T41-f6*RwxyCqki!K;2RQp$ii>2S=_$oZ<)7r({+8 z&f;Q`7IO}u1-82(1wKAo_v1q6neE#k<)VVl8V1iqa&l(9;jh+WBGabM^*D;YQmU)u zV79>X<#3^{%%Yx!`erbB+M>c_Qr5fadIO43 zg_>TsI^`Y6nU^OIwqWfLm=0N>N1av}?({~sO-aD9eDsMM~C>`!TGd6tUC11OxG{%8<;$qe5M(SxKW`M)eEsSYZV8 zynES!+l{Dl)8*`Y9)}5?jxqHWJUt>#*N0BgyelLFa}%_EfT-X5D|c zF|Kawwnrjfj6@F;Jic_wjI9i^p zUaWZs;#s7(mh0~=)p#DumwLga6d7!jDB7O#lmP9qBLUNPdiS|kxg)`l71s(f>^}W3UAzEV$aS`Z z;rGX-{03AInJWOjB!7!6sQ(NqtXN`{bs1;4yYS-jl3$ zNrwA8idzE;Z~!_PyAXD9ABN!%b2rM`mgSQP^n};sI4_(i<~YQWhk_s1bnx3--Dlb{ z?x;!{J@)M!2GSMVtF@Tzs%2Is-WMcGQ@RQ8C4l<;^!um}0$6;=MCyKo8^q=?dYy7% zo?wwuxdER~e!RN@=46%&pthfFZqYyGMNFrrSmEkTRnYU*_Q3V@?=hbrfQaA2drJ3EPP@c)fZ%i zSM&*AQ3qJh^L^}m!cb~mV0+I%3V2q8$Gd=2>;=q9)f@bF{3pbGYBmf{E|LswKn8S8 zuphm)I}epD0hVrx?XTg&-{Gx{TA_m7(N5MLvX6>$v^*8p)1{3X`F|4QRLQqnpC zMZ45Z^GQox5BoO{75Fzz!ts5q;pwUtD?vDtiM+j$1e#t3oi6RP_>4zv3Q5JJ%RH+h zU%J)Eg9be`ieH!N!RXC4w)UbXgz8#Y+X#`9s( zpNwXEfqX`Hj{cs(uf4Go=0-_zr(DGb3i67~Vtk{YG~9x~7oSZKNO!$r-UfL*n~hfL%slP@1MG5T196Uu9Kzg@B9B zXj6sQfJ3ssa=h^)#F%)_Je=L->NdN4<;|#eCH{xV>esStbaaLzgw`*21{Mzl;DsKE zEoXn9>Io_t`-wGkByGK}+ReBb40+INfhVW+yOKEb_0tfir(W^NoN*CsJ8I#N3P4wr z7VpOX5T|bK1g^Sw3ZP;YVP7rLo0z`XeB4Xd(~cC{t@*gii+6q^&>@_v#{GSbjxE-P z3AY#GOrsbf->Enkn0z93jASiWQU~-c_dJG+U7|{MxYBdK-lJ1BZK-T)Dzz93V}HTX zHa>b}F0R=Zc|xx#(B1g>#B5R70(o@>E4s-i*=)Ti{Gn^s(?{XX;>Mfp#JUK8BDON#V>FI}p1?P=I_Pkf)I3EtLrb&r9Uf{QC3s zjlDdnge>!bF_|Yw%+h!`b>j}i<`N<@cnyGWAHu6obrGa-uHzt7U3d+DA8dm=)#B(i zU6LIQi=wCDqA?Chmu-cvtXhv<#tEbsfx4-eDZwvp-YoG@ybT4`tqo?| zmusc34tCHby~>MGq6s*PYP_raz!2H-c)NevX=QfS;5?24Bb3315z?GA{p=l%&(^9m zgKeHX1M*K$FaOdrC$Iy_R!vNVo`mglbUphP8=9wB5&W@oTRc77N5Z2LvpHT#-8N5% zOx~qNfQ8+>Kp=79I5{lk=GVV?r&J0cj7PPGV`|_epAO$b4`)Y!1h{_+WO|?a0OP{+ z`V6yZ4Co1XvZjkoD&%%J>`@N$|1D>y{U`Ga!G&*Rb*OSF(FVW{SdH2k@f93ART;TC zYs!KU&|Os{=M$?%?A13#_^pB)g8o7@e3exT@Jh&~NNk@ISRWwz#6PP}*6em{Yq^7k zj-9g4S1kKHPYjF?JxKW!&Gq@E&3Y$uLrv->6c~~QfLsEujG8~1{xMsO3 za9aUtL=|Y`=$__{MVp%dV0rQqvC7()-hD)803g|UMgB$`?P4p5R2;BSI5fRMN;boj zz1M_b9^4Tyj__F&$gkVF2TqFw44n4Yy7^euUxq!Q!sOX5>d=B7t=485MR{@~`Xo(M z@#M55b}%Na?likXkg%&zKVK4jTg0q3%Y5VPGGC4ffEb?YZ8A@CVa3NN!Yfhl74Y^6 z*9ez+WNf?%d%(SXI|DKQd=LpxAjoPK4}e=_v4%2MA}UVp>&w>N2;pP`ZFxJQF(BMS z#VQOrdwgP<;~OfVNf7jnHwt#EWFtctATy)3064VYrry#9yM_(2;gxV*SH^2*>?)~# zA~a$9teUXCwZ%6OUK}X|_3&whK`&9=wN9Lf>#7sk4rF3pmOWbz5Qk0}F#zJwM3vSN zk`an-CLoJ^&;hn%o<=8}fd_9TLSt`-P5ZHLJQN1{baEWRLjrTAGV`zi!Qxc<#8N=w z_{IecWj0lXN!AU-#3m3z0&IjoU}DL~q~Z7BhHy*49f)xKZqwTn(7GK6=@4L-tfF=x z1}FN#CI@Ihp!sXAz$7+G;Zec|PioM@G=tPGID23EO$XWHilW$r1pTajT&V8v6e0d^ zUDtcQv*I8=Ce96U4G`A=aSi;q2L8=1X}<#|?X`R-)2yZvQ{=R93g4fk4a>;2-bNvO z)>twzzbcf{CPEAY5Be#2(|2C=mW!_Zf>^)4aDH~eFD+(B^fHqoVrSy z!UneWeMb09!(#Ad{8*MlAP}B_Q>)I0c*7Gc%)B62aU;*}fx>xbF@_7s?ay*<&uK|& zb#QEG${A0g*Uyoc35V*uqB}piSf1;|;E_qQy(td-dK|Ei2fP14BZ2=qspEf2 z2Ki5&_usIG{*$crU&=gx(ft2~{^e0g?+29p{9+*W@8lo-sO2zn7~Rt90XlTe3QljY zs~4~64uHC?QUw$CB;bDwq(Qf)At0IuRPt(Mz{<39Kr+BrE-#)mnp_(Jz=MfcmC+vM z=TDqLcF-r82H&E$sKjx@spMJ`^2aGO2Aj(Cp*Xv5S&4@BD@0>>9SkHZh?FC^z+?hl zOlZz#AvQG=c}}_n(fu9~{Vmf8#OdtjKsJG*k>Oi5x1WJXJXB%bxuMKjz7SRRn$T^c zgiEITxf*PSvn(2$sbDFCeR+Qk*$Q~vCr0T(`ZbMOOGzfg8m7as+rQ*+6k-j%AYeb! z-IjTOta64E-Wrb8F9ttrqjm}WtQ|;l6s{^y6QDiW1cvDV;DQp~!cs?{UKwwe2*r85 zynq2BkO|MvL-4iEo^XP1-0DD%DAL3pDbqTl4=Ue^wFm)O*4uEV3Rqic#j#M;ZKoB! zl}jLtGQDrTn?>CKSyU82i$E47guPHJ29j6F6lLU6zx-&6r3CQnJMgx32Xe?9)LW}S zK6tJkVpcm2o*3GJWMJqc__kwS7cX0M`l`JtX^e2T;dOJh+eeUpTS7R5gCmz*+(h83 zt>Y#HRiLWai#}e`Z|V%i+m{-Hbm5M-wCFDHUCoO%BwpGS{86uh7x>|rCOAsPuo`sV zh9CA&v6&@2QvEfR(lQh+p6VNalIBUa4hUBo#|YODHJliWL4tI}(Sb|w*>{olJCHDu zpNp*hqbz4inEU(}8@JV?xt1TQo0CE{giN%v_CWYYYcWjLBzQME@Xdu>xklUp z1wxBqwxK5G!p10d1&baPV%+$63Zk@w8gB+b#qW8Czw?;qd+v9h<`2DJcQ-u1&HM?E ztekuX@}!$gm66(6ebHWRqsv$B01L&3qaS#B%>EOD```SI|B5}}AJryzU;9_&$r-;h z@BgWs>;K~S{3bxw>DrBa;q%``z81ld&nK~_WAP7{&<(Nh`DY~GiZ=VaU~L=a(#*&$ zQ(Hjy>%Q*pIXgj!8z|{oE zha&Dk9_(=rBT|{Zbq-W_;V2!Kfl*K+(0#gkWH1JQIbic^esIkL#I~OhNjTa3_;%Hw zlMa<_@`gdfxXJ)NnGAWvGIL)xKtI&+>6oHH-$bm_FOe;x#u#&Fmk!E4s0?Jl13M4} zi#0dE6NRJ9TzW@C^8Dg58#Ty20=nx%py`F99EQ*Bdb^QePE_VC9%!7}>-G-FjyWeb z{5fH>afW4P?wdu~KAY0|0TYehsSWt^bFi&hGvF$DZr{6~vQ$!M0o(SA6{w@E`sr;3 zLnd!x8^;b1rUOy1waxKE-fl~O3Te&J@Z4@9&$wQBXbCq3h zP$l?+G=U#24d}SWS72+cXOLS|zycXYhqVKBn?T`A5Zy~HaoS8;o@Z&+L#{FKHxnlO z37T~(Xg$;_4hhYIU0+NyYM0@Wu<`cV3%K5ffTN(l2u6QKClRW;tI4Gm^@WPM?LY!^ zRByys`hau+p$kV{nFDpJ@H!)qbCF8ICTqS0`&t!}y9r0=_SS&~Wv|p07&;hdP&7W; zSabxc^yQK14&+$W&jp!J6{5PUJyIgBYx1BN(?}n_U=->!Bo=^^bRu_noC$yCyZMXU z_(05V@n;JQvL%U4hHN}j23Qj>Cb-X*Vs)}H-PJ-$Tl;6e)`P(F9l}7NJ;wKQws9o< z<3TtI;bJJmyV~N^y|I!*i{Sd2Y4pOv+4sb-tWkh6RcbO4PsZF4Fah)C+D_nnfT$$P z!~t53y__A|LlLdnAnKBQ3H-=}n4gea^gQyv9bPk1!(jg(Mp)#Vr^vsDtNmwpH{$EW zaVD+-;u`p?u7Q8Ao7^Aa!OM9pJCGC)TQp^{(HZL#jW{wSKJuMbdA0$5V}TRpvbD*4 z?G2#eoHzMd`1yx{_7B+s_>e5sP4Pg)7jjTSVTJ%{$u3Iyqb;7H<~AJhK|G#NBZN4f zr}>w!`$JFT6A_cK#dt3ecjRklG!k-T?w6OXgD@lV*67+c6y$2ju&sivgAm6*Cq6>{ zC=dK6U;Ebtfl0q&1(}(%?Q=ym{X^0<3P-CgT}K#T^5>!Rvh==t6v=3)s3foUJtDM5 zN>xC*Z%6bG7n)NDu||4il*X;iL4FhT=Ni{m2*1X_gG3gDuJD|xh&(F)RwLqg_>?v2 zr@N%mt)AKGfBB{H?;hw%$Fw4T9ZW zvY?&D--ps5D!xAoO`pVis%DZ7DZ~s{idNFvjJB&<=&kWu zeoJ&7Xpb)x(-Wj$#k#59_JxN(QGwn1Drpl?r8K~+1EZY!pGzCt+7kwqlmH|LY_t*a zOHrHe;n6VkQxC1(noC~5J>~gH!@Siy-|8Ur0S^;*pZANaWV?Js7?~Irjx{*)HGSCw za;m&7fwOFe>^q z&Ll}(|oo#3Wcc(uPwl$>_{DMp1zEWrG z36-^OQUN_*jJZHA^m4X>(S?1tP?Zh}RrGDUw6h#&Fisr!S=TXND*-{bb42m7NHXQ; zoVKlySQAheux8oRrnE(CpzzgP+hp=1uZJ&Jrs1^ijzXj;`G))nyR!o9rhsxRll+L-FeluqSjlJeC?K9K=74+>r+{I5`{mF_g&APCZ3ryDv05WCyW?jR%<#tT zz(Nqg+6=VE(VN%{rbMzUjXi3ByKUk#NMC@=O}ihYFFTOtCI37DLh~U|-O5&2Z)?c* zg4N2vN=XT>s;`jSbD+NVm3ww_looK$=20K*Ch{WOD%*j>Q~^#8iu3e1)9Wu0%a%$| zZ~tbkM3MI%{DdV^Y}{xcp5ZJGBZ~#8vGCcF*S!m>c+o<2+_SH5wIOe`fi#D1J+A}v z(h1gIqOUGL?gmh1in@diA^H?kRPhJoAWo~=LgaNu`+%)cutNlLX*dZnb5ZM|3>O;T zDi!K{dDk&~Q4|Q?Ma(i@l-wV?!<78UE!h{BrTg2P(tiRK$-PiDLK!0 zu*m~#Y*y3p8i_1p`Q_#tmx)BT>e z_D@u-ev@4MgMIvmdYf3)axF$;MYm7n#riwJfiL~$TOI-YNf~5iT=I8@#P3c#IyG7V z#YNErF!~c>-QolGx~jL7UapJKb(13HOu62t!s!-6e3ws29Vxb9f8hsFnmCDgK;Y^q z%%L8k+(SU*&oP_X-PGuFJB7L;=+Zd6dNK+7&c@jWLtcfv)xC%k+X~K9h)(fiI}u*LBDt{GCM_X_>a89iG+^LEUcBLjCMf?=GimS2BQ zY1-6>8L2@p#Dz^YG8kPsrTGh&tJC$p%wcIF^QSoMJx>fWL^%Y`7(Y`nB) zL^(%eL7?vxIrZv9`5S)}nqN#}AH1~$7P`#g!OznySWhgY72iruK!gliFBk zR8k5xKIX2V^uxZqC|FSCsmrGtUbut`;QdyE=0|nJ^MDtj%lVS55$0$Pj^BmmY9$II2zn$Ks7hZMt=)FtRds6TTc?+k@nSk8FS#5Ac zF7y5JIi3fOM!W)%>5l|o!b$ZcOzvazCN5W;F5Fyw&e8luO+RnwZS3MO5E>m;`*L8d z9%77@Z|b{(PsM3lncC2mQ>12}w&m8`>zB_;GN%L&71Qi`S+F$VTg%bZ%VI0@{P>&w zkGP#r*-@}MSFvtiv&#O2RbGGGo9FnUx2a3LOZ{kq;o;}6)};M!*&=n*a{wg%7N6vC z=H-DV^JG=C&d=Rh%5U|#P1;T@{G$C{3@#eATgWi4W4fbeMPmFq7Uw0+KKtn0G!nJ-BfH0+ z-PNwG^U@;UC4GFrg=c}LHr0F`aknyzi@T54Y2o23@lT|gM;)g{T0CU>K({=c3O2+h zXY|~S4KacP-0WV$t)LS&G15vjryzFr_17_nqpC-l3w9tZSHeo^U+)<-(3ha2|Dwh{ z0v+Cdoq!lvO{7EwdQlgnH~iBvd=Czr4dlj>O%8YjN!`FTb3mitewcLHcsa^u8N+@O zOAQOL;#<1QwVcF9`Ldomw&}HEI%`Dar|Ck+QR=laIW+GJ6Z4-8MlFgK%uTFF$z2D| z75_x8M#3e{&l80~28`B>=3m=7{qj(6``~7(E6c!Vrq>H4p%A4s+?m%HMC~xmv}TVZ z6W{3NV$sf^z_4ytiB#%=%WqJxBtU zyH+N4H79Q`Hv3!=_GZ#>Th@RAWkNie^WGFl!w2U3DUNNdR5)Ytm!l7uPYf3(l#DCS zI~T>*F|;_d3LX-yFA2Ww#N`f4<0kFQ_y@PjfA*G2d|&YIrje)ilihe2enD9day4F| zi`Ra7wl{K`;3k{1>wYs9egJSKbJ49~)7_sMk!@Bs>awg4Mkzcff%uQ<6>P2LAY$gY zmcu9+0j3g#_x+3nB}`ZvP8*1%*^R`iV5INuS#=+fzYd$hZ2GDrY63e@Q_Xb=$BU$k zhI7d$?|&n+USkIK!Jjc)z&^M-?GEgbtpbh*2?KsKdG!<}(q!vT3D!N|+=_%S{-c3X z_P~_b{7bi2lAzhPSVObXrYE{(3f_MciF5oJz#;Twdu(d4rnMWgh_+MffR^Zai5ox& zgX5vaAlDZU(|26v)83;01(rdE05U0nWlGx{HAo98n?P0BadWqNiTGN*Oqzxz{9FQu zfvyn&45AXlpbDJUn+1=GEBkHwZx|-aNp{L+rMwn)-*>Crj&CH!3F-NZteJL%wUz^gjc#P6z@>*2*8R*dmq9X zrAPq`##s#N`lrB>IIq6zZuqep!%!Uqv#*x`5uew>?(-Z4IXIQXVSpSK6{i9AkpAL? z&7>LW)!^G2a)OJ&*B-fLldAqP>RaA*z2^=_wY~tYJ#Zr6Qr8zkKZ5m&danM$Akz)| zSL9b^=UXj1=NrmZX)E?)Q6>{C(VQ20Zqdg$pWVFS`C{M1CyxxfuN#5tpKk<9Y?gK| z$T1FV?#R?!(`5Y-K|Osbv+EyUE2faH99nF!Z`ant!1M}?_RP_1MWzm~XIu9^(Q4;+ zexAZ&m*@zgvG3Yb!pCgJRfEjeFFoFx=E6}-a|3s#GuoQ<&#S>syEaFB|MN^>uii zdC<1uoVfJdMu2G`pJojMaqcBL&vfYquAa z)ISjprVwaJkk08kMufI|@nzRd`CUv*0^j>Qv@S~Y*IzyA^F9@O&g#T;wF>+GJg$6a z28gQl;Zj73QkUBs!i`?G%CG{8HlK9mf^r7tNUZ0AVdsgH7f+FB-+|R6lTBj6o*q9q zfThbA0HWKjyQt@e;~i-_6KrY)t+jA9IfyZiF>;%51O^+lU=D4;6~#p89ay~0`;mHD zy)XTWZ*YJzhA&_mvk_FF3ahqRpRTz5%1WNUJ;XX9$r>dna~D(QtlwQpekV*d(1@l< z;+5xRi7`BCYRC>Qu-UuN5Q8!bk{)Rpu1@ch z*KcCg(G&V_i?2oY_L^Itj6{-I;(N#xUHt)F1dsBBjaXG(p{!8YOebw z_Q)%7C9B~R_!lSqhFhuLJ5Qc69-NYO{Q_!nT@BHvOHA z#b66`m3hn@1=NizMYDiJ* z1@XHGiquH@%zvD-Z?}w<6c8&Q4jCcA)lzK_Zqltjq$r`*m+&_4#c;hpXPHU z+Hej^Jyg`5!Lvf$UNlv;Mhcjj%Ht}ey1h8_<7RA5n8+ zJrYKxa0w-)oH1+2ihVKm!Gi-mSf61KFNyu4ZB<@XZXw7pd52~2?Brpgfiz5G(0Iti z$(SUU1bZ9Q?cyV@cDFA`JrHF!TH?O34+;r$?==PH9Y@SIKzBONjO(qiORu_}m0U6| zLJk}|&SOkjaIEz#EeT?LQa3ui4oc=3qFoNN>Aptcdix}q!;>=sH>%)>N-4+O!Sh%f z(?o2m4NYzKoHN6bs#|fAPcH;9Mm*sn?Mgp4$i@?d&CL2_4eti zCD(S3QPsy|t7r2poUeC0|7Kb&3zNh#V^k`TW0_LoR_i)z@3gNywOUxzqyEWN;Pd2~ zA+$;S7QbY~d;$a3G10}~P<#J5nN-fFCKZu%Bl^!GeHlaTTr{g#9rI|h?qjwSd=JFh zZjG}!tM;TMG&owlWNCV^!1e0v*!oeJ?i$h`b~vhjOYi#JMLn#4t$?B4+ksZ?&@oT9 zutszu)z!r_$}0F25AmD!xpT~ZFN-3FIrK}%1#dl9JQ$oMGo5Dkr{FF;FfE+G98gm! zfh#pmwr`IvslqEvD`W0oGzvr>s=jw{E?Y~604)U8VE3tA{M$<{ZOucx97UqbHy-nDlFHcGIUhRGXdT^y<4{V+dZx|A zIE$?q8ea71a&$di``KCZC$>QShewK;CfcJ@IzabsU-?=&D*oicQH|%Af6I>^&QCRfJJf-J3j-c8+^bG$B0AqQYoB?76w? zXV%8`KzfycZfkNn{?`Qzx4!6B@m{=jjQ^p{e!=sL^I@v&Q|U?Gf@?5JGl_TaOS)H8 zMAuQ*jy{>{6ldg~JoJi-71{di^o{n__!lo`>9aW+I_1o*GxxL{W#yHv`cUKHCRhx(pF?uI;p~QrE&f8MH9*3ht^y=n zFBu`A)8)cYBgVAiA&@K}O{isrC-5XDd7quFpvBSy!kox$_5TmZ_J}z>|xN6>h_-yWNIiCdQF8gKoDLuE0-xvtOu5 z?n?wXG(0GQBhU%Tc@|d;1XhN)i(k2LL47pF=}1%L6wpk9Pu0e8BAL$YK)SJgif>61 z6FRilsE;VbVBYi*^sskU*gpzwo%xyeIEZ9Ex&zTcNgtenZcf}g4Crt`HY9tgD``V z`%~Cjz1)RfWeJxpR$**XB)npCE8r6h&YU0wTXyJZ_E~b@aHoz-77a)lnr`d-k_y1^ zVtK+XZ}C_!UYCPFSEY0pKA$9kn7PCw4-J%|1kkwl_;c9IMqv6HM@oEE0`=RrcvL7; z(9$|%H4X!GR;SQsfX>R|J))2Q1K`_5$g;F!!_NaOJjc9q7YpY^aOzU4&^DKzqB%GB zlJedWkHY{7S8N~Pa8KQx7M*1r1g$JOjv^10GoAkC?B%|Ju> zO$9Z++R-|4VGG=Lr{U;4FAhCW-l&_MY*dwLgSW(mV-;is^>!ecnB0ha{6}~GwwVHiwTGE6-t@sL59s|ET6G?=lxaq4`FD3^3HTB0 zW~y8is@u%Z`wn6F!2(;WsQq;W`niY7?h?%NAF&3qujDOj(4e6>_!xMq(r;jnYKo?F z2f|$sagzs4zvId++0)Z?4U<^2hN|8`Jbg(uE|{2GnVmUW=+ATG;N~gDYt?h2VFHH6 zz^S5?5x%?MC7di;+kwcD!=BP+Z_Bz!@#}?H-RggLvXFFBAdzZViVmgtnWhmHN_U(5 zSZ~cy`?W#6SQe)-W5#;d?%gHFH`+55Kq%E!-hsTy1aiHZ07i zENKWEkIZzf8{NXvpml+PgnQoR(wQtFpmMl)r(h-#0@(+t`l~8Sh<_JRHAP$l|8K5= z|DY-i@!(Ot=Sz=sab}&@a~(@Gqq_xP9hxR%uXKBNt2}#5d#Qkr+7Qv^X=jf#iiWNw zLN9i$QnDyTr*=7nP@IDKyIbCVSlpdKyP$lbQzTlhN4Sg!1sh_}n&ll$8?)7(Nj&rx zCz4p7UV&r}N=tnlz-L{Q!D+nsw)*As3ztG_dYfHQ(7om{+MSA=k&^b55!7RmgX=5r zN!bZKJ%Ap;g*yR1jF^cBVieyQ1UA^giwm=IDTJ#wqk{s{f-gHTAo=X>R9W2Jh(=*m z+KfDwOf7k)Lr^sZTUqu~$x3OXUY!J<`;!AhdPC;f`<0wZ6`P7S_1O=w=!F~48rG-J z>N-V{_^P}r1UXUc!i($ONPTX)Xg~zz@yYwbG_v;h=AWCjrMUlki9@t|&4cxc z<)c*FSDO`XoU?RSoH%aG_@4B&$Q~?TO(r~{g1O_#-Nlu?5619Fb0d~sP_sG-gAc6RCr>eZB55UL++i7x1xHUu99BAw>`gDv!CMq#nfwu_VGkK zb6(3!&Hj)(=0Cq4p~%ajbjx$Uf0*2%mtySurOo!>#E|}(DFku*3OPBjnJG*eQ7UNB^yJ6D@PZ+agwW7-8@!h+1^*T;!eS;3zXs5>rP z1bl((Kv^!Jug$m{~5WI+Vq4GH?|AklO!n0QvkG zOEUJvs)O><(7J$u1Fkv^Q4`VyYU<%ITI`d-E(QzRP43*h?~sEZQ3MSF9s4^dJ>rOz z++jAdNTKj%mlQbEi(?>sRW&HTIeZffw4n4B^FMs+4+oIRN)#Km&4!TP;3i$gMz-Em z*~BS78roagh${Q&DUXoLE&hjJue^plmoun z*=aMARyaDY;FD_b#wF&Ga#kS`NKNq}D?3R;hQ@ zT)V18HS)CDaZ2WCcKN)Uyol-NO=8O;p2wB69jtRJvg~;3($H;HPwk7gYB&iEseEh3 z*NmzWdqb>!>#eLuUR&@)Y-T1xJ(DUBKvZaongnDHjGjjE>JB6*@|o8q?rr*~P@F5y z`Q1Y&njt0#PO4fKCaZ1)$Cq9G%H;@iqM1lX((FL40s)=Q#C~{>$8~h{d$x2rRs6o6 zAX|HaH+LXlLPK*9Q>JKxoo_Z=?<4t&(`FB(i&mh#9f& z%1x{}f1f`Pky0X3N<>PD1Xv>Zmq>j6l>tuNB8gihk(NaajfkPq|KCERyjgaB^wc}2 z-nc7;Ca(7~^y?43h&P+FoqeB3SqfUj{D)e;P)5|*<`>J6#Vs%O?R zhwlvR88gL*%m5|zOWdvibhiH6XD1Ki2e=E#jPz@7Ztfwm@SW?A{e zI)eRh1dQCsdA>h`c>1?-{HKO4(8CgK>R-SY(BhhE_C(7WZW$!?>DIwd;_qAB@BXpa zJj_y8G(MNmaj$=_NNq$9acgNg&7k>Fi*N9{#E*TQc3G{aAPu1xZreuh3Q>PO;K@qz z7B|9bdF>J)jCU(rdqD5X?~Y2dxJh@@_+QT;p8jndi9`3pLLn}jUoIfxB}2Sj5bw0# z?-|5fCGl2Cj4p_g)vqxoaf>8wk;E;MxJCY)krKm$e`k0Qy8}5S1wC4gZg>VC4uLh5 z4seqOMvd)2yiK-8Sc_qc%^W+BlUW)blvo7ca7RkuR_f$vPpI1o(6dg%t1aO`j3iY$ z6mMTb4v<3)oi4AI5g@i?Zg`1YDzL&m(#{91G3mIz^qHl^+Z?$RP#k~j4dP493!DBG zO<#g^xk8%K?6f&`IN_&vi@^{yDO#i9Fe0nut2VSN8otVyxeGN8^bt(LNezt&vD8TX zz6$RoZ<$>osw#MI4ps%l6ERdZx2p~H4EQQH&GUIeGm#e|xC4>xS=~!Zva$miEO?KY zSQ%6KVq6mZ={@!!ov4+0%31Wk)cuf8>CicZ!mPARpU z^tx<$9!i5d5WjT&(?!qYT_(Wgdyri?+Ub4p{7fxJh6)PLJT2oDv8$?0eIvF)OERT4 zf}?!fP}i=2cPKvfRk5pf9mfQ0zO_8KRbRxNfJcb*sEonLhfF`BE5elKg0A8QuGMe(u$M z9?%ug3lbwK{1mu!=Q`VgFA+Jn12G-l_hguC>s^^!y+a8sE)Fuc1NjcK{T{ysQfv7E zAf{!P;RjtN)3+4Q;=BQd%NK+Kf^XGeiPakpG)s@X3~wY-6@Lfq{s8kTx=@UpWVWQ& zJ&9qH+LlEm%sH>a8Uo=x*!=UQqy%@p2V8{BU~h@aKUlgYszMVcdAL`gwW;(c(=}k( z&WZhCLny1(m8)XA%wSR3dew~d53s4n;0Ec3p&2B|R4@)Hg;mH+AtDQ5=wgu>F!Ly6 zU=mxCd@Ee~{-6B{tYI85tH+~kfLZ-i#}&9JEw%!VJrRF5{i^o{&A=)yD3R*>KmPm2 zFI~LEa5C|^Z#!U0XHF7=f;$4ni+!vG^6QE&5K8G)@u1^3@*fOhHfTOnBgVK~t_ocD zD~1{2Pb}rx?3IAadzKFH0hqoQiVKC@Le%5~t49iEQ#=+pJ^uQbt~;A2!{kQQ2Dxwn z$*v*fudn>@u3g90JRA>v*FW+#@Q?HXooD}cV4z7$JolH;r6Z0NacvNEC)5Zbj_-=!@W{%^XDvIBn@p9F z+F9-7PrTaU%a`>Cl{djj+1Xs|821Nk6evxN`Xf!xVc56A0z?uAGIt=yh} z@c$t`7UfA7Xr18n<1Svstxc=zNOIJ&7p>WW`6HG1HBRKbwhWi@Bu)@>WUF5SF?s>k zi$wRrxKQZj$fLd5MwhSL*@3)zIQoI7$Fix?bZL`I2=PhYW-@xN0HQ8O`&a&-a1P!StCGYP-6JfWesbR|aRn9t8yMM>Ewt)$i_uT}8-j`y?%*zSGXoXVbkIZ%|9}U_Q zU>9@rb)yGKTOq_gqA{mr&HMN8`|Hc5=>~xdY>sVdT}N^+WA5MNjTu z%n#FG9=WV(bm$zJHzNi)wjpBKSV`3ojglPPf$SSLoYl~+Gl^>*nNvMECBk$=tRE8B3xA~nwVM{gi@F9JU+N;BGjacSg3Ed?7MMTfm+@UJ-D zUw*Sfv5-R|%=dHfGQOG80Vo3% zm&yee<2xf1U5?Z?)TIoVntVT&2Y1Bv%w(QICI-r$TREuuj~woGe8;8mroaq!=<5Cl zx3pV7)f#6E?LaaUss2Cq-aD?TZOtDJqM)EeK|oN5N>i$Z-U2EhB1WW26%lDdL|Uk! z2uO{HfPxT|sx*}*HAojr=qR0l^pa2mB;j3n&YhWa=H7em{rt|%duPT!_$Xns*?X3yz!v1u&7qY|DDAU(8f>FzgK2%Dsr+Kna8ziRo1FQkNvCxnL8~lDfJ4RT zILm|7{iohdnHk<+(LP^`J(yof@8<37l3~`Dlze*pVdcYp86^yga}e1HxT{wpWMx{U zR`N6N>K0^l;=wYPk7~|g*`nFPq(JM_r4PrYtkxLDkL0t^9kG#uMiiYTx-@W0Jg8Li za4pv!s0rL?zaEj}p_o!;*7WS5q0%J%knM|b$UoZP_s?#W`$x&*pB!=P@{A zbn~hEN7jof(W*?h3ZiCQ8(>Qa=mYqWdd>6;WDhvJ>plr8Q8-5HX}nt})ig z$)9F#2Oqgu$4Ehu@%7y_?3Bvr;*KhVaL8f-Szq}?C{0QE#LUa+z#HwDZdDD+Q5>5i zZnTGhNQzGJeMqaw>9S3Q3e)PyZHyZ@4qHPNG~VGZNY<~unf96d%>iU=E1vblxN}hr zem&i!20U~eNcX)L;^$GbGz?kXR1vNz*Cls)oC~VPg#=l zhD{>xki;H>%L|SL*5MsRmZYBhPN%=4up7%&5J@e$wcwDvxN%7b{)ZF#m+HG&{A>R8(dXj%PEt8k+ zBmD3*=+5G*FK_I9Ez9Y*8{6o;sLY`qj68*I!bDQEkyEtCEbyb-smr>AC+N`*LUj3) zNx^+5sJ9Mo_lb!^*D{l&`)Epj{Oj+gCcZ&u$}zL>sQu_1((PbZM#^gG9_;40FbFF| zS}KR4;&F?0buv%ZEU{g-z_g4R6~JvQ?6Tv8xScY4MGFC@)-KxuVfcR9G0-0g2WDlo z;M>AkO595v@tssNd~|Ij>p?0{OXDp3OrXD#dH5oRY{7kb+o6g*(8s%8e2sCuHY0S^ zpLijZRXT%ip1*i%olS)|L(Ov*cDNd*-D7HtNso_3Uudwc1N(OAp>G6}V_Oh2W+B@B zT@ZIkgI&02MIl$X3&D{GpIU_hzSB!QR+oYAG`n}(cPd}HC`soYuA<7t$k%zTl@7$7 z|FU1#{f_tKQqGQS4&0{1ARV~wF&ZebYn1WRt>j%=MECMuw<0?-HD383btwKa+QR`m z&fzaYhF|LPJJ}}_=40l0FY!YAnXi+p9g;c+84o{uxvOmF-VL_a05hevS}gRi4ENFU z)&hTO*C5vA_!+Eo#a<;B{JT7Or~@lShWPdVKHRrfHq64o!#L9(ZIvU?S_Q{TO|@&Q z^7VM>=Z>#TH5Bu|M@BvLxV7l=Y+|rt`g`@U-p@h-QaKT3=jIz79OUx#=lB=DJ>CC$ zXS8#p?D5Ku_ZHA542{ip(Y}1}IU9eh)ayV*9Ncg7X~5?E6;C|9lfoGNz=?u`osu85 zMOG7uxdso@{cb;55ZMK3rkT|y+;O{k@YbeowWwXU0gkQu$iRDty@s6f*=#Kj*wgzY z5A|!9Iw|?u(zjCFhL=gWP?m=qk*gvTqSd$f6y9LtLew?nHvGK}=96zr&Yfv*uzqCe z$aIeX@%JJ7fOw@3joO|Ijm>T+6zP3)j2se!6TVfx?p~eGeiRaObu4&@VkTo1{n*~4 zyb3c*vh#RRly+5{wKb<{t?QCTRp>jjCZ#utkmYib<~yR5%p{>Y>885YuYC^gAtyWK z@0Ufj1suZ<-o2~pr256HyA(swh=bo3m*!}(n*W*Bq zqbx7{m5zrKEshv9-Mk}J5b7oIz)>n&9P-qvz2Ly@2*!nl%hJ2)8MB4*y!{e9#AvbB zo>G$h@4#({$^lTyQio&DVw6J+c}^mMn06JhJ|hW=m&DM~;s)&w z_+r&whh`-px&1Eff|$JsKLPoBU;lj^!tXhS|0&-?MX9Oiu_vWezdAsy7-l!o@{|KB zEB*?Gg}D9qRsUjN!Z$d41hJPbY>yT{DcybO=2G$#I$m+J=+VAFXnXa2S53ZKZhIql zTU$O!m zm<8*mW$44781*v0aTmM6dHnSLC+afyxsG|bH3?x{RE|{Vc&Cy>>r4HZdK~9$G(}%j zltw%4t$5m1lJcoSFY?BsuL$0UXJiw*%jYgug-BiQk>491LRjT+tnGj3p5s37P8@2M zXI_y_c2Mn_SNoFn!mhNG>G{r5>6qsC8b_@IWXEW3_H~y#mb3TDyG0d0yD*kfsl^>T z6THJ;mWPobm4S_PTVO_ouZYcyEhOjWiyso!WTVV*S=CtY3rI=hjY}qF&S>=b2yjH) zYPC0B`CM;>2pqWo=w-i*3=gN1s!+6=mruE4B&lCREUq%_Zr_Aq*u}WloT8^c)CS;h zFxrP+X?1lxHn99zu=Yd0Wn%9)KCzWv23z_M%2HE?1{S-DMC3FR&6K_M-aWjhY-Gml zC#o@F7W!b`6&vQatESSI@j&K1#G#;E`|AD&gq$O|D9ZjHw}68&j!}9sbJBB*q731xUd#*M0#%bXq!Y*ANpkAI>b`R<(y38Xjey<*@kUFQUlDS z4${?Y6VWv?Ttg$xj8vES3m_@e2pqb@hhE&>E@3}tPODG`rQO%|QUl4>8pDkDTgQ7h zO^V^mjZ+#+=QSuN5qva7A7_FC8nK)^y4V1uFiz0F!EcaYxp&`c|(JTa?JY(Q49 zF;GY7TW}*nNbsO+ny&C zjx2u#jfL0Zeff)@_*I-X>+fzg-K)L#9#lgGoow@Y1Ox4#z_%8C04dQ*VtmN)6Z9Og zaC3%tjd(UA=*HxC`0`N^b=YC@wNYL~SdoX&>uNx1Oc%)173{*VQN+?QYhnlB%lk#- z(Lpr2Z8nKT;Ez}7XLOiCux@1v?g*FvIUh?w+0A4BWboRh)=_|=I3eH>nClz z1^I{xL7t{{>;{XT_W;7~d*=*+#mcG1bv92_hH<_lR&7F<{c*;_;$vQWrLJbml zhDG&-KNC>k{!70mDxF7Al~yCnRQ7)Lr4zQd`0mGC(W9O@MRRyw7TNnk`>iu}<;vLG6H(pWAGj!;Opu96&6oZ5Fy=~x zr{|50d&a}IDh;)r}DcSYV?<18YzH#Vbg6wYkAPeE^K^i*CfrBrkbV#VB6hX42;LK?)t z@Ofmz2Hw5oAaC2HLwBr-JKImM9SIp!V(@8dx|8R<3lm(alxZr~5E7Kpdl~0`QFJsa zv^5~HBmPkSG1ToS{;)6 zN*?z=te5>?-Clp*_sv8}f;g^54RRODseA%u*ig;rcvhn--XYE9 zNRshDt0Nbl->S-EAE|C+xn!KHc#j#Ew7k@_`=|JJ9w?2m5Y(qaHL+$rcO-L=E2XjN z!plbD!X~( zmwgI|k~byV4^1w-QLhe9g}{#){Cz(3#c%o2f9?_c4PWe)_Zv1)5=5kbV37NxhwA6g z|GvTS=lJ~ju?6PLpQ6vxy+_dNexyjr?#U(lhnwt;f` zy3N4R0Xu?99O|Ho$Wq??fcKi@>jd(ZJG7Gyd_4IF(y5oR?Xk4|1>x~H(hP}}%eezz zq)X|_>6%Q1o}e|8zd5#$W9!y#xTD--*Dt`6VGiU0;3+w^uy4?c`T_uCOrBR2AQ)i8 z$CMk}xF55_t^;Z$-U(QO<7^rfQ7msCx@o9(^PAFTPVhG4mzrJ%4j6PTp%avo!z_fF z3zV)LXMlfJgAuD;51}es71iv$6N*fs6!eDSt2Py0OK1~*$H%pKq$RlH_+0ezk?u%1 zw;v1+M_HBDfVHEC3>fR@Q zLS)|2!-|M3=*E;dp32Og292bMxnTI}6BVD%mbS%$s%-jl)rZN#qY4y>4CuzhotI$H z358i?xnbtW1>zVVtqd=W7CcDTbN-dxn(U%Po;3iiPXTBxHFuDyLDOj^C;E26SH8^Q z0Yjq)fHnOHYQ3m)rBAo-Lxm2d{Z|ZrZ3!?Tya1|5fzoQ4vXlp)To^hsb-ag=QqZKT zC?+(0D;280?LXN+6y80wJu`!*u1m8C8#y}EI8uIJ9Ema1sfI>T)1;)qzWj3563U(8 znGCZ1(&Q`>Kv6K)DcQ`O|YQ_heKv;b7g&OMjW1b z^76Nh;crzx*p9l=SYBrJk2Y5qC%~7!SR==5cMSaWr2S`4+RrihIVOMh8u(3sB{g0A z9}^5(0TsDTF12IpFhFv@Gt9``#WIwpSk8g zTg&_1^7AyDrGl7Z9J#ssGv!g0!T%du98MS%sjzd*QXzf{kvZS?IP$={UeQ&?+G>F| zYvMv!u^8{2_@Z~VK`_EqKLd(7bkzLmrXqlC8jXhXoiCrbHs8IES$7cBLytb+f}A#h z+u~TLnEGz+Wz7c*Ba0b)G%t--?5l_HVZkbmVQeV+wesO_TE`vBIyEa}`JPGdK#v9> z2)6WXwtwR}`CF{lPuKj855KW#YrO^WrAN!BghQIJwSGr{P&+~u zHeFc~9Yv0dC?i8?Oxuzm^VE4-S)VX^QZ^qvqa!xkxB!D2Y1W{+r0CHug9H6(JAfFt znGM9iKI}F)1HG?+PO3sSS9X-rc5hu>bm~M)rqK>owxXLtF+SRk(by^e(Z%C`G5pic z1SMI7d*OI?5{s}eV>h;ST4aO6woV&{6qom0)uQVEYWZ&=_W*PjR9AWf?RPw#rh}Q# z=mT2dN;^f$bJ=|-Py%OuQFJK+7MvhwV6?`7jc$;+lM6Isybk~(vq+OW#mq+>ht}QI zhHO3d!^WRO@ z1Na7ugE}k<4$W#*RLS<`?Y5@bh0l!_76S{uh2vh_LMn3NdIuR%m!J}XflghUD0pgf z7=2oW>na67RBDt)VXwee+RZ?3EFjc!k&P#KHNqr4_sk}=!KjJZ+C=>OZB;z#6uL)t z2bcnYh4)h6ScOU@ZtRAQGr)mDsVt2=x(HxW_jLe;x1Y5D*MIra$?6?sR@2$SicnhF zz-a(j3iZ(=DyZAyj#7?ZovVxav9OI@5U(nB0Ae%d^T4pxHPQG>nh-;=nC5UDVqIf* zf3MHAE@==>0AF%3yb@+vvV4h&J|swSQ$+ljXEaVQycFh5)Yn^V`r zww(S2NUdTTE1Xy&Mk?OWJ_T!1#(?r`M!F5EQv1P-FTtmRr(FOTF8);|F7$CkHuTgE zTn6ZjnHG4KG6`njqxbftD1%8U*pP#NV)~ItfE)2c-4mCPMD90Ep*g!A;XysP`{dcYb;^t}~ zsw_eLjNiZ?l-AKwhgL-P2pK#houbi0t!g36^cw=#?0wky$f|E2Zs{ zIoi@~(k8vNuN&dtbOOjE6^_Y2h-Lo-74PrbvwtT?{7*dgPnS^saJl_+IiZGf1Pfl2 zP3=W=iIkCL5*Np$M~knr+6S0!fC>)}`)E5wkAw`nSG|uI+jM8heG8)J_(~(&G+>=$ zL!V2Ljj(WlhbBxa9*Lq+Q<68|k)~4UCoV(JPPeae#HWLY!1p2gQdR~MXC|odl+mz4(3HmbohtIOxUl$5 zL`zXg$RK=P?U3p^6Xd%E0T)rsB8d$32!{?l+CYlJYO-l=%qYz0zO_9WliYWefH@i# z`If%(ZR=|6s{Qre1UZhK4PKdfIFS^!MOys*_+P zM|X+274Vvxt3>k~eJ|{%hp21ddv?;?yd)UN)7=NdhX_i&P29m3HpO=Y)Ig9^;mh17 z=mWWh>NmF|3IDg~9tSD-Cn-gEqX^=u+Z@X>bmY;#^exEH33#%H-c`nf)o00tAXtT& zv$rk8coi3I?x6tUTllH6A>7>|2Y00KK6uj_1y^M<*+|~I&Q%X+M zTG7+v;TfyxI$^l{T+x7yR=4Gn>u2@$)ze*h)*wunoTJTgq94YcH%-)~4elW+PfWrmY3=2i=lP3PMc)flSmaf@>=3%>Z4 zvSBGc2Fam~&ACq3J~k%qS`EJ2wBv53k;%|e8<_TxF=QoNI6fiQu6!VIV9KL=Eq;P# zta|hY^m)_yS^K%aD~|s&gwr2)zy7OQ?cb>K@$=ZfT><6i*!(Xan;h+|Z>AIY!crj8 zw4WOKq@M`gI{Q^*oU8{yUJCpC1kxo*JZU*gB+fQ~tI*o5RpEY(%cWDW$PU?gyL|9Tns2H%7C@es698#zOZ zMl69IjTR|KB53e!SQgXy(bgYI@!N*?ODFu4P^_lNN`ORvmClT>Qf`yc%F^U;DfnF9 zHY|Iagm??s2OA^+u<4e#C%IFUVw0Df&Y4LM#!mkh1P@9ej-30nq#*-Qwi zea~+eJqK=8Cv+z&;$i~zD<9_Ulb!M zJY70IK9pIMx>?zR^snBTpddOwvMn)RMlXwYp~+YMjzlCW+0=8SyB;vhgfIUEe`=e9 zOW=j=_t{R6e~4H-4thA7OP2yAGd|OI=j!(@i0(0(-mhk2K9W61kgq=43m|XRBbW6w z9cnV^ZC^|t%4rr|%ykWYqTv?^+zaQPdnYduGT-#7Sr7X~^`egj>2^<2L1_0|%!Ws$ zF7`vOzmoBG(z`LQ)V7j&`;~L&`?K&#KKK_5*-Yjtx@pbdM-w@-8R)zopu$_A=BYse z4eIwcGz`WTY-8nDH_)Ri_Are3&V<7Y;@fxnLt1WS%xp8|hjUfK@KM#rqY#_!OAZ$4S*?XiXrS1Hr;~Y6`K3jxm!aPyCp8y;2 zZUh$xLHw6PBlZSVAt52eM{v$jsjaHBu=viMrl*1n>a(~o{F_vk?pOBQ`Pg)mq^L_9 zymAn}iAi({DjTYg$AnZ`bX?Yv{=4r?1B z6)3;u1Q+QJGClTFB4kR+BAS<}BYn{^f8I@QDS#((*IVC+8?c(hW^{zPa3{Id4`v<* zcXwF#$$$qy(4$>#Q@!E|>4KjXt`rv?dcSy6Uuaroyr7klrFWuHOe?sQNP7&;H^p={ zP3a`d5UP4Om1PV4dAnD`nnqu9FPunaVWb^Ez;Hw4Sa;lfAA0p%EbRc4N2s5i;D;Ur zhJ)G99>7qrQ&J+Vq`%Kcl@+#uv`zPW{z|Qk++ek|&rr3~pT>3kD`G5%GE)Ykxngn{ zN$B!=vBi$QL3R0L<8(dA(X&y)TNz7r%&({U*cC>TB=KB!9=yCb z#XbDHQqgz6Hp8B*6}X7{3nQ0hN);Y#M75wVh2>YD9;7tswYn0~!N>bG#`Au8 z7xAU}=m2gUgN3QVsCNrhDRH0@5F2R;XqsV$LDW7Z?USJ|sKR3hJX;3}#LKJYl8g1t zUd+vIK~N0RD}&z7%XvB@Lt*<}80$4$ro>*vY>ZccIO_fZ;Kdq;ADmoMaZmha2w(ez z?#{4ar(BzA39k-0b(i23Hsj20+IG=X(KiFM0CV*5*})vBGVE)g1lRE3tEHmTK;%= zQ|U^Z_^i|O^3sRa0>O1TzPkzjqQ5V1_*0_)+r;Frk;%WTL|;#WM-*8wPGxRhue!K@ zOykhFCgMebE+y2*09p@w@DO$GgzM&Rc#)#2=VI@5Az3`#(2+U3Qx@!+ES0{-Wx(Eo z7(;F!-83|b-TMZ2+Qdt^;5??;eI=CvK|u0SE;P42BwMNaC0uiHIkQpVOtzwq8p|`* zA)&U&)zDJ;sC9*u`L(r3lTP}Yjg__h>OW4o5I&rv<=y8|S`m11#5p8dZ*SfTLnbJV zMcW*CWMrPK`@TH6F(?}|5)~Fqed?=J#@pqsNq+MR<-V#ULJ&+^JvVX3IPX<_Ai|wK z3xuRT;j^!*R)RCLYy>h^iaal0z;3Kt{tQMMC2`i5(EPuA zrabuzp~BPydVy?-pe2jKhyAhMSy?AI%f9 zLJE|#>)>QU8#M=bokNIQ5MXwme-sBu8np1Qtjig49!PM8S+LA~Z?ZVPf=-iy5sMV9 z896POrTpZd2-?9_d45fOFBc4=!7F!xjChOXn}81hRKNmrQ^VlX{N5Cr+Y8Lt$~Hrk zSVtPIxi;$e+zm=~EdqLcYLM|MiWL#~C|v6AV%CP^;ECZgneEG)&(>F^--0Cmb9s~o z8^pg4?y(i`Lmz;@z;?$o7^@;X@IIet4*~tZTe5)px$Uoz1s{?|LIdW{;_A48SfB5F z2mG!xm>LeUFI=c@I<#BiWx_Hv95R2ba@#_oLI|B{eDh!0Ub3mzpb zT<&p1pyk^%7QISAojW?MsEuIYsc&z?(*i*vy*_*0c@n0Ejfy`|3m*yuCi~XM29f`H zz=05&`@qK#qyc#H9^Fm@SgMS|#pE4AiUF3)v`&KRa(Af3U+~3m^OgQxAbeek7~RMA zes#5nd*EA1__&3z^nt>q$gw%b@YW6~Uj^erld3ZtgNp;@nmYrUT1TI+rZN|Sos=D$ zH3s58O?)$3Aub%Ur1zFDcyRROm z#P|fuoNvXMX?FWM_jL(e)#&tsIh%43v%(Y^odur{E3C%1CNJ6cI99=^wcfO&n<;UV z%U5@y>3uZYD{mLr>MT?3_eMm?kA_~8kNYA6?ey4DacL282*oSro7N@yEgDN;HdQK~ z)v)7tg+`|hWp6l}p!d;^Y71LM4C>Uu_OM|533jZ4u$qF&-bp{<7w z%BAiu^8%Y$B)?T$$u;H8)h}|8)iF{JTW$4@2+eXw2jgec)yJMK#Lrv3JEjz?q;$5Y zgFYPcIR(z^qp_>lJCisVB&2otrq8-z8{Ps>PfeVnC=GvRtUGX`Lz3Kn(89@O zBWPC5OW+{g7nB8opqZT?G^!;rt7PM!PcgyI=lae2rF*XyAPSUwC~_I(q$>{Kw6`&2 zSX!g6-YR^ohwnK#$%t(DvTrhlKSc{Lt5*iiQeLP^I7}AIDk;hF?1u0TsY%PR+CDN$ zHkY~DGJOve_vIxd|NAT8|9wjTw`WBDxeyQfM+x`;zPtXdT^D?wk8Z3ME+N_kBc+la z^1L`~86mr54R=E;BVG%ZGm(bEw1GwkYd|oQ&1eoH7yER|u6(-Z9ta;kv>}(eo3d*p zDc!Tukicp~V#wNTv}4@3ue6_~>Cnbrmi{%pUl+KupA4zw`EU-ZK%nhtMPWQrfM1J{ ze|Tq9i`D2+-uuh>?Ui+-rIauZi&a(xl~W9YyiQK5Un|!x$%5X$`Dl>9p3I@7qZMZv z^Iqj_P=}ON?Vw_ZqK=F6%@~CB%f5*(g=MC)@837&Lm6?!hD3b058P@vncbHr?`NY7Jz}kCESd6Fw?jf8LhhshNH*(5LCOBi-Z=3#Fp zV;Vh_c}U_B8Cn?{lHA2Lfg-`>$709z`7^)ty`RAs3q@DjxDDr=Kt{*1e@}n=;5>8T z;ZR}3z*qHCSXg1HqtIujp%_z;BXq=T_?ZE$ai5H?w-U^(gYQf==B|w^y)5h`i^g3h zmz9m~i6Gjs$!dv!=!<&tAgSO`OZ~@V{7r>0Z%oy~oCNIbSL%SxD^-t+l*} ze(sv&px&w2Hm#8`uE^h?aD^$1=y-CN=2R zhgy#$+c#;Kbu8>DkJFvoTXB=gh~b8(SmXr6Pb&Ep3F5TZ{Kx<2L0=4zobx0^EjhHkv1z5GCUs-dlr{^Ra>yYA-t@1qlN3@ z(a1oB_MSaN57SsPvQ5SZ1&)+Xsr37xL(E+qdA@gk@~=IVf4b-FfBTE{=l%VbJN!8w z|Fgz}{hFf$0{Bj>wi74Pg@M7R`~*D6EywW|B=(oHtaEqaB>apvoY4)`=VPo#ALxs&`Sh9c%rFOJ z{clqgeN8`7-_NZgRF&SqKYxZ1BYbX@5Qdt(TPXd+guNyU>IJuEO>`2^4aKxzxvx(#q99S%*s^uaY!6#9bz)y0?o! zs{FzqVfFw6XFl;u^hD>^CM@0&f&v8-IBZjnbu1rpb-dO~=8si;v4{T72n3&b56x$; zkUnFa8H^HN&e@ERYa+crW{No!pSa z%o`k5X_pgD5AJsd3B1jpA@1^&CW1}#`6!m&?aF|^9jEsb!NS?FOe6=iqX>U#jm#QEi9u# z=6!=r3yzTLKNAWf%4LGBZ@O;Ye5=KQa__wbF02N^`%Srs?&~+yN5k$>PI*|cxX>G9 znTw}ue68wqP6)qumo|c+JE>b|my2?uwJ&&+S@$%n8VTN8>c==ZSQDa;4^OyjGYiD*V zsX-i3NV5`>OsJ?-5`0C*nUVR~W2eZh{{0#w#&Kh~odVvwNE*Qd5rVPVu`CEmp-%u{ zcR|L}jsoMq%ZdGze}2k8f65y8@AS}gee_W!-8bJujQf(Uf2;iFv7!f{I;^Hi*6=CK zRrb!FDDo6;gpb^jYKvUDJ|&$=)0@2|6iL&e-S!tGLW2d`a=&-2+_s~rzJ$ro+sRqu z6&SN{xYz98epQLtCkCa+81!(`*W(qf$KHiZcm^63H1{8j96R(*F6%Iq(sV6sA#~Ez#T-n zbMlFJWO$TBsF<6tLY+s?N4~dT-bfn^vFI_}$P!gyJT!Xu!`SWkJfWoRFk$h|t)YxU zN6Wx6lW1ra#4GLws;)k7M0@wNW|p>}PZy@;!6+!-HazScoqRD{3d(BlOpbB&719XO zIYy6{>D%jYhvoFR-|TS8T{sXjlo&-IQ|wEYwd>-;GbL}%HtvyywCL-h;r5WB zH)S&AzQt`J7caMohMZ*JIz!j%+vsc{g2gtRbR6zOAE?HwZIHlq}w#hL<5vD~M>?3eBqc&GIG zbhp2}u}D~}@^SI9TtxaldYy3Ew^h?r)Kkm#l6d}i{PdIi+&h2tXVF(O)GF*Q`mj7h zHgK@(ad=6yYK>0qYB@n4MK;SF1m;OY3zn6qy*f-!my7PEGDm8DTmR@-fAsUm(Zj9u*}rC_{meZ3!$N+4 zIt%dUWS*f0^Jth&HQE}cXtJ&a?;`^`;&#n~jh^d{lVnaFW0SNqr|)sJ@SI_e$^@(v zL*{|Fb?R|=JhbPyYHr;8w(m>e#R0D~F%Rv%epK2O`J}9XZjJ$2RhIl)khXh0Sv~Zm z!?o4NNXhr*9iMcF%~`%%qI}4|B|dgiXYm11nKW;^V=ctzbgBhe=z>EPC*o;($K1Dp zxrc>p++!15_$p^**CA-NxRGt5S$&gwXJzHLiUgy|#*>Q^nTKqq-sjh86_Uo|o?oAe zQ5$KLe$Br}1R>X~&$P!ZC`HMh2RcG+LA|WhA!w^f?YoM86@6&60ea{VUWh&mVUCcb zdrE@SG|-_#tE}*iGfcm`cGb}#MpM+QAp{mtsilp$lJuqIk!l=%XHfLBSI>r*r;Muk zi7?RB?0IjW{l>tP^62lTxd+bFK41?x>gK^;UeHibRKy^F?=qbBHoZexGYqZ zAY1>6MQMYrBg-6AsHDktQ>0!QPnyF!x<>6dn>+P(>|qR%9eLBlx6_0Dn?pJL!Mv!e zO$Tx|qjOgLe!JGayo2}h8`Tf%$z1I+v>=vbj0$$-tz^%Ni8|VFvWgYq&wf&A?0+lR zB_}u2>n|Vk(m2_2Igean#4&2gbM=iW#`FNb)2nCCC^9(Fui!{|%7Y+8Hy@R-u3>+v zE=6TCkJh@-BUL~^@3EI}3UjTp(dtUjPHExV|Ka<3@CT7#k%vsw*`=wbwE4M8q__R5 z`sjt?>w0N}=f{h}p*wSL-GJqALnex#tY+k-;rvn;zrOjr+4;P&$6)8we#3fbb0oyK z;f{|0NXoTJ+k*5VsYh1wGRYc<_DYyg$XscJ-Hk^l`JJwR4CKP#;4N82Ppap7rz^1scNI>yA+V^y>H2+QO`8a+-u^qQHXoYnkAbF*^ z5ll{J*!OVz<|oc(e$S04D$JJam4WPMW$?6zpzG*Pk&!RfhZh!;xM=gMpv!JFp}aSG za8N|cHZO0~Xe4ZhdPJMvUI?7&(J!D*-C9kweiuD|N^ShRp)jxYHlLGX#U&Oxowzo! zn^&$!+`Y(KL%ZeGx(oY_YC_x3{NeQlm+4qd*k;95^eKlfhZLers7A0NXU1d`uVdxW zPa5a>c<^K=A!2^WUo8dnk2{gO{$nYuzus&6XGMaa6$yT>fq%I*5ZRI@s=}Mzx}!~> zze|#g?jAA`+Uz(%E53#}i1LE1l+QoGE|@jK^B@j7rpqac#QWEW2+0Qz^v#g~CGcGT zy0ReoxI`7f7bE~woI-wA;W1;c*91)7Y2O7_6YQE*4DL~vrm_r08IxK51^ulsX(I#T z#m+u{&BvQ~+_$gd1AL$uITId4;{=Uelc;Jb#c=AqVqHof32F-2Es0~?$O5Ji4c$9luI3eMNmfzBqI zp|C66OO&gBX&ABx+n|Z-^pOvS&*V*SK@1MU_ET=h&ZEw%gIq(i9Q4Uw8p>{>8^7Vk z4~%5Phwq?QpQnKWuQHS>@@?pQ46WtIAtJPTa+}Z)$vgl`btxU75YoY2Xb?JwWxc^T z*k2J>79hu~_V4LO%YZwM)r5~uG!64%dPKtR{c$p_0)+-F8D&pN5A5FbnSiOCNMYlRBD`7@-P>K z(&R4T3fBUcp2GAVZ&WqYKy}>qTVNsJx-E>eek_DWidOe>1U6KjS|nc;bY&G&B2{+o zbM##XPeuJhGi)9s0;*{SFVLn~m1*g0Ch|GBI z)}-jDMg3k_C--Cy-jBWiv!%^TvN~lB*XER>ltoSxy=Xao7F&ZcUKai(&}{J0-GUq( zYKoFDE?XCqkoF@|+a52PV4e1?O3mqq5ztIiDPrxPqcaZgXPL}69~xGrw*|Qp;x9cZ zL@$(ax7R6Zw2EQp+oG- ze(eBgg~JtQ1Dhp6eOehsNUHjk4#T@{?3NGP$vgTfu<9Iu=Z${sB-jHVjTiPDe3!!a z9Y@O_ld4b3P>3npafWlAWg^eReNI6ob6j>bfgCT#oV~%C29JYy7Sv$ZStZc3AYk4Q z7gj!mZeAcU(rV9dLDUfjk`g<}NwpinbNNwu-|AkNUAC@&n2;#C1#$K5AEoDysga#C z^f@-{s8Ppzv|9=~XEavYDP*%L7g=~_{$_BxP{?{TN=X}XYvu;Dm$MGV<2r$-E;$>U z%MtT)vK=^R$B0!M@AHl7z84Ajvo>lTb!oabfKvXNY0t|+lA5SbR%p=Tee~w~`7ve} z55e(kN7%3;L7R2!236fyg013>-jXD0lEC9t=l9MI&d$fBS8R^O-FNKplXsbF_do5! zIXd3$*4XAYCo#)=EJXUM`|w4^Pbzqk4%so#^BzM?92~vg>c$mPmHlnNw_4*}2ptRa zDcyGqQPBv#0%DJa&4^Y6<}ly@408_ODhnT)UG47vWOmgh-sYIrk<&bk?D!#yT#qD< z&2+|mZ}*KiGIxx<9sJ#IJ$rWJ6rbGD15H*chf4+-I$Vc1Gzi{N7FUyWtiH#;L&e<^ zaEF|0ER$_K-On^D@}!lblp`?al@KQ7oIQ8}8guaUgAxCjz#3>}J*y0_e~g*ZuZ0x! z+>#B3F0|#ZC}h@4w{aa#c{j;eCQCn~!mFD}&N2evoZL97TGBp$D{)*lU2F5}TvN*- z)`|g-Bhk*!YzE7}Dj)T^QV#Nz(99@55+-bwi+;)VXU`JOfQjoTq$RQ-ZpK5Dx|ilouV$%WW4bw^2!0*XZ2 zci=_@$W5U96z@}zO4YUnA@ycS%#MyokBcFUqpH3?z)(5$`&Lm!5i~`L;VTtyYdYG6 zs|;Bbe%v9Ds&u{sPLzk!6hP0T-+XVBM--_CT1*qRUTbBU;Uwn@YnKOElXPZ?rbs(> z*}21at`;o{C?8-Zk!XZ(>|e%HSTG=D1y}If4|+}t`O~C~p#!LbxkI%17a&9FypDc) zyPwjx$c%wcH6A8O?$kr${t5`Prr&8`M-9zH54)l%?w|m(pF}j&-<7gyp#iQ$#6RIW zdC6*x(D@ZQZ=@=-cwS$C97hVQqbcVh6L@^6M}%n2;BAE)IZ4KW0ofHwW8D5dkOF_d zfG|y62wl~f^1)K>RW`z-t7U^r`upviOV?})@1jY)t)=93LZiZY)NNf_zi!h;{0@JG z1+rGP7`jcl2&f@rTM)t|I8g6mKt!lO<)ZyFmcd}#T~98egf;N(~E5n#aHf?Sv%+Jex7ms)rR zjLpXZjQ2(I^;f<(--&H_x`q-~i#aJi6e$wFAA!>naPCYH_=praT^7z_g)au%R1}Q( zjB@1&EMyq#&;=UH`&L?zmWGGe&d<=op-Ui_+@hKbv9h7@;ONSd*nafvG6Y@gO%gyM zL!uGI;BJ`UBR42&=7&cf*Ke9bX@cpPQLu)F7PPW8Xw;Xq`(4e|az60b1&1?DH0raV zHf@LvcrNS7fjI9G-?j~N^y)!$Z8HfBZE$JUl;;+tcg9H~5)1vlSE=pA zpP^}rZW`MpGL3OX>YfCfEgSk(kK{Lae?{aL#2B))1tA-opMrUhn7_f;ech%>;XsId zeb0}>0k!H5-@H_HM(kV*a>X!y5nXly-km$acidkwhsMzq7CJ~aBkbK2!BVp{C}N*c zzFUwGWkLF$W;9La*MfiI`}DRyr3r$mF$Z&2uLB~7_*w8-C`}Oj-@J(;^22ctcI?i& z1@htgnhoE0V9Z_x-ze1Acu^mtqkgr|S1ymNQBD%9;VY9kivD()_S0(=If6AW&I&=3 z`}Ge>;8~zmFHlj4=Y`*_R7wyauMg{XkFWTZm_^}=Fw zmE)d`)a)d!j-dr3V{EPn?I2yPL=!x8BL9sr_0D&&)a~`j14QCVPxHn%1h{>}TfH0) zhrBPnft!F}g(<93Dz$X5O|oO97(q;BG4qr3QFcl>j%e%#tMsj21SzyetfT&}->DY( zs`2FET61n>)yNz_^$r041baauBKYtE%1RAxvKvQEgnY1wFsFA)5h$XZ$4p(5Xn@np zAlQuj#5I<4@`hoIG8Rme*x>tMYqZYp8|eu;To7D@scmCiPTk!@un08C3YWw;-W66O zhYdGQ5t8{x6{=KwL9)$o{LDzyS)xBvR5b^RtDJnhj(844t>zZIWVv!w&IJmR0D8$> zs+J_?P={D2KQH4RY?o7y9@^u>FyJF)N9Kfezd#11K%A5r{l=9AanPj9f~^#Bxm9_%sx=HFAPB{nFhob5~f_yc@VF= zz&B4jxKMEQ))%fm%ccC!# zAC{{SG#Sv%@GyvgbVp%qS=1^F=wj-X!Tudh%*@xNA~2LI*wtn9bMOeK^{`P5>+x(7 zZ<6seybAA2HBSqQFpgbf1NZ;2_vL|5?`_{BmC7>7PE4hugceH)Qwd3uWM3vpwva5L z;YYI56qTYHS)weHY*{j7nN+r{*@t8cGu9twe%>$VoclTVd7g8h_kQmCxu55K-t$)) zW0voFU7yeO`CQ?q;GFO^AzLOj5u0w^_1r};o17}^vE=VA08D-MP&JTuZ77J685FT<^_A)9Hb}D9m zDhI^|324K_l2nA>h#-!A2b^;@cD!M2tmz;>7ovWuM-S1^ks z4&bkCS9KfZs;V#_GFvqTy>oz4jCJokLqYG-&k!d~wVAvPY)OsgoA3_sO$pu2Y0D^| zFRqL)8L3tEEL!t;t*h7`O&oAE>1Z^60`V}oCA#UVPq00)F4O4;0Eblm#kZHwu9qe? zOqrHrX>2rZgo{@OHl5BNy^NaZsfOkp^27?0wGom*HZ<=H?jKVWSzS%EJC{5+bn z7moW6fuR4=u7ba3!1w3lf8SjEx|c5i`+nW;Yh~T7v^^o)PA*6sg4#7)zC8f;^?&VE zkNUfeu_J3&NQKcJ7mVGP%~j9f10c>j?(*?nTuDejGq;E>lyP+6Eq9!h;*#iGW6Yo` z2)c$a=W|)U>YWL;o7i^8%i?mlI@g`l?e`;Z?U`Anw2ZY&kyGR;*^=eC>L9LEY$0|^@(P{`#VP#8`z9w1KinPsNG!GLQ^X=oLcm5#>`uM zVD6=arZnUdS44b{<(o#htGN@Vs=pjmc$GF^eZXj@wb`^0%G;iIrw@hx`of;??Kj59 zWVcRYrj1uy1#4B05b^XhBaD6Dy;B;;Y)0;lG@o0qkSUY$5`Uz5;=H7L=HZd+xe95| z2M>5_+F8$^<0jl+a}3$$DD}Pzsn;JO!Vi0);q$FgAwkL}Zq!0|og0>U{NyVNBXg2r zH!O-Z<}V)JdYL6=Y)oH^21U4&)>yz-yGIUD_VJiivY)yoA9LhV=SJ)4tsGqMbWrw; zo##}A?02Hrg~H~U(`|bO-p(HJJ2bK}>C8O`iBmBjZV0jDclo^w_~D(^S!TLBn@Zv` z8}5j1FEX3lBcD4_RdD1g-(|ri%9B=L)fB|g_NGhe($5jJjITc5zi<77PF?chI?#`L z5-rxuBKw}{*QDQoJG-CV!nEdN?}@KHlg}>ioYE41GKCgkqTtlG3ggRt!_tqaK;@8lOq`mf7ST zEm9*W)5=Mi2=>-H#<7fw1Bd$cA*54}7K>=z0ojBTdB&}o++Mm3d{$5V(LsB%;}To@ zTCzjTmF{>&D80_LbM_^kJ8{fXkoH7LrOR_m%~i}tuPhw8@RL;z=F>buTt$*K9>!6k z{I*F_HInzMV7*l|6V-3@xr8o$Gg4?%d?;L_XfK_tbF^wYTcq*$MO9BB%3(3Mg@y~t z15IqbLM)m+cwQ(A=l0;A=~O%n4fgC4EE6A6p`5OMlTCjxSDfk4!_zjiko&1P@npfh zCr2z5o^Psr#ca6FQeK5}_A;uN*Q6B9hY#i7)V|ql?DYKpB@Mj-w>RLmPp@Gade+k2 z#%Y`8HK1OSr@F&p$F%M{b7_Ys~&G``CZ@)cw6S1;2iLFZ-C3)9Lp&r9K!sI)-)}v38D3 zz8DVN*J+Mg&ImUgf^ajfzQtAuMDsVfbl%%2v1{wxJY$iEa7NRF+d}Z*>kk*NZxBa~tM84&jrC z$J@C66JJC>_U`BI^DQrv7_;b(v3U1NerCU#Tiwhp{T*Ch6@2Ht=F)#b$@wTSv0v^0oUgvg-5=rAZQq@`1G%609#L&(DJD5~+z6g|=^=XBm3L1A#8Y6S*A+M9hw*aJ zqq~H*0blZh{qF;XRU!Z}DL1|y^I={>Wli%lA=vSiSD-;iC3&;O?#HT*7TdjpSvtLj zbqiF#&4?ADSWy=@{ccm)zw4HKpapE!51^U;%cwbP%k;n6eIT^`XN&Uwe7%2Dv;8?1 z{~wLTh4bBJWgFwXk|-7vY|{xF?J{cc>d(uOVv{D2clnL5P0MSzh`}e&v(F?O17-vo zV-{GCiE{FN(5CB_H83Z6j4|_D3#Qh;)TR@uGn$fTMQ|f8#}^%8oZ`%c$I6a#Vl(DIyc9tl>clO$fv4vJ8;-e*%U37~Z^Uz)PKK zTt@8yiN54Yq91g?O_t#c63faapJi0?Jw{CeV|@d_iwHz+uV`zerNep|bqsVGbsiD? z^d@aqg73VAwRRxWImH&UG@XXz4Q*V)dP#2m(2-1Onb4fkGui?3^a&z!vC72B?i%KX z1g;{Spw}hzY^nGc5DWS(9#}@@80_)e0n1?C^*;q*LZN3ABg&?VW=mz@Zd7Cw=O?bX ze4o888&tYJWCFfY1}>=}^5cXJgK$pYVZZq>C-hQ4=fb8GiR${0Y&w(tc2PPRWG0t0 z;gWTIFw_E@X|Oc|ZN}){AC^K50KPIvvmQ@hA z7+{$RT+9HNff2j{(40OUh3#X~{TODNB+>#1NL@5&afvkFCVtUheWGD~R1CP^a2%aO zU+-YmjyL+rYtNVHQ(^4b6OrtNs#VBQm$3uG571m3eSHgd>_Iei65v2@;Q+-&07eVg zj}4kyFB~Qr0{5kKgby1A))Q4GTN)LTMBqxUkBt}ZkzQqy>5@#VhqqqA0PaqcjdZJJDgzkJ+@8YE_ zb($`91~-lB@wJ=)izufpLGRdBb7&);O`x0B@^TsF{gfPU@D>sA+ACX3^#x?uJ7-`6 z_cGCczco$scH(y|`|vAY_1idxjv1jMju$(cYjFfH$;X*eXTwn>(V!>T(adeS^VVxJ ze#frqFOsYCTTnZnur$Yg_aKCpq8kd>mrGH1(_hI4lt03~_GzaY zV6zJ0)ol9h4mL- z*Gv_li2@eFC*uV}E<%`LHMT}u#CO|&MI zR;cw5Dv{q_b>C|NC7ZG%dIV^tkExtoq7tV=E+3ex>nb62Kbi+SD&sIOOD4wwv*TMg zCsKGFxVbgfqzR(*hZFyj{rmzv3GLMT9KS0{)K~Dbp+$WV{-`%G&rZpFVeGp}b?;|G z&{Fk-Ib$D9z6W2=(GDb8(SpmUnJrTMV|}{*S%(Hk3i!V+qn;`L)BrXPY+22+r@Nb> zN>XL%j%<}%7BXyoyqMNlgfArWYPI`h*kV50$)eDY*n`WcFRQJFa=@OC^i*StR12$& z-ih#V*i5Xl#@5AoV51C`RfDKZbxnQVVnO7(BvYy-EdjkdhJq;Ni+H#M6$r2v<`F+L z*W^P=sS;H{&r@AY0|!Ws%I6~Yt88taO^ZfvfQ0KPTO}q?$-kEG3l3D`8jd+z9AjgQCmDMh>se7LZq;LAji871rQ}q9~l&=UjMIpFpn&UDc zaGJdM(@!Hex2$Wdb?SJY@gBfhc+(~x&T)O2J1 z0Y(?J7lniMOwDohv3??t8sJ17plHBOopsp!qyvAFzV9$_N2V<7PsZ{o8>JH9CwRG* z2J}1Wq{l`xXV7&ifdg%~D?(>QEX>Zt6m@lgbF)+nn}Rxo@ZE?QSYckneadF0FWDm3 z&qMFo=rU+{9=;E_CyT3;+1*9j=y2fh@A}Q_Va=gs6n5QnKth&fJ^W3T+B ziM$74?hzOijHz0`Y$V8_GH8~B!=h&tPm}9RXC1)0gQ!R0cs2$euP}`ri|Rujr+{lV zWncqnH$}bjT7~+6xS+XuVB#1u(i*ZrXLqCD4jTUoddvcr$YM8mghmNVP?^3`;^!>Y zBAI}e!ga8gKhLk_%4C^|ZgyQbknW1VLF0YY{nA_=VJ1KEJJyzbFg>gFT-lts{CNur z9iply(SEnjWRUJO*f#3)cq*g4vtN?3G`C{jTr5z9VXd9V>!cFqzjZRoGEMN}RB#@* zdEL;80k-A!)22zX6@+!Q^Ci;Bgn4NL=q@jdvL&bsYX1uAf?^tci?%`1EuI+e;Tvq5 z$CTVtnGwk@-yEODQZfE7>Lxim(et8h3;SOkWT0W+Z42&-k&7wcdRuByHyX{$4}U(S z3BVt#0K`Dr8&5{zIk$gQg9MghH5UW*R%%yfAo^IAS9q`J8jBZf$dRA>?(T^Q_0FNs zgK;5rXdx%h6N5@+B0z=E9!IqfyAIu3xuy7S)A05`~o^2y^H#9o0ruVM%0D?s@zKW1s~7jOsSuLcGtz}LTVjcq><9budL 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%0DYsvLn{k-tY#Z~>e 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

tA_I+o?PCgh(R1PNT(HJ6Mf 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⫬ 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

%PlL$+M*)Ir&nBH{WsFW+6z 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�HEE}xe4qLXk0M}#jN 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

#+Zm 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 n05Je!0K@=@0T2Tq20#pe7yvN diff --git a/ros/src/computing/planning/decision/packages/decision_maker/docs/MissionStates.jpg b/ros/src/computing/planning/decision/packages/decision_maker/docs/MissionStates.jpg index 4db6e81a120d5ed796c04f54fca0405ac7d68273..321fa1a6ef8e8d403cba4a85ac24e5907105c2da 100644 GIT binary patch literal 239848 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

8aMa4CzYtb_w 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 U|DSq${-0_A```7s{`~&G0AXiiE&u=k literal 259175 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⁢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 diff --git a/ros/src/computing/planning/decision/packages/decision_maker/docs/VehicleStates.jpg b/ros/src/computing/planning/decision/packages/decision_maker/docs/VehicleStates.jpg index 149af93781824bd6a7fef1947cebac5104254c7e..2f38fe0f91b7c23fe1e550df351e0d8c4a56aac1 100644 GIT binary patch delta 71681 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�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 delta 77152 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%0AQ7aEtTb$RbN<=)(>X-sYs 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 From d3fbd2ee0a4e49428f0f64372aa6ddbe93fa264d Mon Sep 17 00:00:00 2001 From: dimethylether Date: Fri, 4 Jan 2019 20:28:49 +0900 Subject: [PATCH 086/139] updated state description in readme --- .../packages/decision_maker/README.md | 153 +++++++++++------- 1 file changed, 93 insertions(+), 60 deletions(-) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/README.md b/ros/src/computing/planning/decision/packages/decision_maker/README.md index e214703dca5..34cdfd7654d 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/README.md +++ b/ros/src/computing/planning/decision/packages/decision_maker/README.md @@ -44,7 +44,7 @@ Topic|Type|Objective /current_pose|geometry_msgs/PoseStamped|Current pose of vehicle /current_velocity|geometry_msgs/TwistStamped|Current velocity of vehicle /filtered_points|sensor_msgs/PointCloud2|Used to check if sensor data is ready. This is meant to give pointcloud data used for ndt_matching. -/final_waypoints|autoware_msgs/Lane| +/final_waypoints|autoware_msgs/Lane|resultant waypoints from planner nodes, e.g. from velocity_set node. /obstacle_waypoint|std_msgs/Int32|Obstacle waypoint index. Used in "Go" state. /state_cmd|std_msgs/String|Decision_maker will try to transit state according to the key given through this topic. /vector_map_info/area|vector_map_msgs/AreaArray|Area information from vector map.
This is ignored unless area, cross_road, line, point, road_sign, stop_line, and vector are subscribed. @@ -64,83 +64,116 @@ Topic|Type|Objective /decision_maker/state|std_msgs/String|current state for "Vehicle", "Mission", and "Drive" state machine. /lamp_cmd|autoware_msgs/LampCmd|blinker command to vehicle (0=straight, 1=right, 2=left) /lane_waypoints_array|autoware_msgs/LaneArray|waypoints passed down to following planners. (e.g. lane_rule) -/light_color_managed|autoware_msgs/TrafficLight| -/state/cross_inside_marker|visualization_msgs/Marker| -/state/cross_road_marker|visualization_msgs/MarkerArray| -/state/crossroad_bbox|jsk_recognition_msgs/BoundingBoxArray| -/state/overlay_text|jsk_rviz_plugins/OverlayText|Current state as overlay_txt -/state/stopline_target|visualization_msgs/Marker| -/state/stopline_wpidx|std_msgs/Int32| -/target_velocity_array|std_msgs/Float64MultiArray| - -## Basic Usage in Autoware -1. Launch Autoware and localization on real vehicle or wf_simulator -2. Launch `decision_maker` and lane_planner, astar_planner, waypoint_follower -3. When `VehicleReady` and `WaitOrder` state, launch `waypoint_loader` -4. On `DriveReady` state, push `Engage` button on DecisionMakerPannel -5. When the vehicle reaches the end of waypoint and stops, state Mission state transits to `WaitOrder` via the `MissionComplete` -6. You can repeat from 3. with other waypoint +/light_color_managed|autoware_msgs/TrafficLight|meant to publish light_color status. Not implemented yet. +/state/cross_inside_marker|visualization_msgs/Marker|visualization of objectes inside cross roads. Not implemented yet. +/state/cross_road_marker|visualization_msgs/MarkerArray|visualization of crossroads. Not implemented yet. +/state/crossroad_bbox|jsk_recognition_msgs/BoundingBoxArray| visualization of crossroads by bounding box. Not implemented yet. +/state/overlay_text|jsk_rviz_plugins/OverlayText|Current state as overlay_txt. +/state/stopline_target|visualization_msgs/Marker| Visualization of referenced stop line. Not implemented yet. +/state/stopline_wpidx|std_msgs/Int32|Index of waypoint for the vehicle to stop. +/target_velocity_array|std_msgs/Float64MultiArray| Array of target velocity obtained from final_waypoints. - -## Requirements of each state or behavior +## State Desctription ### Vehicle States -State name|Group|Required topic|Description +State name|Group|Required topic|Description|Implementation --|--|---|-- -Init|Init|-|The parent state of the following states. -SensorInit|Init|/filtered_points|Waits until /filtered_points is received unless wf_simulator node is launched. -MapInit|Init||Waits until vector_map is loaded unless disuse_vector_map is set true. -LocalizationInit|Init|/current_pose|waits until current_pose is converged. (i.e. ndt_matching is stable.) -PlanningInit|Init|/closest_waypoint|Do initialization for planning. Currently, only subscriber is set for /closest_waypoint. -VehicleInit|Init|-|Waits until vehicle is ready for departure. Currently nothing is implemented and goes to Vehicle Ready. -VehicleReady|-|-|Exits to VehicleEmergency when `emergency` key is given by state_cmd from other states, or if `emergency_flag` is set true by other states. -VehicleEmergency|-|-|Waits until `return_from_emergency` key is by /state_cmd (e.g. by DecisionMakerPanel) +Init|Init|-|The parent state of the following states.|- +SensorInit|Init|/filtered_points|Waits until all sensors are ready.|Waits until /filtered_points is received unless wf_simulator node is launched. +MapInit|Init||Waits until vector map is ready|Waits until vector_map is subscribed if disuse_vector_map is set false. +LocalizationInit|Init|/current_pose|Waits until localizer is ready | Waits until current_pose is converged. (i.e. ndt_matching is stable.) +PlanningInit|Init|/closest_waypoint|Waits unil planners are ready | Subscriber is set for /closest_waypoint. +VehicleInit|Init|-|Waits until vehicle is ready for departure.|No implementation goes directly to vehilce ready state. +VehicleReady|-|-|Vehicle is ready to move.|Exits to VehicleEmergency when `emergency` key is given by state_cmd from other states, or if `emergency_flag` is set true by other states. +VehicleEmergency|-|-|Emergency is detected somewhere in the system. |Waits until `return_from_emergency` key is by /state_cmd (e.g. by DecisionMakerPanel) ### Mission States -State name|Group|Required topic|Description +State name|Group|Required topic|Description|Implementation --|--|---|-- -WaitVehicleReady|-||Waits until vehicle_is_ready key is given.(e.g. from Vehicle State Machine) -WaitOrder|-|/based_lane_array|wayits until base_lane_array is received. -MissionCheck|-||waits until /final_waypoints (from planner nodes) and /current_waypoint are received. -DriveReady|-||Waits until engage or mission_canceled key is given. -Driving|-||Sets operation_start key. Goes to MissionAborted in case of emergency. -DrivingMissionChange|-|| -MissionChangeSucceeded|-|| -MissionChangeFailed|-|| -MissionComplete|-|| -MissionAborted|-||Throws operation_end to Drving State Machine. Then, go to wait order automatically if use_management_system is false, otherwise waits until goto_wait_order key is given by management system. - -- ##### Initialize - -State name|Required topic|Description +WaitVehicleReady|-||Waits until vehicle setup is done|Waits until vehicle_is_ready key is given from Vehicle State Machine +WaitOrder|-|/based_lane_array|wayits until mission is given. | waits until base_lane_array is received. +MissionCheck|-|/final_waypoints
/current_waypoint|Waits until all the planners are ready. |Waits until /final_waypoints (from planner nodes) and /current_waypoint are received. +DriveReady|-||Given Mission is approved and vehicle is ready to move. |Waits until engage or mission_canceled key is given. +Driving|-||The vehicle is driving. According to the planner nodes|Sets operation_start key. Goes to MissionAborted in case of emergency. +DrivingMissionChange|-|/based/lane_waypoints_array|Waits for new mission while the vehicle keeps driving. | Waits until new /based/lane_waypoints_array is sent from management system. Then, checks if the waypoint is compatible or not depending on change_threshold_dist and change_threshold_angle parameters. Publish the new mission as /lane_waypoints_array if compatible. +MissionChangeSucceeded|-||New waypoints are compatible and vehicle will start following the new mission. | Throws return_to_driving key after 1 second if use_management_system is set false. +MissionChangeFailed|-||New waypoints are NOT compatible and vehicle will continue following the old mission. | Throws return_to_driving key after 1 second if use_management_system is set false. +MissionComplete|-||Vehicle has reached the goal.|If use_management_system is false and auto_mission_reload is true, go to MissionCheck state. Otherwise, got to WaitOrder state after 1 second. +MissionAborted|-||Mission is aborted by other nodes(e.g. by AMS). | Throws operation_end to Drving State Machine. Then, go to wait order automatically if use_management_system is false, otherwise waits until goto_wait_order key is given by management system. + +### Driving States +State name|Required topic|Description|Implementation --|---|-- -Init|-|The parent state of the following states. -SensorInit|/filtered_points| -MapInit|| -LocalizationInit|/current_pose| -PlanningInit|/closest_waypoint| -VehicleInit|-| +WaitReady|-|Waits until vehicle setup is done|Waits until vehicle_is_ready key is given from Vehicle State Machine +WaitEngage|-|Waits for engage button in DecisionMakerPanel to be pressed|Waits until engage key is given by DecisionMakerPanel +DriveEmergency|-|Vehicle is stopping due to emergency |Throws mission_aborted key +Drive|/closest_waypoint|Vehicle drives according to the waypoint|mission_aborted key if waypoint is far from the vehicle.(i.e. vehicle moves out of the waypoint) Throws arrived_goal key if vehicle is near the end of the waypoints. +LaneArea|/final_waypoints|Vehicle is driving within lanes| Throws on_bus_stop key if waypoint state has bus stop event, otherwise, throws on_cruise key. +Cruise|-|Vehicle Drives along the waypoint|Throws on_left_turn, on_right_turn, on_straight, lane_change_left, or lane_change_right key depending on waypoint state and change flags. +Straight|-|Vehicle is driving along lane (i.e. not turning at intersection)| publish /lamp_cmd to clear blinkers +Stop|-|vehicle is stopping since stop signal is sent from other nodes (e.g. by stop button on decisionMakerPanel)|Publishes /state/stopline_wpidx with the index = closest_waypoint + 1. +Wait|-|Vehilce is waiting (e.g. due to safety reason)|Publishes /state/stopline_wpidx with the index = closest_waypoint + 1. +Go|-|Vehicle is moving|Throws found_stopline if stopline is nearby. Throws completely_stopped if vehicle stops due to obstacle. +StopLine|/vector_map_info/stop_line|Vehicle is stopping due to stop line|Throws clear key after vehicle stops for 0.5 seconds. +TryAvoidance|-|Vehicle trys to avoid obstacle. Not implemented yet|No implementation. +CheckAvoidance|-|Checks if obstalce avoidance is safe or not. Not implemented yet|No implementation. +Avoidance|-|Vehicle is avoiding obstacle. Not implemented.|No implementation. +ReturnToLane|-|Goes back to lane after avoiding obstacle. Not implemented.|- +LeftTurn|-|Vehicle is turning left at intersection. Change blinker to left. | Publish /lamp_cmd to change blinker. +L_Stop|-|Same as Stop State|Same as Stop State +L_Wait|-|Same as Wait State|Same as Wait State +L_Go|-|Same as Go State|Same as Go State +L_StopLine|-|Same as StopLine State|Same as StopLine State +RightTurn|-|Vehicle is turning right at intersection. Change blinker to right. | Publish /lamp_cmd to change blinker. +R_Stop|-|Same as Stop State|Same as Stop State +R_Wait|-|Same as Wait State|Same as Wait State +R_Go|-|Same as Go State|Same as Go State +R_StopLine|-|Same as StopLine State|Same as StopLine State +Back|-|Vehicle is moving backwards|Publish /lamp_cmd to clear blinkers +B_Stop|-|Same as Stop State|Same as Stop State +B_Wait|-|Same as Wait State|Same as Wait State +B_Go|-|Same as Go State|Same as Go State +B_StopLine|-|Same as StopLine State|Same as StopLine State +LeftLaneChange|-|Vehicle is switching to left lane|publish /lamp_cmd to change blinker to left. +CheckLeftLane|-|Check if it is safe to change lane to left|No implementation. +ChangeToLeft|-|Change to left lane|No implementation. +RightLaneChange|-|Vehicle is switching to right lane|publish /lamp_cmd to change blinker to right. +CheckRightLane|-|Check if it is safe to change lane to left|No implementation. +ChangeToRight|-|Change to left lane|No implementation. +BusStop|-|Vehicle is approaching to bus stop| No implementation. +PullOver|-|Vehicle is pulling over to bus stop| publish /lamp_cmd to change blinker to left. +PullOut|-|Vehicle is pulling out from bus stop|publish /lamp_cmd to change blinker to right. +FreeArea|-|Vehicle is driving in free space(e.g. parking area)|No implementation. +Parking|-|Vehicle is parking|Publish /lamp_cmd to change blinker to hazard. + +## Basic Usage in Autoware -- ##### Ready to driving - 1. Launch Autoware and localization on real vehicle or wf_simulator - 2. Launch `decision_maker` and lane_planner, astar_planner, waypoint_follower - 3. When `VehicleReady` and `WaitOrder` state, launch `waypoint_loader` - 4. On `DriveReady` state, push `Engage` button on DecisionMakerPannel - 5. When the vehicle reaches the end of waypoint and stops, state Mission state transits to `WaitOrder` via the `MissionComplete` - 6. You can repeat from 3. with other waypoint +### Start Driving +1. Launch Autoware and localization on real vehicle or wf_simulator +2. Launch `decision_maker` and lane_planner, astar_planner, waypoint_follower +3. When `VehicleReady` and `WaitOrder` state, launch `waypoint_loader` +4. On `DriveReady` state, push `Engage` button on DecisionMakerPannel +5. When the vehicle reaches the end of waypoint and stops, state Mission state transits to `WaitOrder` via the `MissionComplete` +6. You can repeat from 3. with other waypoint -- ##### Move backward +### Move backward -- ##### Lane change +### Lane change 1. Start Normal driving with waypoint files necessary for lane change 2. On `CheckLeft` or `RightLane` state, push `Execute LaneChange` button on DecisionMakerPannel 3. The vehicle start lane change -- ##### Stop at stop line +### Stop at stop line -- ##### Driving mission change +### Driving mission change 1. Prepare waypoint files to change, and start Normal driving 2. On `Driving` state, push `Request mission change` button on DecisionMakerPannel 3. When the state becomes `DrivingMissionChange`, please load another waypoint for change 4. If it is possible to change the waypoint will switch, otherwise it will not be changed + +### Obstacle avoidance + +### Pull over & Pull out + +### Emergency stop From b3af883bc8ef52d0de9be1a7194398314bf779eb Mon Sep 17 00:00:00 2001 From: dimethylether Date: Fri, 4 Jan 2019 20:35:26 +0900 Subject: [PATCH 087/139] fixed typo in state description in readme --- .../packages/decision_maker/README.md | 44 ++++++++++--------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/README.md b/ros/src/computing/planning/decision/packages/decision_maker/README.md index 34cdfd7654d..b5e5cd6e389 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/README.md +++ b/ros/src/computing/planning/decision/packages/decision_maker/README.md @@ -6,8 +6,10 @@ Each status is managed by state machine. ### Vehicle + ### Mission + ### Driving @@ -74,32 +76,32 @@ Topic|Type|Objective /target_velocity_array|std_msgs/Float64MultiArray| Array of target velocity obtained from final_waypoints. -## State Desctription +## State Description ### Vehicle States -State name|Group|Required topic|Description|Implementation +State name|Required topic|Description|Implementation --|--|---|-- -Init|Init|-|The parent state of the following states.|- -SensorInit|Init|/filtered_points|Waits until all sensors are ready.|Waits until /filtered_points is received unless wf_simulator node is launched. -MapInit|Init||Waits until vector map is ready|Waits until vector_map is subscribed if disuse_vector_map is set false. -LocalizationInit|Init|/current_pose|Waits until localizer is ready | Waits until current_pose is converged. (i.e. ndt_matching is stable.) -PlanningInit|Init|/closest_waypoint|Waits unil planners are ready | Subscriber is set for /closest_waypoint. -VehicleInit|Init|-|Waits until vehicle is ready for departure.|No implementation goes directly to vehilce ready state. -VehicleReady|-|-|Vehicle is ready to move.|Exits to VehicleEmergency when `emergency` key is given by state_cmd from other states, or if `emergency_flag` is set true by other states. -VehicleEmergency|-|-|Emergency is detected somewhere in the system. |Waits until `return_from_emergency` key is by /state_cmd (e.g. by DecisionMakerPanel) +Init|-|The parent state of the following states.|- +SensorInit|/filtered_points|Waits until all sensors are ready.|Waits until /filtered_points is received unless wf_simulator node is launched. +MapInit||Waits until vector map is ready|Waits until vector_map is subscribed if disuse_vector_map is set false. +LocalizationInit|/current_pose|Waits until localizer is ready | Waits until current_pose is converged. (i.e. ndt_matching is stable.) +PlanningInit|/closest_waypoint|Waits unil planners are ready | Subscriber is set for /closest_waypoint. +VehicleInit|-|Waits until vehicle is ready for departure.|No implementation goes directly to vehilce ready state. +VehicleReady|-|Vehicle is ready to move.|Exits to VehicleEmergency when `emergency` key is given by state_cmd from other states, or if `emergency_flag` is set true by other states. +VehicleEmergency|-|Emergency is detected somewhere in the system. |Waits until `return_from_emergency` key is by /state_cmd (e.g. by DecisionMakerPanel) ### Mission States -State name|Group|Required topic|Description|Implementation +State name|Required topic|Description|Implementation --|--|---|-- -WaitVehicleReady|-||Waits until vehicle setup is done|Waits until vehicle_is_ready key is given from Vehicle State Machine -WaitOrder|-|/based_lane_array|wayits until mission is given. | waits until base_lane_array is received. -MissionCheck|-|/final_waypoints
/current_waypoint|Waits until all the planners are ready. |Waits until /final_waypoints (from planner nodes) and /current_waypoint are received. -DriveReady|-||Given Mission is approved and vehicle is ready to move. |Waits until engage or mission_canceled key is given. -Driving|-||The vehicle is driving. According to the planner nodes|Sets operation_start key. Goes to MissionAborted in case of emergency. -DrivingMissionChange|-|/based/lane_waypoints_array|Waits for new mission while the vehicle keeps driving. | Waits until new /based/lane_waypoints_array is sent from management system. Then, checks if the waypoint is compatible or not depending on change_threshold_dist and change_threshold_angle parameters. Publish the new mission as /lane_waypoints_array if compatible. -MissionChangeSucceeded|-||New waypoints are compatible and vehicle will start following the new mission. | Throws return_to_driving key after 1 second if use_management_system is set false. -MissionChangeFailed|-||New waypoints are NOT compatible and vehicle will continue following the old mission. | Throws return_to_driving key after 1 second if use_management_system is set false. -MissionComplete|-||Vehicle has reached the goal.|If use_management_system is false and auto_mission_reload is true, go to MissionCheck state. Otherwise, got to WaitOrder state after 1 second. -MissionAborted|-||Mission is aborted by other nodes(e.g. by AMS). | Throws operation_end to Drving State Machine. Then, go to wait order automatically if use_management_system is false, otherwise waits until goto_wait_order key is given by management system. +WaitVehicleReady|-|Waits until vehicle setup is done|Waits until vehicle_is_ready key is given from Vehicle State Machine +WaitOrder|/based_lane_array|wayits until mission is given. | waits until base_lane_array is received. +MissionCheck|/final_waypoints
/current_waypoint|Waits until all the planners are ready. |Waits until /final_waypoints (from planner nodes) and /current_waypoint are received. +DriveReady|-|Given Mission is approved and vehicle is ready to move. |Waits until engage or mission_canceled key is given. +Driving|-|The vehicle is driving. According to the planner nodes|Sets operation_start key. Goes to MissionAborted in case of emergency. +DrivingMissionChange|/based/lane_waypoints_array|Waits for new mission while the vehicle keeps driving. | Waits until new /based/lane_waypoints_array is sent from management system. Then, checks if the waypoint is compatible or not depending on change_threshold_dist and change_threshold_angle parameters. Publish the new mission as /lane_waypoints_array if compatible. +MissionChangeSucceeded|-|New waypoints are compatible and vehicle will start following the new mission. | Throws return_to_driving key after 1 second if use_management_system is set false. +MissionChangeFailed|-|New waypoints are NOT compatible and vehicle will continue following the old mission. | Throws return_to_driving key after 1 second if use_management_system is set false. +MissionComplete|-|Vehicle has reached the goal.|If use_management_system is false and auto_mission_reload is true, go to MissionCheck state. Otherwise, got to WaitOrder state after 1 second. +MissionAborted|-|Mission is aborted by other nodes(e.g. by AMS). | Throws operation_end to Drving State Machine. Then, go to wait order automatically if use_management_system is false, otherwise waits until goto_wait_order key is given by management system. ### Driving States State name|Required topic|Description|Implementation From dcc46c3f67e06832c829c996e1b2420ec5f65955 Mon Sep 17 00:00:00 2001 From: mitsudome-r <43976834+mitsudome-r@users.noreply.github.com> Date: Fri, 4 Jan 2019 20:37:56 +0900 Subject: [PATCH 088/139] Update README.md --- .../planning/decision/packages/decision_maker/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/README.md b/ros/src/computing/planning/decision/packages/decision_maker/README.md index b5e5cd6e389..5c5b828eebe 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/README.md +++ b/ros/src/computing/planning/decision/packages/decision_maker/README.md @@ -105,7 +105,7 @@ MissionAborted|-|Mission is aborted by other nodes(e.g. by AMS). | Throws operat ### Driving States State name|Required topic|Description|Implementation ---|---|-- +--|--|---|-- WaitReady|-|Waits until vehicle setup is done|Waits until vehicle_is_ready key is given from Vehicle State Machine WaitEngage|-|Waits for engage button in DecisionMakerPanel to be pressed|Waits until engage key is given by DecisionMakerPanel DriveEmergency|-|Vehicle is stopping due to emergency |Throws mission_aborted key From 5603f1edf688d96edb93fdb64bf214e94501aedd Mon Sep 17 00:00:00 2001 From: Azumi SUZUKI Date: Tue, 8 Jan 2019 18:07:24 +0900 Subject: [PATCH 089/139] change output dot file name of state_machine_lib. --- .../include/state_machine_lib/state_context.hpp | 5 ++++- ros/src/common/libs/state_machine_lib/src/state_context.cpp | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ros/src/common/libs/state_machine_lib/include/state_machine_lib/state_context.hpp b/ros/src/common/libs/state_machine_lib/include/state_machine_lib/state_context.hpp index 758abf64b2b..69bc9020fe1 100644 --- a/ros/src/common/libs/state_machine_lib/include/state_machine_lib/state_context.hpp +++ b/ros/src/common/libs/state_machine_lib/include/state_machine_lib/state_context.hpp @@ -41,12 +41,15 @@ class StateContext bool isCurrentState(const std::string& state_name); + std::string dot_output_name; + public: StateContext(const std::string& file_name, const std::string& msg_name) { createStateMap(file_name, msg_name); root_state_ = getStartState(); - createDOTGraph("/tmp/" + msg_name + ".dot"); + dot_output_name = "/tmp/" + msg_name + ".dot"; + createDOTGraph(dot_output_name); } ~StateContext() diff --git a/ros/src/common/libs/state_machine_lib/src/state_context.cpp b/ros/src/common/libs/state_machine_lib/src/state_context.cpp index 15f7f817b37..7b41abad3e8 100644 --- a/ros/src/common/libs/state_machine_lib/src/state_context.cpp +++ b/ros/src/common/libs/state_machine_lib/src/state_context.cpp @@ -77,7 +77,6 @@ bool StateContext::isCurrentState(const std::string& state_name) void StateContext::nextState(const std::string& transition_key) { - const std::string dot_output_name = "/tmp/a.dot"; std::shared_ptr state = root_state_; std::string _target_state_name; std::vector key_list; @@ -115,7 +114,9 @@ void StateContext::nextState(const std::string& transition_key) in_state = in_state->getChild(); } while (in_state); +#ifdef DEBUG createDOTGraph(dot_output_name); +#endif state_map_.at(transition_state_id)->setEnteredKey(transition_key); state_map_.at(transition_state_id)->onEntry(); } @@ -128,7 +129,9 @@ void StateContext::nextState(const std::string& transition_key) root_state_->setChild(nullptr); root_state_->setParent(nullptr); root_state_->setEnteredKey(transition_key); +#ifdef DEBUG createDOTGraph(dot_output_name); +#endif root_state_->onEntry(); } From ea0eb3e7397cc92a4e20569d210fa65ea4c1d283 Mon Sep 17 00:00:00 2001 From: Azumi SUZUKI Date: Wed, 9 Jan 2019 16:36:50 +0900 Subject: [PATCH 090/139] fixed function to get angle diff in drivingMissionCheck function. --- .../nodes/decision_maker/decision_maker_node_callback.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp index fca5d0ac9d0..ef8bdb42af0 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp @@ -261,7 +261,7 @@ bool DecisionMakerNode::drivingMissionCheck() } double angle_diff_degree = - fabs(amathutils::calcPosesAngleDiffRaw(current_status_.pose, nearest_wp_pose)) * 180 / M_PI; + fabs(amathutils::calcPosesAngleDiffDeg(current_status_.pose, nearest_wp_pose)); if (min_dist > change_threshold_dist_ || angle_diff_degree > change_threshold_angle_) { return false; From 5e596fa8dccfdbb669b419f53bcd6063f8354eff Mon Sep 17 00:00:00 2001 From: Azumi SUZUKI Date: Thu, 17 Jan 2019 17:35:18 +0900 Subject: [PATCH 091/139] fix bug if the vehicle stops due to obstacle while StopLine state. --- .../nodes/decision_maker/decision_maker_node_state_drive.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp index 636b6779eb2..78424dc9ce8 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp @@ -357,7 +357,7 @@ void DecisionMakerNode::updateStoplineState(cstring_t& state_name, int status) static bool timerflag = false; static ros::Timer stopping_timer; - if (current_status_.velocity == 0.0 && !timerflag) + if (current_status_.velocity == 0.0 && !timerflag && (current_status_.obstacle_waypoint + current_status_.closest_waypoint) == current_status_.found_stopsign_idx) { stopping_timer = nh_.createTimer(ros::Duration(0.5), [&](const ros::TimerEvent&) { From 30084fbf2407f475f96fa588fd86f37ac44a5c5b Mon Sep 17 00:00:00 2001 From: Azumi SUZUKI Date: Thu, 17 Jan 2019 17:50:33 +0900 Subject: [PATCH 092/139] remove unused state: Avoidance --- .../decision_maker/autoware_state_drive.yaml | 43 ------------------- .../include/decision_maker_node.hpp | 9 ---- .../decision_maker_node_callback.cpp | 1 - .../decision_maker_node_init.cpp | 17 -------- .../decision_maker_node_state_drive.cpp | 42 ------------------ .../msg/ConfigDecisionMaker.msg | 1 - .../runtime_manager/scripts/computing.yaml | 6 --- 7 files changed, 119 deletions(-) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_drive.yaml b/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_drive.yaml index 12669b0b63c..21418bf9656 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_drive.yaml +++ b/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_drive.yaml @@ -251,49 +251,6 @@ autoware_states_drive: - Key: found_stopline Target: StopLine - - - Key: completely_stopped - Target: TryAvoidance - Parent: Straight - - - StateName: TryAvoidance - Transition: - - - Key: found_path - Target: CheckAvoidance - - - Key: cannot_found_path - Target: Go - Parent: Straight - - - StateName: CheckAvoidance - Transition: - - - Key: execute_avoidance - Target: Avoidance - - - Key: avoidance_aborted - Target: Go - Parent: Straight - - - StateName: Avoidance - Transition: - - - Key: completed_avoidance - Target: ReturnToLane - - - Key: avoidance_aborted - Target: Go - Parent: Straight - - - StateName: ReturnToLane - Transition: - - - Key: completed_return - Target: Go - - - Key: avoidance_aborted - Target: Go Parent: Straight - StateName: Back diff --git a/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp b/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp index e5c5e96580f..e44f13b299c 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp @@ -178,7 +178,6 @@ class DecisionMakerNode uint32_t param_num_of_steer_behind_; double change_threshold_dist_; double change_threshold_angle_; - double time_to_avoidance_; double goal_threshold_dist_; double goal_threshold_vel_; int stopline_reset_count_; @@ -312,10 +311,6 @@ class DecisionMakerNode void entryDriveState(cstring_t& state_name, int status); void entryTurnState(cstring_t& state_name, int status); void entryGoState(cstring_t& state_name, int status); - void entryTryAvoidanceState(cstring_t& state_name, int status); - void entryCheckAvoidanceState(cstring_t& state_name, int status); - void entryAvoidanceState(cstring_t& state_name, int status); - void entryReturnToLaneState(cstring_t& state_name, int status); void entryLaneChangeState(cstring_t& state_name, int status); void entryDriveEmergencyState(cstring_t& state_name, int status); void entryStopState(cstring_t& state_name, int status); @@ -345,10 +340,6 @@ class DecisionMakerNode void updateCheckRightLaneState(cstring_t& state_name, int status); void updateChangeToLeftState(cstring_t& state_name, int status); void updateChangeToRightState(cstring_t& state_name, int status); - void updateTryAvoidanceState(cstring_t& state_name, int status); - void updateCheckAvoidanceState(cstring_t& state_name, int status); - void updateAvoidanceState(cstring_t& state_name, int status); - void updateReturnToLaneState(cstring_t& state_name, int status); // exit callback void exitStopState(cstring_t& state_name, int status); void exitDriveEmergencyState(cstring_t& state_name, int status); diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp index ef8bdb42af0..c57acfc569c 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp @@ -50,7 +50,6 @@ void DecisionMakerNode::callbackFromConfig(const autoware_config_msgs::ConfigDec param_num_of_steer_behind_ = msg.num_of_steer_behind; change_threshold_dist_ = msg.change_threshold_dist; change_threshold_angle_ = msg.change_threshold_angle; - time_to_avoidance_ = msg.time_to_avoidance; goal_threshold_dist_ = msg.goal_threshold_dist; goal_threshold_vel_ = msg.goal_threshold_vel; disuse_vector_map_ = msg.disuse_vector_map; diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_init.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_init.cpp index 85e0f97e12b..9b0407a594b 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_init.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_init.cpp @@ -230,23 +230,6 @@ void DecisionMakerNode::setupStateCallback(void) ctx_drive->setCallback(state_machine::CallbackType::EXIT, "B_Stop", std::bind(&DecisionMakerNode::exitStopState, this, std::placeholders::_1, 1)); - ctx_drive->setCallback(state_machine::CallbackType::ENTRY, "TryAvoidance", - std::bind(&DecisionMakerNode::entryTryAvoidanceState, this, std::placeholders::_1, 0)); - ctx_drive->setCallback(state_machine::CallbackType::UPDATE, "TryAvoidance", - std::bind(&DecisionMakerNode::updateTryAvoidanceState, this, std::placeholders::_1, 0)); - ctx_drive->setCallback(state_machine::CallbackType::ENTRY, "CheckAvoidance", - std::bind(&DecisionMakerNode::entryCheckAvoidanceState, this, std::placeholders::_1, 0)); - ctx_drive->setCallback(state_machine::CallbackType::UPDATE, "CheckAvoidance", - std::bind(&DecisionMakerNode::updateCheckAvoidanceState, this, std::placeholders::_1, 0)); - ctx_drive->setCallback(state_machine::CallbackType::ENTRY, "Avoidance", - std::bind(&DecisionMakerNode::entryAvoidanceState, this, std::placeholders::_1, 0)); - ctx_drive->setCallback(state_machine::CallbackType::UPDATE, "Avoidance", - std::bind(&DecisionMakerNode::updateAvoidanceState, this, std::placeholders::_1, 0)); - ctx_drive->setCallback(state_machine::CallbackType::ENTRY, "ReturnToLane", - std::bind(&DecisionMakerNode::entryReturnToLaneState, this, std::placeholders::_1, 0)); - ctx_drive->setCallback(state_machine::CallbackType::UPDATE, "ReturnToLane", - std::bind(&DecisionMakerNode::updateReturnToLaneState, this, std::placeholders::_1, 0)); - ctx_vehicle->nextState("started"); ctx_mission->nextState("started"); ctx_drive->nextState("started"); diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp index 78424dc9ce8..2db20057342 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp @@ -301,7 +301,6 @@ void DecisionMakerNode::updateParkingState(cstring_t& state_name, int status) void DecisionMakerNode::entryGoState(cstring_t& state_name, int status) { - setEventFlag("entry_go_state", true); setEventFlag("entry_stop_state", false); } void DecisionMakerNode::updateGoState(cstring_t& state_name, int status) @@ -313,19 +312,6 @@ void DecisionMakerNode::updateGoState(cstring_t& state_name, int status) tryNextState("found_stopline"); } - static double stopped_time; - if (current_status_.velocity == 0.0 && current_status_.obstacle_waypoint != -1 && !isEventFlagTrue("entry_go_state")) - { - if (ros::Time::now().toSec() - stopped_time > time_to_avoidance_) - { - tryNextState("completely_stopped"); - } - } - else - { - stopped_time = ros::Time::now().toSec(); - } - setEventFlag("entry_go_state", false); } void DecisionMakerNode::updateWaitState(cstring_t& state_name, int status) @@ -385,34 +371,6 @@ void DecisionMakerNode::exitStopState(cstring_t& state_name, int status) } } -void DecisionMakerNode::entryTryAvoidanceState(cstring_t& state_name, int status) -{ -} -void DecisionMakerNode::updateTryAvoidanceState(cstring_t& state_name, int status) -{ -} - -void DecisionMakerNode::entryCheckAvoidanceState(cstring_t& state_name, int status) -{ -} -void DecisionMakerNode::updateCheckAvoidanceState(cstring_t& state_name, int status) -{ -} - -void DecisionMakerNode::entryAvoidanceState(cstring_t& state_name, int status) -{ -} -void DecisionMakerNode::updateAvoidanceState(cstring_t& state_name, int status) -{ -} - -void DecisionMakerNode::entryReturnToLaneState(cstring_t& state_name, int status) -{ -} -void DecisionMakerNode::updateReturnToLaneState(cstring_t& state_name, int status) -{ -} - void DecisionMakerNode::entryDriveEmergencyState(cstring_t& state_name, int status) { setEventFlag("emergency_flag", true); diff --git a/ros/src/msgs/autoware_config_msgs/msg/ConfigDecisionMaker.msg b/ros/src/msgs/autoware_config_msgs/msg/ConfigDecisionMaker.msg index 975beb3ec08..ea5a847fb1c 100644 --- a/ros/src/msgs/autoware_config_msgs/msg/ConfigDecisionMaker.msg +++ b/ros/src/msgs/autoware_config_msgs/msg/ConfigDecisionMaker.msg @@ -6,6 +6,5 @@ bool disuse_vector_map uint32 num_of_steer_behind float64 change_threshold_dist float64 change_threshold_angle -float64 time_to_avoidance float64 goal_threshold_dist float64 goal_threshold_vel diff --git a/ros/src/util/packages/runtime_manager/scripts/computing.yaml b/ros/src/util/packages/runtime_manager/scripts/computing.yaml index cc56fc32586..c3624f7fe86 100755 --- a/ros/src/util/packages/runtime_manager/scripts/computing.yaml +++ b/ros/src/util/packages/runtime_manager/scripts/computing.yaml @@ -2014,12 +2014,6 @@ params : min : 0.0 max : 90.0 v : 15.0 - - name : time_to_avoidance - desc : The stop time until the state transitions to Avoidance state after the vehicle stops due to the obstacle. - label : time_to_avoidance[s] - min : 0.0 - max : 60.0 - v : 3.0 - name : points_topic desc : points_topic kind : str From 94eef61c00eae8403373efc488a42823681bbc91 Mon Sep 17 00:00:00 2001 From: Azumi SUZUKI Date: Fri, 18 Jan 2019 14:41:22 +0900 Subject: [PATCH 093/139] add state transition return from emergency to ready state --- .../packages/decision_maker/autoware_state_mission.yaml | 3 +++ .../packages/decision_maker/autoware_state_vehicle.yaml | 3 +++ 2 files changed, 6 insertions(+) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_mission.yaml b/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_mission.yaml index ef76fd79464..1753ff5da6a 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_mission.yaml +++ b/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_mission.yaml @@ -97,4 +97,7 @@ autoware_states_mission: - Key: return_from_emergency Target: WaitVehicleReady + - + Key: return_to_ready + Target: DriveReady Parent: ~ diff --git a/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_vehicle.yaml b/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_vehicle.yaml index 66b842f88db..06c26c609c3 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_vehicle.yaml +++ b/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_vehicle.yaml @@ -62,4 +62,7 @@ autoware_states_vehicle: - Key: return_from_emergency Target: Init + - + Key: return_to_ready + Target: VehicleReady Parent: ~ From 54224cb8f6e1283474df2a277f161188c13c666d Mon Sep 17 00:00:00 2001 From: Azumi SUZUKI Date: Fri, 18 Jan 2019 16:33:14 +0900 Subject: [PATCH 094/139] add automatically engage and automatically mission change function, and those checkbox to runtime_manager --- .../include/decision_maker_node.hpp | 4 ++++ .../decision_maker_node_callback.cpp | 2 ++ .../decision_maker_node_state_mission.cpp | 17 +++++++++++++++-- .../msg/ConfigDecisionMaker.msg | 2 ++ .../runtime_manager/scripts/computing.yaml | 8 +++++--- 5 files changed, 28 insertions(+), 5 deletions(-) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp b/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp index e44f13b299c..582a39cb9c1 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp @@ -173,6 +173,8 @@ class DecisionMakerNode // Param bool enableDisplayMarker; bool auto_mission_reload_; + bool auto_engage_; + bool auto_mission_change_; bool use_management_system_; bool disuse_vector_map_; uint32_t param_num_of_steer_behind_; @@ -383,6 +385,8 @@ class DecisionMakerNode : private_nh_("~") , enableDisplayMarker(false) , auto_mission_reload_(false) + , auto_engage_(false) + , auto_mission_change_(false) , use_management_system_(false) , param_num_of_steer_behind_(30) { diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp index c57acfc569c..d2ebf09c005 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp @@ -46,6 +46,8 @@ void DecisionMakerNode::callbackFromConfig(const autoware_config_msgs::ConfigDec ROS_INFO("Param setted by Runtime Manager"); enableDisplayMarker = msg.enable_display_marker; auto_mission_reload_ = msg.auto_mission_reload; + auto_engage_ = msg.auto_engage; + auto_mission_change_ = msg.auto_mission_change; use_management_system_ = msg.use_management_system; param_num_of_steer_behind_ = msg.num_of_steer_behind; change_threshold_dist_ = msg.change_threshold_dist; diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_mission.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_mission.cpp index 8c40d23d96f..7563881fd5f 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_mission.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_mission.cpp @@ -111,16 +111,23 @@ void DecisionMakerNode::entryDriveReadyState(cstring_t& state_name, int status) void DecisionMakerNode::updateDriveReadyState(cstring_t& state_name, int status) { + if (!use_management_system_ && auto_engage_) + { + tryNextState("engage"); + } } void DecisionMakerNode::entryDrivingState(cstring_t& state_name, int status) { - tryNextState("operation_start"); + setEventFlag("received_based_lane_waypoint", false); if (isEventFlagTrue("emergency_flag")) { tryNextState("mission_aborted"); + return; } + + tryNextState("operation_start"); } void DecisionMakerNode::updateDrivingState(cstring_t& state_name, int status) { @@ -128,6 +135,11 @@ void DecisionMakerNode::updateDrivingState(cstring_t& state_name, int status) { tryNextState("mission_aborted"); } + + if (!use_management_system_ && auto_mission_change_ && isEventFlagTrue("received_based_lane_waypoint")) + { + tryNextState("request_mission_change"); + } } void DecisionMakerNode::exitDrivingState(cstring_t& state_name, int status) { @@ -135,7 +147,8 @@ void DecisionMakerNode::exitDrivingState(cstring_t& state_name, int status) void DecisionMakerNode::entryDrivingMissionChangeState(cstring_t& state_name, int status) { - setEventFlag("received_based_lane_waypoint", false); + if (!auto_mission_change_) + setEventFlag("received_based_lane_waypoint", false); } void DecisionMakerNode::updateDrivingMissionChangeState(cstring_t& state_name, int status) diff --git a/ros/src/msgs/autoware_config_msgs/msg/ConfigDecisionMaker.msg b/ros/src/msgs/autoware_config_msgs/msg/ConfigDecisionMaker.msg index ea5a847fb1c..02aa18adb61 100644 --- a/ros/src/msgs/autoware_config_msgs/msg/ConfigDecisionMaker.msg +++ b/ros/src/msgs/autoware_config_msgs/msg/ConfigDecisionMaker.msg @@ -1,6 +1,8 @@ Header header bool enable_display_marker bool auto_mission_reload +bool auto_engage +bool auto_mission_change bool use_management_system bool disuse_vector_map uint32 num_of_steer_behind diff --git a/ros/src/util/packages/runtime_manager/scripts/computing.yaml b/ros/src/util/packages/runtime_manager/scripts/computing.yaml index c3624f7fe86..1c9e5a0a3b4 100755 --- a/ros/src/util/packages/runtime_manager/scripts/computing.yaml +++ b/ros/src/util/packages/runtime_manager/scripts/computing.yaml @@ -726,16 +726,18 @@ subs : gui : dialog_width : 400 dialog_height : 600 - use_fms: + enable_display_marker: + flags : [ nl ] + use_management_system: flags : [ nl ] auto_mission_reload: depend : use_management_system depend_bool : 'lambda v : v == 0' auto_engage: - depend : use_fms + depend : use_management_system depend_bool : 'lambda v : v == 0' auto_mission_change: - depend : use_fms + depend : use_management_system depend_bool : 'lambda v : v == 0' From b672aca7d2b6a7bd55893d8cd19bb9fc4a9706cc Mon Sep 17 00:00:00 2001 From: Azumi SUZUKI Date: Wed, 23 Jan 2019 14:29:31 +0900 Subject: [PATCH 095/139] remove unused variables & functions --- .../include/decision_maker_node.hpp | 57 ------------------- .../decision_maker_node_callback.cpp | 3 - .../decision_maker_node_init.cpp | 6 -- .../decision_maker_node_publish.cpp | 31 ---------- 4 files changed, 97 deletions(-) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp b/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp index 582a39cb9c1..ac9aa9b126b 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp @@ -125,37 +125,8 @@ class DecisionMakerNode AutowareStatus current_status_; - // ROS Messages - std_msgs::String state_string_msg; - geometry_msgs::PoseStamped current_pose_; - - jsk_rviz_plugins::OverlayText state_text_msg; - - // ROS Messages(Autoware) - autoware_msgs::Lane current_finalwaypoints_; - vector_map_msgs::AreaArray vMap_Areas; - vector_map_msgs::PointArray vMap_Points; - vector_map_msgs::LineArray vMap_Lines; - vector_map_msgs::CrossRoadArray vMap_CrossRoads; - - std::vector inside_points_; - - tf::TransformListener tflistener_baselink; - - int closest_stop_waypoint_; - int closest_stopline_waypoint_; - int goal_waypoint_; - autoware_msgs::Waypoint CurrentStoplineTarget_; - - double average_velocity_; - int closest_waypoint_; - CrossRoadArea* ClosestArea_; - std::string CurrentStateName; - std::string TextOffset; std::vector intersects; - double displacement_from_path_; - bool foundOtherVehicleForIntersectionStop_; // In fact this should be defined as state. class DetectionArea { public: @@ -184,19 +155,9 @@ class DecisionMakerNode double goal_threshold_vel_; int stopline_reset_count_; - // for vectormap server - // ros::ServiceClient cross_road_cli; - // vector_map_server::GetCrossRoad cross_road_srv; - - // initialization flags for initialized by callback - std::mutex vMap_mutex; - bool created_shift_lane_flag_; - // initialization method void initROS(); void initVectorMap(void); - void initStateMsgs(void); - bool initVectorMapClient(void); void createSubscriber(void); void createPublisher(void); @@ -204,21 +165,8 @@ class DecisionMakerNode // looping method void update(void); void update_msgs(void); - void update_pubsub(void); void publishToVelocityArray(); - int createCrossRoadAreaMarker(visualization_msgs::Marker& crossroad_marker, double scale); - - /* for planning according to state*/ - void publishStoppedLaneArray(void); - void publishControlledLaneArray(void); - void updateLaneWaypointsArray(void); - void changeVelocityBasedLane(void); - void changeVelocityLane(int dir); - void createShiftLane(void); - void changeShiftLane(void); - void removeShiftLane(void); - void setAllStoplineStop(void); void publishOperatorHelpMessage(cstring_t& message); void publishLampCmd(const E_Lamp& status); @@ -228,7 +176,6 @@ class DecisionMakerNode /* decision */ void tryNextState(cstring_t& key); bool isArrivedGoal(void); - bool isCrossRoadByVectorMapServer(const autoware_msgs::Lane& lane_msg, const geometry_msgs::PoseStamped& pose_msg); bool isLocalizationConvergence(const geometry_msgs::Point& _current_point); void insertPointWithinCrossRoad(const std::vector& _intersects, autoware_msgs::LaneArray& lane_array); void setWaypointState(autoware_msgs::LaneArray& lane_array); @@ -237,9 +184,6 @@ class DecisionMakerNode bool drivingMissionCheck(void); double calcIntersectWayAngle(const autoware_msgs::Lane& laneinArea); - double calcPosesAngleDiff(const geometry_msgs::Pose& p_from, const geometry_msgs::Pose& p_to); - double calcPosesAngleDiffN(const geometry_msgs::Pose& p_from, const geometry_msgs::Pose& p_to); - double getPoseAngle(const geometry_msgs::Pose& p); uint8_t getSteeringStateFromWaypoint(void); uint8_t getEventStateFromWaypoint(void); @@ -355,7 +299,6 @@ class DecisionMakerNode void callbackFromLaneChangeFlag(const std_msgs::Int32& msg); void callbackFromFinalWaypoint(const autoware_msgs::Lane& msg); void callbackFromLaneWaypoint(const autoware_msgs::LaneArray& msg); - void callbackFromTwistCmd(const geometry_msgs::TwistStamped& msg); void callbackFromSimPose(const geometry_msgs::PoseStamped& msg); void callbackFromConfig(const autoware_config_msgs::ConfigDecisionMaker& msg); void callbackFromStateCmd(const std_msgs::String& msg); diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp index d2ebf09c005..95346d6bb08 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp @@ -295,9 +295,6 @@ void DecisionMakerNode::callbackFromFinalWaypoint(const autoware_msgs::Lane& msg current_status_.finalwaypoints = msg; setEventFlag("received_finalwaypoints", true); } -void DecisionMakerNode::callbackFromTwistCmd(const geometry_msgs::TwistStamped& msg) -{ -} void DecisionMakerNode::callbackFromClosestWaypoint(const std_msgs::Int32& msg) { diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_init.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_init.cpp index 9b0407a594b..b4120dc974c 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_init.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_init.cpp @@ -261,12 +261,6 @@ void DecisionMakerNode::createPublisher(void) Pubs["lamp_cmd"] = nh_.advertise("/lamp_cmd", 1); // for visualize status - Pubs["crossroad_marker"] = nh_.advertise("/state/cross_road_marker", 1); - Pubs["stopline_target"] = nh_.advertise("/state/stopline_target", 1); - - Pubs["crossroad_inside_marker"] = private_nh_.advertise("/state/cross_inside_marker", 1); - Pubs["crossroad_bbox"] = private_nh_.advertise("/state/crossroad_bbox", 10); - Pubs["state"] = private_nh_.advertise("state", 1, true); Pubs["state_overlay"] = private_nh_.advertise("/state/overlay_text", 1); Pubs["available_transition"] = private_nh_.advertise("available_transition", 1, true); diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_publish.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_publish.cpp index c240c766270..3f1113e831f 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_publish.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_publish.cpp @@ -76,37 +76,6 @@ void DecisionMakerNode::publishOperatorHelpMessage(cstring_t& message) Pubs["operator_help_text"].publish(createOverlayText(joined_msg, 0)); } -void DecisionMakerNode::update_pubsub(void) -{ -} - -int DecisionMakerNode::createCrossRoadAreaMarker(visualization_msgs::Marker& crossroad_marker, double scale) -{ - jsk_rviz_plugins::OverlayText ret; - - // message setup - ret.width = 500; - ret.height = 500; - ret.top = 10 + (column * 500); - ret.left = 10; - ret.bg_color.r = 0; - ret.bg_color.g = 0; - ret.bg_color.b = 0; - ret.bg_color.a = 0.8; - - ret.line_width = 2; - ret.text_size = 9; - ret.font = "DejaVu Sans Mono"; - ret.fg_color.r = 1.0; - ret.fg_color.g = 1.0; - ret.fg_color.b = 0.5; - ret.fg_color.a = 0.9; - - ret.text = data; - - return ret; -} - void DecisionMakerNode::update_msgs(void) { #if 1 From 91c6e0d9f2d3f5f4fa846842758654d73f322c23 Mon Sep 17 00:00:00 2001 From: Kenji Funaoka Date: Thu, 24 Jan 2019 17:18:21 +0900 Subject: [PATCH 096/139] Revert dp_planner to split the changes into #1919 --- .../dp_planner/include/dp_planner_core.h | 2 + .../dp_planner/launch/dp_planner.launch | 48 ++++++++++--------- .../dp_planner/nodes/dp_planner_core.cpp | 39 ++++++++++++++- 3 files changed, 64 insertions(+), 25 deletions(-) diff --git a/ros/src/computing/planning/motion/packages/dp_planner/include/dp_planner_core.h b/ros/src/computing/planning/motion/packages/dp_planner/include/dp_planner_core.h index 7feda87e5c2..e21fabbca11 100644 --- a/ros/src/computing/planning/motion/packages/dp_planner/include/dp_planner_core.h +++ b/ros/src/computing/planning/motion/packages/dp_planner/include/dp_planner_core.h @@ -139,6 +139,8 @@ class PlannerX std::vector m_LogData; + bool enablePlannerDynamicSwitch; + protected: //ROS messages (topics) diff --git a/ros/src/computing/planning/motion/packages/dp_planner/launch/dp_planner.launch b/ros/src/computing/planning/motion/packages/dp_planner/launch/dp_planner.launch index a6f2a449271..e70b84dfc47 100644 --- a/ros/src/computing/planning/motion/packages/dp_planner/launch/dp_planner.launch +++ b/ros/src/computing/planning/motion/packages/dp_planner/launch/dp_planner.launch @@ -1,52 +1,52 @@ - + - - + + - - + + - + - + - + - + - + - + - + - + - + @@ -55,39 +55,41 @@ - - + + - + - + - + - + - + - + - + + + diff --git a/ros/src/computing/planning/motion/packages/dp_planner/nodes/dp_planner_core.cpp b/ros/src/computing/planning/motion/packages/dp_planner/nodes/dp_planner_core.cpp index 5fd8659bc13..2cecd6fde59 100644 --- a/ros/src/computing/planning/motion/packages/dp_planner/nodes/dp_planner_core.cpp +++ b/ros/src/computing/planning/motion/packages/dp_planner/nodes/dp_planner_core.cpp @@ -71,6 +71,8 @@ PlannerX::PlannerX() m_ObstacleTracking.m_dt = 0.12; m_ObstacleTracking.m_bUseCenterOnly = true; + enablePlannerDynamicSwitch = false; + int iSource = 0; nh.getParam("/dp_planner/mapSource", iSource); @@ -93,6 +95,12 @@ PlannerX::PlannerX() std::string topic_prefix; + nh.getParam("/dp_planner/enablePlannerDynamicSwitch", enablePlannerDynamicSwitch); + if(enablePlannerDynamicSwitch){ + topic_prefix = "/dp"; + pub_LocalTrajectoriesRviz_dynamic = nh.advertise("local_trajectories_dynamic", 1); + pub_EnableLattice = nh.advertise("enableLattice", 1); + } pub_LocalPath = nh.advertise(topic_prefix + "/final_waypoints", 100,true); pub_LocalBasePath = nh.advertise(topic_prefix + "/base_waypoints", 100,true); @@ -108,7 +116,7 @@ PlannerX::PlannerX() pub_DetectedPolygonsRviz = nh.advertise("detected_polygons", 1, true); pub_TrackedObstaclesRviz = nh.advertise("dp_planner_tracked_boxes", 1); pub_LocalTrajectoriesRviz = nh.advertise("local_trajectories", 1); - + pub_TestLineRviz = nh.advertise("testing_line", 1); pub_BehaviorStateRviz = nh.advertise("behavior_state", 1); pub_SafetyBorderRviz = nh.advertise("safety_border", 1); @@ -762,10 +770,37 @@ void PlannerX::PlannerMainLoop() pub_LocalPath.publish(current_trajectory); visualization_msgs::MarkerArray all_rollOuts; - + ROSHelpers::ConvertFromPlannerHToAutowareVisualizePathFormat(m_LocalPlanner.m_Path, m_LocalPlanner.m_RollOuts, m_LocalPlanner, all_rollOuts); pub_LocalTrajectoriesRviz.publish(all_rollOuts); + //Publish markers that visualize only when avoiding objects + if(enablePlannerDynamicSwitch){ + visualization_msgs::MarkerArray all_rollOuts_dynamic; + std_msgs::Int32 enableLattice; + if(iDirection != 0) { // if obstacle avoidance state, + all_rollOuts_dynamic = all_rollOuts; + + for(auto &ro : all_rollOuts_dynamic.markers){ + ro.ns = "global_lane_array_marker_dynamic"; + } + pub_LocalTrajectoriesRviz_dynamic.publish(all_rollOuts_dynamic); + enableLattice.data = 1; + }else{ + visualization_msgs::Marker delMarker; +#ifndef ROS_KINETIC + delMarker.action = visualization_msgs::Marker::DELETE; +#else + delMarker.action = visualization_msgs::Marker::DELETEALL; +#endif + delMarker.ns = "global_lane_array_marker_dynamic"; + all_rollOuts_dynamic.markers.push_back(delMarker); + pub_LocalTrajectoriesRviz_dynamic.publish(all_rollOuts_dynamic); + enableLattice.data = 0; + } + pub_EnableLattice.publish(enableLattice); //Publish flag of object avoidance + } + if(m_CurrentBehavior.bNewPlan) { From 4bdc2ce11d8c79059712857e6007953679244ef8 Mon Sep 17 00:00:00 2001 From: Kenji Funaoka Date: Thu, 24 Jan 2019 17:25:16 +0900 Subject: [PATCH 097/139] Revert dp_planner to split the changes into #1919 --- .../waypoint_planner/src/velocity_set/velocity_set.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ros/src/computing/planning/motion/packages/waypoint_planner/src/velocity_set/velocity_set.cpp b/ros/src/computing/planning/motion/packages/waypoint_planner/src/velocity_set/velocity_set.cpp index 07df490ba36..cfcdd2698f7 100644 --- a/ros/src/computing/planning/motion/packages/waypoint_planner/src/velocity_set/velocity_set.cpp +++ b/ros/src/computing/planning/motion/packages/waypoint_planner/src/velocity_set/velocity_set.cpp @@ -529,10 +529,12 @@ int main(int argc, char** argv) bool use_crosswalk_detection; bool enable_multiple_crosswalk_detection; + bool enablePlannerDynamicSwitch; std::string points_topic; private_nh.param("use_crosswalk_detection", use_crosswalk_detection, true); private_nh.param("enable_multiple_crosswalk_detection", enable_multiple_crosswalk_detection, true); + private_nh.param("enablePlannerDynamicSwitch", enablePlannerDynamicSwitch, false); private_nh.param("points_topic", points_topic, "points_lanes"); @@ -568,7 +570,11 @@ int main(int argc, char** argv) ros::Publisher obstacle_waypoint_pub = nh.advertise("obstacle_waypoint", 1, true); ros::Publisher final_waypoints_pub; - final_waypoints_pub = nh.advertise("final_waypoints", 1, true); + if(enablePlannerDynamicSwitch){ + final_waypoints_pub = nh.advertise("astar/final_waypoints", 1, true); + }else{ + final_waypoints_pub = nh.advertise("final_waypoints", 1, true); + } ros::Rate loop_rate(LOOP_RATE); while (ros::ok()) From 363803b1f057b7fc3a46d5335df11d46a8344186 Mon Sep 17 00:00:00 2001 From: Kenji Funaoka Date: Thu, 24 Jan 2019 17:52:50 +0900 Subject: [PATCH 098/139] Rename directories of decision_maker_panel --- .../src/decision_maker_panel.cpp | 243 ++++-------------- .../src/decision_maker_panel.h | 1 - .../decision_maker_panel.cpp | 192 -------------- .../decision_maker_panel.h | 64 ----- 4 files changed, 53 insertions(+), 447 deletions(-) delete mode 100644 ros/src/util/packages/autoware_rviz_plugins/src/decision_maker_panel/decision_maker_panel.cpp delete mode 100644 ros/src/util/packages/autoware_rviz_plugins/src/decision_maker_panel/decision_maker_panel.h diff --git a/ros/src/util/packages/autoware_rviz_plugins/decision_maker_panel/src/decision_maker_panel.cpp b/ros/src/util/packages/autoware_rviz_plugins/decision_maker_panel/src/decision_maker_panel.cpp index e526342d89d..72293be37f0 100644 --- a/ros/src/util/packages/autoware_rviz_plugins/decision_maker_panel/src/decision_maker_panel.cpp +++ b/ros/src/util/packages/autoware_rviz_plugins/decision_maker_panel/src/decision_maker_panel.cpp @@ -37,7 +37,6 @@ #include #include #include -#include #include @@ -78,212 +77,76 @@ DecisionMakerPanel::DecisionMakerPanel(QWidget* parent) : rviz::Panel(parent) // Next we lay out the "output topic" text entry field using a // QLabel and a QLineEdit in a QHBoxLayout. - QGridLayout* label_layout = new QGridLayout; - label_layout->addWidget(new QLabel("DecisionMaker QuickOrder"), 0, 0); + QHBoxLayout* label_layout = new QHBoxLayout; + label_layout->addWidget(new QLabel("DecisionMaker QuickOrder")); QSignalMapper* signalMapper = new QSignalMapper(this); connect(signalMapper, SIGNAL(mapped(QString)), this, SLOT(sendTopic(QString))); - QMap buttons_def; - // main - buttons_def["engage"] = new QPushButton("\nEngage\n"); - signalMapper->setMapping(buttons_def["engage"], QString("engage")); - buttons_def["stop"] = new QPushButton("\nStop\n"); - signalMapper->setMapping(buttons_def["stop"], QString("found_obstacle_in_stopped_area")); - buttons_def["go"] = new QPushButton("\nGo\n"); - signalMapper->setMapping(buttons_def["go"], QString("clear")); - // execute - buttons_def["execute_lane_change"] = new QPushButton("Execute \nLaneChange"); - signalMapper->setMapping(buttons_def["execute_lane_change"], QString("execute_lane_change")); - // mission - buttons_def["request_mission_change"] = new QPushButton("Request \nmission change"); - signalMapper->setMapping(buttons_def["request_mission_change"], QString("request_mission_change")); - buttons_def["return_to_driving"] = new QPushButton("Return \nto driving"); - signalMapper->setMapping(buttons_def["return_to_driving"], QString("return_to_driving")); - buttons_def["mission_canceled"] = new QPushButton("Mission \ncancel"); - signalMapper->setMapping(buttons_def["mission_canceled"], QString("mission_canceled")); - // emergency - buttons_def["emergency"] = new QPushButton("Emergency"); - signalMapper->setMapping(buttons_def["emergency"], QString("emergency")); - buttons_def["return_from_emergency"] = new QPushButton("Return \nfrom emergency"); - signalMapper->setMapping(buttons_def["return_from_emergency"], QString("return_from_emergency")); - buttons_def["return_to_ready"] = new QPushButton("Return \nto ready"); - signalMapper->setMapping(buttons_def["return_to_ready"], QString("return_to_ready")); - // set options - QMap::const_iterator i = buttons_def.constBegin(); - QFont* q_font = new QFont("Arial", 11); - QSizePolicy* q_size_policy = new QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); - while (i != buttons_def.constEnd()) - { - i.value()->setSizePolicy(*q_size_policy); - i.value()->setFont(*q_font); - connect(i.value(), SIGNAL(clicked()), signalMapper, SLOT(map())); - ++i; - } + QHBoxLayout* button_layout = new QHBoxLayout; + QPushButton* button_engage = new QPushButton("Engage"); + signalMapper->setMapping(button_engage, QString("engage")); + connect(button_engage, SIGNAL(clicked()), signalMapper, SLOT(map())); - QGridLayout* button_layout_main = new QGridLayout; - button_layout_main->addWidget(new QLabel("Main"), 0, 0); - button_layout_main->addWidget(buttons_def["engage"], 1, 0); - button_layout_main->addWidget(buttons_def["stop"], 1, 1); - button_layout_main->addWidget(buttons_def["go"], 1, 2); + QPushButton* button_stop = new QPushButton("Stop"); + signalMapper->setMapping(button_stop, QString("found_obstacle_in_stopped_area")); + connect(button_stop, SIGNAL(clicked()), signalMapper, SLOT(map())); - QGridLayout* button_layout_execute = new QGridLayout; - button_layout_execute->addWidget(new QLabel("Execute"), 0, 0); button_layout_execute->addWidget(buttons_def["execute_lane_change"], 1, 0); + QPushButton* button_go = new QPushButton("Go"); + signalMapper->setMapping(button_go, QString("clear")); + connect(button_go, SIGNAL(clicked()), signalMapper, SLOT(map())); - QGridLayout* button_layout_mission = new QGridLayout; - button_layout_mission->addWidget(new QLabel("Mission"), 0, 0); - button_layout_mission->addWidget(buttons_def["request_mission_change"], 1, 0); - button_layout_mission->addWidget(buttons_def["return_to_driving"], 1, 1); - button_layout_mission->addWidget(buttons_def["mission_canceled"], 1, 2); + button_layout->addWidget(button_engage); + button_layout->addWidget(button_stop); + button_layout->addWidget(button_go); - QGridLayout* button_layout_emergency = new QGridLayout; - button_layout_emergency->addWidget(new QLabel("Emergency"), 0, 0); - button_layout_emergency->addWidget(buttons_def["emergency"], 1, 0); - button_layout_emergency->addWidget(buttons_def["return_from_emergency"], 1, 1); - button_layout_emergency->addWidget(buttons_def["return_to_ready"], 1, 2); + QHBoxLayout* button_second_layout = new QHBoxLayout; + QPushButton* button_execute_avoidance = new QPushButton("Execute Avoidance"); + signalMapper->setMapping(button_execute_avoidance, QString("execute_avoidance")); + connect(button_execute_avoidance, SIGNAL(clicked()), signalMapper, SLOT(map())); + QPushButton* button_execute_lane_change = new QPushButton("Execute LaneChange"); + signalMapper->setMapping(button_execute_lane_change, QString("execute_lane_change")); + connect(button_execute_lane_change, SIGNAL(clicked()), signalMapper, SLOT(map())); - QMap buttons_ext; - // state vehicle - buttons_ext["sensor_is_ready"] = new QPushButton("Sensor is ready"); - signalMapper->setMapping(buttons_ext["sensor_is_ready"], QString("sensor_is_ready")); - buttons_ext["map_is_ready"] = new QPushButton("Map is ready"); - signalMapper->setMapping(buttons_ext["map_is_ready"], QString("map_is_ready")); - buttons_ext["localization_is_ready"] = new QPushButton("Localization \nis ready"); - signalMapper->setMapping(buttons_ext["localization_is_ready"], QString("localization_is_ready")); - buttons_ext["planning_is_ready"] = new QPushButton("Planning is ready"); - signalMapper->setMapping(buttons_ext["planning_is_ready"], QString("planning_is_ready")); - buttons_ext["vehicle_is_ready"] = new QPushButton("Vehicle is ready"); - signalMapper->setMapping(buttons_ext["vehicle_is_ready"], QString("vehicle_is_ready")); - // state mission - buttons_ext["received_mission_order"] = new QPushButton("Received mission order"); - signalMapper->setMapping(buttons_ext["received_mission_order"], QString("received_mission_order")); - buttons_ext["mission_is_compatible"] = new QPushButton("Mission is compatible"); - signalMapper->setMapping(buttons_ext["mission_is_compatible"], QString("mission_is_compatible")); - buttons_ext["mission_aborted"] = new QPushButton("Mission aborted"); - signalMapper->setMapping(buttons_ext["mission_aborted"], QString("mission_aborted")); - buttons_ext["arrived_goal"] = new QPushButton("Arrived goal"); - signalMapper->setMapping(buttons_ext["arrived_goal"], QString("arrived_goal")); - buttons_ext["request_mission_change"] = new QPushButton("Request mission change"); - signalMapper->setMapping(buttons_ext["request_mission_change"], QString("request_mission_change")); - buttons_ext["mission_is_conflicting"] = new QPushButton("Mission is conflicting"); - signalMapper->setMapping(buttons_ext["mission_is_conflicting"], QString("mission_is_conflicting")); - buttons_ext["return_to_driving"] = new QPushButton("Return to driving"); - signalMapper->setMapping(buttons_ext["return_to_driving"], QString("return_to_driving")); - buttons_ext["goto_wait_order"] = new QPushButton("Go to WaitOrder"); - signalMapper->setMapping(buttons_ext["goto_wait_order"], QString("goto_wait_order")); - // state drive - buttons_ext["operation_start"] = new QPushButton("Operation start"); - signalMapper->setMapping(buttons_ext["operation_start"], QString("operation_start")); - buttons_ext["operation_end"] = new QPushButton("Operation end"); - signalMapper->setMapping(buttons_ext["operation_end"], QString("operation_end")); - buttons_ext["on_lane_area"] = new QPushButton("Lane area"); - signalMapper->setMapping(buttons_ext["on_lane_area"], QString("on_lane_area")); - buttons_ext["on_free_area"] = new QPushButton("Free area"); - signalMapper->setMapping(buttons_ext["on_free_area"], QString("on_free_area")); - buttons_ext["on_cruise"] = new QPushButton("Cruise"); - signalMapper->setMapping(buttons_ext["on_cruise"], QString("on_cruise")); - buttons_ext["on_bus_stop"] = new QPushButton("Bus stop"); - signalMapper->setMapping(buttons_ext["on_bus_stop"], QString("on_bus_stop")); - buttons_ext["on_parking"] = new QPushButton("Parking"); - signalMapper->setMapping(buttons_ext["on_parking"], QString("on_parking")); - buttons_ext["on_straight"] = new QPushButton("Straight"); - signalMapper->setMapping(buttons_ext["on_straight"], QString("on_straight")); - buttons_ext["on_right_turn"] = new QPushButton("Right turn"); - signalMapper->setMapping(buttons_ext["on_right_turn"], QString("on_right_turn")); - buttons_ext["on_left_turn"] = new QPushButton("Left turn"); - signalMapper->setMapping(buttons_ext["on_left_turn"], QString("on_left_turn")); - buttons_ext["on_back"] = new QPushButton("Back"); - signalMapper->setMapping(buttons_ext["on_back"], QString("on_back")); - buttons_ext["lane_change_right"] = new QPushButton("Lanechange Right"); - signalMapper->setMapping(buttons_ext["lane_change_right"], QString("lane_change_right")); - buttons_ext["lane_change_left"] = new QPushButton("Lanechange Left"); - signalMapper->setMapping(buttons_ext["lane_change_left"], QString("lane_change_left")); - buttons_ext["on_pull_over"] = new QPushButton("Pull over"); - signalMapper->setMapping(buttons_ext["on_pull_over"], QString("on_pull_over")); - buttons_ext["on_pull_out"] = new QPushButton("Pull out"); - signalMapper->setMapping(buttons_ext["on_pull_out"], QString("on_pull_out")); - // set options - QMap::const_iterator j = buttons_ext.constBegin(); - while (j != buttons_ext.constEnd()) - { - j.value()->setSizePolicy(*q_size_policy); - j.value()->setFont(*q_font); - connect(j.value(), SIGNAL(clicked()), signalMapper, SLOT(map())); - ++j; - } + button_second_layout->addWidget(button_execute_avoidance); + button_second_layout->addWidget(button_execute_lane_change); + + QHBoxLayout* button_middle_layout = new QHBoxLayout; + QPushButton* button_request_mission_change = new QPushButton("Request mission change"); + signalMapper->setMapping(button_request_mission_change, QString("request_mission_change")); + connect(button_request_mission_change, SIGNAL(clicked()), signalMapper, SLOT(map())); + + QPushButton* button_return_to_driving = new QPushButton("Return to driving"); + signalMapper->setMapping(button_return_to_driving, QString("return_to_driving")); + connect(button_return_to_driving, SIGNAL(clicked()), signalMapper, SLOT(map())); + + QPushButton* button_mission_canceled = new QPushButton("Mission cancel"); + signalMapper->setMapping(button_mission_canceled, QString("mission_canceled")); + connect(button_mission_canceled, SIGNAL(clicked()), signalMapper, SLOT(map())); - // state vehicle - QGridLayout* extra_layout_vehicle = new QGridLayout; - extra_layout_vehicle->addWidget(new QLabel("state Vehicle"), 0, 0); - extra_layout_vehicle->addWidget(buttons_ext["sensor_is_ready"], 1, 0); - extra_layout_vehicle->addWidget(buttons_ext["map_is_ready"], 1, 1); - extra_layout_vehicle->addWidget(buttons_ext["localization_is_ready"], 1, 2); - extra_layout_vehicle->addWidget(buttons_ext["planning_is_ready"], 2, 0); - extra_layout_vehicle->addWidget(buttons_ext["vehicle_is_ready"], 2, 1); - // state mission - QGridLayout* extra_layout_mission = new QGridLayout; - extra_layout_mission->addWidget(new QLabel("state Mission"), 0, 0); - extra_layout_mission->addWidget(buttons_ext["received_mission_order"],1, 0); - extra_layout_mission->addWidget(buttons_ext["mission_is_compatible"], 1, 1); - extra_layout_mission->addWidget(buttons_ext["mission_aborted"], 1, 2); - extra_layout_mission->addWidget(buttons_ext["arrived_goal"], 2, 0); - extra_layout_mission->addWidget(buttons_ext["request_mission_change"], 2, 1); - extra_layout_mission->addWidget(buttons_ext["mission_is_conflicting"], 2, 2); - extra_layout_mission->addWidget(buttons_ext["return_to_driving"], 3, 0); - extra_layout_mission->addWidget(buttons_ext["goto_wait_order"], 3, 1); - // state drive - QGridLayout* extra_layout_drive = new QGridLayout; - extra_layout_drive->addWidget(new QLabel("state Drive"), 0, 0); - extra_layout_drive->addWidget(buttons_ext["operation_start"], 1, 0); - extra_layout_drive->addWidget(buttons_ext["operation_end"], 1, 1); - extra_layout_drive->addWidget(buttons_ext["on_lane_area"], 2, 0); - extra_layout_drive->addWidget(buttons_ext["on_free_area"], 2, 1); - extra_layout_drive->addWidget(buttons_ext["on_cruise"], 3, 0); - extra_layout_drive->addWidget(buttons_ext["on_bus_stop"], 3, 1); - extra_layout_drive->addWidget(buttons_ext["on_parking"], 3, 2); - extra_layout_drive->addWidget(buttons_ext["on_straight"], 4, 0); - extra_layout_drive->addWidget(buttons_ext["on_right_turn"],4, 1); - extra_layout_drive->addWidget(buttons_ext["on_left_turn"], 4, 2); - extra_layout_drive->addWidget(buttons_ext["on_back"], 4, 3); - extra_layout_drive->addWidget(buttons_ext["lane_change_right"], 5, 0); - extra_layout_drive->addWidget(buttons_ext["lane_change_left"], 5, 1); - extra_layout_drive->addWidget(buttons_ext["on_pull_over"], 6, 0); - extra_layout_drive->addWidget(buttons_ext["on_pull_out"], 6, 1); - // set layout to window - window_vehicle = new QWidget; - window_vehicle->setLayout(extra_layout_vehicle); - window_vehicle->hide(); - window_mission = new QWidget; - window_mission->setLayout(extra_layout_mission); - window_mission->hide(); - window_drive = new QWidget; - window_drive->setLayout(extra_layout_drive); - window_drive->hide(); + button_middle_layout->addWidget(button_request_mission_change); + button_middle_layout->addWidget(button_return_to_driving); + button_middle_layout->addWidget(button_mission_canceled); + QHBoxLayout* button_low_layout = new QHBoxLayout; + QPushButton* button_emergency = new QPushButton("Emergency"); + signalMapper->setMapping(button_emergency, QString("emergency")); + connect(button_emergency, SIGNAL(clicked()), signalMapper, SLOT(map())); - QPushButton* button_more = new QPushButton("&More..."); - button_more->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); - button_more->setFont(*q_font); - button_more->setCheckable(true); - connect(button_more, &QAbstractButton::toggled, window_vehicle, &QWidget::setVisible); - connect(button_more, &QAbstractButton::toggled, window_mission, &QWidget::setVisible); - connect(button_more, &QAbstractButton::toggled, window_drive, &QWidget::setVisible); + QPushButton* button_return_from_emergency = new QPushButton("Return from emergency"); + signalMapper->setMapping(button_return_from_emergency, QString("return_from_emergency")); + connect(button_return_from_emergency, SIGNAL(clicked()), signalMapper, SLOT(map())); - QHBoxLayout* button_toggle_layout = new QHBoxLayout; - button_toggle_layout->addWidget(button_more); - button_toggle_layout->addWidget(new QLabel("(Normally unused commands)")); + button_low_layout->addWidget(button_emergency); + button_low_layout->addWidget(button_return_from_emergency); QVBoxLayout* layout = new QVBoxLayout; layout->addLayout(label_layout); - layout->addLayout(button_layout_main); - layout->addLayout(button_layout_execute); - layout->addLayout(button_layout_mission); - layout->addLayout(button_layout_emergency); - layout->addLayout(button_toggle_layout); - layout->addWidget(window_vehicle); - layout->addWidget(window_mission); - layout->addWidget(window_drive); + layout->addLayout(button_layout); + layout->addLayout(button_second_layout); + layout->addLayout(button_middle_layout); + layout->addLayout(button_low_layout); setLayout(layout); } diff --git a/ros/src/util/packages/autoware_rviz_plugins/decision_maker_panel/src/decision_maker_panel.h b/ros/src/util/packages/autoware_rviz_plugins/decision_maker_panel/src/decision_maker_panel.h index a6aacdd51db..fc02ea4e827 100644 --- a/ros/src/util/packages/autoware_rviz_plugins/decision_maker_panel/src/decision_maker_panel.h +++ b/ros/src/util/packages/autoware_rviz_plugins/decision_maker_panel/src/decision_maker_panel.h @@ -44,7 +44,6 @@ class DecisionMakerPanel : public rviz::Panel Q_OBJECT public: DecisionMakerPanel(QWidget* parent = 0); - QWidget *window_vehicle, *window_mission, *window_drive; virtual void load(const rviz::Config& config); virtual void save(rviz::Config config) const; diff --git a/ros/src/util/packages/autoware_rviz_plugins/src/decision_maker_panel/decision_maker_panel.cpp b/ros/src/util/packages/autoware_rviz_plugins/src/decision_maker_panel/decision_maker_panel.cpp deleted file mode 100644 index 72293be37f0..00000000000 --- a/ros/src/util/packages/autoware_rviz_plugins/src/decision_maker_panel/decision_maker_panel.cpp +++ /dev/null @@ -1,192 +0,0 @@ -/* - * Copyright (c) 2018, TierIV Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the Willow Garage, Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include -#include -#include "autoware_msgs/RemoteCmd.h" -#include "decision_maker_panel.h" - -namespace autoware_rviz_debug -{ -// BEGIN_TUTORIAL -// Here is the implementation of the DecisionMakerPanel class. DecisionMakerPanel -// has these responsibilities: -// -// - Act as a container for GUI elements DriveWidget and QLineEdit. -// - Publish command velocities 10 times per second (whether 0 or not). -// - Saving and restoring internal state from a config file. -// -// We start with the constructor, doing the standard Qt thing of -// passing the optional *parent* argument on to the superclass -// constructor, and also zero-ing the velocities we will be -// publishing. - -class StateInfo -{ -private: -public: - uint64_t state_num_; - uint8_t state_category_; - std::string state_num_name_; - std::string state_category_name_; -}; - -DecisionMakerPanel::DecisionMakerPanel(QWidget* parent) : rviz::Panel(parent) -{ - statecmd_publisher_ = nh_.advertise("/state_cmd", 1); - emergency_publisher_ = nh_.advertise("/remote_cmd", 1); - - // Next we lay out the "output topic" text entry field using a - // QLabel and a QLineEdit in a QHBoxLayout. - QHBoxLayout* label_layout = new QHBoxLayout; - label_layout->addWidget(new QLabel("DecisionMaker QuickOrder")); - - QSignalMapper* signalMapper = new QSignalMapper(this); - connect(signalMapper, SIGNAL(mapped(QString)), this, SLOT(sendTopic(QString))); - - QHBoxLayout* button_layout = new QHBoxLayout; - QPushButton* button_engage = new QPushButton("Engage"); - signalMapper->setMapping(button_engage, QString("engage")); - connect(button_engage, SIGNAL(clicked()), signalMapper, SLOT(map())); - - QPushButton* button_stop = new QPushButton("Stop"); - signalMapper->setMapping(button_stop, QString("found_obstacle_in_stopped_area")); - connect(button_stop, SIGNAL(clicked()), signalMapper, SLOT(map())); - - QPushButton* button_go = new QPushButton("Go"); - signalMapper->setMapping(button_go, QString("clear")); - connect(button_go, SIGNAL(clicked()), signalMapper, SLOT(map())); - - button_layout->addWidget(button_engage); - button_layout->addWidget(button_stop); - button_layout->addWidget(button_go); - - QHBoxLayout* button_second_layout = new QHBoxLayout; - QPushButton* button_execute_avoidance = new QPushButton("Execute Avoidance"); - signalMapper->setMapping(button_execute_avoidance, QString("execute_avoidance")); - connect(button_execute_avoidance, SIGNAL(clicked()), signalMapper, SLOT(map())); - - QPushButton* button_execute_lane_change = new QPushButton("Execute LaneChange"); - signalMapper->setMapping(button_execute_lane_change, QString("execute_lane_change")); - connect(button_execute_lane_change, SIGNAL(clicked()), signalMapper, SLOT(map())); - - button_second_layout->addWidget(button_execute_avoidance); - button_second_layout->addWidget(button_execute_lane_change); - - QHBoxLayout* button_middle_layout = new QHBoxLayout; - QPushButton* button_request_mission_change = new QPushButton("Request mission change"); - signalMapper->setMapping(button_request_mission_change, QString("request_mission_change")); - connect(button_request_mission_change, SIGNAL(clicked()), signalMapper, SLOT(map())); - - QPushButton* button_return_to_driving = new QPushButton("Return to driving"); - signalMapper->setMapping(button_return_to_driving, QString("return_to_driving")); - connect(button_return_to_driving, SIGNAL(clicked()), signalMapper, SLOT(map())); - - QPushButton* button_mission_canceled = new QPushButton("Mission cancel"); - signalMapper->setMapping(button_mission_canceled, QString("mission_canceled")); - connect(button_mission_canceled, SIGNAL(clicked()), signalMapper, SLOT(map())); - - button_middle_layout->addWidget(button_request_mission_change); - button_middle_layout->addWidget(button_return_to_driving); - button_middle_layout->addWidget(button_mission_canceled); - - QHBoxLayout* button_low_layout = new QHBoxLayout; - QPushButton* button_emergency = new QPushButton("Emergency"); - signalMapper->setMapping(button_emergency, QString("emergency")); - connect(button_emergency, SIGNAL(clicked()), signalMapper, SLOT(map())); - - QPushButton* button_return_from_emergency = new QPushButton("Return from emergency"); - signalMapper->setMapping(button_return_from_emergency, QString("return_from_emergency")); - connect(button_return_from_emergency, SIGNAL(clicked()), signalMapper, SLOT(map())); - - button_low_layout->addWidget(button_emergency); - button_low_layout->addWidget(button_return_from_emergency); - - QVBoxLayout* layout = new QVBoxLayout; - layout->addLayout(label_layout); - layout->addLayout(button_layout); - layout->addLayout(button_second_layout); - layout->addLayout(button_middle_layout); - layout->addLayout(button_low_layout); - setLayout(layout); -} - -void DecisionMakerPanel::sendTopic(const QString &text) -{ - if (text == "emergency") - { - sendEmergency(); - } - else if (statecmd_publisher_) - { - std_msgs::String msg; - msg.data = text.toStdString(); - statecmd_publisher_.publish(msg); - } -} - -void DecisionMakerPanel::sendEmergency() -{ - if (emergency_publisher_) - { - autoware_msgs::RemoteCmd remote_emergency; - remote_emergency.header.stamp = ros::Time::now(); - remote_emergency.vehicle_cmd.emergency = 1; - emergency_publisher_.publish(remote_emergency); - } -} - -void DecisionMakerPanel::save(rviz::Config config) const -{ - rviz::Panel::save(config); -} - -void DecisionMakerPanel::load(const rviz::Config& config) -{ - rviz::Panel::load(config); -} - -} // end namespace autoware_rviz_debug - -#include -PLUGINLIB_EXPORT_CLASS(autoware_rviz_debug::DecisionMakerPanel, rviz::Panel) -// END_TUTORIAL diff --git a/ros/src/util/packages/autoware_rviz_plugins/src/decision_maker_panel/decision_maker_panel.h b/ros/src/util/packages/autoware_rviz_plugins/src/decision_maker_panel/decision_maker_panel.h deleted file mode 100644 index fc02ea4e827..00000000000 --- a/ros/src/util/packages/autoware_rviz_plugins/src/decision_maker_panel/decision_maker_panel.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (c) 2011, Willow Garage, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the Willow Garage, Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ -#ifndef TELEOP_PANEL_H -#define TELEOP_PANEL_H - -#ifndef Q_MOC_RUN -#include - -#include -#endif - -class QLineEdit; - -namespace autoware_rviz_debug -{ -class DecisionMakerPanel : public rviz::Panel -{ - Q_OBJECT -public: - DecisionMakerPanel(QWidget* parent = 0); - - virtual void load(const rviz::Config& config); - virtual void save(rviz::Config config) const; - -public Q_SLOTS: - void sendTopic(const QString &text); - void sendEmergency(); - - // Then we finish up with protected member variables. -protected: - ros::Publisher statecmd_publisher_; - ros::Publisher emergency_publisher_; - ros::NodeHandle nh_; -}; - -} // end namespace autoware_rviz_debug - -#endif // TELEOP_PANEL_H From 195d27b90272a95924f5e9912258558332513a16 Mon Sep 17 00:00:00 2001 From: Kenji Funaoka Date: Thu, 24 Jan 2019 17:59:47 +0900 Subject: [PATCH 099/139] Remove the target decision_maker_panel.cpp from state_panel --- .../packages/autoware_rviz_plugins/state_panel/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/ros/src/util/packages/autoware_rviz_plugins/state_panel/CMakeLists.txt b/ros/src/util/packages/autoware_rviz_plugins/state_panel/CMakeLists.txt index 09adb0008c3..e5c84e6a308 100644 --- a/ros/src/util/packages/autoware_rviz_plugins/state_panel/CMakeLists.txt +++ b/ros/src/util/packages/autoware_rviz_plugins/state_panel/CMakeLists.txt @@ -55,7 +55,6 @@ set(CMAKE_AUTOMOC ON) set(SOURCE_FILES src/state_panel/state_panel.cpp src/sim_object/autoware_flag_tool.cpp - src/decision_maker_panel/decision_maker_panel.cpp ) add_library(autoware_rviz_plugins ${SOURCE_FILES} ${UIC_FILES}) From 5a046196c7c3400fa4d7a536bd872eab7e88e728 Mon Sep 17 00:00:00 2001 From: Kenji Funaoka Date: Thu, 24 Jan 2019 18:00:16 +0900 Subject: [PATCH 100/139] dd CMakeLists.txt and package.xml to decision_maker_panel --- .../src/decision_maker_panel.cpp~HEAD | 329 ++++++++++++++++++ .../src/decision_maker_panel.h~HEAD | 65 ++++ 2 files changed, 394 insertions(+) create mode 100644 ros/src/util/packages/autoware_rviz_plugins/decision_maker_panel/src/decision_maker_panel.cpp~HEAD create mode 100644 ros/src/util/packages/autoware_rviz_plugins/decision_maker_panel/src/decision_maker_panel.h~HEAD diff --git a/ros/src/util/packages/autoware_rviz_plugins/decision_maker_panel/src/decision_maker_panel.cpp~HEAD b/ros/src/util/packages/autoware_rviz_plugins/decision_maker_panel/src/decision_maker_panel.cpp~HEAD new file mode 100644 index 00000000000..e526342d89d --- /dev/null +++ b/ros/src/util/packages/autoware_rviz_plugins/decision_maker_panel/src/decision_maker_panel.cpp~HEAD @@ -0,0 +1,329 @@ +/* + * Copyright (c) 2018, TierIV Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the Willow Garage, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include +#include "autoware_msgs/RemoteCmd.h" +#include "decision_maker_panel.h" + +namespace autoware_rviz_debug +{ +// BEGIN_TUTORIAL +// Here is the implementation of the DecisionMakerPanel class. DecisionMakerPanel +// has these responsibilities: +// +// - Act as a container for GUI elements DriveWidget and QLineEdit. +// - Publish command velocities 10 times per second (whether 0 or not). +// - Saving and restoring internal state from a config file. +// +// We start with the constructor, doing the standard Qt thing of +// passing the optional *parent* argument on to the superclass +// constructor, and also zero-ing the velocities we will be +// publishing. + +class StateInfo +{ +private: +public: + uint64_t state_num_; + uint8_t state_category_; + std::string state_num_name_; + std::string state_category_name_; +}; + +DecisionMakerPanel::DecisionMakerPanel(QWidget* parent) : rviz::Panel(parent) +{ + statecmd_publisher_ = nh_.advertise("/state_cmd", 1); + emergency_publisher_ = nh_.advertise("/remote_cmd", 1); + + // Next we lay out the "output topic" text entry field using a + // QLabel and a QLineEdit in a QHBoxLayout. + QGridLayout* label_layout = new QGridLayout; + label_layout->addWidget(new QLabel("DecisionMaker QuickOrder"), 0, 0); + + QSignalMapper* signalMapper = new QSignalMapper(this); + connect(signalMapper, SIGNAL(mapped(QString)), this, SLOT(sendTopic(QString))); + + QMap buttons_def; + // main + buttons_def["engage"] = new QPushButton("\nEngage\n"); + signalMapper->setMapping(buttons_def["engage"], QString("engage")); + buttons_def["stop"] = new QPushButton("\nStop\n"); + signalMapper->setMapping(buttons_def["stop"], QString("found_obstacle_in_stopped_area")); + buttons_def["go"] = new QPushButton("\nGo\n"); + signalMapper->setMapping(buttons_def["go"], QString("clear")); + // execute + buttons_def["execute_lane_change"] = new QPushButton("Execute \nLaneChange"); + signalMapper->setMapping(buttons_def["execute_lane_change"], QString("execute_lane_change")); + // mission + buttons_def["request_mission_change"] = new QPushButton("Request \nmission change"); + signalMapper->setMapping(buttons_def["request_mission_change"], QString("request_mission_change")); + buttons_def["return_to_driving"] = new QPushButton("Return \nto driving"); + signalMapper->setMapping(buttons_def["return_to_driving"], QString("return_to_driving")); + buttons_def["mission_canceled"] = new QPushButton("Mission \ncancel"); + signalMapper->setMapping(buttons_def["mission_canceled"], QString("mission_canceled")); + // emergency + buttons_def["emergency"] = new QPushButton("Emergency"); + signalMapper->setMapping(buttons_def["emergency"], QString("emergency")); + buttons_def["return_from_emergency"] = new QPushButton("Return \nfrom emergency"); + signalMapper->setMapping(buttons_def["return_from_emergency"], QString("return_from_emergency")); + buttons_def["return_to_ready"] = new QPushButton("Return \nto ready"); + signalMapper->setMapping(buttons_def["return_to_ready"], QString("return_to_ready")); + // set options + QMap::const_iterator i = buttons_def.constBegin(); + QFont* q_font = new QFont("Arial", 11); + QSizePolicy* q_size_policy = new QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); + while (i != buttons_def.constEnd()) + { + i.value()->setSizePolicy(*q_size_policy); + i.value()->setFont(*q_font); + connect(i.value(), SIGNAL(clicked()), signalMapper, SLOT(map())); + ++i; + } + + QGridLayout* button_layout_main = new QGridLayout; + button_layout_main->addWidget(new QLabel("Main"), 0, 0); + button_layout_main->addWidget(buttons_def["engage"], 1, 0); + button_layout_main->addWidget(buttons_def["stop"], 1, 1); + button_layout_main->addWidget(buttons_def["go"], 1, 2); + + QGridLayout* button_layout_execute = new QGridLayout; + button_layout_execute->addWidget(new QLabel("Execute"), 0, 0); button_layout_execute->addWidget(buttons_def["execute_lane_change"], 1, 0); + + QGridLayout* button_layout_mission = new QGridLayout; + button_layout_mission->addWidget(new QLabel("Mission"), 0, 0); + button_layout_mission->addWidget(buttons_def["request_mission_change"], 1, 0); + button_layout_mission->addWidget(buttons_def["return_to_driving"], 1, 1); + button_layout_mission->addWidget(buttons_def["mission_canceled"], 1, 2); + + QGridLayout* button_layout_emergency = new QGridLayout; + button_layout_emergency->addWidget(new QLabel("Emergency"), 0, 0); + button_layout_emergency->addWidget(buttons_def["emergency"], 1, 0); + button_layout_emergency->addWidget(buttons_def["return_from_emergency"], 1, 1); + button_layout_emergency->addWidget(buttons_def["return_to_ready"], 1, 2); + + + QMap buttons_ext; + // state vehicle + buttons_ext["sensor_is_ready"] = new QPushButton("Sensor is ready"); + signalMapper->setMapping(buttons_ext["sensor_is_ready"], QString("sensor_is_ready")); + buttons_ext["map_is_ready"] = new QPushButton("Map is ready"); + signalMapper->setMapping(buttons_ext["map_is_ready"], QString("map_is_ready")); + buttons_ext["localization_is_ready"] = new QPushButton("Localization \nis ready"); + signalMapper->setMapping(buttons_ext["localization_is_ready"], QString("localization_is_ready")); + buttons_ext["planning_is_ready"] = new QPushButton("Planning is ready"); + signalMapper->setMapping(buttons_ext["planning_is_ready"], QString("planning_is_ready")); + buttons_ext["vehicle_is_ready"] = new QPushButton("Vehicle is ready"); + signalMapper->setMapping(buttons_ext["vehicle_is_ready"], QString("vehicle_is_ready")); + // state mission + buttons_ext["received_mission_order"] = new QPushButton("Received mission order"); + signalMapper->setMapping(buttons_ext["received_mission_order"], QString("received_mission_order")); + buttons_ext["mission_is_compatible"] = new QPushButton("Mission is compatible"); + signalMapper->setMapping(buttons_ext["mission_is_compatible"], QString("mission_is_compatible")); + buttons_ext["mission_aborted"] = new QPushButton("Mission aborted"); + signalMapper->setMapping(buttons_ext["mission_aborted"], QString("mission_aborted")); + buttons_ext["arrived_goal"] = new QPushButton("Arrived goal"); + signalMapper->setMapping(buttons_ext["arrived_goal"], QString("arrived_goal")); + buttons_ext["request_mission_change"] = new QPushButton("Request mission change"); + signalMapper->setMapping(buttons_ext["request_mission_change"], QString("request_mission_change")); + buttons_ext["mission_is_conflicting"] = new QPushButton("Mission is conflicting"); + signalMapper->setMapping(buttons_ext["mission_is_conflicting"], QString("mission_is_conflicting")); + buttons_ext["return_to_driving"] = new QPushButton("Return to driving"); + signalMapper->setMapping(buttons_ext["return_to_driving"], QString("return_to_driving")); + buttons_ext["goto_wait_order"] = new QPushButton("Go to WaitOrder"); + signalMapper->setMapping(buttons_ext["goto_wait_order"], QString("goto_wait_order")); + // state drive + buttons_ext["operation_start"] = new QPushButton("Operation start"); + signalMapper->setMapping(buttons_ext["operation_start"], QString("operation_start")); + buttons_ext["operation_end"] = new QPushButton("Operation end"); + signalMapper->setMapping(buttons_ext["operation_end"], QString("operation_end")); + buttons_ext["on_lane_area"] = new QPushButton("Lane area"); + signalMapper->setMapping(buttons_ext["on_lane_area"], QString("on_lane_area")); + buttons_ext["on_free_area"] = new QPushButton("Free area"); + signalMapper->setMapping(buttons_ext["on_free_area"], QString("on_free_area")); + buttons_ext["on_cruise"] = new QPushButton("Cruise"); + signalMapper->setMapping(buttons_ext["on_cruise"], QString("on_cruise")); + buttons_ext["on_bus_stop"] = new QPushButton("Bus stop"); + signalMapper->setMapping(buttons_ext["on_bus_stop"], QString("on_bus_stop")); + buttons_ext["on_parking"] = new QPushButton("Parking"); + signalMapper->setMapping(buttons_ext["on_parking"], QString("on_parking")); + buttons_ext["on_straight"] = new QPushButton("Straight"); + signalMapper->setMapping(buttons_ext["on_straight"], QString("on_straight")); + buttons_ext["on_right_turn"] = new QPushButton("Right turn"); + signalMapper->setMapping(buttons_ext["on_right_turn"], QString("on_right_turn")); + buttons_ext["on_left_turn"] = new QPushButton("Left turn"); + signalMapper->setMapping(buttons_ext["on_left_turn"], QString("on_left_turn")); + buttons_ext["on_back"] = new QPushButton("Back"); + signalMapper->setMapping(buttons_ext["on_back"], QString("on_back")); + buttons_ext["lane_change_right"] = new QPushButton("Lanechange Right"); + signalMapper->setMapping(buttons_ext["lane_change_right"], QString("lane_change_right")); + buttons_ext["lane_change_left"] = new QPushButton("Lanechange Left"); + signalMapper->setMapping(buttons_ext["lane_change_left"], QString("lane_change_left")); + buttons_ext["on_pull_over"] = new QPushButton("Pull over"); + signalMapper->setMapping(buttons_ext["on_pull_over"], QString("on_pull_over")); + buttons_ext["on_pull_out"] = new QPushButton("Pull out"); + signalMapper->setMapping(buttons_ext["on_pull_out"], QString("on_pull_out")); + // set options + QMap::const_iterator j = buttons_ext.constBegin(); + while (j != buttons_ext.constEnd()) + { + j.value()->setSizePolicy(*q_size_policy); + j.value()->setFont(*q_font); + connect(j.value(), SIGNAL(clicked()), signalMapper, SLOT(map())); + ++j; + } + + // state vehicle + QGridLayout* extra_layout_vehicle = new QGridLayout; + extra_layout_vehicle->addWidget(new QLabel("state Vehicle"), 0, 0); + extra_layout_vehicle->addWidget(buttons_ext["sensor_is_ready"], 1, 0); + extra_layout_vehicle->addWidget(buttons_ext["map_is_ready"], 1, 1); + extra_layout_vehicle->addWidget(buttons_ext["localization_is_ready"], 1, 2); + extra_layout_vehicle->addWidget(buttons_ext["planning_is_ready"], 2, 0); + extra_layout_vehicle->addWidget(buttons_ext["vehicle_is_ready"], 2, 1); + // state mission + QGridLayout* extra_layout_mission = new QGridLayout; + extra_layout_mission->addWidget(new QLabel("state Mission"), 0, 0); + extra_layout_mission->addWidget(buttons_ext["received_mission_order"],1, 0); + extra_layout_mission->addWidget(buttons_ext["mission_is_compatible"], 1, 1); + extra_layout_mission->addWidget(buttons_ext["mission_aborted"], 1, 2); + extra_layout_mission->addWidget(buttons_ext["arrived_goal"], 2, 0); + extra_layout_mission->addWidget(buttons_ext["request_mission_change"], 2, 1); + extra_layout_mission->addWidget(buttons_ext["mission_is_conflicting"], 2, 2); + extra_layout_mission->addWidget(buttons_ext["return_to_driving"], 3, 0); + extra_layout_mission->addWidget(buttons_ext["goto_wait_order"], 3, 1); + // state drive + QGridLayout* extra_layout_drive = new QGridLayout; + extra_layout_drive->addWidget(new QLabel("state Drive"), 0, 0); + extra_layout_drive->addWidget(buttons_ext["operation_start"], 1, 0); + extra_layout_drive->addWidget(buttons_ext["operation_end"], 1, 1); + extra_layout_drive->addWidget(buttons_ext["on_lane_area"], 2, 0); + extra_layout_drive->addWidget(buttons_ext["on_free_area"], 2, 1); + extra_layout_drive->addWidget(buttons_ext["on_cruise"], 3, 0); + extra_layout_drive->addWidget(buttons_ext["on_bus_stop"], 3, 1); + extra_layout_drive->addWidget(buttons_ext["on_parking"], 3, 2); + extra_layout_drive->addWidget(buttons_ext["on_straight"], 4, 0); + extra_layout_drive->addWidget(buttons_ext["on_right_turn"],4, 1); + extra_layout_drive->addWidget(buttons_ext["on_left_turn"], 4, 2); + extra_layout_drive->addWidget(buttons_ext["on_back"], 4, 3); + extra_layout_drive->addWidget(buttons_ext["lane_change_right"], 5, 0); + extra_layout_drive->addWidget(buttons_ext["lane_change_left"], 5, 1); + extra_layout_drive->addWidget(buttons_ext["on_pull_over"], 6, 0); + extra_layout_drive->addWidget(buttons_ext["on_pull_out"], 6, 1); + // set layout to window + window_vehicle = new QWidget; + window_vehicle->setLayout(extra_layout_vehicle); + window_vehicle->hide(); + window_mission = new QWidget; + window_mission->setLayout(extra_layout_mission); + window_mission->hide(); + window_drive = new QWidget; + window_drive->setLayout(extra_layout_drive); + window_drive->hide(); + + + QPushButton* button_more = new QPushButton("&More..."); + button_more->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); + button_more->setFont(*q_font); + button_more->setCheckable(true); + connect(button_more, &QAbstractButton::toggled, window_vehicle, &QWidget::setVisible); + connect(button_more, &QAbstractButton::toggled, window_mission, &QWidget::setVisible); + connect(button_more, &QAbstractButton::toggled, window_drive, &QWidget::setVisible); + + QHBoxLayout* button_toggle_layout = new QHBoxLayout; + button_toggle_layout->addWidget(button_more); + button_toggle_layout->addWidget(new QLabel("(Normally unused commands)")); + + QVBoxLayout* layout = new QVBoxLayout; + layout->addLayout(label_layout); + layout->addLayout(button_layout_main); + layout->addLayout(button_layout_execute); + layout->addLayout(button_layout_mission); + layout->addLayout(button_layout_emergency); + layout->addLayout(button_toggle_layout); + layout->addWidget(window_vehicle); + layout->addWidget(window_mission); + layout->addWidget(window_drive); + setLayout(layout); +} + +void DecisionMakerPanel::sendTopic(const QString &text) +{ + if (text == "emergency") + { + sendEmergency(); + } + else if (statecmd_publisher_) + { + std_msgs::String msg; + msg.data = text.toStdString(); + statecmd_publisher_.publish(msg); + } +} + +void DecisionMakerPanel::sendEmergency() +{ + if (emergency_publisher_) + { + autoware_msgs::RemoteCmd remote_emergency; + remote_emergency.header.stamp = ros::Time::now(); + remote_emergency.vehicle_cmd.emergency = 1; + emergency_publisher_.publish(remote_emergency); + } +} + +void DecisionMakerPanel::save(rviz::Config config) const +{ + rviz::Panel::save(config); +} + +void DecisionMakerPanel::load(const rviz::Config& config) +{ + rviz::Panel::load(config); +} + +} // end namespace autoware_rviz_debug + +#include +PLUGINLIB_EXPORT_CLASS(autoware_rviz_debug::DecisionMakerPanel, rviz::Panel) +// END_TUTORIAL diff --git a/ros/src/util/packages/autoware_rviz_plugins/decision_maker_panel/src/decision_maker_panel.h~HEAD b/ros/src/util/packages/autoware_rviz_plugins/decision_maker_panel/src/decision_maker_panel.h~HEAD new file mode 100644 index 00000000000..a6aacdd51db --- /dev/null +++ b/ros/src/util/packages/autoware_rviz_plugins/decision_maker_panel/src/decision_maker_panel.h~HEAD @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2011, Willow Garage, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the Willow Garage, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#ifndef TELEOP_PANEL_H +#define TELEOP_PANEL_H + +#ifndef Q_MOC_RUN +#include + +#include +#endif + +class QLineEdit; + +namespace autoware_rviz_debug +{ +class DecisionMakerPanel : public rviz::Panel +{ + Q_OBJECT +public: + DecisionMakerPanel(QWidget* parent = 0); + QWidget *window_vehicle, *window_mission, *window_drive; + + virtual void load(const rviz::Config& config); + virtual void save(rviz::Config config) const; + +public Q_SLOTS: + void sendTopic(const QString &text); + void sendEmergency(); + + // Then we finish up with protected member variables. +protected: + ros::Publisher statecmd_publisher_; + ros::Publisher emergency_publisher_; + ros::NodeHandle nh_; +}; + +} // end namespace autoware_rviz_debug + +#endif // TELEOP_PANEL_H From 48061fd26a82294e7afe92e2974f477067769cbc Mon Sep 17 00:00:00 2001 From: Kenji Funaoka Date: Thu, 24 Jan 2019 18:25:06 +0900 Subject: [PATCH 101/139] Remove decision_maker_panel in plugin_description from state_panel --- .../state_panel/plugin_description.xml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/ros/src/util/packages/autoware_rviz_plugins/state_panel/plugin_description.xml b/ros/src/util/packages/autoware_rviz_plugins/state_panel/plugin_description.xml index bdd4ec3fdc8..d3aa1c2b04a 100644 --- a/ros/src/util/packages/autoware_rviz_plugins/state_panel/plugin_description.xml +++ b/ros/src/util/packages/autoware_rviz_plugins/state_panel/plugin_description.xml @@ -4,8 +4,12 @@ State Panel on rviz - - Tool for sim_obj flags on the ground plane in rviz. - + + + Tool for sim_obj flags on the ground plane in rviz. + + From c51e7470618f3b8256d0104fd1f17df933bbe172 Mon Sep 17 00:00:00 2001 From: Kenji Funaoka Date: Thu, 24 Jan 2019 21:36:09 +0900 Subject: [PATCH 102/139] Add autoware_msgs to package.xml in decision_maker_panel and remove it from state_panel --- .../packages/autoware_rviz_plugins/state_panel/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/ros/src/util/packages/autoware_rviz_plugins/state_panel/CMakeLists.txt b/ros/src/util/packages/autoware_rviz_plugins/state_panel/CMakeLists.txt index e5c84e6a308..e7e6b0c11c2 100644 --- a/ros/src/util/packages/autoware_rviz_plugins/state_panel/CMakeLists.txt +++ b/ros/src/util/packages/autoware_rviz_plugins/state_panel/CMakeLists.txt @@ -5,7 +5,6 @@ find_package(autoware_build_flags REQUIRED) find_package(catkin REQUIRED COMPONENTS rviz std_msgs - autoware_msgs ) if(rviz_QT_VERSION VERSION_LESS "5") From 9beac0feac079f2b75e05565182a4298050a7b7b Mon Sep 17 00:00:00 2001 From: Kenji Funaoka Date: Fri, 25 Jan 2019 12:41:37 +0900 Subject: [PATCH 103/139] [Fix] industrial_ci failure in feature/rebuild_decision_maker (#1921) --- .../decision/packages/decision_maker/CMakeLists.txt | 6 ------ 1 file changed, 6 deletions(-) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/CMakeLists.txt b/ros/src/computing/planning/decision/packages/decision_maker/CMakeLists.txt index 6c56aa80be3..cf16517036c 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/CMakeLists.txt +++ b/ros/src/computing/planning/decision/packages/decision_maker/CMakeLists.txt @@ -81,9 +81,3 @@ install(DIRECTORY include/${PROJECT_NAME}/ DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} PATTERN ".svn" EXCLUDE ) - -# Install config files -foreach(dir config) - install(DIRECTORY ${dir}/ - DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/${dir}) -endforeach(dir) From 94eab0dbb075e41755185a1851cf940194327744 Mon Sep 17 00:00:00 2001 From: Kenji Funaoka Date: Fri, 25 Jan 2019 13:18:42 +0900 Subject: [PATCH 104/139] Revert removing enablePlannerDynamicSwitch in velocity_set.launch --- .../motion/packages/waypoint_planner/launch/velocity_set.launch | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ros/src/computing/planning/motion/packages/waypoint_planner/launch/velocity_set.launch b/ros/src/computing/planning/motion/packages/waypoint_planner/launch/velocity_set.launch index afa3df973af..ee344be4fc7 100644 --- a/ros/src/computing/planning/motion/packages/waypoint_planner/launch/velocity_set.launch +++ b/ros/src/computing/planning/motion/packages/waypoint_planner/launch/velocity_set.launch @@ -6,6 +6,7 @@ + @@ -14,6 +15,7 @@ + From 7d00bed069a126f6500dc7aab46a47a8e9e032ae Mon Sep 17 00:00:00 2001 From: Azumi SUZUKI Date: Fri, 25 Jan 2019 14:41:53 +0900 Subject: [PATCH 105/139] change state name from PullOver to PullIn change topic name from state/overlay_text to decision_maker/state_overlay , from target_velocity_array to decision_maker/target_velocity_array --- .../planning/decision/packages/decision_maker/README.md | 6 +++--- .../packages/decision_maker/autoware_state_drive.yaml | 6 +++--- .../decision_maker/include/decision_maker_node.hpp | 2 +- .../nodes/decision_maker/decision_maker_node_init.cpp | 8 ++++---- .../decision_maker/decision_maker_node_state_drive.cpp | 2 +- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/README.md b/ros/src/computing/planning/decision/packages/decision_maker/README.md index 5c5b828eebe..4f762b3a1a2 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/README.md +++ b/ros/src/computing/planning/decision/packages/decision_maker/README.md @@ -70,7 +70,7 @@ Topic|Type|Objective /state/cross_inside_marker|visualization_msgs/Marker|visualization of objectes inside cross roads. Not implemented yet. /state/cross_road_marker|visualization_msgs/MarkerArray|visualization of crossroads. Not implemented yet. /state/crossroad_bbox|jsk_recognition_msgs/BoundingBoxArray| visualization of crossroads by bounding box. Not implemented yet. -/state/overlay_text|jsk_rviz_plugins/OverlayText|Current state as overlay_txt. +/decision_maker/state_overlay|jsk_rviz_plugins/OverlayText|Current state as overlay_txt. /state/stopline_target|visualization_msgs/Marker| Visualization of referenced stop line. Not implemented yet. /state/stopline_wpidx|std_msgs/Int32|Index of waypoint for the vehicle to stop. /target_velocity_array|std_msgs/Float64MultiArray| Array of target velocity obtained from final_waypoints. @@ -143,7 +143,7 @@ RightLaneChange|-|Vehicle is switching to right lane|publish /lamp_cmd to change CheckRightLane|-|Check if it is safe to change lane to left|No implementation. ChangeToRight|-|Change to left lane|No implementation. BusStop|-|Vehicle is approaching to bus stop| No implementation. -PullOver|-|Vehicle is pulling over to bus stop| publish /lamp_cmd to change blinker to left. +PullIn|-|Vehicle is pulling in to bus stop| publish /lamp_cmd to change blinker to left. PullOut|-|Vehicle is pulling out from bus stop|publish /lamp_cmd to change blinker to right. FreeArea|-|Vehicle is driving in free space(e.g. parking area)|No implementation. Parking|-|Vehicle is parking|Publish /lamp_cmd to change blinker to hazard. @@ -176,6 +176,6 @@ Parking|-|Vehicle is parking|Publish /lamp_cmd to change blinker to hazard. ### Obstacle avoidance -### Pull over & Pull out +### Pull in & Pull out ### Emergency stop diff --git a/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_drive.yaml b/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_drive.yaml index 21418bf9656..7c2f5caf96a 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_drive.yaml +++ b/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_drive.yaml @@ -61,14 +61,14 @@ autoware_states_drive: StateName: BusStop Transition: - - Key: on_pull_over - Target: PullOver + Key: on_pull_in + Target: PullIn - Key: on_pull_out Target: PullOut Parent: LaneArea - - StateName: PullOver + StateName: PullIn Transition: [] Parent: BusStop - diff --git a/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp b/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp index ac9aa9b126b..b26ea2b853c 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp @@ -276,7 +276,7 @@ class DecisionMakerNode void updateBackState(cstring_t& state_name, int status); void updateLeftLaneChangeState(cstring_t& state_name, int status); void updateRightLaneChangeState(cstring_t& state_name, int status); - void updatePullOverState(cstring_t& state_name, int status); + void updatePullInState(cstring_t& state_name, int status); void updatePullOutState(cstring_t& state_name, int status); void updateStoplineState(cstring_t& state_name, int status); void updateGoState(cstring_t& state_name, int status); diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_init.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_init.cpp index b4120dc974c..0cb6ca087cf 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_init.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_init.cpp @@ -137,8 +137,8 @@ void DecisionMakerNode::setupStateCallback(void) std::bind(&DecisionMakerNode::entryLaneChangeState, this, std::placeholders::_1, 0)); ctx_drive->setCallback(state_machine::CallbackType::UPDATE, "RightLaneChange", std::bind(&DecisionMakerNode::updateRightLaneChangeState, this, std::placeholders::_1, 0)); - ctx_drive->setCallback(state_machine::CallbackType::UPDATE, "PullOver", - std::bind(&DecisionMakerNode::updatePullOverState, this, std::placeholders::_1, 0)); + ctx_drive->setCallback(state_machine::CallbackType::UPDATE, "PullIn", + std::bind(&DecisionMakerNode::updatePullInState, this, std::placeholders::_1, 0)); ctx_drive->setCallback(state_machine::CallbackType::UPDATE, "PullOut", std::bind(&DecisionMakerNode::updatePullOutState, this, std::placeholders::_1, 0)); @@ -262,11 +262,11 @@ void DecisionMakerNode::createPublisher(void) // for visualize status Pubs["state"] = private_nh_.advertise("state", 1, true); - Pubs["state_overlay"] = private_nh_.advertise("/state/overlay_text", 1); + Pubs["state_overlay"] = private_nh_.advertise("state_overlay", 1); Pubs["available_transition"] = private_nh_.advertise("available_transition", 1, true); // for debug - Pubs["target_velocity_array"] = nh_.advertise("/target_velocity_array", 1); + Pubs["target_velocity_array"] = nh_.advertise("target_velocity_array", 1); Pubs["operator_help_text"] = private_nh_.advertise("operator_help_text", 1, true); } diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp index 2db20057342..b91a6159090 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp @@ -218,7 +218,7 @@ void DecisionMakerNode::updateBusStopState(cstring_t& state_name, int status) { } -void DecisionMakerNode::updatePullOverState(cstring_t& state_name, int status) +void DecisionMakerNode::updatePullInState(cstring_t& state_name, int status) { publishLampCmd(E_Lamp::LAMP_LEFT); } From a33161b441297221fd86397f6014688da500b6ba Mon Sep 17 00:00:00 2001 From: Azumi SUZUKI Date: Fri, 25 Jan 2019 14:56:21 +0900 Subject: [PATCH 106/139] refactor DecisionMakerPanel, and add buttons to the panel --- .../src/decision_maker_panel.cpp | 243 ++++++++++++++---- .../src/decision_maker_panel.h | 1 + 2 files changed, 191 insertions(+), 53 deletions(-) diff --git a/ros/src/util/packages/autoware_rviz_plugins/decision_maker_panel/src/decision_maker_panel.cpp b/ros/src/util/packages/autoware_rviz_plugins/decision_maker_panel/src/decision_maker_panel.cpp index 72293be37f0..6442af29f03 100644 --- a/ros/src/util/packages/autoware_rviz_plugins/decision_maker_panel/src/decision_maker_panel.cpp +++ b/ros/src/util/packages/autoware_rviz_plugins/decision_maker_panel/src/decision_maker_panel.cpp @@ -37,6 +37,7 @@ #include #include #include +#include #include @@ -77,76 +78,212 @@ DecisionMakerPanel::DecisionMakerPanel(QWidget* parent) : rviz::Panel(parent) // Next we lay out the "output topic" text entry field using a // QLabel and a QLineEdit in a QHBoxLayout. - QHBoxLayout* label_layout = new QHBoxLayout; - label_layout->addWidget(new QLabel("DecisionMaker QuickOrder")); + QGridLayout* label_layout = new QGridLayout; + label_layout->addWidget(new QLabel("DecisionMaker QuickOrder"), 0, 0); QSignalMapper* signalMapper = new QSignalMapper(this); connect(signalMapper, SIGNAL(mapped(QString)), this, SLOT(sendTopic(QString))); - QHBoxLayout* button_layout = new QHBoxLayout; - QPushButton* button_engage = new QPushButton("Engage"); - signalMapper->setMapping(button_engage, QString("engage")); - connect(button_engage, SIGNAL(clicked()), signalMapper, SLOT(map())); - - QPushButton* button_stop = new QPushButton("Stop"); - signalMapper->setMapping(button_stop, QString("found_obstacle_in_stopped_area")); - connect(button_stop, SIGNAL(clicked()), signalMapper, SLOT(map())); - - QPushButton* button_go = new QPushButton("Go"); - signalMapper->setMapping(button_go, QString("clear")); - connect(button_go, SIGNAL(clicked()), signalMapper, SLOT(map())); - - button_layout->addWidget(button_engage); - button_layout->addWidget(button_stop); - button_layout->addWidget(button_go); + QMap buttons_def; + // main + buttons_def["engage"] = new QPushButton("\nEngage\n"); + signalMapper->setMapping(buttons_def["engage"], QString("engage")); + buttons_def["stop"] = new QPushButton("\nStop\n"); + signalMapper->setMapping(buttons_def["stop"], QString("found_obstacle_in_stopped_area")); + buttons_def["go"] = new QPushButton("\nGo\n"); + signalMapper->setMapping(buttons_def["go"], QString("clear")); + // execute + buttons_def["execute_lane_change"] = new QPushButton("Execute \nLaneChange"); + signalMapper->setMapping(buttons_def["execute_lane_change"], QString("execute_lane_change")); + // mission + buttons_def["request_mission_change"] = new QPushButton("Request \nmission change"); + signalMapper->setMapping(buttons_def["request_mission_change"], QString("request_mission_change")); + buttons_def["return_to_driving"] = new QPushButton("Return \nto driving"); + signalMapper->setMapping(buttons_def["return_to_driving"], QString("return_to_driving")); + buttons_def["mission_canceled"] = new QPushButton("Mission \ncancel"); + signalMapper->setMapping(buttons_def["mission_canceled"], QString("mission_canceled")); + // emergency + buttons_def["emergency"] = new QPushButton("Emergency"); + signalMapper->setMapping(buttons_def["emergency"], QString("emergency")); + buttons_def["return_from_emergency"] = new QPushButton("Return \nfrom emergency"); + signalMapper->setMapping(buttons_def["return_from_emergency"], QString("return_from_emergency")); + buttons_def["return_to_ready"] = new QPushButton("Return \nto ready"); + signalMapper->setMapping(buttons_def["return_to_ready"], QString("return_to_ready")); + // set options + QMap::const_iterator i = buttons_def.constBegin(); + QFont* q_font = new QFont("Arial", 11); + QSizePolicy* q_size_policy = new QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); + while (i != buttons_def.constEnd()) + { + i.value()->setSizePolicy(*q_size_policy); + i.value()->setFont(*q_font); + connect(i.value(), SIGNAL(clicked()), signalMapper, SLOT(map())); + ++i; + } - QHBoxLayout* button_second_layout = new QHBoxLayout; - QPushButton* button_execute_avoidance = new QPushButton("Execute Avoidance"); - signalMapper->setMapping(button_execute_avoidance, QString("execute_avoidance")); - connect(button_execute_avoidance, SIGNAL(clicked()), signalMapper, SLOT(map())); + QGridLayout* button_layout_main = new QGridLayout; + button_layout_main->addWidget(new QLabel("Main"), 0, 0); + button_layout_main->addWidget(buttons_def["engage"], 1, 0); + button_layout_main->addWidget(buttons_def["stop"], 1, 1); + button_layout_main->addWidget(buttons_def["go"], 1, 2); - QPushButton* button_execute_lane_change = new QPushButton("Execute LaneChange"); - signalMapper->setMapping(button_execute_lane_change, QString("execute_lane_change")); - connect(button_execute_lane_change, SIGNAL(clicked()), signalMapper, SLOT(map())); + QGridLayout* button_layout_execute = new QGridLayout; + button_layout_execute->addWidget(new QLabel("Execute"), 0, 0); button_layout_execute->addWidget(buttons_def["execute_lane_change"], 1, 0); - button_second_layout->addWidget(button_execute_avoidance); - button_second_layout->addWidget(button_execute_lane_change); + QGridLayout* button_layout_mission = new QGridLayout; + button_layout_mission->addWidget(new QLabel("Mission"), 0, 0); + button_layout_mission->addWidget(buttons_def["request_mission_change"], 1, 0); + button_layout_mission->addWidget(buttons_def["return_to_driving"], 1, 1); + button_layout_mission->addWidget(buttons_def["mission_canceled"], 1, 2); - QHBoxLayout* button_middle_layout = new QHBoxLayout; - QPushButton* button_request_mission_change = new QPushButton("Request mission change"); - signalMapper->setMapping(button_request_mission_change, QString("request_mission_change")); - connect(button_request_mission_change, SIGNAL(clicked()), signalMapper, SLOT(map())); + QGridLayout* button_layout_emergency = new QGridLayout; + button_layout_emergency->addWidget(new QLabel("Emergency"), 0, 0); + button_layout_emergency->addWidget(buttons_def["emergency"], 1, 0); + button_layout_emergency->addWidget(buttons_def["return_from_emergency"], 1, 1); + button_layout_emergency->addWidget(buttons_def["return_to_ready"], 1, 2); - QPushButton* button_return_to_driving = new QPushButton("Return to driving"); - signalMapper->setMapping(button_return_to_driving, QString("return_to_driving")); - connect(button_return_to_driving, SIGNAL(clicked()), signalMapper, SLOT(map())); - QPushButton* button_mission_canceled = new QPushButton("Mission cancel"); - signalMapper->setMapping(button_mission_canceled, QString("mission_canceled")); - connect(button_mission_canceled, SIGNAL(clicked()), signalMapper, SLOT(map())); + QMap buttons_ext; + // state vehicle + buttons_ext["sensor_is_ready"] = new QPushButton("Sensor is ready"); + signalMapper->setMapping(buttons_ext["sensor_is_ready"], QString("sensor_is_ready")); + buttons_ext["map_is_ready"] = new QPushButton("Map is ready"); + signalMapper->setMapping(buttons_ext["map_is_ready"], QString("map_is_ready")); + buttons_ext["localization_is_ready"] = new QPushButton("Localization \nis ready"); + signalMapper->setMapping(buttons_ext["localization_is_ready"], QString("localization_is_ready")); + buttons_ext["planning_is_ready"] = new QPushButton("Planning is ready"); + signalMapper->setMapping(buttons_ext["planning_is_ready"], QString("planning_is_ready")); + buttons_ext["vehicle_is_ready"] = new QPushButton("Vehicle is ready"); + signalMapper->setMapping(buttons_ext["vehicle_is_ready"], QString("vehicle_is_ready")); + // state mission + buttons_ext["received_mission_order"] = new QPushButton("Received mission order"); + signalMapper->setMapping(buttons_ext["received_mission_order"], QString("received_mission_order")); + buttons_ext["mission_is_compatible"] = new QPushButton("Mission is compatible"); + signalMapper->setMapping(buttons_ext["mission_is_compatible"], QString("mission_is_compatible")); + buttons_ext["mission_aborted"] = new QPushButton("Mission aborted"); + signalMapper->setMapping(buttons_ext["mission_aborted"], QString("mission_aborted")); + buttons_ext["arrived_goal"] = new QPushButton("Arrived goal"); + signalMapper->setMapping(buttons_ext["arrived_goal"], QString("arrived_goal")); + buttons_ext["request_mission_change"] = new QPushButton("Request mission change"); + signalMapper->setMapping(buttons_ext["request_mission_change"], QString("request_mission_change")); + buttons_ext["mission_is_conflicting"] = new QPushButton("Mission is conflicting"); + signalMapper->setMapping(buttons_ext["mission_is_conflicting"], QString("mission_is_conflicting")); + buttons_ext["return_to_driving"] = new QPushButton("Return to driving"); + signalMapper->setMapping(buttons_ext["return_to_driving"], QString("return_to_driving")); + buttons_ext["goto_wait_order"] = new QPushButton("Go to WaitOrder"); + signalMapper->setMapping(buttons_ext["goto_wait_order"], QString("goto_wait_order")); + // state drive + buttons_ext["opoeration_start"] = new QPushButton("Operation start"); + signalMapper->setMapping(buttons_ext["opoeration_start"], QString("opoeration_start")); + buttons_ext["operation_end"] = new QPushButton("Operation end"); + signalMapper->setMapping(buttons_ext["operation_end"], QString("operation_end")); + buttons_ext["on_lane_area"] = new QPushButton("Lane area"); + signalMapper->setMapping(buttons_ext["on_lane_area"], QString("on_lane_area")); + buttons_ext["on_free_area"] = new QPushButton("Free area"); + signalMapper->setMapping(buttons_ext["on_free_area"], QString("on_free_area")); + buttons_ext["on_cruise"] = new QPushButton("Cruise"); + signalMapper->setMapping(buttons_ext["on_cruise"], QString("on_cruise")); + buttons_ext["on_bus_stop"] = new QPushButton("Bus stop"); + signalMapper->setMapping(buttons_ext["on_bus_stop"], QString("on_bus_stop")); + buttons_ext["on_parking"] = new QPushButton("Parking"); + signalMapper->setMapping(buttons_ext["on_parking"], QString("on_parking")); + buttons_ext["on_straight"] = new QPushButton("Straight"); + signalMapper->setMapping(buttons_ext["on_straight"], QString("on_straight")); + buttons_ext["on_right_turn"] = new QPushButton("Right turn"); + signalMapper->setMapping(buttons_ext["on_right_turn"], QString("on_right_turn")); + buttons_ext["on_left_turn"] = new QPushButton("Left turn"); + signalMapper->setMapping(buttons_ext["on_left_turn"], QString("on_left_turn")); + buttons_ext["on_back"] = new QPushButton("Back"); + signalMapper->setMapping(buttons_ext["on_back"], QString("on_back")); + buttons_ext["lane_change_right"] = new QPushButton("Lanechange Right"); + signalMapper->setMapping(buttons_ext["lane_change_right"], QString("lane_change_right")); + buttons_ext["lane_change_left"] = new QPushButton("Lanechange Left"); + signalMapper->setMapping(buttons_ext["lane_change_left"], QString("lane_change_left")); + buttons_ext["on_pull_over"] = new QPushButton("Pull over"); + signalMapper->setMapping(buttons_ext["on_pull_over"], QString("on_pull_over")); + buttons_ext["on_pull_out"] = new QPushButton("Pull out"); + signalMapper->setMapping(buttons_ext["on_pull_out"], QString("on_pull_out")); + // set options + QMap::const_iterator j = buttons_ext.constBegin(); + while (j != buttons_ext.constEnd()) + { + j.value()->setSizePolicy(*q_size_policy); + j.value()->setFont(*q_font); + connect(j.value(), SIGNAL(clicked()), signalMapper, SLOT(map())); + ++j; + } - button_middle_layout->addWidget(button_request_mission_change); - button_middle_layout->addWidget(button_return_to_driving); - button_middle_layout->addWidget(button_mission_canceled); + // state vehicle + QGridLayout* extra_layout_vehicle = new QGridLayout; + extra_layout_vehicle->addWidget(new QLabel("state Vehicle"), 0, 0); + extra_layout_vehicle->addWidget(buttons_ext["sensor_is_ready"], 1, 0); + extra_layout_vehicle->addWidget(buttons_ext["map_is_ready"], 1, 1); + extra_layout_vehicle->addWidget(buttons_ext["localization_is_ready"], 1, 2); + extra_layout_vehicle->addWidget(buttons_ext["planning_is_ready"], 2, 0); + extra_layout_vehicle->addWidget(buttons_ext["vehicle_is_ready"], 2, 1); + // state mission + QGridLayout* extra_layout_mission = new QGridLayout; + extra_layout_mission->addWidget(new QLabel("state Mission"), 0, 0); + extra_layout_mission->addWidget(buttons_ext["received_mission_order"],1, 0); + extra_layout_mission->addWidget(buttons_ext["mission_is_compatible"], 1, 1); + extra_layout_mission->addWidget(buttons_ext["mission_aborted"], 1, 2); + extra_layout_mission->addWidget(buttons_ext["arrived_goal"], 2, 0); + extra_layout_mission->addWidget(buttons_ext["request_mission_change"], 2, 1); + extra_layout_mission->addWidget(buttons_ext["mission_is_conflicting"], 2, 2); + extra_layout_mission->addWidget(buttons_ext["return_to_driving"], 3, 0); + extra_layout_mission->addWidget(buttons_ext["goto_wait_order"], 3, 1); + // state drive + QGridLayout* extra_layout_drive = new QGridLayout; + extra_layout_drive->addWidget(new QLabel("state Drive"), 0, 0); + extra_layout_drive->addWidget(buttons_ext["opoeration_start"], 1, 0); + extra_layout_drive->addWidget(buttons_ext["operation_end"], 1, 1); + extra_layout_drive->addWidget(buttons_ext["on_lane_area"], 2, 0); + extra_layout_drive->addWidget(buttons_ext["on_free_area"], 2, 1); + extra_layout_drive->addWidget(buttons_ext["on_cruise"], 3, 0); + extra_layout_drive->addWidget(buttons_ext["on_bus_stop"], 3, 1); + extra_layout_drive->addWidget(buttons_ext["on_parking"], 3, 2); + extra_layout_drive->addWidget(buttons_ext["on_straight"], 4, 0); + extra_layout_drive->addWidget(buttons_ext["on_right_turn"],4, 1); + extra_layout_drive->addWidget(buttons_ext["on_left_turn"], 4, 2); + extra_layout_drive->addWidget(buttons_ext["on_back"], 4, 3); + extra_layout_drive->addWidget(buttons_ext["lane_change_right"], 5, 0); + extra_layout_drive->addWidget(buttons_ext["lane_change_left"], 5, 1); + extra_layout_drive->addWidget(buttons_ext["on_pull_over"], 6, 0); + extra_layout_drive->addWidget(buttons_ext["on_pull_out"], 6, 1); + // set layout to window + window_vehicle = new QWidget; + window_vehicle->setLayout(extra_layout_vehicle); + window_vehicle->hide(); + window_mission = new QWidget; + window_mission->setLayout(extra_layout_mission); + window_mission->hide(); + window_drive = new QWidget; + window_drive->setLayout(extra_layout_drive); + window_drive->hide(); - QHBoxLayout* button_low_layout = new QHBoxLayout; - QPushButton* button_emergency = new QPushButton("Emergency"); - signalMapper->setMapping(button_emergency, QString("emergency")); - connect(button_emergency, SIGNAL(clicked()), signalMapper, SLOT(map())); - QPushButton* button_return_from_emergency = new QPushButton("Return from emergency"); - signalMapper->setMapping(button_return_from_emergency, QString("return_from_emergency")); - connect(button_return_from_emergency, SIGNAL(clicked()), signalMapper, SLOT(map())); + QPushButton* button_more = new QPushButton("&More..."); + button_more->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); + button_more->setFont(*q_font); + button_more->setCheckable(true); + connect(button_more, &QAbstractButton::toggled, window_vehicle, &QWidget::setVisible); + connect(button_more, &QAbstractButton::toggled, window_mission, &QWidget::setVisible); + connect(button_more, &QAbstractButton::toggled, window_drive, &QWidget::setVisible); - button_low_layout->addWidget(button_emergency); - button_low_layout->addWidget(button_return_from_emergency); + QHBoxLayout* button_toggle_layout = new QHBoxLayout; + button_toggle_layout->addWidget(button_more); + button_toggle_layout->addWidget(new QLabel("(Normally unused commands)")); QVBoxLayout* layout = new QVBoxLayout; layout->addLayout(label_layout); - layout->addLayout(button_layout); - layout->addLayout(button_second_layout); - layout->addLayout(button_middle_layout); - layout->addLayout(button_low_layout); + layout->addLayout(button_layout_main); + layout->addLayout(button_layout_execute); + layout->addLayout(button_layout_mission); + layout->addLayout(button_layout_emergency); + layout->addLayout(button_toggle_layout); + layout->addWidget(window_vehicle); + layout->addWidget(window_mission); + layout->addWidget(window_drive); setLayout(layout); } diff --git a/ros/src/util/packages/autoware_rviz_plugins/decision_maker_panel/src/decision_maker_panel.h b/ros/src/util/packages/autoware_rviz_plugins/decision_maker_panel/src/decision_maker_panel.h index fc02ea4e827..a6aacdd51db 100644 --- a/ros/src/util/packages/autoware_rviz_plugins/decision_maker_panel/src/decision_maker_panel.h +++ b/ros/src/util/packages/autoware_rviz_plugins/decision_maker_panel/src/decision_maker_panel.h @@ -44,6 +44,7 @@ class DecisionMakerPanel : public rviz::Panel Q_OBJECT public: DecisionMakerPanel(QWidget* parent = 0); + QWidget *window_vehicle, *window_mission, *window_drive; virtual void load(const rviz::Config& config); virtual void save(rviz::Config config) const; From 3756df77283e9784f81eb29e9ef9d6468f9d6342 Mon Sep 17 00:00:00 2001 From: Azumi SUZUKI Date: Fri, 25 Jan 2019 20:14:58 +0900 Subject: [PATCH 107/139] moded autoware_msgs/State for current decision_maker add publisher for state_msg --- .../decision_maker/decision_maker_node_init.cpp | 1 + .../decision_maker/decision_maker_node_publish.cpp | 14 +++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_init.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_init.cpp index 0cb6ca087cf..04816112811 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_init.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_init.cpp @@ -262,6 +262,7 @@ void DecisionMakerNode::createPublisher(void) // for visualize status Pubs["state"] = private_nh_.advertise("state", 1, true); + Pubs["state_msg"] = private_nh_.advertise("state_msg", 1, true); Pubs["state_overlay"] = private_nh_.advertise("state_overlay", 1); Pubs["available_transition"] = private_nh_.advertise("available_transition", 1, true); diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_publish.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_publish.cpp index 3f1113e831f..d90ed9a7686 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_publish.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_publish.cpp @@ -81,11 +81,23 @@ void DecisionMakerNode::update_msgs(void) #if 1 if (ctx_vehicle && ctx_mission && ctx_drive) { + static std::string text_vehicle_state, text_mission_state, text_drive_state; + text_vehicle_state = ctx_vehicle->getStateText(); + text_mission_state = ctx_mission->getStateText(); + text_drive_state = ctx_drive->getStateText(); + static std_msgs::String state_msg; - state_msg.data = ctx_vehicle->getStateText() + ctx_mission->getStateText() + ctx_drive->getStateText(); + state_msg.data = text_vehicle_state + text_mission_state + text_drive_state; Pubs["state"].publish(state_msg); Pubs["state_overlay"].publish(createOverlayText(state_msg.data, 1)); + static autoware_msgs::State state_array_msg; + state_array_msg.header.stamp = ros::Time::now(); + state_array_msg.vehicle_state = text_vehicle_state; + state_array_msg.mission_state = text_mission_state; + state_array_msg.drive_state = text_drive_state; + Pubs["state_msg"].publish(state_array_msg); + static std_msgs::String transition_msg; transition_msg.data = ctx_vehicle->getAvailableTransition() + ctx_mission->getAvailableTransition() + ctx_drive->getAvailableTransition(); From 9ae49ed1509015dbca24d6ecf2e33f3e667c5e10 Mon Sep 17 00:00:00 2001 From: Azumi SUZUKI Date: Mon, 28 Jan 2019 17:48:57 +0900 Subject: [PATCH 108/139] fix transition bug of return command while emergency state --- .../packages/decision_maker/autoware_state_drive.yaml | 3 +++ .../packages/decision_maker/autoware_state_mission.yaml | 8 +++++++- .../waypoint_follower/nodes/twist_gate/twist_gate.cpp | 2 +- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_drive.yaml b/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_drive.yaml index 7c2f5caf96a..472efcbceaf 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_drive.yaml +++ b/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_drive.yaml @@ -30,6 +30,9 @@ autoware_states_drive: - Key: return_from_emergency Target: WaitEngage + - + Key: return_to_ready + Target: WaitEngage Parent: ~ - StateName: Drive diff --git a/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_mission.yaml b/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_mission.yaml index 1753ff5da6a..91798d1e658 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_mission.yaml +++ b/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_mission.yaml @@ -40,6 +40,9 @@ autoware_states_mission: - Key: mission_canceled Target: MissionAborted + - + Key: emergency + Target: MissionAborted Parent: ~ - StateName: Driving @@ -50,6 +53,9 @@ autoware_states_mission: - Key: mission_aborted Target: MissionAborted + - + Key: emergency + Target: MissionAborted - Key: request_mission_change Target: DrivingMissionChange @@ -99,5 +105,5 @@ autoware_states_mission: Target: WaitVehicleReady - Key: return_to_ready - Target: DriveReady + Target: MissionCheck Parent: ~ diff --git a/ros/src/computing/planning/motion/packages/waypoint_follower/nodes/twist_gate/twist_gate.cpp b/ros/src/computing/planning/motion/packages/waypoint_follower/nodes/twist_gate/twist_gate.cpp index 842ef05cf0a..8e4df8b97c9 100644 --- a/ros/src/computing/planning/motion/packages/waypoint_follower/nodes/twist_gate/twist_gate.cpp +++ b/ros/src/computing/planning/motion/packages/waypoint_follower/nodes/twist_gate/twist_gate.cpp @@ -387,7 +387,7 @@ void TwistGate::state_callback(const std_msgs::StringConstPtr& input_msg) if (command_mode_ == CommandMode::AUTO) { // Set Parking Gear - if (input_msg->data.find("WaitOrder") != std::string::npos) + if (input_msg->data.find("WaitOrder") != std::string::npos || input_msg->data.find("MissionCheck") != std::string::npos) { twist_gate_msg_.gear = CMD_GEAR_P; emergency_stop_msg_.data = false; From d03ed2da06b9ff887fb1c17e81aae8b6e4751d80 Mon Sep 17 00:00:00 2001 From: Azumi SUZUKI Date: Tue, 29 Jan 2019 21:00:54 +0900 Subject: [PATCH 109/139] fix emergency bug of twist_gate --- .../decision_maker/autoware_state_mission.yaml | 2 +- .../waypoint_follower/nodes/twist_gate/twist_gate.cpp | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_mission.yaml b/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_mission.yaml index 91798d1e658..e73ff04f714 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_mission.yaml +++ b/ros/src/computing/planning/decision/packages/decision_maker/autoware_state_mission.yaml @@ -105,5 +105,5 @@ autoware_states_mission: Target: WaitVehicleReady - Key: return_to_ready - Target: MissionCheck + Target: DriveReady Parent: ~ diff --git a/ros/src/computing/planning/motion/packages/waypoint_follower/nodes/twist_gate/twist_gate.cpp b/ros/src/computing/planning/motion/packages/waypoint_follower/nodes/twist_gate/twist_gate.cpp index 8e4df8b97c9..3dc7d415629 100644 --- a/ros/src/computing/planning/motion/packages/waypoint_follower/nodes/twist_gate/twist_gate.cpp +++ b/ros/src/computing/planning/motion/packages/waypoint_follower/nodes/twist_gate/twist_gate.cpp @@ -387,11 +387,9 @@ void TwistGate::state_callback(const std_msgs::StringConstPtr& input_msg) if (command_mode_ == CommandMode::AUTO) { // Set Parking Gear - if (input_msg->data.find("WaitOrder") != std::string::npos || input_msg->data.find("MissionCheck") != std::string::npos) + if (input_msg->data.find("WaitOrder") != std::string::npos) { twist_gate_msg_.gear = CMD_GEAR_P; - emergency_stop_msg_.data = false; - send_emergency_cmd = false; } // Set Drive Gear else @@ -409,6 +407,13 @@ void TwistGate::state_callback(const std_msgs::StringConstPtr& input_msg) is_state_drive_ = false; } vehicle_cmd_pub_.publish(twist_gate_msg_); + + // reset emergency flags + if (input_msg->data.find("VehicleReady") != std::string::npos) + { + emergency_stop_msg_.data = false; + send_emergency_cmd = false; + } } } From c3248e15f8757639027ca673f39b43c52ce62fc9 Mon Sep 17 00:00:00 2001 From: Azumi SUZUKI Date: Thu, 31 Jan 2019 14:21:53 +0900 Subject: [PATCH 110/139] fix typo in decision_maker_panel.cpp --- .../decision_maker_panel/src/decision_maker_panel.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ros/src/util/packages/autoware_rviz_plugins/decision_maker_panel/src/decision_maker_panel.cpp b/ros/src/util/packages/autoware_rviz_plugins/decision_maker_panel/src/decision_maker_panel.cpp index 6442af29f03..e526342d89d 100644 --- a/ros/src/util/packages/autoware_rviz_plugins/decision_maker_panel/src/decision_maker_panel.cpp +++ b/ros/src/util/packages/autoware_rviz_plugins/decision_maker_panel/src/decision_maker_panel.cpp @@ -173,8 +173,8 @@ DecisionMakerPanel::DecisionMakerPanel(QWidget* parent) : rviz::Panel(parent) buttons_ext["goto_wait_order"] = new QPushButton("Go to WaitOrder"); signalMapper->setMapping(buttons_ext["goto_wait_order"], QString("goto_wait_order")); // state drive - buttons_ext["opoeration_start"] = new QPushButton("Operation start"); - signalMapper->setMapping(buttons_ext["opoeration_start"], QString("opoeration_start")); + buttons_ext["operation_start"] = new QPushButton("Operation start"); + signalMapper->setMapping(buttons_ext["operation_start"], QString("operation_start")); buttons_ext["operation_end"] = new QPushButton("Operation end"); signalMapper->setMapping(buttons_ext["operation_end"], QString("operation_end")); buttons_ext["on_lane_area"] = new QPushButton("Lane area"); @@ -235,7 +235,7 @@ DecisionMakerPanel::DecisionMakerPanel(QWidget* parent) : rviz::Panel(parent) // state drive QGridLayout* extra_layout_drive = new QGridLayout; extra_layout_drive->addWidget(new QLabel("state Drive"), 0, 0); - extra_layout_drive->addWidget(buttons_ext["opoeration_start"], 1, 0); + extra_layout_drive->addWidget(buttons_ext["operation_start"], 1, 0); extra_layout_drive->addWidget(buttons_ext["operation_end"], 1, 1); extra_layout_drive->addWidget(buttons_ext["on_lane_area"], 2, 0); extra_layout_drive->addWidget(buttons_ext["on_free_area"], 2, 1); From 8dc8c5107d71c0c2c3f35019bf88e116191c08d7 Mon Sep 17 00:00:00 2001 From: Azumi SUZUKI Date: Thu, 31 Jan 2019 15:48:05 +0900 Subject: [PATCH 111/139] remove unused parameter --- .../decision_maker/include/decision_maker_node.hpp | 4 +--- .../decision_maker/decision_maker_node_callback.cpp | 1 - .../autoware_config_msgs/msg/ConfigDecisionMaker.msg | 1 - .../packages/runtime_manager/scripts/computing.yaml | 10 ---------- 4 files changed, 1 insertion(+), 15 deletions(-) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp b/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp index b26ea2b853c..14d358e6b86 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp @@ -103,7 +103,7 @@ struct AutowareStatus int found_stopsign_idx; int prev_stopped_wpidx; - AutowareStatus(void) : closest_waypoint(-1), velocity(0), found_stopsign_idx(-1), obstacle_waypoint(-1) + AutowareStatus(void) : closest_waypoint(-1), obstacle_waypoint(-1), velocity(0), found_stopsign_idx(-1), prev_stopped_wpidx(-1) { } @@ -142,7 +142,6 @@ class DecisionMakerNode bool isManualLight; // Param - bool enableDisplayMarker; bool auto_mission_reload_; bool auto_engage_; bool auto_mission_change_; @@ -326,7 +325,6 @@ class DecisionMakerNode DecisionMakerNode(int argc, char** argv) : private_nh_("~") - , enableDisplayMarker(false) , auto_mission_reload_(false) , auto_engage_(false) , auto_mission_change_(false) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp index 95346d6bb08..63243f50e9d 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp @@ -44,7 +44,6 @@ void DecisionMakerNode::callbackFromLaneChangeFlag(const std_msgs::Int32& msg) void DecisionMakerNode::callbackFromConfig(const autoware_config_msgs::ConfigDecisionMaker& msg) { ROS_INFO("Param setted by Runtime Manager"); - enableDisplayMarker = msg.enable_display_marker; auto_mission_reload_ = msg.auto_mission_reload; auto_engage_ = msg.auto_engage; auto_mission_change_ = msg.auto_mission_change; diff --git a/ros/src/msgs/autoware_config_msgs/msg/ConfigDecisionMaker.msg b/ros/src/msgs/autoware_config_msgs/msg/ConfigDecisionMaker.msg index 02aa18adb61..7093b069a80 100644 --- a/ros/src/msgs/autoware_config_msgs/msg/ConfigDecisionMaker.msg +++ b/ros/src/msgs/autoware_config_msgs/msg/ConfigDecisionMaker.msg @@ -1,5 +1,4 @@ Header header -bool enable_display_marker bool auto_mission_reload bool auto_engage bool auto_mission_change diff --git a/ros/src/util/packages/runtime_manager/scripts/computing.yaml b/ros/src/util/packages/runtime_manager/scripts/computing.yaml index 1c9e5a0a3b4..5782a5b5e65 100755 --- a/ros/src/util/packages/runtime_manager/scripts/computing.yaml +++ b/ros/src/util/packages/runtime_manager/scripts/computing.yaml @@ -726,8 +726,6 @@ subs : gui : dialog_width : 400 dialog_height : 600 - enable_display_marker: - flags : [ nl ] use_management_system: flags : [ nl ] auto_mission_reload: @@ -1970,14 +1968,6 @@ params : topic : /config/decision_maker msg : ConfigDecisionMaker vars : - - name : enable_display_marker - desc : enable display marker flag - label : enable_display_marker - kind : checkbox - v : False - cmd_param : - dash : '' - delim : ':=' - name : disuse_vector_map desc : If this is enabled, the state passes through the MapInit state without vectormap. label : disuse_vector_map From bdf36f6b637be94185b5b29ac584f1cd9832d57d Mon Sep 17 00:00:00 2001 From: Azumi SUZUKI Date: Thu, 31 Jan 2019 17:37:24 +0900 Subject: [PATCH 112/139] update README.md and jpg files in docs folder --- .../packages/decision_maker/README.md | 30 ++++-------------- .../decision_maker/docs/DriveStates.jpg | Bin 1241916 -> 1048593 bytes .../decision_maker/docs/MissionStates.jpg | Bin 239848 -> 259175 bytes .../decision_maker/docs/VehicleStates.jpg | Bin 115745 -> 119869 bytes 4 files changed, 7 insertions(+), 23 deletions(-) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/README.md b/ros/src/computing/planning/decision/packages/decision_maker/README.md index 4f762b3a1a2..ca37316ce0d 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/README.md +++ b/ros/src/computing/planning/decision/packages/decision_maker/README.md @@ -16,8 +16,9 @@ Each status is managed by state machine. ## Runtime Manager Parameters Parameter|Type|Description --|---|-- -enable_display_marker|Bool|(default: *false*)
not used auto_mission_reload|Bool|(default: *false*)
If this is set true, decision maker automatically reloads mission as new mission after previous mission is completed. +auto_engage|Bool|(default: *false*)
If this is set true, decision maker automatically engage immediately after ready to drive. +auto_mission_change|Bool|(default: *false*)
If this is set true, decision maker automatically change the mission(waypoint) without state_cmd when new mission is loaded while driving. use_management_system|Bool|(default: *false*)
This must be true in order to incoorporate with [Autoware Management System](https://github.com/CPFL/AMS) disuse_vector_map|Bool|(default: *false*)
If set *true*, decision_maker will exit "MapInitState" even if vector map is not successfully loaded. num_of_steer_behind|Int|(default: *20*)
lookup distance along waypoints to determine steering state(straight, turning right, or turning left) @@ -64,16 +65,13 @@ Topic|Type|Objective /decision_maker/available_transition|std_msgs/String|available transition from current state /decision_maker/operator_help_text|jsk_rviz_plugins/OverlayText|Help message during operation /decision_maker/state|std_msgs/String|current state for "Vehicle", "Mission", and "Drive" state machine. +/decision_maker/state_msg|autoware_msgs/State|current state for "Vehicle", "Mission", and "Drive" state machine with header. /lamp_cmd|autoware_msgs/LampCmd|blinker command to vehicle (0=straight, 1=right, 2=left) /lane_waypoints_array|autoware_msgs/LaneArray|waypoints passed down to following planners. (e.g. lane_rule) /light_color_managed|autoware_msgs/TrafficLight|meant to publish light_color status. Not implemented yet. -/state/cross_inside_marker|visualization_msgs/Marker|visualization of objectes inside cross roads. Not implemented yet. -/state/cross_road_marker|visualization_msgs/MarkerArray|visualization of crossroads. Not implemented yet. -/state/crossroad_bbox|jsk_recognition_msgs/BoundingBoxArray| visualization of crossroads by bounding box. Not implemented yet. /decision_maker/state_overlay|jsk_rviz_plugins/OverlayText|Current state as overlay_txt. -/state/stopline_target|visualization_msgs/Marker| Visualization of referenced stop line. Not implemented yet. /state/stopline_wpidx|std_msgs/Int32|Index of waypoint for the vehicle to stop. -/target_velocity_array|std_msgs/Float64MultiArray| Array of target velocity obtained from final_waypoints. +/decision_maker/target_velocity_array|std_msgs/Float64MultiArray| Array of target velocity obtained from final_waypoints. ## State Description @@ -87,7 +85,7 @@ LocalizationInit|/current_pose|Waits until localizer is ready | Waits until curr PlanningInit|/closest_waypoint|Waits unil planners are ready | Subscriber is set for /closest_waypoint. VehicleInit|-|Waits until vehicle is ready for departure.|No implementation goes directly to vehilce ready state. VehicleReady|-|Vehicle is ready to move.|Exits to VehicleEmergency when `emergency` key is given by state_cmd from other states, or if `emergency_flag` is set true by other states. -VehicleEmergency|-|Emergency is detected somewhere in the system. |Waits until `return_from_emergency` key is by /state_cmd (e.g. by DecisionMakerPanel) +VehicleEmergency|-|Emergency is detected somewhere in the system. |Waits until `return_from_emergency` or `return_to_ready` key is by /state_cmd (e.g. by DecisionMakerPanel) ### Mission States State name|Required topic|Description|Implementation @@ -117,10 +115,6 @@ Stop|-|vehicle is stopping since stop signal is sent from other nodes (e.g. by s Wait|-|Vehilce is waiting (e.g. due to safety reason)|Publishes /state/stopline_wpidx with the index = closest_waypoint + 1. Go|-|Vehicle is moving|Throws found_stopline if stopline is nearby. Throws completely_stopped if vehicle stops due to obstacle. StopLine|/vector_map_info/stop_line|Vehicle is stopping due to stop line|Throws clear key after vehicle stops for 0.5 seconds. -TryAvoidance|-|Vehicle trys to avoid obstacle. Not implemented yet|No implementation. -CheckAvoidance|-|Checks if obstalce avoidance is safe or not. Not implemented yet|No implementation. -Avoidance|-|Vehicle is avoiding obstacle. Not implemented.|No implementation. -ReturnToLane|-|Goes back to lane after avoiding obstacle. Not implemented.|- LeftTurn|-|Vehicle is turning left at intersection. Change blinker to left. | Publish /lamp_cmd to change blinker. L_Stop|-|Same as Stop State|Same as Stop State L_Wait|-|Same as Wait State|Same as Wait State @@ -142,10 +136,10 @@ ChangeToLeft|-|Change to left lane|No implementation. RightLaneChange|-|Vehicle is switching to right lane|publish /lamp_cmd to change blinker to right. CheckRightLane|-|Check if it is safe to change lane to left|No implementation. ChangeToRight|-|Change to left lane|No implementation. -BusStop|-|Vehicle is approaching to bus stop| No implementation. +BusStop|-|Vehicle is approaching to bus stop(not supported yet)| No implementation. PullIn|-|Vehicle is pulling in to bus stop| publish /lamp_cmd to change blinker to left. PullOut|-|Vehicle is pulling out from bus stop|publish /lamp_cmd to change blinker to right. -FreeArea|-|Vehicle is driving in free space(e.g. parking area)|No implementation. +FreeArea|-|Vehicle is driving in free space(e.g. parking area, not supported yet)|No implementation. Parking|-|Vehicle is parking|Publish /lamp_cmd to change blinker to hazard. @@ -159,23 +153,13 @@ Parking|-|Vehicle is parking|Publish /lamp_cmd to change blinker to hazard. 5. When the vehicle reaches the end of waypoint and stops, state Mission state transits to `WaitOrder` via the `MissionComplete` 6. You can repeat from 3. with other waypoint -### Move backward - ### Lane change 1. Start Normal driving with waypoint files necessary for lane change 2. On `CheckLeft` or `RightLane` state, push `Execute LaneChange` button on DecisionMakerPannel 3. The vehicle start lane change -### Stop at stop line - ### Driving mission change 1. Prepare waypoint files to change, and start Normal driving 2. On `Driving` state, push `Request mission change` button on DecisionMakerPannel 3. When the state becomes `DrivingMissionChange`, please load another waypoint for change 4. If it is possible to change the waypoint will switch, otherwise it will not be changed - -### Obstacle avoidance - -### Pull in & Pull out - -### Emergency stop diff --git a/ros/src/computing/planning/decision/packages/decision_maker/docs/DriveStates.jpg b/ros/src/computing/planning/decision/packages/decision_maker/docs/DriveStates.jpg index 5ed7a7284c491c1276ee9081ddbab5328008ef1c..207c01df728cabe15e7b378de5098a4588280462 100644 GIT binary patch literal 1048593 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
Rk7%jf@UK^-&=7W{hC@xuc6 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%0D?s@zKW1s~7jOsSuLcGtz}LTVjcq><9budL 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%0DYsvLn{k-tY#Z~>e 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

tA_I+o?PCgh(R1PNT(HJ6Mf z$=UY*{T=`k`F}4<(G7TX5c#V-=8YTIJeSNIk`1@OeUf z7f@D9f6D^&6=X#|^Yb(Qh;cR=9pXrGe)Gu@t060f7#yI<-)F19j;Fpu%cRwD4v*f;@aOj_Vt3^kQ@?0 zOZN4Wh>MgH4lbS^Q}NUN+dl92hT#PL(S#4nGZ3PJ2jpJg8)#x+n}=Q2dlTat+x5bY zgsdyUsy?p@`oM3H&31UWDlj>4YpE;@GVyf1P3(RgKp4wC_fAqQlYA6Z1wCZ_Wq@ad zdr5pS1Y6+5bEaU_%*??H^4)O4VnH1T`L;B z&5)PJa4!c$>r18k|2EZ!V6oJS7d_vl2huZJaTw>NPbPxmL%#Rg%)|Xkb7|@d7plv~ zB(!M6g}CO|C$AAt7oZ4AB;X8$Ls}TeDbjH_T;xCd%~%0^gAN*yM@@Bmz|^a}uy_++ z3P;`jHVlO&ON^a4U+!omSEqX~>S5#?Xf6XLyJ=#|(SKSLADEpl>c(Qp((Mm@=yXU? zGzz#<2Gok4UD0LzAegQ6P7L4}c$ez|_6*!4Mul)M%l74o4{T3*FtQ+3hu4Hv!DQ)P%(zDp%~}IrQlHa4tk`B&hPuol z@#C9?g?8(+Pxy^PPHAs;&{3%EoX7X+V(RM)+{#n1V@tMz6pQR57>;+a--nZ+r`voZt=x^d>DB)J zLr5098{Riss4ameoNp%aOpe!w+DK*>%(($__F-4v>j?p0<*z#PCY%E~74{cPEE z%m%l=q*2aF=#ZYi&*4=heCT2p-b)X6aCPaypx50KyYVA;F9qQakaEIg(`ts!GYk=L zCnOc-RBRNb#3VUmzh6NdQVo|7GG`|yDMr$RBXJm(j>y(9pHi}~YC7fhSNa`fM62uk z4_3ZSrX$&PFaIP6NS#Wd0HAS>x>#+?zep@rd#KKVQo<#Fgp}_ z0<;@mEM`%MLoYsVoOIwqp1pP02YxE&j`h+~QGA2j3fQgFsiuse$w8j0jBM4wquUCR zp$04u`!3tZOe@!Q%nBVAg4|610+HIpj!JVPjP6awtn#@$zkODRwA-~a@9UGH@tnw1 zKl~LICiygHm2YT#!e{j|@=|1%oSQTh*kfKRP*$3Bah&;$qlCaaf#ba~z&jTr61b0r zg+H%m3#(@vM3IcjAiMq^dC|!VX{el{>=qcfREllg+T-)5wZkfj#KogU)# z3q}q^EdxGArO9?)a_QE1^!=)!9;X8yASUMzF9T@~s6HmJfp3KJy(A;>3R;6jLDI7) z7Ne!btz2!{M~QceR_L6$Y;1FgoiKn`z|LD8XLct0)u~QlvbL25M&jwbvsds81rI&- z1O1?(zA)Xj>$}wa_XI?{x2G3jTe3Wk2Yye+6MTu>`7sW)5?S3#1+S(wF~rl)k-Fam ze8>rcR+1A8L&9AOQ#Q)!O~9aSGXS*r_;5u307dlg zp~JAo&|5KZ#$lk}nqZ=k8aOdx>C3R`+cBq5gwF0xu}@UUd+g%>HR9VU(qkc0^5 zHOABR^mHINgVz4})mA&8?5t1A`?~7klgsozdq&To+ZoT>*2o<;C}lR{imKY zd_(<6+ zwVZqbKVWZ$FEfPwW?gf+nPB14r^6K8CCHh}vHHFH9Y!Z~Vv4Pqm>Jq~6{cqoZ$kk8ON9 z=EPnK6WtA2N?%BP(X|Egs%amk_fH8AK<~TpY5xo?kVOZ+ssR}(fz5eZX$RSd&jI`7 zRlauEilRDW54BUr5Kgj#z{ri|QCSE4>hSpkszKlegPyDPM7F=fweLyp*i1wUd_R*< zT#=r_qaV)+qaZ5}JeWY1X4VGi^WK8Cr9Ty#5d59a(*8g#EC%)FW99piC#%G zsnnd5U1+u_`|GG09`1dD`~f4sTV*e8>W9&YBS08f5WG^1Qnf3y^XZ_JLaHCggY@ zWewU*Y#s#+h|n~Fq|uRrjU@Sp@+t#9rvy8;iy)-4u-Aq>b|hYW>c?{Xa@~7z^GBJL z$8K7CK{(GQU1mBO9-~PMF1x$6Sa{LkHt7vnus}O%Lq`_^MyP9zUSh3xi+}bSsz3X| z+jS72EBLj6kHypny#y?$Ov==*e?43vh4BqP3**|dNt(VlBP2~pgB$ZMUM@Hu#tWUjS9SZViNPCo+zn~$H=Yfy+j`J zwjH3`zIdhrYBF-Qre7c-Fz}Er1&VfPrCMJvqvn4A6>s09&S_{k^Ri=+FKgIYiqD|p zNIE}Tce-uN;w`H2u&0K@aP}gw(V% zD~5cZhUbh9%#gGl4jm@}K1OpsESPk81$v_dNAmO)@5xqPgcJ?W5SPgt(rN*d07Ga5 zoLi%0Sh%Yuv$p~coOrF_?AA!|^nCZ|hBoZ`#4Y5qu_{^E5-&jz zb9s%A4>A|X997If1}?)_iveR(_-`uhK%j1-d!WgA7QY;DLkLqdol zS+Z7=5VG%v6jDqGMGV>Z?EAhak+tlG?8}UGFs9$f+3q>#o_o&e-gEE${$8*9*UXsB z%zQr2=Xu`G`~7}o*mxIENxc>hVm#H@T~qN_>?-H?EQbihkWG;q-{pNH4_UPjusX&0 zb05AQa48jYQ%n_#k--l)R0z}(Tk5Ekvn_R%JH>*gT057A4W5o-cM)A{n8=y|iS<-L zzOP9gmECPfUzFL@p8)nAo;%|LQVOGCBC56|(PKE)w2=EN&BSSdqX!y&{apR zaTeN=G?$xRl0=MFGRZr(&ctg>1#D9s`~>*PwMpJNJ5C}QNRDxYEYii& zAo-z4ritpZ`X(`3*?*uYhO&5SINm*z%vF7yyi3v$E@cUYba0m%vDV z0jivDX_p!?V%c40OgVILw6lygZrCYsEAdu9FylI(oHdbR5g4F?@!aI2M6H_05RL8; zB|s|(zlQ<&^HMPvp(<05%m9C4aAAXl!d+;;ZSrR3l(=N*Zc2as(KY< z4^gn;Wo@adB^3D1oze=F-Ioqim7d{kvCs0(Fm^qWF`}%gd|)GRBJZ|NpW%JmJl9*k zF^n@^s!(5a4LZZg;7%T4*w>QJxld@X#xkevYyTPD50)aXxvvy+IC7`@xj9YFb zXIm?oB;wO}6%0ybf%?yORt-+Myb<&QWa*QO76! z`{g_A+2x$EEq)dZ>Caps&Z6TE88jord>n#*Wl*FxY`#M&Y590#=fpOsOspmF{g*mX zr)3X3%WbN@4zn@$>qeZK!Vm7Hqu(3ls%Cj$?;*bUuaNRU^ayA77V_bKLzQrYGX$o% z%&SSq*e6cP7o0k@PHZAgBm@GP<_0-)S>#jT~#i3y}V#rD)Jc{P8 zB-eJZV&_^;P~U*Yf!QS>HkR;ql0-)JnQL5}az5TSDtItxVmuu6WKRnS-z+22EI?)1UIW- zuYXwhQ-0*FqU8Arm|-T&K&QMTlH0oVpzLYhhLJSheLm3aLliaBEEC~bI(st&Hd&KP zU-pNt-RgoH=`gmlIR%6_nq-bd+l*CGpDwWML3xv zyZe5oZM&>kHp#0Ma_`3}3u>x*z_aSaR@%#(s6{1CwawnMDI^uVPk50+dc8PiB%d0L zpKF|zVz&omImoJ>HDH zro~#x*2^kbLx+~xC_6f)Tf}8pYMLw<37?>bZW9bDLH8^@!na-!Mo4v18P z9mUNayS4j-feVBaR<}bpC%v@YgUXcD3bD`AV&?Hg@R$ymRtV=*NPo1-C^)#IZs>Lh z$4$JdZ}YJ$R}q?7E2P*-y4G|cizl-XR&Zhjpr+P!j`rl!2IfeyXpq(@Haic3H&v^1 zTyx2I6xHKuh35vv&(sU8BUS|6YOTXmI@b}w(#OaN);eM2i}?Hx5|#U>izTTBQsGTO zQmiW)hx0Q|qgTbEUSJngk~Ub10)qv{jc?7+-=paIE#&I@wSj8r=5!opdyQ(N`$(C5 zZ2#nk9=oaR?X7sjiF;Hk{u7yqqfT=D2opa(73AdWXcMw`L`xB|e5B}np?dIbad``# zRZ36s2;L99xCN|}b%GOGzYAu>n9NDOjO|F^5Fm7ag|JxFK3!>(D+_XiJ2N%556>qJT|tH5;BSo%s&`qggf-sdp)>@t}QixC|SppeZ=xa z;NeEipod<>h>3i--w;Dbt@GxW^k+z)fmeax2Vv3?oTt;I8 zNsj=#-ccrE>6(3@1ylQ=ZF||^U21adbx6!j$i+i>6knLoRQClEb+L@In~9|tML#Va z#%&rM_Z_Jzhsxp`d`FwyGT@4NIlFG=sd=`pS|$;MfE4ZLsMB97$NVv4-DSKlL7OuE zrgwYqkxUW~-q24(^1~ClGN3`@PyY(B`MkQ}#4|(Z@B+9xH{*TlbOc*Rk!%JsEZZ&m z(r#UFj5G+;8VUj)y!Rx`IF97>#2Vz9E?e9s0TTOI===p$s2}X9Cet+{L^=7fDt@ufDemwRgiu|Ma?MN8+5tf(;Nh z?b$XJ6%M@I4D`0G5~yUGiOF)4h*?>xm>czrD3V@$8s4W+ufT<3UJq}4>8cpRH1 znZfBNBH5Lrnyi{mxY>rgbhlW0G_K;&d3K*QRlW9Xy(N0WATo$XJ%PECV(j5@^5VLC#f z*kiCPQWgAmjk%x;_eM<*LMVJD=+s%kW>&|6vAZg>bZXn|I-Gfx;~1VCkjQ0c{;KvZ z_@sJ3@&Q>$&OGHtK@eBtG(!mIBKO(a3UL^UF471EU(kABAiNXs2 zC+w{xAiNVM=lklP?L$7ER2>ep)vI4@fYItIe9=*IOn$FIsiPYLPJGG+H0`Y2u(ttK z=L0PnC0}@>J#RC%DylNUzRw{bVVYsX#WK?5j&EweRJJ!*cV1E)((tEljv0g)C+dj{ zNC$UWQUZb~j=p3z0I=ooEZYpHoZc&5CAEnSHyR5TUtqSTdb2^l#XP}{9v}LmX7Ud@fEM1qqfq3LLf`3bESpu^e0`@9?iAq^g;b~$(7F;&3>s4`2}SAJz~q-Qh5)) zaRNXOhTvz+9aG#sdy7^qgL!dD2-S=hGcSIC-?LE10aB!CFN(<0W`LZX{RBgr-A z(cD=YS*N$LmE*5lLEHIAWw6#?tKIse~O0BR>k-)KnnS#e*HnIeftB;d=*-;%m@O zT4a<<{UM5R-;tqWI1u3` zV>mrRd#9sW+gDVPxffjbo>m!w(R!@v#`2^7Zd&aMNP-JiJsHB~hNEG;YXU*x<^|BGq2L+HCZL@0FhvCmb zm`WFT`a*M^%PyL5wZ0F6(UP^`4Y-AzXhJ&ybeG5ZMoFrL=)uakMqOt$-PS8i#R z+W_248gH&0@)YB@x$<=2s4<{$wMw`_I{+sE1MqaB|7;g)D1>Zg-UH+w!nwqQBfR&I z*v&qDBi;t$_tq($X}d*V^8Svu_er9OarA*bGjqrh<&aH)B0z+=t~}?ym;AI!<1l5^ z&m{+cyZ&EYZGS0DRo_L@A8loR(3Rhc`0RTp0-|lxdLFTa-fH1sXNPd+k{9Ka zH~O-h*M{@pHNa)Sf60r0s*iZv=u2iZv*B`YUev2gTGoSa&4j-rc4ydhPKi-+yp!mq z0uuaPs8)OVc7Pv z=3K=tr(=VpmLkFYBe3HO3z6JgbNx~*C7@cQG<|h|=-;Qwo)MbZhV#Vq6t5F!6NW@F zwPf~Q`zK#|}JVn#sz7_PH zQd=TEc~$aquJ%E`xX(iEy8Y7T`vZq)MxWVfx1S_ER{CW|`19=WpT926NvTi;g1H{b zuY!*#UVHx|DwTh*eQd6W>x0|o9k-aR1H2KSOAE zgHb)pD8@X&3rq28oGs#SHPmJlruC?c32`+nSBH)BiX*klc=l4ij-xRDrJ9Ew){w9R`Q%;C{LoFA5yc>{jMG8~?2 zvijX}ctJW4AxK;z4Ex2bysrZ@%1$9iQBHpDZBJZ4J?A29wVh%BtRLL)LrjEgq^l@u z(8@=rSeU~L+_PFlXXFM;w@W6$P%rYKb-&0(($yZ=R(1}U`L*{tvZf zz2^#dED7uiIQHQi!o7`0=g(2Y8wyfN$(s%4AcRU$CTl<_s;Kh$zvu1$UcCQP_i6Wm zx#pr7Ok!caNrU3{!AkamfVN_U%mCCm4r4T)r+T?{a(cLr=tTG$yx%v#Ar_3}DK_!x{mJv&sg2hPN{{V=eMls`R)SlV&gIX|##^g~^iq0Pj=& zNgls5m8n>H=!Bd@?YUf7>Lj2erWv@Vkq+VIQYWbZNW8;v zqT>X<5p%rwiN}0mdSow0WZ+^uEo9Z7w;6*WA9b?A93&pe;xs69Q3?n41FV(T^7G$- zIn0_lxD#C;qO4yZw%@hnhnRl{G zzbYvIuZ}fKLZ^X2j2?I6l68QmY41Tkqh)TbqbY88@Ek7{D@xgGF{AkbU)o4Cbd`Vr zWT*848*pI8&B>%%Y%MK1_=16syCY=4-CBNaxIt16*IBEBz#O!5EiQaZ0%?OWkobR3 zYlyfUz?>!yf#S?tkfYSZS7|^OW{x|YE7N_U#l2{4A0@mYin$66YvYX6>CVqEu$-8f z_1@SAeyg4tLxwWe_=PRQCl^Lqx{tk7tR+*v5^B*Sx!_$|zL*lsB3>r}ZW!P^&ZTVg z#&&uz5#fr}1^B_I4DAD_UIQoUOXevBc?G#o-{lwj(|m;#AJ`3l4rIw7r;8nq>F{tjW`h=ZzWnni%t5r!(gURAYPXZ?sFiow1&z6td&WhE8%`zL z%adJ}qo}PIRVW|gq*GcwkBJxQh&4A|&G3v#%hTCsfDMRLRLA!>7@XQDGaXY18?0FM zc_ES47<(UrW<=_&g04LV58iVT>U1wXOo#7)o*=34``2w!U!g3e{l`6Bnxuk$D0NKe07Ci#I(w>B%9X2wVpCE7t(6GB?7B$ZRS|awk^S*}C9HU=wsZ z)ykK*BnbX?!K`n$6>D+y)E$sHp5`^^92xe!-*jqpYW&ua>39gz8w{Cu1l&}i@JDVU ziDPp*)UPb%3G(+m$xf~JA%`GfS_Ea-KR&Vl(MkSWe?Of-4oxx(a@KkLIAg$Fc;HeF ztjSw*Du#Zq2J!revX(77qXjpz(S%DD^TxYyCEbvC-DLvP_P7k4_W8|rziaNK{N{cn zq0=A>oILV<73ZDM+wNfjxQp_dkIPa(dzet zTA?o2iI~bcDzExZj`l5}(Y?Pnd_aOd%Yuo6Gv}Phl|=OM<`pna8lM@nziPiU^tr5! zPFu}a$nM$Fh~?U~r(E`7gID>n*VK=YZ1qxzLe6ipL#oN=yYu3@bl(r%zr1<#rqK+b z&DJxHe}(j+54)X%_UA>Nuj^@9kIzF3TtmF}@H4B&G{RvSO}PXnY|0cfwk|wu?z#u3 zB?+Vk$!a(HRLbMc-#YiHB$&E#oV$9!x3P;}eoW`WUyTh=d@;;jCxyJKoZ}K%QUuee zvp#Q;72Xf8F+^@0cgcYK>U{cL|GDJfN#=fQ37pI{sz>ja5E=ROq&t5X^Wk@WGRyD3 zLhuZoGY=$Z{aA+UuzoiKXzL~T-&88~S1H#$orx=ukAW|$LSu-S1_L-gsxmUe>_Pv5 zb3q47(rRir%Db4gu6`h0~XSUTB`LVYjjVhU%D z>Dy`;6)&tFoG>oG^cqt)zSZjiQH6jci_%k~pmyZF*kjy`fk@9HaBC4|IRA14b(7)) z;w4A-w3x>$qj=yj9A&aQp~U@D%(G*dDvi{igN47iP9>;@?|Gayxg{^xxzIe*+0TW2 z|E!nS6>nH2QkUHx#*D1rwR8dr0l8}hfB+Ie{%U+U-zOzg8~a`UI=PzMR;|>89&2eN zAN6#gJ7qOqQx3qejj?+2L4x38Aw&94vSWif)2oqR@^%*rzSyIxyBPIp;NsYxZKm7|?;FLXHgZdg2hIj|e}Z{#ULPg^KOZ!MzKgd_445`8UWFu_A~uiBAI1xC z@UFlY-QLTOog@J=JXLEtc^8qkpIToGHx;-%h$O$$EYTMq1x3t-bXFw2X>x5`en}~e zc<>H6zXMQhd!I?b;+8g;y8Q7=hUGC;j=^oM{w_OY5S!H_3G-AZ6J69Ur}?!( zOgO6hFnM8K45IxN!h93ezTDeAOI1&Xb(ERELA*+pC3l@q-WWwMo+2BSL##d;D2y5& zHmjiR!Qr(66Pm2TuXgt@=!jY60w$K~9iD`AhGH;n7UK_i2j?8ER zEjoo5p6=D}2G|c<*UBxyst0_oLj=?#g~o zx?(o=I4#zR$Q0dB1OdNWu(90;kHEUcP2_gpibVA5q0jMlGkTxAX|uzjp3p>7xG_>K zmMY7rdCc28I0J~Cvez)42(Rhm=uDhq+Ap>e(hT|u>z`XZ@({0p!i?fqo8eW_F9?L%@6 zPW3WRm{V__=v>7kQoGRQHXta zprd3EvaWc3aX8M_CkAHvCiz}p53s^GO@~q{R(h(?dvbR3p*X_;N2tfYP9OafY>0oA zqWVW-+ix*t{<&8B*VoToiF-w>#8SeMT6+u&D0>5dvIi^!wR~4nmVu=v-56kmbho}QPwvjr11AnpY_0oYhKR4y$qa8nzVae& z2c6+$44p%_3n#R`I!==7};gds_8vlU0NpEE-M z0>YN11zxZM?rA{%bg|l9WZSNU3%TCJm;kLd^liTx01;&$FL_m|Ow8Q$hkTi@U?raJ zrHgRQSy~juxcjMDu*cH5PEGG+2p@d^E4wzm1mX6X*jvE zxb4KdJHH*e220q#Re4Yd(;$reA!Lr>V2|Cv986ekDi0=KyeDj$KkR@HLi_9oN9@9; z7SKM^V(Lv6-Bh~JdoLl^GEjuh^**FedgWwAF_fc{7Y3>gO-~67nGyN~1=dNLD~<`i zr5R2>v{2@;UYGFzvnB)k9zJtENj&8M)(#1cJ0*#BlV3Jcfm5a%Zlj+{$n$KMCI5i( zpMvLtr5Q;^2uV6jb}89C@_3>dOWZqhv0^)PV0dw`h^)PX$X>jN*yn~U1~XYr$8%upUyVl(&p2hP= z>GWS&zyB%0`#)=}{{O@C{$g2gZ3V4UORWpcD#`CSTUV+5VRf|z#{e74T0lxCBRJ?1h|Q= z|Mjh(KNSAIC;sxQ`rnuHzm@aTM*83G_*EeJ-|qO|?)XQ$!@0Mi@(9sfpXk=(qFHF{ zY`a#3ednXv>h=1yRzV{<1M#r5^ zk8WbFcG$d3*BF)h&JpIGWD3|S$^d}9)@2`X{tD)OS3axKg$75xtJ#>YUeHLdp&%U8 zo2)b3e<%Ohs<-0Pn~jO1xvSKf(_bM}5=Sg}qR@;BX`)}^%S&!6Y@Qe(i^l9_Nor`L zoQ{8EmgRnOtR?p`7AePhiZshhX3Bc98ZB`izkEH4bwSS%ejFJF+g>&BPH-}kZm%M@ ze4M-AL_T>_!>T?zM5l}53uXV9Tl_S)x!J_pMP5XsUJV5^TOT0!>Y#PK@U?g*HDVf875;|z8RJk)iKhJIQ}bm zV0ot)LMDrH%&>S$o_M?Z6>^y9SVLg$v3E7sY`A>2KmNNO)9DdJH9@ywa$9U|xJFF( zE2M?jDtbJti_IG_5e)%giym2gWGA}&{hC#p;lbied!}UtEB#8xRHBR@AB%j(B9E6Qm_dMfZuqn#l!cxY2o4~oF*HX>8Nb_9A0e|WlyO9aZ>YUZ~8I5 zd&&Nchi;yJ207J5(MoizLNMcVQabEh?PE?@FM-(9)}q_ev5$p2Y>s$BJ)4t z1Fu~&{K!obcY!x;YR&P^GiS_UdPLxvTD(v`s4TA!@4nqJ;hIHF4A*E+;z6iBZ{D-U z#Tm4EB91&j%pT7_YhdQ{3sC8_G#H*`LPS~#8cTzF~E@nPqG zs8YgXuH)x2>_^~?2BsEK!?#MUga*2FZH@A~x2IP{Y;?pY{?#DC!dRpFMp$_5Vc z=-G(JP0-ykcmkB_mkF{-eRlead+VqsXg&dwm@|r(=nny8l3yV2KdKhK=`xFNI|e=e zvT)m@7QCHSO7AZK*JP?65LcDN?*eKRpeFreXELFgykDRPzhS@oC-2uPtIX|;IX|pl zZ9y~3{hb;Rk}dmyr4fv9oZc1FT`_!Sn*G^by=~UV+vaQ}HNxG($N0k9`Ae6rifxmz z$6=#YAR+=u=5%l?8^eW=D?trqVLS5t-ca_vz>?F?dOH>;d0x8Es+{qW?zmxN*7yq1 zWB0U{%@dMB)~wF>$oQ)T+7yzg6)>d|)7QmeAKF>eOx6k80E+qU+#~%6>P^V z{+X*r_{K-8gT~bj~Z|PGldF*$CueWAlU9x&{`|DS)_rDrsl<6%zZ?!{*bK%=zvk(rYA$<`ZGDRUWz<~v{n1$j-rZ?%MENkNuau&gU&c^l> zO#Ry>q?G==&j})Ri+hObZjPJrHu{2arq@JaVZ74jiX4b_5m*H%QS6bBkKYP>xd zJ|1U2|G6T=O=Y5}OSiSfWqzyjCC^alc)+m$qX0$*ImYWZDdtXf{b?@hkK82aFLu=* zwK4uu7Ugf?iD`zWJz@#j1zmje3nP+7(VR1A%G0ffC?@(UtKoZwTGukpTCOOy+vI9r zy-r1*Zi3_4G#%GO>a+IPCYlR-oXk~uZYa>~_Z8w4U8#jsTm|N6Eqr7l9qoY(>@z!d zrP^NkfTg;Q%R?ic^axLk%ZenAennO$-ySN9HBLK3L;4UH`OVa7;c8Cz z9=84_;>?Uk48g!Ljl|e~qEyV+H*?WVJULL)d=HHjda#Y^^OYEw(wj2OmKF}{6)2>P zfHRo_G*OTV%U_dKM8!kiKrU*jjiUXd841^)T3ETZLV%FCX6{{_|mf}j6km^2t{Qka8nEIS(mH@U9*i@|6esYuS zjOazt<>=e23Ma3Aink}Vy#<29b$KNEwmG^m&;{f4y+J53PWM9m)@*|Kf& zMn&5o(oVut{Xvf&G{=;-6AxB?T0yq(p^0C1`t&MEfQgRolaVii^SM;Kz>BUL51`jB zXK7}gB36UD2GLa&N4L^U(rE5jtr?nfEy-nR{uB%Mp%|Ui6$yb)1j18mD}*ORnSGyZ zor`YVSP`1^U?FIx;g@xMt1Cnz-{+vim3nj+#8zm=R~o6XrNdm*m_@L6lMk6KJ4M!I=)+3 z8K!fJR3h9BU`mPC+Y{q)n1e-lXEOR%NH3da@sYzq;|AP#2jB=`W_Z|%p1&R0nsP5~ z{e(fnb9&#Ds&R)gz*=|kpCrM@_<0)oPS1$xm0`l}!ME=SZuh{OR)pHW`E>esteD?> z&HqO9oGi1&9mi)q%vUygaG-Y2e(xd84Rye3zG@P;&AxB6QS=+-kMm zQzW{J3`K7*h0cc7kdEPJog7E!{i0C)g1N3Xt?N&bT!>KzOs09sPeJ9!4$Ggt{13MA zej^bFog3y#cbuVbPgFwBN58dwo?w8L2AJVxcmUafI8C}(K>pIz5wx<@Mt%nfGv8EG z{BWLqn|H`BL~8$nCpsYyS*vPaCJ0ew|%j6|K#EK4^mcnLNJ+qkX5r3bjl}F z&51F!ih|rn=oY0XnnI-Jtg~XM`o%*q;!ATDM;{B_bWNp+tI%E^Y@C1LExdT`!*K)i z-je8YM-s~QfkVg&8+msC1eNAyiMPaxe4fh`us476AX{6?kY{_$6HRF@;nWETPDH>Z zerVJ&V!8W6)=?-&DShXrkc&X*=r;V))0U3BQt{&rupru4ywMLFlM&icN09?Y1L@KT=8GqMN28j@rk2fA#dU2_vYQ^zXZqs>7(t>9)Ul9 z9CZnIcAm}Yk~6iu`yNWtWQh}?)#cRW$t@-6Ff{$lJICV<(e>(xDHEN5a?*?w9><6Z2Zo~@tC=%Kw=EDi-x91uas_3fpBQGqh+|>@Wx;(U)oAt` z5<+8X@Hq>s$ANcoLz8b$4^kkn?OA{^PXB9om)5UPf!P-1&jsCG6hA1slhgsl3D6!@ zfVE=?S>-l-ivsAq8-6v^0f@1F9ryn9?bHaLl%#3lhOuiP+IapLZ8E9UiG!nl0v?TV zvgj;>XeM5oJ-fD5&abN8qv}Y>oMmBlpiMn@BM`#)1>SGS?51j+cu$jqCC?+ouwp}= zw99)lLDXa4fVs*E0`}>uzW#D)(-Ts%^a^AW6Qcu}wy*TBplz4go8i)Ds)ae-zA=wQ zg#-5_t#clHvzycXBLEUN(+VmaC@tUaG8_f+S=zZgq;K>A`~sjUYFfW5KM^GH847$d z|AkI?l9{j|RDD^rQv~Na#x|p5rI2@x!lth`}1#2xH2;}$AYv~n}Pm~sO!nYGSqpCBu{XB_Og0JkWPUyjty;YW_0J~4#PVVzIKnQYtd?M zrC+P0qQs|X5V4Ybg+ab6nzwZo8NlM!8<0puDwY#CV%y!L&%MnmzHh=oY%G^I!rN|X z&I`dg%nMz%N5-Yt8m-`Osi1J>xW00(s~vXpEUgw7T6kT>?Wfro9>ER7ur81#0{A)n zDn!IdH*gfO)APN`9hmp>ac6i|`6Scc;@fHsX`QZeP4`__wyRuPwch${JF{o262G4} z{a(cRe+a`++Szym+j$8Ryf54#p65npd~obKbC`BTk~W?n{b$brv(W0fy*dH$w-^)$>k{HTxX$JD=(4 zXFVvIa}N|7FH~GX(-P0i;O}DBlv!GD4?rWuNgeOpZo>wpDY2e6u&TH`Go1D@2i4Oki5f3YXYVwK9ZU13DGRGA2;Rxtyqr zKK-oxb+(>>*t3h*&?kiYr*u5K%aDmPoa6d^^~mj&7%c;y~yTD+VtHau-aTv+b0^<1MXB)?u=v~`q;(x((B|~S>q~L}7 z5!T#ObG1EXrLw*GhL1|#BaRTRx7m-T^jp44V<5*n1Z+dL#jQI(nbTN#<@1fhl<7&F-UI4s4HwFFHHf0=vN1%T8&+;yHe2_F zj-9hWt;75K3G7vCR}uo9uHCzHP@$TEMn(W5SpNoCkJ z4sMv#s!hHeFU;U5&&HMke5%my6E5uEk zr!JZgAMO>$-RNk$)?W`_u0Kzz3L#LI-z~#d$B_@90-^;7RHSy(dnLvNE>y42!u>_I z*QGcze-Mj>{qsHNzZ?(x_L%z=*@3(V+oih}*n=}nYUTlcEIal{DPJM+9vyur+4=Ld ztYS|9c|k7iKbcN{%PIIjpQhhQiT{)7_xJDhZB4sBp0D?Z%%Xp%?C5t2`xuzUpGfEa zbnUpKf=zV^OG}#S32;mq*8SX{b%Wmq0!PN`(4>*`)Svh>vQ`8I>iaKZyLKEO?t5RTyN9l_6gZ_i4e zxvS^G1SB_ix%vw8VBSM??fQ4gtzwTqiHfjzJJ(?WM+!k~h1@EvZ`G|kcLA{*@4l9J zKF?r~JOe=ok!~pSkd7K2khm`5gl*WHpi_CGMd2zN+ODW^MyLE1gOTiI)zml&sVd4a z&x?|~g=15hmi`lDv9>9jK%DmYBa0X60Hh?QYj*&qM;!1(~*UFo3 zUn4toisyGQHef@IhmfnvZ@;Kqi*JayAmj{#BF~k95?yEKAQ+N`b-M>QWH}YMZ zFSJ4KX^GAEMP=AcUF$>IsO*7XiyP=-aO3MG>7FxilOeG6o}~ZMF~@r6)Eo+}LXGab zKoOfxGVTaonf73OTTBp0cG`0{>7AhsQIunZVS!hKyuZzlLwtjDD>H!ksz-^zOOLx8 zfuFgS`BxaHT?BnsF!Z1IO2Scvx!xspFZmZ5)8IDBrm9epQ4EEXc?|UhFi z3ErNUw=VivCy75+Z)WrL8*wLQPLqkC(qn<+?bI2JQKQ?+`B`++I%y5ZT>CF(>IjL_ z>Qmi>-|q?dzDSAm87V%(#i?!_aQ89pcD24@aG=IpcbaPGfUUv#k^Yk_ZGG}}YiC*> z;Oi3}M!PNY(hZx~h=_78HG&k+^r!Tx7|ZS?DPc8Q8;^*S^xtR^d`0tN&g9Fjpr8*P zF&y2cNjCz-ujXanxbsr?((@~gmTL*W*s_Sh%d>A&Z^#ec((09i}@jj(%G zLVc7U-XNxA+E{#V#L-Wv?NP*QG3KYo!&UL`TXPzO7-UBPuD6nZc}#91f#%P;zM2X|;z-36WD zt;fqn+=sisFqXxc#JE(`P1%%^t}HOrjQviu>eG#gB|<7mix3NH8p}wFQAyFtFXfYM z59D)#07B-5$V zxPQF%fr$pSRcAt=l~w;tK-Z7)t#KU8_NZMC-;D+)aU;FSrhS^&xW1?Q!VN zcx66?ivEtA;<`Q(K@l^gJ;2*$xz=!vHvcQ+qmmT+_kHVY=X@_EUF3r9^47D-ATpV3cM$)Hy>!_yd0S z+${#vsYpksC|z3Q)BZ{|pV?j~u0|GSyaw8|iZsli? z+qYM-bK79;OjvEvw332B6DV!X<0~ZCR%H9pU9y5f+P95={f)!$Z#ij}0DzSAWv=zW zYYZqJ8JhF(TD$kKo^5}+B)5p#T`Xu9?hk(AZ;xUe&WY{I=F80g)f zGAADBDn+zNaSBn#)KxM}GKXVbh85MxnER46Qyx*0N?I}_hQ2K5M~sV^$1Ri$idyt$ z&XYbU%rHxMZAO#53u1O%*8Zq==yYKVvN!jEz88!wl#fVN_qWgU~Xh017(*`l^V zuAJU+{_(7=z=!3!xeS^gY=R~CVS9J@>-K;@2>PK1whRvu?MtRz>ipwAqTV6*HK4`} zG7Qv5t%xt&&;*aj_1j$*$I4M_e*M^PP|E21Dp94?sR+82Ic+;#5|yK;qf%-h0#9Dy zO6CeOkT*uBl9;;3I`W-QRN^(dUgni^*?vAdX>L?l=n?li!&Uiu*Gdb&kqQ>oWf51D z7v-RE$or`83Sv8%($&?^a(=9+F!Z>O28_+`v!;3zXW*OoEXIdp8pPvi83|*kWG9vd zJsE_^ciF_y;AWr=EJsJbe^^J>(exb3>KrssyZ`h%m;LuB&31lz-qx~P=}N8y!t>S zO~T^{q9}&G;1?gCw-q63N>IXgUh8t}e^Hdb^ys$uD@GbqHI;Fw`Gdyb^HLly(vQfT z+I^*otDN7K475$b&ZAjdyLA8uDIxRW_nIE%+6Q_8b$4iw$i%9@X7GL}O=?smV4-~i z*ewO8=y#_qxqbNg4sBgtJpc0q)#UpeX+lDLObLFF7-Ga`o2BwuwfGLO1%0nH4`%CS@93BP0Zb z2ijTDUe+|Gafjvau$O-~ z{vir`LI%8wN4lfrBsA-MNf4sV!n^GyiBhtv1zlzO6+%}AJ^)RUXI{Bbr$sa7L-Fde z;lxdkS0J~e$dqZo5^lKN#IHZlrlnJm{9kXo1#>)86g9W5_yIj%agfYfLgg|IAc>(*uKIatJ}R>-+NF;~0Lv zam~t~A92r8{ma2Iq9J~arx3~&4{&Gy3hrQim~J7tl^_|diTfa3_`Xr|>MA>dxFnjn zR)m3*Bnk<3YGzF5qmXsNPUhmoX7!*ZEw146!^!gl`{{@Lm$8&?GDYQGhBeXro~C4; zf{h1Nr}e!^3jN%+Uez;_(6}F{oX*gP{CpmKQwXlEG8u-V^Jdp{b%F=_E+;?UrT-$} zGq=5@twGRez+NJZ*7+^V>OX~avi#kh(4wLA3#NzWL%9~b*~vHeoj{ymTouaKUw zGA*@ETqn}BjZSt~p&(n&xeqOp??Z0Accguw7fgNV!NnMu*^fm>{Jz7+SGX?XiqXGc zy*3k1C=g|1gKf|q$dxyWkj1H;fSsOo!09OpU+~yAZN|oLenig;8zDF6FCKEu39W8n zUhATnO7M$b`@kC(pmHf(>Jzm80!7^SxkR(kjaa9bZ?&$)$A#X9Upgbb&el#!o_5s3+H;+xX9^tM>PuJ80xc_Tg>`8*x9J7H}Cs=N0#wDakhGT3{B5| zboI!b)`uHzO>&M#NZx(V0&Q0zYccc@{u%$MX4U)||MBl@RxR<7;lnz_553pR-x{un z>#pbdpf+Yw{rb1P_^ju4L+pOuVEgg3KYEj9m#0Ei^Q@8qZ}K$36q`5c^X8#$c%b$$)re=8mdwLOFXXJW6H~~JVuGh|LZy< z)e#pg`bOclz0;r!Z%Wfm7tnCD|3{}1?@Rn*0G}HQr|f#Q)4#wgr0n@(bYH`+oz$mPqZ~=2?4LxwvMr&*KQ-zu{&9r>sn93zRNA z4d?Cmf0Evh)Brk(Gdq;xp9d7RK@zf;{d+j9C?KZDDR3p=rHLu4kGxFK4dkw7Bu(Bq z6@@K%@(Tqi_U#`JOS#;dWd&Nr0KS{dQdK$LukSc~fPGOe$@f|7Q8MkyySDGlJ}s^p z8lkbTkX`df-x9Lw%*E|_cUQa#lH0@m_=W)Fh(z>mh^x?ducvhumjy~EU@Iio`7*u4 zC(WHM?~LU*R}*7A!jtm0JToAPPtcO{9q!>Aff*&CpBey>}2$ zy3$2Jq=ep!i1a3emV^$0gc@n@WbZTQ%$$9`z27}EXU?qk{b1!6S&OwE?)!SK>b~oK z7>e6B`CE>16KH?~8WgMBi=On^FK1mpHbqk|Mf%}4#7qEQ$iI-s{Plh7|MUp^&o<-! zP3`61R_pvv(B=P}-u|=Zv%kEf{r~yr|E2^ zo***=zSqXTsKufF;%wCAe2XpPUjsqduw$!bu}BGf-0mmj;rxrvt#EnS+RL&~IYqia zbu=_mrL6q3noIVL1=sa@{{@)S_l79U-1mw%gcj)W1Z$-NqTWfF)|nZ!eYN{p{m765 z(OOG>C5o<%k{Wd^uO8i&d7S+|%lsk{U4A_w^sR{c!E`XWW4%R^`oLoKd7RkA=BAo) z_Ah>!p(b~fWs*(#f}>BI^D9T9>VNA<&H0Z^^}k}N|9hWR6;4v72Jfu|kV0ZA?tru9li0XZh zLY!|gUuj&h_~fFa!LLsxU1Mc`E^cgZfNA2*RQCac>J$8@#G%Z-7<*j|?@W$wUk5%| z*Fernr$vRmJ@^WFDs&>T#~Eqlk6Q9C>=*F~db9Cj<6G1ZGxdG(#2dU2mXk|4ISYk3 zIWsv(H44e3@lh$h_!kusNQvI-T53qMUQ1qfirmchvhGP3UGRUpOB`}mSF*D>k7A}Q zE4L%sfS!pS3PSp7RHUdV?XK|AgHcsj(Su8!DdCy}#4Ni_j)TFnQt~|jk9)Z0m9szM zX~J2CCXaPR4(XfM5PaSbY3FwR!KVDT3Xn{I#mhlLTP(KTJ zKY5WMtcmEGkzn>6aqDp|P6&P?et|5@M+~=?Ym84;rx-ds323&&<2xr#+jLF?B@jO$ zk!A*P=E|!YO+^F(vCCgVoM?zs5W05I_F(Sg1lL8gA{l!og{nO>Tq~?S%WAY$lR@* zV|M1sbNWk-0;3bO-n94JaPSVr&(LC`!n##TB7|7-u86iXP|}ovBXW#K_1-AkLRSD2jH?~*1lSQ z{bkZ(*-RS@|9-%ozUUJN<^B39y~Ngi0%Occ+0N*QklWtdEy0l zMDG&Ih3Y)|ZXWIqb04BVkX%#X#zZG8I)EtmoF&qCQhzb2_KQn|oB!Tx!4J3am3oM` z?QZ#-EkRiG-ofH7lZ$RS&d#ZhRHCYt!K}3TdgEScAS^$2%~WU3K><;9$aC;T(?upm*uH;pjCN>7!bbJK7GyOHYuin?REq79!>^` z^xxg;n_FElo&BOMQoWqZv~I7HU(=UO!X#He_suJWaU2N>%{eIcgQDsjp;`07#d!Iz z_c0^ z##LDKfG3pVTU)Pz9!IkQay}j~fb~Uh4h>q7HB?GgtG{$`mtBPQJkDk#7z=D#diB2P z1?Vl+EN=7CVD_Yz78}!T+6Y^b%D#kYmbe7Ahb4QssoW)K(x_GpUmW{D-D~ks#+%i6 zWoC@e=!5>ihy3XM0%@+}J#Dl??){I*LV7G#ZP?zQsHwohed}qMaw_#fU6NbCu@c*P zn0E>}CWIOTyBoA8U^&B-XTTZ0dYEU^i2h?iC9L*wNE%7M9e zY3i;r=I@B%j9h2DFQ^fMbJg(GTUW+tiD2GL)R$AvZ--fD3}n`6Mw^;JO5AM6$uT*b zTp5bYe~t+=j==cnk;oq}Sms2ig3rYYh3SKm$qHn|C0sQ=sl& z*xe~Mb2cQymj`u3`#iO+3#_xdwn6U`?(z7Z=kggQw zDO5OeNx(6%KB=y^=nhoox4yl+`ZGWmy09ONBWg%z-!#QFO`SzLib7-8)LtwrG+bP>DMe9x08Es3t4zaEFT7 zaN-Ve{61{XbpMUq{Jyt?w^kCPhIeE1*x(q#Hp?Y&DEkMFnT#?-c0L-laqN4Eo*zgc zMrWnfibXX7(pF$vO)}XTL~}J{j3xF?J5{)z?(fsPK4lcq5uyH}ouPlavpO2bQ&1hJpTi1KQ&7_sylQ@Bpa@iqiKb_uOn#i}-K$={451_$CS8)#UM zPk}hrpadE#=30Y#KlZv&bCD;^HM7kmA0k?4wnP%MiYd@rL1R{U~;*_1Cw)I!bi7(%Mz3 z?beh?QAxRF(J{mg%)s^jrm;au%3Jq`D4Xv+JSqO$Czq>OV@29_<+7FUsE-b;)@HmO zmF|xiD30*XL;1S}kRNM2*Fdoi`2>BkWeJ}x2f&s0EBZ}auJRSw}4NxVIu?Im$bD_e48dEU%a%pYC6<0Bc;hdEHH1TP5 zM?bjxXAs^Pu@cGVxQ@vxyJ%@EHmDdI-lx|Uy>erm3KJf94Ox#{a?zQ&Dz5hC{KtsF ze03;EUZOD4pDOnbL-N$w3K3tk2Cohd)YuOylD?X4NT}BF20yc+9bnE8g62hu68i{J z(F9OrQWqjxz4iT0ZFC~T6ig%Z$PQ8j^lmkQ2V*^}=NMZNY$Dv|Op8+eEm z;0B(DIe<}Yz#6L}YoPGd=KLwU8shPB|Lq|+ox9g3AKp@TZhZ4tKoYQd97ea|)UwFN z6b7uiS$p~s>`BxiS0+sO?h6g(eS=hF-TkH;vc1LUA!J^Aez*&xtp2!jBK_IzL5i{N zyt5v*lf502PFD0u!Na+$07Rr={D@g&#`EbCH}zbO?&z0_t zvq6?Ojg`x*a;-xQxqc!Y?E$g+v4gn~0Bv77h%er^7X`9FUmwPvjJ}59II>8OVcyoS z?K2{FDQ`7ay%=?7HRJ-UFXvo)$Ky<0qa^InF$o3QqUYL~Q&Krng8Fr@%K>ZQpgN|W z8eB!Zk7BI9Pi46SS7(|?-rUjd!@=(<+#g@2Z4n}Q>TL)B6kA*b+}%DpfhtqB7^^tA z*`yyZ{KpU19CBlw_|Q8aUn`H$6yyu#wM4jNTA*3sPPWme>WX z2fBX3Mp!gYib%9IMrbjHo!ZehxC(Pce5Dz?wRDTno4wxB5A*u)DLS(=^9uyDKj+_A z_9<=5>vZu;F4MbrPpY+e>mg-UigI2@pW0*)cB zpRJyLTM=ot(hbJ={-H>!IX(x-!KRI(gG^WGzPwGb=aX+)ZP zh@G$i7cg*JN%1d3Br&chu1r{n)5?Qs$?6veznABv8(_m=6mscFiJAng8<548?gum| zjC_Pm0L@F*QtvY4^h_Y$WIu2H%j0y56VGE;wvxp4EvNq=)&wJ@jV?>PxsCB0E?wFA z)~YtGHt;MXyQ}$7H5f!pOI76@;j< zU<2lHovB=OuKCwSY#MSTU_rZduC$W4sVNVPlY9Kcxn0dekqYnd4kU0Yx^jS>bH#$T zeE^{+?0FPVyy}l{1^q_JLQb57-jl2!4uRw$kAE!H?;LTgg0@cCE)5K4Brdg$Kn1-w z%c3IoPtyC5cf*QEMO>^q8sm58Y;#CcfgWmqRaP(b8xa=v}F-h+B`RuGd%Zu zPk&!>7d#W+mk&Aoc=e zY-EMbyvdBvC?rXKxOT zW<>Uj*jen!n=kNY3SU`zx??4fePr^vCq3cxqGF!^zxPaMW({6s~T3kR0Odb zEZEhCxnJRD-|o3Vuzd%Z@>=7Je*5ff!qlv^qd~ln!iJRX8NI$gZoM3DLkQi~zas3e zn9^yPh_6Y~QzZf1RNIMKc_?IO3eSv8v)-&+4*^h!GQ%u>vE`JV*T zf8~k)D?SNBN%;WYl3O=?*p{MgU#o@I*CRE1!altDG2_Snk0`=Um=$J2fp?Kzv5{Ix z_UGFVh;{9`ppL8#Ok&iIhH+DiKE~Na4`tS` zWeqm~o;S>B^_alBt{dBnZ(qtV`TcUqys7cKk_|9Y{?E19|BZya>0L;M4dz^A?7evI zFB$JR&tjt~^11ty3@dnu*F8Mg;3~>%wSoF71D9s6{S|WN^mBeIF2r%1bW@ep>s!*e znt*%Qsa(vK604=+j9yQxVFJ96d;m9d)fU`T$=m+wDcR4D%j(*z4-+pl=INm!=#jo` zQ$1Lp)7&{s(YLZB>8v!+ZPWa~roc~HaxBnwLQ)9Dr-7l$AP0GWG|!EoO-zrh6b7uX zecFQYHTukPJeqL566cI%)NM-c?&tCKBRLp*XwbFDE~W{?d~#6|hD=itq88-11!RF?Rg0Dv zdTJrbXUnM4`NPFsX&&>3DlPH0K70Z0JMrrZq}Xybbau>X5{X5JmdGR>U2UlsqB1mKF1RdjIjlqd{o@M~`bF$Ks9p7xl2F^GM+j&WT z)a&VQ#!C|EzrpL`N$ha~Bi?MG55#A*&;dq`oV36YSGU2HgUgo>RbBb}uD<;==2&2j zcG`;JQM;}H8pV*vn(}W|l7rJOIDdpbIz`d0!pjFhB--$unvYF$HQLq7?HLUTd}HyN zOPYM=p~n*yHC0x#<(S6<}qUKhdqjY=k(db7cuMH+8ujSd( z;T2Ak89cbk zzSJpeF>?Bradkbcs*Ri zY~IXtc)#X26Wf)5LU2lu89$G+vF|;O#Pz6`K~NgA%rVG$-x0RFyR|6^4?iH*li>xP zxAiV5D!u3>F-atlw;U4F%fK=eSEOyDJF{k1Y2W($>MPRCcu1q0kUE<_39ha85}h)T z(1mAVG45Nk)a&9k*qqv)npE240?h1f-nuNFnXB#Pq*d`;YnHH3o|`wC>}hOie82By zpeO_eB3+1slt24}V=?xFzkvph$2+o;g}*+vTD1VTeAZ&H;c-lNc8LIc!(-pAjXN>HweHrc&3m!J>OWbIuUnaF3)r0k z3tG%mL0q+#?q;$UGc2wsdBo$+4^x=i&u>DaPeUSn@@!_D=ok9Q|&|*^s@F zAClk{`apSbKYlw<9xj3}cH7c<5#P8erOG(gE`FZ)zT2`An{_2uiq3R~-tK%3Ll?q% zoN#aMte$&ez?)Fd&2~h#X}W;fr;@2>{lcgKw<&zCK!$}YguyR&YP^_5Ck0DY3N<71sp`Z8!Us3at`|RYpKVs@)oK%i^wi2aAA;+rn|Qmq->dh&?YdQ zyK*dUfYOBY3V`X-Ef+tKeJJe%Q;@8@^kKV`Or`#8Etu1})hg=d{*@|p?y%@<04{+n z%h@0e5`UTw9VsY@qYIUhL6l*#6Sx!^8*b+Q!9Sq*0-5Oo>vp`RFa1M*v4Q}} z>ZSnuIB#~LzCt=6vsk1hE2NRU-adpq9tC~Rn56dPDzPuXo-Ld>z(}jcnNfikTS^^< zIw)Z=Yc1 z{8J0Vwb!h+(W<03Gl}{{$}p*b5}4udfC@$+PLJ%Je{9|3c}?t0kH_p5D!Qfwij zDxZv!^;umO#HBH}2d`j-o2Tx{tz#BRKswf%7;kUS9OtV{x@SSSf>l??NJ8Vl`5Y@7 z60nVQtM@Kc`*~>1VR`iqrz^MmnR|`st%Qc=#4VM!N6nUMgZw=ymokY2H>Y6ZKqs{J z!3Xw9Tv2gXAsvCa9sAY4GNWrQcsa<)vPvm(f=Cc55gTTBSd8w*?^1033 z1xt6mE?f<*ezF{aB0zyFV%RXp3MV6@qs8Tcw|vd1^{FYc$pKy{%OOjdztSR6f1yQ4 zX8LNVS2(~!+{c{x0Q((Ti;Zy<2|}A$a`c&;al?MrV@jS*Gd~I&_1Dilmesi^D7?vQ z9kOsfDg{A^tShy)H)T_!2iOI*o?l|3;HCQlp{dwTQV^x;0P%S0x)?D4aq}$w^sh`; zrNV+-qYzb%WiV=(6{{r_D(_vd z+DiYS*fPlEweD3!-pM~9kx;m(*Ei?6ll9Haa_0!-d8eOj^gb-2CC2lpmT$sH2SaYC zKrCS>W6&nTXm*gmg(qjF{aP)sOoz5v&4+l94* zk5mhw;Em1!sKU0HDYZ-8PH9h3U-5BZ9?O;j^WI{4;+0s{Hp}ewPuZpn#f3NRO&PX{ z?NM@d^MZZyXt@lF#+bwtR@|17I)Z4Xy7;R&Df^1@Wqo3%>sicm?;0FM7vXD9+<}mT z`8H)+bvak8rMV4LZ3?9Q%0~^A@e{;j72#pXT0$qW+TEO_fy$YZ(blDhe(8QXcI&T> z6bkb9 z)*JBaUMow)_=W~tQ-#gOZCoc)=HyEC?GD2T&VrLPjr}}*o}-pzf5zmJeED5v z0T-p=HCurjgG!7Pf1r0YB&28YZJft2M9iBc_Q1?RpZ<63wwb53f7mWRzAFv(le{{@ z25Y+Qq^>@_-+!LEb9VgfoVIhS;^w6=H(B=?A=-1QMLS3oD1*4h?fwRRghWd-$M0ro zl`iw>@^k0c;GE;jvbU*C8xbA4A7i zYZ}Zk)7}Q6G?%LTyhNewOz{FY-l@?Kh?hkM61hAzb6mR!G7(or7fOW>$8i z8TpT?qz0Njs*VMucd3N9k<<|lU@>@Bc|gfxO&t!ze_&%c1iX`&X4=KrZd2s6N`7i4FQnfz zbN~I50Wc5k?`QWD4+4WG^QZ#Sl-Ljdy>-4u4jv4(`*Ni?nf3FhcK$ntX}{D~z#bC` zVJMUPjIEK45`80$&!XM0=|#zo2hC7Nh3yOyM}>s}KU_@0;{H(Y17&2NV?gb)Uy@{h zyOHp_*CKp-UU)KhbOK?&Me6vI4)rUMv&;`U(%Pq4#P6AMuk^mnCxh7 zbP405)$6MMbGy!8QKn`iagW*f0klR;g9)!Ht3?r2LcmAedN{2+>aWz6PAy0&h3zcZVI4HKMJeWftb zuEIt!;H||wb&xJVM>976oL1Q-{}xHLDaNu=vClP`5|In@vz?U8wF`H&G2g#ypm7nw z(j*t|ZZUo(qDbvzX;B_s!)iS1Ld?||&G(Y}yyP`Nm0c5vERw)`9D73PY=$XIJ~CIu znPyAdLAy6Q)^pz3s=@-26NTc5^NV$=toGa?1;&{`z8YvhHHqqn344R-nLwz{=^KFW zL2zzsM4=KI8h5hFxc$KC!nW;W>Z^(C?L2QacAVpkU}A!J^na5F__Hd=|222k-?KZV zrhYbw1yH01ywrH9$%Qw}*9h5csoCwKKOMdjftxJC`kGKs{n_jr(_~C}g<|bxhZ666 zyUCX;^*P)QdsyiM$2#_$tR{tR%ROdx&+!*#O~jffoTLy%4YXxqt4jv)WS`cfW1i9L zO~vUVlwrFf9QCO8LW0FG!-cCUHpm3lCVl{_cKToTn*Lisr9mU}%}D9;l0ApM=w z$v0oyofQ`X$q}T-5gfU0eR~^C`~<03N|Fq8%_!!k6@l~a4E?}0nKkZY_64#>?Bj&R z6T-nqbT|+h^bB?F+){+!UOr%j;m2OXDYXs;Di*bHoqf%In&yC$n*0R&1~03 z=f^dzmXMVUkdNZX?@Nx(*_X?UW~+rUBJt>q|`UY~S%}T9fb*F)A$J zysyRo7{YX8O=_1Q<9#{Mm@7Rxqxn{STq?fhVTHS3UX(~dxnQ3{_i4?KzCnM=KLF9( z82nws$zM#7$%kCm3xm&~mnvnl^8)Au<+l0=OAI@z4W?DQ+BoB;(QF&zN%wvK#Tjy% z4lnK!Xx8VAp4SUUFl|PiY7z|Hi#FuY2i}HAtVS?=HHE+s+NJHz6f{mkbdF4mG*7bu zcspSxU4&P9#SpE&i@}JRmC~$I;*taFv=`?;KD|<6ezO#5?KxE)$T5pj?@!@`Er~cJ&jBQ8P92JdI4IIO4A(g6EDn_0)-^lw9>Kobu*lKsW$nrU ztZgbR0-i##ju^e3X^6jb1-P*)!`auB2X$}w_*1$st>*O_@I+8Zr7xWuhgF37BJxG( zJZGYszF$*sX#O3-0|4H;Xt=qL{Rm!j5VgZ4roh?<71kap50G!oVg$P$W+WFOz9~Gw z%BfA=Fgy9SYJc7tCyn{3rK`iICrF`D9Nlv_47lNc`sI*rc^G|(Y_}BZN(Sv~TP}k) zn+=5T-KE!%KA>>;bwE1kZW{7`0|qb!Kg0mgwULtYZ;R5ZUoFM@KT4-pK3h`tRJe`K z%13bCGIr*;A10Zkr5EN>TClfu)R)v_!_E!3tzd45>+uUz6pIfeuX32U&DR_wZo9^4 zNL5s@AV}m{cq>qoay)!((woH0!b+WZZgbA2Zc_iMy5TsfnHgs}d)O}U*@=S&Tj#qb zRMm2DlKWnJ?EO3~V>(Sk)96rovk@DP4fW3%wBXS8Jxj${gm$%j3p@FBGch;%O+Cd9 z`kfW);j^CXcI(iBA@?=V1k(wkHx0aafdjMrH8?OUv)p|5hU=3W;YFB9&Yv+JfI*Bx z0$)!G{r2KPM1YT%*1}c7o@S|VXL-iFP&(;4{oa^R`9DEFu`=%?-|?{vGD1w>OdI;N|ak>;^5~2 zV_IGO1Dl&M8^9lc4kczw=_!dguR8&7cFz8}72YPVfPi>FLAC(tanPOx??yFCN}KnijTb zy@gc*M9Ux};`hD&At#bb$?|tNkvdfXWUHsV)0Oc`sbNM^sOmS^1<`b8NyFs3dcL}R ztIwBfKCSka>!K^o;`=R?>dp-L>4Wf+>=D`cvz4O}a^7Y(HotRfQ*>*mF!x-Gz$MQ{hip4+F7S1+thPOTLN5F8m*7 zIi;s-QC?W{%)lcP^>gVys=VaPT4Vq$i25uRomE@;JZp|~;gGaB6{TvkRm+2ZU~7Ky zCiHRVU8kX5S+xjw2qllH`Qqqyebk!Lr)B2BGo1-3^I+T4>IB?PZ^_m=Rj|Tp2<=?B z?9k?MZ4^SrJlyhRJ09+-Q9*2!6x>IjWgxmJ3Q+_fEhUQjOS7K-$g))&B)E6f!tRIY zAp1v%VS?lidfajrXb%svQktthz`0F6+>A(WH01KwtqUwCw-_=XhAri61XE+JA$vV6 z340f1#qLht0*_pv6a}^g`X+u%f#ZV{c+yProSWgF`Q)MN zjRGV^IlG^wu0G+#h)nZ+Jyt&|8$(4mmsda5)@TMjEjZHNc8Xz_72~TF{Yo6>LS9Ah z1g{^n!AYZL5`~)e}$wRQG^ADZ;V!PhhzOGt@f9 z1wylYSTLriT`#~@IOl%-+ppTf&iRpom7FheEQ8w%e*Bt$;%(O_=cZaQu9FW2;UND| zeX?h!7x0)lT@tGkGbZdM%|#h>`Cvd_$$yIM3RU>}-qgqzXhE&~(SU=dz-4WyKcP z>7->j2YS%g!+(9asH6$e9s-K?Br0o^Y7hGScasM^zZ3I+4N>`R7!rS~dBYm$=1R8$ z8@V6%1txq)i)HH-*=O|`rrElsJMn<3+R~vIpjC-;2z7(l?I8kj3*BL_wvu>NLeIu& z!c?>JCwP0783_4*(PY}Q|Dwsb-Wd*XvK4%jjf-n>`YHc%dm$~uF39;OY@Bm4COa;Y z6DP+|4`d5bM^DY#*$Eo1AYPYKa&7T5*$}3Rk9#UnU_^^cA)bhs2wrqTpDV*hpSOp| zI*X=bd`!i6tF-s7Z;`1=<4$LbXsfuJ`;&+5R_M!@b$JSzuPP4GF)w2Qv`;h)2U#6d z^4x@$zPMI<3-Q+qmzkhSnUnQ5%QiL=Cd+C^A`R;$Q^E$*?6SJ%wzQaZKs@5VyTqe#Z5tCroDot}yQ{Dp>Gmh0 zl5K;x4{n%VrUK5!NB#f+=yw}Gz?WG#sUe;(rnq{N$A}WRv9WAWghvR=^#90twO2jI z&4pi=dcOmbqnLR(HlEx37N|9-6`bpuRCMH|dM0f)dS3(7VkOyC^e=sN|6fI&1nHR7 zP_IMQo$ow0j+L;$IbRF~P*{dtwk9B$o49412z#mXbxu73==BL^mO}0ffh3>$<5O!7 z)g4YpuU$lW21}q{WFmvue(mz>>W`Q$RGA_Q;AZEFlf@4xOTP*Ok>F%bd1By%sNHDbDD6JJH2&a%gErBdiv-^3hM zG!(5;D?E1QT#QsM#=iRiKIDwOLcq?lwy8`8sXt##5T(Sim<7r;G-5&`=^PO&aPH2! z*i2|M?xiZFNT&Nc;A&x4=n-=3EVv52s)8Y8n2f8b`6xd2(yu_Tj~m5TBdwR>wA(2< zCfP+%9@+3M+qAP9sKq9pIw(Ec*N~FZ8sV_D^0o8tr$j;@E6D838F7*~nk`hn3aGLn zjeetK3H%ufZ%qtWN4{u=`gPe~ntW<&ZOVc5r7fxRHlXgfXj%91YJ5k2M11WOfb1z@ z_HmQ~sXUCRBOnxmoSBzF| zTGYSXiU;)LhJf2ZOjm+aX8nxNd7q#5;-)1iTD8EPhocP}zw+{$l-BTOJ_P^c%t%ed z-B#k1aLm1g?|0kOF23?0OTV zpm{G|lRQ>Ad5!M*5hGWg&yxFq=0A}%ahB^3elR(NB87K=-=teSWF@%O9DP4kt5DvT z>!nuB=Ae>1PS#wlC>y#rLaWi%)EdqDuCnKpBn>-VflF8T)+{eWR{IKwzqMvfddp9* zjFW>izP}uL{dL3lt+mEh*r6ftpU8)_tj3=)=5QvpOCm2J90A(W2?1;In#m&l2i>R` z_ktmg#%-3agoXfW@{up4r|oDUZ*}AgrX?9pL0lRtBPvg^TTL)mKmqm#-T)1wVASrE?Aq61}Iw^hZgd7ZPMUKVcM{sd2 z+pw&iZ&o?2u;bhxDFo^W6U)VMolDW*uCJ`iNa=%ZvuE(d$ECOZipaWX0>!8j(8OA- z%^#avr_%XRTSDofOZV0}`YU^`RB`p0R6w~;J1e&*yyZkh$5w8(ofK2}SF zz4!1?;#+ASBb7v%ote+F>K~V-S(q+t4EsPeZQiE)alJwZ0saDq{yZSkfJYn$FKL)= zWIc=nm04LWugJvJ7;B^rgwjg)xs}T$)7hu3)OFs$CRHoKWxo|{BDA@mwE2lVy-XOO zvilwE`rcYiTAox=1rAE~Vn&HITHV=AgU0i=*xrY0X>H_zlj#BZE#p6mWp-r^eM4RL z#R7FOkDqolUsBF>xM9pxq=oLTOovOIey7C`;wPv_(|@{BndBT$;7hcuUY{bDW2OS5 zJ{k&z<}=6XWpUw5&00MxRC8AXhz@&~vUIHFn(Mc3_HQ6;scv{o1_W+v$3vxltG(l~ zKEZ?yt!UT8r#WxW^jf0TlRhZfq?ZEiLw~_xl;& z2B}C1@<$WB2!Lw@5&te_qNf;F4Fn-Of`<%a^qVKWV$6)+?!P^_ulZ){r(a;HOb?TR ziyRU-8$zYU8a$&Q)K@w7K3-<`3CuP)=IBenpQS?ppmIu;J}U-c)?QP!_D+TweDwgZ zXrU+D13B8#&@{CP1;g)M!!AFDT)0eEqnIrh?zBX(8Xu2*@26VmjYxNs z-m@qL&~Fy9-km8zQ=V17s&QhldUMog25bHFj73!?oiPOCwVW(#R61X9q zF!8(rr;G+o=HrqPsp;(39v%w>p(MKgASp$xeGqKk_39qXvj9gd4=O4M1mF6K3;QeG z;$aO9>I&fn*aXtGw}-Z*xV;aEx;>qrhI!(7`BuoxC%B6M-G5^cVymV?^6d7ZAR9X^XJ@=9@#-E&ak}yl8%44MzAF`kQ*}DJ zg}%BY?}DlZv!wpE8Pa+96R-p2qJb4U9phm3d0(q&F`PW<#kp2}b63->*>Fo1y(2e_ z?RlH=(F0BHm72i2)2Gzb*y8~X_J*#k%RV1znjb@g^|U4Ys5YVqo7VVpG+)2zi!gY; zp6aaF>!z6u{nsMqH)l_DZWDsqhdgLPDRCrc(BYLZXPhP1w5zSpL<8klk@Ob*<_`(P zet^qvI%_)2#4PonU;2Wb?^xkmgD9KJm$4Edv>75DNDOD5S@6^{-iUP1sg>y}woQ8O z>R|!x)DH`%iw2Ca+n@>)(uitGL1CA&7&i>EaU*M?<&C~n#}GxAhfsE0)!l6}iSNe@ z-)UYduKcZTx{OKbHTDMI+tar&)6MR$Q+pGS+PbS1mLDGxY1zjvy|>DW94yEI^~#fI z$0evc2Dsv9Eb-7*+!$=P4kb&-QImnb3{=3znPYRklKOyCG)G02ZE@X$(uY%_((M04 z)?_v$rW3Co1MM9Z1&8R&xNwI6l_`9QXgOCkv$`)2%=knK9*7UgTC$-V$0Kn;pHYvg zi%0AmWBGpGK>N=Ok)h>Ff;B)m(M2kCJUrzc;!q6%pnR>>U3;na-49E*cop%Spf zTm8z{126D;2n%0}M<}sakvGcw_MLZfPfI3%ZEk2rc(QhTk6$)s$=7iQO<1TKaG_8U zho&n8-x3fU8GP|qAhMN&;dKT>y}$|6-b8&sJ~=IwapK7iu9*u~ccn7js4b^VbQ1S= z6Pm4)CH2&goh&j%nva<`mx&2rFT)1v!4*31+^|d@0ND`*@R@sm+m02Y64%?|P69frr?Pn&(5YDT6H1 z*B^n8tG`TXm8n?2V!YiyMe4a#vrb0pz4Yrl$;W|!br0b>o`g2%idQYq@;G1maV7y| zTR2&_JGtgvB($_eQPxufYe6PYt64{GaqSa&hCjx~V^@DWZ(*r|iRiE23Fbu)W(P^k zt+2Lb`+Vdv;c$uu6w{1NP-(C$G8L-U5hMoZ6I8N0k)exDGW^j^EPl?yh}BlsD2~(pR;gCESH#ii+4fgu z&Zhax$8BHS9iizk*idtnMxrA$6i*n};|rby zSUlXrJy1ZdK%$X~-4gbWuR(iePtjARj*Cg>{pHhQwFif6{qw>+8i;OEwpY!1`9oxn zz8{)N{dwNR@4UB=ZTr!pl~X6*EVnD2mdAJP-mL5qX&9Rzo}6c4rkdxBR}p1M1WUv5 zuEK+ftKS>bCmkx__$7u_w&zEHuE#$CG|ALYwEYKgOE6%M-g$(2ipZgzRJLhW3CrT5 zdy_h@8zQO0gCOz3sQJJ5ME(1r=YJKq|H})N2*!eCHT2+86)l%XN?pI{K__1hQD%j= zA>$fo_Qs!0t>COo_PG+A=TrNr!Wc?r5NylGma0*;%02<@%~$#Z;Nw7j^OWFXo*d^K z>x${3Yp7)%b{1Zgs4)6^Yz`A;gHgsrp*TWoglD@2V zaed?Mw`X3VV_&!V$QJImV{FBu>j!j2FN>5JyRhoIvwg|!ef+^ST4>PCZ@}B_N*{ew zzp;RQ<2&nZ78VOmXQt!3)D?e8kGtnD@SWdbyB@0IYIvf9y((Kpv;t#_2u7h>%xi8q zXH5j6Fm%6N9!`2?Qf{^DTx&dXr|~M=WlF16Ri(hK{i`BBL84c67X#$rjFSW_FH)LA zen@)@I9&blp(dRwO{v4AGVhHW0C0MW;}KccpJLUkg&q+7Br7T?A5UBh2HY6*VyC8G zroapP3K@2EKERZlpy>vdZWQiph1Qd6IM!PPi`1CnozOmv^a{CS2FY5OL>=g9cbf42 zj$S($9w*GpmnnD4 zEqD2$TyZ7Ph>G}aBGojBVlRMDe4LHVNC@NK*DqThbpm2kx1O+YeC+BWf`0(H`?}Nw z?PqPH`)j8;1%5wNjxqqA{2>UQn_wa5WxCQm;WYhh)O|A|f0S>fN8Wu1NJaGO>Pf?# zu%dk~Ogs2Mu0xl9&15Svo$b0*d>D`c1>|{nIIC!2SJ#%+pGEuC@Y`ad23G9d3nh z5fmY8*W?@^FF4_pElR%v>?g@4D@5*+pS)O*m*-YScgDeU4WN@JBLS-94d3|2kk@5E zD8hMAlAZXn&yo>c-d{*waj9LC>C{@ofSkXGL%t4Xb?4`{KH#AxfCFy4~-}OgDSsknu zjv~IU<+*vt8WH>xQYQW5#C8)rY)6Ts0`CV@yU>|IGtKiaX&`O^!KsKD;_gKVp@-}Q z0Z^-A$C3^Eacwy89vU`KVUa6`-8TZacegt|WL$s43X@*H{b(^C<00~F8bK1SFi^EZ z4c!$aYX5czUsj8u@2fRu*J^<*4z&FVktm4kbI>;Iy&PPn5EF4hWc}Jz(-DOJ&>M@` zya+7EU5Wso9I?J!5H+L|*^l0BEuHP3L$OVoKjR#=2{+E8e!*CT3LEg?q`3PH`{9#w zPI>$*#>I$L31wTGn*@dd!8(eYLqaGwAu{L832jANHFU_1$BB5etLwGi^mklJw#lEAao^N2F`d6v^x{xw zzR+*wj6LaM8?AB*zV~hRa96|;De$ZzslYQ`&YI=mibgC_?|J%o zFLW+jJo@1hQ~5EkuS@M+K6k#E`FDY`7%;TA!^RkG75_6URb*P**=sUO_Z9&kft;~m zYH-T{zzM=3Z={LMsMt1awQRT{o#77Qu`+p)rsU(o{g8k0QH#u8+RQ8{YK0DcQ;sZ* zHH0pTB>iMCO-){uu{Ja|8qIs9%tj%2f*Uh1wNHNA4*EP`4-a>(MuO*|gHpG9n=eE2 zTzu95(gZvwJ;&oQiwD{8khm@y@M+t&Fb8g0a4ZHzb?2uJPxaAOMZmB2jY zFLqr2Iif9{N z93BYg>ShFe9vj~5%4RTCC-J1PAy1X&*-CT{l+wfr8lD3jx0+fDEbftew?UKbMK2tNDUy}3W8EfOAerb zfRxe*s7Omm4PBBF0us{QFd`-0B_c6H=MYj7BQ+A^`*rWXEt4BRKRV|V=L&n-?h6Xn^ z@xKnH>X|vW9^P+&ePOR$RQ3;Ge&|u%KnAs zL>8%8bkphO#g?$Ct@@I=^IN4`wGsYo_;e6ix*I#;`@I-Ot6B`brAzG5)Ie9uj?2}F z#v*=`CKd=Qe&&5*V%=zKV}?c)P#p^x5+vI^xAnHT{lY9)@BKR&rVo?nd#XL~1Di$B z#+x0kMdkA;Bx(c+VoOk?XAyX!S2a8idNhxR@SYh!LaVL?q_e?KRf^;bjpYmG2tF!W zoQ=o22E51O6gwqgDoID1EvSI0y|_mVjq4ift2#GrEf@!g9WcjtDhL&hI5~M+X=yjq zEnpja8!beQnuRk4)oGwVJnGzSa*X)wz~x02!-8ZEFK&G)SOW53 zk-iy-CjT;oFR`0wm~pET)g4o4G~i-}OiAQ#jI4WR^AQ`rcDpkAu2nM=Aj6p=ktNWM zJ7d)n4XbW?i*WnPwYAZXgfX;mdl0tXQ>A5;mNc`0V)^DgO;vBcj0@dLxX2)_Yn{=& zdXkUxKLL-0d}ytccS6cfmGUjzKS68QVw9=a78^wW|5rs6VW#;!66^JkO@Q0o*A;qOLa7Asq=!_rt9P6yCkLy{5%3vyl2Y z;fbjqo>R=nc_QhHlW2;O&9-KK3aiRVwU2bnB4$`o%Bk2M%Yj3IU;I2c0~?vj(D%AL zKFq3K-fe1~H+%fy{jM160`~P{JY?HywDKMd7hT`e-Ykv|<$Ub9xn=d>O^p?{`y09f z#tNj?W3%WxN9;J8$@tG7qKr2Cv%5#uhKj)6>`wx$BzPVyybzn2=#dfpAnDYOp@5&d zm7U%jS#{QD(4v^SPkP7h^4kuu<_B;gL>Y8&4eTW{>^$9f;H})=y{BJqFQAY6mi!j9 zy)z^Thsg)Ep)Nc%o^Z;G8hAf4u+TyYiCg5op7iqF%uME*>~^c^#&!3PP09eL1BviZ zNW0c)60&poCF%HabiAuR*4~g3h!B%QtN<>8J%KTzC%M)!SJB=jGiE%c)dKMTC^Gw? zmRSDND>#inVxmam!hnkUu6$YgEAQ*P;Di7nQrBQRJW*R(d<5arsXB58Y&lO-&WiAP zkKwExnX<3$R++7C?|IwH=(A^s>XXD8$A)<+qWW*{uHHj5UiL~9kY{)3bGJF^4CP-g ziGCT=x{zwebfeT#QWYtJzFDYenTWl4uW|U}$t`|1rKfwep>9bF>F34FZ|rZ$P?x%p zsCQ;m4vm?Q!pe3Q;N@n5)BP38mMZ>r^{Jm$&slK1KBd|{1-zV)BGDWrWgFxIN`i(2 z>|gF3?bIc)G%v5F?uslmKi*ZV%U3xO+c0=!+-Yy?3;<$rvUwrTWTU$M56Eca(Qz*_ zXWwTATqW2VA4;*-yuOfv7Zg`zXfeE_ms1vxg1qS5g<2-;pP0R(>pjs*c}xKG(~-Tq z#?&V^NENnZ59SPR=7Op*ks3CTNEjsDbh0pYxm@p6nw9kAVeN_ov}g86xEf`8ceg72 z@=%qxs~g;o(z`+!I@;LpLek!?#q#Qv#|yco8+}xHS=Mu)IuveACWbFscXUaeW6V|# zNtJ^iKrWXZEY|J#_87oawu@{9=#-9T;s9GETh5?@=Gam5xAjmmvO>b(7u#HJqH{fB zoA;xmcuXrq=*K&nXgWob5j3DX73;d8mGXf{NBIorumTYm#;Tfml)RBFq0J1aeUXv- zdedEp5}AS95iKTiw<4n^4K~@(Z3`z2(5N(T;j>Q@fKjR4M=RiWCnac=US68>yP+O- z=;~4M97AVfWTn|5UFJgD9Blde6OkciTSh?*=X%?L@RqpFb07e@%qCCIP+w;IvE|kh zL0%{*l@yKh8ODmPl^RW`*qt{34i24h4FO}?H+L^I(@dwM31*I_)bN!LX1M{Uh_3kk zk_p(Q&>*W!iKRZeR>#k=5`NI$0gxqN;E1(^Vg3q=%R*V41>}4M4cXch0#kcAgPMw zyYnvK+P=@4v5)lGk;mcg;hbxjC)YQIZ4n`7#o_ub0TL-RZ*f-y-PwD@YZJ2?FZh(`n?pb>{24XQTVNOB#CR28IQRTc8rr!MCYr?F4I1ijm9Q zCvsLOp>dSqKz{LkCh4o}uW}eBibLBRV>2ll{nRg2w^)85gW{+~yq=rNzJC9+O!)l_ zgpbR6FBKFURClR4evu$sl-yAN)=05aJqKT8AUwx$CmhtW^qlsSYH;=Ljy#GazZ$po z0*{CGBG2%Hv$OT!Hqe8Ea|bZ{k?ob1ktZ;Y+Sn=m1tsJ2lqCx9Gvir56L2z)GqH4o z@n@$yoj2EEJLavy?L=;Zw^z{)3Rp*+%m>Ip<8&TTlS1ke8SSeI0 z=}WAS8Q*2>{$Shsr$cA|W` z_}??-?L>(_cQzqd?>^FRQgIghytK()FsxgIx!KJ90aA79jZ#?|dE`q3wN|T*jowcI zNcG1qEW!9Eig_THW$P=8b$4>mI7*2o2t^Xdscw_iDM!uOf@Mjno+c-~lgi1s6Kpz!T`e-ntffSe_b7Z07IadoXd+_HDK zCFvwN%6^4YbR5_vTVOe592Jplo?`JBb`(@aL<=#>)ZVy)72CzQ+bF0IduyR2r|_cx z27#2kW{Avi*(c*}5{`Cm(FZ$r3B47S*aVkl+F1RZwhV+ca3#(-RY!S&!y3NDw}n`i zcO>i$++_`iSs}~t+RtZJ4hv0N<};W@F=)v~g_duJgOCv9RdnE2(5*ShDGTs%bn2>R8CxeO zB$t|Kp@;zB29!sOt zz|)$e-9769+)sw8`s^wjK6u`q+}nH`F_xvFYlUOSAK@5oa0Q1Dat^J=LBbL&r1h|u z`ymW8SxIhc`~&c)KpqeXL%~BnAeAEk(#w zanr-{r{%9t^Egapb4M$HoX}&ot07f`;K}|XsD0bio#Rry&yRwy*y?|772OdzeS0p$ z%e2WEp@DxMkQmiFS&lh?(UOH@7R;sSAKx+6?63^2D$*8T`!PaTop_zM@J=|qYOF#T zS>q@Bv_(YRVye1~r_A}ptmaKk@D%Pz#Z6jy7MUAGYng=nYxPS=!I!Kzjn}v<9-PlpW(2UHy$JH0&8HJKs`x>}Rz?jm$GoVjSOI-GC{_4f;XEz!uaiIy!pTy!1uUU-ag$v|O4Gtn-K3d!>FwgN~j(}+riR&WtJ z;RM_{Qc%G^b7X&0h1RIH%JnsmvLWbk5Xb`Lw55vJSLHUi4cCVAz(xd=c}MHtQKskG z;ZtI*n&3N^fep~QSt+v+_2#$Lg5?(e?3U3PY*@YQ4zi~@ZXT9D@j)vqVQSDzRP8g0 zR@iD4p*r#rcm#q$_~pZKJ!;lnlvwRQEI}ZsJ0ldbue$UV)V2>fm3MR2z$49I#IO%5 zqf0t;YG5B(_OGr)p{|RII7Y2T=mf4!-A}eSG+nQ;eHh^#pLvhw{@Hs|ShaDsAAh+Q z8?t01c(bGa&PQQ_V8biZ)=_?DQ07se4%OEqWthPNeM9}W)Gw|m9-EA8KdwC)(4j01ZqYxt=C{(} zpO;p-pI3ig&10n^V=OmX3H}K27-0(Ex_c~Jy{$t<@p_*(BDqfff5TdHXrK)IR6YCt zx_Is-L#uK8QFZfs6M?0#W4SX(!E6+sBvSc6HU&6W(yo=&ZH93Ll1s^(^JZHO+s z&+%tH*h+Qmm7>+n{JVPK-*mz6ZjJR%0O75V-~RXv*sRTA_rCXb)4(t6!IVh{q^U-q z8F=H0`$-n7e-R7y{e%zXjne~(WJQqWj~Bm!UbA4{f6K@CyNEHnt}fuiluAlbP5{Bn z%04z+ZJavJOc)QM`Kom~M@yUn+CE?S^qp&ev08&I@`!E|ee6K*Cq>lB%rV@^`@r5M zO^)HV`xN6!>M>W8-WjfY1u8L0`eMV)g*4F<7DY)W6OH?V(T6lKU+|90tf8Jrl9z5B z1}N`O>6gY*5^Um<*rdZl3YkwmuE3PFwSI|D24VT(g4}n4o5?H<&?bCjoVYs*gZR^w$L&?cQYf=QrPc#_t$ z596LP{&8#nKH)|o4o(L%;qF&Z;Feb!gIYKq8(54XFYatrGNVAcMi?ajNeZvF0y}6(mA?sV3-R0DCw)t(H7tu@s1j zTM}v`OY;?EPtTEjO|W5$<*~Y;bVEhzSRN%v`$CSD#XZc3xb3SJM(@JbX8VG9;K*+R z{2Fm1^Ij(zPPLJ}nq2w3MD&qg>~aMnR!yn2_ml}4YA65Rm~n(+fvH`)B2>iNsaCA4 z_zDj5QM(T#qC9!yq~ln7w8MMdqB3&kOo^`Kv(=cugm-|7gj?kl&8IDjq{FB{JO1!W zd64-u+U-_VW$cG(1vs)gCO(~ZOH(sc>|7x&I~l>Tj!CF+^o8}r;kGQays+mzGV|08 z&FLpzF_kt~IYBrXzSir7nWPtf*kvu(Ja(SLs&57A?mn_|HPfpe8a2(Z!tt-rx)9gp zqNRc7nuR>0(RpQ#aE_Gztc^5YoMeBv&qHDyeq|x-QMhoF5UrN1AATm~@fGZZtX!+) zMjPh50t4gheZwSb83-O;ZUwy5x!=*gU~+m&hSaM8njkzl1mYT?#7Zng+sKY?%YP`y zwyLcq%sL08R`<3kvYPqdSjMxTnH?`Oc{UhM8A?a6-?o?!pg5~3>BL+%j#v4U zlWb=z0Pw@#tRjRJLM>!Q3-%6p!KzIu1+Sc}7$d*D=6qdda0Rnut(g3oQgF74FT++(+U+y!;qK9cq3$! z7d9NHx4d5H0^gS(srOk4=MUc%a3bQfX9=}H2(P@0Hwi15-0{e)yrqLDF$6%go zVvu;7DX3zH&V{f~r&77ocf^%QURrjbh>|CPGtqR{E%;&`4L{WBwu+zId7WSJjx(iDynx^R{_YvGWk}% zktpC_lgno1Y4bQDW<4IesxXt#BRDR91C{HMkYVLXFS2Zyq$5*+z{AHYQ>2%t@1f_q z-Jz{_0>h;$szOI=3aW`?B6*q>4mctA=>2 zwQ@#f@n;I;1MaFlq0NB~Omx z{RqbEbc_@LI9p2Q4A;_)M3k@*2jdsAz0Cwu4(Gz{TdaJk+5qz^-ff}LXY36|>}G~u z<=}IXWjz)9ut)IyG6^NWw)_c$$xgL9u0y5P>gAM#fS1Ix3qS|jK9{90nh!XF!^-_Y zAkYI+KaF#u--^Wn+i%4p_*=19;w`(F39s_Lc3VMJP_^=n!b!g^b~kw3lFBt46udDq zbvz4LT`j)#@1_^i5U)irliaJ_-43&|xSUoKSnxh!R`ltt{I+W=H$(%)2k#_bQHBEj(aRlN)M5~U@KkhCAFcdez6`U-YvGs zki|^;v24GK4VBd`H8wW=mUgVZO_aS%h8tiiytJHk4>gzrYG9^_S zxV(yrBL~j65c|^-qY*2(?}=FNZHVH8^Zn5l0qh?H#f4c~xIkblE$Hs>uLnKVlJQ0O zb~6REtWiI^^)vL*S^Gu}e-!H@XpG{+xSj_}jM)62s!3+cnhtWu5;bzi_AW-Fu@K zt5PyYm;4013}MzLXVNN83^#6lIk5Tfk6H)!pXjcyW0$ z7i*sV&Aa99uEjH<9bBjf6IYuX`QD%evCs%}sc+^d?yUbadG&L$>hC}P_A4kn?kolA z8)|Z6AWQvZEeKORp_}eypV5a_DJgd_vn2DKM?iY%L33y~{7HbkdMaru?hFQeTv+Wl zjd;z`uHZLl3#Hm_$&wrQSZ)E^7pVNg5=Yuu-Y(2QqYg^WM>B02;ES3aogF1{Qm3yC zIpDn!@w`F*!B=HQo`@_Sqe$ z%c&#NH69US4+-i4W zRSq%ODU}O{-6#KQKNjR}wBQSeRquei zcz2%JnYdt*NevJgOX~K%t%q!*`>OV8DC!uzqP&^1uH4OdmrtGn667-)=YGC_R|7!_ zSJD_%#4`?K;7^wUaD>4!uJqp<`DG5Fq8MI)iJB}4Jq}0H* z656DDBHea5tzmMD=+HInj;Eq*Ep3<1zi(4CLb)6kzOcp+tMa`sp{}Pdb=qQe5a9}V z3N1^!*>TKQCNNOAPVc>3(%#hd=61)L9{q5(A04G;8$}nT4Ws4t!axvMhO7K%I1AXO zs7k*PKr@ExhpvY&a5DJjE=M};g9wZMF3u{F2Wh{C3!QP{kfxd1T9Auf1$d*}W28*s z${*k?7=Xd5nOIathcDcNKiSa{d`WYi$6vj0hV)9q@P5OIUYR{WoIHo#=I;_BTzlrs zO70)tAP>4Jl~z4kVlZRaA>2Tcf0ayteEk=0^Vs;suiR$zQNk2%1WWl4*A^vK{2xHA zk^~QzgfyE&Lv9IA8{aQ0=aj?NhlsV4uiyy$0o1Y&b;+Q#ntJB2mQG>xXrhy@oV0+c zdAtwT^-U}kv^qak572=Co&T(05qx$5P@{Lffs346XMa|uvwmf90{Xl);n2e-;Bm65 zGI!oNV*iz(RnE`l?ct#As@>?|QqBvLXiue@B*J z&q_?mo*b{*IT-?ATIvs0qaF?YPQ?DntJ3}X5Ql!#bCFDqVWl_8pl$81RWtY$NF{Xb z*~tT)TFH}Jw(R+ zD^$F*X=P`XhQ@|B9dXXq@?|#WHK0WR{=x&T;ZkC$r~w7XMLHp%s_0|b;r*4E*E-Tk z7$4iQceAJJB)vZT&VRHybJyDX3XaHpNB!lz)CAWlkqna3h|=92>+lHK-e0(R#gR9s zvZc_BJIzrf;P$H}Q%QkBt9PTOO_w86^p$Ra7*9@gRe!bu6mO188u=FGHNzG@ThZvcRrTAVs2|Gtvr!#uqy)oaInthKi%F}cLaL8pS5%C$rsA^G() zHD5Xm6mFGm%y{+8jFnMh#r*-)8u}T|68?kFL9=k}*tk42IX%U~qaro4&i^r?x59#> zu4N{nu7`A@uMJh%#}o@k`}24=^8Jm-qMl)2=hvnBMo<>xfp9>C2EUg8e;|)=`XQDq zUpRQbf=pfmjx(bh{9i#O>X|UUvrOORq}nr|4uFHw{gt2cWBRT&&7;g+E90{h*;mj6 zum;S9ur{iGAaJObYkg6AK0_ik^FAHzhs{n$_Z-k{s1?Z0BupJ~Kp>RHwWnEkBVdds z`6lLFfcj^c1e&ej1BL-1sqO`VSD#Gs8MRCh%SE58)g6<|FlYQN#P{2+u{Mh447@nr z(SYoEER?9FOzqATx7sd3+Fqi!Hr9b=~4=|nL&VzQy z$El2#b;gKZWkoL9y)UT1c!Q}{YUry6{q2#v7M*&mi2d`1cCU(O+SwyW{U4L0K45fu zcT!Gp_-{?@T^$&*^@N>Z(Zdy_8@*(x##fUScV>ZBgeS2atdT=N2%U}$rD z=!8s5C-U1>(O@|D?W*wpc2)RfqKu^qtdD!zn(p$_bPA~YBG1p8Mdd{f*kC%AYHJsp zS`Tk?25-zsJa@mVXQr`!>AIPjWB>u+XIh??W91?KD@<>hqaNaUaOUc-vl1?bgqlaP zhqdV{YTU#@ka>iA0~9T(e~#fqQv|*0Gab9Oxmn&AQ}c6V%Kibepw+3omJ#RKyQ8)) zB+?_>vud|=$x1^Z*aRgnHShq-$tnf{j)1{iaNF!8+k_jonp8bGAhA=c1Zm3MkFT6- zb?EWptsGih4FOrsai7)vo2IdKQ)al@>aLNB((9&}8@hEhN`z-bIN@&+s2%U~cDlY` z-=qzCtk?P=@P>xR7M-N?$5KrhM$XgA5HjDjlpcTsTk}PS|4!F(lLwhu>L%ys<Va=U_)4m~U|fZEHwZWK-M;7hZ2_81^3X8Q`7mocwe%fx<@zuObC zeNB2&Iw)VoC2h`WN?|a=sM8#f!_ILLZn4^S^GEUPIifk+9j{xS@@MCe${G^*11&W+ zK>24CNzZoSQqsGvD~jhlOh<~>j}>0!vgM}~80fQyIF$i=m+6M9|2L-E;*Z3wSSe1` z=bCYv(dyMI>v-dJdRodILp1`{E0kCnKNq*SCTjc)y_0Uz)=pNwn-bXq-e6LXbpkND z9^KYV6TY-Xj<#1+YMcECupgD1X?0}`X96ACwI|X!rnc^+PAfCF-thTE5R_W z_uK&<$*{1u0v?&}tSI;K!@6((!{@!d_IrxUdeX`fn%!vxt!z7XY1*jM#BB@T4Pqia zYhDcpC^6z_w7ldE9@XeWy!b=8=?E6n=zh*|JN|U5!*u$gC#=atQWsQf!XMV?A**lc zGDm<`QDw>iP;T4>9AZzzT&|IzC6qF>pEKXl=preR*26pdIG+fL1DcFVVLubGez!*E z?1?PJOE|KMp%zNEa*uV=@~gvjNvg1k;=feDrAGniBx_}6Q!ve29bY9fbZs`Aw*AU6 zR+lXE^E~+?={)9F=7~E;a-IfE9iX1t z^`Zt*fq8THUxNl5Ef}L@)&yFUtMk|C%_DJS^VY`_t~c0QZavU@Sp(`L1bqN5Qa^qS zt2!kMY2$79?ZUGB`>Z^U36>LB2kid$L)vD!Z;mxnt(hOG!*|Mg?`*zWP@-pB?QMN} zo{lWikbl<92C*uuh7 zDFiYZ9c}>a;=fI+2v1-XCP1V)0=A9P5$X`h>WLo|hb8PETT~ zj;Zmfa^yj}DnvKRsTU<~Q@BLPz2SLqT{iWKlxsw~xYK=$e_}b>t)m7PRViWNjlwq8 zn1^3Ma_M?I7jSYcXt$wV_5ijvQ5acKRD{Y8PKb2u8)vs=wGIe4kc(uPa%=G>lC6+E-!JLaCbR zQu}AEU&vdt|N1QiuH*z?4rkX}lC9Rn!;Y5WdT9U@Y1vZ|2HFvBgR$dR?E>zl*FCW~ zC?mXro$8^MLY>2r!<=EAI6?w@`noVaBini37G3Fqh&dD;4A1MT}!NP z@p!z?;QVJbAddWX#C#w3sO6tK!hbmXzSF7x>oI(MRPw~kDaSaa%dK!(z#TmP{25l+ zJn?gY;`6v#AHW^TC$vVl6pzDgE_{P^*GkgG^ek_I*Jp^hD&c}H%how|pG+O~cJ7@m zaF7RaU0)Oq*5Smbj6Qjgi@0la-a0{FzEzDYkVE5c`>QHkYz(x}C&$B$fKOVv{;h8l zkh;~7QN$)(0c`X}XbYK^0NQIpQX-32@Fq-?M@02{vIB0Ma(&3iU9VTIG_;!X&P!{c zxT6EmeM%b+nS{UwY;FK`y7{_6)YU^I&GxC7W@WadbltTv{|g8BsB1s5p+T z`zD^GqO?CXQ|yZ5d1hI~NY*$c29I6Y^@|m7Ex$p>BeO5u3Ki5xo0USJ&K=#4>-fBR z?`i@@^)9WBPSWRzIkEfuJ+xh(RF6~^c8Jwo?ecd&#$9fch=7^VJ@R&ns>15GoN@~m zW}&f~$_RAc)MI@kaQ5c-9hi$QKIWwy0oG%Q@H#fuC!2BMTh&Z7%41YC_uxD`a!&(3 z;>Ov-9d4AwbjK)EbccuL5CUBFK6aW6*|fp*q+wZ8UZaLwhU<+NT(BWhuEu)4cf$o*eR+ZyPwy^JWxF)B^V0uBSS@Q9#MRQFiFI@AltmB0Pij( zsPTh%{;i2-Wq+dlRNF=X+R;{{6TrcINB2UP2P1RAHqrxJX0u+87nzeNZXEZ}wDDnc z|C1QI<1HL1ZiR4AmT8t1y;)}>HNAFZ?#NeAX)KX*WX6U}U*TYgkU*`nv+a$t$yo>K zcS%VH{ir=3;R0Z3>!D3$MwYFF&cJu7Tygcww%8(Gcv65CvqRc2w6*nygVpaVLX`kU(7HQ81WaWd#LECA9R*j3xIH-A4Rqm|_>xrrDM+r&c-{f7a)qGr`?%I96Wxwo6C7)%lk z5=G-3E*!ia!X#3oT!uWowA)Gm>vBac5$Oi(x8khWtnX2>r8mgr6Q&2Ejo&8zbz= z3Gt@x?7oiWwj*-iIyI`UWDwvCB(Ew!MJ|gNOv@k7gg2K|dIC9*wpV*=_?!j2 zu2Tu)W(TTla2C$DJ?oL`!Vb~Q{p$B~48zNB&1XiMBILsk*vp;nZ$MLehO@K1gu^st z2usS_LCk^6<%d7nA9M~=6Q$XP=_KzV8*CJ<2t))`n5M{pu8nA8{%&pni^8ZPQ>o?N zaqF>F5o*Z9_%p+&?eBPMiO}=K=P9y#xW2M5kA1pnkKN6(K}r1Wa$suYMAlZFumM}F zjV;C^_DRmw1^}UDc%-QA9){&KNGIm3AM$k&kJa>%v&~yF2LMtMm^P)Go}&Pzt~=7` ziJR7xo_12kM})p9Hwh6c)gw>9QjTjqceGhqSkT_T>CPiGz$PYJlvjBwZkSLT zI!HBR!RZ=y<&$rKA2;ma zd|wqJGhFqGUR6}-^&3}O^O~C5eaC=;XbFVumK*{-Ua?N1XV1(rO5aA(P9VO0Vkww* zL0@*5_TLu;{-lub5An_4?{^9RhZM*E?XUlH`0Y>+ytpA$Y@Q#=Dnm6O4+7NyHRw3 zo4<5ZF^msiJoWgpBx5~x2Y_E@Ts z!Ff%!uJs>^m8425+dS3{5n4qEd#;u7CZd-mEA}-Nyx(6(}w9l>CBEJS0H3jvQ+&}G?ICBcfipm8+x?p zz9%W`$Qdko<1|uy<|`;ytvO1a4TB5hxgC|)wgH@$GYdiA;ixV`*zIyI!Vcq3#GL1J zJT-*J65Mz(3#!obsh%%`=`HK|%iZhjN9K|lE9-_Y|DB(fE?cpe`mXu&qQL@d z`cKzqTc^#U`(tV{?gU-(6ASxo51maL%OXvXdXHtJj4&Wpya|pwbaGsgmK^BZ>Yl;G zuP0k{vEXjfzohpLZXzCcBYAV>w2sEf<8dJ+*7)#Wn~eDftDW+X?#KEFp_IJljoVcl zbt=>#Jj-tPiqf|SfwOZJrw9k488e}4frMO`K(}-x)DHyuY@2m-s~K>zxP#w9lG=6* zU6w?ZeaO7z4SU=$IMWU}}#~ z55&LgCj)sz_-?@0t|EZW=h1?pdxbdfa)EKRq!3K2?+O1mchB$8=pSRxRR-U|;tSJ>0^CTcZsvN^6*c%^tOB)#%>M(Q)od^N}eud;mIhZzpc z>gzTKk4%a;Mn+`Fh{t^rgI$m7#_*%VxTl~O)Wz-M-sUFHZY;#i_Z$1(NzZUCx12w} zIx0+XFc@l(V&m~*g;(&oC1i5C8({X-#i0%21J0f-;>!qyc_6?9ZQG z89EhnIV9JJs9bSEH3_14g{-j zS&zr_##6kscgvPh2I!uS)}BQYnxkS3CrP#hIf(^}sD;-%GR$%E51|rWB0d7U1NoJY zWhlxgAAPuU7u*=K=6hXs$FS;;wyi(9A8Wy6DxhnCr{yiJ#nqJ7aA)q|x)9IFmQ<0YblmTr4pK)$*r7Y19E zR*i4D$5T*%6N`WEi_4|TW;!T`J*l30sSTfR!qongs>n^eNV}!r2ktMUjRDVX@B-}7fB*Y$tXw+DKuql^b=s~wG;7XSXz887UvDD^B3k0-~|9UuKtw0DMi~5UTCaC9j zS$eT~r0=A6D@z~E9!v*z6%JWcKe=r~y}A;uI}+>6T-u=Ei|T>t{NWqNtLF*r-Jqi- zd)L7lebZR1%+dhXuKLLS0#t{leiyOTaBoERE9kC7Z@QmP8hZUxRYcay5|At{>rp20 zJQy9Qijt1RE6KahbND8zr8A`d^{0-Js?8q2rIZA)bvSs{Xt=Ou;7xI_L2DRsTHG{? z|3Ga0$a|dC!z8#-H4j}WAEG^CckZ=P$5mvG-9|?R%b8;r$mTzM5dXNMe~7p~_;pq4 zCjJ!!jAZ|kYk{N>S@rH&%)nuTJ5#DP__7=JeEINK5H?I^c)wT3h`L{;hBkQQT#!_| zpWw0XtHG}zDvK>5ViTYK4rFNjgLfl@Y>XW~l5{9d)uJUHgd2)YCVM-!JY5YmdZ2|@Ki*0?p8!LZlTjw5vT!!RzOVub3Yjefh zsKqhBbGIV31V@LvtGv`DI-ovfgWf>B2+FajIxgZqdpQi!nR|G&Gqe{BGaNohgP4qD zBK8|z)&Zeg?4iEb6(30i_GS_xepAW(PghPq{=9!Ucg_66RLQRm`R;DN-!Lgb8~?<4 z%fN2Kqs|c7yHJ8NL;rc+|EUy^3Dg39-#L(L{iY*uQXQDqg&7waLvlB$eTdL2iz!BO z+eEw&?W(A=%jq&1`K{t7I)`&)i?qG#gk{>9chTB95%(sAx0jw`J@U#<$9bTYHTz4&uf zORV8ZPmo+p?bKqAKnuhNmm0r*r_{*7xf4FA<%31$^l)m^gY3u(_ z_x-ta$?v$o?`O&^aYikF2c7lyC9QxN(|=>U}Czd{psp>)HY2l3Ygt*3Gu9;s3A zAFcTG=F~w7?zLu~10LIl;ak43POdt+WXu-n?r!*|aN9TWp0Rx{)WiUtS1h}zPOos7 zOsVLTksY9bnp{4{SWLKNv>Q_(8Xe0Nm!cWEo}EnT#Lo0!yAZb?NP(q1(px=NKmxRn zYW-OQgu<^NxGr7M)({8b%c}oJKH$0?YUs4wu2INT_4C$<)-O8idn#7}KW*QlR^}?K zAqq;0+n}dPFhLZ!>t&p#Eq)s{$s&p6GRc_bJHj`91~c8}hX-#Ory=KwEiqJZoeqVHs44QuE(PP88v~=!V}3WJE+FN*iwg6b zP(+&IV|il|l3zhNvX~EZINsOs3#DujrjZxJ9)(e{$xvx4VEYeYsr}hP?_YTS7pKF( z-JL^|sEebEcVvs@=t3FYi-PRo4^LIS6^(6B{T(gS8Kic0rmExgrq8QdS05mI;8vU% z>?=6S#Rt)oUqKx$Q*)BuceUQrYjNC(=}G>g#gYK{dt<>kVWmFj&~7I*$QjYt{OQQM zH=j;2emW_XPGV?T(85~(PooQ}m_>WiNoYyOc(O=lT`=-GEvczJ^5HgE7$y&Lk8Y19 zGj1K9J2yU0{~^@%)_dRaZyhS&``8fd=7aUom3eAs?tVHRFW<~^VOz?NE-att=F$Gg z*iM)}ds!nOUGJbDNX(=*=nCAft&b3o+VCto!e>3Zf}{Lr6oJOdLw`Vecr<@-0tRqs zf${e!ClmZD%n?svIj%Y;bOC+WgDAXF{XPHuvsvA!O?trwTzNWkP7v4tq{JRYo33wk zSLp8hPY#r%x#{hVZn`LrYLuaNN=G_49vA|<@C4x!o9iA}ulUJZJRQxXU%Zi=(Jl4V z1iU7wWQ8PB!rq_{k6_4#_)94keDuWG6qk;Em}#Y9m2CFLa7w1(t}y2D5oZx+8R+hA z%d`Dx{Ppt%mWM$9QQyUt75g0tH%R7I`1F5dgUD=Zs)m=YG&a2rpPRZo%l_uIw&sRX z=K0MyRCK2*ew#*6%UeN{8)pNNEdxBy_LtC#b*F;&ZI3#^L-t5R(l;=o;8cnjU_)L$M-!WY*&uW5t2#Xmnkf_`hH5 zf$^iakn>xx5GUhXDdj?SxbGI6D!1PrKiCF_e#Z;6L|tFc>#JKh_%Ec3gv&!ZORp;~ zTjDHOH{@EyZHf;hym}%iHM36WNzH1pKA;3!+p}c82qcO}d`WO>WMA3=K_Q`Sr#3)` zfW;u`SHO>S(bgE)N$y{MnVxR5qPsumizUNyXT65Z%D^Z;!@A)?baSqZb{$@>uCovD4U?{;1b=tzkMJqnYWJc=yyfOUO@I_gTWW{Jx=VaT4)#cuUOuMhb3Sr1Q3@{7esYo~>H<;Lmu%5tMwwAqfo zIl7jwZut_ON^v+nmt{HIRsNO~KcSm)N?5mtp|l!amA+L8w2sHnwH#XS|Kl>|NrmFK z(Uvy~8`?3!K$|@IjBb<-Jzm9bqE1Su&xNqFCZA@63>@I380)dhR>^334L*E4gz8>z~2R(1PwAI`nvZVnR`F zA5(se6Z5bOqin9gUY*jDprvyUJoegpKGa7Q_?FC8&*iu~x;f06rOR#Y_idRtK%+ax zn6D1mRYfZE9`2P3NPianW+yY?Wd>wM6V9VWJ9X)$Gh2i#obUPvB?}(i_hcDbcFiP$ zkS4lyMw3Jzhqn8oP$o~tyLz+f?D84VuG8$f?(mz>}$Te(Ox&lN~v5s z`G_k>+gMgLr2Q+<8u;8MmRpeQigyMVySkrLYgBc)0Tu&Att_uvceu((!=nI6+V6jW5xQ zQXS0GTZ-sp&|xumH*Q8(zuiStdYS{i)fSmgwt%%f3f#>E34vFU+#$`Q&0)#cS6r82 z?vZz=@G=DKe!A;+56`r`*GnJoY58CQgCspA>Z<7Vg@#GVl)4?Ey2^mWn$8Djx(+N+ zS8zrOOV6$ujR^Nf)aw*jc?1^KzA|CC&kUg-`a`|@pFJ%9)#u^$(W@{hUgFLPC@mEr zkdmcZmL_pSJEA!D+GzMX6h@UAMwkW(dP?0-`42SDHVz3FFx+T0dkU!TmWS)gm~-NZ zSwz@T?X}B_2&`xq1JKTua+_9To{(-IvNxk}%e2J)x(MHXvBVv4f#WB6=YPH_LpR}j zwR-dW>0kube~kwh-1~KqKnpXWl-`ph8=7`aSExsS1#LR$kI(LgE~aZ`a6k997MC=Qw^4c=@=U6Y%mQjs|5A z%=DpEzP`K#&>&u2rBZVvTcbE_kDSv)r*nsm zHVdL@lx7O_X=0-nDkJj-heP^-631KKo$b`RsRbzGd|Q)8H!>R7m)@Cl`gI%>GIT?z zVJ%D39rVHhq6&5Yi@o=bYC7H4$AgrJG(ma`3W`codQCv2iGYR;sCC1VL+8^hB$IJt?W8een?n+;0gc zlG#KK`Lg2Un%z1a3gH`G?Pfkpv7;NOMtFG_cP^lnX1X~?8#$R9=!;@6zC6c2`ix2O zBglS<9OUK7G~1+x&$Rgt;+|3nHa*;Y8gh_-FWd_k)wFQr>z{+%s5RFh#3PbHUP4TB zt2nw@-Q;a+U-GgVrGb%&8B}T)s;{60H+`er6={OqsLGI$zMwC~L(rxJf+AYQDN(Jt zfx;$8x2svw#LOkiV#^q%2q7af4W3{l^umm3(wUx!QN z3)SbJLUdWufl%L2`*ha3iG?}(#!=w8QMS=DYCH{pFBKHFv>Q+_l`#yQLY^X@tQD)=|BI~_?<|7M;pY@KNn09%ec)ph87fB<- z=J&1jVdF4Mk-&8xe`cH6(G#a0sjj;ByyXF8OHbEA9JZksZHa!xV&ohF!FVSN%mbn|$lF_iT7@Fpgeu8crErq9X z*~H>@4&Vt|^@*bi{n6h+U%r4meSQWn{}vzyk@SY+zLq%VcVH~nHw0ZOUkHEB)WXax zD)hLKR(7m`Lx-mfvtqJs+_Wt6^cy|wC(YiF(&cn3ZwRz{8y(4xOl($R%Wx&p+k2X6 zCSq&o{RG^kBDc_t4rABMCab>9N&Oa%wMr#|qZBnvSgn$2ucfY8Pq)`t>0AeO4!6|Z z=uTB7NRYSEEDUS|@SV0?3q`#iYBSuCQvD9vsGK<#OFRV6fFo4Vm{4z+yRiLE{o@G_ zOUgOofxOSD9&qt(W8DUvSz`*92-nvVrj}2*c?04>$#VRG(qW8oEsCX9IUk2Xo-q9! zxo~=bH%(>ehW3*8XllQh+eZ5*#UFbp+OeKb!MK0Cxl-`0V zmXfTC>xCgcLFUkPK(|ixJIFnIv=Y!OSZ-3pC)jKo60V6>WbB2htycRfWQE}}2kNg{ zS-6jhb3H;-FTY2%^Bh~liNbiK`dl-Sv_6z&)7WZrA%`G~m>VEj9nd?I>TQTMeQ~4B zp+L>%*@Op6dWY@d6GFx@WzoQCMV@)?=eJJ$FA(wmGP2#4!x_Lv?>26{DUtPH-9?(? zb|rVzGd2O(_w*wU2Og+DqpKKj$eVXS6M))#?6z01I9- z=8$PgSFN}pxpgx&o(`Gd1{mWcCWe9V-EAhcxU9Im2i7L%ODdDIqiYkEyxZS?2h~D1 zQ^A~WMWXdYbG>L~>g>H&uP|u<8yZ%PpoVyYu%^$U zVn9HWYweL}PI4JvGn#yYO-026^5XnELZ%Og+fBsr3bQbZrt_<>MM?)@I2@H7527?A z+V>6j?s7dje(s$;D;+}i-J9&qJt6Ci(QM>~86 z&6{E`lzC=vbVzR{;CQYaTT|eWE%}@HJ#1^_!^qyEr&CQ^2;jtPQGs_rSnaD23`;|R z3>>v2rX6TMrNh3y_J-ju_*&qD+oxg-FG2vK@0cZ;5%~VFHl2Oq1ykg{UBl5;O`r%t zA>%f@Z`8szjSzcJ{S@-TaF5ancgntlkPh5UBFF9}%7no@l{$ReqivrC#R0W_6VVLf zjfSs&3a`R&yZ8{Cfc8Nd?8Mk)>WZ!XGo2pu?q%J__{~fs*)}xX-MEkQ?HNIiXkUKt zPAZ*VT9p>>tZAUcr+o8S4w0+XYGMb%I;nI4h*K;6)Ffo5J;?q?x6oh9xc&)m&)aw3 zbE7{M&L+B`S+Mjg@uoYW`qqJ>ZPj>-ch)Zm#v_)atat%l*d4=4=n%X*r zpt^KwK&!>eI?mfEc#f##OM_#Y&a(ToNIU?7c8Q9|8Si_z!f9p*&4$^IO@3j+yZb~} zHXN!25dIs$>!?(KYx_5ecY46@hv{%I%y9!!UiNVWpJ!o?h{e^pl%=+#!b467`hu%z zg!=7MVcs=_W6kHKNdxoBOR=sngSBu~Mw& z=3jxMz$d{}UI*LXDph|$hkg>C_QlnOC;WBciMRfK&p>2z5iv#$*a*UPd!t$L89+SA z8rJ%^6=sUR?hT*zn!Uet2&_666gC(?hb9P4ssVB=z<20X0hir25f(>_2$sHE&h_qcS1oq^mnQnSRvmzcEG zy)fDq>F8+L2H9_2S+cF?hXY}eTPJkqTeps^sla!Tatp}y<$W8iYhAaHpFh-AROxIg z^Ee&^>RSF9=KA^He>$G~b6EYK*Ee5Trbcv#hqBWatbrh*so-AY^-ZKVZ+5J(w`L|U zZH{ovYhO^DJ`0M&o75^=B3+IS6FjC1$SMKFNoudjt!aq7!lhPJ+Ujt2aoC_6ir@vy zRGns%0M_AL6Q;H7q5}KVt90FuQt6D+YW)bx_ypH4*?xuZz}aIW;9c`92&4C-N{ovR zogs2B`8Bdr`EPNpw;JE(*u94eDfD^%1ZZmoC)(AEbnMrfWwrpr1#7^amd+s^T|zU< zinLH7hVVp*@1P<#OIU1}4qkb#RI8aO#~o%LqfaCY zG{R{yH9uB2*EqfNH+5g+1Brc@PDrJ|GuF9ulshjzZwny z>(SBQDG+|EX!tXq`-?j5{~IOwujVX&0oMJf`tf`9@GlV0DoCgaARPEysxd(iciJJd zr7qF+g6@*zG^r5Ytj=|C-ZKq2&YW>W-8W&-c+3mm{wpi!XCpkmV2fky0LdWGD?|{^ z66u4fVruTyz^v+HqV(IRKj|FtB8zl9*K+;~?9SgQ_kYeF`q%3m5x^O9{E~x+J#R&M zkh_Lp0ne?+8mM@IpDklZGhzR#{@6qx)vpQkJ zAC{psqRYOVs-y0O>X{~{_aj^hUDQ__3Ik-mRQCIs zTVNrKX;AlZj=biaS8<`uX7D}Vhvhq`>L?*MX`AXi&HuHW_)|N6Hxn%j-+5%mp9`f} zbpIQzrmqso;jPn0I4`A)-J`xa&EY%B-A+rlmPMnv8nCgHJf|IQ=jO6WGiHoO-jP4K*0|L+h;>pJpx+QU;ea=UittTa zzap|0+eaJF^qWokcN68I@gr7-7v8)Z3%3()rP8l?F-%_9v7%FzzeCbE;(Z=Fe{FaV1PS8b*E3Q4Od3NzE;(Kxx+K{C7}- z7cR7Tt$7|eF-?QqcW!~@(!8yE7i-uZLf4AC<#Kie+%lSdk^cT0ia^D4ONVBFQlYl^ z3w5BA1_y;McWP8w^Gda3QsEfK1MNp-hB_V z{qW>yygxR5MHF1GAfN^e-iF1sLaE*lerT|KvbAv!LEY8lBR1egugInFpGNs#Q6sc} z$ro1S{*g!GD*3~pDB}v~-%y`^tz(iTm`klASd`0t>FHDHQ{X#RgNqP$iJEW-SS@XN zK3VNSvhAZ=9+%q|30o{gup%3TE;X*LUVebcGtJAv@l?`K-X6LVMKw1J-getTn-rjF zEZvCg*eO)Hq5n6-YrGQ_Qc}7OxqPVBvVWTb|2!T3)2@r0TZmG<@@KMr@^!14qv+!7 zAYTOAdi4%dz=h5xSMZ5L)!77IC|xOgTPWZ88`)QlJQEZ|6~z1}qJq57V(V;OMeynb z1NY;ySq<7vNu5Li=Mf%gaukIei6X1+6gy6>#Ve;wgyoG3l12br-aGsF!%aChI@9Lu zB^DX9VZTe4(78_nT(W?Fh<-4`#RO|4v7yfJH}>m)D}w*(^C&?K+MpFJCld*LXd3(+ zxlx-CG90r?9fz+SA!`$B(F5%XrVXL)wfByFLy968~G5l}f5 zm1tqV2Bps|A8IAn&_+cUeFq(_qE`(|{{>AVQSU6ue4q>{)Qi#x0Tw9MC^~{b0fm&| z`5d=ZK7ntNK2DY0bNZCnRekJ%C@`%(7KI9ov2mJu!gnm|Yi-keF_o4Z66z~~En;cq zW@j0)+ApIKTqHgETnAH#UxKpYrh^Hlr)8npj3s75wu?{lca^(mMHN=c9EoS~cJFLH z_!ONSzd7)7L$gaHCeSll8fHRQ2lD*JH2W$=8W+;kafgoO)7Vrpvvhaa7!*BPY&sCQuY;>?~E~(w}L5h?3{!Rk@i^StkdM%w0zA34h6_Z&rqOx#aOvUCu7 zT2>kPBmn58t1fk_o`eN?n0~4WtreJk;Eb6hM5w$C-qdm@N^``57ibkUJ#T>v{s2n) zd-?sZV&H!~6fYpvESqO(!Z}c;*DAQ4kp!-~&qvohqZ{vmZqrg)hq7x~F?&y{u5er@ z&FymF#Ze+#{rK>_8TBaa!qk>`QsEsd5%Z@j?p*l?L0}wOHO~;5lBgZ}D61{<)hpb` z%ANb9hxf<+rRn=$VHFB=)-n;}aouedKHeD>fiUc8*xn6bYz-Y`+JKvG_WD{=cKal3 zLp=R3>}Ps)Tc}_J?lL|OM|#cSrBAWQV;vQrW@1GA%HTHAB7|1JREH^bDzO7O#303}7Uo%d|=}ror*GskpTqHLo zI7WActSw978_o^deH|a~cHC)>26I6lnY_VFQ(18{7c*Bs$ZLz1??`&X2Q8Q+CM%HJ z_E1oS&!B1H-e>!Fl3e0FZ?4wg1OVPqUTopvFSSIeg&Z2|xp61W0K?3!&grdDy(g&s zzL{YWmLPf4ne;`tfNAVPuZ*m2n)_MqFi*NBhoL&=FwiG#L(4ksb_2Uqs2!x~u;=4e zk@mT0p!i5bF^Mzrn1xVVK`$0dRu`sqg5>x(5n?aRJ=!^AUFjoCKa znt6C_Rr*Gs(l>SrOm%7%*^|rVehRH&!C$w=ZFYha;Ww~(8#@<*&=`OwCj4M4q7&`J4hGpMf}VjnvN5w-O>Ifql) z&1=F~4L&g-=*?>B8NTE^u)C!0zeCE0{1^t>*hPjz!M&P-hsULTbO#nzZ@&77`uXEy zjGGA7H3MJeug)YJ-HyQWqxLWDwo}7y8_HS)5G2yqC1r))+Sl<}?pFfh!ICO4FoXJd-yJIzUM5y!fDg&5bf{xWy(+Tw5iwV`Bz_Bw8YggK ztGgDa%HQRv`)(Ugq#!n%caSD4PA$OIhz#QCPL4>c5L&*Bw?!q<*FE!X2-W)bmQ32Vb}p2nnc`OP})nSyOx$1_2FFgl_!s) zJDpBu|01XUYe>j>E3(PKF_y!gk>Bbvt9M^{oDf;CJTb`hZ4A{$!?G@9j!Blfg`=5S z5=y%SnQgYfQ6W9s6K>;6W_?Snrr1gyFcFj&+J+YvaX^noE3$j}s}~zH4%p(eRt_fHcMN?s*?R_jVYF8&o7a!`y2J@6-CA>SxHT`xQ-8f0>K~|lW znZI&pUy4QEHxO3nd7hD^)6iQS>-w78B*=c={dMUZpj#VSm;_AEmYd>MGxP!JAmhRq zL^R-(2bl7KSV_zN6D+`D5-^k9^BvCApRhnD*&_)pmVk9c=5UiK*u>&-`Gvpb~Zt)ZqQ}fOQNn@=kuAv;di}?+`jdvajgm4Kq7W}b3|k^>Oj5+#wQjF!ifX<$I4epx-@nc;1?3!)(4w6yu6P>{308(2tz-dB!P&N8=z1$^)<%WM zc27+bTI-B219_=1eXDk8qv5g#s9%RB?=Y)PW3%UQsB{qBTm|>;(xF>!_9}C@d)CzW zAiren{>aNUdGMRM!Lq+V{Qv(h0&;?* zCa1tQyC%83iOfy_rE)v&@YFWUe<*eW?tUMqG6t|lSF4}Ll_1^&(~5yCK({-b-M`W7~70*Tfm^ePd9Zj?u{S4Bnp7zNoh0Y}$bK@YJ}P zey|Lg9>Q{8$DVzQ^-)r_@}(Fx!pS^TpCA8^AF{C9&7ziNjkPRi7PIzjUS6QGe9d#6 zxLt)&I{=I#Gtw#}^=8StgV&o=c(9Y-vR}Kk@SWkqiFvZHUiM8dE*kykY|OtFfX>{) zSncH58rPVPvVnICQ-|Dqks-W%u59ZEkC7n!(d`g@pgSkl3P&15Aks`ARi4RJ#CHw0JGO%b z#$(f}s&ua#TB1fFIlN_V|M^V8pS4l+V&E=_Pb9d6+t}sfDda5Ek@*WE<7*42s3v^K zO#EuuB8<(2ZI_Nxt;lNhfu7Q9Q={srYq{iY^Q4H67fE|_3Q$z5J#bVLyIYxqU&6DH z%d~D%s-}(pkRY31Vp42! z7yA}r1#fE`+xDJv%ign0>g5$e_GEukrnBrz(49g~reS8DEUYP-t z(zgdQ>^lMRrNuB%PjyX2aoMYt4fsq&sAh*?1k*j*`IPv1&ya9$72GwV9m~h5r>J-7 zwzb22cQQj^nVU8;aNKHT{7LPO1r(69-S6JdA1*zH zcHej(-1=!uz(!xs*717HeZY32^EDVD-#*7i&=+_vR_Iz()Zzqo?*4M{&Jm zZ)JQ4G}M_Tm>_ks4kt15iKo%X9M*bV5~V0_7S{$0q(R{25OTQcrrtBO^zmS+8qx5^ zw2Kdz?}*e`1W385v@#943T>$S@qu@tt^<8e?Hti5Q$&Kx2|ox1M$(uz0Y&F)yTVQz zb8Va4bhqQrxw*5`ZJIg@RAfI*IBjpT6Vw{8T5I$V@V*=`?A>3V4SWS=B za>P}ayEbeH_zwawqoFl#g^cdp710AXY}7MR{S**s)dfHCi$&K&m{zw8X%z92n`?qK ztz9`^8nvsoDi^s*68o{}Fk6CAwhqFKu~(U?Nh#EiTKzs>w5-nxXd*3IwD@5G<=tS= zj&wK7pYfOBW|UXM%yM4E<>CGKU?p%d(;_=Eq|6~?>}|?8m{9P~EGf_E#0-|y$^l+sGicv9KA7zB=7JV1l9?o%vw7BD8*NXJVzP@5$XVvCN zgY4D*Rl#Cu;`v9>2wq)*E?*jJDM{wT2LD~DFMEMb9c-{RQU)dN(Z!`MlgwXIdH~g^ z$Y*$mCaJMcqgtMJX489c-|a1MJ?N`O8;D(p$|iDFhk9g{&P*cwfvWNNmo9!j*N^Se z?b2*ywJAS}m`=hmoDEO#n3Q7VJLbzq(ldSK#Fz-oy0GlnmA< zNYKl1JyNZbf>wh5X0Umu{aon0Lv@(`F}Vlgfs{dUDvWkcc}A8kg&S}Dnj%TG8j z(>EAn!>k?v#(->^zTIoE(Lf!)Ifa}zsWYtYnrlh=f*sv_JgX(U#S#B#z`5jaQovei z`BuZBIm@pSijTWq+%Z2C4S*#Z{A|#%9j999Erm&1e`K3gCt19CBoFgAAe{zT@Xh(r z@CTK(;`oDYT|Aog6zcAJ@GU;RJlUKk`Ryf|+RF^mJr6GyASm$mkW=`_{aT9k&mQd4 z!lLf(BX_tz>K^~tF1YWtI_@Lc>NQ@aD*!*;!CRq1TIe)na&^en=5~&i@0m)JmiOz- z*bV87ctmY+%G4WPagvc<ZvaHws⫬ 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

%PlL$+M*)Ir&nBH{WsFW+6z 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�HEE}xe4qLXk0M}#jN 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

#+Zm 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 n05Je!0K@=@0T2Tq20#pe7yvN literal 1241916 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 z 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�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/Ju$^{`kPVq;!B@wm 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%0AZ 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

P1ARY_4Yo!A~2QPdL1=WOl5llwbF4$w{!?}u)@ z%cSLS^~W$&=|N}#>~{7RjBqg086|s3Z`*M$Le`A!-g!B50CME1yUPcTG72MdSIvJ1 zp)2#N*HBwYN~_S__vbOFFbd|xAf&vhM`GoJx7&{qcd>k#)E+{S>?CzR7V_)g7BXb? z612!k(@+){nI%_&zmo9P{X(sR34xBrWO}7mgXsMwS7*w+B<)1wHba05ZoGNCX8Q(< z*}xHA@I28^0pydBbD{ESjjMsgzM!hGn|li#11G$LES};fMRX zQ80Q}6P=;dR6C2KuJ54hUsOembX7PJ}xPSL+01x`fhVO?w;g^x) zZ``lz&i~JtFT$QE9Y?H%ELddHT>f|Zj{m}I{|YS({PUFdXHj?6k=aig@DIPA*sg$U z|LAV{Z$JNccge4lTj1sduJ^CkBO4DtQh`}ODb{GV+P%yLQ=kvPF$cB71Sz7*KqOEv zL^Kk8US+Vzk7VIWLgav5Rv;3isyjgaiw3x7h=dn7HFR49mx=CnRy~+6WQ+ z9pv?*2nsn88@$1LcrThwN!_G=V-w-pUN0w2>#@6ETn)-+kONVJq#pdzQT{!T25cHB z@z!Ed!S%Coe4sr0e6_6>IwES4{5?9QrkqAYLfMuvc=GeR71`J99d)&Q;E-V=A2yvH z8KweAnt}}~6$&SKOc48{kOkl%Ft2xC%vr2B&enS2*eQd|XO?*K8@3Ec$!fsvnKcR!LCfmKO0MV%!3@XZ2%o|9IT+x5w`PGtK`; z9npW|IYkYp%RNlmkNt!xOD^DiVYCf=vjouxT8gOaZaL?qIlqI>nrv|rPc+Vy7ycm8~G z4IbUfL)f_5KN`7uvaURVBt!E7#WtYd<@6STldn`YEex1YRgGp2V3WT9A2;+p!ou^) z$h^tn^m+~?8EeHqIcY1}VLka}n9AZb zvaF^hKQenf*vQI#yn}x^bVhlnk?a=FaO+|M!T+ef7UDPv_Anq+Ilf;Lw#b0&;PYpM z=+@|{^=@rISQ=`;BhF?zo+4gq-<*wD);?M%9^by#{y6G0t+0#_c%n{*Q*mTRP*#df z7$xQ5wDL|eMTO3o0dT4#8v_bXM{ zhE|;^y7^>l*buDaDheRC1?Ie{29~+5_4y2l(x|BS$cbY&E(qZ?hG0E%#EVgdbR@e> z-tZ{Bpzrnp)+?Yilz6Zs6Y;Q^zRjC7N#x8toKhcQhQ*r&M=eG!k7+vrxn2l$lCL{j z5ZwO!S=p;q$sGrf53YW_i^wuN$!7-F`=|ESztK;r|KF;E-~S6J9L$%n%_`Vpg`@W0 zByon$P%y**AaVXsi2hMi^xt@1E6(##X+|saMjRe`H#o`0R9l2^gs3Oi$plNEIs}}) zQC7t{d6QNXW~ekb#@LA^o=^>$u|OJ-WXIm@gAY{=<*!t19hiIRBf|@YA&Z*)y|T1M zQITXzT|F_Xjraf0))5(j$p?S0aSCzYK=60W5q)Ue0GkTh zKz3GbnDadQh0)2LvX|6f2gq;AP}uCsHVu+`%McPFfqAO*idDoBykOG_mfMR@1{CAi z#FyDqQ)#VV4H2Pz@2p^xM6o*J=dq0VfNy>zfK@Q9%(W;JRQVCZT-T8pX;oEOO5bzb zCKBmb9qV>EdvCz|*b9W^BVoAtP6Ncp2%-h${DjGc{y*w-zpegB^@>>3)(n3z7o+Q< zdXLiJc!nyv9)Vt8sO|K9>Q<;zHEr>cZVgkT_U+hf;OixBB!?XBGd2p5fG%{YgZ-AilAU$Zj7yt{velrS5*NTYzGI062iO z3diG)jFbjNGN@da$RtLD$m&r;-2n&0l+GhsADJhiR+1{rUExfO=-(N2P3g<^9IpJQY5)ZWSKfHL6-z^^*b1!MeO$k5aUPx*SVn&kMQPM zAwrx>HM~@G<4y=ljwf>MOeww~X77=IK)T>5?x*O;(&E&0DiRp$kXW|Z{pDQr>_{H3 z&+JLp^J=(Sk>2ZuYa^ypMgzSyG7jnffbuJo`cgTR=}6vKENoYFcqdoF;9}cc%%mH@ z^qZA82n<1|v9w0J>1t-sR56-s^j3{U@opDc{p76vk2>cQfdyHs$&2qRN54L<4f_x; ztTn}+c^EnmLsR3Se#;)SAS~?%`UX{=-KsWX4;)bpIn-DgRVP>SZ{S}&*u@Pw7nl!; z>`JNTbW&Xc+_j=g-Yk#ESPx?Rq#w>5^R`zSs=cB8679XTB+C_i2!)%pn-Jig%vJss z@1(ggAxBs@wP`7ByI5LZQ(hdCwEsAVzZ`q#FOm%kemt)(v5DYPG#fa{QE8DS)7rgt z33~I((Pda5v(O%-)r+n#(Wc0b_m#^uZ@>J3T_;+e!yC(BH1m3>iDgbXf2eHng$i_{N1AK@~N+^sazdCTD6%wCAXqxQ>A!Zcxb zCx?ilD`nGE5W3GZt}niWYNy{^%Xs_vv`iOxrdBfVy``jgsg-R7Ki`!%u-41uoz*+C z^FC7idIcU>)0*;h;BaD6e)8-GgP{3+LF;T2b5+2GkvfjHO2j{|X6G3E`vcV&>Cr)f8S;$nqPhJ{P(*re}vlSqBue0Wy7ysAs_oGMsZz>uvN9K55 zIoyM9VvZvH*>i51=Vosd!tVjG&Rz(RwNF~ZMNj$eMu2VnQcuAFSi!F4bukz+PBt_BJnlqoC}_J|8ZuvU#tf;4(feXzUvHU5 zToYO#Int~sZw&N4Gko*)j;nbzf(>QHi?f4WFt9yK!g^J~{&Xm1ED$zvF#wEX;Qo8` zvh11tPwK1Uc9rnve5`6Gi-?tr148 zUrlj{uw6D7YnZkFQX7IcBRLtMEP#W;I)PL+>1$hrs8)5XXc%hqo{g+jY&GoQ)VKk< zB#iwuUaC;^Ai5lB5>+-6b!mI$t||}g8D>83X$YS34)6}FgHs%740*yGkCR+jlNBrTtUnui zW>;lh>)6brnDCM6`L(|ID|^kq&yDy?+upBl?caF(Yd*^#fXrYqJwUF_1@sU8-13U+X*;Ad3WM=Jl{ zxcdLmBKPm$`d^eEe-j7)-St=j3Kj}of=RJn{?eVy!@KTF!mOCJvr!#2vp=~L)!(&v zTkUtpOns;;hY9{nkusCk15GRznGHH%e^ck!Z4q)|*XbJza85on;C9n$zLY&;b94*M z63F94f8Y7uendz!G_({rQcwL3Y`mPC_ike4zyOuw!4Wxu;z`ilQ5QxqR~c&I`?oAT zVcD*BUwTxE*3LAwA)cLv6Q$JwRj%*cA%6)o!OtFw9f~!5lB`j%_2KqOl2YtA#W-(u ziPAe;LF3Xgzv1Z<@}$zEw$fvzgf?W2Qsn*jwc>X${(p zT{4GG#p%^0FB`Y+IUx>#!Ta0vy1(h7Fwzbf1EppMr58?I^&<-ojA=rrge$KH8VO+D zG&uk+YA{-oythu-pJmU z$z}!k01ZCH{Byb0VnqzUk@Sm4;sUqZK+q!Yhv@3&p+_` za#e0M@_K5dn%n?`P~ee~^*jszs%)Q31uBF8mW!3rYy5`+)tc!+3|N}|a&8a?D~M>X z(xoYiSb*DtRk;!`EwTn`bhK_G*xfqSUXh^AsiUcA+UUsLIGl+l+c_mXA5chD2YlkA zDi0~;rSg$a4ihPrk>Z%AAzLiQy{yHq(99AI-y9FuWLK0#DEK1h=BdvMqo;(I4Mil!5W=|IJe*F4@U(+zLt`;{2`y-Ai|P25>lko9onmz7L^X`` z2q3h2roXqFB>)m%<~Bm9S22{`mF|+$tv1PcZZ_tBpu!!CDfBPBw9ENS(L8=XK|+qd~+IrNZgYmSV|?Aw@Rj)q;s` zuJ+967rxzG9WU9NK#n@BkxKv(yJlV>-Zv?`uksMPN4v-S|Fzpk0!8>2dUBB8nDJM|0 ze~CAHK748U$s8D}&t6V4d0$`FAA_xbI4}BsZgQHLUnN3za-GJ30iC1|6#{{o({K9_ z8ORIp4||5ejbgv+a6mEC!|Jc*x7m z@-)c*n| z?Yc(|OoPQDcXkTW^7!7vvYsc{L6t&3q;lO%RcmT61Sd}KMyxqhvWiyL#9I;295iIZEWbUgFD>`6rT zg~7&k%y-aTu1tvBZ#PMe6oPRI>*5mQYI0ZgE|tVR;TgE|o-4Ebn0mnT1s5r~{cND7 zj1sJ{^DmtFx=?%kF10Q>%OH&`Rw%2(_aHT~fx=X%l%?iPVYmHB}zvZVI2a zdHLRbWzwKBrDtM|R?2bFnD-VNMFUECi%sg;DX!ueOQB%&&5f@LJ^A^Og~}kvL%kpj zy=6K_#Rw9P);m5mv0gbjJ;32CjS&EWXceESUGD?A2QUPcxW)=HZ{Hii_)M+oW*4#L zG~j$Ii2ZjSCS3ZjvI%Et9o4c9MR3V-vEIob_+><(I^ zdiN|KaO)&h`W?m}Imc=xXGc8c=dmSGy6pv@KTi#qYc< zSYb{=AtiFwicSa5Oej1zp{aYiLleH=VXatWL}jJv4r?i*y5E?_QC>B)o}Hk$l6kvv znGGwYh2Qv?vyx}X4ylP#)SyE~yasMlwC5lMWp(lvaH+v36jZ ztD+Y$l@rKxNBpwV6G{$L8h~)=r!|J#IoH*7A+P1|m%9C0P-;X=li5o|{gV&oo?EX`$v;HD5kj}47 zcx#?*S;ZW1v`Us!%fuaXzz1Ez+MGPfg@r4^asdjoQbH z6X_Zn(i%B^XcI!WRj*^HC8w8)%yJ0U8r2P@&XH33e6fnX6hcSW^5a3VZ~^km<1dMq z6iQr^?P;tI1p9-EI0O>5yIAjlx?3MRM!G+a+#y-Hp_O6Pc+TmVzaxRjoT4<^Hq3u5 zCad`|L+CdP;eMS&i`DLY`lH8*isMB#z*15qfGD!2vM~td|WMBXyMU$!gS?i6UaSQuDMgjK}T{nOj_a1 zDr(}@3}aPnzp{xkvi?qzZR-d1PYs&1!q)>~i8n}GIt>L8WQ1pH-8u00VyUHWSJSHd zy`PGUvzp{Rpm3iaDefaCS-K7?+u2=Ez9$?m?eU7OP)6~YbvnKz%4rk)nI#1)qln=! z`MUS%A+Hbf%@aa0A2Y0$y)U|c)HU)SA_OUf^56Hcr2bgf6d_7T^#}Rd3t@t{+y}v@}6G}542-pP zDJi|q>=)(5=`ZjIycp-ZHDSv2LA-$hh@sgvabB9phPMmL>_uZ!t*Sz78KypVypxZ) zpL8>Um&Lc$RyuUkx|1mM9n^h`U;;pd4}tR0b_M*IuNcuTD^!Zh|EwhaT;Fg_jLO!` z`W#s004ZSq?T)fhZmu6iyA~90hk2iz(2i}IgQ7*0+KlLhoIJF~1Uxz4SuwN9F^ND$ zp0FU0!SYXy_JYBUY8K$Zl|nsx2Fvs8bWv^JK~`rhRqglu1yXGc=c3eIn+Bw{WC{rT zI>S2;OCS_e-ES|47%JA?PJ06Dc+!kv#k`PPqYwvetP~DFuqbw(!F6XZ;fLHsEgKJ7 zsk2!bI7>-STdVn;vd-!Xk9-s3OPy_cW>pQ~rlg>+ivJ;12p-?l@_Q~er8ccIua5;WoJYe^Y%|R?NT&g)1qR%(=z7p9HtXCMXlw0HEfDbi>=+BRkntAD2Di zwJ{7nttzO(h-$#5>i)-8FI(8e1#!}}&L``uQSaFztxF5dtX^`kHw;O08SGQ8b&v4uDWXwq5&a>;O@un( z!eU(o>96`A6RbbVN6LynXwcKkCErtVOq#{xt%9XP-lW%?;)}@Z{Qiq`Ad`n((a@I6 zG4IPd7DR~(T>DH6;%pqhL|T)CL7`Uf?WrG|3M*?eXmh1Rtd3CN_}02oH2nfDZ7(j* zNM%uPRz(uVo4cdGz9uY2A33FEJP)J$>}sN>QitIzFBAB2u&vs0+t&uycW08j78oVA zN-}i3XODM$$BncVC;(@DRbUdBe9dYiLn7_;&hyN?2?k23jqMoKJ$~1H7{hb?#?+K` z&U^#dikGEri?Ktl6b4>Ot+EP*2cCGls(PL5mq;`D7}0lNF4F>0$sGpXW}$CflIM?+ zh}GM#NLGFupJ?&gV_4GcHnxPQEtTKPn_mjl>)vP>0N;_!KV7UJxop9{lm2JtO%vHA z*^4UBwrN;%?24G^=8Gu4nsn1e1~&i8Z*2TbIAbYyir0|vj)PQ5*g6|J{ zmCs;0xJE;^Nz-W{!u%_rLjOB*=jvDy_LEG$W1 zojM}5k1RgAVW_h}s(7>Ax5q?z1-Z2JGK8a7%CI zBK}GmI*f6{e!5qcBXDMhVOC&^JveMCqsK=C8;4(x;Kr#%@Z=o_IV0>D4YoQ3ESb;Q zW{N7?Wjj5PU_~KV zP$Fo&u@c+PK9_JHQy$wjeU>uu2vcuvMU+7~)t|+-Ht!2t^kiwp6c6!gN8w+8aP1VI zj+XT82T9fPUvE9w4GJljGBCRLs@wWm-K!6+mng{Ye3d6<9?3jWLj&%lvrZR9Atjxp zdLNBk59{_`sD3PI628pe-9?HwFdZ&Dt$aP`a;Wypn_uO2G)UvVl3RxZE(j(l_92YL9_j85H>z=WmYwf)_hJv6eh)p+Fos;d0j*&K5`i5aA?5byh$Evx~!p=-sTD_v;yu&2mjR91- zKBxG_+L+f91It@02? z3X?9-?`4gNE@R7kasnG}x7!KQ%Hb(>$Xjs%+@2qo4-ZdXS>k^yN!i4@!51XaH9@jI zE}lsf${!WfZpbluBWJ9<@nlk=DO{MLxBH&&2SxmL1e2BR@*Q^ZuNxvt63GfEP_e7YR%CcDPXw3y2QNiFG@0dX35h>#qjRVqLpqNHT78A2$$VEt?^& zR|K>W7lfG9O;z(j-AtGJBJ0UOPTrLGYxt;_0?rsKLGMx1=~N9vtK zmI1A5<3jX`(H*=&vH0Vw^>2pQO zg>~$YR=&s8s8chYXQYBjvuA1M@Lp2UrhvoJo!AqK=j~@m{jPW3(%%j0;P=v1wWASh zP0ndwO4Ts=2yz<{>xW*xUaIxDn`^7dgzE&!>MJdVTu%kR&6Wx80*~w&T_Y>{iu%f= z{oG`^J1xuhy&Wp7Bs1^VfI&bplK7SaYHG*JR-FmCQwV3U-XfUa ztRCYWE_NoZipYt7>|_x9mOI4}9B!V;8~F+tJN+Se^W0l>+<65FE^c^>&bWy3l69@p zn<*T=X(*i8mGX!rR#+p2&HWT;<>;T)H7nKw#NWd+C2{~3%^zKX_s%P}*j^*D3<++2 zy}xjW*#iTf`pT`WaOMLjT5d|wiwxwv0~kjz4Eb|{G+r&7S>x{oBD7?l+xv62xhoXD z5Oh9uoQ-Vjwke*M=Is&wVq=P7O|KaA6t6+$-~s~}Hj*sK{8lxIs%=_DT(REkq8s5I zZ=MUoKRt6@E&{!9`j3=NKsV&JSAaK%4?x|k<$iysgjzqg8!CwG4tRhpB z-@rOfI@!9TdfSL+8;1mnCvDEh-7S{feN0X+eBJNPP9|+!XZnrAX2~1L8GCGF$4FzB zUe?lV3!O@zFWj{;Lw6P&bv2o{4G27wZHoPhmgS2LhXODuIul5#7u*=DKhV+decBqx z*lr|7MV3p;6i%)fokB`^InqoG<;GdRDz9|QIKG=6N=w0}Mo|ya#qow2b)>TqQE_)O zRAn98E+kdifuX{w)R7J&?>H-*#=2ekJ6{mR2Zbua*kqT)Z8y@VFFt+9Rd=67yq`o0 zAHIjxPKLEldI9mQ+8@erd)fOa+R}E*t)!<>4?_+rpZ6#WtZ_)8E}hy zjUB^wA1MKJ?Sak#S}gSWq<*EXtO=Hb(|+vwyEMKY?s4#WDK7Kn;1uurCS%)J`f zM^)sk;V&-eWtc=2836s}B=8Z@i$tAId6VO+$#cl}@KW4Es)#R5(7NS~jGhV`;)RxU zjxhQ0^12A9`fFdvYb@6T(>deL_n5pY-Fa`&hx_vv+d#5?-QPi#*Xn z#p{q&g3Bs)E`=UR?lGOc<#DUYpuGv8D!WkU@v0)G=t8KqkL;br=#E0K&-^A^BF%u- zOYv<9As+$BfZQ^3wqfjBo=rdTLGu);e)@AsFxD{0@EV>}%-{Qx1(84G?xcaSooHm8 zx6;vIxJM}HE7Bh01x%efoq7Bj7GIVu7IwR9#FwTDe=}!l?l`%sM`RnjvRlMHd%vc< zs#4{3tabuR+_i~T*fqXt*;bJtyihk1Ctay>y1IIlJ9GxH2p|45q|8$Xpc@mDoj$`70R92&xn3(^yARUF^P0Ham(E-xxs9?`or|{}!k1&8 zJrnO#%hnLo>o_mVT2o4#9-jB>*)l#ct!Kb=+s>VW?EG&{i>9Xzh964#g(a+4ZESgja{d!vg-S+N);9(ehmvtD&r} zaT-Pe-NlyII_<8kXT_RZ(h?pRygljLYlct1hN|#9>5$)zj$oInmz`h{8F{>w7x}eo zbL)z53P?XZ1L-i5UQROhKOAV1CIXPX&OU@)7c22-B^B4BxgFLB^6_s+_ zqXMLrtN}N%&sfb=B}aCh>v1fROz=TJnC>Tz)ACFd?*MFzDvhe0D1`G7uk>@SuYhm7 z^^N()_#Jc^w0rOm#?!#iU+nx0rM)UZ)8-#Lc`D~MV64eo;bzoP3~es?Y#lwWfv4Tp z{D`wFK5&je;t}RkNs9?9ZG*l{i;p<%Wz>Z0DWq{ENiO(v2XIL5ydYKUgSCkp&&%8j z9LsbV^sMj1e6=Z-Uz5j(x4&>Vz>V${sNhKlsa|W|KZ~sxdDhSPf>UIvk*v642#3At zC&SZS-Zuhv8vn`-=!W6(i)Wgun(%7Ka?-Z{n)_Og(eQPu zgr=QVFDK)}e#EI!d{y`poLb;PQAdiK+llDHL7P)AQ)$|w<+w0D7T}yL1#3KAw0u&tF|J__%UYE%02}-so@9 z7iSHWEoD+8a$dUfcI=oP3db}9MoWIQl+BxR>|cIk7(TWp@>dQC6_$4uEjEm8b{~qo zA|-z;Sx4WJxdES}F#-DLdR$?`w(DEDL-rJ@VB)m7^WLj~D0vRPaEfYjA0fhKhtOOa zxvKWcxEM~!XOlHJgo%r9N_o1Q<5_Oy4VrscL)PJ4&EVViwij!z1@`x?urO_gkF(&j zw3i8Dg?&_oF?T9IMdn@bO&6w=X@9($L03`^16e$`oH;XEVIVtjuS%t0(f*1EKV8t| zR&4Vfj&u;mc00&}hM}K;=$H@-Msm$?RV2MF4Ph&m9t!ly>?H?F`wp;`>S%f27^ip% z582tIZgt6fEjt<`n`u&Q;SfDZdaq`(UyMG=n-5&!qCJ%M`7$4OQY45yH_cE4-`l1; z3WeC1e$X!3nO5&)`{Z}iOll}qk^EZKsppOZ_e?}qD|Hjzv*j#~2MY+4e-<411R=xf zpU9+Z|Hy3H1Rj@=xz$Q$qBB zwTn4NQmamti}$?Jin|{K;Nw+p4&|1ZV4li|1B9VM(t^Fj4CJskr;lO2x>r zi7<2!ROT5PLqt-J$+zJtcgJmnpMH#Q^~?0FVf8|HeUX9ee)6EukJP*oQKY7;}Z|g$&mVF zU1gtR9>hmQ6d^C5XV)t~)Har1xDz{?+gwMY%w5YGDJSz|dj40J=n)hc>oO6Z)0o3) zW4i82KQM8!lYHN~4D>l-7C%V%#fFIU6{vdWELVgYaRgZgUXPWYXB6yS2`4;?N zhS#t`dX^G$VKlBm_q;eCRvV!5`swAL%h1UIfh-)}Sw2#i`CsDg+gTu#*n<~wF1beZ zZjzmQ2?o*m=SW_&tJqGbk`Pdu6?pf}*72(Y1+M&>P6DY!0H$UUTq$ax(Nl3=fQ*Cd;5_W;xnR9@D1afUhXv{Ove zmmD}E#Y5C}9>w#hBK?|3qAkE9e8nCu>B7TE19Z-~K=w7gVzlI^o3EJ^wZ-hnX}xIF zOYwnu^HfTWxEY_SWQ(WT#de#reR~mkq#bpPG0}2@l|E9Z_!Ds%kpj{hg6q+K9yGem zl?I>neU}s+!~Mj~1{?qs`2!(qQ>%VV@CcSWIm44AQIT$4@bN@>(}}Lv5#1efT)qSM z1}WhBLB2=_-U!-)##_h{vhevcdr{vkQxB=Hc5&rbD{^PD-sqh5u^OK->!{V>5x7qVbXL)9-9etdd>m|Ha%}M@9YbYu`f%ND30t4N8b0-Kdm^ARt`|NJ-a_ zLr9l^pdbR$IW$9eBV9@}L+1=Rz<|%!z3+3*KKs7U{_S-?>sjmhgQb75bmsg0#QVCg z*Ol$9%8jJTD*#Vwqws>~4#Q6f4r(UM2Cmc(lZ01qYrV#Pw3AEn1E5FkZ9&cCQ9bdI z(g2U-Hg&4Cm&?6{a{GH`A|^iNeE4mq3RI&u%+vrU;KBF-)Lo9mY-y>_`EA^=f0$;@Zjq*B{8|LhTKvY>QJQ9SRn1IdkY z6EM{FRBBkPYtCRAS{h+g@VN9&_nIZE>uvrWkobWj$bCwWepMhs_l9G}>4bh*)`8cg zVjyiqkCZSNZ_VXAoV{X)VAxaVZ{<#Ft&+^hNIzp_TeQUmzXyf;(2+O;vUK^2+}TKr z<;P-!2oQ0iuO1F6Q{`qB{ic|THf_jZ&3f$nMf^3=Fnb!KSYl^}-&T8aC1oGlIL?`J zVDKwZ;&q0*bk zG7WlguK@0rQ}Kc=?DNM5gu{64g{tifs<_xM#qs_aB1SgQUkf!>=S{4iAwzG99A^ex z+;<MwS z3DrE0Ki(#&AMz#sDEHV{F8qdd2Lw`T+w4LBBZ5N(|Ep*8ZnI5J+9THh7Z*#pTe8s3oI)Q%q*HfxP@XoRUgu9@4cN z(2Qs~Vt$!$z)37hn5=TUx;}n?#>>oBMgN2XJEGk;&;}cTq+s6O+#a)>j*E4J;DSj} z{SgU?Phz{jEhOR-+FQs^jnu9V3%s`Zpma9Dn{@B}-rto9mo_@iI7o=kkFmx9%INp~ zJFfR=5iB7Kx}>Qno~x%wyl}2>tBh)|C-+W<+#6eUj}Tgw_x;-*@KFZeUcn}l*2J$E zH$DuE6gAFGoa?FlD!b>&fsV0%$LX?Vm{s>`>J<$ z@T9`RX-O)c4Sj1yxQL$vE`2?ZSlY$l>|ld0D_A?W(+D$$X2miE|2?~*c&HRA>8|7tuH1&aH{GMbQOOTdxYWD?lcvc^n0^fc-llU zF0aN{B#IUJ`4De^%WX>$QdiyXR|6KlJTnuUO-W&?4C4 z+09r*Y%2B9#_ryL)B~0aGhS-idjo`zmvWJE@xq4;KNkjUiO*o3t^@~V);R7j+~Slq zogwT!AZ?^THy$d#r2Lm?0$2LnvxM#;zK+H8R2*zjdq;ew$h=-Wh6Sj`4o6Adbmsg9 zDJ|%Ec)%M9rVfRd$!x848>?6y(?=?v-c9%z+Rp(i1R)wIu_j*`JAG(nH9{vDw2e6l z1HI&)U0n7O#^O8#^a*`S3~^nB>>|H3v5dpxfPF5w_w)LeSK9a1^sbxuzRxkf43(oe zF+h`jIh3X^lTvsYTZtN>KIK^8Rwq*-?3~i;vQaSyzBz!)+y}4|4dwsp1+C!vcV12q z*|Y45=Kt}?1N#FS*y?3{418*e=(kI0Ps^Vm%W|3y3 z#Z?jK;DHi8y7h~*A5(Rhpoh#_(DtRfo`%mP14_&t*;AI_2yplyz8f~Bqc{UG2)s#^ zi3AAe2hBt|seAl+70FOjwewaBDZ#WSs?kFoQuSBY5@%Ut8rcore{~;xU4=U8gMYz@ zz!?QkVqdNT(v!IQt^N~L5Cdu~=n~lW3!!&=+9=;kvzKqrsV}Aasjuxa&lz|=Db&X^ z_vVLrI^!b@3}<_G+sKT&WXo2{3?~)S)Fb_Q3n9JIeg&;WIPy&20sj&&>Lzp5iKGX5 z9e1o*ol1pBnZ|k{Dw^_E9<=6jx~)$Gp*s8xs^C8@6B#Nc8KFTIYxdGpWjacop`L^& zD3Koa1USZNRia|gBXD7|bmP=l>alYoEe%aqk}q{uE}mLY(;~QS`m+cFn9<=68&G7g zkm+-jmwt7k`Ecd>RN8^XdpLGh&d&nZ1pjE^9W?tzH{&<=8xtpdCFs=%kQ%XDLuXd( z!N5!cmw`NFsig{-y+NH!QK5AS<+iQNFqr+YwHEQ15kA3pN(z&O>*-FIylUTb(Dr?( zq#1*H9=Q7DnDo;;Wh<_NdIRHm6K|9Xg7)brCGGw_pQti;dE_M|RQhTD*14g_!S1gK zfm)SpadNd=)(hSa4Wl@yKcx!*R4GD_EW%yZ78JIxFmDLiH}V9lBR<8ZJ_p@HxlE`uUEZA zu2c=_ZE*ba-T{khOvQU&w}iRE?Z3Ro1xiWs;&RsY*e#T5U zu5Y4zP3&h4xx-Hm_oaqdWPh=bum&$=M2v=UHX@5%mZ@}y`i7XJEReGi?tK#?K=HVp z->NVT`#1;4t?vo`&V8J!?0N_l`0}uGi640rD;i6Ab~!yb-{t=KgAn6ZseyFslDYWe zXf1a)gxM4$JGp;)H@gdBCEN+>Jn3E?tafcRxYwEC1{6cNDY}`8qGC*Mk1fBhpL7yn z(V|Kt3DQgos!t@qO?M_SS4W9yW_Hyzjzq2!U283tCBnC7-q1aH9%iZ4C6v5IQ4$l^ z&<|pYR8NRf`cXI{&%uV^-xHF@48K7u_cTIc{6t7$7LDR&t^*9Yj=-*jGruhRLD&B; zPanYE@*C7G;V~NF6aQgjtYC7zvQ~^jrn`USjTnY03eM7fViJb8~# z;E=UGY|hg6ELa@ZL8!Rz3bxSZ3zhNa7{jj{|Ep`d{#;wUlOHc<^V0n>*}nV{xE#!2 z(LayXVoZgQ9qRxqixeKU-fV#=5y0Q#Eg7=%_J6;VXIY~;j`=xfFwlzP$Ku&GPbM6ySw7=$!Q2;t#k1%)ubwYTWF;h*%gUq#pYKdO)Y z(#N4imch-agV-S(i#lHZz|DN8m7Do8D*l?@MV>Jp!%YF{{J}&<$G9=dJ|Y>8slIAz zv^e+;B6T~j@9{Y8QbftAH=={AR_XnvUeSor52<_L7!`-crr&|$h1SrrF1s(a4p*Y>lcTUX+ z=bskYn^I&jGA?SVMU+#hzFC~~Gq*T;`?%Lf&&k5qp-A6o*g0> z(6lC{dCLZ!I_FXOMI9KF8~YmA+`?<|p^^K#HoPF@F((E2&a{R`&fCxQpO zwdl`lOJF7=&In^;JBl8scY)X220>b66#zvWW>{pX!l*{ZZV4bsa>q<9`%-md7D*H^et< zed!MK9JM;ReXNv|p z`=;%l7QoyESy;NQ6bk7*=y3u##r4~iRJMe+X!@=E(ykU!h(wLNtU4{f? zf(nl`>P#b_N_v@wxhP>yChvWmq1w@oV3bTSJQL$O*QjfJG;lkO^J5Q77ni)0M*Rry z-JT4gN@Q$8eRFMVW>7raVw5HFG3$l$q{LaN++PScfl}*M?s`hZr9uP}xLUKkD{8U2 z8pJlJ#qG1PU(m1k$_P#tH5@+Un{InQK5%HJv--Li{Q@V$Cy#PQ{Bm|u`@<3C48dH+2144-0 zuwUR;-O$1j|11Q=%T{fYHAJ zBfNe>=T$*il zfUZ05)|32}lCyf%!gQ>Wprx4H+`l&B{0b@NKKk;5&up5_TzJISvoI88WUl@|Av7i8 ztgNuAkM1o_0{161CS`i%C27=Xk=+e%d{?7-`ejR<2=4&y9osWk?@{4gWTA@j*#HZc zJR=oVkG-t$OtZ*a5gGf=9`{=I(Ud{71_vnJYAid(XWt@fa=KZI1!>&MJ^ltZ&CgzE z-%KAujh7McZsrRIid(-6oV+j$wXTgEjZc)F}sJ0-F^$jV2Nx zv(xZ5-(}Fve30^PC~Pr4MMNuy&xrZaVW1<}4F1%fi3h+4&4jvS+mrWg^buF{mGGRd z1~MQrgv6y$@{H@w5b{>G;T59$2O8lAPHf5Ds?OHWqP=ku!A9cv#X)_Bb2H5b)Za>t zwmhj_?F^?-sVOsJ1ne;k-iZ>cG}7)I8NopF>PA_y`pPa5iJsCGLu?_(`0%av3~Fo% zER%Viu#50p-n1PnWB4t9Qw?8x@GFg~Ogf4XT}%+ExeKYWpJ>XBzC8WW1uws2M+aze zW*>gc2yv$pE|~F&Q50wnG4yilwT!X?9cn)TBf3AT346$aJ|Kl(ynCDY3M)WmOnWeNcn?I=xfeD`Ctm(IjP zcXdY=eZvLOl@;Q222z(1!TzTq8%dE*dR{4l%KY=A&Tr!QFYY%Gu2lk& zD3I4a@GOa#=vV0C7IlGq7_9M;?8i`z=P1#ZlBeZ{jCe~!`jZ^`IblYf$Uy@y-a`V? z1%{JRN3xgfEBS432MgsXr?slumbgO$?}yNh7MsP}aV$@I+0CCoABmB@6a@5nL*6ef zs81F>1)X#1S*_C(%lnT@6E9vVFoPWZ1P2zHZ^`)T&^g7Cw>L%#zDT3+xocK@+KFP0 zx4}AAGlVTiD3tG|7*5!nH`UT?JO*gWNDN2z-E%;tP?(Py>^%z^-UB2o?lcBXa zLwT%3Zy6d65Wbcwh%`S?WUE|u`i9d4toN!)gA(m=vM-6k)E|CtG742X@gO9;L}i52 z_V{2|SP|z^v9rXTfNG62n?&iXrdNUuhMNThlI{!*)ZDFAc6ABTwU;uSaX8@@RongI zxDhLvmskB`Gv-9oS$xM?W($Y6J%b-Y2ll!$ROj&*z8Jj|_HMDB*l*BTNTTm$R^0TY z9_LCq<2)K6-#WwRe)VM)*68aVnffAe|Ji$lIPPKZh`xuj)% z$v&!rL95iNRhY#(;P4!x2D;T&?vSZu*UJ%MR2(dNw9yuZV^CrBx8j(et0`8=R;JC5 z0H0^CGJXbc^B)TqnJJ3HP-G*uKpCrHs#evISIz$l$H8Re$HJ}@{AnCfMnLPc# zC-zar_(;B2V@FPMeHHbvnk?r13BQIy@DhDLM+*JCFG7go%OI6t5q`pN&}_Nvzm+$m z1h}=jcrbVggw)nk+s?UiN`RI%taG|~HpLTX?a7lh9E>s!qf5H(%fHU*Y>H^m**1E8 z2#<7tH%_^qMUUuK#e4sXNpw{jliDm088X1=x6Js7k(OkE#k8gtVX25X`62>6bG)Or z#~*PVG+pZ54cOYk%Q@a1o2v?LxZ-5@iEzs9f23_W0-;-cF*V7vQ#u|9PG-y*DES!VIJNi=D zGsuBkrs~#x92&S-w?Q+O72^Q%dU#E%KJp>)R)P~ty0e-!=u}gD*JK?m&^K(P^R;7! znhqL!CPA;Mnv+HpB+ZBGirrLKL~=|@c=R}=qud90WO%}AOMihON{!RCw0 zNn0Ss0S>IwETR)VauL|u1*v1o z8$5S;tdV$E+z9L?S-9Jj{*V;twzt74%5JW_5vsYNs-6{YBeatY9^8Z7CbDt}^n6Xc z`cglT-iE=ERyyYNJcAGCl{&W?;C-2nA#&lbJB@TmX!M4+Jjlz3uCMito@(o@ERvSt9vM0WL=VtK&?CM>cuWctB$5} zJAEdxtCs+lhUpa6ZCn_Vb^*++GDCZG9)SQjY=QjS2aHKh}Cs1b5N{S9TT@FuqwQ%=rSo|yPbYpO) zmmHF!EzZ8BoMT)L9);d5w%J^pY*wS0=WoG9aE8}uq+XQyEdJd(_90a3hdjtKX)dKf zBf=}KHZ#P-YqHc~Gx|z)ZIlnD#Pxw-l;=CW_l`^Qmc(Wt@laa?Yyuo$Ms8zD_gQy5 zCpl@@=v!ic@x0-)cnd36GA%ONUf$}7!?1!pL$e63K;zD;hyoMn*D&X9W0?d3VI6nXzD<@Bew z8f3^biPbz-br7xh0oA#FUVxb|;6Z$sDeEM&%G3dkN73 z+lauhu1n!LVeR={Jzgi03DZ0MUfGqFM_1l~2rtciaVCzW-x`kXa4}LS{L>_lDJ(}`!K}4E%cHSJ(M>ymwx7n}E{DB-*YZ1YpRn1 zNtLBfvqp|F~5i+9h|b5#pO6F6Lih8}rYbIG>{K6+%ar>+4gz}=b1 zYW$GiaPR8=$ZEB)7E zJk>E2eU5tw>_YqBASx$mNz~FZSWG8g-W!|bi7J&@#s+h9&ZLX>9vMLP5&35#p4a97 zJR50#GTWyGR)fz*dz5KBX*4njt?_!E$SzaJ)1-#gW&IQRQpg5p>z{$`la(!XQ>FZe zrRxS|PiOR4fV(yf-XYv#uI@9c-8r6WTr7;<(rLBd5!elKCORqm`T(nBqjb%d~ya`TiQ+rI6cMZOfTAwk6h&t&bWIpk)f z`zV#IeW9%zO|<8%@;&hURjG`yRvDQcmX33K>bIe!%fF0{e5qCyL@{k`D z@}MAlYc6yt2R8+N_Dt~U{keG^<}V?WQf+^7&ws{Pzd-<9(u3@lX%FLQxJ7+!rdNUs zBMPf>>e11Sc0Yo9$G)h(b;e>`ak2HYwVNkpL!H_TVHYjEao>RK2dqPV2xX1H{xY^{ zG1qRi!dYScChvJTJg@D!b!Q9Y%B#ID!(szIbWLrX5%B6L^J=XeP6AR`iI4Eg5NT?N zW27ch*?;c6p$0d`8(n-wBj-($WX~jaua`4W2HKlIt?tzKr;0x!upg{4{!ARj%Ze`>ap) z7O@Lyxwk-2yS^TuFj$UgW%gE)o4MMBssC~^UxzAg@rO54cZ9l-S)|1c@dV%ojIIac zrQ%Em-v&9E+>N2f**$iKIG2QB{V|MLf&CIK-Fm4P*PZ9h4~SHG#CMuBDSYC-#o1+s zV%(hIyRmQiC3^w0Sam1XSyDy+a9gm%{Ge}!4=_;GU4N+gXaU4w{gFZ>r1WQJ=W zaK9A=iO%)ql^QB6h+5L|?G0rmm?+e_p11Tr)G$5W{hPl7q^lh1Ct(5qM&TfIA*)9l zCogN0Sxx40c~a(cALkq3GV|Tmz3ON@PMHxlOXjfnfpn&7K_!gl2>8tw0F%G6wp9l7 zw^io5PmhQqfq&aU|5iT++uxZs9)qg~`-hnem9pV9>$tnrz82#8buO6{nPygcfOrqc z8wvo;sO0wXOLxoyfVa!un*1cWI&=MM?g@MG|y19eSHYx4UkkcHRmzVa_sbDUM8{yZ3W zKd5)pk3t9x!VU;70W=6$D_g_VUM(}(;?{YZUsNJr*@iNgTX1|(Q@)Qo`%Lqs(vFXnaRB4Q`_1Y7$|6%0mJp5V zq!I5t?$9SsHtSSDK#rvl%4>kiuU#!6FWNPw=FKZ&@~hM9^k%_DJPf6@n6+on%_xH> z;0LdxWTQ!1i)%(g+9P!iv3)3P~eKQd5DXwAnzwUn9CLWA$yDo zhj4y_Ji>vdD;!hh6*KbI5JX!fk!_x-U1Ml(v0t>>>-FFv*^PJ7JTZj>2c3a3M^VSW zLHHQ0knRB1%&x}#1h;H^7wpcNRTw_Va%IIW&LvKnC2i?z_rwA??pR^GG`p#}GD^a6 z$v1@9#c4pXUyn0__NpGI%?`9xRJ_v@T*3MB9?lp-TrPYJrRY)% zw<(G$BZ#UZ)hc7>z>I5R0z{lNu+_i<5bRYz9>Q4VK)|XT#k1Sl7@G(#=qfL;osD1b z^Cy{G;1SCy)YO}eIT0V>9is}lZ^cqX3#3?Y70-qKs+fFOj!QA(uszr@ zQVe0W!Q4!>(|6k{Gvh8VVcThb{tRnr>+F!AKJB1Gd0JCkls$T~t8H$=R(rc(1pMK# z=zhD!hIUZGh@=OuCp4`=;1>8`xsUGFS*1n6LLW)XLkm%Z?fGGFffD;m;&Z%zSovO8RxOZG8$S!uq?N4>2`zNr9tcX?~gZh6$TPR({-xpqD~huasmwD|RaBemTQ`B1I$tyj|cQL-zC^$a_hp2N;mi8Ilwl3i9{b{$hlF$lDPhYd4p>L|RcX z?e0|BKNqadFlKyv)tvn!)ncuR(-&vGgmfkn-)Z2H(Ge+oH`H}0GE-JKv~Fmae{qjE zQyz4n%0gBKGRv-yj;G&2fi=PT0wlR<3NRX9buZKUD{XQPa% zXJ^y=KBjigcQs5an=Gt4yOL^H$TO-_t;eI13y@_Q4S8toS5wq_R`n`Iyzg+)ulIbD>kr0F-2n^JS5NC#M{+WXkaVYiRDXPURq`h>A208UvniptT? z{DyMYJyqD>vLF?kwtM_#{pjEdsWX{lUmI19FXDb*v_@#nR|Wr)ytX-O1J0xDU|G-t z+9Ig|Oz3k4c&?(>+?VNVG9E*2?@HQCo@(RI@&C}i7#n4l;F;Ii4C#1vuI@4QA7ut^@b)*i12T#+gQ^|OCNu=fgF5Tl81x)LB;YNjRfxBjwsS`)u`Tv5nCi@?-CpU);Q zHC`Sca0k$$?)IU;qP_I?;-^LtlGq8pe8;X;cIs0N?5;4KkDTl?-aaPu1qAQ3T=_p`U0`w> zjV^$WW}&HfjPwK-j2q{b5XA>0D(7=_ft*dK)8@41Mx~&F1$!?P1WLVEL~J_D?ks0E z65U3{9ul9^KQH{5z-jXTLxqu1&71^d3qKsrpw~*&*jxl+GUXMPK<7|ia z6?SBiN>28nfHs=V?z%L^g_$wwtX^nPFgNEsheceM%jFF0gU2yEp4iZyYkqIpRw!UM z;QG7CXDD94fsd}z_bi3gWe^xT_cOkF_||&2OYw>l9s5zdxk6v9n;aQN&DRRK`vR!8 zqyP4H1M5M$GO#0hC--aZPgf|+VTrQ?I&$eNDKicWlTpd{d_)V{3|hUx)+Ska>v;l@x9bR0RCRG<)FyQ zHruRr{VSi#ykEYm5g)x=XVCMQ#Kmi$KreSa#??b6(IU7+vt04k@itwy@&f+YxgY6O2lJ-8~bdHdmBz)m39+n3^$SWSw~vu5O66V1w` zp~YyQbpc0^=x>l^y{eY+8u8=31AsGM?EZa-z$b*qf*((Q>EwfR=VJb94ByHfnz~T%hc3x8dENKNn@Y zo1@m>y>?Ot5eKxO(suSs9m)<44p{-$x=?d@`oY|HJ*J<`MOmacuhCyiZI)Oo#}1_* zP%N8X1U!f46Mj2*9 zZH7%pU(oHd;=AbS6MxfLpv@`uIvwUvwR8YzNwjT^Ms~^4=ag7-F&K5ostlL9t_%6QNH8`e8J z;i{8mOus=|`rTE}pyaGi$D01k;<@J;#_$%c?B`CQLDrPBghy&FLPql)Ok!%h3_LMN z+5F0ya)#*myRfj+Sdo(!O(=gT$5=- zI<*ElavqJ+*3%jmh5)}a!$y{4x|M3@?2;zp!1StfmVf=1oxqS`#^BA;VmN!CqOWUJ zW0)>Lt-9k%0KIEG{vM-{W4!%&pz-#kqi@k(*8-Eh*h*`yw`_PJ*jn5Fe2KaK>LEPf z#CQ)=SHaY-iC^%)LZE+JoAr{x|Jb#byi@znQ!bEC*1JDbr%h##Kz%Nbw8-RAReZ%<%e zqI5FuAUV%+99_U@SnXK?8XrmP)Y(vuh1QiLLi>oX(bv*{0%&41*)jy!cjYF5?%hsmXCxl645k_s%*Um62 zmA7ZM^g)+59yC2Np8ojlFs-?UIQaU^oEW2?r>k=77!X_xz2u{l3p_#4VTr80-LdZD zGfTL5cnc(X*weU?^nTU{_Q8>29M3XwaQ`7Kev$EmzWRK?BQ5nCgtvfBnN(>?o5TNf zZ+h&}v$ZD67?+=pa)x_8F?0wI5^OS3G+?fp>GsdC5qQWRtB3t)ocWV4HmOV@j#;PV z1xh)LUnI%l%&8_-&Z8}03_3LX2hGXr*qjM~$0MEIw=&wMq=|;Ol^VBmK8{$^&xsdm zAT(*LBao8k#`THX_hUp5nccIkHh${FS=Q5>@w%s`fS=yqH-6}Q7HM46`pF@+I-I#q zb#-5sx5-{LhD2s~Ak-2_3W1b3%;R24PAxH@+?m*_TfuvqVP~DX!5cr4A3`6uOMpT` zMj1&!?mBw6^Dye+K&*u{}-$giG#n{7-FeH|Mdb+74CteaNzBB-ZCr?hiaXz;5ePBeMsgU zk?)cnS&0K?JHu27Md09Nwd$Hg_!6Xc>5-Z*72!K?f{`WCC8_ikpBd5u#C#^HnIU&X z4R>W_qkp6~)!>ifr8v;NYhQ#g==y1|WGA@pP+>w^$b-5zmLtW@hxPS>(Bove(X{^Q z0Ipp+v55EXQlo^=V6&}ei6uqB1-_q*GX>%lpf_{9b4v#YM^xAQ2;RYqk^N#Sm;Ip2 zG=N$Y(RO6i3;>WFA(vVwShM#3Vl_W1-jVcgEh!ka@C;o^^{mIoN0zoIcNaO8=0_LI z)!r12Uz8KpKMR#>VNc%&&cJ{w(_-8ggV6vMX#P``lP^y1v*$SF>;)TB#F-y<5)3eG zwmlDn(6z>w%x&MWPs&xN?AIAB_Q-w15j$6N&??A)mtYKmH`JmOGS7U?@Cl1L8evAh zJI7$y690icamHjGG)*bx!1)qOVS(v1ZxzC5+sfV8P@(V0S1VZp=U-BQNc9 zrR&tWTjDDhYWU(@y9bwto1X(pC4Zb*B+?Jo5sPRQw_^eT{Ugbw$jP7&ZtEX*4+5O> zKt6gg($AMD$KrC++-En3^)ZEUg6T&uN%8M(PeslCpTqF_8GNYZ_z&-6d)CWNFvQ-} zd)nMVsbqt)siU>F+jBK~OH4I0oY+gW`xM(DqR;I5@2y?o%mfPaNaWgNc~j7&ezH{h zfamn4KIkIBI2^-G^VyJi?&fn=%TfaM5r=&OLlqkZ?Tk!8P{>qB-}AOrxqDskE3;aI z?avkSe(j@z@$XiY^wwQ}ZAuqXVwrU^3Cr?Kot8Y#A9(9NK*2?!LYo@ttbh{~{4Ek% z)$G(^H~_Fo5cMln88>JCDi_oh<}}?&mMOr*BPMA_#=aVP9yhOpVz^M}~pzy!`BZLbO^(063{_;>)P{FwP0zqd$OE!;jnrZKPS*PMn(euhQd z)MAZGAHA@~$9Yoyb+`8GTRx>Eyz||Yy_G*SX~~(vx_vC7cuKx2{`aw;|A$t(>8HKY z!rYTG@AUnbd&s$%iwlP}Os20A8WjbCOY;(zjexM9dp z_6tcnlRR#_i}oDtktFH;49+2a%^6gc$oe#&xpzBMu z`&YR)ivDLCfil$pvGe`;v$>>W`N-7I>o>?4pqHQE{%@|&`#96~|GgE}vGSi_`GJrA zu?cmz5lXYNiAi+8zi9w)7&)d*#X$GuKNZRT6PdpJ^*@~M|L;mpu>awIMfT4$bXjF1_}d=?f)#+`qM1(|F@sNY@z@@Pht&PNPjGx>4-zHJ z+SdXou?qgvpQ(%rIX4wT`vOFu9c|4-QJE0IXy*P|s9q+<0(o+I9%!A`f7d@>1vcie z<7w^8jHGxeBcDa`oR_(?5yQlVT+ArBO`D9L7J}wr5W0cn^S=GNuL9o64;c`gk=u{I ziF>|ppNKk(EJJ_oI^Jru`>9OQ@s#8Iabv|?M+KGUIZiszjbOGafJtIxzL|$?Z9)fa zb6{br`5r1cS_ga1lvs)C&Zbo3elDvJviU7k-|B8e+0dS6L#h#RPaMQ+r#H!T4C4z| z(bi~e7~4A;U{su#8+eeYawPW9Kt{^t0NCMAgz~z{hwnPZDUz1$5cC&J@Puj>gFxn3 zb18v@NE6pHr?56^r^B*U0f$2Qqg-?6o(`4(it=^SQ{%o!45JfV-CCjTQ`XIJgOCdS zjUks1&GN?U-Ji7}H(7S1npnqpLDlD}_lPSuF|A40iECHdzIB5(5)Y&JdnQ{0uBC5~ z`#Ja);~TD8kI_nGvJK^?ERTS;?v)VZ*4v~1#F!ru1r z`Y^rHPjPW}yynBs*4rpZX!E|%tZ9V_o5-qLuCZ_B~L}#*AXc;)WAg3A5&>56QsnrpVE#THjrnmop}^HwwJD zt1%OI^aG9Vnd+|x$|CRL|426@AG*j`2@@O^}x-^@D00^c5I_asU~A zpcDQ1rlaW3@0=}|y;Tg6KD!aEXF^M;DTq6vL2 z&W>C-o1Y3z`nDv=6fl=#xF>&tufWf%nLHI?{wKDA>wOOFqW;*4b_MM}GXy@&z4D7a zl)5jQVNbSgeApvnsP8979b`_NmS4*=*Fka0qp}c?9tt#i`05pd-ISucmgpyIA|iOL z9TOaxyXDv0?k1tf@V@;Y`YV}UuR<1Y#+F3lug*MyoLrpZjfnPtpNp4mWj0;sVxG4h z&nn0Et*%8?B9`&MXOBU5I1Y$ z3$8?aR$gZ{J2}`1zMa_>{vL3cwq!)s$Ird1h77rR&fI-?MffL4VsaiT%}o=QcnMbv z@h-M|Odq}5Ytm|Q99V+k5t64Bhd#ZbI*)RfW3p@93>7Jp1zfBUp#%D#27`heiCNBl zoDpmOaEV=cN@kRNre#Tj_dWn$PJm;$PRCS?090 zgg1>LFEtxll_-5TA+UCArrzom-4D@Ud+jJ?UM?>IuRU2NG#-Y3hsWR1z`gvW`Gs$P zzvIZ^&Zf()25Sk4xA+Wi1I5e9K@dB#+re1C3>)(6Q!oX-z!*2tS%aba_WBWkcmuYX`jS;h@CI zJ3q&_5ghpSYoyNpWQIAb0+Bvx;NsEFR=M$>{2F?PycKzBC378T@rwrfPb(RZc&kwl zli;>~+Bx>Jj7jPbY>CHA=9dPyxRme9-+EP{@M06j=v}PWO5BDLi>Wd3H8Y~Osd?Yh zQkGsOnD|72_(+Hg#6y7PbDl+N-L-t=E(=iRDs&*1BxN2qqBHJ{4}XK6sqG7j$T+IS z*owB3z@G*+xvWyUB<+vED{JGi!Et1fqX=fA9m)3^9*+D6t8L0}0x2zVcRN{omD$V0 z`j|;YS^{>T%m8_8j@g>>3kNr*pX*XEYeK*y9%H`7aJN?lUj%i=Zww~VXqbYo;O@8t z+1oSshYx;QYw{aW5=_6pc`*GO#IVDQ-v@wEyZnAusL2d-c_Sdi20djv6#@|sw}Fw@ zcV4BXXb@d7`Q9Pe9e+cGSEH<-R;n}s%DQp zI(Q{i*4WG1+nx<>$6+wHpfXZKdUboVsmpa|2uIe`(i(l=Z=ulM@Ih z_dC=#cC}ka=;tQZs$ff0N|TF)H>OG*fZoiUWwvLQEhzKNA%O~gt@HX310V% z5znNJ7*G{Sf4$s&@l6S~hFF~T%)1yV>}_gUp~;q9=ZB;RXtb{=J$9c z5plKj#u2i@SG)ZT8)&XOE0-B>CMiL)>$iRGbkiTsH5=Gy{pxo}^YNy#zj(p3!!*#X z2W0*~zx@IckhLv8V8~!zBzHnzyzl;(Z+gSNQODAQ7IZ^Cc#v|ur!Et#PR*PaYK3+;oHz!#$u7~a+j``N0P9dZS#898vuQR*G$cRU3rSwtf1ay1+zxv953Wiz%zLyVHD($iq+6y!Na)8j&a#n& zA_Jq?l+R)s99q5Kk`rEsAhNmys49UD#GcjM*80SiCA+kkUic;Iv(p#M3eRs4Va!Lo zm-lgk(DL{gKDo#R$PXRJ)_jyx_q=-By#OW?!~0j3FgytrhA#F>x_}5DQ2#5 zQZI8DUmrK0{7OO;2!VNqbzSJk-G}MS{0&lQEHjIzt~+NYJj_eg8E}#odh%!K1wvg0 zC7GyFy~%(HCK`27IIr*MUcOC+%}~C41IHs=hC2k}614r$AuVJ+3_(8)<^= zqk2(M;v@fJ#j93}MkuA*QJ@>Z0c>A1Sv2y~K^v!KJhRW~t`7)aMR+*%$(n7O{wkhR zfaIF~S_pllfz!w0`1ScmH?*DD5XJcLE23>3ji50+DdI>3vUb3yJRYHHm_@F0q^H= zAGpy!d^~%eifCiY(x65+twt+mgAX<6`ohyA-U5{_Qoh8QE$vrjVTdB^7Iq_~M>jLs z3iA9z2GN7PwO}>ndW#xi*V520fvOzA8VpG~7`0VkJ~7`FowZB8b#~`Ds&;xfuRE!M z@M*w4od}^SqZ$M8X%^vc(7glmRy1$%;(X%}?tlZ|OG%-c@sG+=bUnZwHSH939bB_~ zO-Q#b?X}8iW{hM-ri4&`BT0?BmttS?Su2wM0f+}!w4xqo8oB}5hUr#HNGD@SZTel# zPr8+(4!qBE`(XBW`g2{Q6GnYNM!b>xvbgicbBPbxkb?u{rr$#=*qLM9+6Zb=J>!3$16hty=Rkm9;_aSIZB8VzXV07?259 zM#e`uo)&u8Uz{>(N)EzY6(jX4Jk1NEkDWCbBjHVk8_goCCD)Q(Q>XhTrw;E_Fl|yp zBJ{c;KBvWHUWy}k><@k;QXfp-1Fys&Ipe+n80E^Ob<|I;T~#K z6Kt@tgVu4nQ7^8GxRdvH*jORcahpY1B<1w>lBAy@*_>xz(lTJ2y~1D3@ldSoi}lDT z@qx1~7gNYz?Sr$g5QiZ9fCp2;W_N69&KfGQwZG^6^S$q%Zw7{8h6xP0?(00y z<2;H7j;8`cQN3KWE5_m=CiL)pR@07bq3>0U%&s71a-z4KrJpT9mxt+>mshEmVmXNZ zbUoYkxkXXI-8jDqIG6d5NJ##qduo_A6Qq{m!8>|OqR%rt9=*0QR1ivl-cBJrhqOb3 zBSRCy0^ zITq3BCG)fyLeuM>{#yOE@Xd@c1OBEUJXR0DiP7sJCNW$Dv)kktCybk`J=rNmq z>YAhA-beP1n56o4$?`tk;^m7mIqU1TD|6ZbbGI57AG0fSD;gzGgK$TfAwXf8dZFe5 zJn2teI>`;>*iol?V@(jh-ykNyhEui@7s^V>`?A4%=+~V~*Ye5MZYN@BbZ>)DR&oK{ zdajdh+l@E%rkJB3b*e4?{obG6Lr4QT2lP3dZIjur`#XBmpX-|g`h`i~=%+E2xL zvl=vm)^tG{(_hGbiGujoS!znv`}R#*DPZ)4SRQ3F$$fLbheU+Ej-1cqXf)o;dRrxG zKZ~~q?QH)KEtbhR6)9jPIvXH2wXBT(f&SdiJ=emtuHkaEf3FsdW-#f)raBJ8USWNG z--voiw1??6KY6^JapB+%Hd*@n_6xEJ3@7Q`kGk18v#uTA$+>4dHy6A*%k^`G%=M?M zYZnDT(RDHB2I0opX$b+=BTWH725~5$;ycik@^h^sMH78 zyik^B<8oek*g@r%>UiC;Wq^?Irb+c6?@=pQ?0|yTvA4EBvaCt82wPz)b*XnkZI@Ch z)c&p9=G_bRR>HF+SP@-}MKJ8Ho7ES;;BFJM_ik<9vGd(j>Xa^h ztjp)@)oL9UG{@o?eMBe>o*S)YD>?T+5)3Lyj_s&&yy;@D(Q}+lG^t8p#pc8DC#hX%j2nkRYbj z*H1vtsql~Y6AXvj>4au1Se1?-|hE2 z%ZRa((j8hT!by)CP{!k~g`JgKzPqnhhg2SAqVkuf#wC08SWw96qu|%_fpoYT$pX4T zL7h(OxCv)cX({0!!Bg3rac+ik`sjhf9vow3wCRMU1=TDK#@zIwfkYqE6WT;666v4b ztS&%$hTlt@ug3j0a0vNC@rR`wm~hqhzCJk*&=dhCVh-MsGD(C;KCw3ShUX9MJ8Q*){7d<+7a`+m>lX7A+vAcMn7+19L^bY z*v&Ue`d*hgtX$skO&G9;OwvC z^3zqtjhQ4+fe-6RG%5(QE+FT=U&EI&KPU*n4OA@qJ)l-(>kVqUn-AsFL_8YZcNErr zbGYF6S`9iFAbL>PChICD5BXf&Ozx23J^8Pla0Bp`H{CrC9)U7i;M-PA9?HQlUyug z8WpLt6x;wyX3&uje|4~V^LrbeDALmMi>})DeE}Du`rv%y>>DDC8w~z;(ItD4e&Csv z#_Q3-ss>tZIZWG!c)k9~s~RgyH({c-RoZNuC?oV?!VN=AY_HSHq|-VMk8krHoQB2F zCG`o9)*JnHIrBFQnbiz?gkySyHP&i5w+q~oJ%b(Ww@Nd1MXAa%ZRVz#=Wx;+?eel^8Dt z2IQz6C&5)WV|Pnb1x*&-ycbzGG#z}2UCXRb)EdD2c8M?3^^m-*giX#LB@94y4 z_Fi`XQH6cJ)T)}pgd^7`KE>B)I$OOD?2lxlRG79CxR30B8h!q%JUNw~ zY)x#8epGl%y&XqGf!YulaYtM;A6x-U4XEc$hraYu&g|^&D*eIBJjqJV#y7b&Q`AN!QCok{u4S)@DNt9L(WZicAJ=o z*EZn>-bDV2X?RVR_z0xb4v;AlGNN{>MXp2q?=@6JcZ=B#Z!#p21zTAT@y+J_11&?U zf$xw2AS^rF`__CbEso9Z^gMJj3uwNnce1F`6Okhm0gJ`;vid$=^h?-q7hvC&Rb zj6$>5+r(@7jI*Vz_;>?tln>!D3cN7s=w5@AB-2F}a+B_8lZ87{Y!qX0J^@Os!Nv`S zAvoRz)f5FDO!Bv}wmGgbpuJQ72ygsFr&rI>1?bffQ@3lYup{V0^$Xql(c+k4C&Sm!Mv-){JXiLczHVX{u!Ff7 zBBAN`W^xZqXm{e{7|u2r)&i|uAM8P~D*oBRsJ*NTG;0RbMUxL0688?)V?X&7kleWE zayFF;y^lPNgR!k|GWhe389wxmiRP*iasIentv;I<*jMur2AWlYMmbwb_K7M{Z zKF-7ndU00E#0w(U{)V544m89uh;#wGBJyV-RQ91GxDDt5$YJsrwGg?NrS>LoimY4; z?DZlSWj`&#@)+LUC*tz<90biAvE`#Vf?>u;Cwgf3^A(I`oKn4=Pi#%2cu*w#bizEd+k>48YfTbWb@XlW zQoGD-jyFhORkA1?6yW-eU>NZ;K9Ymt6=oqnZ}K#()1ds-_lYC?>{!}M}h<(GaFSI2sF(J9? zqqnK*VGb{-#HP2TSY3K9{h|%o@yGT&1nTf)GAvDIdk?q{@}-5B?kB|9T$jG69>eY< z^Y_ZVv$y;iT589fj`XSLdhaP1baNIivsy83xRO7|q;|&BLzg=29Eu<(T3@=w2I=l~ zSyjKlr+7+MX?eUMW0f%sFoca8=$NZpl4&4bDW`^4uYI9Ws`3H6NyqYTbNP1vBDne& zdf0y~RR4Va@7X1$9)C?Y8OK`|1*Sv3WyDp8HE+M-WL&ER$OX(ZCj8z4=n~TE!J^eW2)qp(O%NqNW$)p!*>JShVK-4 z;ywk4*j09V*0T1C(|CkFkEb@&fDE`j*&@dxPC?q0c&8pmrjqymb%KKIe+o zwKQ4J{Q^r}Z|%tC#Y+OPSbr)w5D=OP1cd4WbPC5i=+nzg%4qNoJqIor0+bM>1+?H1 z=2uZE^qI-n?oM_1p)j&JG$WTrgP-Jvt5KZVB2QMeWGs5lc+~&41+*9%$}amM@h*e9 zTtA=LmsT%++Vv*^^&m@M9b&`3f|y|2Jq3=#N=qP zn%bdRUf25eKk5rnC!^u!76{9r`_rnq7it8QVZ3ts%k!<^1lp2K142vzZrCP zHt<*+#~N8&e)_y>Vux@rU9u-amMC|pJciWIPwhxw zBI@=r-fK_Mta(BpsUPexq^PTUe^`GX--F2b$vD<7(wi4pa41#m70D7E+fRPi)P z4V7qRG&5FN`6#~O9<34DUjEG{X;%;EY1k&5a}n=C5I$|7 zeML{tK?+{YxqJ%X3&0dMQcGWku5E9*g{BDh&NmlMa!;I>`0o11i&Hj=f0wg+Y?bv7 zo0~EiruC=L#6KIqsh&day1q*xw3jDzZHdQ{fQlUV?G%WJq`Io)ewT`?Q=hdgefcxsFn6OCW754uyA7^;?-9;V%? z1%}=Jx2K8W?%awR+^hr_W4-c3Dl1E&v(-b<;n7WO#l3mkG$1|=*H`bB@m=w@Kz;m5 zJwC(4CBH$PX2KTKM$iI7411aUuMfJpY2HF3_(hJ_=U!Q)^5Xm;Eu}2V=z=KW(%rpF zyA@KW$(gQq(=!iwg1@sC)wc;Nt>WJ!C2mXu3H+bnmQg;y&gE(OF5mxZV(sJ(iP-;S zy@j9gV3lGYOYXVIF|jgrDPOQPY&Ffi>Ze&vm0!N&6RJMEmM z$1CO`h7GlJ=S{mk9E6$%*zfA(e%Z^j1Pl%-!(H>1DBUIF85!EO$7v|H$lZ_EEy(jz zJI})^mrYN&x1ZG62}Qg7Qtai7|Nh{TqM6~JhAUrvlI+QBmuBA0X*j!*%)YUmfNm!n z@MXC4P6o))BDF)Rh8Q+mc&f*_iB;4IY2%y89(?S(3|})d>}0dTQJ1{gZkL&;Vwf7~ z^B8?O z93fvRho=gmJRSG2vKn=ju@ke9FSmukjTxMmbT=-NG*((k+E;vcX@2PiY)-v0T)1>O zzKcz^=oH6u>yXjhXkqwPnSOhH@KBiX*zU!iD|}gbf`ehJK@#Dem%o^m7FK!)7`xVh zh>?7M@RPWY3JVkhUrJee&99Bal)h~G{ERMCvHP;QzIxa`-6_q6*DJl_mInIOa=-Tr zkf6e1Er0c$GyMpEaX~>@;YCKOTseE4?$F~cf1v<>#;r3pxeWNyYVkfD_GXvA5PH^h z%VeU+o_e4{jZXK&ZfX$FWYGps9j!~ab+xc#%v+bgxJx^V*E>31XDT&byk%C*ay^Gd zu5dMLJ#Z9gNuT`&-99F{3VsVdx>Hn*_PUH@2EO}4_cWQ*K$qb1(MvdL2d$Eq$wEA} z8YQcCbRRI)5&U&)hH<{*Efgb7nt4VhGZ2~Bn3PEuZ=GH{7Do>P0^bMO8+4Sez5yQY z|D+MocSG-=E>)34=Er|Pj-n#_HtWum{R5^9zidg)KKJp0#Z zjJmRTgh+6eck6meH398z#pB&3>z74aIL2}D5^h8(tzO~3nTL1ZGj5bslrBODj!U|PVYcX&xAWGcc7HmA~4?wU$3mS!ivT|JW5E&;hA zs)!oN`8rcif|=jTeCmBWcv>-_&4K29Z1LaMI6IV~PRILHo9Dfec~vu?MH2_LtKL8- zfwxkK4KSayv~&RZPB=xH6EM~bzub{6DO(8{* zA|u$$`UR#yH&9H{3z(tMON|w65E!sKJ-SFw4`i%st`h>Cu~~4@TO?I^(cx7u>#!h~ z!UCB{G^z>VbGOQFpsja*r0$HYY?gcsK{(o0$nq3lU&3xn_&Nq!uduPSOPZLP+Qkg$z4z+*)G$Pg@gKZEEV?)&7hM^{leG z$PS_aNIGmHovO7?VOgw_bFkKLsubWBVj#AJec^?6_@8C`AM7*lH)zm zPO}NGUSQu=wj=9F%g|%u>R-2g0{BL@1@L9u7*F%+*mWIRkywvvMG8V^k-EI1b47oc zQ(JR^&-Dh|K+AYTba-3OfzuAXN=5TpNJrtV~pCBvUvd$Q3YGUc85<$VmD z7v5u`n8etnMWuSUKD}v=Iea6sKhtdL6t1|gGt)a&_P2bW6A#qYCM+0Rl& z!c0E{dN_#dW`lp`U5o19Ae%wniupUz(`5V+?QKJgQY!&+Cs%tGCz_Akjrv!WiTC%& zs;>d0sogStH1}Ps2eNurGLwIfhn2Of{xi0qg8_glC5A$Cl6E9VRakY!?GmVBliyp_ zohkO_zusstjH@c6oVC?d2q>Rzs~NHQlANh)Xpi76BnlwFV$wh>{pG6|hh1#h% z-kfNvILtj4+1LH1t(|HEew=@@&vMDAWK%d-+PaLMqtQLhdFW&F^>|~(ye;Zz2&?pI z%%643oM~jWyBlC+Iyy4`GG5iY5vRzP6c-#olK;GE6y{O_m2n`@*CKk;P%AmM)a@p4 znP*uS(Ut27o+FUE&>^A3R2qy`4+Z;BnF!u+C-dChN=rWs$Qb8ei z-~MCOSofpQAMNk0VNI~MI22ps6xoVJsIxtstoV}S^8%?!dy1*|XIAlG&z0%TM&F~& zw3ZeI40|(R3C_`-)|{^4208IyhVgPI1o6I_uY65GJTesr1<5?e)uL0QOL#_ax#IL!RX+Ni?7qy(2)ZAa zyvck!)GNpCl%{!RqB=d1d1Y&}Dd#R5odbC}i0?YymT#ghz!v}}(1-sufeL_^^Ghb1 zktGH$D`o~AhZm1EgtKcHu!6{^hrg76B=v1yN{nJj+5ro=+9;UHS9`KNP2zf2VO}aT zbrS$C0Wk(R9f#L#8aJeNlu_F*3O8U#0z9_;q!!B|(VF=R<{JGy^npyg0cuQuF+YQH8*I42e)!86rfZD--0F!!>GybYkPVzl><-D&$>`yQ?-?n-C3yYX0 z62S0^xa2c7_;HgNxQiJ=K-78rD8cn{^Ob$y%>!vFP5KAfoHpuyH^;rb@m#@w%D^jaafp%e}4Ivuxf4Eof; zfj|^w_k$IZPzfP;TRhSMUr1r`8pEB_7f&|0)n|+!e$BPn3mn%WE(=t23ioFwe9d-y zoccHDZAu--Oji>603d>XF1iigAJ?C^WiaO&X`;2xudexU9vYkHIYQr%uKp{=9e7j`)%UA4#B<*5eSB&j4 zWl6mM4H{JQ1l2P#vM2(1JiV8epv#9?tAyVmQJ~)CI&4>CKSG?m(L-Ij^IzYaGTj1Z zLqFm*;5G;-rA0k=(?U6gQ=1O0K0S{vc6+<9R-U*-9*31%X;`r7%;Lv5M2u87mIx0% zPI$jilQk+n#ZTc$zD(NAX_F$3*S2)6cjrCAj^z8nD<1H|g~=}PvM%N&%Zgy68P?X) za?_v*sAi>3D7GpF3!-XYQ(M4INz)b;tBPNk#R)pcdxFkj2bPAR@SHg#GuuVw28a5v z1M7F1_*IV;58C+G+ycCAEWh^1rW6@_SwAL6g0UwTr>~4UvkbP;%5oD7@b!M}PrtiF z&KI_hEC^>OZzKw_^#lyiRVRVJB=F0n{BnsvCyo|Q$cJ%O7%^xIBx34e2bbOJKC z8P;@bMH|0UAvI@yb2cSvRJ;abPtzne$FS9yz$mpp;{5~UHs!f%ccC*a|Dj`H^Nr?@ z<~BoJL^sbBe@!#cZ8JhSx@1xT7O9xMkN)Kk7vIka1Z7fFfXpGH!HePpr(q7(x5J?T z;u9X>q4~aPa(`U)KsD4Vh$}{gkvGFxOq(|bW4y>Q26M`m%(ox0^_mo09CCSMeqxjt z$(w+Hyka0p88R31meU~w_R22#Sd@BwQ+d?|+q`Rh%^WLDsTz60X&~8DaJQ=kNgLq2 ze>>nF@z;AKR~~hxW$lY(b!d;zC0;D1<`CwRk^1_xn0sG%-$jSMqH}!f^3&HqJ3x+U z1+YUa=rZ~INj%bWN?4^UXmRV|aOU1LsEYtzEDxlM3}AtN@fPKZ*H!4Bl|&)!&+%5< zUC;hw-vvqiF{`*q&6m_Risg-b`_w&R#&rZaCDC9Iwm=cHS6hVjH5lU_^Y|h+m)sD# zX!Iem>r)KA(wm;A(yPp=y$G^BnA#U3$T|DBS$M?T1f3UkZ68D)cB_&1uil_?iP0e{ zqlO8TV;;;{PswSO&ih4FcI=$=udNei6!To0cHsZPMl(xEK z?4NSkDr5GKdO2AZvbQHOL^;gl64VyB%IH}t_J`)o1doS$ENrWdF2D+d5LjloCH_2F#_1Q?ru5)T#u zhewYazIiYD+OqiEFW1R#+?7?Oe+qh=Fs|Pksz8pR45*TA=F?@i?$VpD9{Azp#>EBT zDEwBeu;7f-O-05QwllchZxF-RBN;tbpUj#i6wne92{~5pliOFu(`?n;M9k`Gco2Q7 zZMV7Zg%G>_HcQO{SsJf~c8c2Z7qa&ktJ7jCIVM%9oa^oa!;9rE|h)rknJfiQej>tQXL{Z*CDa{3nJ?F|9bCl;h3?$=IHp) z5^-{U@fq%FF}k|ydQaZ_sqF?aURH}m;6Mp-k{&Pr+vv<6c{Vy6o97{cx@gmo-7l{K{}~@)aDe*S^L3Jfr?vz@Zg}fz7H|em=mENqil!M!&(ayM z%>Gp)Ks3W{b95ufn@myh6f?7sEY9+q2@8Uu4oK@DsSc@EB!;e!kJ|{OdY*d0+>me@ zXi^&`veCC$;n%NaRbdfFGDQV7!#)+m)m^r3kOP#C80&@1R#h5xP~tf0hjhv@`MOzO zh(jA7Z(j1vr3uFMZR6MCWPX^>WgA1oRnb~0DU-8STMUv3bIJyL+ILSlb-K=s+350-$sABK$ZM8F zcBq5n_XER$l2L0&i(CREAq?>8yMGq=)yO3R=tVpGn~%s{FSUjd=7*Ti1$1HRuHLh> zOaSxu+B$*6?M!szi%M*)_evR7lU=gzxyB98tQe)dWJLq7vs zLkBN(wnWXcSRPXw@5$HntaC&FtB$D^>%5z-H!fA!+VrBWcyql@-#J=Ls2E^U1ArX` z=S0;Km7QU90XA66(z5RLVxq9d4Ci*7HqS+G33E;GiUq@F>kRXJgCnBgvEeR!=Ad7& z_Bw?p{=lbuK(yr_I=pFXsC z6}D@+iw-S|Xd-t*+P=OZuS!s((_((D%wuiMxTl~ax@jyUoQwi$>PZ^SP`04wH=!!S zEo+|*>a?bzDP(C8Px#vZ^{ zfXaAFa=Q#GC)xGhZ$l^R<5sheq~SO2=KDA*+p48-nba_MZ&4R7C$aSOFzFO;x?rAn z*H%&4%XpjmBH{>Eh&e^N;>0s0=2hCQ?%cIv7KYoH?mSjgVR`gc@mfcKPu6N0=x{%T<3Oi{4?g`50{Rg4 zF2th@3enGirs{ud!i^?s77B&7kV!pjI!n0!`T%H>$=zGd z9Z7gok0E5=vyGUO2M9RSnw+jHYe=z_@LHrU6%Us2q z%D5Vgoymzhtv#o6=PQC4ubTVY&vEQn*=`(7WwdJZr2Eu}gS8#kg}9*2I~r3f zhBJK)-VA(iPHMpZ?EfFR{y!MGgvvFJ;z5_j;o3xRKefiql4nYu?ZlB>g36HQ)yqF9 z{2sN--1>otk*M2U>=8=ns!6x%2+(pXpK* z^V)|Y*H@_fk~%f&*K@%yzes1^^Oq9ya^mP0F2y09SUY5=L+#)Np(W~K`Q>jAW_SEb zw*6gcY@rFnD{=d#PoBTo@pv0og0tdt-46cMWr~ob@hJfF_`AX`j%V1}`cE019(+Tx zdWU|k;eP|>q~CfDGNfN&gQ!(wdOlj)IAtND%|_p+Qkv}c!0_DIcJbeyyRjDwiekM)$~X*xG0`# zRVQj#RvJA5V@-jrXXuVgIR_n^N6ab-HbknevD>omlD%cBxli-Ik;nCDs~5I^hvn z6e*@0H?TFG7fcxyYCx5FaxOfIcTPq5LWe{fn6inmrpT6$C0ye+DL?lJv4@^tG#23E2 zTeO*$RpR3N#eU>%!?+npn!}l&f}SoTl)YfGT#jYAjCI50g%3HPn-HW`4R($#Mhdy= zBzlIqgs^5gcX`U+!%M%AO7v&9xUjE)Zxj|yZU4YALCLz<34Q07j!l`WZ0hV*qV7x& z>^#3C*oz0%Z5!e#E6e+Pst!QcAqh2u_w8bWac!}`L3zism%wbA_$UWH*Nc0v@#5v! zv6;mRyz7U6hUR_w;~3BHr_aP8%uV)rmxWy!w7v98FbVWYGm?YM#FqK1U4@GM>$@%x z*Bx~mk)RUBz20V!E8_q19SQU`{}Qk>a-jzAmmB*H+7aNuMWr;r|8^NuO!>dHYynOG zO~t+0t8f#;7byqAvD7w>?KwIUzFIk1t|D0VfQ9J$KOLDj`24pU77#{+*nED*{|CEp z+RO)ylV8z16*6rlz$&5Aup0Jn@1%(zFlnsESFBTqNm=Nna+>vGCY+~l$iaonDU<&C zu5ItB5+Q5wY&Lp7u*q*Z{{9p6Nn`GUZ7dfMJ0JCkS6XiOS_}e9MR*vP1}gf?h;nlM zU_ln?S#N`3KJ2zYr^q=t7bY_9PUK~Jem-_+`+C=U8RQIFk2>ZD0XEy*(EG;Y$8#36 zSg@WcoZ1denufo8?bEFY5;+f{PG>(=fzj=_*3nC22h@y23FGFo%~S?m(|MDHc@5fB zRad6RJ#BuMzN?twVG=N)&{#3u#_>2&VpG*|-!aP66$IY``D5;bDEXZqSn*Pck?Z^w zJu3a$+3sa%K?Te-;*&q}yqxF!(ncpoK2DHGdwS{%PQT%Bw`4z#wOQt%+hCWUJcd)+ z&%QQstmaF1t<`B9q@^)>uN$B)INjeX7p%xMX&BR5O_57KgRIJ-&qB?;b#%c-f=zb) zZ<{Fj{sZtNx>F1Uhqb5#mre@rhO-g-mueCtk1*tW|% zB`UL}`J48%z+E_JUi5Eja4`UTdO$R7Qv{$ivr;JCfUkTJAn5-)1846?&)Y%a5lz^;YlvNiD)uwU|^IW9!oJ` z@u#!K{YPiLe<^{CfUzKx$HbFw-VYP&zx6$oysOyX<_%u?8GC>)ki{oL3@o%3?_k)! zz#8O6AgN$mkDxuXKS&=_1VH{W@{{>PU{mC%rVPC&v#E`^__Y=P-`A=mdO?O~ zfiGgedy_Q#fV;FQvBBLqvh;`L@lS#@E5f|_8j{}nzEHSHeL2G~EmaKsU15jNbYxa0 zGS<7qp{!~;H*R+Cr)sj2GAU!2z7)?_ToqnXF%0Yge~i$akTWcMG4m9Zc$*w@WYN;GU#pdnGy;Z^pH*agus`VQL`Dr|wB6Z=Omlqv66 zE(-$`V8K50!QYTRUwsJ42#)pH{?r!}my;YuDoZWs%kZZu1V1vbMY7#GvLG`u z{*mOic9wd>r>fLT8jR+)M?_t6kVNiRX?}c6P+%5m;f3iPFIdrs-<{pUIa5jZFPu~kref^ZC{?}pjL16!C7$pPPs4@wU*6g*F;nC2wMT4u4)x?kaSGoRG7O$<~f4%HK&&xl4 zg}FYGG6}U5mwOzv(2D5-WD3V72XM-dJXbkQ_FVdQEKdUy%xZ#^osXrY*s0&9mh}GyJ!075o`)VjgbfDIABX|OM|=_UNVfv)oZ-llMoaz3PS?nX zg4RlJc2&K5-8|NKj4_Axgv~|oU!Fw#M9TkX6Im^%iJsGUViJjgaeP(!yiL*Q__9uKSi6lx zitqr`*DFO5tS@JV-tWfA5AOzLoTMox)M@OIs(8SPbG2z8S%wKO&5+%6(cflSBtJn)Wrwa`@kDW zX8!Ttc|8hBy3026=*9FyT+?3=1X1d=op1)Ijn@CI)dL;gcPRHlG2B*!WzHnV zsJh|D9Y9V~o6?CH)Hol#n={0o-iMV&%`kax$pbbAlq+VbshA|>@orjtjTRt1DtksF13aW;%|@8AkS6Vy zD{}~DEX6Tzvxm_!xqJk-*;mjq+Fz&1**7@JEbJo^@=@-IoOam|QO_6F+l!Md9^5R- zU|+{Q;}m^K~l!r+Z^saUFvh!2)Kn>#XYigf-g zFy$&t-s$9&jMIrzgwT7x3j9{s-MNG;C?6ras_!J_4zO|OJ=6g>!v9!@ZNo$WLSHKb zL_uJDt=7Ttd55<_+nJ84=s}R8;L{1-Wmg#k%3uW!Xjyw|?YT!-bpc;^X{lD5)2*yc znHzV&oV*}0FZZ8!2ws^%w48v9Jg0E?BGY&pzf5?QNZuI@Y1losfWcaUgLtJx(O!-( zkGx5CC6KzlP~p#hVyc4Wq!X%xh-5=vRLp_KdfDTNCal*=iNJ~wU^XPjS8RvwEsQ@Z z6d9Smfs(o|z53dn&nvzR|r=)ouy#)Nd zds&(CML*?UqI31e<#O=S=-AxHzkm!HdkV&9YHbnDt;7ARM6wB5TXdxCQ(uws)xk-MrI>ebsh+ z?weOedp>E67y{%N^i-=NWB&HXQlrFSZL*K_-akj33z$H`0ZQ4|zAq5_2&5|SsoavD!&M=uKk(r<0Ute1jYN_$D^Cqd}YC?cEE2;$&I0~dR z+};u|$8f}ygk=%WP#|ueD-T{R-TRc>hvP~zkF|pk#b!vRlnWZ5xqDe5K+-wTpo7xh z1t<}|X3rj-kk>e-t8&_@6M9q68G7@6mAcgOnr`Gepwlk4r=PvM>|D}vnwmOBi6qFP!H5>^2wI z1Y{Kat&7!P6*guP`@tfYS}38L=2MeBvqCH)P7oV`C$HbVdn6YV8E`!aWZt|DHbV17 zEMqf(yu_B=&t0bmD~o$9N1lv$s)|pWxLIGj$_x{0$2u`n&eFCExWb3K8%b-~<)#jA z#>39w`97sZc0{-YUmI7tb~#Gczy=3?r6J^t+Gu}{g6Jw)#?tD$v?kx+GIP(=1Mc2d z0&}7q6;aYGYJ3?D{~LBMKXEMbgZ@7i_-OYICdn|w@cPx)C>)`Aqf^i$oDc=DGX&fL z6dn&x9hq`aTyjqyWy*-~k4~vJDC@au?`0%vyK3-Wq@i#$e9^D47WqJz8M$kH81w3= zpJfgq-Oj4>MIa7e8o!?GLvM5I9uzDM@{q2-Z1m0~?KDcA(K@ zxcfChqWagGu~G_*YU`TbJ$OiP-T8IU7&hIm7Dd@PSfs-7Hf6c@E-=h85Uv*rF~khQlqF&J$l* zUmaMwvh+gGd?jl}IYE%BKnBLEW5EE`{TqZ%!9FmKe>^e&%Kbfu@S_-;0G|M{>+f6u z3!fr5dP+03%Ygmv#HCu%koRXg+h19l?uuXMf@-Ey*ZRQ-lXV>Pl3y)~r0aI0bd&L< zRILY9ZUf*?&9P}F9EsGXGc%i8z>alMEtOP8a+OzvsF8e-HgpSk5!^>;Nk#q!n~tn0 zguRioTHZAvmo@a5b0Z(1y@3L;F4KqseSr=oNg8P2AG_|&|J-$(x0~y(?1%e{VD`f8 zAf?+rW=$9~!7TmvV&0_bMhs_h>#*b=&w%^e=CL``=9>-A4I09VB)>Q#e0~`viY-p- zkQ^%f3J`~o^*m@`Kp;&wFVz$J^9k{7SIrh}c&?MUWxT3|q+)}Sc&K>NdE1WlozcqT zZv(1|9&)dJ*ws*Jp!UgM6V*JaNP$nLgj#4e0A{W=eA z#nCJgZ;Ni4G{!tl3|{MVi9u895G(0X0J3ihCmi#pD>kaLTc$PQ*n3~RBbIfn-!X#T z)Y)K;=CYpea9eM%#I6KGaj1pfONO|tXjhhI#Va>&pikA2TACD%UCn1R2_uE+xlfY2Nwm!hi5B5HAW&{^dLo$Q~$quH%$ zmiJ?p@2n>z450Es*7iD!N*7wt=jMxKUl30cq6HsH=vJ(+>Gw;aV*fAouLKIBb*QAk zF>%oOe^^@o%U8J})YAkPzObE3t%4i&<{b5=b<-5ErdZTwNBPM!vtOY_bKB?SaV7R{ zMDqgtF<0|(N~a{8SNsbTRS#;COy*U2gI?RNs%{LZl7a)vgs^IE55lYc;K<#hkpBFi zj)ET>nj14PXGMN504hrn08W4m!Kl_VzN}k7C#63H_!@5r5cC)@x0E4cA3YxBsSvX; z)o>g&dpZ))Svnt3IJ1m+I*vC4`wL7Bz`4Ic&?#n-h|!I89o&SSqnQ8OinvzvE%;cCH}Pi?Qi+V!)z0Ydq7|BLr1ey)?N@p~jYR_u?1>C*~8Iok2fElQNfB zu@+rfyl4WfBesUBq|))lk~(@7!6v|ji4~*Bp8sdnkp@#nzp4DPUDLvc_Rp)qagQxi zixaicDr-_vK(|c8md|6JgDG*hT3S~m0gO4)J$`41PKkw6mXxNj^B(A+fWT8siGXuT z37(IwnCq>8n23%Rj0p>Vs;#STtV`q*j#(8;jt#iLp7x`13XA1#dU#+cakN@*XVtvO zYiCM?9GEh7+){0<^?roCJXOU5{9ejBD9`S|X(+&tz2ln9y0zg@1Pc&BdJ77QiilFB22`2| zp@UQvkq#mq0s)aCEffI(Ayh%S(xi7n5$T}x-b+Fa5aM?`^URDoGtV>cIp=%d^GAM( z0m+?v@4d>ku63=kl106LK=H}l2yrgF2d5jz<4x5ChPeDrvc+E{Nyl(NF!^}FYu6le zjG$|gLn!>;0n1NkR%a0txaG_+Jj*na7EpKA%Zps1zLhe1Dm==ttwMW@g}OBWxT}T*DmKXCdZntt(UNnpJcq@!9X`Hf$bVjBDo#b0c`mthnNd4!>l`(^#ZkI*s z2ky>`=uQG6eAjp)%8?vlp1D*aK4t_>#PMOI>DZ8neXuM6$&2+h+)q00U$GSSWlqGDUr2cAPUuW8u_VO z@7LB#EbIgj!QyprK6ZRG)gRTfpkw=8o2CU;1&r8XL<0-f?k@HgzT$Ba__H0?Y9xgX zcb_-vSqaGH_fENK1dU0UU8od&kfu)PV9!0qN7qEa;qvxIgLBWWOP@0FRw07wZFZf( zu`~mlC)64)f5yCY&1BB)TFJ+JaLioG%p5SV1GKusM~pMkEOj;OvFJ>B&fg`pvni>RzbiNFHn`mbNO+n0gST=~WUfzKbsBc#6&)jW_XOW_%R6&L z;RB|mnd4s%Iv*JJ55EYx$930ii%jRSXzK>razR4KLAW6G<}h8co>V~l2#rrhgp8=E zaYdYHz4(h|>Ac$0=Gc{kW9!jZLTScsYq*C*ONNPWh4DmS3j8FD)0URf#;pdeGHyk% z=r!G)Q~cEZ@me+P#zS!rkSdNAF&$X7+Yi)=WzmY5I-(i7KoA8{7V?Nm(ikJ}TO~W$ zy1}cy2P-eM7&cGYj~)$YxN@j64w@usU4dbY{ouEzCaA6A{V;u8!8)ied&;JSRPn?Q zWY;S->WFJxq*ALJ;`tCU?AXk&R4 zsY&rKs=5w>`Q;1h#PrL_4A!RApKc_R1C1WvW=;_;Am|aER#TP0%^d2?ZJhHNN(0X~ zR5w(qe1T30e@yGBLeF@miQvzb8nL_=tr;pX zDGBw6rZ{or3)qs;OYU$nl_;}JeF_+wQa$1Ro^G9SPeSU?zXN`clWKk(tv!iDKRNHN1j?J5qIlSq5 z-WGPiSoVN^1|3g$h}}T(ZRb())z|P9;tJm4I%j&=d2mvn20J`1J_4fT^-VWurO{ZY zqn9X#w>GqRMR||XBwM%jLQz$q?X_Cc5c}v>_C%s&s$i|+XMomDby4}r`$^8FwxE83Zo-7X zhbI9rKQ%RnK!pK^;DyW`Pe>@50`-mM){p+j_19!|XS2AUe^P86l~cJsn2+bj(3b%A z|8_-Df@X2`8PV7JS4^o*FO$K?RgSCSfk9T_AH)=qr{T3gne=+g+NCX^J(RZ#cXIF_ z$PQeV)TytzQiCgbg98+cWoy1E7MoSQ6i=ZcRy;lVP5)!@A_;UVZ*Row8vLeJQ9^T~ zNwACBN%2hf&(wsM6T{*J#dQ?G^VbD>k2Oo)P8<6V=eV}PO(u`jDMfU@Wwi}4&%8jQ zb==`(a-ww-%y0iu0xQj4AZups%urz)O_!gN-I;B`JzgHe6;f78ON8$#&tnE{qK0Yo z0}0HR>-0M!3FlFe(Z&dXi=emNDeP)noFg9WS#!IP6J7SEH#x+M&e*tn6|R&rw#5AM zv6BAF;Yrrh?*8QONQtGQJN~PD4d>=2CsOQ(j~ zt5IVk{tn`KYLTF}W(Rk(XA-xjpbS>SEj|u!jD}Ynj#525HZjF^9 z%FwK-l9T&x`px)`vc|6pcAYY4n|?6u>E(J=NMTBNw{Ya`>EW}7BQD>Bw$QBhK3X=8 zU5raoyhD6fhUBYyc9YBV^d(f5Mc%ZvXOuzzehkeqNbxig*c{^fh)R)HOl0zw5)h@roEKB z{n>ToOB$kw&TqL%B6r?w<+SN0UUAIR(zaS%mSz5%ii zniV}O_^qlwxOj%%sB6^f%2A3ZcWe0V>)xwmhULaD-6uDl9)w^j{=9~9QaoitdFVNp$(uO*2FRdBb&w%}yV^XGX zNN7xX+BmLxYTe#c$WVWLstnOi)hkbW-*DpzqL;t`;AcQIbU19Tb zeoCq)aZ7U_+E7nuRB`+S9`Ox2(F$zk)PlQt??SKAF#eIh?=It^pD zD&HiMrJQI~O~-=lDvD!aB7@r-&N6Lx$~C9SJt?{3cHuV$ioKoFS#ybH1cd6v|7TU zTjx#4goOFObuBpy<$<28+Y53b9l%U6N6;EtAgvQ^m|Vx(hBQN@)J8vou1*081&|cTe)_7btj$B zk0SW5yI{Vo>+jlQZ=hUa3XKB=j=DIxA((SJBXAlB*4z>LO|-6OQ`^5b^)t|~ zLtmD@)Z?ZdQz6uQE-Dh?I2-8^smMJ#1i?f|=rc4NU0mWzhgtExHeq<9Fh08f>G(bo z4MhmhCOjLmolJ(i(6@>x<_=9OR=v_$(RQH+9X~IE-+XjrF>xFOaP5KOGIBrYm*FoH zzIb5X%w%=ERg_2evOoeb{6)FO>h&ZMF#P3-WTzXV@%fN^lW}05d8F<;Wz83P1tOQ* zDT*coRPRLi;~6$Ulu z3b85$(~?FWo!8Rj1vm9mk7T2bY0vhD{^`TpWu)I*Kb9y6E?=Ed(t++RROfYP~&NSN73Gd^TU8m}x=I6ppnM$6>MA!Q#{hjCooMQ> z&QJ1ohO>JU3XI96DihAjf%6Qk_c96^URm6#u8!x3eEj_8$Sp`EBMb-<2G3n#%SjdYj&8RQTgV4g8cO$Qk<;;uw)G@Y#&a4ax zI>Lx?6LL6vkEvT8sRn4Fs@=k8n{wywDPEZ?r9sbIU!|o0#vc`6WVO7g&7Xr#u{={) zhwqbb=j+tj8(10B)Nr&ot;s7_Dc@Qj4pfZcGL!9!V|jh??^;Hx@;O*UEs))&jzfJE2mHJAicXu>*0U*JecW5+PwafI=3J zy8kA4*s39Q7h`z$;8DoEht%1jvCzx;ifE?Us4k=EHK93obR&XRc_xvi*&PvR^SIyU z;dKK=j}ymV$>iVg=5Gnq|Ije? zLAyYkxk}8Z92?LDi`@CJYhvpcrH`!c1c87_GCI^S%!rCY>)5FdR&Qs!>k0eUprI~w z^Ly{g8jyhu=bU(^l-*6PsQYXVe{z4j4LQ6Dt+47Di0(0DPn+`wrb!+c7i%CUQzME$;`u$RV}Yz^RC z7;>`&$z4ao;*gW}_r}j)9#^NYu%AN#y+$z=D@C2VRxd=F6dg8w8Oe_xu*u3!8I$5_ z8^)dEtO|6mhHb{teLS{curmy9KT)@=>!Etg&d(ByL!;kS5f=Dkpgj8j>gnKho~5}kB6d!tbP78orT3*-qBS~M0nPhGrwg2YgP zsXu@;YVJN{oLzKD)iryu4dc_S@v<=jA%S5$Kd0r935WdQVNu+vHi*Ym=lB`R4Z$6U=Z?v-8`#Y6;w%j{_dh zMd0h~t92bpC(C%{40okkZcH;K4Uo*z+~QIdd`X9E&HrA{{ga zdLQLEZcvuI>&oOzNj{}F(TJ;(e^lyT7ATaE;1sTq<@M>qeITqn{w=J`=$(2ta;K!U z^mP{n^%WkTYY#`rMk8-T31TDx!Uz#813}5<`B%_d7vQvvsy&2yA$oOzE8`bMAF;d5H_bccO-kz@KD@f6z zUKx$zWqawxc_UE_Cd)2@xDW| zSQK5m38VE>D$uN1@=Q>yDrPrh+Ku-imZ&H|rR?S1LFceuw{~2 zXtU@F6KAteI-nYgBzRJBGYtetSf=a>;B z%5a99*FYT{lFrTlP`xHnkRW?!azEq~XjGZK65e(Bn=Zn?) zkAtO7VV(;M6nfrt7GZdACK~-NB54vtUUOnYn$7b&?)0%gk+qGqCO7u^q{M;Iufjk% zkXV&GdyxBkEM0r-r-}2R`*2o(Ir-g0c>}&5(RNLuIVgmBsD4;$O1)dpvb*CNWNdf_ z8b^Z7PZd!#xyO0GwT{1VQD#Hmh_gFS0*xHu=fGMI){m283OF$;l`hGa zl#{SCC~l3S{VQ+m%AFW6Yfu#+wITDCr1@?_EfvWOd)(Eu$rI^*N-UzibKWb(#OVa0 zBAj++qm2r$#uOnOTgXdFJS;PIPs#vNM}iyD_{rDl5HU0!!5Z~m@6}KYq?Y(QR2WL_ zoT`JpV?{1(0J8*ildeIrx2*tf1=R<@RViz#PoNpB<_wL^OOJbPm)a`|qA+YYHJmSO zKtkLe^4xCQlTnsyucwW5h@r3W@zqK_x%;{I-i`Rwu@VJ=QZTUu#juF4Ae-84he3b_ ztBW_ql5<_L$XbZcGZsOPDd8V(EAuNPFS&yg!{7=>LiZ4nLxi)++pZm z@96TfHUB=J*g}4{m#PZ6dgJh$|LnnNiC|L!cmP{G4PE7eZa><#f_rt>u%cOthq`Jz z?DdRJVafs}#HV>(RI8aEg)i^1dj#5Y@lubjc~jgMnE+&49%oG1(HP>D3bC4s8ON`r zT;rm2;xJQZrGZ6zBV1hOZ954gM7K1thILu2*L+@qm*b-km4@R7mr+9DiQ2K6isVgWItK#cGnV-ebk#wp5RlWve zqe=J^a!yHdR@GyWkeKc+%>4R2;@D^A=^;rU4fr6w%y~2ZiG*WCV~<9K660cB3=gM2 zAy^0JQ>NCGnl|;Cr%BAH674R=<*u=%Z;d*RujXtb*L}KxS&qZ(CDV3bSn5*n16C21 zQ=RtWZ-4b*%c5Ncv_$jqE{z=sYB)#Vj-=R_Tp1+s!W7Vw4!Se*fK9;r`nu#ww-l3W zMPHLUsATg&Nx!wXQm|_`hh$lHnD-tVa!N;nB-P4@3A4?7^-U?5u4apMu&?q=dB^=6 z4gz*T>a{ji8D>x07ftPoYS3}kj*`-wXNfVDHyK)g+iE)#=Eh#fTuWaErEr3WC8JLf5c5sI{iZPlap`9y1fOWq*;f2gp~45HS8I& z^g9Nx1Sd)<1PEBs>%9}+@5hpVpc~6Gt|gnM2iW!XKcgZaCe9%_4RWu z5Q8L6t*_d_2+||Pt!qA5_+`05Y?$<;nxR~StVZkD^Oa99uEQaXl;xz0!KzUT*kk#x z_wsCq=!=H$bkL^U(~5q7Lj6?1jg7t_(1H{rq7{oJAvACTq2~_#gC`J1J+^Rn`% z=Qp@eJidpGE4|(q7ZICJYQAxNEP;;Zou!?6OE0RS6zrjEX5(H3T-~7VYut+ zTJ5!*lonxFlCE*fg4KnAZ2G>G+a14AFW=;CNLL;R_JjL%sRxP@1&p{uHNgL#uL6|CH znPTRFte*G0U6q%wx1@J6Rs463inuBVh#!pLEq!t=DhA|G(w&Pln4={76;E1^c2l6^kJU z3*3ZI_X%KZc=E|1+dcUaH2p+nIHp%Tu%{;L&;Rj|IG#XA6v|-oEZkZKl~U_ zp=+((KL2fZ{;;$_SBW{WF#qI+9M88&sVa^ioFWbX7|I&x&L8m%%4wvJ@tU_edDz5G zR2?2y92^tVU#3&$@EU0yKC#!^2k zJbadxmTxSRc~T87pBmB4w|T6X9DR!`@M$jiiPhVhcP0I~kKb39g-s8eUgA=}s^zmP z>spgGg`~z`u828o?CH#P)%sjD>~{W5$qvu5BtT!rYZ5KK)aLfb-%G<~e+1O0ELX`M z`Fx0k?!_K#@8wnezH?`4r?hZ91aFJ4AjBNN0Rkl8{d6V^4u~?3zJg+bev15-AW&CN zv7|`jAmm|ho?l7n<{^my9R0S9Yd7!Y#XrjI-|vw3c$sNRXrtKeim;4p3Q>M)d+E0A zY2`x5X%uA1i^bmbwC63IaKE62k@=_SWNS0Kt!+96KLV>|(%FG2EVPL@@(xNUDO@y& zsGouD#O}gqk~h%=C0rnDrD6pygS~P=bj~ndD-F?6#f>ARpFzHrY>~7Lx(G`B^Mj-v zD9Fnny}7Wq8w%cP1QRY)Yggsye0wj$k! z+pM4zRgh^mJx>j-9`*TM&zeVX+!&k(PTrs(mp$T9f9^RmSOYR)2o^QTN6ci*E?FwLs(B8BNr$uMw%mWn|($abXTl z9S^P2&U3py!9+!+-!_T5UTKfk+hK7|%uBU;H52wUxiv!6Nqe2-^a*wxL`EIBitn>V z;5DsKA_ELd6(tp$J#s4H((Zl)Jx`?-87t5QM)?$hdE*5^bXP(Mq@7p-apaE?s)hsAdxSRAqn!6P>r|7WQf%Xn9Q3IkO4(ACtt5pQhk>j860l@p#@u-&C;8 z8&#xz=B6^pMs@08<>kM;=-G=EQX!Z}0}KW~KhZIuqqJn~L?t-^zhy zTUJ~)81E|k__FKV`f!Rok@q4f8~W4z2G+nKi4C|taBe4|!GMgs^gixb&J%{4<)5S; zOExK+ntPLM4A)#=OqF_6itX!O$N zE~rAM``FW3YWNk22a}<U!M4)7N{J^ zR#NU&HO+93hCtp5efjw}BSu-*?=9xxib(Mv8xsenm5e(OflkZ+HCCP553+;Wj9DghZh&TV)`*$j5lVl$wh zkHP0jW9p@iH9&0HnQ2eS%GG-9VQE?D!)LVAXy%Y(s@Fif&6?fYlH!f=cbSc%tz&k> zLoV~FdqjFfjmCHX+2I2*44C&Q`E*$$|4gn+VJ+b~G|wHba{dJu8`CW>rv(Jt*)6Fv z%XVKu5*a?gRO`#g6~mSnBEy1gVh@0niuWO+QzrS;_P;zY?Qb6V*iLj!M&{_}G4%Y1 zK~r}p6PK+V>9y8{aM+!sAkY+a>MmXiP!e#4;!h+1RymD8+ts*nz+eJUqvC3D73+)1 zC*4(|O;VPgSX5XOpAvT(p_K`?Vd_#>Tvj&tH)+VTgZ2sazIAKcnJt_Ahvtt%B1Jff z86P>ca%b586NhM=zN9V29!r++rjDbi%<$c9#?qeGJ6uWW1MR>1mt53ooS8h(Qp*-r z_UP(b+RMA|Voe*prA5`ja?nI8HECAvAMK&zB7q7=#-y%`mt?NEW(qY=cqWEma}oSy z!;r@UBA`jvu{uH9lInFp46_&u^vNa7t8XT@etGiC{AX5Tk1eB!`+L3j?LX0NlVm(zl+%mlrWr%E2d<%h^Tie1j;{~JXeP(h_lnEvPHQu z8+t}33WtgjR9}|FM)h0{D65nLaYCBIfw}#PYLhM z`GXA^MO#}_i#Oq;cSOW#bSH&H0UfU1zgW$D-^QfV-SG2tO?vc6r4~=>Gl=Cqo6I1t zC=GqbzdR_U4(+8FMS<5`mWIeerh@A@k~0O3E+6bW2k?EKUVv!fYRLdxZh$NlvtnG$ zTjH0{63{bhZ9L#7gDF!IlW*iD{t{~?RG1h5Z@ml9>n1dbhW=Fw{@w6vG7M@T#Go8Z zTp$TH4rgu&K8h%3Jl)8dBqMp*{V&2=Bu)bgu3a<)ECKOjAWc}QO!dCBB&HP>kWv3; zsqpxfwIORYGTve{Nk#6rLQnr3hW{3N5T9D%@l=A9zpF%cmX^OriRV`s4LSZGqKhLb z8c5N93UR(Unm@%ohF(z_x{K}x%(e-jXP?HLn@>L+k#p#ebdS>cH65Y&x4Y88_|IX; zlO8-9hJru+9nM|I@qW8kj|izFL2TXp*RbX!&@m=ai3W5ikwH~DDa$eBx1LSh{;;+7 ze2+i&<+@yl4?WOhJ$Ys#emj`FCbC_)|9;uC#Ra(YmSC3X3`Ki7Hmni5qHUf`#XW5n zP$e_HLD89PK65whRGz=Z`a;A#=MVSkv>2V#+MogMy%=Tx>NK2lm*U`bUv0O|OqstG zPXOZD#gQ$Zb8CRC-U1+K@`rytZF~mx3Zmh8GWmFvd{4|DZTSb=|x}qVS%LdsQ&nJ*{rla>1HdysW?0{1(LbeK6-V56-gR$(5F8UGI+j?m7R1q98nW<~Yv)4#ANPtC z*3<=d^=%$!N|5epiDPBZr|28&I`@9kTd5t;{S|q9Xi|qEdWA*JBkgUo`0gjLiX5wD4 z)|lWEmcVKk`K?Kh@Z)$(bYr3efrc+&_-blbg?1VB9gny(vk$#86!BJ>rW6^v#K-H& ztKH-q1^1X{AYEJ1u5YsHl(HVQ82+9coH6n6yaTmnpD1y=q=LCx9a@M3!f%F?J)UqPg| z0RH?(Po+bh^G9V5u&|~ai!3W)cX_`n=~P&Qv2+2W!llhfDroFbX60u~0z}E&ruaxn zdGnlf1o~J5ofZiQ1ik|rOpTA^3a${*G1d~LUH(0k`VAE1X)lJx?nYs+5eN}yyo?mS zVO4!zuwi4}ub?;a0KsHY4FL>f%lj#f{g&3U#uQ;X>Ir8DG6#eV>8{$Djm+OMi*T_~ zP4ljE1ZhG3!WxTqQQ^RiQfDgSS8nwV_F6=BL_E*mH&}oOuuoTr{S8j@4YMi#w@F)m z>0h|CJmkOqtY0=|{?C>Mh+_U^eU`StR7+Bf01bQFO2*2ns%@wlwtoqHrH#5J#&f?3>+u@a(Z&`;556@rlH*e#7dhM*gyu>qi&F#Mc zl^}oiyBfWYIc#7hU**30r|*sAe@>;)H~-`w2~)S6`&SNO@DFVE2ykE~o>>d6K^jZl zRm$iS3BGo0RRZ@6#P@yVCgScf*nz$c^vjR@E-d+}sKEnN1gd}v$N2>`Vy9)|D@ghd zXh-j-#B$`P%rlwd2Mm2Z$L~kjJb(F@-6D}Wor%9w7Su3~jmo2h8(j0l!;<}nVUw(=hRRT|x}k}5Ux^^6%~-JmmeA{aWKMka%~U+Z z6*US=@nOcsL%puEu52oh>2X7x&>x_$S~v7HRmlT!&?bgq`Ybqjx^d1jW`Z}d0}{E; zH&rjGBIdrmOzBRiG-F4+WOSp~FYn-0{=@ye0!~PkPj$6?*2d}+`8b(r8;_}-Rd=X#gwag1=mQ4AD&qNDvNAZo#U8rpF-bMVd3*zR>wzJAG`oUkxcGty}wLx61ZN_+Hi$s1@V7GgTU(ML_k0F zMDy0?4u${;3IC0z*sq{U|BL&ZLQA7|(={g- z`@Z0Wm4U8y-mH}}N>71^Hg%PWt{4C;8UTlg@UO(yKrnPs5yAzI@5gMG!_R(#mCD#1 zni*x-*wJO=YIk#lF{;WlQvn?X;CAoxe-jXpL=Ji}xk8)7iVxo8q-J!k9>Ux1ZeCr> zrhURl<$V&s!+%73zX8djQxiluvj!IpLvwe%VP$@|r`MtzvO8I=c{oP8K`LIOk3yI!H@yf!Xz5{0W1*IQI{qdseA{IMdRa3iq65(I_OlGqhzcGGPd{f_gq zpPmUi4J(`s{V<8T>oEvxgn?b78l>3Dx`iBjfeBSKjQPA*ADIDC9lfE9Z1>8?meB6& z7n6_kF)v-2vtmq%nFWufZ@%hAIiGCulB?>ftD(SV`blWyTgIBmln3aSpBYWpap1Y_ zQb`jROwMld#6C%sZuz@>4;beAZ(O{N{-5#bL399|dQRvi<&be_xt^VT%7#^j{!_Btqpa#v=lYgG2c=OZ9^lhbTfvx_v)~wNyQx?rWMj zo_^_y!%7mE^kp2`<04}@b`)--Vu5bGKP2U44oEZPv^z6s(h+vr!sy(426wGl7i#Q> zOZ(vm{5#|;dQM$9~#6|BQ}9G^t*gZJ6hMSdhT{?lJ`)I z5>Vh$7PK{RFIwVTQX`XA+#uSW4 z>KsqQ3N=pPHT%*l30;^0zxmoMc6xDzk^2Xw0>~%F_mZi$!;>SWNg|b>xKA|QvIjIW zCP!}NS@FXwQ|B2yzf`b#+An)(??*Gjz73f6C1 z)yaaq+D)cP4caOP2JnE%uOnN$m?J&3zJgxGyb?)a&lLls?RqPe!2r`3ds;2ivQPpj z0bSt|=K_=$^hpU!$yCq2FN%Km8Z26lk$>TcptEFN@Ds9KS-~RAGY^p4{@0?TS}73XHyj)S_=nHgZU3i+&Eeq17eXCaE~XT>KMoWwIi5xw}g0 z`EqWmbpfovmC#y(cl2_}&vL>*#`Y84 z)aFMz>OYZoVAsM16K+Wn1B8oN;{%$Z?4fA*!>^$5F7Mh^Q3k^ElI7w*OvX=__%FNu zfAaHx;sb!#lBr?>@5X)P2x;w+EBgv!R|Fam$TtO5$-Yfh`nlZtzv~{tI{g|73;!@$c&VyirPiYVY|KQTQi!1f;F=!jZ-9 zjO$Z?2v-TIs0@6wYG&f3%|7XkI5_~=*pbQkY6tt|F;^2UaVG@0-R8Wyn|b}&<2xkB zyu96q(uX48(xG^AEXf_5k9p|ssnjb@&t(Q+V{lIpUd_{LFf~SWTJfQi>)0)xORe|a zNL5J|zYFEJy6E8NdUiS*vzN|vq*zI>GiV!ME^>cQ;dTF+$9y?c383f1a^1DywvCPo zY(L1N@rJRs0peP1s0UDens;XitrDLWGG1L%CyT3{dmiv84qz*8A}E3uFP8<@(7K8@ zyM`{Xr-U3%-DYSaP=l3D@Mw zNt6B>Zrt;=Uif(`ZjRw2cjPbT{SQ2sN(!9Jq6=ISLvAP4;T4TD}o+<~-JTN?6S+fEC zW%%q7rF-6AhH!reK>yFbZ?G2zSAsl;v%IyUkWZkHy{~~+FFOw9Ke0>ZeFH&>!rdWA zSRG7E6m{pdB-&1FcSo{7kO})iJMmLe)ULKLpyJg%Mt10x+_F1cHa?20lbX7@Fd;Pd zCmj4YJpBLpv+hsw`1(#i8qa>BpEU6e2cFb^ub@BnQ+)6*H0L)6`R|_p2R@hlKiS8B zZ6`NUDAu+{Sb}@c9TLh)h&cM&XA54w}>)VIQeLi~AR$ot3 zaNn~*kVLkQuA_}0NM8FZ#mgsts?&DK`pCuGF8oYVIGxBvln@{gqhi_ z6}=K?R+9@g{(UoH1#v54&BzAoFU5fat@mUCjWcPo#`{jMrsvOZYfSV3&D#|`!;8sa zww{`ci_9S{U8)w2HZm$hrM1R<juIs5wlccdjhAHd)KM=h zyU`j_YFHB_3XOhx9oNw;#cx9HQzdz^jN4*>ucbA1lqz70`zU_380_ms)t$~jqg$Hk z@;YvZY)et9(raT0<-QR?FZfLr{~9d?=pxBSxFqIjJJ0N(grO&Qpp)$f)X{CTZtf?N zxUZl`I+>TVFKQ71%En{>+vRT$05E>R9b62*G}On`bonc2?_Wf3< zuuY9ujoy43Al$WE5a7ibND-B(Qs?oU3voFGlRC3zds}{-c2EzZfL`FBn;J%#9DI z?N5i}GN+JC+-+vAh$11f#cN(GkUF3iVBPFK@N|M&f?q;^(nd*1lk%y_mQ8hrk}c}|;tpsyHT-nlX&Leq+J9wdcVo;aL)xyqV5Z7l1wld`hGUWV zOBp1)c~83wm&0r0Cn6tvi{0V*gl-ziv-l`=8dI8?Q{%k9nq+XtQ*mKuM0*;CnAu>s zkIOL%mM=t9KX|h_>!NLo$^lz~il(7~!@_>o-jz;dTjo2B?SGe^TdiO(+hcF-Nzz8j;>3@ieu{_FIqrefMXQ zJo6L55He#qffWLi4@!A%{Yt-S-qAfzjS-wzB1qyMmurHfZR>dU6RXi$vtV9*)uDnN zi;eY9C<|~Tr-g2MBvkT5eH|&`T-6nd*Hk6jI)2-*7seFDH>gmVx+{8*>I_D8x!df| zybrBoeH7sh4bGI2W?zwYTL>WVyPD{rR>h(^QkL&HSC^*N=u$4SV)rKxb&}I^1M@?e z7$5P!ekN&7)c+m$K{uyL*w}rABE*{m{`{sf=3C(vwTCEfE;|zJ?jk&&n387C`MVJ0 z|Iz#8QE>HQR6`P1uN3FfI|0v#!6D61=v*$vlM{Gs)M#dgdvxL`v)@aGnD@D*TP^RK z&uyDN2uE<KXGC!_k3ipw0mgY2XOs8`6;7dBN(8S$pxX4u$%JTL|@5ytIu~oufv2u0Qy?I zyUBBZv(8#pho>af+x5i{>(C7+v2;w>OS57XfC5DgzUxiCOy?4@f*dSZxzWDOEni zD6XDZ!p(jK74wKeUbryx_UgJ$+^p=ms#y2oxDmNzE2o5~h^N)aa`js1n>5Savcba9 zkq?csf)562lCjdPUWqvt!_~E@Ok@4A=CPD;VW|&`UL{Y<*Ni6v0z(SvucuLBT zCvk0Y9?W_}HS~m`bZ{0=Zy_h2F3jldC1g{GS259-o_mAwgitt9@j$Lw7wqyB%RY0@ z%6Fbtizm-a>0Q_G4v#q8Y0FF#J#S9DM%Ow4hhd!jZ>>COZ!D=OF2`$99}J0ewt`RL6+2)L1^B?SoQ3_cnp&YPk66ncf;+T*%W3 zWB;{;O6n`0@gfueA5G|OCY-9*XwD9V!zay4`BUVF^2?+Bq9`Dk6+wJNad**4Zi<&L3}g;HUo$fM(jK|7%W z3Vn|HG8P%1N4|_8_svKjka?l09|DjCCUr!EJ~V-5m)&=6_;V<^Tpqv z0(qxUrf&q*7;X?)Pj9Or#ON$a8B^@eo)9~*vm_f`acRNoz9>G>7{^codW08{!v=)G zZ_OO~T^Mb(7OZPbR|+X)doN75GO*$lIt2sQPuZPXI^eB23CwtUO=0KIAu`>BYAOBe za{3=A!Jm1D|3CcfpK+iI$PsOB*oh;101oV?`PMn}V|O3`_WyQm$=-6{bHKR`z%n$z z$X!F@EsC4pS8ziu-bpDf43W%nkNO(q)>2g=rn(XujjkZoOO0aUQ@4=PqhCQn1rGtZ zNfvK2y+%HVmG`lWVAvR4`UeIm>BDFdQj$(s`{le!xOO`1gBxISn`fZ5XgxRC0w00V%9Z~`w+diPK}7mtwaT~)0A|@ zO`jq|<2PeJ0w3id&32xy!2o|B^N8t7R);8CYANFA)yaGmo$OZ--UpabM0q>OkGBv! zU77VQzdPnM@gg3D_l1*|dT(1DhF{+yP02Ym#TTqsAmUCyrZ6<0TJm53W|t;QbeQ#M7kJ7kq#mtO+cg=YA6aw6;Mz>LKP4K(tGcs z(u;Hwq?d#mAjJ1LyYpSgadu{BXLslGd*`p5lauu>~zx#BE_K^8jfkH=&>^=91`^Dz{4E@q3-4vWk#ihp=X*UQ04pXQ4jI ze6C0f0IX=PXTn-I`i;|P1`TtWpJmMUMdz*!*&l2HPw@x$kPjjmHHPbzttB9&f`XUb zFa@5RSy{FME$GKd?LWVV>o>Vr z#NMB~{26qA5wf0%AJx-GWt8|KHaTFQfNbmckd$j`4pgxDSE2CDVaW826ND3wY!9Gy zyOV$+^#mm%%l1_3tUZCT?#RbgDY-lL0P}yK706Ed>S)1O+*$WITQOcyvcLd}v3K@( zNxtQ8XT(-Ks3-G~4-@t!Ak?EOU^|n=D;Zi1D28>Y=$L<=TzrVzJ?2%~JTJ*P{s1Eg z=~l0zSyhLllk_DkQ{%N3`|TbA3D&<(=d>JfA*E%^m0fHldUYg>Tn{Zd7vv=B} z?xOFN%aIhEU5)(K)agxByH4K?J)^sy>A?0AVGGLEWWs|`v57D`>UH3m*U2D=)h__!e}Qd(fo*^S$T#+@|Br%gz~n>mGRLCGle;6w zF=%bX#)%=MQmfOy`uRNd4-)kKRv>s>sH5&7h^#C2q1JHVIyjjlGoYTad zFN{uS7=6J>AWvhG{6r9Ev}I>A2EY8o<1xGrh`?vEcBysq2}k_RGY3?v2ItNmgW`G- zB@*D_n~#2mpfFw8QR#NN^fBFXBicInHkRp$X97^wLm602R2rAQ6ct?`)tS3&+fE0k z;<`yQ26Bh$SH5h*+#U(3>;T*@pY~^T%0juZMvwZc4&fI!@}wNF{73zK-7=bbI=OLFuG*f8F0B}xo1>3! zN==@J!U}sFk3YI=%XmLanbC47h3+AAKjwi#I4h?-KMfPWrd1`l+_dwlIxEtYP2S&k zXRF6_*Uw~ZmQ=HJ!<2H+;+4W_hq}m1^E~%YnmS3)K)8H|uh0A+q4vi}`kO}}QkO&} z&p=^4{(90@%)A{oCZrw!;f{58F4#fTVJ^xF+r08KBDn*TvcXi?gWbd=ZNq7}MNz2! zXHZ4LXOJ$a{C||y_yNc=l*1-@a=YJrgO5}43`z`l$q3&xjV7AFpBoVwx3$a(j7?{W z{B;gv+0bpHVIBFN3QTwCxD)*HgV$(k5{&nel(1>_@pX&}xi?*PTA*U(F#0aKp%?>l zUi&KR^AE(~_tmZZ(eG#aDPq=J{4KU6%L4leVx~p?Q=4gn-k%NH-|`#(i0^gLY7*L_ zAySj;!%;J8hM9)nvQ_?uTpCIOY7vboC#bvb_Qaco=J!V~@JWjE8fUDjRxflP3d zA#))h!JH#%oh1}k8hF{Xk!vSQ#y=;W=RpGP9RG(ZMr6{wMpw4GIOdbsB5l?C3#C)a z%?HW5XAr@inamJvud3Up{QW#Jj(2?0^S(M&xi5;UKJhn&0I+ZgxKmii6;v)+b=XN*;f@ifY~rlajZee;hzI?a3uk;1lm{77zBWqPpEu zn`aWp04wM!_}Tmz1?jlc#C)s`Tgyi)y$5plS6cvkoEerwirpRKZarfM#4s{TT^@AH zN_kx*wN%)tB^FE_2k1x*qo>Oocwo~o?33^4U0e$xFF6*ES-#;TX#ZsDtp2COE?Lgr-@smj zDx?5&83iG4RmCn+iEv@})zD7HJz>?b%P;F;i^p9T?-?B-35f@|bJ?!#wq?!=Z48Mc zDxZCN>LJ^*sfnqkL?*#lh!^X1!Ym?g3|)YXKSLUCtw;wX&;@?edH369E!riVF&L7! zXPD<`;Y5sEhxU-^iHw@JSBRdY%X z@n~W@Zb*nhr)+Rg=}bHh!SIRa-u-i{D?aw&KGJ7n)=!;GpfRFHs>u=5t0OU%&YQOY zmILE600XSw zJYYtktk-hAl(NWNG-p=qFyDl_*gG>QQ<*~a=`gTl3#nX?9%QC19tcg?VJmg8v2(HA z*u1JBb%;jleuA0tjNEvC+&paWnu;A=@~lP_szLjFBnC)t5FO2=Xfkm#$Kw5+dlVd~24!LjpD?hLQkXCh(z*!mT8vPl%*Rc^d`&%> za=t=s{=QzASjjNpr!bM}78h*VV7Q2n)TlA-_jiHL?&gM9s}XtwgBK3hwc7M;N_~G)K(0rW^{uP{Y7cEi}h>9H^g%MWKMJz z2*_)MVHGoZ2NqLGRtC9O7c>UiUo_eGGcAh!G{Wtnn3SQ#^9D*8P4Lq?BLZAga|U~3 zTeaKn)<4@Bz15CT9fj=^(?OOIgL2+h1-`4^k;wM{N&R#AYtV{4p7ByF8BUVNQs<5s zev*ajXONxJ%<%Xsbrz#`VoW}RwfYVgbvQx@3eZ1{4d(Pb@u0(%{ zRW|9q#T_`gP4@+1ud5O=JJqO7Uo-9_u`fyj%6CM0B)rEbD~$?v)q-+)kiWGGY*i)F zyQY#xpbC+BdYGC&$a`m&&Sg4NsB~HyqPrgRlaT5_P3x?o`~-|x0zV=KXRclr4Pica z!F15hwM_^q*A@T{c5+2qDkqgc({!^Og=|)E`PVZ)IWGB}_*^2OC zkFp%~?lRcHmU$?5P5q$wVsIN;rC#4o*&lGuaZHaiVK zk~63I1yNpAl(CYhvjJLb_Jb>^wbT8tt^w<^Cx~bd$Mx$H_7*3E&YlHQ!q*WslVN1( z3QO$CN;nGr3E+R8q-=%MV$9$@B<236&NT1FcBEnWG?Jpsa>ILlR3#&9H{-{J8_pC~ zPLRAtvN`Y>G+2PDOC(6_j4?VP>Husr(-072Z~>%LM%;IoAG>~BAIySpq@E=5Iq{O* z0qR+U#x|K4Hq}&V1?+F^@i4VWvW)vRtb_-u>nTc1>@+I>Gsvg6`0{pY>w46T!`4Ya zf6Ys31L6aRjMrXZS5S)OCr zfkvCzg~qFwoq!+Jn)#+I=$D%RzegDOr8LSOOy3J*4|L(ckiL0N?4jyarVuAQAX%{a zVzuIIN`&jP0tNVUP`?t8&5nlc^MnmY=+$>-NaISL!DWeAt>it(Lq?^RE|6V^GJsB! zc&G9L(8#`caQ$PTLSnE#KwvlG$J;+}oh(f<$DXWS9Ebh=_9JRv>cD&46$yJFiq3Ys zaT=&PG=U!24~m5~orCXaRN4Zc1}6e?`mhIB=U37qcM;^?WHJ+TVAv?}WrpXG6x5>b zI*^!ag-;-e!NBd0X`Wz*>}JRk#j@br%K_Uv5QRHNyYWAKkTG7`6hOPe*oc8fMq{|G zsW=%53&>{>?80V%`8uuRb2#ynYbC&*rzh>fiz*4rdBAra%edj2ElkPaT08%ZNrs8_ z`;x5=BA$;327u_?yFtB>$Zb@te@?U+S~J(HVf+dCh7M}z4?Fj zJmt6L@jx{CEjhsJtkgddFqua+8Le<5eaW@O@NK@#pGu#2NxuFat^Ob3x&BNF?i+6ca+gW=NXj&{_lU1RJ0N(OGBPZ8`jGCZ0-p+frm_B^GZvIfxT`?u$ODaS8s;mEHxM%j60m+n+)EteF8q$rULIti+(Yj7hmd56tT=Vmryrp-B>Y zfhp%!wp|mM_6?!hKegKq{y>f9p1?kiA{CX~eyx}H(#|4+B0V;b0;?*hD6&Td2KVF7#(OnWxdKZ;`DQ0BuKDR8Y z*LQwSGLG)OECbT;fF~bumt^9>4hXs&VsQ-MVL8+S5oTDg-Cl&%Sr5#`N2cn`#HeS# zNUJ+qP!tSk7}U6KNA|=|_P+f|-1}o+{j)ss|5UKaHusw;&g;zAB2DvU+05T=X@1W? z`S-u|*JiP=V)=n%D=QgCn5;^xTDCookBHEKa$UbE=jnGhGR^?hM*V`4SdWSZATJ!q}{#h2H zwf2*?RDETn-$j>TbT;_Q{AQyJ<0IZa$21>S9tNdjEfM?@ zR9@#ITR~(^?+3;%#zN0rETs$3!!g4CE20#el}wQn*0>C!l43QlfP)E5noO2gOyB?I zA|RXu=V%vvTcdfiE*0&G5a(K_%>COm==Il<_Z=1x$sDdl&tB_TyBZXwrd`P&)aOD@ z8sfGYIzpSW5L8-cRHz6kZ(340Im~o`W_-YeyDHsWYjh;YGDbxTlBxbYMZ)gQWjC1J z)IQgY7H~nQy3!Y)8Z*aRtUv`2IC0<0pQi`Dp1)iW_3$;=<7x)S?xy*kGCA^=GaM*9 z&eVE3fNIFui0nNkbs{r`C&4vuQJ;LR5ae3;^}GM8$6D+J_GSj6$i;mlGM!n5#gS=) z-X#_OAp>)=E!z=bSJ0HqajVUEe!||IdXGJ~^M-F5=uWuM%bsyYr`K{<-9RzqsCBNz zN`sXOyVi&gZ${+?;Eariw*vX>|Lc_hDs%$*X;$nzdu_lf;Tv6~Z}fIC0AmZ)5`u;7 z>>CEQ(64^#Gyqyk|4wM~ZIkgg7laXujE+oo>TP;*68K&EJfhe`XQYL%$UKtfAFz%f zhKx@V(jHFdh8;-1=)S|3?-P+D7hkgm*9RmUiUP4REXY=p-o(r3kLuP}?DDPX-_(OS z_HplK!5Ypi8dUxaSNsuLW%>j=vXCuGi%=l?zf#o2sXjBVQ~;=@Q499%yK7qHebW5B zbJ@vhLso-kAJ8r=5rFbl;0@_sKU&a*x(z^Wb#WQPb4X8LF|Pra%ufS^`MHMI@sU?c zI|^xyCZ;lvT4PSg3q%%^3X4tRWnuvlS#MmSYvFf)57T>O^aS8#Dy5y}WOIU*mpkZr zbM#5z9ifPhNi8)XCBTY@gjO7JZ>J(Y9~($h7t)mUgO_1CJlSOmZ@1%4b}dEJH_O1P zIs_lrpp7HIn^X>Aua+^csd6r6mg$3)n8gC|b4zCkm%V?Ws?%G#et3Zyq{ax62UjRb z_mnvxCZYZV{c*_X$=#$1ma);?5+l-mJ3_`f!lz8O{6g3xC-yNqEAA&75od#UZ^YpS z=%q71tj{mAA(gNwzZ`dU4%fxTl>58S2LyTIg|pbXghoNrX}D1@nTVtkG_AW9KJ4*} zTmILMJV+TI9E0$!&WNl;E*uaW`o-$G|5a%$SO|#Cz%8+GW31c-K0{+hIHbAzrxHs;m42Q}scBl_ZASc{~wj6ZMLASes)X@3hg*JUaQHzXH(`%Yz^G6p2+1ovRzY@qBhA z3gQ6z6ifNCI)n9mv(am@c4~`w9yjqm(U~0Dr&V{MckW@vxS(=1EfQeLz&;R#*ZH*s z8pHu4zzIV53pfF$in`AZOnOmxdwtr^xu2}f9XOoBPB;xWB|3|OjPAD8E!*@+?%cx^u0P@%$t7RHcH1vu zJC6`|ZjB}-5BlznXFxIix^<<))$S@zi-_Bsnt*Dukc>jfK&;n{U{}ksI=6AHjf0x~%8oq!KDhpBi2sKgLW>E%c`d)UN(?!;gD4H1>eJ>r+s0_7cQ9dm zS1!As%!Kwq&1iSSmuoQU>~-7B{xLU!4V&7L=M>y>EE+YARAf;K%(sL|J;&C>P%P`w z7_kVx!^z3Pei~=wI2%DO@Va(RqLvELI$3*;ZTC@Oj|x`=pBY88@L5*aMgClXAN*n* zz0JDTzC#9r=SSwi2@`OF|MBFA=$8}Fx3BxzoBsB?zkkACZ~Chtw*Tr8Kj{QNIr(cm z{k?nq)ezrn2>w8#Tl&YjF}4aDkF?=t2kX=HET10dVIEz*=b6xN{dHh;^Hs=%2X*~> zev57O)S%0t@PuH#TNn1A*g$>%zR>7jK=B_8HvJ}G^e>?JCspDnuQ zQrb|*CJf+XhyIv0`QBqi8bI?RsgdMxmDEXtR*S+yJA&GjTUW1K@Dudr9j>FB|%yxE6k6)udH(r*D%TxxoCK@r^;nyYv%%b>rVA6`(_XwSmx0`2b}(^ zkkK#HPyG8ry}zsc;@|(;e?=cyOB{y=embP)Za7oT8u( z_~s@ppsdsqkACdH{MZp4Av+x#(5ynSWFH*A1+IpM7(O8I*J_o;4ieMq)hCg$s$1Ao zaNGn~yFFtP*UtltX(V;ihUfVXg<-WxBU$(IA;q1J)-|c|@o_SzTms$e?+hgf9})OY zMi>*4T5hM!;k8E+Ae?bFC&r9%GkXL|(1B%}`D_N}ZBoek3SmojX)K##atGe7L+D+@*c zv(asM9fu-5BiZ3kWOmv{Ss#(9pa)M20B#>z%{QzOkQrB!>gBR4n8P1AqX9vX#8X$n zuK_Suhg(aLCX0gV!LI?i|B-Q}X`^(lpv!S~d3ov3Xx|8R8-Lv1Jzjjs$Oc{1BS-$1 zM%SawDyTa=X4&)7mk?Xnik*o~|3cW|`S%3o#|A)f1vT;z`Jbw^wBP##fdk!wkpjL{_!(K_CzfMaMzV|FM03Wc~aJAEmz0 zz4=-B0O0NQlZEa(E9oy?|IS5>>XcspQ~>%nS7jw;)Jv-s>X{< z$kBXLUDzwS;WWvv&`5UyOws@x*F)20SIv#^BK!A#3@@Rsfa` z0+@ku-?d?-&iuhjUe%sOr(~0qEH?xb4hI4-gwJGaGB#%}1z*9j$+4wK4B43_&(F&76 zguoyv>*Cbg5TGRh-}$f=cP*klFXkPfotpF+)Z`@zIYgwahn~K9p(v6nGQ9DfN!wFY zO@HK?1XBZmHB}IbeLYcB$kgnG?pH5fliI=*Y<=+`*K_m$Lg1@@9LJzQoi=f`KDvx! za*_F3V$?``I(HnZysVO0secVkuS<>LzE)J}UoOveyQ;wnJkVR7spd9hUR+)rhy}AC zQ)TDshoQ7Cqq%rJx%lNB`TAllPtG2HezD+(Cp@~PAZEwBq)!E|AQtTckT)1N_e>!vDrK^$5|ZbD@{Cl=kXqo6@`b@BuvjpiABE%!EXri;LqSckVV# z^Ju^O!kbB!dM2^q=oHS>>B|k$d^*W6cgn9kaR3?i_a&s5x-hy#`Z=@#DwiXKkE%rB z`x_XD?2Qi5-N$)%U^hGuXCp(xZ0mO;n=kGMZLs|-)6}n0HvSmbjK9x1ltIMIi6{cX z%Wg5@Vt-NcqI0?H*5gR;C9QiTtLgf7#+;xE$g8>3dVLmBX87zW{21COk*P=P2@y~X zsG}hG-oQ7Y%e%yu*G44sQYx0@W;^{!d!;QX`+teM@$VDXzGi>`lvybun)Ez{W6vCo zpVZ)iG%xa9kP{x!DC2lrr-JtN`_+Ut_5%o1+A3u!rA)V`n6z-aPPd@w;zg?Xu8D&x z?4kR~{w2~OAcUPgZEuCvk(HD;ZxeChz&0n?2V$?G6@qlos30P+Pw{@`l5G>^(*h}T zha4Y9k}>VZk?o0GYrN35AHrLfDt>|h`k}kHOV$`i^B(u`>3v#Kry%!Hf(R>I6(iA# zz*RwrucEdtn^?Uv;Y$O4CN~>L877-tczd{*B+&lY`VP7RAMI~CB7)jG(wtVZxCY*- zt9(jBL-+I-aqjQx6nz!?{0FZ8Mu&*s6%PNidG*h9?Y|qg{{c7gH{P_rY(4(}W$W=( z&!X77_^c?^MEcp}0qKGnlPF$RnzVE=T#@*L&!D|x>s{;2QS-IpE9g7}dY!De)xye3 z4^RB`y&TKex>eyO*|S<~cT#Pmk3>@!DGzOhUA*8s(6Ki?H592~VXAX1T%J4ei>(I~ zi#8N6Ne7In_pWOfyu71Q2-!Q_TJ&LuJ^mef;;!??a<3c4?RaGavvcS0kZPpdDgRLA z0pYy(hYUSeseW3*tm!0~Yn(D_2#vx^rNI|6;9Xu)?c>ecPRk)qRY{w=;c^@LZ(vWK z&Gk;9DKNCvbwfJsqvfSBw-Kn=J1D~2wX&bl$@yDI))Vj5YRFtD7*Uav5bqQshSZ77 zctSB&x+e7*aIC407cOll#qM6uamV8q58NM;L%qen)I%D7}gth*{n;So3IrSWOlqSv?BA+ zkvlhmy649_ZEs(i3@URDEj|Lbx*s43q1)4?=EM;d#n{f^Go|eJ>0@e8L_qd*Cm1em7xs z&v*9zzy2J5G@&`Ppq+Ad&m8_m_SDH~V;!z^FW~RS>A^@`)3%-Wn!Fp*edvX7 zR8hd+FG^RXP_`kdYjvMZy&07tB&<3OdB^JAgb4(DcyY#p)9%KtsEgFffP2<$?jmu` zTxyxEetEgZD>}TITW)6-B%LH|<5U0qX{#@b;=jKb{jRn8-~ZZwC3W>>rqX&!oUSWN z^K;rDd4MK2$?DE-lna?(LugZ3OxXh!#Z!vuTaQKHV*=?v& zwHZK?1hgp7P(=0?8A_l*nGzIZSM=+~A?G1m7GE-~T%okCd+)&*q$tG$XxPZ!;sX`e z(%k#HGlr%CirMJ_GLkn`S&FR?AhvZP>zefRT09$b2GD}rtxa87bkrxM7TYJ0(vLxl z7JvVHeB!jV_k|T@U$wElr*3HUDSLLDBlFfagAb%+s=~as=-Mp0Anfsian!^_klJ3U ztoe#AsD|i~fwCq^cL+VOy^|Nhv7Hx!+0Mw0swf{K;u-Db~FXO^G2?uYCrE3<7o62A1RMGIow07v*;0Pd26Kw$qvxjoQN6yGhiR zLV)W zJMD8%xTEF58FF&TiL!%$B@CcFR!64Zs-VX9t*q}*6di~oxX^Q)k^UgD&K;l7pQgn` zV63sk(aP{=vU)b>48Vlz2v@pTI2Lb9)WXB3djKPNI+8n?TW3xEJ}eiBMr;W##@Vcb zaPO|ocAsBw83(F4e;mW#-hciNGJ;5}xgF&qf=tlUeo^L~%cqlHaC4OHtbLG4u5^{= zRHOynMk+NFRSDu7qY5p(^3#^NKU}^~$BO76n}92A`a>;KNGFN$+iIlvBLt3kvt(Gg zjeWP>n@LC_Lf)|XZ;R#8Tgg0LBB7Sn4P?IATtI%C=;1(9tdJvSCY%y2to%YJv8ng= z#og7q@vGpXufoqCcDR6J-L);xV`b1!*`JH!eS1#_HENhi^ag^9?Xg-r+A#xbZ?W_WX50&h16z)j##NK89sIeoq5BY5{Daxn2b&1ukJfUSExKl1 zD@&r7KWX11h~K$B5Jt{z$r0(Ukk2OZRQt*ktXtEOcNA9^oE$ZDDL!)CzbAdcyPNA4 z$W4HWsqh_hRHy!sI!A|UA}-<_O;%bWl@rs?b^pFcDrfrEn$s2IqUBpXSwUPTmka@= zM+bnO^)nXXzhPx&=s|c;FV5EgC{nXqxUA_h?~n~A`2C|=Gnf~6I6X%$$?J?eE7lFg zg4Af%^|g8t$*2g~E(Oz6qY-!6MsuK@2Z$yFLytX($oeX72WfAq)8d>5QO8NwM=SmQ z!2$R>ulP-+)$eeir+;%TLYB2zv=ECryf%>K$xD(c_0vo0kI8$Xq4t93a#jbUj}j@&tp^X`9j3iYUptvcSVnv)prfSHGho_z!8D_A>h-k|#k@&IwRCeYQ_ zjvmRw+xgizT666Wu#M8c)pm5}gJ*RD$Qd*D(^cnRU8Vl$*8`A8<7d!OGzDtlzR>Og z>s|n~IE!jAuQA%-2m;j8b%D~m|I}pgXZhTJKau<|R6hR^H}JRKwD(`BeTY>PR}kAX z@bDxr(eyugxc6JaJQ~D5Dfk=%Ai#i8F2L#7rkxyU^-Zy80^Qv2N+A3PM(#H{A3s2R zUynx%%3cfLX8o21`L<&nEDMb_&z$WZusYH?Jb0y?Cs6K5J!x~%P);l@K!(~-x-Xu$ zPl}OyDQ4hh*TCe8+}h@h+c>Ft(2`Z2?`x46hzAnIC|<-~eE!Zi*KEhr21IEuw6p9; zXI(Stw({ORwfo%?S7Ghs7~a4eI^0gDX6lc6&+T90Z?dxyA|E6^T35fomrY_sofN;B zxhfVEFD_J^xV(vwRCiNXaIo3?DXXaeEKi4ODo;rNskcb3P^{On?m~8HJ%kUrZbDFi zSC;VB|ET}g;vhyV@cofwyqdoFxq0bjZ@bjp1^Lq(bZ%jG(;cfm9)V5U{nvB-wwth$ zK{_2$_nYo#LF{EYi~z)z$;jf|g`3Y(RNu^%jbK04iU=yI>b_}!j1(6mHPMB-5o=USE z3zNO(u;4IQC>j<*rtNV|H;-A-bDO%#*1WJH6$|7g%H?PyyV2PvDdn#g^qrPDIM)}m zJN&>kMOUn=UCQ*ybesEqS)RojUXHk!DbfKf!-UbtrXjtPoEYO0i_S8U*vCv18^a1t z@h8g5ONiI8>=@ONyPsm!%8V)CqE;ri0-Mi|1)Fo2j+?Ve!Ti=#Na{O6f{~`;BU0Bz zEg+|79lQ2!zfABHrMT18U0-z+pK^#8(cGZ5-8fPbrMJA0*>_gC4L!o7{yH=M9Ns?O zLCceIjQ9by&kC>(vG&-PYMNr%eJD;c=2PO#n2%tb~!3aUoQ$USRy<6Iw3pRV|>KT2)`S<>o?dL@^tm0{4kuL{Mu!u z$FXHA)Rm%Tue3;AnR?j6TfWVHU7JQ_t8CVf55!D7&mBB=e(ae>0u_fzU?Lt+iq{~Z z>Pj&=g?c?Pqf2Tx$^tK|(jPms6^dXdm+VO*8sUU!lqQq~&8v5`9xt_duQ&vEjH*X+r#`==kvxafoHTsYnY^f0#Ed#c&1n^ ztiDp0(_FWQiZ(+6s-Nbd_Ng)YN!&8XrUt(Fph>#>VpsIVj=PR2B~cSLN3|d3bL5Yk zoTwM@}a&rV;^lJdG81YUzbb7KNAJ;JH;@7UE|=!;=?Xg5FB1Roky1;nCi zZZ00Cs3URqq6({y%zV%j)@$m^mX<0yl}z3mGU#wsO! zWD6`QZQAfV>XH93>`f~Mp#I$GoI~S-kb=WjRov01-l0Wr#;3Ml4!h!8oe1h9OgE^( z_SJKyFmTEnl+_Jd5=`?MYXm|sP7|cT_s^0T@f$<{PryG%_8EI%`R;XIbO~*7*5nk2 z*n;oITg%r}(@x-fR;+a^TYKHroK_JYLhs+iXF^@+KF)dgGmZY~>c@YvZvBtkpM0I8 z`?cdg;Cp|o)$-SSH>OWjr-?4Y78;(zndAvo6RZFNBABp|AMofFtK_Tm>_Y z+dXEp3%-^$so1^VA}r`QOV-l3@T`3lmcGPan9bV^qjel(7Pg{S-L|dV$2NAYcuSw5 z%K zi050JWRK8}6MnN!b&iNg&tbFrsD@I`XvL9p0k*UX*H;9HHmVeGWtqN2PsnL7Muc z$#$f{_qVl7fZI8J1+|-l2Xn9#53t%2#GVXmBJ~g*xQ{Et_rSfS_4C_+`^_P9>^cKB|2x$^o}aAJtp z8(lw)s2|5y){L2%et3tM;2Pg^=Jmdb+UYRWsS4@OAYOTF`_5h^KwopP-z5QA1Y;Vl zC_8N<7;^B*W|v~iiO9Srx&xFi-v>KVO5wcmlexu<^4N+CakBx*@hJjDN;9Zapf}_b z1q68L`VOZqrv^@;i_^w9KR3VR#qn75*-tA^r>TrJOO}IIwFmF@NQn_{*H#=)v2L5N zk>z<%)HS<#ww^Ngl=gwcHk6<4?kcJJv^8)~AR3n$YIBrMyPhjQTOK%j^^JzkbEpKD zo!R+mZ^IC9g8{!$MUXl^Zfr0*kKQ!=wmof@%csfP;JXuYt>-zM680~XJ4;L4_3JanTPcAzzxzLl+SUmNl7y@x?i>hr(#H}<-L$)VMNmgZUQhoS6MNsGO0-3=q*!Z9`H64s?E_r#FK}_1>TZo} zYMvdQ%>9PbEnU~IAR8y=OhQ)jL*8oBWb4zciBgy}M7gG*3Ix4Vhvv)tqn*ro#@hrZ z_D#MtYBMTJvx?)mr##! z;@FKCd~mDq^C49(#^%$}#{q33Nq;D|GX94Qhg5Pcn!ruO;nWY4a_1PD(;MR-;`Ly` zfM|?+e`fzvCQG4ac*syZ#rqzNI;=$Z18qV(bP+)uy|( zu`8HfA#0wOd1Xnc4ZU1{Pl${ZQrMr-HnZxPAKuv>19 zm*BWAwU@xW<2r?a5PimWL>iC0(81{2Fq#k}@zc<_;6TvYFG*rb@I>b#eRZWnQ@@oPCIZ( zU!*9=r3#L_<>g@w!2%ULPvL&>4JP>ZxzVyAp@1?(z;a?YiJz}$$-r0r zE{9;R*6Uma3i|@M_-I0TvMO+N5jwZK za5O??kcqaCUXdE~F6EE};KJEN#5PGX8e`lgJKg0iF>?2)+Mv&nL897ll&kR@Sr%zI zX=^oXL-Z&EF=(P1CU0}RF{HxCq-?*;OxyYzkMh9cv+O*0FceZ=95CD8Z8ZAcoA%+6 zr90v6`0-%Mr7O}i6lCr<1m3^}DZ#t?vm1r zWURZneKU6gp05M!7z33gy8Es2?%vkWK=bjWZ|TLE7g@CfyIRIMSLe(LPH`g#vt+~K z7q54pzPY*Ocl)%&sf1wMvibQLej%J~WujFz#-8qIRxATBc+XPhKOK|+0 z@2W>9;QlyPAo{>L{%}Ecaj#I4j@^+#HH#^J#tbFf8z#JbW75`HK@(X@O}eNc!9vVM z0}asS`RYxLL;D9aN&7`YDr;D$c?fW*(|ZwpqS>nv%jjJFy6x9C$RRE)pGcU#EeMy0 ztt=D&qH%YtrAGLT1Qm1*H1{Pp4kY+sCo0Deph~k90JxZ!2zX&VbGO_w!<$wQ_aFTX z`am@7;9qf_LET)XsO;`7Rjs>$(s9QA)B4mTK?3h1j`ndFQ#+OH68U`( z;>CdtFcoBHT4sG7h)4lT5OZC8Po@oS`JjO|%_6xY4{Az-5(bYq0AA!XGN(E!5O&iR zWvPW&?NS8EwJiHzLkGN{DBH`V}H+**%hwRC3zt^bRxK9 zSr!_t;8OfZh7a@Mm6QaI8omIhPoyroah`E0zGTPty7n8pe4~bX8XgW??xF=x zV}Gkf>t>R@4ZI%BsfPrdLLLvPRvO!3A)BJ2$!{-v~4K z+yHqRKJ-%mO>=Z(6*Dm&;aB#Kd9bmdEpa}oo_YVHH`fA&&-Pmm@1OU9yz-c9!wLe4 zq8R{sKls*3GWu4x>QSe_L8+Aw${aYZlaq0dtfCaH?nc0R?vHOK*QEhV_E2AQ80k8X z%$be~K91;4y^-V*qsoWEDv}oyi<0)&-eP^~qr^p*ljg2Hvv|#PI+p~ENAvZO& zg5ut~0YAc1g%4{mq9ty#TMC}G!R~N&$ZaYb;Ou9_f3Qi=+n>P4!GRln0c(PQM}`_4=Vx=4@6`C!Q9lq-o+jQ?q}b$z zuD6m91evrnt15tUluP{tq%64xv6?{O;Q2ol?i`Qmvtk zJ7Vz|%k&h7m(tFeCz_5Q=Ua(T4SQDF_q{qrIhdx}wek5P~Q@bh!^I_Zoz}-&9J~C$45&#!S}> zoSVN~892qO}BbY%Y&J}kL%n3P6F{FU+4mm5(P6rC!EH1G7eDLXp*T| zn?}cJRwLYA-?fcs%2TWj_cFV6f4}r>4@g5Y%i_ZV(_ypcaUf|+>$fsI*8QW$`zDC? z6B+hSj^b9)YAr>+8P}KOShu}NHz;b5@y*wW(O8UD6O^qB^QyZ5A;9=9I5NG!CbF5} zURky{cp*-!jL6@(0TshfvSA(%G*8Cwxerh^GRU_!sWf*fFXrO={4G-~J6)XnS_?h2 zH%;bLTH(4Y%S_q^?xzVZgzO;7)&!#x^*e860#vXHuTdnh&-oQ4!VaLw7cc<+Ee-PBuW_j2 z$IE!*)Xwh9H_f}S=U9n+k#_Zn-OPRI%p{A(g=gs+ z0GsU7U9vo|8|RIQffF)(s8o_1(IG8Vt|w-~KTp&Y1$@jus|`L{UQk?}AJetOGF|-Q zpvvK(XJ*oJOgIO**Q7(egL9qcJyNs}1kL;-T|w>vANt?F6P?w7&AM1tm{_K zT4qW~!E-YMH|Th1!-IWZu=JVjJGqA%GiLjub8}8bpE;f2K}k8o7h~(2JkuB&oid;u zJrRP*Q$S~TNbd!z*;%7y*gJCUJcpc;X1hmF?JhRg(By4yu~hHiTPCmgED{bLxo{-> zmA;C-ajN#9y3lqjSF!R(atck%Ba%phYBBW*|5s(hMO*c{ikC2R!|u()eVD@(k;W4! zh^5vZ+?9@kHi>2xfko~Re{2F<-`@!dD{f=NG?YafJG$HsODkHl;L3VE4HwXXs>$r* ze@i|ue?0VA0`b*|3i?tH?kR33SP^yZ1}wxiSVYO5%Auh)Ib1%OZammm7LpYB6JpWV zB%?p<`1NLSUzyGS$KH3xHI=Pv2ZKZfiKui)RGJEiN)rSEA|N)33etj#h=73f0D*ug zT_Vy1gwTtWfKmiPld4Fsg0z6rA)y9H!nZx`&Ny?=*2E+G%%U)+pxU zo6uRV*$u}oA&+%Bl%)Q2G+tuP-55?lb1&TeY7p0h%}C_i^ZCu|qOKfb;p>vn;Q^sR zJ{>^9U<#Bq^@si7f5%Pz{qjox($D?dHRlS*v&uq#(`&!uRj!EqoEI9Ky zFNFK1`y=_T+4pG_om|Qt*D{JH(QRcFs8nrreN}E8^u^X|uBXBeP_Ku~M)=|Ka=(3wS6u;@o-YrpOo<$W?%&D5^Cdr~ z>dTW_H(iT%Q8R>}bp)k@9^*KgE09U(B?`Lx0Mv+q2!`oinRm@v#YLv&ESI=8L6DW~ zUvXgmwpY1DhoX04SaTFCMx!|@5BYyh7(#_^cs!D~Mc@l+@K=((;1=5%9u92wh38g=H=a&}(HcriH22V$!9im{clOPN@#|Wg zD5cwGL~Fa4h+9I$b-nrLXWoylC&e-zQ`%T+RJQ8M<^JtLO5q>l)g z^4QPN&wPJp$*0Gsf<5CDa#L(Sn{iEtxa7Q`@{XbMlsW+TgVRg?;XD0xyh^2mv4hFp z$4924cyg;gt@83(H#y=?5QV}VS8l0^hsK+w8_{rDZ%PXN<(B4&H~SFEplm7aoy_yl z3*8F>Z>u_UY`+H6jKc?0LvZKR)sz-ByX?L`vTjl8BpNxsK;FMGATW~}D({jVq0PjX zz)Z?{6Ei_-4Oy17JuUrMEpWB<^Vi}#L1&I!NO~&p6m;Xf@lJ3)I87<&Plbmx2 z7<97{lv6A@2BJe^iC&NyEQT~Z+=>o_*gE1fH= z+;z8G+Ndd4+-$4!f_+;ezvdcWU*r`coD+RB_L2m%U>V%+w62Yw`4NN0a{};ocozRr zup@xQI=C|-Z5y;}panGvUoURysC4ud;%wDCcK-)g zJ4~#oow9GY`zS*{YepK$|B;jy<8;;CPMiEWNW7yk%Nw|!-P9TOj{iMyfxk?`4;4TD zURCC|KL3S}{wq}*CXs(oIkBVsqpC|g#QC3nl#K1LO0b)#*5R{{BXgw7O=G*X{r%6$ zF%-NvrVC^)CVT*3d5gQLYE@m%&Lk{0#fabB%gAHAPS!W^Y}pPVefSb4+HK8T@3pUk zYLO}vpFQZ0ynIb!|GAN2y?H9uec3}|KMFf0J!hyD90G9BObF#y?nsM~LYogwkf;0F zU;YWKj%?WMy7oF~t$`>SY#Ht3P*)S_U%-Cnm&olu>lZZrmwo{(ViQPzI>n??5aVx> zkQYWs0kgWC1@UdomZxSOukkai4PYve<(?TgXQCQLwBMAJd%t{A>v2LlMtET>RQO~lLN5s}KEayXp8phQ_UV_dO zJfM|ee)+~rC0j~3b302`$1j6*1$kcH3_k$FhSMm&zqaHW5_R7>=1V$TgZezjpm(d1+vakPng(7c|o4<5YB_!6R zn-D7;Kx*(?8#=71#N!n?L}_j{hWs9AZgBq}Kx#$dNK(2lfYBE*?3~Agxb&TB@mqOH zw<$dRKo}LP^?0Dq@2)itgvy(#jUTyHp>&tUQ=ZT3xK_mxv@RL`#8?HW02mw9v5w4( zE4V!a4E+W8daq}8Zx%nt`Mb_6IVZ1&0Dy`Ewe(Y@^`JY@6sz7o4enE-HeniNd?%^d z4sW6R(EOx?5{ZFa8`BF_5C`MwmM{B;%e@vS7}j$T`BZ(9hKy?zU83s%-QY7i`jE$d z2QA{rMbK)QXiK5pQzck=*%nj9&OU$V!?iV;hi^b=RQuIiMN?6ICy_>J^*Q7==8)8| zGv>Evc8#`w$FBbORgQ0=@HMd_AuCydkzdmK4GV zD9n4jGkT<&sV*sjM=gW z@}beL>^-R|#{?||raYmU3PI&a)f^P3A&DtPB7hF#c-|AbHMINv-7t?AG#W%_P~c16 zU=32CQ^7txW{$7km6KCO_oXJYN9cI_Hb|fzLtr8kx#2MX+rRp3-8sj29hEx zt0ya<@ALNixZ*dR@h^0C%U*e0%{%x#zy**`XCvKeslDi}mW1A6U5f zwNS62L#(ncDqlRWvr;*Pv1UeQrT%8Jx8$$eqXeK1QqW^l*^>Fm2&wXNL!V777-xL) zNUo0ZK~we4i7vz&_?0)-EM{}LJ6@DcE|~FqzDjF*jFxuS9zwZlzHCU^*KE#fqtniU z2M-hjp>;8jjbEhQny37SfmW8u=8`}&W7a{lV3@zO)CnRFh?VS-SKrekK+fb_f? zfp%^z^sAU#KQ!_E=5wty#}TNMxN3dEp>U#XVDg|?t!>!7&%r1UME4{6Z_;YLM?nD5 zR(x^pYhl?F;gT2@2les85h44mtbjd+fN-`aVH?cemA!1GbM)MmNE>QGl{`x@GwZ+W z?UnTQJ>EPA&PCB}Z1CbO?O5~!KW+cOWXKH}vZuQ-hORbIPm;~IK{&@z?1ASAhdR}} zT@mEfT~pQThsRD4JG+R#jMX8kAa&r6oFWjkFL+WpX`0--BXinl@PGY0~$`xomC#Qb4wNOvQ0Is#T z78*%E!CKqlv4T&v{!lf(zV>2ui`9R_ylTrFB!vnmetmo@i*m8n@QHkLMq9xk={?Xf zTTV%Cy7;mHnbU7|2!`};E%|`08>L6i6o$N-xzT+(VVA(6b_iz%+K42affcROD>yap zz{BTt0+jcv`9@cf(9ms+wNr&7F`X{fp_ld<8EUur!{Qz#3KR5bG0{QHP3Ks zRKq6^=UI_9)5xLqefW(_Q7M6?}V5e0mT{1X; zW4I04LGix|&K6U;gROsb&s)(jXu0L=IL3RC#H;6_fv9n`o!#`-U(GAI3UsepMPn?i z-90-LId~)PQGHrK);}#g^__n%6RM`K&UiY%>CoB{g0CSd{SB#EFRpGF5}4-{$V$^V z|6YK90FhB5Foc5Ds)24%E;aBVo=QFGmWuNpy>*G%UQisMGF4VUt%mUuWV_mI8baTW z6UB6+pf_6F{_Yt+lJg+|Al{UKQs|xZQ99C(YB(k?99T$m=o59#XsONO+g~~nLKmpI zqkQ(_Px-UJYq>@K`&Fc86kdbQ9#>7pY&X?jwGE*50Ne4}i_O|}5XVyJW>9j;2L4HK zl}Qq4iM-<=U3#!DoGQKz3i4=7kS2Mc3+kOD=C9FXDkV3-`@S`6`|r$XKYNz=Tp9da z%W4_JMl~rYsg##^JU2n+DE_qLtnmvorJV6h*k|`JWtdN`mEQB{_ zZkX2fMIzDX$ReSOf}NFo{e><;E?RjeNjJM_)f%RmBDApHw0w$LF6#A~xDio3(>5rc zY{`*ZysP3xXyr>sdIw(j&70z``6GpIN`i)mza_2@eM?*?vYxHMusGrOTpo!0_}r>& zF2iZyY2U{|tcmxeU0?X(K>2?Pi|?Nq$M?;Ai)Vk3-*LwzEiLWn@5KU8Sj@BSCe}=p+1n zJ?Nwrf*Xyf?~P1F1?`*_DtvTo*Cx6uIaY_9Z;6u#r1IuX?;WDzPbrnh*}*UOWp{Mn zYKJhVQ}2*q8Q!rg+Hx}`I)t0ln`WzduWJoEi*5{MSh=`*ub0H%rJwKN*QiP0>Ivor zAn4O?%AH+{uWWXIBJ(7=szwygI{12o^J+Uq*Q^g;ayoNsJs0)nVQ zhSYH!SDLwWI1;mO54ICK2Mv)2WVOzbk>Rfz{$e~!sRQ2(;S!E=kuGkDo>5{ds0zWb zKWWz;@%xHM6QQ1Hn_I^2qlnh=+>*BN>Dt?pW5-c&UFQ-Vlgt%@7> zfMBCqIKRdNIz%97@qQxoEJ?P`uSX)T7J0OU-b_}jY9cksq_u5n4vOTRUFGIi++V82 zhXP+DHzZ^^?X66L$dq(IhtCaZ^f(SK)qE|LU`1`|kdo#?O6?4!USxC z$XBUaB>kYiFF~4DD4w~H zMhi%rZKk32cA#&Dh0o1y*M z)W2pXe$90J8$bIY37+q*%8$PP5f1ggpH!YmcvIXh_N9>UNNzq|_qo~;KRrkRQwES1 zbYHKb3sKBHWbmWvo~mjtBhE>e>jPF#C1hZ=;(XS#-;yk_D_XpU99>^eAsY}FGudV_ zjVk^I4{STxK`C^6X- zUAj1wcqOnXEVN%5#p!flt61Js1An||CTjhp$zY?sjg+Ix5kF0VTOX>|86T>F06qMl zmoAL8>g;w%1h4exE7OuRlbUyu+`V9+)0?m>)Gsgxi-N2xW2)g+6#d zfi${!$#(K6peFZSp>CrR2ar>54!j+>{ME=+=`n0%kqNI4%;ht{Ju307avjI)sThiN z?vcXB*v~Y#dkJ|(4x;RckSEleucYD)cZ&$n6;qXrQ|O?6k(tw?X?Y@bxZTvl#Cw(* zU217#lk<8SAJCi6lyp6tq!q!>7#-R5vD3{+%4Y=m!G-Hb`i) z5wqGbvJFzc_^ki{!ThA1j<=%T@Aj~Ed~aw0#VRfTMJghvmdshpc8~tiOt%;rt?eqv zI?C$l4J56zFDM^+!~n^ZVu&8AVzZtII8(K$uM*A-C}p#wzT=KFazX_~hp!Hq}wvX5~y!Y_iNema=% ze_GxwPXjK|($UH=t<%V$7JFKs(dRj6)WPit;FSPm4-SRBm@&nBt%IgPmjdT3f&}+{ zkd;)gX4UU*XUg~)-O2UFID(~8m~!?U#W`ghfko{;p&jaCL@QiY66%D;*-pvDLxd$~N5GXA=*L&&kAh=JA|bg7c4IG`&wxV5Fs{ya z3AZDh;i}ypaO1u!NI7D;0iA;~hPF;W-;!u$d!*MUg-^YXd=$V0=V_4j^9F`gJT3PQ z1Wus^_cK?SYM}MA$`9`}V2h&xRb^szQ6Q-N{|9@hXcCeelhvZ1t zl=0mL8BYM*CcH_{!zu`3BK$sLwN;D8vpS^xukhQy->CkX_dhmk|35MM2QfDPnW_0_ zzx!`WjD8yyP@)7v;tRB7g6WwFm5iEQh#LX8Zk})ZqCaLD!9hPVw7N9;h>s?Vr9B5W z$Di&dz-yKY)mnFsT--cAuU5H8R>CJf`d$5FnN)TXEG3*4yrz$+x0Xytu*}m$s{rpQ zg?_NUHF_I#q%G8W{v>PIdy!b&09uV)G4sxz|8R4&V*j#u`#=H!K;9dWl${P_4ue)w56m8 z%E+W=g*m*d=_LUZAb4sURQZYzeVc?=O-H?I@!(Ta8lk%4wr0E)?*%PwL7xst>7Q$? z=g~_W8yuc>Wj^i2xOXJF}6F8$UX6bELub|v}HPcw>*>_b5BsoP^(f%-17uPOSC`6uG?PH^z1)N%SI z9$I0fpC{K4E0prl`lB>>gZm}R&5Ham^*;eohW}I>cV7-hu%V*I#JdemgBi>4e%yp| z6QqzBiM9FAtk0C&iU=17)~u$N-z~Ok#ATOr;!bH%jH`y&mC~D@*5JC4eF}1Nh<9*g+uQmBjNj)!1wL1N=5d_t>Zgn0B8DNheS+nyWeM{ze z)o7)1D=l1U(HBSAWd&LZS_Vk2R1*^Yi6bpO!!7n}e&byiLrmMUyCjRx3b#@ZVDooj zvGhY!xjv=q}14QD8UPEQ=qi?xh}nYlPsu;xf6~wv}ALTU*KAp>WJ>O_5V8s8{moT#Cfu z)q4uK2B4Ds3!n14h4>$P{Ck)4|4^1x^g|(L1wWuwcN(Ua9>%BIUlK9W-3QQ(QOq=n zaYP+&YvnZ+Cd>}RTKq35$J{*FCj>2F3c%oJby9w|{?f7{m^Dt7@(*|&GIooPa{-f>S0W0u(E(|I9W z@FaF2H=sbp_#j8b1Gk$JtlxeDdiKtX_we=*KY^KsB_LSGfToFhzD(C@Oi}8I{NCAqpBY#xBMK7A`<9_BI z?x>HjpxUm%jC7@W_pdRpZqCX($@|4S^S7inm&uvQF=ABbyRWZvkcI}|+d1yJ!uU#O zJWN#-+`Z2|Xi4!>&F~?LWoAnrg+=;n*x?bkqzmm2`##gi%-!=RM6akXr9PS8ZY&|QAWQO-j|UsS z3KpA5a-Y#1krvTUt?*XNpxE zsFS$?TdnsuNtzvpv?2Py6B9_a8C%?CZ4ZDVULSW!T+lF%r;(JcD!Lxs`h@e_JLpezCk% z8)b?&bu_8}ukiGz)yw}Sum5%C*grz;|K%9$7pg3Ph5NaNx7M)cF$ps@dzK06Fr*E(~g0cii;i=DjL2I{b5`VW=pjU$MK3Bcdl5Z1ctfi(*=R<57~lA3I)0tp6VO`FDQxFY3*@#pr7 zZ!v{O!TtC19N#6JC9Q|dqlaKLq_(6`Ax^A=rr-7Xu1BB7&#A$HG?xN%rb@QNQv!!q z8=6^I|A#hv4CdXmEA&@&s%)L6G)%Shf@PmHrpYIpJcX}UFj=`??@BUkz?uSc`XEFak)j`Y~-`EV56Y*)!_@X4e& zX|%;on>0T?`9PQZu-%>1Nw}^?kse?XvWXVHN~ZfM?uuSD@*~rjSzAyH$LC6XKZGm!DxBIpV3Ott6QsC}*|GcC=wI+z;H4w)z>KTb zJ4bPiN8aKo`jux$u5F`ub|6jcIV5>wBN`So1Q|Urs|+hub2|^`vXeRn$jv8kR(7O{ z*bR(b6Jzl#7^HRfOv%Fo3$^weZEVV9*|@)W&xZI|wI~6gHWK$*{n7c_e{{a3kpTL^ zsxIj>RLq#*r<_kL!-JU{c8B>LAiAKWF9HQbq4sgUY?+sF?Am`(|Qq#t0Y~a)#al zr?9}31p)B`kG@9twqWTB*Q@zmMSIn)gB2AO%26XBtaY0&?ZaO(1g${5k)rf^a@po=AU&$)}Ps!~ouNO*st zpbNq%^K;Jy*a1c?ADgL{eiMd=aF*sn7Ty@YQoQNS8MbNurfM4mXTh*3!`w{G(ITWp zs(>l0Q@Q??63*RgS(Hii%h9bT165DZMWawC{2*mgvol6kRj>vS(#pHEjQGj`*A<;l z1aX0P{8z-ctQ828tm4e4h`h6CA#)_kygvdHBML-`6f`Q;;x129)yb38BQ7WVEyFzV zb%udUb2bNUp^CqXcR@ETb?A8Iz@N1-{0r_FzkHorSiR$^Rv^{Yzj4h%U!lW?Po;_=hoem zGqVjzC*Z5ypNs&|Db8lnqG3!z!<~B_Cq@7?`NrMN)$y(B&7jqpaW6s2QB-s7y|ee0 zoIQlM)Nv14JD;<B(;jQ1E)KULM8wCT`ZIEKo`%)@kT>;J7e@Kw}wvMwiEu(mfvJGcs z^wuBB-kc1Pr>hf|uTw;l;=(=0vS$}rXTXtBt@n=MoJG#8G45Fz09x}fWs&u31b7nS z?1&Z8h%Xf}pB{1!DFchBQmeO2f`w{G$_Tv6kxZK2^mB>3ME;_*sO&YZ^r@}LRl0=| zSM9|^cDifLV|=b(dmeyA9x4_f z0d?+O8d!y03T-=QM+OEQoH~mx?}sE8D^r8Kq~B9DC>0)_qqBHclPUeO6Gac3`9EA) zS4hawc`ITMa%$K;(GC`0^}sM0v;nf@W$#Q-cJn*V(pcBdYoQ8gOr!x z`%!*d_42ggg3R}2#Ia?cbsdl6TMYH)6Qdz7VfLEJ@GEF$N+7K?4a;H`ZlUuUOXL2$ zEG1ApxmLWyxvu&9R|*bNdjYlM0d@ZLLS2MOH^aP?en`#;SB{r?Z=vD^=x7xG zW1xlQ(W=&T(*WFlsj4_Vl61wKS+->#m&nxV$(2Ottz<%R^LUjXb+x2-PTGXSv2R|l zE)#gnyzHnhVAVmq@ff-iR*ecIH`JQauK+xdFKbGpF z3oDtwH~k77_48H~FeJmCjt$xsTJyvgMWC9NQ$ZzL**(~NCc+FRI2IR>;ei05?kwK8 zEV^8RdoM;)lPz}x$_#$>JomRl}I#B=UG`eeG)@qvs$?zK33#&sKoEg zZI#EN(tzv*2w+QpFryd|B{(jYAoiiPr0WbmOSLF$Jj5r8fZ)xDdHv)mBu@ug(sIp) z_e#kdEL=9KN^%=SXpBPWTI>CpasHpWq5sIZe*dQbBUkzUJHP*`e}t<6>;w{v1XJ?< z#lqO;LrNby%{IPetkF=~DmDm@nXD|8MLfdMVt-i*{C-o};~pBBVa<^~s9R7>@CNi^ z&j$EnoB9&0Oc@K!OJ(Vt-9=DVK!A^V;BpI`m^ulo@m|AgeS=s5Kv;J4!Bg3mF7)GF z;kor;gAXBPKH-g9BC{rNKQA$gR^4mnyA?8=8v`~HjS*WF42WY&)sp~<{44d!sKj1W znIsLLRxj57?sLZb;{ZdVQ3Oyr$^@q-6N2gcurSm?w*=4-LWHLNI?9&2=dGeFTVsZ>w+LCW>M>f4BV*hYLh%z9 zG42SKuCG&0{;09u$G4!s1oCU$rAQE|_Y&_RnCD0;D{d*iPhT4Hz8ehM|*~ zJsBo|j=gDWZhlGR!FL5$ZB|}Li{JBVws_z&In$4LCJkgn_g5a8c{w$_!|3|lW(WnL zn{k`}LbXeDIK@6H&eH6!+aigSb7$(@9ZFEt=W)hq51AjtMgVbljtrSa=!?Q^DD zFO7}d4wtBp^ZEL5+%lH7D459on$yWL5*OFn{a+iOQfJrpwzJ5zQ%xxk1dD zQxz!~t%7|~DQH~4FFSyxA8m&e=^#&vdz~2A24#}{;+#^FKO4T9B(sHYc4rgYf@57d zd60)VJ{E1mX=No1`IVqo0CsxtKx$k9J%(}7&DF(#n$C%r*#;SM>h*Vq>L9 zWp5h9_0wTT_A;C@g7U0rDptZ@%8u2@6Q|K-laqq*cptK3WKmX+s+kCtp*K;|#`BzQ z)Zu$9wR#6WF1$5gzvX~fOrp;_BRMFhW2U_#jN5J83Zh_`)nIcaR%A&6UncRPr z8TwyxOd-2wWC@7|yjNqJZO{tix0XyKS86m4fB^RKVrUGaJ@@}5g`wmiV2AuIAYp}` z_bCN)0O}wcfSBWT+y*7b=Km~K#59;L37~xGH6@76W7$9Fig=%W^#|PKGZO4*k#>Tr zBQ5Pt=l!zI_-V}TCH~=@6c9}vTH#nlilA(R#`+eh`suiR_p=(;(gJ96)-$toK&=_o zhwo74f^m~G{HdnallKQguH|#1GzY~ni-#vX-936~Za|&JYahkYq*VTicl7xlpW*0O zw@=INk$mvXn)Mv`d{v++G>~Wh5hX)iYs2#mSAz8F?GRiYd_5D~mzk&aZe%}NoJh(_ zpSe(Ck(<`I@CDKiUauMz>@)bU{5QIuTyEH5gSOK0n}`}QU{jEfZ^QSNO5~|?vejbz0x*O;A@vbLMSj^}c}d~QH|Nxib}-}iQXhquyTa#CU0qs><4asxdh zw{Zi3F!$48&ostvtX{FW+#&AO^=gKrS9{Iv%dXuk+%uj}K*(f5l{RI1tnRI~$)0B2 zK3feH3)^$ys|r9nWI3uU8KJjPSOw{y&M#5#78a`|eZWy&ycPWj>*MYV6pdW?!V4%} zBLrjkHFktJzbHw0bLq9-OjPfOIxk@bdXdI85;UY}2&jA*H7>VV$|y8lNxzY=!e`50 zjd%j`;PmIkJXwjRuSSRf0#EE2NCC(rs=b*Ve?>-}by1MuZXRAFfQ^Ks*RrA-i9I-~ z2deemv<7L&Ftd%g4+r!sO%5V=lcVcBMd%2EbedH@UcWHf4A)Ziyk`&*8hc(cttwFJ ziqW~4x5B7P4TybUc+Gtvdd#Wdtc#ThNR+(4nU*`_6Sc32Sz@cX+v`Zt&j}>JD*LU~ zxkGN$?<=Pt3TVM{`?(rRj^Zvw>o(`AN5h=mwn~F(%ukuMua$~)r5*($SI0yk_?gG6 z0}e*GMLmvj32RNHojNPKuy78jdSe#f7`jU|;PxUv)BFuD;h{64fILRS4WM9!DWUEX zcUQY-jpXkjsM)M}e#4AoOX9hNFhh#^Bq;{>fv?QXPH&46`PovR}a_0?CEPWk5OGj317MvJH^D=LvS|JQbdIRQv^o)(YGG3 z<7hduRt;TbkUt@pk5jzyQywsQVNWKM8GTy%)6W6>-vjvnp!ZBJ70CuDtZI3u^seEQ`d~6G%ZC>ow`ekY~p!;}>`{fxPEg4;Q&lN8{@ zqiFpx#j}R~;Q3SFBiPYr4`(SSrAtlEQbA;^X-;{(pS0VP95Y!R&%`;lve63}if3vX zw}dN14Ja+6o?H?1-Ys;k5Bno-#}!*nfWMl^x*4=2LaD*epi!>X@(~|KTs(T0qBqQd zW0|~2N^RD|D0imk8A*3c{QIKeX&?_F)Z{$d*vLF|m!Y-2uzAfu=V`c=twZ zz;qS+0;QDPk_zq|?l?nr0pGAAFpn!5ey|qTAhLh#eRJZ|5t$f0*kikc4619kqyX_V*sc4F15uIjATng%af5lcZv-W*gSEY>rre%>6{{2TVL@{1&Hw(RCmhK zZvV9USjUZQZAhUGQl_k`L0mSIM9)#IIfq$cxF%AM<*-Dfe8*_R9qZ{`UzU}rAc1ec z7K+R>ZA8lClawC!l?b$!M{Kx61$kLctZcHL#$@d%4X9K^otir#9J!dAmvru3tA~T2 z3;f-#50f)$+7!1W6V#v~fDH&Fx&~R^9KTec!5S3+WyCJJyDqp1fOv4Mgaa7%m0?M; zrjv@Qrm4WkCW)g@AI`BL;F zP)tkX)i9|titDQnEoO4o@f>5Dr(cG{Jl%m1$QOgshT#8cH~06r$iM!-|7MNkzex=K z0FdF|_TBH~8*F-iCWofY^z%+Kt~cIM`2eB%zcrreb5{OA>F2*uDt_n0|KOx?myJ-} zL}*U%rVjNIVAW~XKmh9b8?*Y$3*~} z?&m5Te}*Fd$Q}93aRJw2*dXl9Y#FvObc52Cxd7P<2brc%0NHLg{savdZC5K~w>bO} zv%*F@3Xu5z4r}YLTk>E3%Cp2$s)!arZ6Rn!&&-slHz6Awz9kW*Ai4;ECfk886pb#Y z*pD{%-ow?(-}@>jeAYPxkZfS62cdPYo@4KcQ3W|%pM)&o@h7}?qjpRR-oMA8NGyx+ ziYwUEXCB8s!R%EyoW?t^z75hVzSs06E%6sq%&+)+9nEKQvkT z3pN{;x)lo|er+dU#>L(fF>LX|EdYd#KaEOomjqLr^(vo|`rgGJ&kDX6^i^jYBo4TZ z?sc1^Bm_t_C)t}PAT06xjq5tzuTJii|G8(qLp09Fqv^7&wwi**tBXDnbf&jMfIzID z!~`eDvrB11S-@^`7;Cu=a!sUy@`i&zqepN=yGNlm_# zh+ricS&I11C0w(oroUHqM8I}MPeHcJcixcQhX}}8C5V^FEX7Cv4YAYNsRoo8oNy@3R&rXY(J%sU* zR|fZ{w`G}Y^&(57<64XDxK1A)DlW8IQ-e_P-3T|K$0Sd?i&uSGsZi?uAh9r5mkI3y z$AXqsvVkjG@OXupjd_SnOOGv!fN7mj#C5n~Y~N^FdXhtQ!YMLS29Y_e^}W!kIz?~B zXG)JfMZ2dGS%%=Xn+X5;%C=O?;$od~MpZ7|k!#&_X+RC>H&^lR+&lhl=l}iv8~&xC z{{GAU;O_d%CtBxki4w@gB|KnOzfwG%xftss5k^2js%843i} z_N2Ilwv`nJ?9GipG3@FO#Mpm|!SUgha;P`-{Sy4|%^2fy3ZL18LwtoXD9lMtI@t7P z-?1#TB)~~^lx~^y&lz@mL3n=jr~y{+d8)$|fDWQNXe^!k?s711#G&~xaJC1#0-LG9 zXDTy^W#d!Y6$ZrehXqqw%u~mKk!lRXbga|nli}Q~>9zd4$*{?gWNiIuulOl&Gzs^J z4yWpL-R$>FQR%yF{Mk_T1f^}u3jh3?q7T>fl$J;y%64)L6Z~MZgK)(x)5>KT%*Qc9 zf2g>p40L_R8PRe@8|wxn}63bmeI(M*+rR*E?v_jo6>#jCPdHn^sqH z_knrmVV_cMUpG`50VT{!k1#w_fOdyGwz^V?l(mdLK+Jw&b}j6-7rIF+f7AzH*-Q=> z6)uM8$4Ym*z?9n4I#bPx?B*lh+fMd@1-*7wJ}TSvTj(6v{4}388iW$$LVeNxQ2Ut& zG$Tb*Z`OMqx~x_1H#49T5yi;@aK)_%^5ZpzZN7_ldzIj((&Y!rY>vAOvCwN3>4Z%- zlQthOAOUB^NJ8=`hpa#VO zbSe}mO~D)JM>iDUqcKT7mGf(_T!aL?u7fpi{x=QKy>G z-rFj|9V17S&o+$IuK?sk>4_?Ks>%3$r!&-J#B$!F=22=dO$IdU>#P&96O-18g9Z6_o$lnMIvoo2^H!oJ6GX?N8;>q3#Pim7iRtqR$_GDu?!FsQh8dXh z7|&W)Rt2dr!c-12MCMV1L0^1(Axo{&_}wL480c_Qj` zrt>8(NFOM@xeapWRwsHE7p&tA$cuISh#C%^By~d1LZ#8!U8QbN<*V{1FbCT8!RaVb zU9wDS!eKJ4aqvXjNy`+PTE1e?3PS5+5y%k%C8&^jX5X>h=V3WnW6l?HK(F-L*4s8x zy8GzDB!s(>D=)8h42cu!?^d{!iL~DInOS$>_nj(jRSXmuD6cyoBpoVsU5)F8jyELn z;0!3&Jmb@JF_D?~g7|HI0l$;M8++dT#Lv3!I9THh=n=9wp8pK!5k}BdvW_OQ@?NLh zNHn=BA(djEY?|~rykAZ^gEs6-2M75G zd9+cl!WkkIXgRxnbrNp#8uoyZj)MChm^T^r8JA$CB%d6R!CO1k-K~Q^@b*Zmg?=a= z+7HNQ>#1`cuRRnry1EVWt%UXo%ChwrN4v#0+h@o|sH_gIV=iyCLp;^oMAjhnrVzfV zvZ0c|oC9fjDN8L_K;up4dO~(*C7m0?ADwp-EwW+!vYzI-`O>*%1LXws~hEl_l+bAT00k_IUf>)HL*L6oG?b+X+PE(3FE52mdfkAoh*Q=7bx zm}kIdUK_{($_tNBUGHSp7oSx5uX7fd?G!?0@cWEn^Ui8RjJ~fRAb*S86TvW3^c}gU z&aZ<{@2qJrg@7WRA<>s7%A2)0lu}5xvg> zdTJTxNx9g8)m(Mn3#~5MeC0Sboo25cgw}DQT`Tq7w`+D3WCOQLsC zI(V{y1dYNiY>rQtOq(P`jy;8*2XDzabAL%*u$Xa&MdmcV(e28$ zZ8*u&!6Y!{j(zub7W+g-&sBK+-DYu8;;@U%(woC;hhC188;jic0wPPQIFGNUGIhffzTJK3lRJ!5$fgwSFIwCl^15UhK)u|+^7 zpJiEYQ};?KT)j8NhCFPDF16DGb8m*gb3yJj_6a0EB|eMdaSdBL!X|J*$gy}(KjaQ~ z;}&Yv6V>=ozAsNyG}9cAgnq=TauD=a!oc6SHg$kL%7X+k60s#C99EKEHQ=-nG3Fb3 z(P9Kl2KCvgfgBL5Xmj{ev^e{Ow?<|)I(X{TqvxT(6E=fj8z`G0j~qxrpQJ=Wf^#GA z{;MS%n>kizg03}%!{aa`m|^z0U9(3-Q<&62*~gj$y0yWXKbREyYjWt1{`*IOs{W3{ z@JF~`|CV$7ZVva4qSF7U$@{@cV;QoeD}>X_pcD5~fE^Gk2#`~JH+YVMFaC$m*bh0~ zb>wJjz%YRM{Z*uUE>Lg8G(9Ckx0pU}gQn7RpuV^z%|iI*qzL_~J80p5dfol?Q4sx5 zc?#2HQEj@$7YrzF8h%qI`5B|)&q%}{x+8x*=imFAn^_f|Zc?>=8-VMC#xA#cXO)bZ z#L!pk8UeDCz@|PX=jDBOAok9%M64Vz7O8&CIVSV+qcZHlMEKzPQ)NKj?4c}%%`TNh ztvmwApPtA~(GV4hEjcR`cB8m35Z3Tv0+tGs4AHkp8`-OMv9N026;SCDbGEDHCbBGJ z{&ysmIi`MU?b4g-1@2w9IJBS5K5C8okk`Gp7${XW+L+>>Nx5pX$5Y9O_nN)H=gT1z z3n2_er{5k?cHsJHdmINC6S*!yNq~#cf*>u(rPZd@=O{3?^@bq>xzQ2!q zw_{Dox8&NgQ_wNQ*j=i2dCw&6tMAyl%-X30T?3ylv<>df2kUtCzd!**+X&WVo^4Q# ztP6Q)YTsv72fkV{{fWEBxSLKrbc0p611!>x>xJ)EnS*tNQ!I9-<}k3;KfKq-zxybG zCb^nj_~(?Kf%|%ZQ`=t47SC5hV*7lb@Ef!xho<%lWdu=GU!6bUvdUoZa@2=zDtUs%d+fgIzD}HhT}laTFEX!px#>zwC;$sBG`?^PYmxRS0;_} zmKx-oU?6mwv_6y*!#zU;omxb`|B3f`-O*Up1|Fl(QHL9L*@KW&-mhakzlcQ(WK0-S zqA#lRUpEnuo!BkiI!t{?+M950X3038&Ly6T$O3s4GE7D2M*tkUIU~9hd?zJXw@r1; z^A(1DsQwt)wchi(#bpwI+9UXQ_X%His_bE)Xw!2ae+&kv)MR5C*Mp@hjtkF3>5cV! z38_$H!|4Z8W5e146>RWUiK{9SQT~H0rr>F1{)G&n&*=S9o~Y7{!ILx3jgMlsCgl*3 z_M85Vri=rKNK1Qahv<|q{-Us_NVJ7q>m}2DNzn<&=ob-;0=4x z034;Z&K>y#>>Sh}ajK6jfCvZFgq30Xkm{k+3p$8Ef=aIS8*upKXLePJLoNOPvG?9_ zO|5I%aF8lhL3)*dC{;v?w4g{65LA>-R6v@5NDDO-snStUkS0V}ejzZo`SK0)o&hl>=$&{1E?K7{ z=becBb6TiFU$rcly}7A+%mY1XCl77@LPtABrRdk)N}7r`Y{mWBO&sa3?fm&tNL;DE z@TYmyIkC6XcRUFY8~hu*;Ery5r25zVJ{19ejM(=pDui#(h`jhP@y|GhJJ@%~b4R|_ zGP!7t+PCaIGi;>x*3WJREJ$Y3ul;se7Zm9*5sJ3%=11I1Z$xd*#8$$4b(SX{g1#`^k7~LNkk@D7+sUp;4+4-S$vP)56E!D%wfucWb(8hJXH7>&mwO(kdWVUJw1=8Rzn zYUXvJZ`Q=)o(TnDRsCT{ypMo6s(li2EY{}ZWYfAs?E~9>-^+arjUco4zfFa2sE{Rq zxW9qKm=k@_84Pxl$4>RRQ)iK;mG=&r%oex0cu9;Fw9sr;kC0Rg$&kp8Kx657)$nyQ zB9@_VNeQemF0G~Dmp<~4`1#~gHd-QfPcK;mZ|BM4t(*mU1-U>27_t2fnb`K1wqF)= zMV-(wSV1MjmbjSk1O6=dlKab0e0)K7-j=FW`YmE~Ffardpv-};A)S(W-{#x1R7Z@v zcl5FWxIW|_zGq%nLKyko^9sX!WpqwIfr_rV=uR1)c|O%nvA5o5=9Wdy=4PtE@%O2e z^~!zj!jfG$~v6*|5!ld*AeV$jUVqHTJq`CHFdo zkjhf)KR|0mZhG`>GaL_gtVn@ckexv8-3a7ylcMO$KJB2JdDaeA=DcS|4kb@6Yw_Y& zicWY@l!29wMJyq7U$gOBr&A$VmP7b?z($6Ixv`QZPE=+9L92amSDHF|h5T3V(f=uf z*8jlY`Tt|%nSX1TOtQ_;rF(bF4F9%(CG-( z(@G{oU=zaq2S|AsK1b0g+X82EpCdP_PRmF3=G(PWRcmQI2*GU!An;OCHO{Jg*0A&< zA%f5x+d>G@kF^cs)Q?J7NO#@ki#@j4Qeni4v>lXN^Z*%n&CE+;#oc=Zl-aO*V|n&b2D7@t zQ#TMN2`!0-2HwpboF#OoZyTF1=@*<@s@12DBSD)N3sTHiMk-Sku<1sh z120Uz+nCP8C>@Q~{bFSGvlkPI!!-w|T10Z|-Fk(D1+^R|C13PN0;fg!DJcPbO{f~k z5buZy#3+#y$Jv67%i#RPIW}QTbjx4;5-LmR$AMwu3kI}BB6aNBmuBQP> zg3nWqHFo`Tf|e4WM>Zc#rK|QnvFbx+BW>G19tHnQky9MLj~7HuZtCs_yZWF`RGudq z-MSG>TvhZt7nzmuGM#?I8oi+e*?8Rz9nLu3Yy=|sc65a>Heo`ak69X>e?H~ez+4;f z6fBpYk(f7k+Fow<(;69BeY2K14*=!1dXA`ieLqBzaLht)cr4}WBnb-=uw zoI&+jbkYfwO)Z_*NNwSe3~w{@GL;5$y4)^*hh3`P|@0_C}l*7-utvKWCf@_ z-01ZN8OEwA^`e!}jtU(M?(VFNXKvU^vk@A251Lj8nwbnY-)Gm<25pk1BW;&Lx*ljw zTq)fL7is-Xi}5eCgMSs!W{yVdF&g8abg^&VUrbp-i8(rAx(;()L++$gj_jT)+aOpL zA}|Wh4E9Z|>61>`HlasIc;$^}rxjv4r-pg&DsT-@TK>8n{&HlFKo|K#X;%z6K6u~n z%S^&mmVcsuS$58+|Gn}lli~h93}S5geW+qB^lt&7&HR5wjIp3Bh_A)Vwt5<3UEz`}`wme{5Blg8 z=1(i@9w0tjH)7X=Vvtzn98WMJ35&S&W?_~b%-%M4)R1T$gU*ALZ`y*G7G5#_&rlK2ZmGtPT< zTy6AWDNgyN>j$spvu0i|uL_MXnR&-ddvyuK3<@3#_FYp4QYCMQhV5+hwDu1R_;EtoRd_zC-5K0-(Dl@) z92K?N5p#Oa*foRo;k_Y$c1?KiFJmA>r2<%{2|kFI!EWsRu~E`Yag> zUI9DxMIjM&oZ6k^!f3`m$Ul2sZa%4xWG&NWEI{GQuj5XUxN(BZg)odcQ+r|7ta))> z)C}U_eDB#|O1Uo6_<-w6bw|M6Yd9gEUy~%<8}{XN$$V*0AH8&ZGx_{voIn)SeKxKx z4FLe0`VZ7f|5m~9`~Uw>po{&h>-L`_QT~Iq|G(-r{+B`jUv;Jbr5N{&AXhC`HPj@8yXI!fD22pqC-Mf`mf$nIT6qvjOt(aH4V} z-Y;)zO-L=2_{Hu8NyutM`|Br*zU7i3ip$s{Jx*Ac1lfvn!L(gXa@-~AZxk*0S}oIB zWT$S+QPk=o6^L3(fEMi$P=@RpR1Nq#0;(HTfJZ;oOpJ{Q0H>mzvLIoO?rBVItVcQZ zrh=WrpW3dzcum`#6KXBeEojKj?HVWVOogw}!^MVXjeYmjpxHDAzlt8bax(AZvpf)K z6R6@G=FdT9#eHGq><`e>qz0+hL-kTpWk>PmY{G$( zmfKDE=j_Vr)oW^G;Wk=d-tk_1`nX-uYJ;7*1| zS@f;LP}gbuYGEAZ=4&nX{*TI;t}(6{>O#VGyw#_y*Ht&D!1+6l>l3!5F<8A01zxT- zj&F@2(W4FCmN!2g@QKu4d#2ux>groo++{1&$G_h)Y#bFMKys&MFTA~0mF`ejajLTA zRQH?co-P%EzSsYz|#MKC=lB?~xGpep)mDRb{!++yzp$27j~u* zrf3)d1GxWg5OQM&rYSLC`XIK4AP$z(^uWc%il@%<6MvatG#CPWGD2_j{>~3jWg)V# z(;xB!^c4WeoFT`z0+b3Og*ji=`{;@EzqZ`5I;)X^b{$|C-_AUp547*Nv>zaB3c=mM zw0YL<=<@Tpnwc*T88sSS@MfNBOldH@3BgAB`j2EboFMJ}onLLVI7`0(X1THAb45P) zL6#1)JT>D`-M8J^(aPH*`Bqa2GNq!;>ZH78JR>JQ9WwsB)ghZ?3H>g7p-AM}w-@4e z@AHmeMZPs%SV^&m&9%N)kh5exXu3ZTeJVoZE$b}e-cF73o^wYuPX;cdb)RVPY!x?E z-p-M4UF5OQEZlFUul<4i6*$@wB zjNlwb@HX;AjD*;NX7I>1JgdYp;?|9DgrLDGThd-Q$_6&H{1Os^%-h!uzY`7?pC{kD@M<9!I7zKFam$sW^pn&HNBD8Y)h~lY#tOntH2D5WB<`~Vz zGQY=?QjDe z2!CQ?fA;6Ug>4kAGizEC^>}P<+B5hzr{Np?^YsViC+{*H<-2BK%@qAf(+idItd@G~THxO+;qwcYa3$EP`BS2VLy`CTO)N3(B+tu=a!SCfo!Ss1rB7t&ygI^l5SxU{iX__`)^Rf5V& zVbG}D%derur9Q)cvDuc!gF`P&VuM2ZqPtqmWb&5vt8~b`=Bs8va=(y809M@6kHEXF z-X$3(XyEp?+BcNv?#PSE?%&hlqm|IP%~dEXvKSwAX&Dk?51Z?iQC&k6no}B$4kpDzYRO*t&b>Z6X^>=~8FpbVSc$BX+eT`+E9Q1h)*9WJF zvwrNef9zCaH6LbPh$va01h%jQEiiO&nx80OQfs1z+ zz9Lge^8M!$@~lZ1pOJ^Z*CFo|>z-$^*_g(EY!C?!JXiX_50NzW4h!LkL7;UGcrMfr zixY&3jFD%hyg=^D5VuY4%PN@+I@s87Cts}(+U{Pt+%jvNZyj^0q`d0c=^4HSW_)Rw z+xM;2)(hpR>TS@Bx4(DIF5@w+>e<88cMSKC^^h=Sxgmnf2eVltq+iVDHH|69nA3*f z(C*`wko8t{18HkYOkoyYxYsCs(wT6{xfrq^9cQ6^=;G+HOiM{d+BGlrE(+vFhjM1b z2Y1*zN=08cca zk>S|2|7Fnw+>xt(fCLag5nc^Bx+YRpEP@^LMBxctGVeUL3qffF8$*9 zJJ;+4pA}HPJJBjuZOdv{TiT$F=NCC4?njpV9?@ zp(#0W8WtJtM2fnU(XXDewAF*Pa>Az9z;m`weTMy6Y~xmlq@`{uLXFqmr4AgYOBQNR z{Ot3(bgwvSw=gyc8%_2li&C0rG7DkpGTN$?IoIOWnm|JqLgYpBrgp4~g?v-Nco1Ny z&24T8^JyO=a_g##+$C=uU7rzn^o)PHfI9Z+NALuu%6z1tZAd$#s^U7u zM#gz`1QGXdFu$}MXFJHgiHqV$s&dJK8u#X|pP}nQKA;tVZh>Ri{57_vW3kU|bMP)t z;xTUbZY5YAPxZRuFMsOiRT=cXgH@Z!@BCW9_CaK%i`_NjsRFT*WbM~I{<@bP-AQz3 zTH9tQ40(xl)ac<4ko*oq7?eo>n;a^Do#_fGv`>~{O}rWUg>S8}UQXy5rHj*yq(zZg zY^&bv91OV%8R`Ah)IL?nyU-RO0Acaf1@?#=cxZ_xgLdtm|HjxP)DVu>?#xBXZ z4sXatLf)F}*#j0`O;fnyQT`FxeRtHlVkIn7NbgWw4%@-8|@ zvb+x^S0uFwJ_%bcC0^PTa31!6+*< zzw$@*^}hnE{{fKwpZu7A)hUgFFvm@Rwa4+-kR5M8vHyez_MhT?{&!=-mNjUji#Xdj z+&qtFCabFx?ogLTXNX>xYYXx|1*Zm0zW+QUf@oqItA5FFW_7#XEjpKKnRsdflH;ZV zq{Q+8VQf(SdQ&=?HC)%-S=QH0k*A5TF>uPF4C0wdX|0&`wA-7e5nOxDsm?oh;T(H< zEb2pe1+!@7M^&%GYt8#+wwPiJ@<#d_tW7Pp)nvW-dR{+J z$RR(MkPz-;!$SNyZO1rba=-b}>Nd@?nNL3dt|G+geHIWQ6-Q!c4EGa<`M<1kkk7P! zKe+ozbv0{;Pjsix`b$L+T*y4Yk(31;yC`Dyg3;nz8;1}M6j$@gxVuC{s8 z=W3%|uZMP;(V=Y=`o7JukE_V0xBonqvE03x*47^!_GRp9p=k>RsWuzX$FD(1O-A%7 zU-e@ju1Yn|1^McJw7thv+hW#B!+YZjy>fj41b@r_BL1c$juLPxrF*~EFf_$zIg-zN z%pdE$S8$OuaKQfxOxDbWHYIRad?z&c4)kL1YW*hh^M3K>CCe1Sq)RNC6V~SR*LgC> zl~&N1Rml$-|TXIFK1EJreVkA)*=2b3@4r7YaTj7QA{eX_Q-XuY+craLw6|$?O-Y`Y%noFtMs zBktu}$6Auacayg+72}~@Ch#aXJ7>3N{)04ZOODnL5W)X9$xW&48ShQG5cs>NMhez>3h#DU8QALg1 zZ`lY-*Y`T5%Hm%OMUvw66j(uQNAr8RE6U3Cqsn0Wbh^gD_m#E78%+b_XD!%Yw{BxW zk{=f|8Bk`;Z48GO;Y`ing(16+ojg20K#5s6o0Fhy0BdlxCCwW37dEyfUaP`(&c?&f zC5l{2Yq@6r$*}k4bf0muEf-fxktgoKvikT_M@3bX!iLc8rsOX*O-XM4db%s0r$(%t zgt%)z!O#2v^$g(kh^;_NA#312IPD7=e)p{Xek^6}$w(#1Di0VZ78ZJSp}y&gf;NA< zvorN(68gb${>$l<1%hMo`XG$b+)txjS?$x2FV3l^(fGrQ2J7qbGWnzeR)sS1yUZ^! zrd#-KUNYmEjNOa#USPW6KDeX?=5pyhnEg zy~(`*zWd)m>?;6g>?<0H)QWoEea6O0(>Qg4WUK+*j$v*px==%riu!gJy>nZ*Y%)M` zHFcTcHTy(isa1m4L&*e^-7mPU7u3zzGXD!exoZE0lAAKsg?K7J#tPqRV>w?deR8k; zsPj`o610NG#`-Q>{@0xQAOX*1WStEzBswqP5zZqs*4cLdj(MfMXZc~|2fo$BB$}y= zTdjB`30}3>%I#PgvPEz^Hb2$h2_f6{V?2Uabb5Z6eBT@YI`Q#2u#*2nxvil9F$aH9 z97|Z9sr^0J<5}%%g3%YY_xP=A=v!5<92&`W_puSp#s!Zx;5~}N00JPwON>k^yVuzy zj(}=0Z9P+7e^k4sQUpaZu5oUKa_G(gj7p)AM@h2W>?Z7* zkoZi7>p0Jd%?1U!_p3)wy>qiXC6ejFKTB#0>AXH0bDNAHEOdy4AvaU(aMO)hFC(BBO7^ z5n+ZcGxzj{;WbTja0iDazYLppS&(~ct0h($XF&X%U*_B z#i7vdJlRosJTUJ1s!VUHTm>(}*W6Kd-yJ@@xY5@qE2AVQOqt16VqOBqv-_4#taF^h z^fm-7_esjq1)Y-R>7?*~-}uDnacu}HR>x#8g@rT|9Cb1EB=Ztk(^{O0B?qu&+Fh7f+hI?yVn@VpvQ=f>Uk*k7F%<1WE2L~8bY?`*^2 zC5tQCixluSw|qXOhE}}jtuH zqu_Jujp+@hh9?IIJ#tmvqmD=~&Xbu~K%SAZ|3@%XSm7nCxG1NlHX8UUUE;soZ4D;l zeQNMZpEBN8AstEz!`#Dr`hhvMPB#uNxE^E!>KF?KbjdnUwYuWq?a8u7bj{(rQMpx_ zJ^QuX8lu7E<8!&+ea_C-^`FMaOm(KSmW~xYV_CXvE=4Rt&^8B>=~IlVJs-~bRN}~} z{VZR{rT)9&(`Pgf=b7dxc|vml`k#dQh~mw;O4;xay8KHl1A{5^n zZOb8*amz7&+J-nYf9|2D%cC1*A1yTbg7qpA`@C|5LT=nxuGRuk&-*I<012t0`;W;r zet%{at4;2@#(_yVT4!X)( z?Rj2@sRh@~nLG4>i^z=5pi5tDw&7)p==E|S#|J~Ex39PWLtF_Jo>WvU^DMriB`KZ1 zbO@#WGXA{jwc_qOXK%kc6Uhm1{w%&GR;+&B@f;sPt_1kh(jpbsr zL4Gd_;;X_uXF4lB4vC1&!**3=nc1dvxEz+Xi}nhCX@otblv|F9VNf)b#Rd~^@pfz- zQ^%fgx@d$eLy=)^Z!jLO4iWIAWdb?K6FL5pf4J(UAAMV&uC__K)D>hGip(WA_KJog zKLGS54j3j9d`GLa8n_=lDp;AbjISa~xt3YW)YhT_%qs2U<}S~dfaMf9rtuDb`*Tse zXHvc|;cSf1Gb1-*RuR=?@EqCw7~tLc0M*&V1IP)p7|7=*+lFoS0*;G^bD3Fw#p?YAY z4B%xK(qYNORzoOY7@m&jFKDK!ya6JQZWZuU_6NvBYO_ix|kJyzbDy zls=Pra~7pFjaly6LXq*BthjG6s%2Z)rMNxgOw%@a{l2nhu2g1p`un#&W(~7bUThQ% zTWCBlwoIAro$E;fP>NJn?+y9h!dmx7Vup*|9CeIfVcIt7J-wJ`3aX?r8t1)QxnoU0 zLt!0tUzH^*2C9@OXkgBK2}aJ2TT$J&EH4^#ec%B;*A}%Ie_wLJw9yv1>B1G*lGt4r zyCRAyJJ=cW_&3a4^vX`^i*iCy)L-ziEG4ptZ}dtOu=!Ebo5|mYG(VG6&v@e!yUDPp zDN{hZetMlL4gR9$G&cu|s&3@-EWvBuBn@y`em$82>B;G9@!2qsnpSR{;(UXNd8}*| z-J7rcRYho#Gg$DcV?3E#8ovTq5N$qnHThoUPh0zhlqIc|`%odqf zicMJ64A1&aJDRSPcR=EA&$6wK72tv$AoPxQB*n9B<9R7lpaPF5sk2cDZ{wPVW{dJrV^$=@68E zfU-Owgwv@%Krge2=la{Xj#w>$(*P|`9jFg?5bS#&oxzNU8w__v(=~;;?uXwzxV!ac zOZ_k)9BB6+P?GJHsO(5fdEAJR!<`R@SaaSq|9PH z1&I2q-Qms*JS}>on7MCM)WzT0;6)@#Yw zO?uZZzrx}COa^hh4*S`!TJx8F4HBqgBQ<{#$voc+31cY$jgW~Bt zU$+rdhn;*+W8?^4c{jH0JX0Tz@kRL!w=i066Eu$RPfpI7+Oz1-n&>2&ehtLL)2ouI zFbx7~TEjO4HLPreuZyS6LYgp;g`)|ca|KInf)m5Ba(56Alijt8q)A$e-e8g%%0lsg~B7d%1@`mE+MhbQ&oJdJ`WBmNjqF)f(4TkM{;i`$eM`X;1m}SL&f+#+yfZNVl#uYRK_+264#Y$StSvX*m z+mfqUlG87Zzxn}ka?tqd{wSDM>AvKYB9{k=hW&2ApXS8;S??bE!7X15=Am1N?VE!9OX0D3zZ2|?D`GjDo&nyRyNqt%wOd+m^_fRL75Tf7+wTDnRjab{)qbomf+ zO2_X;*N}p3W~CKTcUU$kOx_IjZ;UQkC`#i8n<_TFirhF$pSD~0|Hd;=1Y7k+7nY=>e__JAeSzL z+V+5-Up^nIp%~;}>yx3fSUid&gFOlpUuy_toc*Ztx zqD#){u{w3cehRH0@nK z0W1lXAd}fzL!aD~#OY*p1AyeE`p4mtj@j4Nw3M_8Uy&@OgRnM{iel)Dv-TRdoEreL2Bdajh5}n z^)5Z3$jzVB>b54DW~@g>;mqVohOS30HgcGJ#>FWgS2c9#d|;pAaia0^3x>J9WZe+ zWmmWpUxwoR2EAR0qklm)Uin}rllsb&*uo16M}c$k1cUz5u-yL6x^pHWA8Ggwo%n>7 zB5%(hd-I?JWNm*+cN1~@VMVai_MMeF`w0OggPM-yj<|DQvZ+ty zu?jV2l_Sw030NTqYTFRQ`H~}&Jm7W%dWgtO`o=*kbq)RQme2?6WZoR}!>E&kFn6sI z0%t)^!fjXa43AK459JQ7lAQwt^T3Kf{eYsZt5{cjo>*mhF5(fm+VC3UtFF@krPv~V zX^ACNtCI6dJMfhk{n~^wwe25CDVyIqZ30tJb-aS~aw1E3`yoM}Vu_D5K%Vv@CS?WK zV!_(j&^#3P-F-c}UK{bZFrwvzg_Oo3q(HvVWs1y=G-bFHJH3sMf`yr+u$N$7_Ed#} zd<(6Wp6Q7qgv0^?E7F92;f8kO)N6Rde5K(9-71%F>Hyptru1|E0+EUHW5MDfSaiqq zC04`l<3r0O{n4KR&m8h%exoULb4=FYhL$tU%J%7!WoW$%-%7v%x5lu`Zi)MS>MR3L z=0g%>0LyRgA^&&T75^g7{YURDWwR_>q0~TMTT%|>JzV&eD27j1FrI=*sGe-r7iS3B zXYA?ou*c@A16OTBg;|*{bWEC;6<_=DtbJXCwqJXO*cFYHd3cM%=sLKagS;k$ApPh) z(v|tsbs9^~sY1!4G9g@%_y2J@^AGjD0H20d@85BEoBMa2;r`Y-=AXIwgy!ab}^3PT3klojFNDFxsSpr5uWUg}xLH(*x=&N}eqc>AzrQa7i@ z!EY@|G}}G;vPxtV8eFaiqQ`Ii0GWUe)c3h{NGV4smWr8t~+;I)k zsTXeYHCJ%Fgr-Jw18mffDgz=y%N!68TdyK<-_wrgJRfYhQe<(3p6B11DjUJQ+k0dI z;SFuN2utO$&Im6KhBGfD2xoNNAUAHp3t{M_R2s)5P!&O(awc~CvYZRT*+QJxxv#CO z@VJ|#*hENwW96Mp={$ME+fLrj2hpdevmTuh(HwE_-7OpXo>%|bKfWy_cI1e`wG-rN z;)&qpGS*l$vzS`D9AAm>a>@e_yhb8+iihVd%9G{kh;ax;lW)uFr-_sR^3HIwE9^|} z-!H6KKgT+~ut)5#_E(POBWfRxCC3t!Slb(YZsF1cAI7b^Tm%ej9EU;bw@ESMc|x_& zdn!DEYN~dgI7okuhHhk+5d%KDI8OlJ>h_~LVDz!`sR3XQICwLgQvrL z6li~fhX^9*W@@3ytK3iej&;c1Y*gKRILM&p_5(!gV{p_Trl^hnCRy3|M-WdznLO|ue?us%&gKQFi)bw#oBpd?zTm$Yg_!@?}l29%5Ay6C5R5KzjQmS zxgA3DaOfciG;(O}K`5CP8TG;CK9q_;9Q}~qHA8*{k{FY|3%X3bKtW4#+%5-66FjF+`QDeW9B0;azOf0LJVCcu zRXs_*=}|64Poc2rr{TS?hu8JLWJgK7@B_qvYPvqUI~CKcLIX@9n^B$-((o`3&$?H$ z3?p0L-323(wxz9a8q5rQ=Uev7U$sbkbgT-KUkIrSzE|$Fq)B=a&|Vm23S!IL-c|oY#VQ2MKv>JadgExxGh+IyHtIB*CmuU%?U7cyA9;#I#;sV5g5=L8d^^` zkHy-(N+ox}1l7B|Y`!|!yk4{(wOWyh1jUY)Wj%L~1$>v8c^#;|DKiO=u}|vIOhDOa zZbLzL-8X?D7qd;Qn$h6b=IG%p%%=TmPdhPop>e*S9`=@M?5dAx9+<~Yx11q6>M~*d zMdJL-QW)3_#@ksJ6SuH=eD&K>8)6_3g$j_b=@mRwm)X! zC)+628#zF{f|oFHp;;5low2bC*4MijOgs<)T#DdoS1x6z3nsBMYEE05vz^f>J9qSl zO=L%c2QSs>e+j1-wx>;!tx6I0+=<_Kb8$v;HoE)lBlu{{^2g$FgF#CiBy`g)&3jBR zW>uy;PRC5*8tte1USy}_)6E+S+L%=x*N7hHS+2?)=n}eW;2TM+8iDa)E+Rz z1k*M=K!hj?v4$obp|yj(3hbpgU#@qVH(Blk6cU85sIbcwM*>LU7T$37(g4A$U_JfZ zSmm*g*ds!3t@9(BiyaBK0^7Ng!0`v+%SF1`zA|HO84<~|B0T3cVwM2o!vuyaKbwV_ zFE0*<`NV-F+R;@veag3Mv-CLKtx>St4~RSaSj{CZ)py1ira)~ zE4d3Y^;_{n#t;}13p8qiy9K(#7`Jtl?#GbVxCf&e4h-pY zJZgQ(jiwayx9(rSA|kEumewe|;INo`w2~tW66GWSd(*O_%GE`MqGVHYXnr3c$IA#1 zL5VV0^oo3kx6%v721j>SI~Re?8*y{>>d`k6H0~lul^h^wy#VQEX1t9qb}Tf-ygKcX zfHPN(>=nxM;ESyGT`H*9Ykz5L`a2{}t)JC-0NflnhHPDn{9U;Kr(7Q9|5NVM3a> z!mY^{D}%Iw5MN98l`rjlMD^SfalCAS8Pa$y{q!g=@q#?r28RuPUSI<}!8@4LsQxc_ z#Xl_1{@<}XjW3TLI@5VOw7@(RrSJGZtBf#&nkZs8F!HF;NZ@SxC&T$90Hae z9hQ&fKd!O)1d#xJ++|F>V6;_qFgV~#%fcCN4tKAuKzE04ly_5GEchK$qC?eQ6}3&b z5)`!71Ba(#3LFOVe-hG9CFLShknuUK4x$TZ=)QjA_=uofRPP^-+<}q;;b#_G6t3rq)N5)K%JH0(eRudg zTzTv$a=WIqB1*&2nJq?om-H~D$_RN7;-<&smvQ{K)2XSy{>#^>dQVG;TkK}+mjD^t zVg({IG^lxnBIAGvB?^Bs^1X&ldJ8AtNRNp(Ye8XLu7)|#hmn`5F#BG|61i1P%;9Ry ziJD`{iHf(_1%V_5g(LW7`>&*k?x1V2VFKV-Irdi>&)*={L<-&qT+?H~OYinG&cPDz zjOZ>E`S89LNaJnP1PIoc zrj6Pe!rY|o2-gez*QhYZgO}z%?`{R}Ddm$iozeqHvzOP?!O)a;tpL0I{>gV4Z-VFW zfTLZOMUUBXps$egeDi6fEjDgDe@9%9^yF#Ymh5op{;4|oKkOMlanKv2r>MwysH7K^ z&j_LBI+avg%M(&$DpF@eGwNaqcVb)40ttFhlf9#zxtBza3?poTJ<`e0Xi(tTu`u(n zv{pPDOVR|8bq78syd}H+_`VlN;r^7ZP^l0l=^RCwFE?6K(G;Z%F$o4uYaEa8Zuebp zFPXnikTk6%Sv-OU`$8Y#p!aa8i1&(ySiiKQq<#JF0Ckd?g>AS;V|~gB!FApg&S^K6 zy2*hsD2vmz@j5g8$p17OMkG#2p48m&97)&oDp6*1*K^3Z*v&`s>XS=b-)A-AUqwl3 zPO7Mb6*r&SwWAII7*oW1`qYEvn05T&?5Rk zp$O4t6t^*ZTq})Vej(RuGVI%)Yn;IyliLk982XK z`;C-~HN*2VJx>o3!rb^(wD`G5kB1RT9I8{mer>i^i%#aS>I4&Tlq7d(3QXNtLVC zcJ(Pd!XEkLuHG?O=PC@Ay0EaG z811b&xLOPmOd;WwN)GD8FB(;$FlR?6CxJ=fYd21ncj<9TB~UO}e)9kdI~t#PVCcdG z>s1@C+AFJmsopz0%t z#v>6VkA2_$yfHPuOpAII^{~es&tb&=P9kHn_VCuthZaR0+fQp1t(c7t$)4TzYLO!| z%rR2hL4xfso3^_Ww49}GWdvXOcq07mH^IO^(2j{vY<^PKxU z=leV7Jm25*mzt<)uIqY#-tYHoyHHKx{xZ=b%@rp!YmY3Wvn$xV9p0EVNh88G`4FT zcNd-4c25q{|pwt9iWEC z#@P=TZR-xJRo;oI!}otYU*Vk%q%Y{m)(HMo(#=||bH#O#4MG17G56tyxH3;t++!vs zV1@Sk?ioQ_O0L~`PGy;2LFeG1fW!@odnqgo;|Pt}uj&5s%^A|sUgd!C*R|70A0ZsW zWL#Z>1zgv{yTK?t7x1NzVMd4`B6bUvaofv%N2TDOM~;7ViSj@3=T99fZ*}0*a#|IO z7#ll2D*FE24ZQ`edCQAg=n^X+)ki9D0w>d|VL0fWcR9_2XA!Q^LqRS@B=ch&Ny{3I zL-hcxR>nE$YFbHgv@h?J-#yvvVnKNdcU6`!N znH3@v46#}-nfW0DW%YU;*>%x2##dxda_(O)Vty~V;NQZ)gTu7Wv+Ot>H&z^plb5f< z?DheXSGgJHbWc9>Cu@d7*WEB}&L%IV7-YC-Fqo5e)H&$3Y`?_dGd!vc2gXYM?tphb zzP7%~nDP+|)c!q3TD2qsZwOD5CE7Rf;g*Ms%4j!}_0#JtX<@lTabNgD4ZFaceGgo*@2CGh^2bc&cN6gW5Bw2&j z8da^=j12LSuvQ0TCv}eDimmFUiZb_=uE-0l%Z!yHR%fGE)%aA7Pw9v?@gv+GmrL!z zQu{S%%^jP<;PjPi!FLB;J&8!jGtbL?-R>&+=qRl`L9YmYm^G8wBSJ9W$WzBS<^xKT zAhQQPzxSt?U*e12t_E2>f@0||%;sd+rIf7svSLEcP-x=0EzV37<)_JlB_CKp_Vd5e z@;xjAr4PBVORr2!Wfz7L5}(@LR)`vV90BdTL(_#?$#t34t?L}q+$(P5p~wN%2k&)f z&zuFYoh>@3qB_Yy&z`~5#^I{w{gtpA+%W9cy^9l~n|S_qKw=-b0Ihlclwp=?OG2XK>J8yg*m zo0GY%gaInCR>?k`-~a|uYD?_;=4njc&HAjAPUUfsm?Zj37Y>K!^8v4!T_i{Cug{V$ zz88+nf8E4FRD&GmL9x;mqqTdj8kpi`%wCEr@pE^HxFcZ_g?X4%@8>u0mu{_pk2%0^ zit(Yi7Ej7J<6#M?uiOg~Z_cXR{SG;%@C3PZ$OTj+$G=1H;95>};uc>KsPc=rCaX0O zbO5uq1PQ7TSSM!bQI1e%Y0Gy=s->^;+rR51Nq)9ds|M_D%)e%XPuyTVvdl4e&IK6~s0`ZZu!eu#bl>*`67ng8g;F1sWbV2RGC=-4;%bZyV zR=&;NikE)q&9ns&eT}P9U;J?nazZ@XN~vu!9A{`%Y+-BKSH~LdK~mLhenNXTyo)Z> zx7#&QxF)8Gq7b}9q?5aIg&D-IFE`;dJ2l}+56WWQ*;4$qV1qu_gbtWA1S zAk1c{H3My}hX1&R9XLrnsM79J&jG24n?g3|IO)fmT}VpR>G_<7TYcBpwty9-R3!`9 zkBL@1-nXuKBKh4iwJyVB-f|RLGwfY>g8~mJO4KuoC-uh2i& zd2-mq9LLvhbAIz%%YK$MS0&U|czd&xlssq9EMrH%))&H7$uct5A-$)H7pT8}!vV)N zc0smv?DMm*ANiYgRi!0GB_AGZII`*fq$GNoPjljwDdZdRDkE`o-dL5Hm1Zo#qkkZN z8c$ngMQT{MC(=~VkJ$7w7vd9FkbV}o@oNx5f2BXjQkENkJjUMr=>_Jzoe0miaz@9* zbjZT;>C;Qc)^e7Q6ys^nn)YBXwOz@o8kQ5Ay;39G_Og=W;-!6^F=+8}a> zvB>M7PMzh(YEEvE#KEQfqguHc8bSphf9T9^gq&opeNqJ|=i%-xaLW$_tcsp!Uu6$Z z6?RwnHk&zntn$QeQmOy>iOAz27r7#WPt|N3+0IMQ@3~(TuH=K%D~|Zu?KUi`&lLop zS{m!Dlh5qD73uedO8VQkR`xY#1^kF1a>e3UBsE}k2j@m?1$6)w$D+zL6Xuhd7t9+wOGt2teX~^~oO?6; zn9)JnRsJzc*^zhR<&>S34#t4>M5W8a3i4)r^XQ!ttK%OQpEuzIXA&mj=kIr;uQv|$ zhc(Q$uB$XN6E2P5v*cK2%dj6ZYyoFBx?WNjbhM|a)#I$+e7T)Ez_OW_tpiMD&gY0w zr0|ZOkVT&q^EY$QEL|czlyzAv6VMrNq*!5&!!P_Bd#=8727cAM(K#Y8%Oqsxmu^$t8m`L$9{SXf7Jv?%2g;``x17vs? zcsh}$kWDX%&$$Q{;F!nSN_utAh!9^{;r;x9dkgdT5h8%BK5?)@JAHb?#D@1Q9ljF; z$4^OkXM2C7x7v|jA}bFC!Cz$A{yoS2FTOX&!lh1Fm~x5_#HzK6MTD)J*nGVe>tQwh zePEJ}EargEF~d@_QAm-_-U}X{Twjfisl1WI0XI$XWQI37@22FU-3J=n?fPeR9N$MS z7J@q9senbxB9M7+dR+a7nI`t`tuD7b*n7FVjYWAfC_*>le-jD$TZ7vg5)K0{ zFi)bro4V++V9%j&U3DjH)EWT0rTdLuGmpl3E0k2OPe>Z+7>qu+B{NLvh$qPSZ8jnI z-C*(qPk@BUu^4ZWmC_L82lKt2V+1Kw=>g{^UuD5RHBbK{1QFZ~v4#Ty6P#9p^Ia|b ztF8O*x6>qgCsN&p8eB?{PgL+44QLOdfT0(GE+Q-!KvOoy&uG26E%CZjCg~*@INrgx zEbm9^fX*e!bce@&xPRE_#QA}lsC^5$!}Fcn`&q!A%^NOYKL(@lwFjhIv`k4J>+^Ui zIprQZ3f23#V;5Xsb=SOQ_~f_{fNSK<-||`G4CwE-ey;~YPpa6|W4=nK{`3+3`m4kt zON!;w$xN>Jyx04=!*WbUMHu@ZVJjt~f@n?SdoPF97eBHU+{a+(&)qf=VEBQP7U;@( z!B>uMG}X|Z7xz==a(fm@yuCU1_MyjjwlP>VoqRrbH5dmIB`-xg4ADunhJjSsYo2>p z>AUGqgjYm-p53=bb)gmwyjlT}k*Fdwo2qUNv|sy3Nh?H_mCW)diP&x@sb9 zcYf&1VE#|Zutrs@TK&WEmRSi53Dx~z34#4U+U^r`y*52FnjH6jb%qV0Q?(EDsUQ{0 z!+ocTkrh5WS$)8QIa@!}SMr3edMn2iJ~CSOp5@iDYA-F|8TL6#+Arc${&}*y-z$~; z=L~EA8qw_k3S9rqHUz&%&-uRs*Iy}q|CYd&#qtK(V_R?lf4_P*sPrg(Fqql;Lpn?z zX9$oo8XRP6y)$iC7r*WUkq-{gh341w`WL^?3HN9egaB0~f7iez}kOGfdh*pV+7Ca5Ag%vp+2=&m>-Rx&Z! z=~_ZMcID{OwKKTYD4#jjWQsuJ>MpdGhV#~X=Gd%lQ4cY`u~G)1>+^wNKMNWhFvWp^ zaJW_pxj3F7<;=8e-sI2}!hHZ)xOuDfRZ#MHptWA=Jpa}jOTc-HHA40)LcL<1zpo1M zDj=SkP>_kv(5s>dzaCwgzIA|l@;tFX)Y~Z4#MorMINQP6fjzg(=Sy%=d4<+uECVg>XaFfaWi84dl#8k^&iKp`NLqDL5T^ad#qQ>M7a>Rn@r(Uz^&=N?#> z2R;v2xuiy4%z8iI8h)Ae?pqV{+2jy6YpUQv5t3)FtW(6G`@XYmlTC?{$lT@TJS9+N zgZIr3m6?ax&jPtCqE?+z$SaV6lu}tTTswfNUL{81ezC+qa~Xd1WI8+`e(fQ&A=lC9 z-2>3NuIMCde#*!15Wv7vTt%T_8RcA509{{qcnT0EeQauy;Kh|VVF!hEP@$y1V^wg< z?({fjqXr%h@fJU-F6s-_cQ^(rda&>w7KQk}$D+91iQ2gFBVRv`v(hEV#PAC7TX~ia zf}>NPKgJ)FinG70c$ZeXpg8-QZ)|=X3dRG!v)$Nr?;+htM&*app+EvOzB}Yb@vcvC z{xGj+wXiK&N3?SqAprcaY3|c57<~$=HGR%->~N9uH+1hI*MPYCJ$yU;$=O$8U} zIZdYW0FYfw#@Bc708(%uW-zE+WUnP^{WG&#;nvcbldK^{WU&wg7_gazQ7=CiZ(j_^ zDPI~=t*BFG9xqkNzq0AT$*CjNBq70Ro11&fqM&ha;0?ICq3u6rdiZaVRxI(Uij_HA z@3k4Z=$w1)maRy1^><<(n3LNVv3eCij>)489+yqtR7cLRLUQ=`HQWu{we^&JqD3P4g&RteYz*v=oOPW8rsSZa&A8;r|p6mSPkFcu9Z zd8z5@tY7x1X7d{}PXPvzZs|klq&D14ZmOq?HDiR8kV44y*4fWOG6bEBT#eId=gO_K zY)dp&HQk&VV9ibpcGrGTd_9&99h7g~y?ZX`F8GaA*I@G&jM4D)*RW`B2lmgJz=<#= z=A}|e?Mb+w{3S_+V8;~evB7vQ>@GFN$sKiNWkHv?GG0TEbPq_1)kt%t#`SEfI-|r2 z1+?*fF4SJliK;XhKW@(^aGjR7G~NQ*ruG`aK^!l%QDg;kt+(bo#QqC`k!_4UOXjJZ zwAyX2G)ipnx$XR(7!$6cS^1PB6>+Oc3yeyM(O&MuRKAVF!EjAB{M%D5O#j_p(~xqVW7M7 zQYz(o?U4I~+uhQKbpEcwmvpsZYTqupGpTwHy=os>XDPCJq`VjD249CTxh=EOK;$+4 zL{Ivhm(PcMEs+x4?~v_&S!#bD1ifU%sbWTYbf^h?$~N~HTw6``;d#VLj1cI52~ zQOf#Pia%uLeHj?l)Bw%+;ad)<`s!VBiw=`Hz}pooUI(2ZJExYjM>h;q)wZWPIUo&= zHcj6ld{2YbBT(GHt@cB@FK}YpmwEd_;}QIO$JK3=mMQOzE!XWXx9q1r^9x5Mt^$ZJ-zb)HPXC2JkR!Z1C9s5-;ycwO6s+@ zFdr&!d-Mls$yGrR-pK7fnx}G+Gz{Z1W{Hca!8EImi@>)BlR1Xcb17HMa7g2R6@`gK zL-<<%MZ3#e?POGE$i(JBx|sKwP$LRH1ar%a80xU=^TX)*;12joe@+4BXs5J-`N#tH zY~PoOz^HO7sVxB^d{b0=No9$mgF+P<7fLZ%M9cLfiS zvYv^10jKL`8%)!4^UXnc-opHS7M%tBIPpeyZ_u*!N<2MjbME}@m7>P#(M;NT=l+u4 z*N5=H8wng03Zzm~a?KDnJF(U0jyo6$clgkP=QbZv=M6@eY{wWFq?@GYU&E9?L%u|A zkN$itx#RdZE)tgFm(!TR=xVIQ#{<6DWSjLJWuwRjuM=;Rzu5O1v27U7>W{}hk|?U~ zIW2!#CHz9u(2Dem`A_eqr!RVXG$4bjSh_LCvmNj$xrO~?*-MUJ(Y4RW0Z#4{1*~Zh zw+*9sKz5?HgvryrDXxObwHqkWeH!MzHpy!iQ!~LBu}LZda~(Kv4R*|I(!F=8D$Osy zL$=Z&?)!~|5qr=v)%|pxJ`mrN!7ZD5(Ybq_M0e#JJ;xF!qSD^pdT!1bkwQQ7O~ja@JpR(s+Hd=Buwt#Bt#D6g;+7C!lVNyWhLM?2&5R zK`3(vqNoS3nb`768O7Pz=Sx*)?<>vAXWl&2r#p@HL6%uTVKE!F2Lm#zeXw87Nx%?BphNBs5%Unnqk4ro08jd7o`FV$|yg{trQxM03 zUx6&j=LaFU21?{t{A`aqy&ukx`nGxeEP*Khi4agiJqmhtH^mpnf$-My*E*kfXOL&? zIx#lPmY0$khski%g%^oc=rGXyTlWDEA|bo7lYS!^h?17o?8}u_Y`HvrsMkB|TQCXq znUG&rCW(JIS0zqP51%@8d|tj_ZPsf0a_x2I!T`G+i3T1dmP?(^@)nZnqbGv%FPI`z z6q^ul#7gBi?;2M1@sff(OE#q`(9bXYT($;UcdDU`J1JyPC;-6B&2=-!H$+N;@aAZo{v^gUYa@T!koHe zJs&cYhf$>{O!{QJoE+6f2V8t|XGn+FCR{Vc#(jMI(D;59&{CR>{4}nuXST1f1$wEd zd>+)9?7*3ZGWk403s+pNo_f8_q!m~meTkF#0^e@4wuKj3#MH$MxJo2AzSxVphv~H( zysLN$xzF-tGO%4Yc4DZ^u*5+ww|l3vlof6A9qtNb3PGe~Uzw4YhAo~{I$iMXKK7#l zJQq$*!d&SF?II<~lX+?jLq6@R4eVn$j-OL8f{7MV&5s9E6!Pa$o!|QFZRuLjjofTl z7-+tKM!+&c09pTV9}(Y>hcsPz!nNzj99(taM5`UA?4SuhYtug^*QG=*J_c?h$GWe{{^-##zXhS0J1A z5@14y43KRHGAal>6EAqG?^RmjPT0d5o%apnh}-qt?q`$=+0)=}K)?sYit+(VFASW* zm_+Rzrh+^capKpySA;@n0H@z|X-dyzs+c+2+Y)7zjiQu}rK^S3^)e9=A($KmKvWmx=rbLoberEMDjUU8Mt9W2MZK~ z?$MD+|!#-iv!;*zVj3;PH^x( zFeml|G5%T=$??M!tBf`ggy(Lx1gs2u>8hTCx%ckjDQsZ8`0ea(gaayK+oYZfqdS#7 zyw?Q4Or}|~wdDs8V+bNp>eXqw?~rKL{i|5hr`TO%>fZYc09Dnq4IDsy1dr3DGIt19oP1R zVE!x>e&L5;I8RI)D4nn{W)XNIne5W%RIiS2tbymc#hNAtr6eplJLW~xICum*22%6WQ{tkI6K*aA_n3@SS zD2YbJ!5iw8U4SyI0n5V1ANSULGnPD{gX{WKHFe4vG~_+*mHVr15}cxqf8|>;_oe@ zy^<_Wgq_x!Gdm0|xjtM9IShSLq4NfP{fdvKafLQoAP^cGSzVUh8^1OITBSG9UUW>3 z?>sxfBPDG_hcVVWD7Opg=gGsm{hJ09WP?`!cZfc%pK5!)r0B4k$ZN!?s)w*cZw&;p z6EepRxdXV=3nByM8sBy0q!vGZ)bMBxzAEcxy_qAuA0t7|2pL_Gx{qkZ5|Q^mAPf>J zuPIuusLKz5jCOei|El9?1Dgv2j&${ViIUDuEf41oB;i&IHr|F)&TU_O2oF^`{&wD? zVgn^}%;%BX)SQlYpvbARn41SL*RtIagsfF6laPDbM;dCkB zF}YE}$gucuS}8~RE1^ZkPLjz2oEKe}zT4*pU2$>(8J*)tbzFyR>XGbrY==-pi1JqZ0k$X-xSPB6dqza$1t=76NoxUTC zX@KhQ34+1Z^T!dmhkQG0jdSK*W<1A7vvCQ#pYRi`_5UB*z zqe8bIMegtT${z2l?m@Ku|b(7g>&YGR40iU*h2oqprt_ydZ`dLl^qiKzb_lVg!rlz#RA z7hEF*?$esY??nesZVnglUq4i-QZO@t!G#dA71F%gJQW&W5b6;kL1$){w;Hvzw+m>Q$Qnl!x30;Umi&_ zc02Sr{Dnu_@2Y@*tup>kc>Ujk3cus8T%g~2{r6t9Hn8+gwICOhnU_N3tARBXbq*Ps z;wzW=JCC)0)y4apM3jFIr=fqurRa}8Tai5_Ko7#OgYuf@>W$<1H}Ze^JleAM*@74A z_k19~b))>^wTkTe>bdGdt58R(WP2jlgx4}JD>eGZ%HD$+K+~R|ejvSJXqCm@u@K~l*lPjXK{kVJ z9f&6x7b<)XdCClp)W$B;T2rb&!)X)!#ern&dO=6xaFHIOGP7W0TQKySFJW5=4)8B* zn4V;LR?k-<&UN<9!y|PmCs{O;S{oKTYm%dBg=g#2R z;E6usR{Zp9{m2r8s6&Zg$t9_)yh+2>-&o)lrF2`?Dn^ou*%r6^V!eXQZBELp*);it z9ys*+fo?lQcJOD}?aBh%qqBw<&OP$7Vd1dAxGf^AV=y=_VVwn!HCM@4snE^b2+a_;>uuAoahI z!K3mw>Jymy{R_5d%5OY6U|bNC3U5L^F|<$_@SlSFA!+)Rh85X5V4x-=&F#4gC*z=~ z@C>GidHIj!?k~=roMjuUZj9gu}kn(lvY>O39#~h5V#qP1nYYBhR@GesPYe${R!mUx7?k z7b8xghr=bbOUQX(HCS8sULWCIdUFRiF2Y!-PQ&nZ?On1LK2cRk5l-=H@jf~TNNN2{ z&`8%)+ha0lI=_|Wc-N7;sEq5hZt_K|WDvFglL^OP`HC)CKAh_lS2uJoB0RXVROaL1 z?z25isv9!UTL+U$**0bN0FlSz&)x3H?dIZ1z_$~@l^!dTRc$|(6Ub)r5}xoEw4E51 z)MV_vpTuIlrZDm4;KqrnihN)7Q|fH~=h=*gklYx36{`sgq`n8YYxcB-*VF6%sDU7` zKIuZu{_f}V|CQQvZ&CP27ai$5yFg9MeSYVG&2w?*j?sEL6Fg@ zxc<{UMWc}@S$w7yC{4_Llym}!ouaRL5iNaday; z3CG*`+88w*4_*ZwsMFY&xZLD_Qliw92=Asp+g zdob4Iu^5*vZi)7RqI1gn!`H0N?3*)x_#J{-LG-fBx#9DGY<2QyVfPPjhfVzd#P@o^ z+)=S)MmMB@C-LQ^@mi`G=sRfQookFu_cc{y> z3`)y(GFK^9#(XhaKHslGB6CqDpk!GlKV}C(-v^OqS4|GV=uxZ?M<`bX`4Sk5I^x&| zs+?SKx@UGOMWLZ%Hz3X)J#u=$ZtVo&=IasR8oxTmZs<^{pASWwI8K>y7I-Wd4Cb(X z@E^EVRTGA9!KV8j#|2k&(sv)Iq_B0Fo5Km8` zo7D|RT>OZphu%S|`{A=pd%BstfVSFRd*;!^qR^smvz2{mpJ0#POo2o2;*C|Nv>oYT z3b5}I!KzZd$gp1~mIBj%*fR&&PUe`cA?(4J#ZhcR+Y{^=t_)Gf1I&3Rq{U{!G5TS^ zsY!OfQgLSR%1z6w;3uc1@lCK(n3XaR{vF~u<;_S$1Nk&hQTs7E6#K{Ij-XsRGUH60r9BSA({NM>H-1`m z!3-AwA6ieF4X@D7asa6pYivO$1-|fn{0{MO^eWoV5}g8AYmldf4e@EFgL!96PuAR{ zmRtwo`~REs4!G7kbD7G_pTzALE*Q-k+r3hpWXQJo9rA$yuzNLnO8ZxnazU^Zw_l;d zE-ka?^wa4(4;tXLct&9|%s4_0e9+`Mp6qz*SHqf|@psZwHB~DVbX5fQ5ap!KbTz+@ z3I3?+;5UHaLTebtEuV{hKez2WW79+UR15y+S3vA!B0ziss^*dtpZdOWe z!eTMrXH}Tez>QFNxI2HG_AL@aK##mUIVIcB!Mn}IHANN~tGtqJWw+&(m~A>fr0(YQ z9pWWE#gjpnV-b$au`3(REbCrf&Od@Avia3)DbD$XTjb01A$HF>x;oS4eQ=YbYLDKV zTxpbDc{2;%!UniP>}j+F^8!Er*y*0@Ow%EH91GU>4guiwv1N5`!f|Y@@><~T+sPK= zNo?Pu*2evgZbWLDZ**9hM@Y08*4Mk(*Vk9?Q&Hs!%_(iH`f!W(#0fW~jJ- zVi^aj!osk7`@hnTxAn$f1e8sO!C=;)jnQqK46Mja@H-^f6(?ZZcI)l1rklf&kuas# zOUg8V+1j1LRnOj#>ddcS(ehjpFmmW@vzK`?X z&3J%ZP4RgfSd~hG2Pi}iI&dQjCQ1*83M4zlwyN?4XOw8r6_Ju&jPT8*+>A!gyDCQK z;&zvcYLr^&K)@(^ zZQB*n>9Fl1ob&>NG(dggAa*-wnMjMeT-}mg0%8PfDDdQhy_tVqh+7%cVVL)6Ay@!@ zRJnsUoK~X4aQWFi+=zY>wmX9wu3-);e)Ej%k@14a$xC0r?UQho6h#g}n77A8h5RuR z9koz^Bjz{Y_cm@O;@56z(!urV!HaFxjjCo5{>BHtLtcS?CA!cUTpf&pfC1aUv-h|G zhvUrBR3<262+++0>o8zSw{lx+F<$9Tu=CRi~NGT&^ryK<#^FZpTp|# zT*!ms?-0Q%_{dFe%q3!BY>)I}315K&MW8nB#ae}4+MSKP7N_7XPqMd#_mh{$usz9k zE;jiuZ4Tkinh02NR=_+6Af)d#%k&fjVXovzwZnYr`RU_ROJ3n=O&SREL6I#JLweQFO6!-i_*SoOFe#37*`H zkyX0?YRBv~R0Q?#hbKjq`^>xV&SAS8*6_V>aPra*nR4w28QakiWj5qS)ewGem()8dZSn(6W0@Cc{7=J5b)orYVvFZE&|&lDKM)y<#9}1*joJ zhHykeL(5$vs?a2W-fHv~bZP}}j$N}&mp|g0s8>^&@q?L6Jv~M^Xp#+1+xg55QQXPw zKHFs2DduP33z|7fZr=VfPPfM|5yHWYM6?Z)0p7|7|8R5B;8P}xBr6{2cTWh6G|eq! zQ$bHd(jn)ZtH`Yw(1Hi_$+`s$3LuB74kipcz!=Z;w!TBc-4k8$JXS1>7LMp|Wq-K& zag#UcKlLC%5VhaaccEWEnF5@|Fx}+yiB{aFL8_&({SXKzHApRM>46t+rkXOe$>G29 zsh`OTdPgekDKY*UrbMWrsO^`t+7GJT@K}7dspZ3{f-9WTeO~wm!y?bGKOlH&4#Dn2 zQ5>k7dxQcZ_+`~9O9L##P(qWU30BzlsEjbzI}2ePqbbZc1lsD{N!9_|JdIjVD1=d+ zIy*f$B43qKx_(;fQj0;vM|cCYWGZBF?mtGsd~slb8zkB?+>rft@f9*QT@SPvHyrx1 z+nI{PPnrAd+rnO0?uIfLdi1Bsu%Fm?pFQH{OPr+PivVZsQn3>bif=mlSaJn_UOh|v zI$d_t^jG^Z5P1EEDX}~LR3v}?D$z=JnF_!19by93WOyxW`@o3<7Y`VP79PWc_U<;O&BvPhM{N z$o%%Zoc@xtFVZfpyt&!;_9QC_c?h_&TAL(M)|J7vkl|ASHb-W>wA{@lpW1vKu=#R6 z0PNE$pyb6yj@W1B3@BZVyju~(>g%;i6y@UWv|)pL_R`O$EGi`irDo1|j#$huSq>Ss zTO+Sdtg#$yhaD@*WKAI3gl`ap>~?Hli@x6y__4@^)_kZlVybfk`Qq?#PkcBQZe_Ya zY(ngOXp`R=BuL2t(9tMBs4D{c5xPH&i@Xc5qsGk0_ zMcxml#ea_W{DWNKcYPp#>!0JBL8yY{4_uRT@K7A;d`6Mj!Vb_K;MhR6(Q`UDYpDm< zna-l#Iq2>6Vfj|Q^&%N&_~!~3K_VT}_DK3_I~jDgbUM=iEnXkB!&fw=qQeAedy_la zqatz3jihsxytfVZT(xy#+S^z2W6n6BQFR1ZTBTq=%ITb?&U@YZ_Qgx~4*qjVr!Evl zvI+%vORWi>(#%nx#FXxu-Bup2k1RvKyrLP&GqNZsqKaKS2C=W3z_gTNI>cJt6%k>6 zgRdGnPZA(#o4T|4Ti4>aT>JuDj*Oq({PtsPSItgKhAIA7lX#%Yn4SG^K2mtni7q4d zTqatZgV6+l*M8%2O2n?%lc~m2>VZEUfOxT>e*cR5q=U!%`7)kVA1g^flpkKI{-pM@hT!R)!gDj)PeYm zb(s(SFKG#_A(f~K6NF&QjY-Fy-yu2_zW8CYZ>^FkFQYE8`;8&=)r7>U(Ry^2*&1r( zlAC8UqFNN}^#6av-oH`Ro8wyU@-WlVZ0Legi^|*3Z_ywZD*t?6l>%D!T6FV=(vN+4 zT6K-LSTKa`2p0No@SeMh6+^$6svqMCyvra%H7e54U`<_Pvrq~k{v6cw}+ZgE1-MXx~t>^Rb8H}+F=);4Plqgnh zQ}BbTMcF=!+{fL;g#+I~zY12`gGN7eRdRVP^Pu?g*l?~mPH-9&u&Rniqxp^-j=)G;!tT)x z?NNl;Jw)11kFhyL3w<+4{_0K@3lOh0nR{nn^;0;r^?Ao!?vK&#Pe(YP(0aWiYsbS= z7df~)M8o(DyrRH_wC6_gi^zk8w)s3SCli$O_u2;shBWRDgL~9AZ|i~;r~|kN8exGI z=vrYFyn8$^F`Y0bLzUfu)30ZMgR0TfDscc+*Z8`u*KlD&$S0~}`@K!)R3K7cB9=K0 z5T*i3E_5FwH@#p;%k$XWT6n8@5WWO#wzZO7RQ6{VU|N!sPrybCt5vEN$o$d#YB-$RvxV?&(Ut|i4minr7sgKN3Bst_TL z*xyI*`+-O8t~pV4yx(<|7aiK*75hd`=bDz&%AMzLhe{<%pAuP1P<2&9DZYq9Jt}aL z>TS~3aa5OcMtt9v`LQ~eeJ=GjuP4Yp5~ECZv~wde1nUAhe1e;%|IagU{tWmFUWG0=Pr2wAP?Pa%|vRG|0>g;*U7HDasEI z!RM;oM@RwSkdXC&JUFc3xP$R!@@F-+!3N7$ zDzX;IX@c5nGg~%YrU_M0AE)^tS0Z3^PWd^*V)y=YEzUO1+!ed)8adc*P+4lS{wN>( z#f^KGhVv@g47 zUL_@{PI)~QxYXp#y9o6yPJW?F{ScAt{cuI%7?KO!LkbAZ=eN*KM*BRm-3YaQde@3- zi$Vbcj5UcKR~WbL*nxNarsoLUZ&aMVRLc?!ty|%bY+2iSCdWhRPKytx7@o=R#U6BR z^bZ9LCcFl_bUf`s<-U66zD|s!LlL3y0`Dkteu<$boUTqV@;%tKY<3)d9&>&{ad-%G{BL|Yz9R~hqM5ilk1bK!Gd@6 zvji0Eoy9uzyC2D}2-wmkl7RQb2CNu4!|%3e?()E}G-ToE)$foqqI3hJoKu0iZy~y8 zAaf^KY=3d*{{BPaM;&XRKm+JV(hE$b&6Sce#hS>tz0zGx2SA%CC}2WDaw?-Hr1?k8 ze&U%-Ux0poO!a-B24Z(Et3O*>agFaQIt=oPn8(o<92`7@pKr&u%$i++357-CZ)$Dj zd87KK01tQSY``YpfC~2mTK;M4XxCykLS^Av_4Tj~mC5Y!6G0MBEDxq?9eWt0sjC6% zi%r)Fd+7Vg?b#xub|)M;=>96h`yQX42!LPpmKuVr%7t6jTXg4cs-ByXk`%M(YEER} zUmxD3dTJT7XzehC^iy~=I&vYtI!HUHgDIaOa$3&tL0k0J3Z1IqVm8E6p<)optp+irEZl%0r&Gu2B7)V_B4q=x&nAiS# za=3MzXF((;wn^h1eA|WCb(!x+-cl6K9!%^*3Z^GQL*)v=5Y13z?4)LyAJ`Rv4QF;L zdAyOZ8y(qL2G%K?aT~kB>K$U-bGwzbwxEc<5hDeX6$G$p%)}LKWZr!d#`*lvaWLz- zg(?&RnLn8?f?%Tz_#-_h2)u`{)ShR4>btChb2IZra>ux618vsqqKtqD$xKJ5<^0^Juk9p>P|uzE#;=s#ZHWY2|Er|ozdCvApt}vkk4e0q z$mR;T1_r(4YEN!Imd7NF^Vqew^>woxA^>|Qm_?r~FuTbgUyRspd*y{cKrEVC?1eHm zqp1U#Ap2ccg^z-~aK1~$LpW{EY)jv5(a8CatH{h$=DzQcCs?>BI=V*3gM+b{ctU4N zxct&;FSvv|$=Xq96^`KO8_|$TrrvFOaJyGz?VZnX4E$-{+R(z-8hcVdIwP>j@bW8} zlFkST1ru^{0BOHO_B_8w@B!FqwU1N7K)OTd?i z23_`P*I4Z$Y!~t?7~xW24l3 zxBR<7ws}V)(4tz$A~jN9e|n#!4*i%6?E>Gq5ii9@19Nhq7W6(iiCa51;A}3|WP-_m zT(<7@M*G{R0BYyXRsRDezAB2utnTHfAn>Mb))zW4S3zL2<;A&NE3x_{pZoS-vh|jD zMInafs_;!ZBwEhGjxkrpgw{`ItmOBUZte6vKmLTNP}!4FOwI_}2l5_!o4(Y6)(G!~ z-z&Usy4-PfuNT)60IliALc6%jkVEo^0=`;~DM-o@uD5qZ`)#Uf&})|4|8 zJJoP5z_l~^o3r&{gNSAPXKz0Xq+f-@t*LN!=VfS&%fUepd*WArl*W>`@ORKj4Kn}B z-saCI#5yv(%zO=fWuW1lhyay)#3S;IP+&7Rb=eu<_82;swX-C}cp;X!t?)p!W$6Gb zK675*-V39Y7vqs(9#-qdS%2g^%af3`~Udb z|E?wNuNE)A+PnPk*7`3{Fuqx&P>#-OU9MJ5tC<$a5_*uaVQm?1j5yZ=I&NXO^9I>l zwXM&nGyCg|Hh1_++bWC?B^~aOhq!EIUrz6!HN!S@IVPE~1^5t>W8?hp){Fbp>U*r; z<2yN4PD0Yl-{=)aDW#k|{xSl>S}M1&20LhOfw@H4z_Rw_9S^?rZikOO+UyYC){h>f zsx>u}%+2jUS}?blP5};S$2BM=PqZFD-U}TmdARxvIrKIbblY`X<-Zm;&Wll(>}D-> z%|0=>!+Y=9jR_k@s%7MB0C$Bv_9|9THOw%!m3}tDm|Czv9O;jN*w|8eq9$$ruQN4_`}dwYjpl-2~elK8C#<+Aa~mLptK@xNTuoH{>aEIIQs zf?w`5*7x3<9BDyIZe-2S=HUGUh2K6Awu*(YACq~cC)h3`4!n7c%d2>~zSxPovMD%O z#WR>79Voc}{zsee83b+m9{e@m$dB^s7r>RpW+U`h-o|gewf|AC>G!&Y%U%xs+*@== zTW+z8bTZ`?}Q>CH536wARxVq^xm6DuhK*BB-8*QYu>fyv{~ouv-h4kXXecJ z%^zM|cyaNDw>|fB|L)>*$%xWe*XLdejW`}m0-y-kVUA_bXp3+47LJM(50izIJu@mMx0W@neF$%nN`axo>K_zE{T1>C#)*-8(44gZk4^LuMOS7#S(s*0Al9`exzO#J_%W;{YCGx|&zo=Y z`|Nvz_#k6D5Z$CpxM-Y`wgOSPU<=6oPO6FAGEYS5hj}QX#mlwh+r|V)qgdmbx#uo5 zET%hO+NXjbqu9qJdij|zL(92Q)9rCm66MfyVUyJhgdgd}i|62A{7uZ;O>Ycs$HQ5r z)V{2#svfPO>o9(j-+2&b_RynJO6y*;%&AUm`{s7WRYW1A$hY5Glf*s>b;;3Q^=edU zw0I|D@0RQ}@891}KxEjz9Fb+cxtjgSKiwkEgAP>jZ=t{EH?BTZCKO*w{8K$sfmh|$ zW}V3KA@z;vd6h7kzgv zUz6+%?0+NxdSp3aQyaL|ZoX{4FUQpV7mojLeWw4b{_knBRq>Mbn*@$1PfH;Ar(=k4 zqXedd&0UOQd{B#_Pl<*F{)$|OBJVh2CjrSMb5~BM^gR@%gT8&B22USiJB9_3NB4(_ z?iw<3{uYqFV4dkhZ3CS+~rEvQ=jPsC_9ZlTlm(Z<-X=^(-cR)E%*)kt3M|P4w#-WvQI(2L;D6v3c zwPJ_#nL$7r*{9ktpmN-90dBdv^D12Ywq8aQN0cHxjVvMHu=muR_7lX$;Fm^K(4FNj z)}PcwVHgxL&)@}CK(zE`QYZew_;Gy785v$%_WWhy^5!2z!KYy;n}<^SjG_9_+mRQW zy!mTA(8x0mbV=G@5a|3*@_2vd0sl8T2})&vCb%!ftTR~KcIy))oei9mCKqO@1r#>3 zeA|!2v~maZ5c!E?!<=6i2n0)W*j{EXS$C0{m{*WukyWzmqyb~+OgLKfkID8^C8LQw zs?sI>CQk=TsrPTa6~P)$kB?fGO0k43I%!u&W}Ghzb?Yuyj}H$Y;2axYZn|4ri_KjQTI?6KM6}l#hKWRcik6-v{Sa`% z!LF$xr2x{koPdgMMaQZ*=6KwgetLuOZE_GHu32u+%WE$_OV7%{LelNCEn9IG2RW;G zz#hQ6N+&0Fbxl6~7TEQJC~$&^rt>-l@v|Xq$*xk%^o>)4l8n3IBNIZLQM(&5!1%@e zj=!J}AcBLnoZqdl)sk81?yD%5KODfPwOCjHkq*R8CNx;zJlo^~kM<=32CvMhi8^P* zoPMe1)uX{``&_;eaA+OZLX?j@cZb9EM~WvrnflE3LOZ<1$MFs~( zmVqo;(~kbk72HA9@GCAoBnI*Q@%wZIfp;(r9f1YwjMJYC#C%$m!F8W$BQhj#cL^i0 za3Celw9}Lx+t}o7sL1>}!j;jqL1{4^2p5z$sWftEYX-yH#L(MMDqLn9h2b_x8Ta19 zmlpw*@T)s{f4*CR?-gGDU{byr87MXMFTmj+A4$3AZ+lnDds;f=>GxZ@UsZE>$hZQO z0e(cwm8Oco2sTWpF694zNGSGFb zkMagHdN{2sjWL`$MRwn07k&<|Tb}jHX?>XQ{?ii2NL8^?ir~8 zQ!9g{3TE4pr82E1XC?I=X_UYWIl`_X6-eb<40xZ!Vxe(r~(q`xTAsv}5Veh5ypUsD9lJcasU;|Do!|!D_i7 z3%GXX$JulhM_v2wl#jo)+vl6X>;DY!hi1xvYYN9SNk1CnIGWJMeOv5cX*tKNr|N5E zHO^cOX|wBq3X2l^+`vbF3@7FaNyX60eo>8$9v`#&*z3UE%+$T8asouNP|l@RUKRlY zWQ>tv&jZYp0KjJ<%?t{CI_`4$rc=PBuZMpZxz~3sgk4>d-KN$=Hy?M?_x|xQ9Arzo zp?j%T_UdHhg4#LYm_jC)S)D=R2T(cis29iR16HVZrI6vbNtf7#o%rx^jYj+oKDC z@&g2eRnvn}g_9_c^7NKCp^jK~MU%`kNXNvgCn5sMq(+kE^K4P2E1^^=(S!CH@zmCf zq;&2B8MJ3QSp91aoWSRCHO4YE$L2mT@w52tRUQ)AvuyL;Sm0 z1`bY(tN*-N$}QN`k(^I*%-Is%bhLgK%o)}F?2>E?Y;K}~>VI;9f`#8khcvz$^{_wd z9dRXxt%h-58m6^#BOl3asLRBC!x^KDVO=I{H6tQ)XPhiwKZ28)NatKn+4Fk#Wm!Jz ze#Y@(_|xMTJlH#cU>({DOyGnruh!f=UIkr%q;Ab78`LW8?O# z0ki9VFwBpmtpj8v3?n#!qeNkP8pbCqA>m)-VDZQw{xZ<6Sp(~niS{f(UUB0wxVIHo>S8VH2Db=Idr40Vn=tzyU?>K(XmMd7f$#(RP<)-( z40BUA;PnGRU_UomH2D!{r#N~OJsELJYi;8^nSrA;aW=;HyFa`ok8nIMC$s3o zA4j2?)%v%VfPZm!|Hp$P!haRWa!?v+dccHcxD34wD0>ot?!2pic7FeV?fX9o5&jQ3 z+5hPs_SdiS-+I-AT>mMTCCULW9gnXAuUMs1{>8$X{~{Mwy0CTOz{Cg8M;HMITC$S=={dYPWt8uUYa@*quVcp+xs{eUu`RkYE@BZ08<+1$he5C(gGV!;ZkH32C zteX!LUXpPTL5=`x+eaLwxp}rnMEiio=WLsUE`puhfb&dUKsM}Qisx)*Z!pZhoN|>? zF3kkONJ50p8;}WJji8ss$^gVMXt>@ z6&6*`l&ruT+?~?#q%a*31jZJ63#0U2`uh7%`z82Ex6IOyfD=#%e@4Hhdn55w$LZIs z9Bb7`m$^r(oX(>M+K8u);h;m$W11yI)MVO?F>19eYcJh2JH|DMH|Fd=w}-!de@U3) zT9VWTCHaniJ&@zF-B(rK7;7RWVd~;GHSoyS`HW!G#5@D5)qaQ{hTa+B8h&f47Nn+f zyV8oTE2?TCrltiZ`Ha!UocRv z4HR;26^z8!+y$*%A@5mdBH2Uamij|wet9@3rJ-DWOsyUvf$?$v88ZGz-!Z z?7A*BSC}B_{Ajo ztX0Fc&s^UDB8?)Bf|3aquj>zedE&5VC_5nqv}^E00(k1Hog7Ep#1$O|sL^}qKtKpt z4;$mUv?gieAA@%zWXDXuK|5-o()laX4ZOIVPQ?D#J%TCk_p{D3OeLaieJ#z`eT3fn z$WTUARa?DEmCsZCG{<Uq*=*9}`dNIfie;<>L2yr;FlL+t2v#B1Mktf-EBpqNN zzX9TgrIy52 zHTaa4tKC_Qqpe1~>!k8ReK<|O2BSNgD)QsTL2E+{zfLB9|NLC_Gw0Kyp=F!0TYhJ# zcRa%lu8T*Q=1{7b^T-pPb>1cm4yiI^LWrW0#JRt>?llY?|Af7r{o*R}lEuNGndR14 zI-2sN*sR3nhUuGwcEg#vuTPj2j`u9Q9fQB{W~{?vTm!W8=vGc zna`$Jj3*y{`NWA_B(B(Wcej(N4&|tcHuRhpovlKJJc*6%mIpGT+Z~9fJ-Sgkaq~AD zo9e5~CBnzKt>T2%RTAxT`8!rtzmtNfvi!Y8=$GN-m9A0n^L65cBuFP&#}*;Xx@QeNA>WRcSbTSvP<~1A3nk!TtIW?z+>+qqqKzwCoQfyI!8gUgrAUgd^cGs4&T`_7nWmY*4Tm_^NPu?wMt*AinfAG0S z)Wlhap~siG+jAveT--m7eEx9#R6)z80LVjNwM-dbcz=o)Lbd`K$VCPVa{2oAm|X{Q ziNe|z0x>C};*^x8H*DKsoEiCWA7seQb%TPu35OCh_@pIJ}D(l?h?dHWY_NG(* z--%lD?Cp1VmLAR-DG-?#{y@nB$zy5?PRvQ20)(6T7aC!_M$r>HmasDl=Cv&BW~T8I zvms$VXZ???;PM$WjV&M|gDoAb{k0(-=%T4AABbHvG?u&r#C#+tbm@VOYvs=YTRb(k zxEP83f?b+?8rHm;_L)Q<&Uz0}sYZdkQbvK`VO8mTI@|HNzyNIWYNbXPo_vJRx3I&F zw{M(pVesv_nUK*>(5%`e`i zi)655-GXjrdFJlx_islMKl6uObp?6KV!bh>2J0QB)N27?J(s+OZ%R3+@?(+`z}9gE z$7Cyp^rhb`lvvGbtmWpOyjBg1wjIe!rzqxWm%I@|dSZewe?eTnVUXP0@ zTKjJM7){V~K;~zNhPX$x)`dh#T;db*)$DbL-ocMZHE>%#JGfeMrJ$9#D#|{k zacjPaiKOQkWqsu@J@5P2BXikxJ-CvH)|%NQVf~AuM6~{=?nB9=x4fS~>uk2!Xhc9! z1Cw)ps^r0L(Y}Rl^nmUhTa{1@(g-i>rTb~aj}DFd4OF2KRuSf6$T0eH^tp1e0kL4F zUG)n81Mts<&n3B?(*Z%9ehgUGuVo{<0zqmn6Uh44)tcRXkDzttSe-i2zEXWz3(A7pJG4jQrT- zd=p81C;E2Z?Q>RoY4?7R*DC$m0-4J;pYCEwlr`Lza=bpmfB0#@7#^?QRR*{8(1C|c zr#u}fIL}J|G+PLsQy7W{s1r!Hf(NYK_xiFCCKPehH)s3Ymc@3wIzge`v%H{JvY;Ys z?wdGIo>0*rXC$Xm)G+FtEd8kf@;3G;-DSw_ zWPiU?DV(^Xe%edOJ#8UKC)fiYU$>Hw>tQOMazJ!|!wd$Zq`$-4VCna}`6}$Sjg16h z+hkjXl_B%*Bau&5nxGzrPltWj%v`hOPwsxvR9>m{PY51Nx&T(u;_Jmmy}ug-CB}NvWgGSFJ6fOvNio9?mN&O6o@UI| z+`7IdrbrYD^K5M;t|gV&mSt-WZ?HB;eYs>&fAxKfx%fzQsI@)@aZ@Me97Nuo-`ynX zg@HwSDW(c^n1=3ieWaQ^M*DHOr^C57E}#Yt`Zq1EmX$ms6doHR2! zatb-kC(B7U-zjTzp$- zmH?D3NQHO6!N;kJOG|b_eAeF0r(F~QeO{=Tpvg68pufzkaG+T#jUCzH$B)@dD6mZ~ znh;IOCyF>pylzD7nLyZkTIEkA+ob~el)w0`2CIf~R~!}I?hBKaDrM){8C9v_e80Oq zD=42<^Gasp%3!CAC=YuWphze&OWdejE6UN1TT`Ls5f+~=QZ{Y!FuHo=z~&(%?SN{} z0$A+uvp#{(WCJ^vt7fsW1Agg{@iv?(kOCfx?#8#}0w%DTiPEkf*Spfd`(4jAIXLN8 z!?%f(y}Y=PSk0B-1)Q;%dGtqu4FlItqZNIs^oc6L75B*Ew32)aNc2v*nMB?+tgVrA zV+rgejpt@G>`*;>9EtO8QPq4kW^q{-jzg0$^h~Q;njrQ?R`mw~hmze-1FtGora2?e zMqYoh?kkg!cngFV<==$#D|jrl+1dMEpX`=YxSXBTfil%P)Bc$Gq?n^A3q{rq$f)G} zUR$MzL4<}BFH;H`jP32G&Y4H3H6+f@%XHj-Y_8S-A~);hj_(8kfO5r@%o1}0Sz>F# zKE@{!l+n@8|JgOqpbtU~y|Oyy`kZQh3VOU<0i^d~LbaK7+vcp>&GtA9Egw>;TY#zJ~Z+(Yd*Rq3n|s}LPj=-eBEP?Zp<~TJC538fL|U^!JnYOtzQ~- z@rrQP?Yd7gucB~Szzm-eM{KtVC&7_t@A71HI|IRMwambFuSI3%T$9B2wA++aP9Q#4 zG^0@6LvLr-FdlHu&78l<2hxAqu))P_P3%~Akve3(X#TxOn(d06OY&0nvQb{)o`%9} zJb(045~(uc{0jkpDhwTsGn(`qYtYTL`Ucahz>3x3ISJ2XBn1MJ)n*G}AC7k&3{zO+ zWxD9_tkrlKlY9k`GqXl}Dd~o{T4-p|v&pPDr8U4m7Xa1RHhw^$ecvCnNHG0(7&CwO z-2AWp`%|7wBalw|XMQuC;(x@5Mc{u402eSxxDWGycKe&%AU@pYPjE4vYU>Z@-hHWv z4|aChH8rv3A)EpnWi2lVIgxKQNyU~In5I2A+MR4@?su^t>D{PI>ne z{4jPq&98>N)ui)}i3}^OQ-DDY<#6rHz;AuRRqTT6z4d8zHL?FmPj{_BBl@%zjpb=` zJ9qza8s~R@VAdO_HHnlP@&7d8f6BGd-wJmF#8rOw#gY_CfY z{fY_9)5jBY?I{*+$3ZDMc5T;q2q2_ZwGKEi@4R&j=ZzK2UpsnA*@ciz>jPbHy_dwE zNv%@%99$aByTtPGpG)R@Z<-I>*11WrTmSByKo*igAvn{@O5Ih~$^8EDGyeh-5a9^Y zh#erd=uNFeC3OfExZN$RQKc~Y2xJ%9(F7|2wWfiN_$qxX(2UjNjWxIZ;$GfB$J7Jt@dP zmzPTv{jfjIHv|N5$UHxwl&13@^(dpNx~SuY&vwpSUyYQcI5Qp<3Jg$rEJQbg=m&62 z=rc@GKqdQbzdC-YxALCYbkRp?AHpt?s3X~VFI1o{^jy18?Z&g1s< zmZ!@HzKOkgiInP(8j0_OcKKya!kZUAXJC==;_bSg3zH-}kGDscQ29^K=&l&YXA0S~ zRyplJJIZtudAkIK3H~_jzMgRF2+d!2u&{mp%B$^@oaNvTRhOCUQAG z^604M&;}7$n9t21#c`Jw?mMF^D$As6`qVzfT^bzK09hSHzidh^!UJRS8w~9j`PF`s z6Hcl)MINpp!x3{&Iv}-u(=f@)72vXWPRZ*lL!3!Nbo3%WFm`R*ki8y!LxK3F<-iYC;RmT*6a=_Ch)@cmof&Bq`UnQb86ReBNBHCcEfS->Zk-)+`v>NNhFULekxC%Mm`(4@N z+1)i&Vvcppv(c$bIL=CJGVOH`REQA{e=jN_Ee0g(%FwSEIJC{MGvH)~`CW~5pT%7s z^*P(!{q$j1>0|wsE^%?jUg`Mw*k21|4RWPhX|x!UAlG+X6G!@xdGg#>voWoNkStQg z^-&1W!{KVEImRbk4E4S^8@Z-O-4IvXqRBH@F?e-T6iO2ahOns4`ECESF5$dm8}h2# z>cg_%izoinj?p|H(XO~A9w5+N{<1paOn7Q*d>t{J*?~x_)HSpEojt{M z&NRJak$kjjdz}D|XYQIIzONiV4#d;`26}p+3-CCGw|)1T-4WR@<+J;X{6_rlmq+8h z?;_O@yI^~_9?VYF4<6U2DHhR=F@h=nV5hGQV#dRKcxIm$XrFnu#I^ZRgBsClok6Ld z(!<+v?$bvq{7uZSFO`zs!Dyf#t)we<+>^s8{lDY1vfpOeo3ZM&LPZy`)EfG_em|QQ)dj z*V@%8lkQRC(k`TIq#}SOyxB)x;=e2xa~Pnb#+#CI?~&(E<-d-$AkC8%O}rT!A4v@c zt~M9_>bdVej+Z?Qa1uILxD8cMe&dU))voy*LE;IzXrX&ahZ!0NhcO%aNL5r~;P2_I zm*!C%O=TYvs%xTZm=Ng_Ej=LIuPuN}-6*BO?z#v-SvRJSqvlrb`AW-nR8w(ytc1&9c* z+rRlJVBNE~O!(^?$CCBtg+q4*=o~-HWl}t%X&jhMe0!X^SiC#N0Odn>Og^7A+(-@! z`IT+=GtWSw%NORJ;+_2a{Gq);%`6Yz{%Au|TN0nkD(2>7L}Fdd_%OcE^Chm}Ne)3b z(R!sEhP{;=HCNdjCC!~@D(`G3$u|v*JIE8F#RR#zxq)uIxfxb}S0ro2R5sQj-^Rpl z#K_>oBeFdUy&mfq>MNwyC{F40(ON>8qCiMV_sGM(gh z5}!Bl4r28QE*YwgdEFfZTv3JzS>GmK$sZGA39~np!aTcuKpkMsyM$wfJRNDbM{#@^ zMqB48U!^=4Zd$Iz*58g^nN0FPD4=(NAjUm~sxM2P4GOHpyT{xk`wgcl6oGoVpx8(k z5GL|!FNUZtr}{#2e$Jy*wFY4@$`#GH)>Lh^db6K;UJT@^Gp*sn?gct&25;FFdpJB9 zHxZ!t$Db?9EB?MXn#6UDOJDjuD3Mmz*Sw1aJ(AJIO+hpqUWTtf&sW2URz-S+8bB5 zv_Co(2W=>lL6?&;NRnSlIesHh?y?ZW&=5Xey2Eu(J^Kr(*xFw1L>VO~#x*{gZDW3bTdi7Vy07Z8_5QT<5%#mSWeL_>ZAgcV`-^U4_%+KZ z#u%_bhg3IbgV#MYhhv4$(5n)sW$76 zAM)Ye1r{?bD9jRmJ0-7KuM#q{3r-5~cb5 z780!BSk+7=%ygueF}@405Fw3ZI%b+nMrCm%>I)^TrxOu$I>V@3i?z4$99VeKmKX!A z^=DhvIlwgkz=FzflHxt2SrAyix9M~PaMEZTo&)2Ka4FU@8h=w((WuO6TJbGzk>_U~ zM5D0+d%=AsNS}P~F0|XV$dfZL}fV*u45BIPl z5ir)unDj}g>DY3}-hirqzvwc_b5{pm_5>B}7V*WDlRTjFjT0wTRgKAge|&Aj-Y!?6 zUcZD{?qONi8t2N&BDIH9y?G4S<7-1{CqzQ*ygFFe(5)$OP`83P3iB;o#qt3im$?S- z4T29hzqNu~>3?FEx}<2$ihZPpedMi+<=zqXK@vP7g!N!>FSBp5j52aER)q6~AF;8y z3cibM_WE44QM+${pF*{F9u~d+V+utW6l=5}?(-sV%PZ-9!##^hX5+O+=Glb@#CNLw z`PUQ%@2^t{joB4KMbZ30mWym|zM_LWVw%>6y(eGXU&qOEa27?S)R@J%Tb34sRMAh@ zQB)xsm(uXf#|aCQNZfVc4I-ZbpXtVbR51yVg{Wd4!LSMqb|?onLtJ<@hek68cIoXR zGJWApAlqx)6VYA9gf(&PO{0=MRmfCfGT8!N#KhZSv@g zug23F!wA*j+34mxjxsi~UEMrTsRTB+bWU#`t0h~NtPDI49D!@fDTR#k>8?ahLJdw* z6z;$vl>%Fi>c0V?YybC>FH+#s28F)WZ|_5gKffIK4YY6R?0PIru%YuCh)Ot0s>^Mj zb0iC?ZV?q{D`j5A5*bMF8t1$xE8}${vhF86CJemuo31oAqW3;qn!CE*m!l4$e{smj z{>fkBmOKqo&Oqm{Jm?@dZ6Fp;Wa1c%Rc=rKM8zGnsmh!0D;rMPrBq2|+t*7eLXrD4 zQ#$b0FRI=SEIv=lLl{SKawM%x-vL``V7av2N3* zk4~9h`&*T{zc>>ovMU|Km#~E&Henwv7WsnZsQn(d$ndd$B`&`3tuB{#g1UGMx46t* z!kLXyQfxM=&moj2%cH&hRCm}kO72yywSAgt#g(E3=#uj(8AnFH+q}%=J{LwQ6i1t5 ztYQr<+2xx1sdQb*K0S{5i z-ALTs-F2Qg|JmCskdFLToC3%T5qc~-(IA#>Q_2{&|8}X?YHa163#Gqrxq(P4mPd6+ zS_FNlhG8{$k=^)X!%@T4k>dV$<)-KLt92;}gA?UYcIzRJi}u`3=)Dk`C$?wV2Yk6_ zi5t`GVE4Gn0Fv0tmwtKQ)fqjx)RpjcdiE)vY0_W0m@B5H@{1JQJx#XPMA8hA zUbIiEXTy#js-sGvYR>PboJ&a}NVe;u$l99MgWZqI_jhcS*p-DWn^jW-dQZapg*tFNv|Rdn`0eB6FE zM5=^R70mOwKg=6B(#9{WeEaa#TS@x>#Z{RP0}8N~G_VFC*8SqP%p>o`H=dE@6fdj9 zpT!4s`DLXYYqg)-4HTkt+b62(vgg0>Sc^`jO}^Pb=IQ=f9B|ZnO5ckkOk38)!V6V= z-JPXJZN7(o&T)8v-{N;)mpBDxRlEPe+9Ma;xaP28X^rJZziypS?V4eiP(!`9J8$>y zsJvPK>FJX#(aQM3UTRr-LNrALOzETd&4JvS`2cIENzS%gQRn;fUCYjs#48FcvS)^{ zX8_|l0I*+F*OnOC_p!>jV&})7raaQR*DLEHcMk=JS1bY&04cVhyUT>RYJyk&hFq0iSZ}!8Y0M=|Q*Pg&`t;l8wCnhB>unaRG;6Y*0&-Y- z`Zc;v z^82VY)DyB7_epL2fI@=uYAqEXfp=oR^o7c$sg%V*k@o{?-gz#M_)D<=`{2=A%>y8S zn^!h`fRyQ%K*IbHivd9KSuerawofE0B(u9BvLvV5EzK<*AF7H$&HGmG4Un}JIxaA+ z`ODaZqx;2eAk5gZm-E+0L{`yN>DQ%ZtX(cXp#r87c!|PA0}iVEGPB*?n;>JZ;13K2 zNguc?liJ))WDTZOxqI$Nxl4cW(~5-grIB@l-05^9Hm4I35tu{ukp_{Qh{xkDC!WQN z#CAW!xulkX&Kmtvo^DRBarkxptyug}9Z8Zy$ri+TJS9GexBfj#oGYBqZ!5LnontFU z=@ZcDRUQNy-aaEhVl!R5o0tiIR~PVn*r>PJjEQr-5aN|)`z;;Jjcv3R2(9F!UAmDH zy31^|O}uC#J>w?ciu(aj)t7~1yCt_9Dnr&t!4y5;6_+#bF_9h=AsMZCO0Z&jqfG8B z5i0aDNPBHO1wo1T;zYr8Y1CM;%Vm8r2!tic#Qp`oTO0ZD@rNC89tt_#Vk7G_h=b}>px50 z@-fb1l-5PTLk)P?_(!n9lWNu%RfetlLdd-tPh# zty3oOzhC1>fguxu5L^uoqU@!tf`@->tWN_U)ix`IB^fQ#M-yq zv0$l#rZs`Er>{|s5bxmOV{ekwVvB^-XZ|rO7RNu0y>K0xq?ME5_+c-fXIS+xN&e;N8nRCIbSBixlLgWufcrLyyB z3M;i?jB{EA!3?&rD-p`nJY2EH!=F*GAa6&(QcHF~YzDGgem*>e_4c-O6eE6~6?vAKk=)@1}H5%EN4tk;z34mM- zegt2Zk zY;DHXqWf7>8tH8XTA{Fr-3(8=b`9}pdN) zoB0Q$BE{-^XLA$c6*IkdfP~>umZI=X3n-B_&J$1smp?O6K!?C-tk2gfQJ0TK^(0xJ zj%+3w1Q(T|2p9Q{m0sN3-3{6|sh4F+yEXLIM=is6lR46Rw?xaj`-RLW@1Q_v!urCs z%9&jjtp=>?5|dD#b&x2nm}-PyCewC6piB*()+FD=5!l(Cy4U$uhgV4FG-p&JX>YFS zh4O|@))F@VgoXRdK*HP5@UUHJGnBW?n^DlynndZ9&YP%@m*BMr-V>yMbtXjE0B~G? zRkL}#A0qksG{m0IWp~)tn^3M$jYp(AnaW)l=}mOp&59PMzXR|)dOq~y#Ud9qd&kNZ zw%KVOy|)Gvu`B*6Gydul62b(etwPB6l1wu2k>3&g{&o+Je2E5S`m1Zk@Ge`iS&h|j zozRysdV-T#1vzVL)B-j3Ik}ID`4Z3NtG!uOzSENz+l*PS2lv8r#$ODwc!&>5q=U`B zHsqpYfL!%;^qb=B?HkoYHabrfQ=Ri$Z+m`8s0uWC9r*ol4CQ}Rm~0vB@`atOl@vjl zz1QrzCOmnaR-|3fyyCHA^ZjgDGVyL8I7(YL-iNJuticprVr#prb9|?|K5m@1 zWRXzw_%2{c1C?m~4Wdqea0X8}w)T|>I5-)n*BebBeli6t+r4TobvHiN-3T(z=IW@v zW_`7T>(eTdkV!hl-$A7kz{o{)KpZpc_=VYtN1fN&Gfno;zn|CA_@b4@Ce~2MyrdfsKs)1AM1uea*9!2n zrLt_}f5+MW`<(lKq0;m(9q+Fs%?m8E$SkzRl5Sh>s_|ZLLuSQSZHix59CLj4R1k}EG1rXc3W`64T zUN>Kr&bb4l%G}EmSQPz`5t1Ig1Oykhmv_Kz*y&#>NF9wUtQQhj^_)lL9^^xLrcA8- zMA4Io-9^t`;U&KPzAtJu1{S-mE|3IyWr$9wjoQkh;4xJQr$Sx!pX+V;t@ zC(^i?+s`^8o@$Z+ITgE*_O^rVd%h0RU~*eC+7K}+r5_(i=Q$T&)c}MSkLD1Rcx(Fc z(6_N;7ODJX3a3&|g%{A8Ye=8)BOVRP4IPG%gF%JS;yr|ZM&)Dp#RkPhD#&BK^*0df zhA52kXbz&X?o;NG zB)GB362pyY@rR*7Gts2Rn&ScjBkrG%XunhvYv2s=L`t~ zo#^nO5f0oV?57v4lm#S4kj(y?^<%oUTgfo24g1xo?E~xRs6j;@z?;9~=ep_UM~hxd zb*dJHvX2zoGwk&dr&zUb$o4-pCG{}zPOMF8_mWPcn29Vkr+MY;Tn((eT%#h|*w>iC z4w~)G;v*!rL`@(j;8#tVS^UPeI;1*S-MX1w`dQ|-$+hp5BMytr2gi&niH5q@mDu-I z3G_n=qE!e>=q9V?Hxro?@~WE4s_LrQ4}N$gj2>{%(@8>N?d&Kkn2kSb%5#6AQ?U;( zYa*LXryvYeRFWPdbdj;|>yXqoNKAVpdT=?)D?o$$M2I~qW?rdG_3pZ1P;qju8>sdC zyIPa+ukq#3pFaZq9%V&dS85WP2WW&gEet6>tO1UNh61XzbV?vA!XrfBniYJyn!s-$ ziCRhMfw=Bhbaduv(HzfARJ=m%-d&f2p{KN10U1sRHpI(tC zwAnvc%o{mhGSca=3fY;raHmimZ&XkFCg$2q)CH$D&egMiD!Hvsjm#j@PMoMZ(dl)t zCDN2*Y*V;S`~u=nMGSJ9C&5IgmSP_coE!Gss;Le(Z;DpB`Z89L<(&+PqM|qRdILcY zv=~F%36Y}tu4igj@$HR~CnisG1bm_r_0Idycy2P}h-YT7%6OyBE_wTcYnbAC8q;Ar))SmBU&tpSaZ~VB&@r`?=%#Xf1%N8n$jkWcpPuO8#j!C|o`y$rj z8847XO?ngY3CM&VwR~-zJHuC*P$W7eFc;3)cK4j16XeO=#bj>!0ZvIM8I_#2*1I7+ zA z8D&Z}-_7c7K$Rq^_#lEW-s!j-+cQ(qn&b zaFggdWeaqnIj*i0s~|1TtA;osNjP~l6UlCl=;NNW7fiE0Nn;**do%f(46RyKxLK7R zs`9ZeBoefaNe8oIz27A7)nnjK!!1ZPYvS(CNSjTsy8A-S)Uf&(9yN4MB%T`M+?zeW z`MpkYRI&3(BCqx$E49iA2cyXL36u`K_SvOchnXb7`dzb|p||+5 z6zJY{ls%4MwGu73+45|I80t^+`I)K^@e3x-6cA5u6C(-6G}=dFxtBonK;?u|`WxWX zQH_j|vLM2#>L9zoG_!ge4?JvD`nC-&F5`%_esrm`HI}E=o^n^Z0-~ei=3pOz+>NTK zd$!a%?*tnMc^4wC!~OGlH~iE=w1sjqtTEPZP18r5~&cRY%pu>xzB ze?Q;>PTt#FMrnMoujFwpPqgFTd{2ZM&W{S@VO{nUOmU14NU=csu?%x##C96$)M6G~ zFi(fmrOUHNl^M3&0%TawVvMUTsDyj-()Y=30`ympsew&ncln=k1b=Yref0J+I5Y!YoD;t!)t<9u;PU9#gw@P-A{IF!!XSSFQc{VMBrQxy zrtjjMw<-Ga%Vo&)aMZ`cNAj~UjB~$r^q(F) zJ;p8)Nx*3mfr3Xi2(ky?tOcUUc1^hJ`A$0SkIWmX)SzTRaW!3n2LYS?miR$~fmBPB zvAl9^eK?=2&GiAhDb)K{cUxacfwT`t09O0ah;UyRKd*2hi%K@YJ8<6EWPyzZ#A`N( zxRC3hEQXFI4HFl{ZIycx8VwPjE|Niq0>4^^u!PSdAI#TfmKhxog!8fw;a}{$h&MyQ z!PdH0meq$U`Xstl_;xv>LYLB+C;obe-+y44!MIfuZ}H=oA8# zxJu}!-|sZ}8;C`k*gQrg-f0Ye#)(&2qXHy5UZYrKnmBywpEbgx+4bQRxW8t_UzsS;tlb6F3T8%rtgb?5$iQB)IbARS|GBgs|*K zPCnmC5SFhvwfu;a;CyV_y%j;QImIDw7|P!1EYyo^No~${O@@b77;}Pmc5kq^Uz?0k4nJ-{=WG;5t&e5O#r#xVL-Q0gv=mUlJsh)>3G~Oh7U3+ z1xf`qa6G{J>D4T`(BWA;c8pL9>cffg53W8p#F3!OpK_0vy80S8EQ#qFv0tnZo=@fj zq0>#D(aWuMawLQ8$sT6Is}cQX*d{fX;jWl2jwpH>kE@v=Kf0~|)Vz?t8Z+=;#Owwn zSx9Gg!7#V5tBbo1d+qs;&s}QvW`hTp0akuNWb1g%ly!$IzUABYjRs?@(=y{ss&q^1 zOMMNLNobB~XTheZ*L%_jbF%Td7e(oa-=X(QSQXrw?Ya9|=CDgvh|tD9P#tg&(rD07 zh(es}b|62T_V-cB@r_;FieX>j8OsirSn|k@vWRNcQDUM1YbrU)LS#_CmSC0O@Uq*f z=Qdvt#{*|9d=*E}w2|~X0>UsB58Lh&wDd``_>yX|*pO+9+4d zknvJRis}siN|?4A;i6d{wPFOo2ds6I24Lr(-d_wEC*%h|Tbp%057(gXXU73#kmB)~ zaJS-mCVg$oIncCrR1YJ^I;+QrAleH}O;YzC~^p9O*%1Z4V*`T%lWHN>t< zx9me1w00&10F0Z-1wIe4<4a`6OB3fBA6RGQJX&^U^}h8U5zlGllI998Akyv*AD0sU zGT0PDo1S?^I;rv%hH)THo&1a1{ku5>Ca?ZC_P#r;$u`Y5fD)AwMVhoIpdekU)PPD8 zDWcLs5$PZxy%UP`CLkc7fYPP+-kXT@9%|^Fgc=~k^ZM=C*_m&4X1}?1&+MLa9si-p zmGHjr^E~%`|C-g5tz!?_;}N*Q#FQR9>cm9i@%qWN&`?H*LSojCP}VA0 zt+@*}YQzLBEG#MJ1hq_6CJT%l+)Anf^lskk@if8sCj>ZmjR|r+K1ZPLVu5b@(JTxHeF!iY)QAC3G>L~a0p+l5xKERr zQZP&62L>)%=5!Gz-w+&Uw>KA-<>8QHwWk@%$~W6G#nY6k6cNAt(TCK~T}1T6^(K?} zc;>nbU4MvdM^Ko=bt{vXYJAuAJ6vOm4Sm#jX*Xlnbtkkh@N1Mbn9xVmmdLeBWgK_I%!_;J>NLEyWKNzXfKMTvteVN6g+(&LVHPwD z)xd@bEveNS5?Rez(F?w^Foeok%N-q%5lgBQSmK3$a0)0Qp^{P4;A23-r zvF*X)9HI0x&rsCm`OP$Z9RAZMnA9aQClPN7^w?+nagj!*AsaKJ_;@S!nULe#z)Chd4`vuQb$;^eXDqlV*Bc_o$^$;a3X z6nD3llQFCV;8ai7!HT=(5%lfuy4I{n#_q&XxyQLkm&E}}-7|)x0%ev(gufFb$Bh+0 zuz2#Gxa3SC>dsHlPT{~qCWFc$OV%8bPr9 zi6=?A=~+3XvjOpR@SykA?XYLV1-wT3FL+*ROP>;h2c8MefaM3n7NPx9q>a|%$5%u9O)O}@g6Yp*!FWqEd0A0E-+Ur=G8sS90OS}mn zZ$VpgTf$@Eud|aVm;lXLsO+=;`1CCK9}WZL?schTYnoL}*0qC<>pM-W^_4mOK#1D4 zq@m_czI(%z1WN`aI1^Mb?(W4O$3H=q7|BW7%3B)odke~4S3noyI`2ijhp1S=j@-u_ zH(^&c=wy4RpIQ>B#XHz^k+NKqBe^y~n4J;_@ENG1vvd{h3^TQm%DkuDH>(sT@foB^ z0XTuQ$5kYEg0gC-D^J>VB0>I4@Vh8SKpC7eTfg+D|(fm z3?adKJg%mpa}LPT?h{kAwP1J+qXLap{FROUe-zI8PyhJ~r5R0?VNIv=^MbFZ{rqX? z%D<{@>iWys#>xvy+LyL%=w9R5FQt(Wh3?fzNno8VNOh!Q3oJ_`{bomA;>}>0f;bs$ z&{xbCoJb1DdvinJ#O*Zi0^adA-{JG9MU`R!p3Jm0bNBpvCy`Q#SsUtH+&#(*u&pqj`f1G7WLU z--pdG((;?y&M-nxh~?RiwXM))ftYa@s}`v7hli2nJ*_@U7m!Dr=KSRJeJ)r zm(R_KLTw}6O%`c!FjRwwrngUCQjnD)fA$Jz-+)!@>3gZF2OjxqK)m5 zz*I|UOBM9ncpgxCOC_Tb%}M&h(4hHGT^K!a<#9+7rm@EdyJRv)-CaiFFLTa~a7jMm2oTm#;?{hFxB|!x)76Ly z!aSa?8czWiQw;&`1V9@}#Y@+PatSt-L+Xrlq?+A=-~%)onY6is+EU4z!>aJN(cjw6 zv(w!zFYF_p8n^WhADFcYvmIxBC$x}YWpmJnvGLFdcT*@whF_ig{r zjbq#rI#Q{yVM=JJ1iR(lES}FUrEARyj|=y28*xF%<<-Ugz`1!CNIMf{EmksjoryAr zKDbhPnJb;EI46#_JP3OCKAxpI_OQsPw!E^j(!;9GweY50Q0Q~=e94yiQ4cTr$K}Iw zs+Gg9QKj#$9$}jE=!wQTh{-^%$00%uBG1kfJ(I=1WyK)dRQ*gIeu@Eyad_dMb?F@R z6DiSoilCSBH?9dLzv@jPX4W0;uIEHeg((!=84#@D{@fi(Qx^WktZT zJis0(3vp$LdN@_c&_kU%$v|#VTdQ0a=zaC+4Pi@r0iZ5=uABM||9p3{B?!m4Eo09w zq;UI;TU%dJsU;$xX$=_Nidixh~!)DYtMUW7WRTk-a%P9;)MBQN70=M zk|7|V9Wz38r`sa^J52Oc96MzCHAt+Z59jeOXj*YNDNJD9e1l;;QarJ7G)ws|vWjH* zit2^!sjeJD{Z9~o+&x>zDmAQwLg+Hw{YU&g&cMS9JPtZEr>3c2Tb3+^g~#8mO6j#L zF|V#Q16Fnhq0}LZ5t=gSKww_WtRL1ZvnU>r&v6B}T4LQrR6~`x=rQF5ISNL{7v(;Q zAA?TrUao$(Eo-z2FlzaXbx%zjoZFO(hqm$k*^_XchaXRzFQYPMxRS#Xa7X@|FeEjIesWa6wOH=mAtOB?< z7xIP_@?U8{gMoNQ)$1L+ep2_fT|1W*1`f3XGH3dvw4mlP)kjbchSZ}5&SGp-0g~6( ziG)*8edp{&m6Z~wIjwl#5Lu0yn9pU=bzi;r108lGZGsl8DtzBIE*Y-LY(959Cz2a7 zv2dJWZv8HgNyxijyo0A^QU#JP4QYiKl z&*Xd)4QCFKnGXbcHZL8fk<-lE0aLJKS+n5Ohbw(9At%<+6rH z%Ni>e-|-H=5hPfEQhVy9&$tdZCmgvv*y&Okq0=t3ZgRWP{!W0S81;c5hS(cj>5_&6_d#)mZIb z!>*7$SfN)1-5xEsFKv6{loQ)4t)PL_eXsz{Cj!z-#?Ir zwhK08`Lnp27(%T7gQ!P|DKp%QXYRTHnBp03S5Eqp{5`=imbXKPtg4NSddEv+=>F@2 z36^T^o5aEjBUCJfuJbO7H+t>xRFz|%;^^bf6rsRg)W~6oNn@q&FgJtSt9;EVk4j0< zVc~EyQqDgY3;0Ndt=Bq@PP?0wdS#}`M{66Y$!!^5m4jW`78?M+!|`Gg0$I=*Gy-$y zdF{t0jS~Sn@SYG626hmICT*vbnxtrmrv z>~cR&W+YJ<=3%Wa9?G}AlW=bQ4xaHEa7rUqmKs(Z281{sl2T(xtH2q-cda=?P>q|$ zsRban)D{@!S{`~=ZZPum<&h!nFT$ZNO7U^ijOm~1v?yl45~Hf*{nyTOJYR&+tPWGr zq~udiv23>B@Go zwEje!pK5x6Rn&QRK@|Xp9x9}D);7LoNVS11>vwA%r%<40(;bgBXMwh~5W1@* z`QB#xkkxoBpRdE3Q09Un<qygpcT^#|hp zwS#Wk)~LV~APMiS5$Y&5yVkmz?_}RkbRW8M^PHasU8uAmk9z^=eQ(cKoNUKD%rz)_ zTH;U+%^`=)ziP1bkwV}nV^O@FUN(zbezseZZb-W~!SD+uo>6-FKQf$Jz{66>CKwt; z4C8?qBEUrKQ%|u)=GEE`YbG}{R&u*{l=doOq)8h^<(rHu6H^=1&c|=A$5Q>amCI0S zt&fT6HBBCzae62?r1H$(j&L{t0WA|FyGUDq1hVVs^Hp>F?K^Oft_9fr%Ja-xqIf(1 zjmC;5jI&(<)wLyHA1RCwUM&O*ivPp=Vrd8xxS5ohPBqitI^YqEB-V<5^j z_td{bCfgjT9~quxnrvoVbR1AlLJKr#YT$RCZlysASmiW}r;Qq8dzYR`YO7zSf%WVc zDPg7one>&-_NZ!Wu@``_Uo@mdvjR$HE>^$brTS>t)|7})Dfv;f&uOusA^?V1T_{eF z9Zu;c*O)0#>&%|C^BqtFv!EY5LcDe7$Rkwi%O_a#JRyfM!^Bn_AxiWB9-dG!vOCiD z+g#2bcJE|7TgTN%x;W7MHLzLD-W`9POO|0?3XucZ-``a(MP~;I_C(tmrdeo|6)CE7a(m&|imm^pAi4qQM-MsaB- z6_!Xmj(&uyuO9U;kBF*GH(#CG)beJlEkz)0+c*V_1(mYODS~e1n8JOi8v2$Or!@;K zkUX&&yJDt^CMGNPE658`F5~7m(#XLJqwmFF&2=;UA}8EwX|5_>PyI;#cpH2( z<&i2nof3Ns@_DOmExeWoV?n%Hqw0lO9z4kt4!3R2ewq6oF(Yq$jl2#0i6LyqPN0# z%(Wga$IN@Rq`X~}FcK|PLYcJ}h_ogNU>|n$-%0Su`o2!DOi#t3Rr1W|jSSmF_{;GM zi&MG843@0qY#nXZAcq3raWet{yQEN{sy!9X6I0Gvr>2R?zH&_6&B8lSd_Rr!6S!m0 zwdg7L=XB-t<_u*7>+3wOPcb*&sEBe+bV&<*jJ)0!(>VvsyV1aL#T@DWu5uFk8J9OM zTTVE&)k@pZ*qfp;SY>lB+_6(!wsvYp&)doCNaJ=^6BZ5l^axAjjotdb{b()(}m z-a0j&_aKm_FW0=Czd6fSI+|TIR8Nr<7h}D*(^teGW%~U39u@1$7)eaZp*)@4(Qk}bBZ{hllQA%3))HD3j71QWN|L78~646YTP_?{&3Y%UXmhH7*hn2yJPGa1zsAB*aA4 zNX6wDp===*2_(RxT6d1+orxj2zxZq74Ga($K6T7|T5a97(lNMOz!Re^(|lqS%O~LY z^H*oXv4&^UhU4V19v+au9itJm;!iwkQ;h2@pyn^dsAMZ90*QH-BH6~_tqO6CiV?2u zo$ZOG4m*l(Z_h6=XH-^Hl~yWwXfgX;>ZD+Q$B}aYdc#f>j}{4c+(xv-y9~|Bkag5^ zG9K99e|901Z_0O#pI=~NTymc5-l1)93Oi;ZBBu4sI@6zju|MKL;5$U=6D$8Y07$ME z`K&+dRk|xXoLvi+^8DBF(D2Dq4-Vf0kQz7?$1(bv%bU$pw!E$`@N%J(9AADo&5tRr z6Cz2~ANMy;Gz#lTy~VIisI`L?co>9ir?$Q}d`C7e^nEzreC1O`MqjD8Fm$0Li#BGw zJq-RWzvyN4$lF0#vHURR5VI2>(F>k!sqRO~;+)D-lh*kKhLyhFTWX!x~VNX8><7dN{V|+QLeD)c=O zTH*>5XJ3UQz3>%53m$oF=UF)ZG9{u%wN^6h_E!Q;stMrJJNl9x?qi?6tc$7aXIaE+ z=$r9arzsqJ0V@uKX$p2uFn~zF=Xa@*@NNg-=N4J2#g4M1^{3RD_qXE;XJO$?kh-ei z_3>eY*(E~NIraN5BUt}wdUojOx(~bU60@Xu*vtFyHBfobB43H zZP5Z11X^j3OQd|-LeW8K#bC*o;}3#J-#s7zh=ey(kH$Wuc)^|a$oMa1Prxri?z5g5 ze)z?v8{_PjxQRdsVta~Qb8x5L;i;3AWD`xdK0wd5&RMB89siYMNw7T2fpy7QPa1Zu zYo^GIFXXp*E%wk=EIQIBRfRxeiAiPLw~=)n&%>KN^9X6$WE)pAoP7dk$$fIjG$W6A zHZ^`@(Khf@HQY}x-h<4Pf!<4QD&%Tpa!Ew9w^0ct!Q`O6jMd^UrKeQ2vd98e*v$IL zW%3%+n zBP7YQ&SQP&hUT;3e_!|8ErcMlnk5{)gMqY_t>`GY%$loHsLO299v(2tzmAIck#w%N zU8KawV@ObiCsdvd3Uy28qx&zH&fXw6ws1EvY!5Lp$*!OBE423R3>P+PKaZ?K)Pp5O z4+$%IaJNv&XMxrA=$&Xg@sH)P+HzZ6MXZJ9L`m2VlvNWI4wiy!72saZ?{T428heoD zmp*4D40iCgo=&`Be|-b`n-F?UVk>0$}} z?SP{xC1R7VRJs5%z(33Q!#KD}s25A$E~e?<$c~dK$6Q=;_n0;C`a=A1TSITJ%0RvJ zE>p#hGzj=7M)16_+?wZTkF%#ixNl(tdg!1;SeHE*{0)eD>hu&?AR#`_INYrHw4L5K zJVb9OMrmkl<-Dy@DUL#c(x++Mp0{EAD21^iR z%W2tKKc(eyyD7_~x&agOU+6;Ci(-gc=dRxJ-4Wb;K|Rh*BTg9)KnJD5kSD$yoTI$; z_fY5Rk7CsT4oQ{lr3gC zD^Kp><*Np_b9_jxL42Zpswy9j)5!f21wNpnJNdsV^bb`du#dfgn>Q!|I9z}SfS?sB zGgS;E!shT2_aTHp-pq_8AZhW;^sZ-xq)Ky*Z6?S;tSZQp1!L4ah>h2*EF1CeX@pN` z-Sv|-NW6Ur3U}xeW3u|-r|h9|o**PQDzToSsZr@>uU9anHN~2uKcRz(Q)EyKP{>A-i#1sw}lb z+qGHr0+c(<_gK!|rqi`cryI+gD-~quHSgtMol=lBEiOwLQPmd`>2k*#-M1J$5qfYA zQy3O}>p1MVsl@tj$EniSh}27EKtOrKQIAvWxt{8i(uT{&vOh@f0ClH1QD6N-(?$_& z4XS;3(zFDPvdWvvIgx!Icb9r6pfprri_93?rB*%!c>fq&nKe*}KkCkmvoOB@V&*9B zhGd|^YJ~@5L1slnEgT8&uqE`GSdb2FlD=QWfRP-H#SeSm(9ZPzq9>I0Ui9Ka{%KIb zjtei-f{)05c+{19>XZh_V`)6HR=j@n?^bZOb&7P(My>l%of5O$r7ZGYH%gG zkgfUe-p~#9OVdJ%mzjJzr~yf$k^zaU8&^cqnwSoi36b)UVX>TpOWUaFr1<2Jdwek=SiUtiY?j4eKT_+!+S$m3YUuOJj50n6d+FKlcKw76bdca$jV3qhWRz%A z1+VeVZszs{daeDQZ|&rht^P4@?r-WTA0=dOIJZuz6<5^x*fUoL7(c~cl@;p(Y!bPD zjR2>R|26_tyO;!UU49uqOIV&DQ0ktKmE~?4p%a3QC++=rbaW9O6Hc%Pb2C&M$k`O3 zRLF*y`I|3CV{k8g@<1U%CwHNr4Cz|cMpMf@LBMnU@*RF7yYI!P4BlUAc;8B~)HMv+ z)C=V=I~5SBmj0k!syDhtKbIx21#t(V@YJ3U%h0zo$NfEDu@0M+e)_>L@%lRvL)`rf zhuz@M;Qhk}qK;y0;op*vIwY^pp(l zO8GSeM^`E4680I!qy3H5U=LG7;SZaI+UH!9@uuKN1^P)9(Rt0HuK78V4!fgZoJe}c z{LVgg=grB(zUi?De4^pksq@sQC6)C-qI)~c+B7h^3u<6aaJwF-L4BAq`r{ljq4cV8 z^ea2Ee7EJLSK!wuneO`xPK7scdPZ!WGa6l;Rf@LR7V8oGB!%3gcy-pBXe~blwk+3G zs;zi2r^rOxBQL4G*&&A2o~jTd-E$D(=f;792$co#uyc;i9rLEqZpm6eqseNl1`e~D zWgmhc`J)?akEP^dk{mjD*`6`j#(lI=Z#J=?H~U<`=)5;;i?nJLVEt}n&F-VhP^ueu zf$8lIgGcCLT?3nPQ_|%kpnVOo?lW}ztZ5$gHRk?0vTO-$5Mc7LpDobQEHT+GI-i+K zwa^(jQfg%R+0*@4LurTZ4_tgM+pH!I5_`4=0y1eX?zyr(f9v(lDP++g>s$XJp#7~@ zQc^55xgSYsL3>6Jt8a!T2df6IY{>L3fDSoLv_N`}c3Re+wMw=hs-P={8u%DK=}w~ZF-QmJ$c+*j4mBbp>=M7_}B znJbfr^8GN6`B243?)IJL?I639E~bjLu=%Dd8MF4TW^&pNpB7qwJP$RBMYKileIYmwxldcj*@C|^A_(zyuZ$Mt5|Whb z+c5QK$m_oLLbZ@^b&k2=$}m8e2|(4C0kykF`k1-(Qz-tFNGMyHNfeFf5+jRh^AeGd z*>x_kWgR5Bpl%wMr0I02VUN~fz#-% z(b4^apcx3f6hj_Iotd2&QQzd)L(-181Hwyk%GGe2>0<)o3nUxk=HHLx$J!=1JGr9v z`O{M0<+5Ce-VHzg3IkZNfY$1ZEff#={1ddmPK4-4xfRxmgdP<%8ycwJDzH(iQ4np=XEh%DFJjv^KgZ#l)#lqSdV?5G%;TT{YPB=RS4te&_P{0u$$iPbFiQZf9w7cjbpNRwsmQpEq zc(!(>XsmRGPLwSiV=T$RJq(Gy$=PR7Cz|pYvF~#Wu(qiQPZ0;Ebji2t_JI?-inPQR zse(wSw9uDVi5lFwk5Wx?krjoX&1_w4y6$iW$3J3QlcBm@QP2=q3P-k3UX|mEe&qW? zK8?s%nxV?K-YDA&Pg>R(zjw)o8>O|I9^LwZ^=aTVL?${qrL$%iWD%9;`3NH)+5S47 zX3CoDMgo(kC8ePMd5n=R6K>qa=@%7ze>=e)pn?yG?k`u!0WzcTvDEKjlg}Y(gg$`P zfJUC75k`E0J9B25Pubz?y#V8vji!@k-)?Mp8+I9duW*_$!i)n_ZHRm}|Fo8?t<&i8 zh?zZC{__mOpo_oiu*(Pe1_5^Kbp4TytU9x@CLR|%Gwy`m9W~abRD%5=_{Orra5i2( zISIr(_E?)(k(HAizY63FmGS|gNkvSc*7yRnO}a1LG`ptM9U?pzdjkDl3yIjtMThBV zyd?QRC9~s+?cXD=O>VmEYNb|Vl{^Qr5D_TpQ4)G@(|#6HldX%@Y^y5iVjT0&?28U( z?lGgk$mDaa>lxrDb9bfdCx~>n&K)q)dkeR5nA@uETJ7L%p$4OhaF6RLa~B=i z*I+(McLLSl$ny}!Vc5brPCG%tb_Q$PUa*36R^ag{s$zr6sXk6#?2O1&&M=>48CtZs zGq3|hG4Q`o8E#_o`La5(TH!QD;mO>{k9Haje@TKx3~^=jUHRTX>|qv%b3lH<8Z8V1 z150A~v~DUkQ75%@j)n9Z^D)c$Xa7T1XCRQ|Kj4B*V1#C7x>{4O&RA+}nsFiZhA&+{ zNq?t z-&y}vx4G2!fD{6_;NJW@46%Hi7`6?y=E-T1fsI73*T#RkTIrM|-0n*}AOo782g$Vb zS&bb0yKFI&{$FaQxyl)HK+R;ZKMQ|u23Y3>_k!$`{t!dV4KVe>^P}6nDg9PFeu64o zQ?{z6uI4GZ+1*(T01-Z3r0x0+&KBCN{!OEiGqI*4muPppBQVa$La=F*)o+Hy?DQSK zIng(mS%H~K8M^RuhVD!Ub(+v+GvTc_t@kKjmN5EoxUFl#%)k%l$>jLj+&3aS9KI2= z7b6~?XlDH_O@`9HPXikut}t{RQ)O%RzV!}pEladV>|NK`wo9e9y%^QnfAz772>gTv zPuv1KvIK?AA9!oFdJ(9)ergg0)H6CeoS)ESiN#nC)TT4Nwj)*vBFBFDT(L0pzrZv8 zUs`~_oB#5^+l1d*g}g-?96+J@2{QcFba4Auz9JUb%5J3+ASUd2&o5hz0w$0D#Dtvx zj@SC1BUJb=zH3Ax0B#h;3YabUpU|<7{RAy`!#30Ka-pE1|BmbY54DlMF2PNPtDuk;xls4*NMZ= zw7G4$Ki5>gd!=A1y|y^u-;xW&cHQ@+LcuK-Qy`>kgUZ)|UVe*NLk@h?kLITTY}M~? zV|xC^kq&v3)7K4(-~w(Veuddt|B+Z9u)XCb|Ce~vD_{8)?}IeM^?OA+qi!I~bn1%y z%H1C7{>bq4;9E;OMcj%VDFB&!3J(?4YcFsXg@_&8W}2sUOg07dm{;vZAUWT_jatW4 zo0Q*PMb6Tq0)-;kN0@`U==M|IJzr;F$MrglH(isU z&tB4XO;)<#q_so+0CurEjXWuI->N@y_Cm$0;yFEiktc9u6HK|qG785Nmbd>CM8Qko z8i->G$G90`IB0=bOLxxis$t$-8;CtJG~=gG=t5I1&=T51hkP?|W+OE~{vy-+ps!PH zD||pP034KS&j~h0$$FOyK6;ys{@`Of&U}-;FSNXhk`HkrB(K15YA34BhK|r`{scW_ zImq2^B*gNIO7!e*b3cA~oV2k8KtFQ?=0sVI*jRwQ2{XqCCn;>)`tVqOK2fMw59f}4 z!tdrBV@cru ztVwx)Z;p*@x}vDIdLsd+Fl1E_ylyy)d+rb;R0x`|C2rf z42i#R{(u96p+9%~7$Nwb-G|=jo2EZE2boa=|K8-LV%dPUX-Qz7_l#T?;EZ#-7yKcD zy{T)MqOwPudwdL*@YhZTYt>c&qwm84?3ylAxQuu+OilJjJ7xCXe*bj_*voKnJ~+-n ztL}QXpCHPvE-0lr*&f{L8c*hH$b)k&NJj?ne6ka&zGc7$Ef7KLow|V|#jC-+0I<_2 zn#LY4$QCKr=Ddd-BcGjf{(+h($7XBWcH6k3zA|tHDHC!lktjXt0fac~iw_?Ptr=jQ z9qB3|kS;6ugh`a8I7FM4!S9l;AH;q7cOf$zfff1M=5#`1c{x9r%PYg{BjzR`>M9_{ z?!3ZvN^92eoKO;hd(9vx*70y%MUl=_TCW)5Xo+j--${o^i>9&|gR1tx64bPyL9A`Y zoNH0LCX7M|`&hF1o`rDlPY~D5B^&6|cM#8#9nP`4KznpG<5zpc{#=&!3K&GN{x1y@ z;XkhW{U@lBCZBJgy zW{2aGVOhmYMU9nAEf&T(JFhj;j~@zey{aToT>wIqK<*V(%PasIpsZl@7;9li>@IZP z*Z+g>iMQij?BrJ`CWgV5!=7m1=?n!OTK?NB?-gM+Q?FJ?IoXD|@U4E;f}bFw)j!~J zHRt6*99xyG^u{X`3A*=p0*6np1JY&(uSHdo^+cM+TSF*A9JgaK@J4IGeu5(KgeBkf z^maZX$QtUZHl(2iI>lJYc}W;C4ALe5S*VU)?w@au8mhH|kej<}gH;F1&mM@;az{e| z&$@mX%0=EAwjeX#f6dYu$ZWJs?QpS^#zb}KJ^LikOg+Yd2ve&CL!Z8fWx7{T5-hXH zVSB#rJ1j`jC`Qy~=8I2wnbtX7Pjprni8UhsnK zBStDY5bo~CKj_QzxBPnki@(qGJ9|yduj6s9;&`S0$e*Cih$g&G+(tRUUv6)|H#36c z|8hJ03nQchf*HWMTy_h4x?1-!V#)c z1_)_oapwq+J-M>4>L=`=w}$Krv!$VNKg7iv{{;05y#g^!h2b9*dA=TGBaUau z^Z_#$e<+iNZRB5qeJ&EjvLS?0qQAO|;efJGrrz}^1tUOl>1d`7%`(=YQXjj({b}5< z-pB|8Rq|b`YOWYFjKVJ5CjjitPQQ8#fC~m+ly5&6*BCB1B)Ji91rKhIR%p1Pto@H~ z9A!?tYnZtsH>+BP=g7}f#UI8KxVM~+1;V?WD+7Ci8jDY!nV`y zQ<~Wg*e7#9>G3CJ)^*?5q0mJj)H4Wwttm*SU`T2zWburPcC%46fn}Pk7pn#qK$jzc zz!F<(?21h7-R!fAVbGJM58Y5T7Mz2AnQm8GKLpXrI}gyhjHkpNuzqyeH(0U#_R*Va zc;NSEI57zp+Nv%tj)gxmd!-~`fuT^%J+ZQ!oh4B+FDUpNNz1Gj-9Z=d{An|Y9K;lN zoAUPsC4qwZ>C2J6EWyot-g0E)?;0&=J4F^HB{zQQV*b2fP@9=V&LO+406J-Jxj)52 zey}{#TP8APS&(7de9@IDRR%PG9fX>Hkg%6Gq$uSRy>PYW0@Gm)@ZkF4!RYsqeR%4@ z8xt`+S9rDoRpI#u=6veXy!c-gg{ zQ)<4D{fo;)z}Qhw=))=BTfeh(wx~z|NDBA~eZ(w|gNq~h8Y^_0_sr1!Z?tQ+Sj5-`1#s6N&O@@{l^>0UB%(=r)6KA>aDntM2Oi{`E2Jv{N0$VjN{=?0iwE}P= z>wn=2%z!9C{bYbwQ&5PuVVF9#W{|&?r$jb*;QC(d)@7lo!y?$Ybt4USjNgf5n{dUH zL6vIB0x0f%If<}Ll6fD(T9C&9KS6Hu5T+If^Cp)kBU#!kU0;gly$QU_fg}OVm=27K zCi;v^Ukn{LOnr)}(J*DBc218poGN5aETZ-4qQMncYL>>kHd1rm>E((ai4F->yR5A|Ut%avH3N(W1)JfT$y-pWSJqFtE?l#| zN{xa3c;DL^>^D5h?*NSJ_pRLJp4Gn6ft4+V{<(3VIDQ!M{kh{hdH;M znW?Dwvz=Q;PRDqKNQQLft|2=jn=;^*N!G3X7H^UV#}6+!-$ctBNz>%~t{(sM@x_1D z$l^~AAV~{A*p2;Gge&AJ#~a1daFIp5fPXvZfHRM3Ih8TX z4R<$lO$~YwVel+)Mm`59D9EWBPE1!cfV>%m|6&5kXq!NZ(y0GQ$} z>(4TM{0*En=<$wJAf2e)=+ThQp7sxG=I?0h@PN&cRoGJlhVc@7pRl(}q!URgf3d|@ z`efoTG|dupYX7$ilE3+VtJ==+otCFETtD7`4uuv^k3)qJA;|JsD)f^A;;0*wxtm(z zkB=439kzQscoabr&lVUTF6h^>`FY;Hr_8|;VemrbnXT)(XkBMh#(_a6+ISa z3pi?CvVN({zSC8AZ%0+#5`Zg>l+cku8bH&LX}+QRBfjBj;l=0(5v*P6Bz{?NsUtBE0Xs zIK7}G-O(C@H~oA3dxDK}&G*TW2%RYId{+;pXCtyVoS{$BA!D(4s;Vg7lMy_dfqY7? z2|?7MhQYElQ=tm6vdOG#g3NH)(TuH1WtV~2`t_5f{b4klVttzx6Dx-N%M5Pnb2bvBi}Yo4}Nj50>dH>`jD@3zX_b72KtDG%^pLOT1AqVU4N`m%nhY-TzDHXZa;| zq8`xCxV>23woGK3I;OO4n0u2wG-4DAE9Upa5+H zuyogn!g;yYDGaCEEtvv_lUmGKflm+w))$N?ED5&HbGY9rg*2WL~R zJQV7ab7flR#3C8Mqa$5>Typk&UqbVUq-CU+OJJDxQm2DCCUhGCD-(qcD~?u2AxUF55V%6pvrhGv|NUH0*^My9)+> zugg|lQ=i=5TvoXatStd85d@>>MeBB*xQ@Ytz#-N14_813p`70lD3=zu&anC2Ya8Ga z_-jCp;JK6LDUFTD`DoEZcE?|mYb2lO>_9fia;qkMX4>izecZi=9 zyCrOo0vpDdBPkn^wzww!5HQeuVROhye{sgm!}@h&+2b78Gkt)(b4ABv8e#3a-|n(l zeSI6eMq9}-TGVVyBt4Z~(NO<-DLJgN`*dqcnvrU^z38IF$v#dwD@H8Xlp?iT0B9Pz z5QOlL551gRXWmjr3IO|DK*1&~Q0h`~S1c+*wB#p9^2QeD|ID`KS7tHI;`bCiJ;CazN7@6ZZUYtE&cD2wt*3L zG}rz#HK;sJ@{wJF;lcOnb93N)uw5*W{{&w!IVBq9db!v1!UX?fqZ~k>AU;U49`NX4 zuZOxf-e~~nySji)+_YzY+~@ThP3cHeXotj*Vrp|G?C~yp8fh5x3fAKZ(Uur>@@x5r zRA2AnntQE$eSL@i?<2C zg!YdyQHkj7Q>HV;ZqQK@C$BVyI(8v~TZoZqPdv|gJ`M$d-%h^EswD-F|1?bb(?9R=jm`)({%|JRD;w8eJ}sS zC-of#RtmWm?=@CC94lh#G1?&bA@mv!SW$*|fiO4$ty7zVoVD>+yH6Uc%c_Z(j43Ez zyBj+nr9tY~ifFKGi-;T8%8dM6;U{)Bl|A7dC#vK`G?f;~drYREhd z!iktXYcY zqTRrLE0)jizL|zDP$pfb(E4biN6TM)c)=-q z{5y-@m^ahh?(nTqobYn#seVR*`F%T@-Q2tK6- zZw2y}(|_AZHypY960%wROMpCZP$0)>pinka(D$;=mreCpixBn+1po6F&nYbYTw0#A zvmzULiN%7|dF?B)BFrb(YQ=yFr{9R7!sns1mMY2zO&j2dDvlDnE0qi%ufJ312Qk$DbP&aV$# zr@a;gYM*#rhG}%6M{Q{>)#lcb&^8EBKSP*@ji1K{EwMIpFl+QopyDCGOmXiF_%exg zc~~~Yb={;Q|CJzPe;(A{UbQBT>@TXBzoO*T=e5l3>3g~WVK0DZ&%p(Ny!M|bSN=Kw zl%N!lmP@FAskh10qc!G}lws^}?KqFmM8kEx;EzMC`Y-B#CtFVX)N8yN(X+kgaUiiR zv@OJde&}R-yP;i?i~p{C#0Ya$xMu*sK**Te@}*c_kKF zrGGDH4cXtatzm83W~U4|?#_7~CB*bvZ>(=gdfk@{K7^8EV;^HQqN%ep^tg_8TNvqt zck;!rt)H_K>HO8+#{P%)M+oyUV!;o)=#rH>v(9ukYWu45^O_s1-fS+=Z2*68o9omg zw0_otKvs(Css1na-aD+xZOt1FqDDoGAiYIJ1x3I@QAz?LAR7S@=}kqtfJzHBC<0O= zqNtz*rAmuPub~G8q!Xk==ry5+5aPEuZO-0j-Z^{TbLPzZT{C}pC0-;UJZn8`-Ru6f zt1m748}X<;6BH`z@GZ_Bl%YjP9fPaWJ^caK;^FxuDm+PYqzY3LAoJIIjAJQ*|Jpn! z2Ya(Ngt@{?r)IYw+Js^lbxJQ%du4t-CFD5A4DCLgeBcMQevG?~&g|;spn>n^G3x)g zJ!ZLN#bAzJJ6?)}qWqC8D3$B&F}#HV`}a+E2$?a?Y9z9L`*SDzU-+o-YqsS7@|UMm zvrFqJuj$W*fKd9gQ!6kdgj7)hhHxTY84!UVp{I#Cv&EKy*kz4;IBiOV5$U~{&it+N zJi5`g%5q%*&{3|K?67SkESGu7+}k0?!C@q};-7nN`kkZpzx-uXAfvhnNjsg%JTgUp z;RI!reEkVYviP6NUp_EaDM~%2@Njg0_Fa8OM`3f1Ho6je8mlJY_rS-{Q5E95=Y-2a z9LKY-$IlxW@SIVmKwlZ!x5Iqc=Wp*}VoJ-Y_|@hIbx z2Ic**8U&k;C>UgX??KyAy<8utx45QXtNID~!pXe}${;|B_%*rWKl=YI>GzIWWX4;G zq>Mp=qy6E{{cCnMNL|KJXKwkX=XY zRfHBz%P$Hu_qb`nw8)dM4!un=NhwHHnNStfd8Bhw=aIvzuKGa@j%&FMVVt^ZyB@bO z_3EYn_2&A|fBxjb1xJ~=IzI7Oe`1#XI(2Sx;3MdG@ZB;Lai_>vb9t@!>ZBGTr(V`r zZbPL*Jt>`4GC$a6V+Nx8_>Gb4w?&!Tr*Ytn610?T{xAiIvt$?gn+nX}UqiP=ksJ!v zUJdc&TK%b{!Nzu2W8xp}iC?jzN#YxHAF8Hmu1ed$fQv9=Glq7<4HqdpfPbcdOglY$ zEW`)4HG2VR0$DQ=`-UGiM=`eEtB*O2d(9Sl^doOH(Le3@|AJ7}M#~1F6O|%4&H+#c zja5nLt^225qbJTw+1X%PBy?n;FB%!5*~)pXqh&)^%cDNZzj}_T*2r=09FYxJXuQxn zIEW@X7J=HnQl@7jt!9|n*yf(6kTJL|J|Sl~mqi06rV&eF(xx(hLPaf}M`@7Rq#T zDaUNhBIh(fyQi#yyL=XXq~I>>R(?bs5|BDNDoj8C+6OYfa`A0iP7!Waa=5jWA7rjz zdkVx6`>DG+p<9Q)*HTkUUg5QRx5e7Pk;bF7%7P8l!5B2F{V(WpC${*Nqj3X81x5K< zu|1S4*ultMm=3^${Z%FTFRU2;OMdTfcHI8oRK1A@VZYjNGlPD+BZFT3KSzj_<4QoV z6;N|qzhD%d|o~nEgIBPhYv?QV$Gkb_*i)}_9Y2#yt zf40~-Ek36A6N28)xDtSP{MSdEzxO<=0u8)(f~7u5i(4$qJKkF)yhaY{c4I#0Xx0yN z-j^~Ro;Tn7V{Q0wqsPe^&snv8rkDXF9PN{m-^c8diY<%KQ&X!9qND9xYi<~@wsia*KOfKkG$hG zLkCr!Dj~-BhDeMdr#{D-fQ-EmX3+QihdMNWU2*^W&oj+tWn@%jJ!8o*V{3heO~Bc9 zvk4-G4!6c4>uA@6GqU^6(;uJ8m0(DLTkPmulbE-Pix}g>L%<>SQ}r^X`;+5KqP`JK zD*bDQx^-4=+apI^96iy?2dGYCEYUww)I!ncB1Do*LQdd=^P6dV@B3r^l%aIYk^>hk4SSYr8c3XvbtH_l2a;WHmIKmeQJoH( zd0^Lx6zI5dKqBmBEGoOxwEa6xD-2~zR=V;dnA$6olk}Q%NeuR-a9MgUb?^6f9ThK+Lx`kD*p3PVu&~8A z0>0e%tdKxQ^?bS+CRLv>rwLB=&^kXA#uZEUi9kiwSLv3GpROBbv?~eSLhM)f3e2K* z*2O(uihlUsZAAJ;Ziw4~%i6v0 zG$BXtR<({*x?i|fULir})Sm19S8)G&4$be$D*Z=Z^Dm%P>pNXt=#*%jJq9!yQE_>? z1L{+zn%o<0xJiH=Fm^@wisd1Sj=<@@#8kuAzK|GnEeEFDFy@$0NZ__(*A51rlnpj_ z+iAJT#fR%YfLxc_Eke5iji(>^2?-6Lcs`Q@G4gX4oDdoKb95xiu{-lSVo#r6{HXT( zQ|Fvd#_gMm%?p{I447U<99C220Q+q09G=BRDqEkfLSClY^F>dZ zg3lHrGUuFc_kTl39V(Cw@s}`Fq_)wm?=ggWh)+a#p6Jcycrz~%lK57?HBw-~QZAhK zlT9X{!)D>5XU{eI>4%*0f60`U#jA39&$UM34=K1~h=Y{Y+MWwk5j{q42X{=egLtem zqxJ#vI9|ns25rzfz?j>TwFpMT9KLx}RM1{s-@42UCm+pcnqJk@?YL^FW}wDvp!Zxo zJ?-~bwtrRiLhFXv)DS07F^rmv=xLiwluAupNJP1+OVZ5T$~8~T)4WDjaIe_{oddQS-e-^-ilFF1tt~OY)vJieII(|6vx84K>g#k31CUm1SAk?`YIiD3?3U z;S&>}*aEpjT_MC;?C-pL>Qs5RM1RwlT+HiNG>>tKYjm>MYw}dB>C#~bHY#@PEZ(Kd zbTaTda#q|h{bt4f^_jWi6%8`6wkY9P_epBx7%I?#yL_f_;agud{RHf$oR4dFX7@Bx zdN|*i<3XxC`nmzo#I(OAqW>qJtGYV6crh!x@7Aj!u?nQ~n$E&Fr~Hpo1xE&*EHq8k zJ901@XZ!bK-H;N9H?*B)34Upq8Z%~F^ZqWY1dS%Brxjh;r{jB3AgQzY#09v`eOQ|G zfT^!zh<2mE>@_IiCL7dm{7$>77SD#I@(IacpRF*YCk9BZ%Lj(Lc~NEY`CyWjwuz&N!+vh zohdn~#m_NXbyGhfa5#WCeTZCsy1Zk?-VDyq6$(~v+X=-X4K`Jg`vG7g%iTaU{^DE)wZ@N z4gw;T2k)8BaNqpVn3fJ%gvX8{N2F);Cxl=i^af3O9lm;Tx%N|C+{??;rkC&gUqEiJ zC<)>I?Y?;$uwMk?ehP$HJ!6~@;v{o@`gHcOghCQ)k-}Tc2{XToWz(sZXK*^y7RnLE z5kZuFsc%Vp{>JeOX`$oO_h^849Wzw^l`Yx*>do(j9Z4$)9whq8Q5FaR((9E`J!0`* zU8=795P?+JWmzkl(DpOhRIUGsP6fk{wVC!8Hw!x+JUZ7{oAG&GeRHhRmkh7c(llBw zfN@C0xkqotcB2xMm$1c%@~uM!s|JxD?JI>kk9WGoUt4fGzLlG}G!WB;b!~xI{`Ez~ zogsVDUt@u2o5+veW)kam{H=l;oVEV(D*3m?`{4lP-S>nNi7!!sqwCqDPBuCmbh&%M z9+NBT&c{kD*VUE$ir0ldtO1sABw4-APpsiuPnkunao};1cJbI%;hX`|gKhN(VqbEE z8}O`Btz6&YBFn$nd(U4w=OBX@dm`u3APe(-qUd8Nok~|DDsZB?LMg}FvhI8I&w0$6 zoDSK#eW-GTdA4GjnJAj>B(Z>75H8It4jUWN9~8*FWPN9L-<;lmdTC|87kMglELtV$ zNfz*SR#e7`Qgwx?R`o(B$$Odv3ti)zSP8L@DfGuGYvLAp7Mc_#08kIt49P#^3_e|1 zoz6CN>id4$E)XgSPPiGTnGQ1TKJ2yIGv!ZxXt7ry9<7e-5-91eq~7;z+37Gi4Yq8c zmZFTdPA48ZkD-eU3v|JT>=;L`$8?)aV<&mgt#L8 zrp+#+BE7f$9{CU*e;=vupRVGfgfmnS;E(-0Zb@S&0uh(*T~M&L2H@u}b2FY6%;x`h zGerN(fB*kdg8$)Sfa9MzNdHR-{>%N?2F+*(TCxd?Lm}e0u4pEO9g9JW@7bJ{1UUDWbQzV2TJeTHCK#KjW0))>}#oumwJM-&I#X;8P%jOgj zaJltG7P}Bi%TZN&%Ol{$=dx?2WQDGAZ``Bk6nY!NH!?y+j!wSO$rx~u%L2KZ8-^m- zttseQPFPd55O*hK-4Cj>+s!sW9#;RwZdd*=TtT9PXSJWz_NM=^Z2`}=5xgU_sQxE} zZIF^ezuavGFWtDw6T*0m=_&2~5Vf!Fp;~m}bb2BaRd1R(3?WU;b#1{vl?vBaWUX(Y z``?63=)PAW2~N=~sNRI>pxn*ioJo)aWA0dMc|<`gMJr_vai;Ucmw2Ijrya^io?K>o za+&!2oN?}NBbso<0fqaU|Wbg7`6Sw)ut!1hN6 zx`v$)VFRTVIae+2osAsuV)0-)O}q8h=u} zE;a$DyK*qiP&5T7S<%;Cs0{?GJV*2Sp#pu6cRHQCIBoJhH>stI-zP91EllhBYELm# zn$o5yCKT*i4Y?8SSVSU%a+8B;LCWyCIt5+FCn6+4Rvl-<4VQNIH!D+xpxYbf{*Nh| z)s@1%h2DeZdPVflr3lTbHs>mlX)TBchwi(GKU2j%`)ZJMV5nb)TYB6tIrTAJ8S7?Pf|0F`>5CYFN7a zKXD@Yi=6h)@6q=O-;!63k1sw3U+qxBfBzy;?m8;35RPG=*{4q4{&E3*)K!Up)sW4V z5?CcuvZA2Qj3$aE#{fyOp0O-ah|aSAxL9UCR_9E2FnTHL1~j$Z;->%QUNcH6O0Ui{ z;i*XgY+Or}nndEyIqT2uFfJ77dOCddJn-21LvJ4w%8(q4=%eyqFMuYQn`c^)*_mlK z_xZ~VyO)xO-oZY`5~f#oLJePmnNKm;2p@jtL59)XzgQqon&?n(RUR)vQqEK3ao1t` zPxDolSN0{s3`Ceu%Q*YELUVx25x)m}FV{^p8UH|LdfeF#$VVE6fI5l=!hl=zN;FBc607J)_mEj*Kg;`zZ(j&ciIo+~-8;j}|&la2x^ ze1zq`b9;h^;6&+5#^V5h7EC7|GU*(}J;{1@9%Xg?gxkt(cJ#Dyc9}W%FS&%?)h2mg zx8>Wn2;*ng{;AvZKXa@9FZ-uu{d}bE_a=FxP(9ogUpHI zj>nLMa9J-Z*~$9b^R`b*%Uw=g+=gwho=Fa+Sk)mZ+c+GVt6^-_X^oR*2tV1qh(-`9uvxgt};AT-pSw;FHEe_IZVZv^qhpR^o;}| z9}l2S`g5rdM_Cn^xB?xI2`)0lBR76XG2LAuwLTFaw$38b0#{ia9eyCSwj5%79V$ve z-LD?t-v8NKD#Hr?#(=Zaq}RANwMqV(II)AL2G*t@1|ji}!Rq?I-}l{b@0^y_ms2ea z+H!idTefCYf>%d>Z6TmacmZ-UM%rWb1~g&VewfSMkw08)>4;sElPkaKS^N7u7tU1+ z5T+f)YVoXe>(O|x#17v(oKIapd+nClDmr}bvH~&lkDDw0F#nS8wNkjICF5HR=4*nF)1Zrad8h_VTOLX9W+GVlAKWF34IpRB zU93b`V_T5aA8FyZ2#MdoBev$1dbpy&#d5&7*#3-wwo$M7HjlYB3=)!g+ zTZSXV^GJHshyJ~@>oISUN+Fv>D^nSl_AB}z?P+Lla0Sg-9LG#Z|nf;2_ z>T;4ik~8Pk14t%OF@}!yONhg$UqD8IH{&;7a5yB8hskYUW zqV>Wwz5%9afGAu@Uwx%Tq#eEU=G`rzKng<{aRG<A^E>kE$8PXF#$J4?Z;XxZn!ZKY zr+{f!p%@G;aC7@dFoCZpqd11oJ`0~E?E13kYdG3})V~`y^T3MXZJ~y5ZrfYINf@Bt zB1@ zcRxT==!}=>ngOD7-uBMUawMwdOup4hFQ`tkIl)E|N7t(WcMd#6S2+ReP;P;|kk5jT zd_BM_U+axh{PFe~{cSpPcRKDgLV!v@op&WEo@&?8b-d5Nc0Q2ShTuVUEX9Ls%9q}% zUl5wKt%3nMtZe;7m-+by=bVuMbf+;m=3lh1@rU-AyJn#9bwweS&Q&|eyq+n2H(5&L zLjSN?!lYv=7|6ARuZa-b6LJ){3kBq1+dMhwrT5*lhfPiUCHhgvL;Zx6l2$+2F$3Yo zUEeDeW3{8NnvJKO7Yjk6?CUKVMEQIFZVR++m>`GYOgY&Q{whIXirMU`B=>RW}(Fm>rU&2yUdy9%Tk^ z*qdp9XDZ(hrS*%I;Vk7A8o)Ozm;qzU??}d0#lBglOWW+AQz^*+w+hWJ1D*mN1o*u+ zx8n0{_4a%~A7-+8gISkd`aoDlQlf6a|Eo?u{|H?5_ul(2fU|a7f+mp6`1Z33ddct# z>+I(9)B9Ke?T8NuC9t5|T$e`@!K}s*`h>tyX307f@KQcjm;@Y{LK`9<^Yg#a;fkOKHrv5wwat0&p*rPVuE9JO=KYo!dPExDiJS0G=9B?~GaQD=8*J z!%jsV_C#CHiuj7pGBrTQVOzJR{Usa{1mB7yj-o8)H19r;bmDF)vf9M9zu7X((mNS; zdCV>~@?K;EufRRFX=UJq%u??S3;nR-=48-AW_l5g|BkV>;*|MG~ zZ|~;Q=6ROpx`{$A`VBWSFBy^4sClCYBP9*LP*lUVdtDeB6b3~Y8IA>xUfrA%9zP*` ziJc;vIsnVK)#kjP@TQ&j7-D3E9TBkYSl;eyn1~8H*QbWFMP2*eIKfZo)@eqvDe?c? zDMlYxz%O`VV8C+7wC{@CSA~o)B>O`pE<2n;H$w&`qG`n;_q6ooW>r`N`zE6KK^j>) z7_?I9wwX^96i0ZIR5nDqQhWEU^?5KN?3jtuGZvC3;9SzJR0c%?n{;LH?&lC!SX~4t z2D;5FIc1VspDCE;%qC=XzS5)0ECT!PrLR4iHALoAhkjJq-Wgzy5DL`IVNdUy9 z)tg2+m2;;mrF|#{_KsE8SkKL&c@|5RN1GIAdoOL9lzEFX2c4#bSyqhsaS5zP4agub zeMD2M zVe`FPFqca8Ap3CLL{rvshCq1;t%HXamJgxWJKP2RTRirnDU+YLNfJ2FwmK#m;ynOy zx6^p(?*qxH41-LJ0jG=`qmuLP?-k3oKXzHI-UXIAxzvggdHO!Ostd1TntC`qT$Izg z{lt~1jBnn-ynDY$0%cAUeLGX7Gg*Wh`KKx>&L5xT(98JVo#k@zCj_yvUu0Q2$wJzP z99~`IbvjMMVTzhP^^nG{KBKQUT9^rng+@H-y>q?#wTb7A*k^mxXOx77RZ(@GSngGA zD}4Lfbja0&^Ze1&`wW|GbxMqJ2a2NexIoN^xMcPND~&W`0^7q4XimGCS~$hCns2f@ z#4NZEz}jb*n4V(p7kxwTa?B62OAECQzWPFj*HCRY+q^0S@q4N5<>6yTWTOzr?JAjy zY-D8WENAO=RN?NhH0VmSj>8(O<*mYYH=mZ9l*0bLE1lQ;UfMDbtl|`?7gGkzK)zYT znl!-SqwtS9ccGsg)^1bW>q^~|2-A*|3X_hK-uG-*MtT**ZP)vMuacLF|6Dp;#XSF@t{td+wGOet54IU~q zLQEqj&~K96zZazS&(V18%GHywh@NYNmNQY;{TYeg<7l?*;a#Z8{)QpW!tM_TV&H=V zH89#I^&z-6sW%KVJsx=~GU*j(doZujJ+?)$Afi7EC24N+a^`N$_`A?~{;x-A3vdba z0U$wyodP@_;W1=Tr3(wS-d$dQ+}L5Rn6&jF3VkI%X{@Jgv_qIecmg^k4~T`96(Pt3 z==Q3Xcl|M@$GdmIcJo0d-C)oBk5FW~JEhAE-xeRfHgxOl>VaMna*Nwq0|3tq1AWy? z7W3_H7rSh_*l)dV{nTHLyx|y1R5&(<3#JJU<&6#t49L8<<@NZ|MQq{sIg_BKQN^P_ zRROs-hZZbgWf}8GvL7dSjc(cdH{a3UrDPc5?mXpzQm_(~Bj%%A>-yBgR+GE(ee#PR z7vH{Q*T0ojp^OW*j-Grq5gmSQ-uTVhi8X25D3)VRh^;$Dw|%j1zxtt&m#@&Ja|7t; zKqa`Vu7w|YWvl^1dULbqN}=30T&vwe-J4k}WSwFurl(?WzyYyXib$Qy0ji$2LtMGo zBmD9LZ0Tg{2mKl9h#^d}9?4C8#x@FrDi|zmNV==_C3^=o!egW%KCJf~Do?jbosHBp z{+xG*endNiFkSMMp84$_852oYUZK7waO)=d&6%I`vd3JHOk|vK7>Xw+)yO>@qWM@f zb$#_b_Q*de2&g}-Zcyh&!ey5ia&Xe8<#y*4TE)y;+988%@D1j7HyBEISV4FY(nIsb zUCZs=p!KUMD5BlT?GzN0ov~VXI0JpmP?R~$h1b^vkghN;EOzVHy!k^nqBk|R&j?F4 z$m8G4d2>ET)(Xf!qqqHp$StNP9@;kz_M99fi9~1zYn|EsHuOo(_mZ_3&H=~gb9$&{ zmj%(g=LnAq@p5TM36&^>70BxS<1#yR87#ALV402j<1!2KRrD6YJU}j)U>Kr*IDA@Z zQE@JeB!bKfj7C-`mj0l#XNx5G8tFu4Br5VcZFO0%ko5Ya-C(};RUlPyl|BKxOY7V)ACgV8NT7r z$dv4PKAU%z_wq-qhoGD%#NtfpHu!e)+mxapNvVPNc*lb6`4c}O zI@NF5z-nnkgN3cak5o_Dm1Y-=FrR%!b%!q;+YA{KyZdi^)_=V!>Mz9YjMCuu)|p04 z*6Aj-?vA3h^%wT)QTYl~AzqxsT0A?7YtdYD^m|fed#G2wCUKDeC!|4Iq$Z;i;pgd;=t!T)g%nV_M`VXp!@p(hpJiZ2C_WTkL?Q-cLl!~_k#@fVnvo4 zrHmHh2W)NWmv@SVi3cS7-UUGE`@|vM(j2|x8dk=_?rwKpSzq4m9jN_(P)>=(5Gzko zk+nfDz=SWnD7kkZ?ENXfeP$#|J;eQ`VYCJXW7wl%xgT|gv3{`z_*lpAGC~+M&YM@M zxnpoDgP6a)ckdi$gz1340`}`P^N;r(Qj)@Fjz`2=1&F=tLL5UOHP1@WHBvJrZ)wy; zAVe-I$n9YR;SFlx!$ZV%xkWm+$00~zvcpkL@X~AyI$3b$v zC{xv3OJ8~%x0Pvo3JUIHQ@0B=Dy1z3(T&1YatpnReER1x&0+^;vhSar*Ry_~%r!T2 z@D6nPOg-dbBn3L=G$n)BonNHaxnOu39R4t;x6fS6@wFvQd0!>EQZn&rid4 zanYSND-nF`}c#hbTZ@Bak??Z3CoAA z4PPf1=D+(&+l~BQ#wW`B5(5fXmfhWMTAtd@lcu+Cp-Dfs#n3v`>JdftUC6`LEb!5i zomvZmG$~ZNtqck5;%lrVV?zqg#<#H77$6&*x@0H!+A$Y(u0={3XwjUL>{0JMO}~GE z(cR+8EF`_ifi;G(NmJ87qhAiG^bMRlN{jrl>m#6?5>+?L6-jd)nHxvDxLcH|@4<0N zFcIeTvHTH|pRUukj}ISwzo5*0P6m5SgP%MFn6{j`$@GWh6kz6I-L1M9>T$_#>BBM5 z7(>~@4R!@6N`z(J`DEl!STm(vQB)SN`eMHdZj#mH|1j5opL%fD?<~z=zm4~B{2S@l ze=+&_j}Er~J~8@V^E0s{zlw%%&ize}M8LUU1xb|VaQ{ktRh9wy8+BayZ`u3*)WQ6{ zgVyp_5g*cc>aq@P8X5gDKq~z|;V``c z+%o7&0efw2zcs$XLZoY$p}4Sh&o-F0x(YN*fn#uv=>*O%TNVZBwf4MQ83YN&x1?D5 z9Pfy*`I?=X)PzMXA0yY2l#&w-Y3;Yx zn1?Y+Vx{`~KHP#N-iBNPd1k!Z&hK*;d&oWb65MLMs~Eb;F66Zc@zDsDAl(kY zM^ElR1>;fSNt9&$MSk~j`#wx7uTTJqnan(A(&y4(oS*q-Ucu{wPLejkt~}^^?4lp) zEBvv;Tn5M=aon;kEH4ThgYwu-D1Gx!Y};#7KuN3dcFit~KT8{2p$JxDdHw2EH%tAE z5#29L$BLp*`hnGbdK*Z^PRSK0gDQ=2C2!mye^2fk4v=h#971|oogX|{yH&nQgI8sH zSnQ`JIgatyewgz}Q>SpC#riaBzWG^+;Bw?hsorhO<+9|!TE2rnAx>psT2^`@u7k58 z&GHpj5};kdS_PtoTH+|M@6hj&CQN(-vmuQ!H>47((nYtE+ zKOro_1VeQ$G|LjPJx9XBKM1;#j5tB9e}rtOv!$3aw+)zQ`aes8YgotlE)cMnj*+q7b~h(d@MvB;gR|ioS#o=X_dutxO1)-6`iJqzyScqkzd5j zhruXly2%5WI~uz+T>$Y;YK+dAa@QB^9Wihsgu3x7Y^Rxa?x6Y$0M#Gi9)Ue&*;`uD zBgx<6^I2#5W4;q(9~~LEd)i6t(6V_mTB+*B-WCGzKQftWrl`g4w9^e)L>Pf_UyG?k zGGiD?L9Fn1h#8x%^@nv9QLRS8&Aj}1I^*FhJ(8f+bEU=6lxkYrgQYAa&O89u^+yA~ z@dgwsLRf-2i#Z+2_859@auB;U6C}&vzFLF?F)JdWIRIwh-oZFL4bur64^kVGZdt1G zaL~ZIK{d9JD;;YZ^-oNQbbX+=DvEr6jKbZZiKA|iZKCbcK9rOi5=Kry|L6~wHvbdC z?}DCKsrBGpy}46Tnt+BJ;_M*Bi?XW&;vMcN4L~k|Kc=0aNA*!Td6m-82XC; z^YH&2Ny+c|_us%1Fk~j7!?-MXOU*%ifsf3Y3dVK%zaW{N=O5m z&6jtX8mJjwXX4;qp1WzIJA3O83J8uEd&~zpn3`HCQ?)V5yS-0gGaO1^lE!nxc4cL6 z_b31$pezHwj;^;90Jq}yxDZ`Tj>&`Ny|LK+MDYW&%R#vp{$%SmC2yyn zBAIs{W5&JpHaL${-%U7q_Y<@gB~zQx~o zlXz%7YmNI zDdr7`dUBcRZEyY%JN!F0bj=-##XS0>uVP_H+kizHJRWo=QaC40ZIG;|20Q4N@4`0T z<-)03y4#_Y)Ty@$`X5Y~`}iM>qla|?2X)7F4?hZ_Vmtw75PRfgxT1fH4Rl#doqmS( zE{Smk&hD%J0H&{D3>`NEVKOEu53}rJ-)?Cq*&mYIjLF!+x1ABYs2m)TveYg9rWtkm-J025(U@B;R zJ9demQKEVROFIzvqJLB}VBz5e)uDZ7=`{ui)3!G~1^6evr|ti;?&^Yd*Nz!eOx+kU z(mq~VQKIt~v(Wh0F;ug9?R95=m+u-A;yVlmJ?QjNVQfmX{8eQn--< zP%5$?pdwHvlNfBR5k+QZsMc!*dR?Y{!Gy89(6v7qnQ|6IEpAp)KlmqPI^EY>JA{12 zJd*WVm~qNqo+3VsqiOGaRcD+&xHk)t0SH!D<)oIuLfPBJ66D6Wu&yGiIM|GL+p!2A zS~hF`L1!7;fsx)6Qe8)yu6tQMIMXd>!d=>TJdfwrxVKz}DRhNWL|1h*%)C6-&Jpw~j1>F`|B15(}Z$1?xPeQ3XFn zFm8ST*1-5t0dx)b2dlJocRVB9#1^MwKHV6!id+7t&iBCT0nDAJ64G6UJ&P?v`&fz&Te3cWrF( zs~7sYSXkwom zd6R2ci!P0t>a?6Sk!{crWiBoLs<0=AI;D#-qztY;B)wVP;?Uox$h*n7?>AT8PDdtF z{rej`vW^y9zx~qkEq=)AD_sln=*#Rdr>`+qa^8aLvwxM>>pf@-^io(<|ENribX6JU zP*VC_k>Ajw2g@cimX0DO>MHT}**s3RYbw&}6c5dqzSo4LeLv;_M*IK+!axm4Z0Ct%W z2g$N6o34DX!a1K*Xy*Nj8T9DjCi4pCDTX!vXWXCk-`Emg5%7CK_PS}?W*dyCiZO6Z zpuir}kz;OF=`)nKjboFNFThOPCFmb=JU~$r@mvFK=a~6x{s)kr30hg zbIft?)X7Ru*>wuNenJBHR{QxcNzJkNh}~lA@2|_f8c5X#VOv37wt?ue&(yDDNRFab z>*Vy#vl`>h;}^l-=?71KHTNf4-0v(d|4(1gFltDWer73L*HTRZ&x(3qUQ#tGzUW%( zbMW0ZFTTv8-mJ9_c7Q;F@3ovcsouw{&}4(Gy|9eGzKW=8gKDWhgdb4Q6$w*daoD)8 zopev@eXmPJh1`)v!`)kxW!`^iK#H|g%Gj4O3P#?nR_v`YZ743)$v=Dbo?7DP5$w_) zdghKPVx-W>deQh|$gX6{cw&JR;yo8}n3!OO44!;8G$+*C<=EX>XXQ^9zl~^AGviE9*#o73g0A z$6kl$J35*>n)>nU-0E8lEu0-e7eufT1fmyN-6}cBd*eq5vYmMja?MZki5u{Xv5Fp3 zmuPEUEz;&L6<_r{9|2XaZSdpO0jN#1sq|RiRPCmC0i1eG zf!BQ-ldZnOftd(K>swD>T&-S|CmN2xLfNPZ_HO1j{adniu}Mezkh{#>?N<6L6)%s2 zl7DSS*Y`J~9*f^(tlfZS^oT^@$JHp%?LcSrs-D5%T~rg}s>@+?uMB9Nt4c#|`-0;4 zg;pXcD=s5f9f|H{lGUx7C;DL9u3+6%tML4fr?7zYdH8IECs5KheX=Nx-7J394m3Pe?% z2M{BvNl7Trto50%-{|mxIW9SyT%UD&9LE>=)1rZw_F%|Q9$lPw4I>$n4yAlJhiOP) z>6WUxqTU~94`*5ZE|1`!#X+OQ zWoL@yCAwY3-}M^n4eu;nGaUhPrJ^~|1^_#sEx+hiig@kZhks_hX_Xro&8v9usoNUC zGI26M-f?bA>%w=?B?8l{iBx$vMDja! zM45VpmCA^dZGBPnEdH>xNa>vw)s+6i#yjhm81HDgIqTmVI<@jOO~vf8N0fu2P8>)g zb1>Ctjv{%fWs)QqN7J6nwa)z3==0Nr4|EkjM^7~>dem><>HLnP_J#~oZ3SX$jw!%^ z&82_e(fZG;pT45HMrQ#^;k{bJ&?2Hq>Q3%z>n|msfZZn6L?VW!hf%hA_%;_G>HI7` z%I+zlAA|x;SOnuZ_2L9&?`!U7`CW5fR?E#vUFiZ8Ml1b5S*a)!;|Mi$6vum%PoEZ^ zWt}a;f6CJGGZ(sLacD`y!IuRsYNka9m-S~LddM% zigeG(P}OEXSMIJC6q;8cp44i_l?ZeAm}yT7O31v!x)#*zDU&BLJrVjP>rBgks>Ax9 z>BjE7*2}O#a`PaSg;5)gp4QySfBuamx9wMvbpNJ<|69u8|6hOh|4@d&?;XA0H)?yG zivUMZ<0r%%x-6xe4cZbf&_rc=BnMN<|Kno?{cV_M!QYBdA-~ytezW%gIPF(^74%md z5ybP>pJi_U&5xXalc4Os5M&fQLAsABi7&a93}p%jdbzA@7zWS31k(f%tSL zcJAPQA~1sSuo~Fvv3=}&86K=4Vtel}ONg>`lc&AWy{VbbX|d$LfTjn$UlP~XBTr%N zS-ZaNUru>fA01UE=DJ4cDaP%gt92cp=w+sRlGj@=_=s_zr&)XSECqt{4dtyI1%IJKu^A39IlDp`X9Avqb@-hH4 zZYHznPUsw7Tk=wfb(a)%Ah9fV#;GpZy_bhwy`;7n1WVNV-xTGY%f zr&`gfYWc^5?}%7mMM|^(VKp))?3fR<@YPd2IeKRCc<}ny6SCLg4HY_DXL{!9xDt*Q zzPK>fzVM@Sw-!IA^|;3#ZRC&?Q--n1)3dUNuknsQCT?QB$Ck&{noy((4dyoo=NClc zI(5zy9Gv?uks{+n8l6JUJ}MdUe^Rz>S$AXF#67u)a=xO}I!sL7W<^LthkWc(Ba|8i z?M#6<>6#^Ej#Zc{=kWz+j&_uKM^ApW_c-<9FskX8K51IZvdh=-4v5vm)e6?Hg{w~n z=W7w1FUGt$2lZV|WbM1xpdZvMiV=mMDdW89*9e72=NuxAY4v1&P)(n%5ZbhLc}16y+w5BV^-3_gJv z2R!{anjERT{bBO{@b*XF^83SO2!n@332$*%0-D=Cyk|QpJZUsg8aRKAmmY*_r4LMP z{)AxV)-xbaXjAhB+_G1APo1ml@Y0RQ8#xl7sD0juafl*D#i=kl{Nx;&C-ePprCn}7 z+K0bOw6rS70Ns?;?tx4lx_tD<$cS|?+tEYEWwY3 z@1~5`WZLppA!W`d4B9cLd@RPG>13r+v&2^+|ns zeyl8uz)VDDo;#FhocZ1QWt=R+s57-@QZ5_-3R1kl@vN^1vDpJtxc8*_<}RpfSD4<;*AGtY7cyFwn1N^Z~NL5Pg?TW6(+77HiZ(l*EpF+m+CZg zTo9*PxxB-Dl#nqXUmnOU(ByP!aEvDXgp8?&ia^sf-a^NXfc!nU4KQsngFbbJ>cuY> zfa0lj?hn1ncW@@({ams?%v-=#DDlpgu~~0lP4=wf8s{L7i@;Yp>@5M9XJy{P!PHz$ zUaF3*I&rK>G~WpKK$-YsncY|sd7Vxvnw6M`@V;Gn7qa;DO^4wK4!@}VAS_Z|DM5unt?<_ z2-7us<=dR^J(Dc`M$XwO#<$-xH_W1}g^z}<;37lxY)c$Eor2KukscakI;kB+lhphKc<#X!PDC>U&b-DdO}C=NA&QxnY9e0gcpe-r77Am zXM8M4_tisWySl?e^1JcCz?Y*)&&=!GYeD^e2I3eqtD(pv4d)z8x*LN0Y$f8elw|qs zjm|}*%cCyc*@QQ?K{Zt$%3z~g~Ixpom1lN zHhsVB`zpA#noM>HU4wDi>pI|)tF5h1-{IZ5^Fk#*`hBGlPov_NTLzM=gld(A?uTy+ zy!1T@dM{Q+=W5Qis$M(pH7UU;&HH!J(mP%F4-&H^+Gx%OCc<^=o7%gFb?{*clkx zObpdtL3#bL(7U$H26d9%;=Z+3p0zARod)mJ_bGz+P!^sYudYTdJj%R4*!~HTgho-n ztNVh+R3xX0YR~<0|7!nwi#mf_R8#4XF#K4I_zX zs@9Ko<==q5-CIe$oE@oF`@NLxKAvdacQ4Q6Jjom2kKRHL9AKRO?EwEI7sf}`EUx-z z@*qDUgS@TRUR9>tQG7LU*VLvopX44x+!4om}vRS6! za-*O3wOYu6$d(14dbz34#me?<2T$&(L;B{GS3z8m`Zs()Rv697bo*UCOGRtatf#k6 zLa6AG24swXYWb82bq`7L+{GU$scDDD{SwS^7Q6=YG`2@dyuGGElGLzc8c+ANBo&gxs&5kLD6y0kSoqS3f{aac>!}vl|n^{g{7E z+w%tiE|bBj9=ZsndDd-vTwgo9_zXQ=t4?gL*>;KsaHC8*{=K%1iWtvQDBcO z)%|29G-;ZHf6kc(t=0)4A4Y%nZ4ewUeT&zk<}kt_<0CuNnMVguR@yrVa5Ru(wdI+_ zGLDcZQV{@IJOeh?d6MP0*xfKl6hBIwc>f&X@Tw{cJ>!>uE`j#f%&GrbpAGxFCVy)t zkl&d6{f3JPItc#(j}x-EQ|FFWp0h`SnZ{C(-tBs_{O*imdEr4crLDVYOD3AUUI?BIlelNQNTEDq;ae`MtZl&pv1G?sM4V-)LM zYp%8CeCF?|srX{S6`IV!SlAMX-W_bhS?H4{^T?d1H?XGtFg4H=DAjzz@(c7CsvUkGw7>mNvRM@EK6*%L3>AW5p!#V))N9w$ zR=co%lg&GbAjao8E+3qU_8o?2IuGFxuzAE1vOaNYzD@NuRLL)kH4Z`zN}fW%0xM%~ z>v~H1(4>YOmS%6LXw;sZ(Z7TUwG%^LwY$&yyvubKo9~hAy|?2Rm~nQa?#}O0Zmy^a zY13kk2>TNT)^?5;HacS}mSUL{hV85puh18zeT8$|XJ@d)M5lXXhUJyT8is}Bet{Pw zxLAc~^(kQo;+ZXvH1aTqGN0!A+OKXtJAY6sYfK-g?G{6aikAzPN>yqtOo(FXI_@ke zelJFh#mw$K&5ESLsCj(&1==6}1yVI?416)Ze`+Y}O;^c>(_hsh4rCGZ0L$0IFiJ{B zo(QV`nV97y+Y5v?D=W4Lca!<@~10_5jKA25Wjo$fyymzK|8Lgl>}V^Rx{ z@+N39pEXSEb(=4w>Zga((7-1~a1{(rLn8J>h^TjD=^~-ox=+ff7TV*_{h9XGp+ei* zr`JY2xblsY>@@mT5jQc%u9|2SY-Abbv}+MSP3jJA(AiMo_!?hue4gX1+r3)c0yt8VhxM44iT0Rk@Chn^r_ag(sLnW7$CR1(C1)t>SWJaeLX5%q;jhEHu2n+ zCA{k=dOGg$DEY@)z|6}}7qpPiSL)aK#>MqsoGHFK$7kw(SuAnv2{^^zyC$y5N;-l3 zcTEgjc?FEN35jp5@8L$4Qy9s9n5x9Ej<1fGPQ4Xc_}P;Jw^3%)dJ}o_qWhUkq(>)6 z3*ixF-08)17Qa2N!z7Y*lp`@DaE$#vc1Y6g7Hl^a;Sf=Rw#=E|p{xcFDir7lI*gQ$)f@j=jYMNm)fRA3Nq;FC8iUi%9(ykX;BUG*!o*Id#UBcvPU1= z)1)HtwLLvnKQZ2yWf->$TFm`;ooRC9>D2bsccWE8D$$=v542@fYSG@AgMPh8H_3f7 zA@j}giooDTr=Uw}N!2rmG|9{)gVL%8$ijqBaf<7Qwv!z&6I**T z2*<*g5ByjSto1r`s$nZdgQ8tW8oYOV*%ddhbByZ`gpzmM2EDr5&#YzO64quU^7v|X zD%mm=+O@)1c?wQ-OHmGJ5zAZOinj;|)7b(Ti|0kMa8FDQW2ByKYIaEfbz#{ZMeyOOLVlk?^%jV;M>7>e@cLzoyM4SmY%RGCe(v zoVLO<$It$a@tJY+FFKV{sm`<;u>$ebq19UT9n&vF~y9UtEczo04`<>9qk0jH!<# zD$u25et4ys^bt2&%}my@@Gxa-xUS2%CL6qB94nSC!TJky$rT{@@C^ z`B^r@60F|d=(QMB^tjB5)~^KAp`EbJZ?I{<4A9l{R^({^nnwJipc}9!JTzvcMktmP z18PZo+og|AiSvv{0L7C3^IL#oLI#BL zUTI1qkBCUA5{us~u$G`Xzgy`?G5?aYkXhk*VHSwc|0QswbGkH+vX|C4yYS)5ee7** zE~PIrIQbK%YX%}^#iEZ5kdX44SfoT2`|*rdv09qhof=A7z-oWgCR(W|D&EZpKV*)C z|5){xEaVzO(;&H?Bef&kh=}GP?mVJ)QXaEvOG)%5`xn}MbhX_Q^z_GL)m6VhWIMCk z;jU4X-A`amv}s52BFNAV;v0Lr>##m7YUZ!;(Lh#CQ^CcnEaK&~kp|JWyGDTx4^?XT}>5=*C%%AC3#dEK}t+^Takz;*> zmr*tcpvB$H#_}dohIAUfJe#)!3(?aP3XB(EH`;GcTl@k&t!%JjgNYGm=h7%L%JdOV zF=mO23`3^7>pb4?5e%NDWjTEmIP&xqs=?^8qlh7KP@_uk= zcFe?b-;7XR2AK>RsY_M^FzMm5`bp&GZ$k4e&u)eq4}`mr*ozHF5|(O7QB z^8N=Nmh5sZ{`~x=dm2;4I;b+eDelBqV?O-j)^P-g#?IAt;q9Msg4rggbV)AVsw+*m z4S9exJBDSE&AFpu=k|kW&DkAVwZLG8&|yGdkroa=X{Mcrr0*Z0jGqRdjrF-#+oTj# z*q8T!*c5L_u;MtopBA7W!o3~HXWsEqM0L;xrwHjU%#apuGxxMefCA(}$dM7;R|=j@ zF-Z3%gXSr2?gp6xnbW{xCq18B-4tFrcUhfD)yN;VKJ86dwJXptf?`M^6yHXVqARRe zi7AC%aG<=nXgV0=5)J8DKJEm0eA1RFhLqnWuwWqUno?KOO9l(;J!*a8v`M$-(#E%; zVPeCKej;fZ$=x8bD#LLlx%(V6t8ueC9sfhzjrb~M3HZ0Qm=cf&xi+`}k|AHrK&D#m ztD&XyVXQ3Y2UmQD1l)hnhuB_CY6?{^+#IaW_;{V)+OC&hi$0*a0Ewc*l3PA&!Uo*bf7 zgduj7SKFO+i+V;$9WO~fGUy32J9^S=S>50ZT_OPp!ymLcIB;3XcKK)S5b106pI##$??Ep*Cc~HV+Jz1cD4K-Qae#u4cS1D zJzoM{*sFZ=7*nj+o|~<}?e7j(GGaPfxQxQe<(-$;d?M^^BBdS4@hbG-GoWwK=z)Lv zj_PzMQYmT81t=di4dda(?j}T%78mX7ite0yG;C=)_-6icG7lF_Y25GJ#%6=ZIpS_u zPaXrLAs^pWJLq$SP;RtvKi9sNn3_bM$vJ7Ku#c4O#VhWb<>UD1o8FIX#Ay9O+zL<$ zchz}#%7@ntX+{)5n@&$8I9RQ4VFs&!$zCa$Hu9h%XDiQ$k*GFaQIoVG$~{c70~*;G z*d@`m_kM!VX=K}vbM(~VE=L%1{p)dB_Rl$q>ql*yjt-CTn1ROempj%x`(_DT*7jyE zJ_oaWOP`^<2NmRsLGX3pB6Ca1W}0Hzzs^4S(bmuXZQ*MY_6<-=Ys?R@-Vf8&MjM@S zLk$%~yLzs&Slc;O1pauQg>qkP;Do*TFauXG>b@%sBZP{8#P*X8=d)!>Xxrpl^Ab|K zvr319&b$Ec9qB{`CPWC@dr~;|NCy(PwEw;Ajo=#W=o5ye@m)g}{81_k^bVw2Ab9Ll zL`8YW)K6J(6rYvN{SdVr4v`-0_bnq+e@avxX1Hu}Tz z@dU^_R;z(;B?{b@EbQeL;JTr!e39d~2W_u%PA61BGKEU3!1ZI&)aI&T)f}jM1|~%9 zCP4I`&ivPlI#9#9g&QWVZL_jjSw(qlw4+^8J~f2z@bR22jY0{iEYS7?m7)ACN;}Uo zl+nTLh+Fd53h$$|xu$L7GM3u1@Y{t}jJ%^h)|U46cEwpo7Dm1Oma^{yW79f_-tAQq zQJ|pRk_JEYRpV$_xtuJ;2n!YQSZg-(dolN`Ptl6 zTM-`+=Sbjar=uoMp?E$#`o6q6GkWq2m9VFshGbmS4+PGml_aQl^)NU!lV*sn7>31k zJA&lx@1C!^-OW5MsA$yvc@;Gl#kYs`Ks))R@0iGkiwqW&R`x|4R;oUB@=Q!KKE2j^TFHlfPto3U;;2JS#>_$>PjST@S$spenN-#%f3?CVo*z$qN55q zRxKP%W{lEMiPwx#4L%!U$$WfPL04cgD{IUhAgJVb{ZN{2)%S5{@@u`KZGK%{RUJjY z8MBZ3Y?clQw*-m&7C2)%OZ}*Kna;X@ft2nu-G;7x+4==Kn*-j-fZVGFY>aq)Sv!-T z1=lG|_Dl$*e8KGLil1y!_pX_^04R#?T_)mU;dGMiOQspV?7D_pWr{`0aDm#k1pM}m zF6akhUn}hInYCa#$OhldStaRN!^x4))vQ^Z-Ss%jU)Sh~4w4H>A(%s;FX7R6yBMra z+Nald11}idkS}jx>Z z)=IjJRH-L9FIejh3I~8l2kmc#Hwncq(U0JoDm))`OW`B7ro2o`zvpc|%@rF!^ayWH zzNhHqUu0a`4DfW^>RKGV(zuQ34pF9t%G$_%3)WQNCd3WM-+sgIDIwrp5pZMtl8K&s z6Z`r-O@Y)unGd5|PS4idOWPWZl^swDe$v^`(FsOuRi-S2a`G2-8vh2k$_lSe=4Sk?J<&d#+v+ypZ57s^z3vN-a- zXAq^Gq(}ORO;%PRI<)RwUJtQ`Jm>lmi+7QlNZrHK*>ZMzh-O+YV!ESOnG!Ws03LMn z<>O;ze0F;cALDzhV~o#ZKG|G}w#$#24gTSHb$hcv=-G`J+elvuo6+CxpKnME^kb($ z;Bn7oHDmi8%C2F@^h~FTbu{WgCL10!QNOPu?v$rZAdX5oj;B&@I4M&qBd)E3m0#!3 zuI@lG-V4;J7;u)_A_O%Ulrso7HIZEn;?p2s-t&#iCa0Qdzaj zr(J7A7$luUD%&~RW8MPOZr=bJjW*8cT~UAhtg;C<;ZSB`#avzKB$V*R-?6q!@_73t z`oV|;8oZnx_%bRp&2tfYA9M2Vkw4y^p87H@(kTFiV7fm>%{(o zZ7q+joR>Q|Nw2>y3kJqa6&G=3*72La`6%DR(g5Hh%8F2rSKiHSJ9o8>;qB+tS#WM8 z>9oqnG&oE2bn8tc?spY&1PenBPOhwMr_}@d(xfU_n|o^dY_XgL{gBvfnzfW6T(;Bn8HN$9Ku&d%*Rf#xWfm`1mNxz;d?LQ*2DK1Bt)J$gdJIX4OZoa zN{e}C&(2q~)Fo&-otoUbB`6f2oIx;5gGvVOFkVlSi@jcpRXb6TGF5$9P!k}+*M?Zw^Z?4@=IaQm_sx=uI{% zMq>oi>U)23y-%(bQTZZji2S<+lc*4yIdE5wA&8_Idf=5U5F%&u#h$6R5Ih!~Jxqfx*ykCrny zqWC8yP#HFHa&dR=S*<}Nu@|w@TS5inf0cz~*1&=f7S+7J#95iWETb#ce7`4O0EmDE z349SQ`m|9Yscy@=y>j)Hy%v?GU8jI6=85$3bnUF++|ti>4;#)w2g%#4v4oEw(%|?} z^epM>?`Vi>e*|8Dc$KYOVBQ@sCE*7*ORf#N^-g#Xc}Cgk=zh#|@WBOQ;aBU-b{Am9X|?mxxA z|DEq4{U;~)-;A~YwuI=Vm%+Mnm;(lA%AHfy z9;D)X+;C}ud@C4-t%u_$g2+Al!lgjKO%Bu({Un(!K@>mw+vgBRuUAC@D5uhSo`yw| zsgU@Rt?pi{nO~sdP{(2!M}FBaGP{kxi{)-KXfNZU2aM150S&v&bQSxA)@XD2N>$ui z0Pd`X)g)vYUD$Cv7gOSy7a&al2jj?WSNq;t=WTN!)!=8&-7^XO1)2r=Ax{Y!7aEsR z&OEg=I3JVkW2hLERt(ZI(n(6~(zw7V#eIfg=_N@^^K+V~mOBKt5DmpdImBREsuO3w zbNHZip$ZYJfQ5u~n#$V9t;yFDr(A|Ct%nXw{V+uZk1qEElZhSX_JJOi&mX+?&vQ!7oez^a^|I@6V78edSzFviD19VDP;ka|isaxt^utR@j zgX)=(m#a*~!>j7{J6t73I_NJ`I9vn`(1oW*8nvgwSc6v3BgZD7@csQAbW8LkjjPVe zPYj}Lz;yBg8}FP^y8D>wcxZU6@>B!Y<~v#rN{;fnY!j>Xf9yiBBS8(q_iuy%3UQXo z2DRlJq-d-q!{AkJk=deMQ^pT}&Exo^n3W!Sw`FHAb)Y}Ydh&m6^Z-$j1Kr#BnHO@R&$LDMge%ifheOl)Zq0F$J2 z5jO=_IP}dmb`*c}Y39QT?UwSsoYv(|lNE@iC<~6gqO48zM~f0|$}!N?!Nk(v3O=k6 zxX9(b5{gW>MP5v&pn;5VEXz5jO#=uTt0iTGTYeA6=CmeGA6D*OTU>m89hS-xEsSf$ zRL|zz9qGL(g4^DF*Jcraw6tHg7l`zYG?^7$>xcA^Ug3^Q~_ z8M@WGHHEtV<|7d;W?hyJO<1jLpjvSthIn-79enc=?!7m8Abn0eudK&fI|rg}acJ_6 z{xqo8w#ZhGN_?}LAFoQR`^ZF@c1La~TbwPO3xq)+hgCsc2wRt(CK+V0rEb&rI{l@3 zdlq)($y9Br(K>wBZoTa?>6>}IrMjqySJQ41rIkm;aRUezpgMwW7wHrSl^jI!wGXO7 z$%x1x#+vG4uN`rE*?nN*UCvm$??1}pme^R!(jy5v2gGE#rZO9Ks8uLZv-MdPB?vb` z)kMrB{&K=t)1!ZtkYV+rpQcGcL-hJp6={hBWqy9ax=cQhzKv78M1+>XZwVuN=Fcw^ zlOT@f>T8g%Ulofk_MtOT+fE>jNHuZ;KLD=k+{e2Uz8Y8TjiZ_`9_3@nwSXLNf_VOu zjl2G5;N}18e*Y&ey4@cerGV7eAJpd_nr-MmHA(^f*MDlf_#b$oX)#4E$L+Q(GQ&QQ zao5?kF*Ec=`BT)&g97k+gt6A3cP*o#A+++5F|iEPUi|I=vsh$CJH@I6EsDH8{BQ{M z$l8fZN#(S-%1FcaJl$%34sJAx|6QYY6Jn8-r}u8D(ltR0!F@Ic_i-5gVTE@sSLXPs z=bpZ|?&D>) z?`z^7q`aee5%=mUn{WYd-%vDXh2ag_jxY2i>Ma+$jnyiD@9kJi=IY0hk@$A4G%{Wu z?nPNBScjINwf4EBX3z(?T}QQr%6->^LTXU$_M*Q8P*B=+Mnx>+&lc}cTEjyIT3Wba zcd}y&UP5WNZQ0WJK8TL#ZSLRBC{loxu7JA0w6G$S;@DNoIK*h=I(ex_C-bdPWdVNn zMjkB?ds8+=rK`t1#E0@v5Y;?IY-SckJjGI#FfrurKnML zPL-HL2cF^OwhC!qYz3rJE0uc|mEgeJk7ci@&4+xyA6`xkC9V)?v`OadrO_n}844oN z-QOE5V)~%3-L&AW8+_1(R-e~$nr`$nee7rfIr`ih zT(mG>aPuB8i7yE{tY-CfM_1e(vN9V0d~jr z((x`iChXnin2Qht=vH;9_bNwF)gjGRb+TLGcJ-=6$B{IQ*UzN5UXgXpX904lwNYA-MKaa7cOC;;idfxiLJn_k2=tO|(x{XSB%B-5SW!o)naDdQ@L)e;GU z6%s~ART zj*m66WL~f?F-pLV#OW-_=VZnBfm6|o@R29XuT znu%7-%%r(kVo=jj!d0Pf%NpQr3Lr%O?-F(0_&@Of{x=E9xca1l5+NyHw4dOp-=5y5 z7drx$wae9D8am8HnReL&WHVYtRusZ&K(FLeZatRPEzJw1QTi9N-hbH#W%7T+PAuz+ z>hXoTvV&!liq)xc%a@5ZN{mX3UMx4G;(eTu)sYZ26nuj9d`q7xGViEN`>z+X|7c_z zQsCeDt^H^x*qFAe>pIlMGN?H?Fc;udufaE{=5}`sFQN()=IkC3ict|r=V|SOEz6+= zA7D!ZzT!Q?+PKR^B=cD+D@4RZ6}z*>2i3K|K*rScf@x^e9e!V@#lIDyMb+GUfMx4= zyM<#{j*;h2a;(CJijKuwNQ-8;4G~G#tnjVwzN2q8N&2$-iE9^+3)mY4M-LX~>1N&p z+a7)FGc&&0Doh{qm!31!beJV;m-lDAl8BMbFwo8`FUn%gH-7^h8(12yULs&&hq7$j z7|tl+pzuDvdnPsoVv@wmaXzI)heYc}?`b}E3}4NdS}?|J+G57xpSu z@E%%el@DKE@E0gYr2V4i&^F683GM#=;B@hsg_?)xXxCBD1*y`5>`PLt7Bm6KDUH`= z(4nKwC@@dKLA-*iz=-Xr(yCRT9)G zAv2XCL4kA26NjYdoE)oT`*OfYq870oachxUF%OcJ*>_uc9CJmubT*)+5q^-&6tzf7 zg?mjd*Cx{)BY^HiA6J}|X0sm+J8 zW0)}w(XstoPwl#2%sYbb$7*Ns&P=XCin%K5%~o=p$p$)o3y3tI@h9QOm&d0Un`p{V_H`>rEYmE zVS4WOVn0rxOJ=iu!Q(kHDlya?$XFjJ8I6(zc5b{_trYa%@l+(|wOiA8;OU8>X?=s&k7ub0tyWPhCs%=rt*>0VzT* zVkFR<4pbc1>#Efsll$dwlW_%^ISS(*#Svm{$D&&#cl)^vA5HE%*sa#U;txAH zZ)t5x2Ob)|SyeGjf#U{qe{1sQ5-{nv5y?yZ;C@VXw^rBlPSIGEaM@kRj`CE$A=1Du z?|oHgrr)I|X8U74SNel^p;nef$uG?q0dA%!A;9{u~4R)z;ymrL!a z1|_pm!}uiJTwMHb=Wfl%iE~8z z?naC^h{5MVr^XGDPjB?#E8AvWpA>C36n-Ag->5ILf!OZ9t%gOJ2D9C!3>T;1fWIl?w8TVy)|nJZRNaR3r1h$s_M+!*CkanO)yd3%5$QZf(b> z_jASSfINN;o3gWqBNWpubGMx4Yiu?nWPKX!1v>EHc>^8pbjmbaRCmdnPx*+&qKY|9*k)Ne$@(r1w4;MPBx8qC zT3HH}=72|8KChm#Ggg||AbWaW(K`u`dxir`zQ0=kYv71Gs0;NWq@|gnl8OF_sE#qy z_njxM+fm&Z?7&|j+oD>;7VUI|NID5qGM>hnVc6bFp`}gzs7S zKp1x+?QNz^)jUqWq~$9zJ-u5|4lDaN+LZxi-z)1o9fT5Zak+hae@m?ao*>#l=L5AY z%VUU(`#Gq)=6Id8F4Egh0Q0#BxjJ??Cdi{gmAuzZTJVX+^UgMUXp3%VP4d{hu;^{Y#F46SHYtw+0EO_yXQ+Y6qTGGS?n9%MC&F15P6TOxRa zhzWaJ^@1Qr=@Y%n{BvC0+^YI*Ejw%2UKfsl-FAgl7Z_jrlMjn| z450BKXPDvSEr?TT!5*wB0TV#9SCxWGSVx(Wx58v&sd@YK~dK}?haQBf%&kU#o8(J*Wts0{V zXr%d?c&wWQgM?o=F9Z)~YCcmV+%Q%!|5q9bFjFO={ zon6cvKF4V2mHX{Yjs{QTS(c5}k#04Lqeg+9Qk+H$?0T}jZ{!9y4${6%4`)SM28ps<{$-{rk|$2))VX4;II#G{p9=|rd0+v2%p`pFge|lH2peqQ)5;Nqq33y3-ku4!JoXY+VLuhs{WR_ zsAG_sV!glkkUU!SGc)FMC#0-}78ccT^HxlW4L`w4uAo}7R{JOV0p1LoRdl zT0vdua9>l^c(n;$R~zch$WEF42sO4G<#t=e=ftsT&NDz#8DT8+Jm$>$?s0^t$bM57 zLlU~7^r;^i4UY?rd834B*N12C>+r5G++N)8dfWcnf{>S^ zNvHY+TKk3;017XFc5k%$)Zy%XZQRnze)&TuoY_wgonUo0-7)W~Dv*3FFbtm|?YUB8 zz_{iZug{fx4Q{^#r)LYBbGR4dXZQ0q?Zt7Y*P{;{}7qvUy|% zB^`yswB;2b_revmCwZ~cBDEP1vQ=n^i6KjOm!9JotJGUhyMgkq=Di|b+;Jz0pN2l* zaXvJi$I9--0dLgGu|1!;?I0Wa?b8z+6Obebv@OR#nLKrvqg$1`R6$ML3CkVKqDBiC zy+QduG(IUz^VhHqAHX2rajTk3 z2qJZpO)*rt7BVCXJdDm+E+IUP*7L?QjJZ;{1vQw2GCg5Od8|HR1tYm@Sa(?8fn))+Y1nPIwMsG<_nk) z=zya;3)e`|&>rA;3y#ps4RX3_6f%NV>qx9T`HwXPRXNixUsF*<zGJraZ*WEXgeFb!q<*na4;g;t(SaZuBo!K-Fg$;W>pmt zy}?q-GfCw51bd5t-?8V@mT8u7*~5)PD6JXA6od=d!Ho?taNwN*`Vy}F-N%e=$Yk)t>lc&y(KD~;Nzy8)gS5)!tA;+-Jpe59!IDA^lytfct2bMGKI`PmBop5#QUnNdy#}WLseW(rMDSh zuuFoktAXV`tR?OHZP$+-fxhJZQs?71PtGUOaZoJ!-S*~dnU+n!Aq%3dfb0%JgB`K} zrhF+2jPJ+nhPkZ}rNs485iRJ@B3TMzmTdVtT!iEJ)l?SFS7J zv2TG&=|fR$wef;JJu~7lch7Ol^g!Q`bC@R)d{?(QFcAs$8Z;muqOt(+27?ojb)Bs} z3{9h)Zm`UpwVo=p7aQy#N9{bxiEB8+=?8@N37qlACm#>GtY&}kLyGE|XH+RzSZ zHkMsTRLHdxP|=8@YDwfl?4gv5DTCP-)(!Mj2jqDTL}{pS$PQz5XT<`W?pZmOCRwhg zkmPdo)AeG-DNp~@g{seF5H`2@(T_K9be1T99%O01?=n&b*exoO-GMj$ETy z6{8$6#Eg~P91s}13wL$SFc+^FW=2jm7P<(wY%GeeeIoj7<{Yk33xXestd~RRy15lz9gD@CKW8QhbL+NpzcTMjtWQIL`)BDQKZ`caGVfEu4Ke=(X7=%r-Xck(9Q20Ypg$N~g9e!>SYB zn>;HXDfq}tw}3X)9ped7a)>r+=FxVuheGq4w&L73ZkkZjGEkOjpSc zhNQ9yA-qUc3ATV8Q9k$*xzG9dp=^V{23*sJDHD~bGQMBzR`RGzO<%m>i)m$4Sgc&j z;^3APNT&AyD;42vm4kA!h=sepQjIgcn(KE#@fQy>$&LEFKqxHacMeogXLC(-(YU1B zN@1!ha!`+7A)*VsIfBR&GNJwjs(;Agcf+@bKHleSie97cUJ&xEEp5$qz9(qSxH$LoR9N2x}6CL+v{xm z>W4oWvD$NZAB9|5|DGmp-(2yf>nL}=3R63RgvsnD72#}e1YBRKm) zpt8aeS}DHW_yzv~W{duEOeG{ zxgC+$P0;%2*x=btyUnc@&BybEE+{R_AXj60h;jSbrL+^uYn99SilNj(t6jh}ec|%A z(us8zELbJiO*!l3!JZ>IR-C#gv?Iwhy$ejZ85*p@*Un{{FDR#UT*Bl17u5wXi38YfLRkh+`lsFci`3 z=yjTLhl!ziO}QM{*W#dCwKkQ=kGL(DC|1myX{Jk_qBH=mXy@JK#gm)*uFkF|+DSTw zr$7A*7w>531(TSO?C09jS({|oheKgh$qDMvei_2#*8gQhaG#BdkD~yN4dlyJ^5<2k z_Rd#M`#oPSeM(`PCmonUPuc)I923d8$w+W`RoLFaH%>Xq8ORKDn(+f|FB=Ox17 z4{k`Sx9W?Uo!P}5r0eZ(VjbmWFDO#8AX2N8A$PVD{2u=4*av_>90Aa$D7~U%oHUfL*5JX(dpv3 z={qcCbci{bi?0GnHpv^V$;^J^cdnu}m=O04xS;K6(uni0 zNv*Dnmush0>1&^uo-#HE|Hkh7H=~A98%+dm&}pNpozjc31n=4(8_MRfF8<_>)P(-p zY6>8yB}5^b0aCoa)^Zi7_H*h>ao5Qh7Zv{4K|qsMC$+2>!<*t z2wCmt(SL=wUQEf(Nlfy*+sc;svK&Xtfb>R@*>bu@7wka>;o}xb_QsV|LISE+hLUPF zjvEsDdCqGU39VXk;LzjrXIy1}kAR=?5ew-2&z`0#^-&+GtnK{#K3->HW?xMWYlCz# zD1^zs_bh{OFzE%&LO@|;+%pixre0Zuhz9jLhm~}!hslqR7Iqp!OC}KRurh$n|MirT z$A_ z%qtp`H@_2Hk!jt;JZ?5#Wg}j?Z?;Px`0W%oUlyJWY60Z!_Y*j@qgu?(CGd$HttVTJ z01CT@f3|n}O(Oa`Rrr{<8Th#E= zR$$&QhAWu#(I|5&%HsyA{j28i)ud|?kAr&3vk4QjS@jq}!A_R|YG*tdxuQ=%8X3re zm9-k5U~60fWUyZ#3c!q~`6hIP0DOpUMr*nYKgV%LDA?FhG;oza_{hTR5`+zU{R!aN z|C{8M(WwBU-8tP%!rh=ryOqzKbz};&DR{Ql9++@c1D4qDX0RDq77`{&`S9dR{$gyc zo7MpqGpP(h_VfL}M;bQ+QX!*061XXaJH&Hl=Fh*@`;t3DIYCpUHl1l=V-5H1Z}ul0 zW;4~4f7npDy?w&Ci5OPh%tTT}`gm;+-Lh8C+a7S7ZM@v4K9wJW5_E4HHV4WAi6x2} z$<&FsceC)+v3FDk-|erkhL*}Wma0H5m^%o@qEee!NPjop%`u-@zXZSi{2iK*^Llux zr!+#w{@=poU&7}9d;Pt~^Y_M%|AaC5Z}G~x18if_XXQjVdN!i)^UG)72>M_dLrd3q zW$Q-Y45mAHq^|T=HkvJAE+U_z11CS(8&4{L9DXh+d7Iyy=Md1K?FpIS@4>i;D z6$Vx(wK#`BCdmuB80xZhrA3SYl$*Q%zX^O|Yw>j&EBT#YfTiQdJzkZn@z~oJ z_oboil~;M+0v>}lGpTHbdr98|>_kLf@F|0!iU6TrHMXm<@T%_-ROE- zQ?@%e%{L#rZlX$!fwA{cgs!HfWW12 zqlZrS3H{~g(m+L&#M#`$q>o2oZ>ce%)(mO&=oMC%(sI@W?db#N;3>RiSQtyN$eq}( zZ<=yjAcmVDQ`D775&7ds|v==6NVz^zaNgUgHWACP%|IiDMNiy zgRbg=!wr5dfK2b9br^7xzQ=ddYW9s`nS(WL4|t9h&@{x58Sr&!pptje?jl;&-3TsJz{QB;XU!diuOK3wTM6MqbbflgMgEROG z)H&^;05acVWEk@i$OXLqwx$B6raj~P2?vkq&DO(Yg5Ld4DDft!l>i8KhpiU@?;21U zV=s32a7TOPnLiO4>2lH2Rf2w2L)nbqpm0xoFdnG9`}#Cbr6Z>1=X`__Yi6dRB!DK^ zmtbkiUo!dMjxZ7$p^SLd$nKEA6mTpQ+p}8xaq&w(`sEYw`<;XvLuHkWRrtPyV!=O$4EVJtl2X848P-5Jm7#t(0GG>jU%yrHavAkpw+ zmsKJ%v_vX!Xr`U*h2~h=(oU8qz`w^Y?G9fp*fflb*nxE`^czJF=XaW=EtH7DHIufuB)`xZ9n}owKoKpXWh}yWiDEB`df>I6{{Ftn81rh zR_C3P`5SU<-pjt6s(&v$cOr=*gdOhcUCfs3Jn1mMXPm48UNCBo(eMKOWaCVD3&Lhg zo7||Y&VwR_bfLE)dXMV#NUjSCu|D0t?vw$rFfq{j_?P9n_D~({>$04IBCI6uku5V)-Q5x=E`(-rz zxQut)=S2~O?qy87pVZ5ObK6s=c=A3;d)Y>b9jVK7mqOa1uv}E2di=A=;??@9_+n?m zkO{_&t7t3i8xo{e2|B4pVpyL)t?|pW=4s#b1T3jL7jMKK_)tLH3_0$ns5IEtdF@GK zqfD+u)H8iFM&0hlzbVYFW6uq-nKO>^7t1h>nZ}(32(S++0w0(&7tr7^67c*>Vx2-m zbF8?k5g>BC@Yk>wmG0@M7{Ytg!+d(96mUxN_`~^*>CgAOnNc~CxmJo2z)iHYCsQu8 zc8DAw>*e1pPtUHL6=NzR^pkSrYn#jr06iSNP?{qZPe`cWw~XF|(YuvB22k~i_9Ucl zv%D17C-rM^{FTpJE?>{QW3(^Ie{2`~`H}Pf$%|feKDJ(M86{*% z74f--ir2E~qu**DSrQvZ-iUX4y9`%aM2C?8a`%fgO^#@KoRwf6 zGh{QrZ`x&E+pi|qfrw*C44wkvwKu9Rwd6CG!V zi>dAX1D6XIFu|_8Uu*Ht zp8YY=c++&$T@%dbdd;fz4^4Pe{nD5C#Hve2VBrIJBT$t1@Y5q#jN=(B;OU|1zp@TqzlmH?8uCueV>dfrS>^i%C_s1W8%)Q)ull#8sJ?FfqJkQ+N zHjTE|xOvsbgAz)pI71Dq&ZrqjEBxg=oL|C0A%tHwb+;Eq(CveFAgiz5Ze<~1Q7mq3 zYHWHJ07OtXeKH5(WsTV7(FI6Fz+xXER%AjiG!Z9;_VwKmMkZ)xX7re-Ub)I}*YPMep@fUOQ*P6ob{=2`nOMlwu{G)c`bGyKGyiw|CmxQY2)S{LSoddll zgViZS`Q#xep|*`8X-FqJL?69)zM2Gcv#XI(7MX^_xDtRofHgQfn$|W6VQ_#?V~o9c zwWxOn%Pm)qgOl%gU~{+COO&L+uw>j-bYw2|rHlq5U%cjs+nm>Y)E`s<9c!MGqDX)C;QjrVWPqM z{7`OB1Z@Ikwm-@U9n$2=6iao))TvLQN4yj$<9duYS4B2Kjud7KS^Ab7pUjy5=;*a@ zz!z^rFxIVSS3_?Dw?AsOt(Wsc;k}Nw74GAzN8eHa(nj9{BTmKCSBn#w3LsQ>E*R*8pXA{JF`BAy#n~L{tGBv6h zM{(>JwX9A*oU5IoWeo`u5}Aq_M@$wH)V#z7$ade1Q@B}JBx%>idB`oGZ}23vDVCxl z+;k#~Re8{&g2F*l1tZE0U5Qz=L3mb^_FS>=g(yB{-iqpp7F<{IhDO+{*$Kzk<`2Kq zsxv>Z`!*r)R7e6dAQCbOI2DXB&Q(Vft5sK?iKr}PMRSm1wB{?t(eU~qZq&xc8QZMO zaqU)VB~L}19?ow~?F>Fwk|s+}dw!Ex@f?UAq}=_F6wYsf6z`w^He>WvVb>>O$nlje zJ}L1%P_{78^?g7+y^G{aHrOvQ4lJ=>P{V%3&euh1`zd5|J?wlWN3hJH;1mt;cyC$) z6&Ln6>#&2Nde=1D>lCwsi(c;>_CW8v)YH|UUp>}6;!Q#wbwa-qIR<(CVf3y{dGd!Sl) zPe$841S$x->v-4gI<$!v@8ae;VGToFLF{}`B+dE^Bk|Wlnm?XXg)d3HRw;sO?_A-{ z8e5T(FzCaRWC9M9K{}2KjT>a&Y}kw%g;agmunvm`(sa-81n!xRHn0FN!yZV9Hx31t znPURFJz6ZG0qO<7eSr3&fbH-M@KIxp)w`cPvvde(c6;a!8$WELWf@$_lR>=0UUpZr zoGr}p9%7uwOD~Gel-r!yFFWwus|J>k6l<-V`Z1!#(=m$;#U@K_&bMw|Sl=S+oRp?i zQ&)Ud_axAh@?uK%RZ9;wVT(KH*+)fLCpyK|^!Z80g^_P!ayUGt&deiLDKQptFPm%X zoJpE38-f16b&y@5I?+&SlO!Mh2k^n-Y9*YV2#Ws zrp|=0n=_kycoO1e+!E_(bc`Ljv<7D-VS{*=QHi(q{}?m_6s{y@a`5o&_oZp~b5 zz~!=*&`i_S*%z;qEvL+I4`c+E{V!WBWFG#NeyOtz*-KeK{#r){va?M3G2viZW;9M^ zVn^{Bpm8Aux-8I+dr2jM}fyHyqd=2HCCRm2=n2B<0HxHiV%!WokPc5L**T&^}V za%aw;4#i&L21NlQY&QoE;l3+`+Xw}!^b)#tPAOn4RYi-@15qi>BjDBhAE2OjfFo*V zi?zi-ZbC7_m_FJo0Cx?6=r;37fF#FsqS)`X#7koKSkBpyHrhxwVl!|s)DHxu%Ecz)Ip8c7r{&F28WMR9W*i0hM{*KD)WtmCLR+7 zESWG2sAMvtYrOtIZ_9;ayz0gllXqDe_@+J*hI3GDtvrqqY^+>#J6Y6auANo=tRfja z>@kVo5&8fm&5$M#5};b{Dz9-txLRe$we5hdGU)Q|*qh@kx;U$3rA({DM9%v3K#(K| zAgBI&s_eJ^2dktZ8fP~`d&VK>orIr!%-}`(0R>%gtZ!Up~Dym8EJlf3=Qv{8fjX!Uyf-6w5KoI0X*8Ou>b?~`Q6@Nq zpZ>UDH_pH9C4H=02aaRKus;f)fHLdK9NT?;T}Gl062jtk@aE_y>V;S6O9!=HO>e|> zF;bYJh7yJs<0Pz3tXy*A)zG|ha&S%3Q0@ul(NYIg2hvk~4}TgfwgXnHuz0xf?7YSv zs2bSbWcw$XXPK%$-Qi6&l5%oX$uM3Oa{4S+o_zPF@|(Jwwrt~y2f8)w_1L-q9uTb# zB&E2#wL4xjld03c`cQtWSpAy@?5#&*P(S)z6T1C-3yq@}dXI4qKw^z1Ng)i=Z}U zMUQAw2|ZeC-IANV3?Z87*EGWT1_<%ooP`=c+)^T3yRds;&@sV*wLyvwG`B63Rp@Tm zFdws_E^8bI#5O8|8pn9_Zi>)arcoYacSZNVUrsEMo~(gy@z*b)G>~o z>~jrhp%NL818xsQw!R0VEKnG?q`7`bddhS=q?4}e2pMFv!*wAro*xtCQ>{RnJa+{#9XGh_Clzf$HGbWeUxB$hGxSP6 zt2M)oi#W5Hl5swAtY5)G49&CE63rhRtsz*(i5e}`vK#UIKz?+kAnJtvfL3z0F!psd!`1kwpjF&n}up^Zj`;Z`RlQ-UU2P&dgzi*uQ=0GONG z2SUqi)BM@|k(1C!_|-ELarT$Et*LI_LPUV%zsw081GR|)3H_U?1Lt4s>?SD{_?~cS z>qkUq#^ykE$( zvIk<}BUp^`calGU_cX570I(R(m2|kRT=WJUe6RGJzY?4D{&iK$l=iw-9;Duq#_T;d zq-F4~@DAD(vt@<=lj6mtnYNLBh2}K!K&nnbW$<2@d&^wab?f6e&D@GI;dsU#As)NM z+!F5y=yA^m{8n~}9F}X`mCe_cfBm3GXSC~?aHuN1%9gsVv7u?IHcwSVCT$nrh(B39 z=QcqT$YD*3stHPqXz6c4dS^1Fx9q(3gdVt$pvjJHs3EE3N$lXWyd9<0C;xtsF~HHw zKJ5lF9#-W{~xAs|D&^ZcM*Y^LauiqSY;T;aE=_iHjvhCX~vsh?0~<`UgcW~$A4zu z^QCI~jkMFZTWP<#g7tm}aITPGp%9p?KQbV{`uxw{k=QwdNulqZJ)F3HTY=tcd*JXa zpozw2JJB6c;r&U)8g00ngt|i11hXYjA}PrGJ3&XE8;)|ll$+D=e}e!#@A{JgTBC4b zU;I;DzV%B#lKS#v8O$L#Cu~dOeSq<@7TQW~iWSP_IN~BV_}EEM5b*(3WdVf9q1cRKaKB4`$FDv}bz(fYNt$uwQZWKT?&MtsE5w#;h}xRIb=AidxdRcD1y&}*Hvd=ogZ zOATr@@E_%8=4UezJIhJ9O1=I6c|h~O72N%=1X4c_s($)>FSJE~I)bKaU5$Yx&r*VJ z!u1jqj$V!sgrMM8Hr*WBEr1mH>A|`hkZzcMLpLiJ1LJnU(YR+u<3ZR{vLobX!Yz3| zi>bS7hn<1|(ViWbiu$xnk{a)CBa&a@ubxRAFTx=(OBjkqe%CvOxTor$1RJP7AxAV` zTE<-)ARQ2f?kI7hdG|a;lLrwp3~2QS4Up&f%0>+Dxf}Y2lHCOCxV3Xy4uO2_CS}~ZEX~Z6(qTC z^fq&6@|gSX@_Vank(c}fHuX1yG=C(JvwzKR)w%xWd4k_<1l7xsrjHi@01ufOAsdIw z08iz*#utuE&6j?U$CqA>^ojnzm+vY=QQA8SB?d3&kkP=VZz!Wb<5i^*-WxMnTQWj~ z?z{)fdDXDh27Dp0BeFS*9R)iCz|z1Vm~-ge9z9v<*}Jk6Ti%8MB#*%JiXxxw4rhg@ zjgMhWa;Lz7ndjuDOb!(LW(+S5(FA9iJs^J1B@npQI_Fw9iOyJ`hLB~yK;vI#<0NYy zM;E>vay~V3r{ux2kalf6>5^W~?*>kOEuccfyOt%k2ZG+qEh_EQ7o$PUa8WK!40`bi z&N>)gZCfxb*65r`P>0EY?$betKN&;7H{81C++r($kHu()yMWLN&l-ie9=vU`?Zt1C zR9ywE+ygY7TnJvWQUN9EN;>p-a`obMDADYvGma?Enx#BwtN(gBCt(|O;>Kdbvdh&$ z&>qMHs0JN+f<&iDT$5U998t%(BX=|O$^eTG!JUQDtU-?#F*|D=0c<1$xaO+cW@Ed? z_L8?RzCT9?01nVs!^)ui&IgozsAgGIR}XFMJVYEv6iD*J)P=>Kyh?&`dKdc%ha&k( zBNR=Ux`{CQi}(5M3Clcj~vJoz^WHwo7wk3>Jwws&!BgF7A0NtVNq8 z2)lrsM@W`)qu{nr`85d6IwDlYaRUVC&Pq$l-HmZ+RL zNPdt5WG$bPX-PX8Ctg=RGAC-n%@OMM{2-8RxsNz-u>!qZmL2ArZ= zw_|;)7C4cV3UD@0gf@N~1eDPyP>EMyPmD7?i|Ao1F&t(3o2zE&u6M$324HsiuuIF8 zQVTdrg4=@`Ky3S}8@X;1K=$hf#T+6mHsaVimkd}AD2jhmirs8-cP_eSBgJV1Fjok4 zTBT|i?nYnUk{JMckYtLOfH`$sVXYux3a3N4L%ZeG#xdA!E!A{szf#xBzQB9?R?~Mc=D^;!xKk#G1sQx(w)MK~Le5#O+u018)(%^s3Ou88*Kk z@cylp_OG7*GuYn$tL})}m&wABuMpEgUnK|!ZFTs*#7w_Q@Qd(}qk1#n)*&nfz9AGb zr|`)I__G!E|K$2VIB5j2Kt`%13^8~S7eo#JIpzT}{mv)yKj_1K%USuCp7phyd=>iW zB2DiG5SLKfP(K?4m5U9gu)I0R(ug^)Hm`7{ke}=s`AW^iT?Y=lkEPapWNA=XZT|@Q=&(Z`mKQeSz6u zFZ=4^Gab9HE&pL}J~t4bf8H0EeS!JAPqM#W_Sef#?&;?$;`7h@>SAAA?5m3(cX0dK za$j5SYs*iujL!|k=b!hD#lErFHx~QG;**B>VkP|l7PoB0s5in$N3fT)i%T%zIPQ-c zFlMXF+DJnt5NVlE4p2AKSqEL?HbriZD}8>TNP_q>f1#?^+}wLD-~UzfC>LBq{hrn3 z=c;nKG`HO)VkcD_g=2g@c`ev95_~n~*+PR4q@9(Qs#OQrq9_D`#|zFQH*snmc?qUc zEF}uA`ZtQJ{DnsYBn&)@`9tS5#?YC#<9nbVnxpqXZp0u6x2R0zIxnOkNa-t=Z^NiecZQ?`}T3) zKJMGc{m26lh}n0L_8p{s2Wj6y+7HbB9E#rekpJgBWGj6tTP8{EN%f$d!kwqf=0=`` z%z479x#^Tt0GGgaTX!Yja|g#1bBKIlo~iq>^GCh8Nu^C;g;r z1S3E7TL4`mG&NR}NME|R17#OaX*4 zOC0EdibNNg-o(4EVizsbP9a_^*on@5WL`BVkVE>(&iDxy9%pW?eNf$7ZSGx#RG%IboXD+e!4!pQVY`HC#aKAPWwu67vhq|P~#zKxj&z?P0rzyj`K_`KU+ zq?FlKox!)cGVSiZt~Fe*>nt@}UTl@HJXAwji7=iVrZ!9-%Pkr(xLDgM&%fC0mVxhg zdVjp>fh9BgO8%v@zH%y$UjbY_z0?G!|4FmVZ?$RpSLdl`Ojy4%3OD&Cw2i$K+zqZ%mU+Hv*Wu!Te=hlqOpFmS&wCL z_jzV(I^vy9E)MDlfSo-+3$%PdkQdIAHRvjwUjkky0+Q&zX7)3R)UP!V{?T*)TBG57 z_@xt#0+-Ii*_6-7$uS&CzU3(nbOa;33vOU*7a9iO>C;{+13_+#iVjf%yC4`f;7?O9XUZBK9TX zCn4A$i2Z@UeIW#29PBI0eP#Jyb4N+zUF0!pUZ@j@T8zndQObu<`2E5FA`gGh*KIlG z*%rMMn-979PF575XX0oYdBGQG37#0Vvc6ZB|E3rOzqzgYSGHo`>YlHV8_Wm3Kz2|h z`4R`-UbP;_yax)qo&W%MUx2Q`2W_SQAhg0a*(!h9<^M6@2!`^XaVlj?0E`m=6HS+N z^}HfU#J3u`zvwyOUqJH@MmUJ$6*`0WK#M^&cy}P$@oj=D-)ctw<>#pX9%d}aDeEs9 z2IM&p+-~K4w&*#Pr z@435q!{Qf90EPsn`W-`f_1mqZx0mojTNyK5UA(HH=!#U1!kGD4(V^cJGcib zP&d#s#mtP?p|dw6COb=gpgA2(0K;RUHvtlgno01rU@loPFD%eqjns;_Mi0^jdSLg)RI}{jbGA9 zg1+LD%w8zf_d>497ecmYIq*SF%V~tKs`(ME#Amk<2YgTSPWUBd^q1PC1ouz$&>Ug;PvcDZ zs>XzGi#>g8q{a^)q?ggB9)a(Y!}G*TS|&o0)YAcOmY-QstVf|}^O~SaKH+E6h83{U zcb%hW$$lix%#AC&wU2yt^ds=MxJ+1N>` zKhKy9If4^FV$Syt(hV$#mY1BcCRHZYzeS}=O|WoNP0mL`&H&X(HMGchFE%00QQ6Jp zt?QKKeMHOiET^yB;0!ZbL&aX+%)p*{-jfcMZ(}KAJ(!+suwI}hxa&XTa&UYN4fRFj zv-WXRlNdjJeXg0p(3?S&*?2*IMOO%P@)jA9yL@fiqJkb*+C0V-Svc#H=&2nQ3}-Ml zil33soe}pI<&`HS7iCs2`VGzun%6F}dBGoR8K;7H-oVTaB`}3_RCI6hA{mBcCqlcX z6iF57&%JsqYt_VaA41dyB`XxT0o#_tKatnn{b^V=_1G}9$O&`uS@pi@qr%bR zu#fL(y>Svf;j6Ot9$KN-M4i`3u5dgvwA=?M#Hd{*lWe*0=Or-G_M`xY6tWVmGyPRIob`_=X13f zb1erCGql385iF8iFTbe6Ai7JQ^3*-yPM8CA5vrz84@vEIJio6;J5+p(?GV!Raie0( zNdW0PE@7IKu2A|2+yYRuN)F@_Rnj8=lar@(i z26BY{pbh^|)_OJP1b}rhsot>TR<o6ekEU4Gg9OL9*~oWTC!Sk|b;Itc$C%0Z{w# zBeC`$t=Raz>$qN3OX7FxwIm-e+Gbv404Ko#+8%Y_i(O22r$#Bf3S*|A69AdoH~Z2* zR6_C5W56i{qSGzOF&=k7Qfmo0vOT^h}Iw!)egz~J%=yFtj`=u)z8g-5TN}8gkF&nIuJw-{0LxKNfy2~_qyY)dS*5p5&PL8W&L@iA&_(9yYF`bj6Ce$~d_hfFfJ`ca zHYruhY}>XOi8ug*-}kv-=oUz|wWueTV5W{FtGp3UGsxlS!smKYOz$~|f*r@x_Ztin z+s2XyYe@^#shlU4=NSbaAhsD7VPR>mP5 zTiy%{D$fcDvIrZy(c8;-hfYU31DAZ|;&>j>W7suJ2j>A@apnAOyp-vXx=-@axtQ$u zPN7OrR$1ufR2ReLJI_YO@eC8t*4M%`ZOrr}mqDkLVGiD3shcp2?X43Ty2TRE zDl%Mg$Q)4_)XDl-a481Vf(~%CEQVwf zYxI}|_`#(|Id%)Ais+i0DcY%;M;S4@l~j^1p2<|9W!PG1QTDg&8cI72L$pA1m8$4P zpg{Ve)52`Sz}P#j{>lxWorLvTZ!b>-HH5Av5^O#arO$*sjHfR} zTQ;=b>hle^6|b7E7Xd5X0+GHyo9#+zLKufVp81KRY)reqNTDp1-%RkjMDGQ=v$>7( zY^x45DdXat)hFi#9C8}bS#y=~7mbWW+KDqco1_nR<*`irb>4{RaG}g)Y^hs0I?u%- zS5aQ(1sxf)Wb^{qbI*p41NjP@J4S5GuZQ)8LcYVzcxl~$I( zE+Ts|p=#fqYuLL(-P1dQ^Q-dI%2#xLIAjk>G=5x0G+8_u%vDx}-bhMwkuLA6yeOGj zeY_<9z(9|t)J6W`vZ+g}&kVNip=G%`T;wJXGrM)gGYt%wp6)%FdoIB5wkc8B$3bgi zqVnZ?cL=*sIXQv%c-_vMsf`MhYr6`(VzDXZBe+77n|$S!!|2U03Y!iRO3nkWe@Irn z8jIC4c4Qn7Hwp(V$Af2HDY)yYh=g6ek(H+tp{y!833@iZmOk`*(hAcq_nF*?MF)1b zk_(45g5#8@f~&+rI@|@N&Nx^PPrRB31Dsp^YwDAV8rfRfsZmRy43W;#XS?-ea}RWL zf^nBzIRYvr$K!aH6)qI1nOZF077Y`(C3@^zAUwELaXS}kvUS9P@J3+n=uqN0omFXn z9b})It;!^|ldmt%cp}G7_y|+1_UR+Ag2x$Uer+GuDAMvhc8Q3$txy6oG= zTjf5s_Z|}vmS%D32gV=mGf%{~mz7oaan$tOAB@9c&Ya;fxKEYFSzk7T%U4H|Hu$rQHMaFB}MO4J1y1N z=+k>gNT?KHS{u8(%i6o_uU6rXJSp)+5#ym(3-7%;s7%G;Y1MAkjk|?*9jTPNQ5}Qd zxJP!6rR2f+V1zHxEr_+%if-hy!I0G2ZBLmK!z`wTe$$Hac3xvA1jiU^=cQ>gn40b{ zs!P%KokXv7H)Kd?n@>F+KhxUQX&5*;MpK{zZECkyL$5TvUfiY6*IBvp=9PeftSGmn z_@Rw<&@BgK!zj4Bnn~wk+HN!sW|>kr1`mv?fP05nJr>=a8JP@oAj~G#=n;x-M{HPE z^jS`uW+!)BD$6s4?aGjIpYj*fLX*~fie0Z_-ICLdiB=|hvt90MDvO;Siz25S{XVaBW z7A}0a_ydVU8%-HnTeJ5hR^f#lZxWnoD7tas-wuF2xQR4VI7 znm(7iC6Tieyj9FsG(9g*5#YE41R=EtObDvUd)BB9yGZo9$k9fbT3VMgtBmM0k!ObS zJ;~m(NIm^vJzKk>WLqTAMMB7u-ZW+))!t=!ky*=ps(1sld{UW}(R>`FKq)T~&t+df zR2_uM@wSs<$m>f8S1j$SZein(Yo{P{$=9JO73_Lu9B3@m=E9AQc!5=sMUXj^P4%qU zywhbhO}d?;KzsH+B^le!(LhE}4_5c(Vl|`+1CGwrhC|T7nrtO%bTQtUc}tI&mOU55 zUXohggE$SKPdw2-vKB3&j&e|2(}S_(=f}=?4p84tAez&7Y~5&_dUX`qH9rJD|s z@g*x53ssf}=H;`t&fR2ltP^eHep_2hc%c>LMui=Op$9^&##g9yWRlIqY#U>VC;j>( zf>9!10s45HCs{j4?m?3F9HOw($2<$HUm%5K3zcE>Ze(e>PtNX0@%V9e#CleA}xP zXF|~5<|2)jsR>$x6s+t>rQCBFX3DGczqov1=)NEpoS?1^5NK^S=rg~ETfKL1ZalML zd3+vGQT7Nc$T|52TvZT!f#|-B(_zPzM#O;;IF%(z|8U!eKDB9$#4$dI2~d5@J-puR zFy&P@sW1Vg1bJNGDN z%Dj^57L!)FeyjK$M5z#elOPMVBwdH9p}>iCYs}k4)x9W(!$$Il(+sDdL+tHZ+L+fi zv#4lX#CmEbz~yD=^^y&>BKUCyxc%Mc3k-e6@Z9OTX37ui+4iU^?-}1o%fk-%QPTL{ z8>dFGr@{;ati*H04c;5)wPZPwj>{c23U#F#Ug#}qg=-A!WmTs0GPTF4$@idyKbT_;?l+L}lUinKAyST(Smw7f9LO6mSSBt=qSK z-|2z$Q5P3ht>e;apkHd`=sRmgnQ1vb9e%xeEw@r`^%m7+ zkNbIeB=(W{`BB1w)RI0v?iWS*F%#ec6{cf;8VBS=QROkSIQu;i+sDS54f66&l%>*O zBlKpiu$wSeGo?LeK`f}za@Ox;@Oa{-oq2(`5ZBjtrVE-$L}zB}dE{<(S8AdlpoOR~ zJ@)9GMfp4TLc!84l72R#OW|5jV%sHlsJEDHWqDAhissgsiTr6YLlWa#H=J(;JK3(K zkCGRa^||Oz^7*L^bf9%*&DV;ISeLjMJt`?HG@75T&jP=`5O(ou9bWKV0l43S#WSFk|?ZE=}mPCRsdfb^N=nN;rh{2QwC8@0CLX zD#fjwi5JF_Mc5Typ5Bo@+x~Hxu)<_B;#{tIW{Y+5?$dQiW{ICRVuJHTbmGb^hqq%V@tN#;^zKO8&+P z_D_`<9eLyYZx{c@T=%PtWdCxN>`$%GKi;qYbt!Ps*W|t5xKiu?V7cP|`O@C~lKk&X z>h??W1;_bzC}s9Q&w2Ls%l~=(@|~@&{qg+s9LC?QB)@Yr2Ij-E!d^xSLDND8e#BPc zSP_C97)EsJTJu83uR^n&vVN{nqE?at(S)Kb56@R~ccu0SU2$nW&2UI+&HP>82J0Ru zt81VNfML-)j1f*6*L8vtV4Kam!RLdNu=3#vvK-InNSwfuhn;LUe3Q-WkG|KRR}*<4 zgU^;<>XCXL=X*j+s*j#=nMlbm(p3_+AWBqP4B5j$=2kjfU4m}9x$FjCqn?G|Y zw@Yu?w3qK9F&ry~b$x6DtqoUkT(5~am~(zd;gNZVf#Y*^laTZ<(fOfl;1>&U-u58B zbWAoSx>W{5ds|+@o-NF^{lXK0h+AZ=MBueTMG~V_pEWLu21nz>`GHNj%&wtC=QMDXmvE%LB)@?dPI)1nCgXM;b6^nbd_-MSA{5pgbv@kV5x0=SH{l@Y|Cr;I`-ki`wy<;=lrX{6G`Xr%A zKBxWJG$t<=DUloqkv<#zJi%nB@Fj0b@>{*uXI$@x*}UDnJ(^6qrD=NVJGi_{gL{bL z43A_6&>uQtOirbn#1Z_g|L?iW%FdQ*;=bdm`ixlq>P{4wL3DzCnUhy~?($nmNFSkI zv<%1^d=S$dHMzuiahhAbn~Hbm##5stNivpol}@O~OyOXi8;yMBr}xdD6>oZYv0yQ- zs0}+gu{6@0Ud@BHK{YhyTE9BST6vYxC%`!`cuD z|IK?ij)``$X^VR<&=jrrd?S$*qTRk-9x-nd-T6g5*VQZh#vn%i1Hr=MWBQm16k_EQu5aDwVeak0xfPnuC=FMj1dz-Qlzl7u)dkNSvOi%bPTgsk2w=*qkRN7qb%GMPb;hZY)69 zK_p}kMB23n!qBMb4OU*V9oMJM@pBQR^|d%3>p|V351A<=0$k<1A5IviR6NM&9xdf83gw~N_ za+FnXDyD-J&w-c;G-K?2Yz~8`-p|Ld#~NNx_R)r4LETOz3QQwqrj*Q3b{9l-75WL$ z_TBEuG^}=sEK{&K_H6yNAv8-K9R8vytu3u3btq-c3;sUy>}i8JZ3ZE0ptT7ckRtO^ zDg_*UH)>@wJCgWVNk1lhtN%>pi3#U`$g1_U%aAw=e1Yj}^dFX4H+X>bU?hDIN1Y&>GRF297T( zjlS`_eak|j{b%|Aqcq~56mM~TSu$?%b#b5jxi8vP%CqUlXK`WXr1-M7Jy4QfMLOsY zR@Z&2vL~vqdx+q_C<*)V#oIq?BoeB@uEMtGprMKG=hOblV0;fk^SiBlK(*pGDX;lf z6Y?)V=c^W?U$lpP!@A_}VPf}x!ynT~`{VR|jnlU&9A3@wAFIR+HaNK28glHec0(3_ zEazj|tf6&dZrB}uG`0tlLGDHZ4U_-q&G@O&u>qt1un@^$()q%y%Q6tx{i;%eXLnjM zWX^eDnwntJ$=+XR59BSU$8>kedB&RNIW!O84D+ zIV1)e8Fc(+~J9ASYcax+taj`a@6YFfxn}Xh$8=21@ zp6yy5yT7^GCW$!m-qzv?!Qz@a!GvXi6G@fTZd{sU412!sok;aP5J&r5=6$NJ@f~%< z?{v1;aT|+n!8fE03Ltr{jtNc{L$ueMppA55QMn%1RwfTPq1qC z7VQf2T)JB6zua?iwT+>58$7-PmeKqDYT3#R&( z)?)-~z4ncD{eQAdeBVp{zVy{!VL$f0m+Jzaz=0L0p$(!w`yyI=0>{CVB!6ZP^dic74(=g|C8$kq}h7N`}NDakD4 zVZGk+_Iw7Dj?F4hH~$tn=pz!V+pTZ)94pf3^hlDdc!&yBkp?uRjG=r|_dqN)zNThW zvNh$*t`|As{b>nQXLdN6t6(#(at%Y$l9x?%eS6PNt|#GX1{*2%K(Wf$So@=rY8}JI z3z?<3j88Y51$Hm&ypDZ1OO$rL6SBwLoS{wfL97sYf=j5~~h z4ny#S5%vKZD8?Zyb-KqkO+DE@cgteT57NHaKbJto0i}_EO)N_ojw>uWM6HaP&b9|4 z&Ouko7b`_DO!e_xXJhno4whPO*~M-u&vtPcLVe)r+2V~g6qT%~$E$j#R&_S-chh?} zm5uu*eV{9Z(kFswrg)NF2PiV(w4=@XJPlK~mn*$K_nqE;h} zh>yzhSiPW?Ma`1eTjytpLNWCe2g@cWj(~eo?-Ivati71Jm?ez6pR7VVI0^6iCuJ@S z#LxygrjJRzhF^)%q;etXa*p?UKL{O%`f1696wY(xjS%;793Q$`TTaJE zBip~-^Pmoy#8gbjyTF+3ZaNfC+y~Gjh?08ecy16dGW0`F6T21egkOD)d z$&XMM3z5?yQYNddFP{-#1uYWjI5kO&Uc0-FD zpY9Ae z25bc?Aeh^Yalu%U5oHLOGsG7$U}l@Rg3T+Brq)xzq?T?#F=!LQx12f5Qmojf2ff$P z(>bUX2zKj5v>ShC+rS!y)m+|j+$4~XDO3++f(GQf?tvKRyF;#gn1ptSnRZpPzs8rK z$n>{oO=`NxK^rlvIRVHrjC#ZC4o@B?wa+hUcXXIoO6*3Ft+)jf+qJ6OA)>7;Xnwuq}Kz-Pg8uTNFbqD=N z>dDT-hz%QprJL&hzzp+a4m;}mZ4&Jag-{xwgn*>*o;t)8|f!l-`KQsd^qzUAqZc-*kFli=E zyP?Z>igc3zDuvE@X>g8=<215)4+I(+7tY`KfbfB9k}gn(43vDpvtXt6KnKPehm;Jv zwdRk8j5jiZ<~h^GOFb9(Pgi!oW|-^FHQ4eG`(KpFO ze($~a|NiG?<&TWnS7FBCul7#~hrYn=TF&ssUI02uV=n@$&>Ar}n7!~vL79KkCj3dy z3f4$QZjj(_<%zku%k3j;s@#rgb2 z?aBUc`D+x}{8FHAVx4Z7nmb9Qd>q{lcwBkW2|fa+k~ zllIRXxIA55$Gxq3uL}3y88L}0pO2&O<0m!=xVEbUTDEpG`qAR zRwCLU!Nm9TaXJ{)s33q15I=~HbACp&@LlGQ`71( zN1P%ufrA5`!yeu+cBE3)-odNc-0KB+y1rYXG2e84 zd;l@0Iv*)^BQE8|YYGZ&)nS0MCVtay&uN5}kkbLFSN*X&l?PeQx|sRl~c zLOji16y#x4*KW%Uv*g3ra@RPlT5((h0Gs!L;qlprsPH#s!5dp`ZSdIe@b%&15*`D7Eb3X?fne8ii%ME>tKKSGd?WstYZ=>lkQ66kYJvv#9E`6V4!K~lv1S5z{X&cM)mjop(A?{gM) zi-J>t-n!ZO&Ei2TM5ltInhdTkn@btJ9FR%4o0OvYJ{+g~LrM+F0#|rB_7VVL16>l6 zX?~vcKBVGwO5HgA0yLDGV97?^zlpR7cIe}a#f^BDV!g*^2a7KO`;QKUNEQVw2>C8Q zr6jOYFwLarc*)YymyxtmW#g0c;SZ8;U0=$oq`xGJ?F{<(kf2t_$ zcP;yW(t_`&Zoa#){_o1ipLFa&Uu`}1`Dp(8;oAMw&3@|Uo3Hafs~7gK|KHdBe{hb! zMdX99y;@w8sm431fKxn+!^bLkOcXXXQ_&7yGjlrajb#alHJKqo6ejF}wAwM%vAa3r zy4JP4voWs}y>@exa~6mVU0C{jUZP7bh1==T2Nh7kc>F`Us5;!m{lDIWaz$eX1N7_M zn8or2UC*L&-ZzZme?#7AYN$coj;}>>!+-8D2WO@O$w({dd3JU zkhx@gK5`>pfu^uTfb&(uQN_*=6h~^JX0!IWp|P9&G9#T}&xpHt6~Z)r~=1h_)be2t`-7g;%P zt3%nJ4PDNwf6e`Ts@Q_wLag#qIY#pSg)2sObK&lYAp&8l-g6xL^-n} zcKbtj|6uBI`R0>fX9n`}$_gxa-B;_Z+w?@nu(tU+F7{0yPZC-#d_2}(!5@9b`Yjyx zf=nK)i-ZJgfnOO5%FI3*?LU_@0q?KcBXQ#yE-op$Y>S3=#*2iZPz}*1T$ZlMh?DGf zNnYHRwTpJs(QUuW(`M%q_D?}$GqA7s7xz~_96-Y@GSkRl(irRcFi=6{+J?QI@NF8e zdOHtU7x3y?$JamePSk}Lp!91g%r*YavF_6kz4iqKgBsKhSw9>NfaPTDeA}3>Q@9Sf z@V+uk4$6}qLY_?FrCN^C1mIY-F)@!DOUj08Z0 zh6)dqj_k*dnfJ0X8oy}aSr#a!k%(I8WxuO?d418Gw)eA_(~TrI`%t6Zo5IUAfaFp^ zD#eD1DZSWHuvsNd-WmSr8{8o!PmE%!d_&#Nc)SPdLcK8=trruzD~@kZJV>pXZL~rd zZ@f&cO?iz6q=LV0Z2IZ@2eGs{LGKdyqXlV=90@44NhN|o^ZV9*38YI+^+TVJxYKg% zbToveauC+QMmApiU2t&2B@Fq?!inObJ%?5g*bsWer{0=8i z&oKB$`HWlI-Mc+Bfaa*IT)l%Ta)u4#YLPn~W_TyL%+iguK{Ve^Rkv{xA2DLTk@BVx zD91Z=uE|5?grsRhDeg%+VcMKSPL{S(FpSK$;okT|tAC>t;-79inyXVpGkcL?DrE+Y zQTu%Y+HDoV+nUHHEM2*u(-kj-HO*I~$T*h)Yeit%kk0A+Iea!`v<-OK6z{*Bhw`-2 zmHL9{c1y0$!M8rNJ>fe()5fzb15%Q)l{ky>#_^AqAJYu64JXRS3TYa@7A=ioF_5CA zGOATY7&_?fW&}df8tnTl~I^@yGXnUfTJ4 z858OtB+oaBI$*UKOs1YtjaF);+&TqCF|cl8} zoPwY)aKOF@{JdCq6a?%S@_Zw~5aU|^B4YAq<>bF)V*kW*;J+u#{@+Nb=Nn$=#nk-) zFIE})S*$Dji37B2P>TM^@7!Qr)qNWm>o7aGs!2ee=iE=dvvWJ&cqBxDgFWDg{pgJP z`vF4s(8fhsH2B2V%4_ej8o0Ut8`}ir#6AW%Ew8u6^x*DUlY5N|0(Iju0tRr#Q&6-L z5H%r$CHE`_z>fdKnB)CBUh^G^^e3PS{MjievfsOLQR zx%rOx`kg-k*eid-7lE9AcDGEjq^@$!_9rop3$y1M!HT1F3*b8INZzeo-~i=Jv3fCk zB95bYf}75Bt2l7){qDHL@`2-jdlA2q{iwr3owD$fjeFwH(}4Bl0LU?u=kvTUbKTWN8wtr zHM=feiXS}`HBIXdU$RkTQXH5uu2{K)&PlvUv_+p$BGxG#7E{mkGQRTlMMZ=E%GSlt zr=aQQ6Il?}_efNc`urQDWCtWLa)xobzKM5R?3?^{2J_?tuPk${OPLRHUUzfI@0K=< zB!Yz=~qD=>c%SZi>s=8>8#Y?HW=LjRcL;7E=OqBDVc#dtfsHI%4 z;WV)jf9?FyH6n`gBbX%x)9ZQ)YE!F$1$CF}k zlWd>#0Gix1K72$SWFC%@m9(4f#y@{iWjX%MQ1$w)_L8q;7{V1l9GhUtLLQd4&{UoN zY6+v~3!9!>pFS4r(c<+9BUyd>se7>i=Pfz_EsAT&0D^<5M+=a+gLG83&~%oB?d%c| z;o(U!;Yt>|ZV0?}5M|I5;4(MG4w@04rRYquj_N0Bj2C}d;EN_-OS$ckEzw~uXCW2qu#BQLEQ*$<0* z6Qopi3Pila%4nz3O8N;*UsZx?ax6>v+wwmy;@hplPr{!p*=e^;!4F1iVcwt#`HIa& zEEmk7P9t|7l(33$!@H*Dr5<%i>^lO5holbGaG9qI$@*<>b%zO0Wy8%DEAO2ztm3o` z^3;j>wx33J1P}_zyxJvrN>J~|<;3iC^ww_^TN+zj#8N5?+)vAmc`7o)QC z5NHaFk@KH~H6&>lE@iDH$y}nt8_l=_21lj%XQC@g)7G4iF6)~G_;REcFFT%ruaWnhfCMon&js(q8cX^vYv+Ji5ATzhHJk6sNG93N$om z00g%ui-eo5{53{Ccs$?hi|dt+j2UD*{&;Bv4x@q{9x#hX`502#*FuEjW!l2UnPYdotx z@g5wLdYmQaHM}ddd_#g)dws~l#;k#Hl$(ctA)o0jeqVfp&9_I%!L@`6?6LTCER4kj z+T{^jXOZp}k3ue1YGx51!pC;UJ%!CAwIs-acFLA^Ov0q>{CfjN2S8y0a~{-$hDFpV z6|XZBIt+Hi8+*L(STo_@WM0t7jtH1-G$ZTiZRBWpB90?oPE|;WiHp|MY(8T6v zh!8a~ZeI&vTeJinY$T~CV)cJoI;c)uOAfGfCPy152$vPT0xG()+Af$YXLZc1Qcr#Z zg7L9pb05pTC^Vci=KEI5_d^1CE+ui zg2Zsr`Et?&n{~n&+H0{Cul%npBIB$!XEG7OXvhf|sqV|OEmV;(V_{@C{J9mP7C8py{t=o#laozM0s8CpSDSZz0-n5Rmk1F!eG8W(E)H6hEr2SJxt7*@#5pznf^TJCIsAZw)>;?~h60c_J?KeCklp?-IP`L{2+I>-Aq1!QeW6> zCa8zYbOuefx^*NR>E)`!uRW*iyoHqH^cHRsuVu!nbIgsejKbZK8hxc6PaP^7ou=+R zh{_i!a?Ws|T?;QC)^j0-#pslxFXj}j+v}PwX?5blBCT81Kw26*8B# zDG!Te6g4VwAt%hR)_Siak-`cHPd4k^4UOHnwo;P$BlYyPCu%1uR-eaHy$$NT4!b+N zmj)3-NG{I90ala&0zh+GapsMPDdcr7$PDf!Gn3wX1reKl!CUx2s5Ab!)W@}nAcEVZ)b?(Ln`H)!55IH5Naces zZgpxluxL`H(f9r^xAk`7i;IK&MIPS$D>^2xEbCOwvXwj?rmri8sTq23DtTNMnjsuv zxno;y!y6+-mrCeZt*=;*8a+_^s`#cN!;wg1(W^;Y@^GMNqs=Y(AnaX#uEtuo=h(VY z^abItV7zGcr5CAIoL%M1BXy+c`<-owG2mZK2z8aBX2O$>Gu_dT9=bw89jUja^3z!S z)#wQ9h|`+Lb zFmCV^G!gl@PSg1mL{r?NR>^)samkFFImN>I5oSrnTcA$6004yZX;^IGcULBSGCh=b zx)Oc4ONzTzszbh8Wqe~OA1*q|#Sin1rGK-RqFY|`aJ$Lq6jW>jV$PiN6d1;I;_iic z;hHOtzXs5>d0dmDIXTb0TAOlvlgQ2+h*(X5ejo&b^L zPcme0a+tW){70$8vU#p;k$A43;obF?hqjR#yJ)N&xTQ+&kv0G;D=Upu8xrU&GWL=z z{hf=|Hg5j#TjY)RLF6P-gtD|Zq`>ArvYzn>lyfK-{ArGonBeZjly>)$j`n@K!AeBc z#@fJ`b&LMDt0Iyo6~H~FUnljINx~2ilNXF-2BpWU2l6~8oD212Q3k^suEnS{RF@Cj zAWT0{=k2#=n|VOYeu)1xgklySf9xF!5oTF_qIL?BOBm8-QfrG6sQq9gC3K@eBs6N= zkva-xBvH-H*8rHomQ>Csr0#o0Qog4hex@sI9(d=VPe z|2P!VrA(l-5K@b_!7&f^<&oCDop7$!V0C6vJx5R>ZUe5)LPdlY)M;DWUGmq~o|N0& zwtRj(nBsoONP$u3LG?U{QAUv^a}@{fiyG_mG83I`7@u@ygAZQlv+owSNE?7tXJJg* z)I|!k-fSW!0v)5Qj3Ov`MZ3@E)}dg`+1?_betB-W=*i;p#3kh3?Thgt8XrzhUZYX- zamm$(opUx8McGRHPACQbB1)l=+LBce-Bs@^82g0`Bou$#dPrxSmB>G5~*{`*_T1wU=Ymiq#9xyE}A>uo4HZ3Q8)2me(cFc&27e;o#J>0b4cR3d#GMi zcJt-Q2D%jm+moG}m6E87T3whps{!~kjJx}DUT1-3f0g1di)JN$*$5A?Yiz7-kT ziBHprddN>FnfL~Gp&{60$g5M(CN(?G*HLbZ8I0xJ5<^D4@8ARSePFqrcr8feWsWx# zTFmv{*|{5N<-W!)|FD0jK#r$!%5T4@_93EBz?w{ZBbJl@ppyJt#=Qq!(l|!Q0yxwy zI0M-PY3--<0p5!;AIJwI6FzvJ=e2&NMPV2d)VU<)KMT!Ls<175W{cJzHN_qJgd3-v)O2XQkzqskPi1u4RZ4ERa*!vxMi z3<&aSX~iUWV%z0#VO7~!rLswM!2HtayNC)!8^hNxyMve@660pq@MdXFL5t~FULeQ> zxF&-Y`)eYHfdzX+g|B*U9ID%W6O4@n8KuBvxQ|J zjhWD72a@=C00hpEEWw)7_+^{rOZ62menx9Go#glRqQRh5N3S4tJ?fDcG3^pe9-r zZG>9wcY@R(FF^g3UGiayq}FXm`_muguRJj{ud*QmbArUrVK+iC5ogPDf;}lGv~&^^ z-7Tf0V)*>IDYYHDSwShno$vwh`|MKNoK9g#MYxLC!=kA>$U=)rtTM@^Eq#V&5NkY?z=MC>&<7E*RH8qnpJLg5b#>Am6~=) zk|=|t;FLAmKsJPxsgqv{G8v(K#F$?`!XF1F5v53xaTj+1k~qk>Yx)-&H?K?XS+={M z1yMJdOH%Jm-|iTjp-WU8QPEVL>b>E9>kO|xm$1o=o-z_LCFgzQ46Ca3gm25!*AyqQ zD^XKi0DdKBpn)~FtEG4beVw38=+eNylU^w4e(6=FES`&@%3{K^Uf|;g{mt zQZB?we$-*nv|{?ybEY(~OBH`-`^ANnoAUkC<*0)VJ+HH?QT>_Yo#qJ-peAq4NqRXb zvZs5NNaN|)&z20Qly|uxTN2cLJPBPQ?hfr(aX)(Q~wdJ>K2iCQ-Xv;ueE& zpcvC`!>uoI`JQhLpo7fB{F3Pp!t>fP|D@|Fo3(xUap5P@+oQtOgQM zv=0lM$nmvyFfHWfKejFtXjAt$wt?4yNX%U+@qfBo`Qq+F+jfr6N1QO&$^|qouEI5e z@EJ(W_80)~<_HZwvPwi+Sd;W-t#jOXzx_N`JRXm>I5w#?)_8&td^LXp`=s{f#;~~_ z@z{$P1!>lkAx+`M?Flfx*hOSQJDNVx$`xSYt0Hj0 z=AdPV+2GrrEU3@)sR3Aak35}fFTv@n8bhF>Cc-!V#N_yv%JN>b^A4xP=5Ffo>f@!~-Y60#}l5343DT1g)=1 zgBbi=(e$H>@;9RQ{4z-Sy?y&!37- z|BsKwZ_!10es?GAz+QWmUOgB%EOaBqI)i|y<})7jZ~!(|FI&35b(P6os&UAQcS%nQ z6%$cgWdO|;!%^Wq>)2(IgH<$CSfX^=N@Zu>H<5d>D!N)Q?T58z*49-cO;gR9TS*u_ z9amBb_FaqMG*^S%-;D5!#(j)u$OT0=#&H6Wi{kqL)DdOUy2FSO?H{^Do$bUz7AWL&+`*fw3{6Kz_!rHUj!}!{zqO)z%RNlnYPs|fv}m#&E|ga;NxVLD zGqw+UA(56p-z?VY!^fzlW5wd>uS{<|rB4Rxj?lVURCw)J1=K<9!t8lnQ~LX6gPjhB zv*M$zdCEmlJT<}XjC#S@W_$Bl(x<41pl9WeNHf)X1d=wf9Ux7@MIGpCM*AssOF*DL z!oQ9a&DyFKwHoQ-doNW!WYK?lVMeyfPn=qsxYM8wxz;W-@8w4y8&GUfS&B(8G=AU1 zlWakCzgO&qzI8k+83UPp8JWUz{lj3;t`{L(0^RRhcXGMEEx~*h#v5fM*uH&1+$oRY zNhDaMiP?6;u;mm4fh*2K=`7sB{0ogG;`8paJ5-UFym|Tjd~YRjPlX2I+#Wb57eE79 z%s~k;i7hkN(abry+)+2^m-;6dwWsB^E;PtC5wb9xJlz&~;#TYn*YrSJD4}0-ybJM= zz<&|j?|RMo4jV!Ar6$RGG5Z1a9N@h)k@|k>N2$TAXcIpH$05hhklUW{Y9iX{NHU>0 zAi+y(+(ld4ShEEp>#;9wk>g+Pu=;*x z%&%_ZmR>w_lZdc30oX^Xf?*y@LK;_f0g#h#k_Hh+>w61W zGq{{5g=&o%&}XU>+p+sh1y-Ilp7gPkrTv<;QXy1G946Uu)bZwOT&~XQ7;isau>0i2 zScUsh{^Ox(msrJ?N>bi@c_hV%Z6F@Jg3`xcevY75k6C;LUZxc$P2I8jR=T0lz%)>2 zJg<9+Ur{@mRpnzP0~fbdihNd>DCgyTaHq7t9%l_uLmxqgQLW=O$(@$DY%VgB!BJIP zogB)^pZwZDu#HZLR;b9N$&(bA$2!#oCY5gvW@!j+&%x`>&fKdH53Tqv{=qKJ?@e68 z_r=7`0ckZ&QJ8ziOtabhH5v(zS{?kQq&H%7l)^INko&dn^PD?W7}>81XveL(;b}kC zO$w^;FL7@;s$$v2qG94UMfdlV!I7)X1enzMaT@s&bZioTVBdI(w*8Hg;^XT*FZZTo zoYeIpdqA-X;WWk#=N^*b0-p@|qRpouNgE@MM++kJ28pO^{$queTyWTQ}!2Z`O7&gWX zPXb7*KrQf*hb<6Fr9v0U-p;4Ejk6YH(+|77PEI} zxI}tHAAZb4GH4umo$Ei|-x&G19RaTkE{`%m7yC^Nfyvj^`nYdA?-TqadSRS7Wr}&U z%Z0VWL`#$3@)@7W0_TlRdrOuHonm$UbucWO6OkVT2%T7pc1Y;%@kt~XX@^d(liM_f zzbqN?%&1HUmCLw(_Pm9tqjpHpkJww$=>9@hZ0?sHH(fHj=8Nlh+j$`X9E=TG6>z6l zzpPQX;17K$daQgl;pdy~g5xPDpxd>mIM9JfdN0h#Zs?s=xc*_>Y-6#FMFn6@LKhYY zo2hm&FPy%PK4;%3eVN)(=5Ru3DZbp8vQ{pxckj!}LwKfYpVQ@BQ5vB>Ja&AxIkjmj zye1c(mWIoyogjhwI~X%N>HPkcu1i&sWpehFpbmVGuTzg5d5B#SzAmT+1iw>ayK77n z87VN5m`r4&AfXOE3_xVLky7EU=v~3M=D`-8E?5(r=Vh;l^WIWO2@^+guBA4FK znt%m}-Llrb^8*i{*Rx4MbTw~N4loYWDpzhq41eD8Al0vnp$zg%G0 z(MqiM+xQ}h2@9ibGc60wb#zcnc!7@lQVm+Knh9NLfSQ=RN6CWBC~3MOXCRBWQux!G zq|RdW+bUBj%K*w1(cT;XPZ!QKSuIYj-wj>)G>1c>w;o}9o3%DDLx?sUeGKel?YWTh z1d~Z&B#U=4Z?o_U2qoio1?V1kX_Q4<2bJaWuf7}HO1s4tcOMbmm_+4UdZOI2=;>1{ zDqC%#(K~gsRYJnS|L$c-2DOUI0kr@XUK?OUMfpgk>r5gYq68XCnttu=t@#{yFO~D@ zkl-S(^P?!o@cJxMwIi#lF_rrFM97p0lV|H9ge1NMBqWQ=HP^4-}c2QpThTFyphD``7UMv4->36qt}U zH|7lU8Xe`e3*S~hPIcEju4hP++dXOC7%K(>0QQcHg7)zU*w{~HJ8kWw5AA(y&e4HZ zK)y!@{K{Z3w=XhTU%GCnJXu>oW3j?zOi_MHfsgu_U@{v`HkBgjmJHtzRd8Wfmz8__y>JDD^7?#i^&7Q?jn zoNXi_thmq;+C0NKR0npS@2neI(KJYyIXkt=N@-%xXUUfOcHTy0Utkrm0gkya8ZA`k ztNFoga#aFj}Bu+75RwJ?R&C}!_S!dxU z!ke`4MMoyiMgT2cC_#^jXmuMo)FVNpm6cY#sIMQ2rgHNbBMtBL-O()ym_JUG<{GQa zWqPcVBFV96bdFwbngR@BUde0fm(~U@BvueqvACFOul2X2xm{r$GU}sPqJs1{jU+{UNu}tjeUoS=B(u4bvP zks!&n%o~Ud64?v`gG>lg3SXx9{K0-5tntlpL}NTlsH8DIGn!r3;_O+`_C?78yX%!q zAJo$r(OO5=e%#N|%4oSjb{~)X*B)GSI+*(=7-(PRGgX?DRDvJQtE)?ex2%=pTc-}h zSP#&zZC6`nVcwHmrFx3>BSCm<--N)2IpJ=Oc{olNzBUQ*K`#De$z$%BYeg5Ama3{_ zuK3*AI?pNwUr9Px(+dN1YjG?e(N|07LZ-R6%5wJ^Ce66AxLny^zZ^C*fEUDcBk?y> z8|X34ny9!}TnDczYLk{YxPlHU` zZQ0M7JKs(*nuN=^C4*dZBE%RLBB(IMtu9|*RCzr$3>?rzt1VgPpFH4@eHZ+h%z{SP45CG#*tnF6Vaj83d4U9 z01G*}Y>eA^`{@3n7kPKSKDh+bl#73-lr`DZq}gE&RrBVU0X!|k3Ji+!2^rrjz60Fq zh-c5~yX3UoPJo3JTP~+;azG6NGo3!yVP>sW1s|wx+3UUBihgY^fMsTMU@pVd

=sm@6(qA1x#D~Dp3>20faYH zJxl7Mz98pc$U4Y^CJd5@qUk2>ZLbTnJ@0nihbFu^sB<`Y4|u1~SQ=E18mc&WU)KN= zd)L~-VYmMMy&@B(&yPPlLEV>yC%|l9_2QohB-6mqWHAzP?UF58_AY}A` zD3jWGp|U-pUIVpI96>J-s|DrkCKdhk=jVdg@IEzrQu%)tt zaC_)}X|2XzzYbw(X-S=2AXu^Xk@k^cnBBuse31R-HGI~#2KowgfL{^6r7FR*c|5KQ zR=b&u{wh*^kPlr)h?Kt___+a!#+~M#AfHoE6MdY2@8*z>e#9;JjfnWABx-}Lt=ErU z4uHV-BbpK*Ar9h#{V+til8Ck<(JMjpmwS_$$~PMf8$`%nN^M2EACxJBxw0{LvB$LyT=o^OlH0S z4T4$^UjcWIq1-Lvjl9=}Swen(oMR((LC}&wnr|-EpATb7xAiJ z(NTF3_y*`Vzf2?jRc+zV8&3biqp)NU^F?MJlwf-HWvd$1uUjzN>vm}#uKE~i8B}9C zdwU8&NnLz*y|+igCUb+i0i{P*tEa#?BFYSkmd08)3_-dxU6Lh6El)egR{E$N;Oh!Eqtuh|!~VJx1*ZqC=4N-Y*~_v8jSlP?3xm-) zf7%xPA2nmk*g9I9(M2!2q=$M@g;RMxuTGX*fW6{xf=}Dcs6ksTUmZriR9n^D5 zrLq!u{$)ObXhS4#m2LMxZoiAP6G3e*&bP1*;P+U)G5e6gE(XDVyp@6Ejij5x!TmXxU1e`A1|P9cev1d#sk%y zK-W}U$czc=7x^yWg5}0)tjXXEC|rz#0Mj#t@{=dYy|$jt+#Yu*gj_)QfItD zATkhD+0RIqzw-EZ@C888-rzrmwfuQU`L8~zzi|=8DfWk-f;Pe$ao%s%%a`yX0yH2TrI=OG zA-KB|XMj`WMg1enKLaC_|3(5P|4nDbThga(T;!YMIVO_e_t2#p8+%gNtj=+!!o?@Feop74LQ-q{Thm*@k=Jk z9^Uj{;oSaJNAU0Zef3`xG|B-7^Xs|&;a`5Ye&ct(ihhjSUkM-niFu>_j1lYR>IKD8ai73Z%#o$u`h4F@dogHk(9UbHzlLYL3>Bn{e$u+HYTpb78*?!ZZBv) z9x-x|m_vEA>;Gw2^N+_;*Z%qE>X1l@0P#a#|L&Qa(rF~Kq!y7bajkBirIr!g+te|p!V|M?jV}p2sq^)eP_brW z0t-+ItYoc|q(RcOM(p~4gk(EpG|a8{7r?VW0bFjGKCAjK2;F?t2)Sn(f+G*hgOV-M zn0B%1)~qS7c}wPD_exzCs4!6NY_f*5UrM|;S{`=Us)IN*7u&Ieb<4lq3JavS0mf0i z4O$l7<6)8dIT&iVQsii%+O$E)mGjj`FA3-0`>LF7yTF7<_ z7o77AQ2`Y0FnaQ=jU|~+kX7eYdI^pjcp5>6ilou*&Gv>)Ic#hP(G#%M?E1Le=7Qs7 zuv}gLL|NjwuZZ3XS==*ku>(k;9z}IWKe;Aw;MXtr1-NxTD@#XT^|JxT6q*g09LLFf zMHPmm1~3!X_Q%hATr6U;#VXt%M<5`7L;n{KKyPkqZrexTU z!y&tQ`N@fM(3i%?v4{_+plSzzKyatmZbkr*QJ%%em?PC=w9o`sJmp!!(ct7u$L}Rz zZ7EF`q?qGmTyuOINY`ru{0ocsQ!i|2d2BU(JzK{|v6OzC{?Wd+dasYu0ZTIyb0XIU zBbVDWGCT#927@+oi|*p64g=+;F>!^E2N}?lJRrI_AJB%}#wv|^G1z$>0Q5{Mbtv#; zM7v3G+ld_W*ekCsEy;Ohm$xT7K{Z7lX{@Ip^8xTv89OK{$MNf7!<7w}12yQe%4;}v zy%z?9dAUF*xs?a)4FmLc)vrpN)o8@RT`Jq`ye2=gS-uVRCM>wHRL5(cX&!cp8s`HaikGI?(M0_b4fUc;{V@T(O8czI1W_PB6bagUXV4= zaokhDNP^=fs4$(%!ebJbb<-r>L}}r5xJz;0)QbUw)Hg%Xv~chw=PAB7|Cm~bP`_t_ z!+>z*V`eEJRCxH4ag6iBFhph;$Qg>d+I?b?`Ocdhlm-Ifd!Oa{3%JL>mZ<&*$zOnk z@~<D>@Q%d2pbnBwq_JxlIMr4N2j z%PKwfet z|L9x(k1YJ($X+g$u@LSKvZ_>B?-?qk@LR(}IeGaL4`OSTin_b4N1ke}iF>v7o zeS8d3731vA%Ai0yv$`t`u+22V4R~196AOezpC`AA`8ohbtw3K5dyU|yIetQt5f^H= zu`?`mz*-M5o2dilA(RuC+Li;Y(d;vQsdW*;yj?=Zl6O;cn|HKd|E7nd>d|JBXj!=1 zh(qhH+00enEgP~H$L^w?t-x8%IfG&Y&tdry;~p5{w`@%-SI`vug^SS57X4BarxFux-oCPdZx zatGB?oERO^K|kHjCaD9C4NV&0S4LcD_$bD*zGek~N7PAmpAD@8Zk2@SZ)g>qf+)n4 zpx6h+9sC%EtitM5sZIH{tr)DVw}^E>%DI4M2}bSbPX)8=;2Rs!c1Dp0-HR`y!3*vQ z8@c}`6aNv*{)lCN%iGY8SoYtvQ2)tE`Vq_ih-H84c;v_X{l3=t|4Z}nTgI~IMFxR- z?}K2kc@4N)qLkM(#=gyRMdQNZ)2h|S-*^^M_BRE(;j$<@m*E!s@s2y@0V z0+Z1ozLt>o?S`15^?`7|wYUw{i2_9g=7M_R-#)UH|D2ok)=&8-xf2z{YwUf*PTk#t zX4Fcn%EAH4YGhkItGv<1Gwti96z)2xPimG9?z+s>+3ZHucumsj$ZK8lKwoKpv+1nz zPo>pNKq1V;*#LijP9;{Q2;=gPmUQbYwYT%w*~XIpZs`2WFq-O-d;#5Ejp zi~6R&S#|bz&QO08ZvXy^rT@{X{!jegcc;-m3b+5};`A4kCD6cm;oH{aPt3}e>lnEgWUORW2xit&t_LWCaQK6Fd{gDRJy zLMg(*y`CF)iK}qrxiHQ6A@eIoa0wOO^K%Q;mEkUInwQ?(&Bz0`ZdrWSf}`s)=KTv@ z=acOY=NoD{EJAMdWcAJN&P;uMxySf&av9pHSNxks2F&j0)Vnci7!O-lizxTZu1b{1 zzHX}fDTs*;V28*!>QN(D(d>Q>z0bv-ZBH8+h;SlFBng4)?L0AxsmX4FE@lqpjJ(xP zvP8vP7y+>au^CpB%y0}hP{2*NT}YflbkH?@3c^o=sQvY*J1gJ3!i_n`F>n0>ktJ8g zE%}uXOaXb~plv0PeJTaq66%8$UvBa7(AugCAvU;W6nWUR_%dpL&iVZ;3HAbTaY4o9 za(o!y$JP=!Ct(AaDBo6!$3ypL)r}xC^#&32y;KTEj3$eU;oyteC@O>08AC)7#7+TF zn#aP>s(pThVObhIVz;$==e+x^DWWyf30%YIy%pd$@j?545SK&kFq+Zdt2tMX3XfQ@ zu%?_85wHJbR@uYWcyo&Bi||}bv|EJR)>hdQOayAEkB53K!aBFtO69IVV;n!FZ>5_L zp3WQ6@K=luX=Llc--ZE=86Hb_RDklZWqQN$Q`epQJc1d^COW%AjPo#qZ%9jb!g9el z)MOLA-}ajv?a5|iveo%8r+~KHuitVHuzc~GY+Ldm#ls1F*lx& z0im0B>x8#>Lh#pFA{RYG+YEK-7*@?!ZNyPXrj;S|?Ytb_y&w^m^Kz_7i_2LkIUh$$ z2F1}m80D;Vf$6Ri?j_ZiH__a73^quN3mwQeybNz>%y!`mC>mzc`znhHJ?CknOr z2+^vpt#W3gp~0*po>wLPiu^MjJS0BDT**?c`HO8ix2{JlooTsQ05O1p#joLym=@zB zhLEi(JVO8-bmsbL3sn1tlV8yVCSMQio6YJq*Niuh%G`rGK;@1XjPqio`%p2RbG zz95Hjy9(`Sr(8jecu_W77@z7TP%2Q&k#V*ZY@##f&3^;_STYv@KcK=}9Z`?NQjM0? zM)`dcQcWJ;wzy-&cuzTb9eUy@T!PN~iGKMMj|s zbR6`QBSm9Yui=kfD;7ruyeiuv$J}YvK=Yp~FxN^VcD!+@FB!{dMNGR!3wpV`P*TV7 z-kg~dQ|vs)kl4LlmY=KC7du?-dWk{t#gr?jpKYJ#>OMc-m{$v!4)a#*xuZqz0)$P| z{?cIM+As9Ew9wvt9EQNY8Q#5rhekl{{SIV zygrOcT=1)WnN}S;`>?$Hc1`-rPhzcMC02~@v7a7__y&VaI=Lh`Jn7A~A`!$EBAZg|>fOf5YMg@vtbH07OHlO-nzKqdUv9+kz2>BOU0d;CkvUno!xVqW zw3rD~Xgptt-(0Cqf4SLYfmA%*#pGjG)q}4055gM-iP+=BlAQCQ6x&7Rk}q$%1nNys z>IuBb+&XZb5wPb7y=kn12Nm9sVg~4uYB8vp*7ioSGGT%IB<*acFvTNfaHdPHb}nUeQ%d0(`cj#NZT zYkZvESF?I6Jj4@PVKT)Z$t`9qD?{xB!Z`>U*h9yZ6dkT`ezpwQjOU7GV z?XO+ukLUmSX0ZR{*p-MGpMoym4wT$vum>bn6Dl??bm;H0y7&UBYLZ7Bx%l{VE7)jD zFs{1$6qKP?`+nY&%&YtAfY(M+>XE=kO&a7nru`IjDHYFa+>YnuoW-cccZ9=zEzrMW zh2OvS?;XSfG^3wDktEaBII$R94P?G8u`1k*lqx(;M7UVk085@@h ztULsR*9jgcFrI(53_;(W9{vjmmG6i5Klwf9pIORxll#NJ{A9{M{{I+*|4kbpf&C32 z(=0j;8#u!PP&q970mZ8CJkd{S*32t17#>~&pk{5TI z6y0-}ES>biQ@|pzGqjf;! zfL`rG=Ea&ywHPJ)df4?3t|VCZ5EbF^p(StON;ax+3D)Emnr? z*P(QolCJ%TJrLOlUO54Uwst20MS)FQIt97G^_SkDOCk~`{!L*%sNQYF6p%;;R=^exehJTY}L!WW@r!(ho45CLyL zBcs|hB7`hx{#^Nq=j^6Y^uQOdp2w;CwkZ#d#Ei%YZO0Qv%23MzPo1nb_bf#w7L(%B z%kKeE$QgY8Etu3`d3IR2?&X$~cLcIlh0!YB`yF$(Qq020)Uz82P9c`)^PJIQ>c%{i zJaRc%z z5$Bq7HQ6!yOaHT%ceEAHl$nD;XIb%?-ZR~9O<)e=>&;r7a11S~)!edFx%w1AkV{8} zw{!|3Yq*JVgPxx-lVGhAvC7K1$Cdm%tb|3nj9f}c2t;mUpD=|ciPOIT2N!Fv9`x0` zsMt85%f1ugdR+*fE7Sr{mu8KINeORp!*8eS&74$h$PDMyoPttzCo&{Y_GB#{fCxcN zRCo)LBsgwUH+8=`009-u9`j&?zsa&WmZtSx5?<344KgC3H4NktkZmxuy|Xx0bdHc~ z($>rl&6rAEaD3eL(A&r;X^*zIwh>|)cj&YGRc?5jJ3t}3LJsJ&KEo=INk|C34?=nQ zcybKZU70^Iltx&q^r-l%INy}dabJ3LGmWIw>dsB!HMIta`9a2lT*THk?d0^VIiY;v z60KLPW(fWyt4*&v-e6fNu-MF)1V7J)ONt=RGBn|NqKQ%1VeG`&P-xKr=i3G} zG~8f>`)L{KjIOpE=Z)K7tst=x0zb(LNsr|bfTHsQVX5E{y+A< zJRZt^{r{F_5*aGljZi8{+4oVhC58&wE0rxI+h7=3vxg`uV~q-v?E6lV?3CS%?8}UG zFvf45^E=P?`#hcVZ0FQ-dd}A$Uc=1op8Nh>*XO#g_5I!}{tT*%I~c?qHsIJ~mENy( zhjF6Wft4Co35rP1ayqyn5o48JfwF!6srDw%p*ie5Jqb|uWqS7bcMYwY`9?+@SA=YP z=j*AiF?s?RZ#e}r)?0jRB;NHBuIH)0ll{Sl+z#lsz*k*Dw?JtM-f|P8;Gjdr zIAivci8D5@CP(@P`rf<997n|zBsdgODkOHxOVq)0v517@dF#v1*js0HOoRs#982#g z5zm|prCr%o4${VvLS9|SwU$vqxgE!$9d1XR+BisqR;AZbeBHQ@|9t7$QL|@WCa2qrC(jR%QvypbO^=mEkFGVs%k+_)sE_gGCH*aTUS2tO_V@#b z0oL}Mf&HPFa-A}^Q43V7{a(w4+Y|34nCx1!U3xNCB_2uK`he-7wLR~Ds)_YR)ucqi zX+`c!c#j4dnk-zUZf-}uhV5A^zY}^LXM`UnTYi{m9AvASC}wVf2R0TmB3N;G?)<$4 zIO@WjE<1C7?2S*1)H-j03DEeZ{wxpw%0MR#4e1kedA15125bhS;oZ!vz7Njd^Em@V zq!}0I=9lH$7`?KzD0B!2zDyq~zgtcl6pm2BgZxjD_p7_AKYsv5=z+Ax(dHA!532|r zYJ8^!y+6;tWewS9<8GI}DY7o%8mW0WKLADbE>M;qeDLxnF+DtgR^pemBTLdBA?skp zoZ3h8=y0C&>9ea24==3rrC#+qKmn`jXh7{HN(;*PX&(8QYjN-XBXO+RUNPx17>=@D zMm%Y+tI$%J)zgDF)l5_|mzd`x2{va!V4e!{`!zL=F_;e8YO6F3I{0clC)l5DAGgXY zXVJ=u3Fz@Kx*T+W`LJRln4e&QcU0;q69xqmb>!l2B|WFKqkmn&bzp>n;&|1aGmWq+ zr=g=B=pZwOd_rD`0kz-jq}NfGj~(t$38K}NXPnz3BBCx&Bie65@Hkgl#_}j$0p;K% zqbdGIHiE#!mc?`Gl*|tcC_|_nokR#)r4qt%Qzfy_7z>=^CF<_cw4DJ)Mu0QbA8gu) z(ijQ6Y>VejyQySwdL<$l*GT?BKZ%B z@idAoSc=QsaqNA~bQUCCwkgzyG1la=Pg$M;V~&7-+J@eLlE`wbyrgcUffOze^WIT=4tQ$^vV z`9o)HHdu!cp4bL5_*!Tg7h;c2_>abr%jz*V$<8$s?1yU~>3U;XsBjpk*&KZ&647d3 z`s(b~?$r@VB15@h*^|0T{CR{6j#Q+eq3KSUZj3UZ*%eJ#H(P5$8~kJTwz!g$P}5qi zz=qN-u5Bh|_t7tjr6+HZOUirgO$Pfv8nn1NizwOeV&jkeuq%U&zc&(Y+JnWUhed?u zt35-=K3BWmK6iuj{K(QFh&H&FlAsCLBZP6Dmox}JJJLx|QJ{Gt&V z_yQNJ*V$OOx^FnQZ-u;~b)f7*Df>>sQ#E+p?+K_z8 zfYncL{yY4g;x{n^Opy_^ z!%7K`m=(gkTpbzOi-u$v}J2Lxq<-4yjbr zYjtffAd`>ShgKMc*n|pO>4a42mcAd>mLx!=XBNM!RZxNc}LSYV^Ccym9fog!N$Db_;6i` z&XVn6E&9Z}=Fn`>26ZmlLF_yGTaIz1N%B`QJ; zBO9xQlja2l0qW^7KB*2bZe8~Pq>q#@jZRdZl6!WkflnYHLQ{p@E0hUcW+Egcljm9} z!0dZ3cs_sa)@qM~`k}d-vfTF`&YMk%_Ycwy`8Yp>s zLwv5Gwe2N#DWkt0$}&%gINNsO-U7e>TVg8Ta&})ZFsgyLUi7)_Oj4h3pOhridIR#A zZY8d_F3YaQgX>bmYOBqi0O{)*{I$oXrF2Y#$V`SU5%-Ap=~rrRTH$FtJS_EZJ1ELG*vL&U8L|?l48Br=sCQ(R;Ed}Gk;EI zv_IAAPU$wV@N{B1)2Kxh)}?Pd7nc8SxvpJs8#rzJAqiJl-RCWv2On{4&w7^9IKluu z53IZstm7ltzO)=5m^Z{%B!C73^q2THt};TE^iuEw^(cmj<>tMjbuKgABMO&Oy*O0I zo_ov31}|=jVjl&L6(98C$>|cKYsF|3sh{~_qz4+LE!ZwLsIS!{r2OHDr>z?WnQ1e2 zG0^P2Hubx2*{%2|b|j*Ib9VPD20-6(&34ZH%l*w?bW`uJko+sI?|Mwt8fAcYp7cZs?+#BK?(ybZ!S0C-Zc%?rHv<~s=wj&c8SMIgeN9~cjn846$ z;f9b#e9j9ys};GA++<=0Q}CNeahQz>#0>A58aj<5Zm6Wjg~Q^d71xs-+It7QQuxa6 zkN~`1TH=iA=r$0_-;e?{JacdSToyu5fnB=Sn7vyrTv7hwFHH3B`ttp_6FJrUn@@yr zTGELYS82;cdFVs2!W@>Q-5p;2FE3n(h@{R#G>N(&U0xBmx2_*s5raVob!06BPdrj@ z)3EndE4(cl-k?O1+n`Qlh&Ca#++6MHD1)SHVz@MtEYC0s6x(5^?vc8$YK$V;32)aE zPUAT~eX2AOy&%iN9qJBgbnPj%6;SDP5r6K{QDstnbCPOLRtg;!+mF*X{V!AIK5PgLWceI7)>~~ z0eWlw5^BO`maX6csLoStztk#PksL;-$$4VYRHJf6soD9@g-tYIfSPajBf#sL*Yk40 zT7}bX2s4Y-XDr&`Sj+d3kXW^CVCd4@jpb$WvqfRZ(ejwjBi(s)fo&@pAI6IEWtk&3 z&&zv662`sd!-E%5bO`P8&Xp@faV%k9qmF&-u#PED$*hR`F@ z5cbLUUALZGDp0Tu!{FN0S2*XS*oa^q6Waq66G#R*XXlqqP=Dfi)J?p~lg0B9jeVDq z&C0V{r?g}y_I_ETCX~ zLG^)x_wfkNWr~G|x_eo4eU001ugIEjzIyEEZ80C+1-Ww(96PfO?6!`L?U>Xt zHXM@pXjjpvZNbBcZI*R-x1usO@AK!!Si$@+8A(h(id{Y$h$Xd*`9~d<>VBs4i|}Mo(D0K8Z8)R9+O#eA4&4SY^FyXJHH?F1WVFU+{mugt*;OE-6sPFD6l-|N#aY`mGD77&T$ zIl09PeVK!V#|8N(!%{wRsgS6_j&bL7jC|WJxe|RiORgcGaeXBE-JTa*oX+cO2+Ee#l3I0x;<(NpN~@KZPk2B13e<%YcN=i zyh;5z)5plIO`QX+a#3V2p!xUW84c`yne=l)%K2zmR}z@xZnzY@Klj)yvMCc5Xe!WE zCW`?R^hp9w-%Xe1Jt4P<#p1*7tIq>c8%$FsVRtH-#U7R5ih6`-BQCa&8I`&{S~yB& zH-X!`qNB*&qI{EJbH$7iZgHWzje7Iun+unbbWCsmHf!tbWao)t$M6 zow&-^3(CkQ2+GO@%@K@=CXD5rj11fPLf zJSDBd)z9e>E`NGTOdBLP0^|G$$0~1LrhHrBz3v)o=LI+027;udpj}KRx^5QXM92%v zl3}7i1)XL|Dxc))aRsA~+ra%1XFF*weB=^?2b6|TtBEi0J@_JB0X&#M1C-hSY!gwa>-}-Pk@SFbDdMb<5ue9@P4Mo+Tb^1fK5l%A;r? zDn?D{6u!Y#Brs*?tJ6M|^9Kqe#u2Znvf;)fE8-`!u3_ZO&X#l>=@3&cOxVxBqVs4B z>jR4H_fd#3yU>of1PPya-cpf2qGsW5YaTB9Lei*?b${XMYeCcQH`bW@IY+QrfSYi2 zxuFMJz8Pp*z_ukci~l_A_M9_!)kwrzmXsGtFVU(xK*^a_xrX(Md#G-ulGovOx)Z@gFK|j zeKU#ROWJS0+mc;WVKXEMQLdVRczo&uY;!#nS=Az3UmBa=jo|Dc_g)2CE8O_BS*&-# z0w=uDt1)U%)km-}=@mbE9yLc>cs3FFGUA2V<|L|0$P)gl_Mn1L+gPV?;Zc6Mi|C=C zMiodL>+%tAiMMa7r%cUo;Ro}&h}SGw4xX}><)NJSVXJN&*}t3}|E{w^FaEk!t7GcB z_Vn0zUpC1RdYaR=)%FDLC+#y_V_qNsZE6@+;LE3 z_7d0z-Y$?)fk`!FSW}fVCftRutXzhKJLiO)KH8UEz@PHYp&L8r80%Wyr?3X>@9lZL zvJC+6kh;Erhzv8Eo}M)qt&aV+bhrIJ?{TwkjE>>Yg=k5o+nDacgNTPEO!?bZia0I? zGaZ=oHB|v-J#1Bn%@B}_n=f32+ucqM zmpW;CLj=%q38+23!lh5}^9m9J6$Uc9Kq*d*G={*1|qG zNRy1o%G*v^2Cb~op^cp{=v|LiFup^IXILO9BS~H_v3)Xz$&e0KL7?LzL!sDeCr@%77$N|GuM6R z{Qv!y^uJWbe`0|9!wTw0!5eG(P(IF6a;_squE*B%ZH2tXrn*Y*4Zo0@>T(73OeWHs z?IEOJzz6svP>H*oa}vQ2wpYN85*#$Tp^A_(3pr^dS<4sbpU;d zm*L|WehoRu4?d3@4ial+o_t{4cNt^krpkkBFLb{4F=DA6u=yn^Ue=dr8!~LRb=;>x z_4cCLz)b@((v|yV@~Dg7@KhhVy5*w!)nHGhYJCyALta)Vu51G^ufUHh3(GAR8x3BE zZ)z2XWBSg-I7t)1Nvm?bR$`}(&*ECxH4X&pws$dKb@u`5m}+DZ1-s?sGc>XgvgHS} zC!G2&%xwmFK9W}md=BSJ16;)PL8(N|JQma^(_^_$6ub2UG|~k3dj!Z+tYHUwojHTV zZ20Z6Lq#&vc_OqeDSoS7`eWVne_r(j?#r1Z5w3G>WDy;t*{k&;X(gQG6D=wj{hsiT-?#)N2itVo;pTTm;;(|5Z{a{=mf5E2JBRE4SoDYehwi3ufFh|X>U7YNn3#X9F;gZbSXw$RNBy)Szo4s8Q{e923Z^9(`Yl~0L)>7SI$G0*Oke3K1*_s$~0YmXt`w`iE+rwVdXg5X|%4kyS zX6n6JCqJ5tnG_%&usiS`w|3uY_<-eW>ptD8_`Yk)H|)qG{oFAxOeN6-Rtu(; zRKfLDd9vE1r{2ZRH?5o>hN7d62k;3Py$Mx7MUF|)bMHIo=-=~vb^|d}?ccEvbW^5zsanr`Q_W?!~Ro-Ci@JL$E!}_vg zSouquTFFBW6DqKg%U)Nz4a9~+HrU9GRw)D@ra@NaLy+)l)CX_bmx8Sj40mN3xjx}q zCDZa!cqo=yBz+g?eMD}{cgFP%`ryn>_G0%F%FszhcgeJ2o9NU+~o~XzG+NADdtiQ%(y#U znO#!@e~zy!C1W2n%LVjcBLgk3yS8Fzj#9o(E}KOdcPsCr_(b@)xu4M zxNEi+;58x4m1-jJ>LEon!F-g(pD2B*EDF@^d}7|FbZJ~-LAxB(8@*ui`M|$`6Y)F$ z$5aQmNfLmtlzC*YsPRX@f=U@H1$ zVpFzW+$WP9S{hzC3t@An@47^6fuLc4yY8=SgFgh+zLTH-@6Rgj@^*2?60>VmPG1MUw1P#lObqNQ% zy*Ots!5gbj#W_tW*j`dGD`_5VV|Yx?*?Zi)3rc|-)f<|HimBzB96^d48O7Rh3(RN! zE$6RI)BSra+okdjvB7gpp6P}rlw?}kQGL?&Y#l|;u!Wih%HfF*xE7xY68uo$HlWD+ zdftnYum`d3?%7hgb+?pE#-6m_G=>b7b%p>+RNe---Pi8hmhUn-0wPIYfKtt0-v%OJ z5O@IO!h6`_HPd|ZkpjeH3ycxPcwqy`0v}}Sg)u4=A%sEGnodg0V7JasTK6_v6gB9- z8&Div`{2HeoiS7DjX{u4^q|$da#os!^`P@rwcCJoM})6oE#3hS zF?C+nBhTx9YH=StKrx0L(S2HpU&AagwakP(fIb#K0R`k(vq~_UdUK_5^8v7}#pH6W zU|?iUfu69dEx-(%8YuJfhI=|^ zGe&?@)Iz`0Oa6J3@`t@~P&~rE`-pG#Y0Cn{u#Kz3r#kONl{3&LeG;|FeAsj4zbXbP>qH3J7ni;$wx4EzvWB@2eigjr9||MPzsdNd z$o=Zyyz~FXt^0FUdguGTSm!GVBHKVDM;&B!Z!sBWTGPlm2rInKR7S>ZyV{T1I?zRN z59dfym+;*NjK|0apiR2(RDz&m(U#Da53nuvl|gOL&v$SBbpB^E*2*!_5#db+vdKsi za?ko|I{AZM{)Thb`?Bo^Dbv^$lFgO+Hedo;6w~<$=Nd)YcdoOb7`QA+qcwaRm2~)0ANwh+4u{ZeZ=VfyBe)1^t2!?+Z3OGB7uT)w0S`WZDI;ClHt z=1KpjF8Ym+WBvzC`MGd+49t$f`ods+=bQJxQC>7Zr{es%F|j8!lg`;QB0ow@Yy-;T zUl^h`kn_JIFjI9*1kLo&o}M&3${YLE{>jDmF0Xl~X@di<(|4q~N_}UXv_bMC3v5=V z67BnSIuF;B9m_tqe0Mapb}8(XOp zFw;$dG`d@ai{;8czgiynx%ABg(jpBhrEMGFi&W&&{5{_FkH`Gna{aACIfRVZx@#MF zJ!ZDC?>|76qbCqTR0a7Fk7d|g8rh2HHCH0uD}DStetN_?gA0%w*eP#$qEL7izi35uTGap-}BsKmBlWb!;;6rBaSQProL)`?w&+I z3UEpLM}FgfwKiAws(N_Q6yZvCG;FtlWh%7p7jUXaDZ4GdQbWqoo%4K^#-2aAj)Fhu z9k=_kXTbHSIC<^4q zyTV(v|Hx>vV)(a(Y$1DG*e2*qB1t7!yppg8+n9t#CVPv0tq!U`y3oJ(_(e1b+2n>F z-f|#&%WeD0_5N`eCjRMF+h42b{>z`0y~45(0}#}IXK(nyy8KME^E!Tku3bft-Uj%ekh2llcaf95Uofj z2?0`=J20Q|Z|-2h7K8(C6~A(Z+$chG{sclD)WUCbj|;P=$0Z5z0wZ;%E^C8WMuhLX zc!?B5^}xddO05=$tQN;an5u7rqKb*CN*@zCioo1N8E&4U2(vajXs(=&)zTSP$h*Uh z%F(^yqEppxG0{~>rto5Cfxt2)`>i-k2rSmdVqFh`Jb(<8S{}RM1T6pR!10fRd_TPY z*7NXBXQ>Hy!xR)oxs6>J4bmtruF|FCkDdw!#w&OTH4tjJ7WSeo+GQIk&h^^{n$=-i z@}Ntzg0iC)ege40fP|S#%`@?tD4WVi(kk}tSJkf|;X&5Fa$;sphhCda- z&hNhrmjAu3%@<~72gLtBET|n2{~Zwj-~G({59{jAb^iB&_5YGAzd4BiZ|N`=;f7nS zZHUeJ@J2j5-)6~Rn&}Sy^%!ON`3XFiDq@xFhdzeOVwks{zm|hwi+Y+(E(n!>!U(pv zF}mA9Bd4k{?CvHpR?t+Bn+>789p(3m^%;LsIR;6|PTGk!Bp zh;y!U<%5e_d92bFjITnqMUlH)nfFaefF6CO$Zlz>i+?Mr{c3KT49M`)bSHVN?B`{{ zJc{YOe^O04bTx(FTQuCtrjB%MD(4CjM(}i`FH}a0-xNuGB%&5)kkrt9{p{9K&4_*h zxvtLq9{#E!R)MXuJ#Sp_WYWuFC0lxq;@ykXR^UY7sryrp5z6%BzcJbcO!vt)8wh(o?az#==-;dRsG4vnuSJ2h-DFa+k8B0u|034ympD#5BEs zm{Rop&Bx}{IW?hA8AMn3*Rtci8DCTFQsf`Gv66;n?s6jJwe~sI>YNd3ZWIsAebeg5 z|Iv}F<|zyRJ%3IH!M;BRpMmDV7ogqn`|Bx3*8(k$U84i_EMUiYeMy-RPxhb4fWHY1zmm`r?inbrmW`?+(Z9y224Xw2pl-4#k?GHYEppGA zR%b!i7NQk7WVB)|lC304ZlQJubo8C(w3MZonTB2Th}QotCH|wI|7JGoPmgB)E3lG( zG1U40JLS*4#~p0{KX<)k*fLJy61(1&C$p;xR{%&6aO+M>M&568L- zf?;-nFV_rLIXE^owHi43IquI3-7>*9bKJb*!R|bmmcNx+@aTc6eA&B;YN^`qs#bY= zBg`yI)~fs0^O1W~`%r#2>_wI?+&VnxX#!4MS>F8AFhViAtfv}4)J!GhszqGtI2j9v z1aPrSkb8h3i&9zczgn^pd`prXtiR?u@~Wwcv44hEF!Iyo7tlnsF`A38a&0T4f~m96 zc2h5dXK<>N4%Oo=j-a-zWL#Fo!-B9ZuiV6ZJ~Svj@vzhl9uZKve);o#f%Nk^iEvjv z90MAodDd3*CN8*YO|M7!Q^GEV>j2-LL>f+RFSGNbUI!6Mxwyk=y}pR+{GAqWp1l{5 zyZw%mGe(MPr3sV-T3VhIZ??a$#~u^@fNNPj>u|v%?WiLe8f3vH#&JYTeA_8m>Nt#G>FSS-30;K~_Z zryIfe2^~f{33m`%HONFr8BVWGE9l%jd|tUU>2`9IETtlA!jU(nkUagsyctb%?ZWW! zrirGww8bFx?gCm`x|j=2RRU5kQ3uPUZE+iW1?x#%MPxN&#PPA2sR_}YO=%u#aRNQ4*X zR1^WK*JEe5LigiQ@{N!0y0>ky&<};C3pj0MCqX+LZ-#czcN%3)g z5i)(0(vRRax=vKZEO1X5J}-XRVs7RBK&{g1+TkkwIBhwUhb1sZe0QL_JH(E0N+p+;&}J%6J7!c<-F3;0NQM4l~b9aEbseI ztW(Ov-b>A_>t&bHd&v+gM<m9OG?Sc zgQq_}*=sX86oTQrnMQA_&{=+Xx${*bSG2$DKSSm_f78yl27G_xXLuZDS6K`=<3qIQ)d*-=OQ(CiA z&a~c;+R>J$3xc8hnoIFIGqBz=oz%iP(5R>LJR?{}Z8T9r(* zFmp7+4GFXrofK52XDS9in%iuR*|~AvL)~tpf!00Yfb5%$zvVktE7zAlU}b-@t%0?% zl|RGdx;P)-W|eCunt9kWx}N(W!9FRcV|IZ#t=Q($=QsU{<~h4RYurXewvJn)s{Om2 z!xXq+hCz{e9xfe1%p15*k@r`sf}nG8D;X7nA5AU2ByhbEb0cnZVi=(XpJPX)3ip>% z7H~CqaJsjFlriW)LwzD&uf76z0qI>&)^#geyV;M8d@`YPE}TVD)q@H7pnEH1?G1wN z<$F5)NX9NTe6^QF;u?j8PWAf35yp2~1DwmeB_?L|ee!|+pL;HD48ghg_0$N^+i^z3 zFoMg}tLm>3`Em7)zFyo)G^uh=UJNdrWGY$=0RV+jUB^jBMb3q)XV+l_y^W!)mnJRJ zAv*C^<8jS7x&gfE0?}1j!W5sB@nH4ndM^Qgd*!i3I>BQVmO|H5jssf$L7)>V?oQc` zBhKDE3SfAIy1_2_!S45Lr1?#F7i41nG73brNhjE-7U5ijPx5w%bID*deeiYG?;0IA zBG~9*UT3IodGi&wXDvhfENUfsB7{GoU{PwxQD-rX=0()|<^10Ya20Yon6xYe=5r}w zsC&{dv~xFc&&nShEQo4aqzxZz<%K-Nf}1UTPMbPnpsbeIRX^NNL9Y7AxV`uMjFtAQ z9d1o1eQ@+}ucJ8+cObJT!u*;eKILKoKBl98DprRwts1^ZG0UG<I0+acTPDd z?*Bb%+QohNO}Sa0VC{zU^IRmAtHed)U5jyLQ5T(UgU4P*y=Y{mngFHg{g$E{x({|q zLh^?FZiOrA)qKLz5)W!}o=&Rua1Lx7nmFzzCcRL2q7>+49lhFmLDc8FOEiZF5TpgL}BKtG={p8~cDqH%Q?`^8S^{rxex*4$A z&Ezu?MRjqEl(O^^#hTJ32gO47BF?<_9_agY)W`FwzsY+Q*wq>pww1<=M27VGVft&O z?dJBhtjo__`gEf>+WB6+1yP%xiM{Qc;P`e;T%&&INM&9xLU@#}`AN#*mcl+~x8=9| zZZ~u?|eMZg;L0$Uu^+&@%5oDM`{fTuE~UePD7s&+F1GH z_=A?Oy-3ToSG`ZU`?&WOl2>4ONe_d7{u8AJr|NOPr95uJR081x=sb}B zOD(ykj#x4vI*W|wtQRvb)yxjBJn`=3)2!skwc!GX4`ARfyh@yCfoE8q&{F{8#IA3e zMGMNmTVj4NsV*-Ge(RAS=uu?`o<%U<mis5!shY@tpMbl~38q!H}G=>+0o^0eWFIm1JFXAb~ zJ>=Uy`OmVie|ztX=JE6K{? zVidXut{z?9g;EA|x|~b|uUs~PU3gPYyQch}?#S@-5$pP_wEVCVqdud0`(2(NF^a*J zic&8!66p=(xJHBQG~Xw1ba0OpU$g(OuatqC&;T)7r{&JEw&lh*Dg&`|R%~Ig4CAZpkF?swJekclMKy9>>uqiWw+hwn zZOrY;JI+xmYqV(~WG|FdT=3w!+AYONY@2U&BAA(=&mEabn87G#jp^yXHnu)%nfy#o zIr3aCv5M12;aY3Chvu`G=cwBSJ$kSE6)Rnin(t1T1Tn{eeaZxFwYK-yh7^6qeXTaQqpiyh+-)uZY@K7&)7H(*enc^Za5Yu9r6_#w^86h{@jS8$QgZcU<>`m94VXt;>VQHaxG;^H> z@BU?;;9O-u+1AGX=Iz+k*UD5(q5L{Lx;m4fEr^!58Bby)L5hoyp!J`G*uDQU?bt4Npiu$|POQQ{OlI z!R1{Ic$44L0G6;!+9xaY?stWZaeITok+*45YiJP8BYl5g$icIS3WM7Zy7{$Fy=$ zl}lFl-O)rEWqR#HYS-1ea;0}C?s~5-5Iz)Aj9-gUG*J`4F=xl;fDOL!R=2h zo5&1JuEcX(CX?b+c()i-cAgMdlM6fhu5XdM!i2m;q;u?KXo{OtB=$C^p!XYgLC-&( zSCMPBITuzbz6+IM$u5y~T;qk61j`$NJ!=w8e^X>bF>Pw6*SW!?c6@pF1g_Kx@-|RX zvDNtYS~g+R#i>^VQ>|T@2F#}PBpsDW+3Is0DzGFzUUa+Sf%)ZU5+utbWu0>;4;M=N zkNcY>E4)<0rdy{-`pJnpxb!;0UDcvKKXHhgO*sk6#uT^M>L{}553%A%FL>26EDdk= zC;O=s<%OSpDFdiUG2b25%*o9;DAA*bGw{A_RKG71F0aydTF)|(ehYf0eL2q5L{dE` zHY{Eo;1Gn?!^-m;mV8(soiku9nW{up$~ zBc>t3qYrJwqpWi5H*TLR5<=B)+ zj{?C3RdFg&C!C7ZU8@tuwQj_fU)gYH@LkFd{ss}_52c}jkI6 z`%MULFKS1J?;lQo{a`ky_wv4MSz7rm^)c7C>#usJ!_g^I8>?{=&t4j;I$NEpZREjD z%kQ35<@FY-KjBytt;E~3KjVgzG(Gt2?&)JIm<3x5%x7({czU0BB~|V%HTCyB(sGe= z8{C`fO)Dm#I(D<5yo`Jy-no;usiecx=_RkHca!0h)Bjm{;mh`LD-48_U{mwxRKJaT zre5@ggzJ2KIf73uK7%+X7SV?Zad^6#lJOU#v`&MjvVJ+;DMiJ+0^G*e9>#uFap!(W zvEZanuW%X;JVn;1g0~2d$Q8xxA?bZrdelCONYQ69oB<^zf_{YT``WLUj>HSXO|4SZ zFv=(9XLn_AsS6}#bJU}l^Pmjmxzt-%GUGoKOx$oe2$de3d@mZ2*tD8`SC|Ukh~aP5xLwJ1taX)#v z4frcC8%=FQtZoCr_8g{ox(5wz>%sd!@}jir!euE;Dk74n;%O3M*)<xX zx*{;Jr2oqi{%`d^{hrTvoaDcT9s4Ew_PgHSagx6;A@4ZJJ5KWN+PFWaoOfRTdh_Xj zA(?$|PVx_XgDJ-3{F?whR-RBF!KRhrz>-S8d;^3gZu|^=rmM;1d!*wX=tr&yQ|LmJ z48$PWTWW!lsN6xc+TZW*!F8QJ6p7AwUzK#7i@nMduPjD$zmY{W*KJnd@N{sLO_ zaoq@a8&Xrjot zwx??m3*uB0`7jIUOsh{Rf|JXJjR>uY27}vxg(aggA>@+XzP<8vhZGikBj=M|36Pj7 z?+-I7*zcPT87(IRZj3{&I*OuGBs?N6BFR|Ko$yzf!T^Nup}b8EYncR>tgwg$h-(T{ z%@$app*Ui;_5L=nPr+7ii~u_mO)}wWDvt4F#i^!CZ39ldj-&R0BzByW`KEwonBD1s zl1CG9l_RR@ZC5??H5EB~{fN|~!!$;-9Vc{eT?;yywmu#`Js9}9YBf9d8|9aOx@J3W z^!MdqeUqo_jvM`b33fYd+sm5ZTt;$C zdET#@zrHrr4+?+GH{Y8%x$)r{dMeUdMt4A8FDf)M64e%-7(TKn__&L7jIgVZ?NBLx zZz%pvj8l-|ovIZo9-d%4$1v;U5DOl9m5ub0(anbsRDDL-YPStOtbKW_s@SP$05R2Q9X z0H33Vkj3+w-Xz?gMov9TCbMd5gYtUcZUY=d*)3l@@4RKFZAEG_{*=_ffYio3)izM& z@9s+EO@P{$S;N~U=R z8M}N4Q5W#gWyWCD2x;IA6y)qSu+q^2Ub=Limrx5C#G6J)ZaL-al615|x$UMB;>b{! za^xsiS>wystt4L#Qc)j`o8Q@{XvI0c(lo)|I z2>O=}-6krhy_-m;OWnH-Afn@eq2x#d6QyI+FdpBY*gqbw3+^|@lY<)x|NOA)9qrz& zv5S<4Hh7vLRr<7&4OY%^hW*tF%v~!lDEe0el@1*DRG)~*?gLh=Cx}Yeh`n$F)*1Ht z{4#Hgro9!HmX({mVro!y2yHx4ffvuuP93t6+tF~NG3hFD^%i$`8yqB7R~oyW1@tk3M(^vehkzuw$Yddj+S%Ox}a{h=kZLB+yBzG=}Jdh`^!`5G(fM-c1$QuGz0BHE}1odl^kqevFGbkjr?0J_@$0SjYks=(Eh* z?1rIJiF9wgePIrDcE1$S!PI>lV8}-@NP|hEN=xxn5;`cg0aUK@t%Kn5IhxT>0)s&$f-+GTU_8#z5dx_2@n)NI)iP`Sr z8{TCAYy*uA$m8>hz*YJ^M=4v)s<`>P)_WCrZ1%tMoXiRef(m^kA7X6;^&Mg=M2cXB zrZ=?Gvh7%-JhcXkvsZ(G>U^BO|7^~fCHoz|6!DT=uN(V~w5#`)U6TsstD%5yW+)7-%XSN<(RYtfr(%G(kqDNB?4Hdu zZc2jt8g-<8P>pn4jA#a}yolByq@_RzvG5PW7wIDCk zr#2Nd8Xp@CoSI-TlS*llZdMx65$8EOY*Fda!aH)uyrPhYa>W>nuea}(-4fL5zP^}G z$6=G&Ako5zAWw;RTg88PlvzDt)AJS^8q*;%yM|^X| zYp==kkP&-2f`?T{o}i!`OKOGbI*7RU&2ScQXBd}DG{Nu{R+A{p;7{gFtu5Y#lGp$e zSe3}L4KS5yxx$|`m}?f;6}X>`!EUBinDsilw;Z6Tnnco+u_PD8<#lEZOdPR2L&U&d zn6fNq&$C`H^uHb;7S7LlSs9?1rB?XQP!#M0D}S8_%D?>Z-w9T}GnZ;7SYgAlYz6X? zsgq)Nf|Y-HUw>y>y>lOb-Dk;n608UY5rVLUG7j^-`A;FXz4qbFg5qpVQ^npBc1Y32 z7XUj+5T6h@(jq$--|{iS1(C6TJocjO@om7=w-|k@s0ZPRhmhpy;QF`N+ZOxYP_&kTd1S$^N!4#DiHacriZG`&FT(O@y0)4-5DsCtY~|3)M~C1pVV>1oA@7mlBL8BSx^d$ zXQr;yC<@gu7ZhISI6UE7$+s<)tGUMBA7wUZqX>Afw<>hftP-VF6}t~L-oDk0=*~S6 zuIO24|0CKsDt+jRzoU8W*!}W|=lr<$mow)Jt|#CE-Un(QP`GEZ&&sy&>~PRix0LdK)p(`o^Kn75ooy)QX_TA9RH>lcktk2|o7kMum`m zPpdU+iMXsIRO7))yeTe|wDES}nyR@>yRfb6ys+X{(R@}tBzdtBjJe~u=Le(lL3`rO z@UW3Vd{Gq2w|JjYuWaF5)#64FA2oYJMq*TGh6OdOYyNKDgL53N;bL~?+(V_6JZ|u1 zIF{YwS&SU#GVnE`Ei4r<-(bbS8P(nLxO%Ct%gCdDIFJ28pGqznG~pokeX30A?qCb{ z9b7~xj>RS+erZm95@UqBC%vUCDqafaIcFMikn5y1SYCGx9u9(z6UOJ1sad_uGD_pLoj2G>?YnP<;bbBy0YjmzN^_wOeRG2H? zjLx?#Iw3?Jb*x?)vIkS_mOmNxf!@aF<7!k;N0-uW2{GKV7X^wPchtzxmo^PpM?1B% zv#2o2p1|*QY3%qwULcxfQBv`RGifqAImpHFV$HM-4azH|Zu+@N3cVNb%N5~zFNWvV zS$3Iq$NYv_gFM!kwBiDqBnGy#?>$wPFNhJZPLEbw|0u(|cWHhc2N}9k)o+uEDhx~m zxnX z?CO!PC=Qe3zpmQx4a=SHb3KnVRF>Z1hrBMec9oBU1{~y;GO9}dX=Uv1$J4rqqt$pB z1Bo`KuRO~OQ(mJlvEvWKKc>?{^0hpb*OkKDAo(qbi*#JjtD>g&J}) zIz)@jn3{E$RJGO*mo1jM@p3=gM2MmMVO>$yn|jQpbhIXadsk#JfHEKqJ3vPZ!oH+EgXF z&1H4B%vJdZtLdUiv}E5U)UDYk3&q_#jnl{V6Wd-HAg%{asMV_vD)h?~jy$^(FMG`O z>dr{)(1ef9vC<=JDN&U)(m6LbJ#ph?hMN)lmG;a_$M&RbOe~mX&NH-^Li(Y+N;FG8 z_-?&AIh1Lhh;#Cu{S%U2R9eK&q%S7RbPfr+v@T$*OYW8MZXUV)V(!Z)<%zx7R;7BT zD+QbBqp^a-0xj(q3^QY6uO{^jJ5|im?S3z7rOss>nZU0wl%M&yE+*AyOQ{*-#&+^S zx!T%Fit&~8Z?ZzbX zo>sN2*E-%07}i6ZFEsiq;&ty`=&4B5GePF4xNtF-OAdvKiAgJ;(!aLt*-lvtN2Q3t z@;N0(Ra%df91SX4_E;S|vD#ri2YI7`rAzv4^)}CQ#tHBugn{=ulR+N(66tNiZYI_* zGuR^ahZdNa4vrh|>%JTvdswZ&?Z<<9OPc$wXJ`k9c07IhF{JIieoDNo{whTLhh2{m zsrcFAlTNWT0y9*CgP^M&OSiF*FLan#rj2E#qmfXRzL<_~r+`+c^cjyu=_&cul@GmL zmP|xkJtgRW(z5B6=zR)iV!j3kK{bQ%J?ZFw9WSlH2)uJf;$l9X)iv74C}VFtk7pNT zU?!Cx@PskY^pyncsa0X>L!vH&-n;f1hUR3oUp@Mqe{v-U!B(awE(@bNL94Ixetli+&#fT zh}vWE$o+%^kx|R8dOUP6e%EAkZ~WliNrdm=YRq}hI!1;Wp~$g#dym58?$fq|T0aw? z%dAa5s5tIhI+@pb-lk~GdTW>VNby*qux$E=r{`9*^GU}&CU^{5`K4w@#!ITq$`cb&JrVze&$@HV-2xR^TDiZhwrh!~7;2JG-~)%l0hc&)VVL%rE%! zVv4S!SW%}`Wm@cp2hK5)PxCU5v-k2ZzrB%X9#=##|2(e7*a+giBRNW*A9ZoWN!~Vm z&rc2H&*oghUXXT%6t3QTAGJ6(=X`Y%&be%})|?!dI<76@>T~-8(-s?&>KVVm?Y(C7 z2a8!PW#;SGDHCkDKDY)_6YH#70xTonL@246&<+jcH#=f3CJ}AB4NvoW4A#{K$IhNlDe?dxpvkC?04*xHD_=IN@{8a~pN*-j|T-rPmU z%yc;+P7|$65R3EI7`rXC*XFuRarn03_3GNMX&KFgU76RH%PS$r#O5f^;-a6jqbAmGPH1uPQ=ab>ae19(cX!{M+CoGjtcY+Ff zz8Yb-(#pMFE40vjJeF9Q>-XEw|3O{izXtUNO}A;M_w}90e&|txxX)DCld``6s3Bh< z)ROx$9i|Gme|W(2H7r=J#dlraIti48%;12TsPQh(qsx)Ze|O-e^QTeb(XyEW9z{7ef?HxhsD`DY>l`dJGe zI?Qpc6W?=1D6+w`9)~8?Z#`Ib_PskNTSM$+0+l zLl2DPN#b>(J1V9pQhz-dYo@Mo+RRkl-!(^o-Wo|j(k zd;#mLJM2`eN;G9maFJSl2+GkKb0PzWCNG&-2H z$hZWCyZPgjWV1u#tL!#bnx_~q=d<4;T;3l>*H+*Os?FhxcX@`*p)GExuk~rr+PS24 zMBw35UG9Jv=z+t#cKBU8lY{f6$>V4{T<$7aZ1?5ou`|x94w-TJ-C?{BemQ-)0?)$Y zqkb_DJN#eiRjysSN6_Fn88nHWY-SQ9(@;b=bZO39%ZN}QLT zVoLq!);Z%QwVf%iTAmixHdppOT3JvSujwP7nS{VID)Z@Q^0e<(k+NTVM7; zEmgktJARxn@xgi>6D9X+8^q+^we7t|yOy45m&jEhRUqBoPKa|r&!J!m8PY66)QfAC zyX#a27f&2YUSV(4wQ)e)+~}ZJpQ7P9YBy76j7*-rw6%|1EB?Vvj`im1M?tQ}Q>%Gy zTCmWA#Z?&#OXWM&dI$LC%~b4}^v?gQ;XK_gl?$L9%S(jv5dRl)CS zG+O*#TeE&{y8q_3T+7ix$(F!&kBhuG5($NX`j!&fheUhrd2*?gRu|92M_b*wKX?g; zs%2eIzl3{vI8(|ms+qd!T#}Dt;o+Wfk2hQ79^rrN%nH!!Rt|oNS83G=rzaP6}ovc>J79A>Sd1VCfuVgEOHp&FQf6DU6Gf{+;UiTB;!W}TZHK-^`QhJeOwQz zO$FTrC*}p09u<19t+aE@q+2yzRjnC8#tU@&Nq>Ylod)j#vhr`hiT~k$0a-cCFld0R z1Z3s^u)UdPyNw&}C-!S&Fint^3b8Zx&5g6-zPsyGH95+M(EdK!+pjU>3~3*AEQ#!$ zF)xe0S4wTL>@mp%jcc{tMSQ9X;D&ju);sbea zqi(8h-V_kLRu)5DQ1!0F&lm}pHaN^)$}nyp5`MB(^XGKSjopKq^3MY%+XL=?yy(pR zPPF(1wZDwLXd*|WvwT!>U$0BN%4)hm)rj>ywkGZ9sbR*Q{EYH*;~%^@NNXupDTtAV z_=$>^xe!Himc%2x@sTOg50BnMMUvmKT;tPnQ=grC^&~sE6FXG2*kd9LiTUOgS^PR@ zcgHK4r5~+RLd&d})m7-h3gN`sEMGn4H}=~O<*d2gmyPB=?p)^B3;aSK-v{an-g=so z_9(;k+>5hG9S*s&$-;)6uAvv|I;%o`!m74W>l5&c24rtwa5sn#tn2F7d@h%5mAk`6 zqYWLh7Y#;kShV2{vIS4c_c!G==O86pwYTIAa1a42d)LXJ4#(8<=|TyPtH%+7-|@Vn zAqhrvsLsB40huk1#DS;W{Ez5IyH4zTb~4v#bB)(4!D{PX>*Hxxco>Vr7wdIP;j$85 zb47Ht@%KCvsVj**w_7yP)_u9^Fvi011t!V0X8LyWMc>&AqJ8=iO5P;J9c|3W`6YdU zEYg=w_?~DU_^tmuX!A>~o{jhCXuj86L0^LP4(EM_<}>|A(RAMnweyc*1$o_2fVQ+T z2eIQDR^Oh4rqh@3_(aMS8W1Jsrwo{XlCpY2MT!LS&|x=>p$FToZcq*Qf>Hz-#X3?VJ^_fos&;Crv6pmKn* zk78%eUpF_SY9Z!b&P6MV9G+8_ldY|#4=y-vvtSCF(1`j zFLwOEG^sE9ShI?QG+rT6A22QShKdIbX{jha>_9c&ZUYarw)`Mq+llew7Bgyw4Ek;@ z2PupuSD})4NkqH&BJ>?oJ_my%GVO7%iL?<4%E{l-|FIK$L*g()DDFARy3tdhEqa#M zyBQl5h4jU2Jb%on?^OMT<>8HEghNEE#p83BwoC)|{uCJ&ktvpx?Nq-4mzc4E_}sv` zfNI#m{6T($i_wr=a~WMA47uY;<0-Vr8qry|>kS8q`DubUDd@Vi8`YIxT={C#&hkOg zCmduT-_qZeN-og!8O~XCZxO!AY6fvq%+;-KW9`9JW4bFU+N5-Dc$u77AEOy9B;%+2(jn{TR0SQ42^w6-%|#Ncd=3%5vbZ0t5(n!PmA zRNPZWID)=3P}eQ&9lm3~k32j0xEdQJ%VVd$K>8jeTe8KRPU3r<>aatMJ5!#=3dX~w zzl<3S(=W>dmc*~y2$lpa2{5MMIKWB%EwK1+S;T~j9Q1T-x$ZLjXenB})Zg5P9^5k} z;OTrO-KXi7QA(0@a2a3K-1uS!@0vXa6L#-dgn6LO)lZ*h=_o|z-xireJ!P6LV5p~5 z1?CN`S;#(}3db^mHTyPe2IKYp$4k}OF*Dd`|M|UP1`0itC0D}d8G6{3F%_}sc@5R1 zd-%2>JGA{&fp*@WP;o4N2`3gq1pnJ}(faNBi%5U{`r}VuH=Ozcu7$DsWhuehfV}{F z0ro=mUkm~41=tIJ^1WakrFDj`BBY*lr&lvlc_sIzlPlu_duB6Tt^Yfs9^WD+2H*Yr zbENp0u3v)NmyFNAm3p5E`z0^@Lii8)LYytvBInC9biT?V`WnY*>gPhs87LKd36Tr` z=7n!1pw<9P2N*w)9)ODh%oX7I0R0HaT0m_B z#vSkzfz1irSD@tnI|wHwB5s!u@^4N%&OGLx4E0UrA;f<>NEzt zO!;J}d0TR8o=G~VOPqh&)KVfj5rJ*BEq|%T5VrFc0rk3nM(ySAT=N~&>&SKqF8vA4 zHmQt9OObZUp(9vj25gd*oj~uz?_2f0iOsF z1jJhqokGwIDF!5DkS9V`4K)a;*gzo(%5G4kgxV=onxQTaT?}ZhKr0FwchFCS?kn`F zp@j~B1Au1$m<2F4fJg%T7Qo5?ga?pC0C)oK6i~W=X$Gh@0Mh}+52Od+VgPdmcs@Ws z0d0J+oCL~3W^lkv4zjyEk1j_tkL3#l`#lrq+rzjzNwtZO(gySBtjc z3tv)kthtj;EDj>VRlnVq#8j%9feuX7J$xI@aOw+vDRa>Z4l?xuxEe+cRtxMB)Kq|V z_|=SpRRpUDRuQZsSVf2x5fShP;0?eVfHwed0Nwz+0o0kMmejy1f>i{o2v!lSB3MP} zw)~~#1a)MnBTsdS(36B->~G~0unu4yz&Zd@0}v`x17@&_U=_hCf>i{o2v!l0SW^J4 z(0hm8`)|o3bX%a?GBr#B>j2gPtOHm@u!>+6p$82;=&8vgSVgdk|1PUo@g)Ve(_wyq zc`PHufvRJzm*nCvYu&88v|#a`*py+{CTHY!m;#U1R1RtbDlhmP+aJr`6o%BIpMLtr zbbavfm{GB3MsG~0q)G7>zV9<}k1|@fKR^HZP(F7&zVHdkKINBiVlhPPx9cw=F%_|& zidc_P@@bIa)E9Q*h%mU;6r~g1h5xiFTh@a zz3`X(0`i5a=@jG(kS{>K0Qmys3*Z;PFZ{LO2>Al!3y?2Bz5w|G^kSwuMeqyY7r-xo zUjV-VegXUfU@!o$0{9$=2_Ytgm=Iz@hzTJkgqRRwLWl_=CWM#}VnT=sAtr>F5Mn}z z2_Yu@bH{`&_lt&RS=nzm=GyT}Tk))|&JiUZg`$gwnaP)aVH^H=If>JiD+%{CeR-@f XH!wG_24D@q8u;hd!2cgDaNhnOr{uB3 diff --git a/ros/src/computing/planning/decision/packages/decision_maker/docs/MissionStates.jpg b/ros/src/computing/planning/decision/packages/decision_maker/docs/MissionStates.jpg index 321fa1a6ef8e8d403cba4a85ac24e5907105c2da..4db6e81a120d5ed796c04f54fca0405ac7d68273 100644 GIT binary patch literal 259175 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⁢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 literal 239848 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

8aMa4CzYtb_w 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 U|DSq${-0_A```7s{`~&G0AXiiE&u=k diff --git a/ros/src/computing/planning/decision/packages/decision_maker/docs/VehicleStates.jpg b/ros/src/computing/planning/decision/packages/decision_maker/docs/VehicleStates.jpg index 2f38fe0f91b7c23fe1e550df351e0d8c4a56aac1..149af93781824bd6a7fef1947cebac5104254c7e 100644 GIT binary patch delta 77152 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%0AQ7aEtTb$RbN<=)(>X-sYs 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 delta 71681 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�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 From e56bbeca44756c401396ffb96016e5db86e61818 Mon Sep 17 00:00:00 2001 From: Azumi SUZUKI Date: Thu, 31 Jan 2019 17:42:23 +0900 Subject: [PATCH 113/139] chenge parameter name from use_management_system to use_fms add parameters to initializer lists of DecisionMakerNode class enabled parameter initialization from launch file --- .../packages/decision_maker/README.md | 16 ++++++------- .../include/decision_maker_node.hpp | 23 +++++++++++++++---- .../launch/decision_maker.launch | 20 ++++++++++++++++ .../decision_maker_node_callback.cpp | 2 +- .../decision_maker_node_state_mission.cpp | 12 +++++----- .../msg/ConfigDecisionMaker.msg | 2 +- .../runtime_manager/scripts/computing.yaml | 12 +++++----- 7 files changed, 61 insertions(+), 26 deletions(-) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/README.md b/ros/src/computing/planning/decision/packages/decision_maker/README.md index ca37316ce0d..b90a3141ff2 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/README.md +++ b/ros/src/computing/planning/decision/packages/decision_maker/README.md @@ -19,11 +19,11 @@ Parameter|Type|Description auto_mission_reload|Bool|(default: *false*)
If this is set true, decision maker automatically reloads mission as new mission after previous mission is completed. auto_engage|Bool|(default: *false*)
If this is set true, decision maker automatically engage immediately after ready to drive. auto_mission_change|Bool|(default: *false*)
If this is set true, decision maker automatically change the mission(waypoint) without state_cmd when new mission is loaded while driving. -use_management_system|Bool|(default: *false*)
This must be true in order to incoorporate with [Autoware Management System](https://github.com/CPFL/AMS) +use_fms|Bool|(default: *false*)
This must be true in order to incoorporate with [Autoware Management System](https://github.com/CPFL/AMS) disuse_vector_map|Bool|(default: *false*)
If set *true*, decision_maker will exit "MapInitState" even if vector map is not successfully loaded. num_of_steer_behind|Int|(default: *20*)
lookup distance along waypoints to determine steering state(straight, turning right, or turning left) -change_threshold_dist|Double|(default: *1*)
This is relevent only if *use_management_system* is *true*.
If the distance from vehicle to closest waypoint in the new mission is further than *change_threshold_dist* [m], mission change fails. -change_threshold_angle|Double|(default:*15*)
This is relevent only if *use_management_system* is *true*.
If the angle from vehicle to closest waypoint in the new mission is further than this *change_threshold_dist* [deg], mission change fails. +change_threshold_dist|Double|(default: *1*)
This is relevent only if *use_fms* is *true*.
If the distance from vehicle to closest waypoint in the new mission is further than *change_threshold_dist* [m], mission change fails. +change_threshold_angle|Double|(default:*15*)
This is relevent only if *use_fms* is *true*.
If the angle from vehicle to closest waypoint in the new mission is further than this *change_threshold_dist* [deg], mission change fails. time_to_avoidance|Double|(default: *3*)
If the vehicle is stuck for *time_to_avoidance* seconds (e.g. due to obstacles), the state transits to from "Go" to "Avoidance". goal_threshold_dist|Double|(default: *3*)
Threshold used to check if vehicle has reached to the goal (i.e. end of waypoints). The vehicle must be less than *goal_threshold_dist* [m] to the goal. goal_threshold_vel|Double|(default: *0.1*)
Threshold used to check if vehicle has reached to the goal (i.e. end of waypoints). The vehicle must be less than *goal_threshold_vel* [m/s] to be treated as goal arrival. @@ -96,10 +96,10 @@ MissionCheck|/final_waypoints
/current_waypoint|Waits until all the planners DriveReady|-|Given Mission is approved and vehicle is ready to move. |Waits until engage or mission_canceled key is given. Driving|-|The vehicle is driving. According to the planner nodes|Sets operation_start key. Goes to MissionAborted in case of emergency. DrivingMissionChange|/based/lane_waypoints_array|Waits for new mission while the vehicle keeps driving. | Waits until new /based/lane_waypoints_array is sent from management system. Then, checks if the waypoint is compatible or not depending on change_threshold_dist and change_threshold_angle parameters. Publish the new mission as /lane_waypoints_array if compatible. -MissionChangeSucceeded|-|New waypoints are compatible and vehicle will start following the new mission. | Throws return_to_driving key after 1 second if use_management_system is set false. -MissionChangeFailed|-|New waypoints are NOT compatible and vehicle will continue following the old mission. | Throws return_to_driving key after 1 second if use_management_system is set false. -MissionComplete|-|Vehicle has reached the goal.|If use_management_system is false and auto_mission_reload is true, go to MissionCheck state. Otherwise, got to WaitOrder state after 1 second. -MissionAborted|-|Mission is aborted by other nodes(e.g. by AMS). | Throws operation_end to Drving State Machine. Then, go to wait order automatically if use_management_system is false, otherwise waits until goto_wait_order key is given by management system. +MissionChangeSucceeded|-|New waypoints are compatible and vehicle will start following the new mission. | Throws return_to_driving key after 1 second if use_fms is set false. +MissionChangeFailed|-|New waypoints are NOT compatible and vehicle will continue following the old mission. | Throws return_to_driving key after 1 second if use_fms is set false. +MissionComplete|-|Vehicle has reached the goal.|If use_fms is false and auto_mission_reload is true, go to MissionCheck state. Otherwise, got to WaitOrder state after 1 second. +MissionAborted|-|Mission is aborted by other nodes(e.g. by AMS). | Throws operation_end to Drving State Machine. Then, go to wait order automatically if use_fms is false, otherwise waits until goto_wait_order key is given by management system. ### Driving States State name|Required topic|Description|Implementation @@ -139,7 +139,7 @@ ChangeToRight|-|Change to left lane|No implementation. BusStop|-|Vehicle is approaching to bus stop(not supported yet)| No implementation. PullIn|-|Vehicle is pulling in to bus stop| publish /lamp_cmd to change blinker to left. PullOut|-|Vehicle is pulling out from bus stop|publish /lamp_cmd to change blinker to right. -FreeArea|-|Vehicle is driving in free space(e.g. parking area, not supported yet)|No implementation. +FreeArea|-|Vehicle is driving in free space(e.g. parking area)(not supported yet)|No implementation. Parking|-|Vehicle is parking|Publish /lamp_cmd to change blinker to hazard. diff --git a/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp b/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp index 14d358e6b86..92aa312be93 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp @@ -145,9 +145,9 @@ class DecisionMakerNode bool auto_mission_reload_; bool auto_engage_; bool auto_mission_change_; - bool use_management_system_; + bool use_fms_; bool disuse_vector_map_; - uint32_t param_num_of_steer_behind_; + int param_num_of_steer_behind_; double change_threshold_dist_; double change_threshold_angle_; double goal_threshold_dist_; @@ -328,8 +328,14 @@ class DecisionMakerNode , auto_mission_reload_(false) , auto_engage_(false) , auto_mission_change_(false) - , use_management_system_(false) + , use_fms_(false) + , disuse_vector_map_(false) , param_num_of_steer_behind_(30) + , change_threshold_dist_(1.0) + , change_threshold_angle_(15) + , goal_threshold_dist_(3.0) + , goal_threshold_vel_(0.1) + , stopline_reset_count_(20) { std::string file_name_mission; std::string file_name_drive; @@ -344,7 +350,16 @@ class DecisionMakerNode init(); setupStateCallback(); - stopline_reset_count_ = 20; + private_nh_.getParam("auto_mission_reload", auto_mission_reload_); + private_nh_.getParam("auto_engage", auto_engage_); + private_nh_.getParam("auto_mission_change", auto_mission_change_); + private_nh_.getParam("use_fms", use_fms_); + private_nh_.getParam("disuse_vector_map", disuse_vector_map_); + private_nh_.getParam("param_num_of_steer_behind", param_num_of_steer_behind_); + private_nh_.getParam("change_threshold_dist", change_threshold_dist_); + private_nh_.getParam("change_threshold_angle", change_threshold_angle_); + private_nh_.getParam("goal_threshold_dist", goal_threshold_dist_); + private_nh_.getParam("goal_threshold_vel", goal_threshold_vel_); private_nh_.getParam("stopline_reset_count", stopline_reset_count_); current_status_.prev_stopped_wpidx = -1; } diff --git a/ros/src/computing/planning/decision/packages/decision_maker/launch/decision_maker.launch b/ros/src/computing/planning/decision/packages/decision_maker/launch/decision_maker.launch index bf508b0c906..eb6ec8d28c8 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/launch/decision_maker.launch +++ b/ros/src/computing/planning/decision/packages/decision_maker/launch/decision_maker.launch @@ -3,12 +3,32 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp index 63243f50e9d..252373e4bfb 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp @@ -47,7 +47,7 @@ void DecisionMakerNode::callbackFromConfig(const autoware_config_msgs::ConfigDec auto_mission_reload_ = msg.auto_mission_reload; auto_engage_ = msg.auto_engage; auto_mission_change_ = msg.auto_mission_change; - use_management_system_ = msg.use_management_system; + use_fms_ = msg.use_fms; param_num_of_steer_behind_ = msg.num_of_steer_behind; change_threshold_dist_ = msg.change_threshold_dist; change_threshold_angle_ = msg.change_threshold_angle; diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_mission.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_mission.cpp index 7563881fd5f..4f8445a3680 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_mission.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_mission.cpp @@ -96,7 +96,7 @@ void DecisionMakerNode::entryMissionAbortedState(cstring_t& state_name, int stat } void DecisionMakerNode::updateMissionAbortedState(cstring_t& state_name, int status) { - if (!use_management_system_) + if (!use_fms_) { sleep(1); tryNextState("goto_wait_order"); @@ -111,7 +111,7 @@ void DecisionMakerNode::entryDriveReadyState(cstring_t& state_name, int status) void DecisionMakerNode::updateDriveReadyState(cstring_t& state_name, int status) { - if (!use_management_system_ && auto_engage_) + if (!use_fms_ && auto_engage_) { tryNextState("engage"); } @@ -136,7 +136,7 @@ void DecisionMakerNode::updateDrivingState(cstring_t& state_name, int status) tryNextState("mission_aborted"); } - if (!use_management_system_ && auto_mission_change_ && isEventFlagTrue("received_based_lane_waypoint")) + if (!use_fms_ && auto_mission_change_ && isEventFlagTrue("received_based_lane_waypoint")) { tryNextState("request_mission_change"); } @@ -173,7 +173,7 @@ void DecisionMakerNode::updateDrivingMissionChangeState(cstring_t& state_name, i void DecisionMakerNode::updateMissionChangeSucceededState(cstring_t& state_name, int status) { - if (!use_management_system_) + if (!use_fms_) { sleep(1); tryNextState("return_to_driving"); @@ -181,7 +181,7 @@ void DecisionMakerNode::updateMissionChangeSucceededState(cstring_t& state_name, } void DecisionMakerNode::updateMissionChangeFailedState(cstring_t& state_name, int status) { - if (!use_management_system_) + if (!use_fms_) { sleep(1); tryNextState("return_to_driving"); @@ -194,7 +194,7 @@ void DecisionMakerNode::entryMissionCompleteState(cstring_t& state_name, int sta } void DecisionMakerNode::updateMissionCompleteState(cstring_t& state_name, int status) { - if (!use_management_system_) + if (!use_fms_) { if (auto_mission_reload_) { diff --git a/ros/src/msgs/autoware_config_msgs/msg/ConfigDecisionMaker.msg b/ros/src/msgs/autoware_config_msgs/msg/ConfigDecisionMaker.msg index 7093b069a80..96a933e35c9 100644 --- a/ros/src/msgs/autoware_config_msgs/msg/ConfigDecisionMaker.msg +++ b/ros/src/msgs/autoware_config_msgs/msg/ConfigDecisionMaker.msg @@ -2,7 +2,7 @@ Header header bool auto_mission_reload bool auto_engage bool auto_mission_change -bool use_management_system +bool use_fms bool disuse_vector_map uint32 num_of_steer_behind float64 change_threshold_dist diff --git a/ros/src/util/packages/runtime_manager/scripts/computing.yaml b/ros/src/util/packages/runtime_manager/scripts/computing.yaml index 5782a5b5e65..fccc925bb7a 100755 --- a/ros/src/util/packages/runtime_manager/scripts/computing.yaml +++ b/ros/src/util/packages/runtime_manager/scripts/computing.yaml @@ -726,16 +726,16 @@ subs : gui : dialog_width : 400 dialog_height : 600 - use_management_system: + use_fms: flags : [ nl ] auto_mission_reload: - depend : use_management_system + depend : use_fms depend_bool : 'lambda v : v == 0' auto_engage: - depend : use_management_system + depend : use_fms depend_bool : 'lambda v : v == 0' auto_mission_change: - depend : use_management_system + depend : use_fms depend_bool : 'lambda v : v == 0' @@ -2020,9 +2020,9 @@ params : cmd_param : dash : '' delim: ':=' - - name : use_management_system + - name : use_fms desc : If this is disbled, part of state transitions are automatically executed. - label : use_management_system + label : use_fms kind : checkbox v : False cmd_param : From 891116ccccb1983c76a006f3ac6c722466960f29 Mon Sep 17 00:00:00 2001 From: Azumi SUZUKI Date: Tue, 5 Feb 2019 11:12:59 +0900 Subject: [PATCH 114/139] add test of decision_maker --- .../packages/decision_maker/CMakeLists.txt | 20 ++ .../include/decision_maker_node.hpp | 1 + .../decision_maker/test/src/test_main.cpp | 18 +- .../test/src/test_node_decision.cpp | 109 ++++---- .../test/src/test_node_state_drive.cpp | 259 +++++++++++------- 5 files changed, 259 insertions(+), 148 deletions(-) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/CMakeLists.txt b/ros/src/computing/planning/decision/packages/decision_maker/CMakeLists.txt index cf16517036c..56c9807cd19 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/CMakeLists.txt +++ b/ros/src/computing/planning/decision/packages/decision_maker/CMakeLists.txt @@ -81,3 +81,23 @@ install(DIRECTORY include/${PROJECT_NAME}/ DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} PATTERN ".svn" EXCLUDE ) + +if(CATKIN_ENABLE_TESTING) + find_package(rostest REQUIRED) + add_rostest_gtest(test-decision_maker + test/test_decision_maker.test + test/src/test_main.cpp + test/src/test_node_decision.cpp + test/src/test_node_state_drive.cpp + nodes/decision_maker/decision_maker_node_core.cpp + nodes/decision_maker/decision_maker_node_decision.cpp + nodes/decision_maker/decision_maker_node_init.cpp + nodes/decision_maker/decision_maker_node_callback.cpp + nodes/decision_maker/decision_maker_node_state_vehicle.cpp + nodes/decision_maker/decision_maker_node_state_drive.cpp + nodes/decision_maker/decision_maker_node_state_mission.cpp + nodes/decision_maker/decision_maker_node_publish.cpp + nodes/decision_maker/cross_road_area.cpp) + add_dependencies(test-decision_maker ${catkin_EXPORTED_TARGETS}) + target_link_libraries(test-decision_maker ${catkin_LIBRARIES} ${vector_map_LIBRARIES}) +endif() diff --git a/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp b/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp index 92aa312be93..ad30b150029 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp @@ -112,6 +112,7 @@ struct AutowareStatus class DecisionMakerNode { + friend class TestSuite; private: ros::NodeHandle nh_; ros::NodeHandle private_nh_; diff --git a/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_main.cpp b/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_main.cpp index 0b712f60400..984c288ffcf 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_main.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_main.cpp @@ -14,17 +14,19 @@ * limitations under the License. */ -#include #include +#include -class TestSuite : public ::testing::Test { +class TestSuite: public ::testing::Test { public: - TestSuite() {} - ~TestSuite() {} + TestSuite(){} + ~TestSuite(){} }; -int main(int argc, char **argv) { - testing::InitGoogleTest(&argc, argv); - ros::init(argc, argv, "DecisionMakerTestNode"); - return RUN_ALL_TESTS(); +int main(int argc, char **argv) +{ + testing::InitGoogleTest(&argc, argv); + ros::init(argc, argv, "DecisionMakerTestNode"); + // ros::NodeHandle nh_; + return RUN_ALL_TESTS(); } diff --git a/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_node_decision.cpp b/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_node_decision.cpp index c432a849b9a..95c27d8272a 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_node_decision.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_node_decision.cpp @@ -14,80 +14,97 @@ * limitations under the License. */ -#include #include +#include -#include "amathutils_lib/amathutils.hpp" #include "decision_maker_node.hpp" +#include "amathutils_lib/amathutils.hpp" -#include "test_class.hpp" - -namespace decision_maker { +namespace decision_maker +{ class TestSuite : public ::testing::Test { public: - TestSuite() {} - ~TestSuite() {} - - TestClass test_obj_; + TestSuite(){} + ~TestSuite(){} protected: - virtual void SetUp() { + virtual void SetUp() + { int argc; - char **argv; - test_obj_.dmn = new DecisionMakerNode(argc, argv); + char** argv; + dmn = new DecisionMakerNode(argc, argv); + }; + virtual void TearDown() + { + delete dmn; }; - virtual void TearDown() { delete test_obj_.dmn; }; -}; -TEST_F(TestSuite, isLocalizationConvergence) { - geometry_msgs::Point pointA, pointB; - pointA.x = 10.0; - pointA.y = 10.0; - pointA.z = 0.0; - pointB.x = 10.0; - pointB.y = 12.0; - pointB.z = 0.0; + DecisionMakerNode* dmn; - for (int i=0; i<10; i++) + void createFinalWaypoints() { - ASSERT_FALSE(test_obj_.isLocalizationConvergence(pointA)) << "It should be false"; + autoware_msgs::Lane final_lane; + for (int idx = 0; idx < 100; idx++) + { + static autoware_msgs::Waypoint wp; + wp.gid = idx; + wp.lid = idx; + wp.pose.pose.position.x = 0.0 + (double)idx; + wp.pose.pose.position.y = 0.0; + wp.pose.pose.position.z = 0.0; + wp.twist.twist.linear.x = 5.0; + wp.twist.twist.angular.z = 0.0; + + final_lane.waypoints.push_back(wp); + } + + dmn->current_status_.finalwaypoints = final_lane; } - ASSERT_TRUE(test_obj_.isLocalizationConvergence(pointA)) << "It should be true"; - for (int i=0; i<5; i++) + void setCurrentPose(double x, double y, double yaw) { - ASSERT_TRUE(test_obj_.isLocalizationConvergence(pointA)) << "It should be true"; - ASSERT_TRUE(test_obj_.isLocalizationConvergence(pointB)) << "It should be true"; + geometry_msgs::Pose current_pose; + current_pose.position.x = x; + current_pose.position.y = y; + tf::Quaternion quaternion = tf::createQuaternionFromRPY(0, 0, yaw); + quaternionTFToMsg(quaternion, current_pose.orientation); + + dmn->current_status_.pose = current_pose; } - ASSERT_TRUE(test_obj_.isLocalizationConvergence(pointA)) << "It should be true"; - pointB.y = 12.1; - ASSERT_FALSE(test_obj_.isLocalizationConvergence(pointB)) << "It should be true"; -} + void setCurrentVelocity(double vel) + { + dmn->current_status_.velocity = vel; + } + + bool isArrivedGoal() { return dmn->isArrivedGoal(); } +}; -TEST_F(TestSuite, isArrivedGoal) { - test_obj_.createFinalWaypoints(); +TEST_F(TestSuite, isArrivedGoal) +{ + createFinalWaypoints(); - test_obj_.setCurrentPose(100, 0, 0); - test_obj_.setCurrentVelocity(0.0); - ASSERT_TRUE(test_obj_.isArrivedGoal()) << "Current pose is outside the target range." + setCurrentPose(100, 0, 0); + setCurrentVelocity(0.0); + ASSERT_TRUE(isArrivedGoal()) << "Current pose is outside the target range." << "It should be true"; - test_obj_.setCurrentPose(100, 0, 0); - test_obj_.setCurrentVelocity(3.0); - ASSERT_FALSE(test_obj_.isArrivedGoal()) << "Current pose is inside the target range." + setCurrentPose(100, 0, 0); + setCurrentVelocity(3.0); + ASSERT_FALSE(isArrivedGoal()) << "Current pose is inside the target range." << "It should be false"; - test_obj_.setCurrentPose(90, 0, 0); - test_obj_.setCurrentVelocity(0.0); - ASSERT_FALSE(test_obj_.isArrivedGoal()) << "Current pose is inside the target range." + setCurrentPose(90, 0, 0); + setCurrentVelocity(0.0); + ASSERT_FALSE(isArrivedGoal()) << "Current pose is inside the target range." << "It should be false"; - test_obj_.setCurrentPose(90, 0, 0); - test_obj_.setCurrentVelocity(3.0); - ASSERT_FALSE(test_obj_.isArrivedGoal()) << "Current pose is inside the target range." + setCurrentPose(90, 0, 0); + setCurrentVelocity(3.0); + ASSERT_FALSE(isArrivedGoal()) << "Current pose is inside the target range." << "It should be false"; + } } // namespace decision_maker diff --git a/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_node_state_drive.cpp b/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_node_state_drive.cpp index 82c6f962b51..21467ec4e49 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_node_state_drive.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_node_state_drive.cpp @@ -14,121 +14,192 @@ * limitations under the License. */ -#include #include +#include -#include "amathutils_lib/amathutils.hpp" #include "decision_maker_node.hpp" +#include "amathutils_lib/amathutils.hpp" -#include "test_class.hpp" - -namespace decision_maker { +namespace decision_maker +{ class TestSuite : public ::testing::Test { public: - TestSuite() {} - ~TestSuite() {} - - TestClass test_obj_; + TestSuite(){} + ~TestSuite(){} protected: - virtual void SetUp() { + virtual void SetUp() + { int argc; - char **argv; - test_obj_.dmn = new DecisionMakerNode(argc, argv); + char** argv; + dmn = new DecisionMakerNode(argc, argv); + }; + virtual void TearDown() + { + delete dmn; }; - virtual void TearDown() { delete test_obj_.dmn; }; + + void createFinalWaypoints() + { + autoware_msgs::Lane final_lane; + for (int idx = 0; idx < 100; idx++) + { + static autoware_msgs::Waypoint wp; + wp.gid = idx; + wp.lid = idx; + wp.pose.pose.position.x = 0.0 + (double)idx; + wp.pose.pose.position.y = 0.0; + wp.pose.pose.position.z = 0.0; + wp.twist.twist.linear.x = 5.0; + wp.twist.twist.angular.z = 0.0; + + wp.wpstate.steering_state = autoware_msgs::WaypointState::STR_STRAIGHT; + wp.wpstate.stop_state = autoware_msgs::WaypointState::NULLSTATE; + wp.wpstate.event_state = autoware_msgs::WaypointState::TYPE_EVENT_NULL; + + final_lane.waypoints.push_back(wp); + } + + dmn->current_status_.finalwaypoints = final_lane; + } + + void setSteeringState(int index, uint8_t state) + { + dmn->current_status_.finalwaypoints.waypoints.at(index).wpstate.steering_state = state; + } + + void setEventState(int index, uint8_t state) + { + dmn->current_status_.finalwaypoints.waypoints.at(index).wpstate.event_state = state; + } + + void setStopState(int index, uint8_t state) + { + dmn->current_status_.finalwaypoints.waypoints.at(index).wpstate.stop_state = state; + } + + void setCurrentPose(double x, double y, double yaw) + { + geometry_msgs::Pose current_pose; + current_pose.position.x = x; + current_pose.position.y = y; + tf::Quaternion quaternion = tf::createQuaternionFromRPY(0, 0, yaw); + quaternionTFToMsg(quaternion, current_pose.orientation); + + dmn->current_status_.pose = current_pose; + } + + void setCurrentVelocity(double vel) + { + dmn->current_status_.velocity = vel; + } + + DecisionMakerNode* dmn; + uint8_t getSteeringStateFromWaypoint() { return dmn->getSteeringStateFromWaypoint(); } + uint8_t getEventStateFromWaypoint() { return dmn->getEventStateFromWaypoint(); } + std::pair getStopSignStateFromWaypoint() { return dmn->getStopSignStateFromWaypoint(); } }; -TEST_F(TestSuite, getSteeringStateFromWaypoint) { - test_obj_.createFinalWaypoints(); - ASSERT_EQ(test_obj_.getSteeringStateFromWaypoint(), - autoware_msgs::WaypointState::STR_STRAIGHT) - << "Could not get the expected state" - << "It should be " << autoware_msgs::WaypointState::STR_STRAIGHT; - - test_obj_.setSteeringState(20, autoware_msgs::WaypointState::STR_LEFT); - ASSERT_EQ(test_obj_.getSteeringStateFromWaypoint(), - autoware_msgs::WaypointState::STR_LEFT) - << "Could not get the expected state" - << "It should be " << autoware_msgs::WaypointState::STR_LEFT; - - test_obj_.setSteeringState(20, autoware_msgs::WaypointState::STR_RIGHT); - ASSERT_EQ(test_obj_.getSteeringStateFromWaypoint(), - autoware_msgs::WaypointState::STR_RIGHT) - << "Could not get the expected state" - << "It should be " << autoware_msgs::WaypointState::STR_RIGHT; +TEST_F(TestSuite, getSteeringStateFromWaypoint) +{ + createFinalWaypoints(); + ASSERT_EQ(getSteeringStateFromWaypoint(), autoware_msgs::WaypointState::STR_STRAIGHT) + << "Could not get the expected state" + << "It should be " + << autoware_msgs::WaypointState::STR_STRAIGHT; + + setSteeringState(20, autoware_msgs::WaypointState::STR_LEFT); + ASSERT_EQ(getSteeringStateFromWaypoint(), autoware_msgs::WaypointState::STR_LEFT) + << "Could not get the expected state" + << "It should be " + << autoware_msgs::WaypointState::STR_LEFT; + + setSteeringState(20, autoware_msgs::WaypointState::STR_RIGHT); + ASSERT_EQ(getSteeringStateFromWaypoint(), autoware_msgs::WaypointState::STR_RIGHT) + << "Could not get the expected state" + << "It should be " + << autoware_msgs::WaypointState::STR_RIGHT; } -TEST_F(TestSuite, getEventStateFromWaypoint) { - test_obj_.setCurrentPose(0, 0, 0); - - test_obj_.createFinalWaypoints(); - ASSERT_EQ(test_obj_.getEventStateFromWaypoint(), - autoware_msgs::WaypointState::TYPE_EVENT_NULL) - << "Could not get the expected state" - << "It should be " << autoware_msgs::WaypointState::TYPE_EVENT_NULL; - - test_obj_.setEventState(20, autoware_msgs::WaypointState::TYPE_EVENT_GOAL); - ASSERT_EQ(test_obj_.getEventStateFromWaypoint(), - autoware_msgs::WaypointState::TYPE_EVENT_GOAL) - << "Could not get the expected state" - << "It should be " << autoware_msgs::WaypointState::TYPE_EVENT_GOAL; - - test_obj_.setEventState(20, autoware_msgs::WaypointState::TYPE_EVENT_MIDDLE_GOAL); - ASSERT_EQ(test_obj_.getEventStateFromWaypoint(), - autoware_msgs::WaypointState::TYPE_EVENT_MIDDLE_GOAL) - << "Could not get the expected state" - << "It should be " - << autoware_msgs::WaypointState::TYPE_EVENT_MIDDLE_GOAL; - - test_obj_.setEventState(20, autoware_msgs::WaypointState::TYPE_EVENT_POSITION_STOP); - ASSERT_EQ(test_obj_.getEventStateFromWaypoint(), - autoware_msgs::WaypointState::TYPE_EVENT_POSITION_STOP) - << "Could not get the expected state" - << "It should be " - << autoware_msgs::WaypointState::TYPE_EVENT_POSITION_STOP; - - test_obj_.setEventState(20, autoware_msgs::WaypointState::TYPE_EVENT_BUS_STOP); - ASSERT_EQ(test_obj_.getEventStateFromWaypoint(), - autoware_msgs::WaypointState::TYPE_EVENT_BUS_STOP) - << "Could not get the expected state" - << "It should be " << autoware_msgs::WaypointState::TYPE_EVENT_BUS_STOP; - - test_obj_.setEventState(20, autoware_msgs::WaypointState::TYPE_EVENT_PARKING); - ASSERT_EQ(test_obj_.getEventStateFromWaypoint(), - autoware_msgs::WaypointState::TYPE_EVENT_PARKING) - << "Could not get the expected state" - << "It should be " << autoware_msgs::WaypointState::TYPE_EVENT_PARKING; +TEST_F(TestSuite, getEventStateFromWaypoint) +{ + setCurrentPose(0, 0, 0); + + createFinalWaypoints(); + ASSERT_EQ(getEventStateFromWaypoint(), autoware_msgs::WaypointState::TYPE_EVENT_NULL) + << "Could not get the expected state" + << "It should be " + << autoware_msgs::WaypointState::TYPE_EVENT_NULL; + + setEventState(20, autoware_msgs::WaypointState::TYPE_EVENT_GOAL); + ASSERT_EQ(getEventStateFromWaypoint(), autoware_msgs::WaypointState::TYPE_EVENT_GOAL) + << "Could not get the expected state" + << "It should be " + << autoware_msgs::WaypointState::TYPE_EVENT_GOAL; + + setEventState(20, autoware_msgs::WaypointState::TYPE_EVENT_MIDDLE_GOAL); + ASSERT_EQ(getEventStateFromWaypoint(), autoware_msgs::WaypointState::TYPE_EVENT_MIDDLE_GOAL) + << "Could not get the expected state" + << "It should be " + << autoware_msgs::WaypointState::TYPE_EVENT_MIDDLE_GOAL; + + setEventState(20, autoware_msgs::WaypointState::TYPE_EVENT_POSITION_STOP); + ASSERT_EQ(getEventStateFromWaypoint(), autoware_msgs::WaypointState::TYPE_EVENT_POSITION_STOP) + << "Could not get the expected state" + << "It should be " + << autoware_msgs::WaypointState::TYPE_EVENT_POSITION_STOP; + + setEventState(20, autoware_msgs::WaypointState::TYPE_EVENT_BUS_STOP); + ASSERT_EQ(getEventStateFromWaypoint(), autoware_msgs::WaypointState::TYPE_EVENT_BUS_STOP) + << "Could not get the expected state" + << "It should be " + << autoware_msgs::WaypointState::TYPE_EVENT_BUS_STOP; + + setEventState(20, autoware_msgs::WaypointState::TYPE_EVENT_PARKING); + ASSERT_EQ(getEventStateFromWaypoint(), autoware_msgs::WaypointState::TYPE_EVENT_PARKING) + << "Could not get the expected state" + << "It should be " + << autoware_msgs::WaypointState::TYPE_EVENT_PARKING; } -TEST_F(TestSuite, getStopSignStateFromWaypoint) { - test_obj_.setCurrentPose(0, 0, 0); - test_obj_.setCurrentVelocity(10.0); +TEST_F(TestSuite, getStopSignStateFromWaypoint) +{ + setCurrentPose(0, 0, 0); + setCurrentVelocity(10.0); - test_obj_.createFinalWaypoints(); - std::pair ret1 = test_obj_.getStopSignStateFromWaypoint(); + createFinalWaypoints(); + std::pair ret1 = getStopSignStateFromWaypoint(); ASSERT_EQ(ret1.first, autoware_msgs::WaypointState::NULLSTATE) - << "Could not get the expected state" - << "It should be " << autoware_msgs::WaypointState::NULLSTATE; - ASSERT_EQ(ret1.second, -1) << "Could not get the expected state" - << "It should be " << -1; - - test_obj_.setStopState(20, autoware_msgs::WaypointState::TYPE_STOPLINE); - std::pair ret2 = test_obj_.getStopSignStateFromWaypoint(); + << "Could not get the expected state" + << "It should be " + << autoware_msgs::WaypointState::NULLSTATE; + ASSERT_EQ(ret1.second, -1) + << "Could not get the expected state" + << "It should be " + << -1; + + setStopState(20, autoware_msgs::WaypointState::TYPE_STOPLINE); + std::pair ret2 = getStopSignStateFromWaypoint(); ASSERT_EQ(ret2.first, autoware_msgs::WaypointState::TYPE_STOPLINE) - << "Could not get the expected state" - << "It should be " << autoware_msgs::WaypointState::TYPE_STOPLINE; - ASSERT_EQ(ret2.second, 20) << "Could not get the expected state" - << "It should be " << 20; - - test_obj_.setStopState(20, autoware_msgs::WaypointState::TYPE_STOP); - std::pair ret3 = test_obj_.getStopSignStateFromWaypoint(); + << "Could not get the expected state" + << "It should be " + << autoware_msgs::WaypointState::TYPE_STOPLINE; + ASSERT_EQ(ret2.second, 20) + << "Could not get the expected state" + << "It should be " + << 20; + + setStopState(20, autoware_msgs::WaypointState::TYPE_STOP); + std::pair ret3 = getStopSignStateFromWaypoint(); ASSERT_EQ(ret3.first, autoware_msgs::WaypointState::TYPE_STOP) - << "Could not get the expected state" - << "It should be " << autoware_msgs::WaypointState::TYPE_STOP; - ASSERT_EQ(ret3.second, 20) << "Could not get the expected state" - << "It should be " << 20; + << "Could not get the expected state" + << "It should be " + << autoware_msgs::WaypointState::TYPE_STOP; + ASSERT_EQ(ret3.second, 20) + << "Could not get the expected state" + << "It should be " + << 20; } } // namespace decision_maker From 72f464487dbd714a1b62614f0c9664c38fe2c315 Mon Sep 17 00:00:00 2001 From: Azumi SUZUKI Date: Tue, 5 Feb 2019 11:14:46 +0900 Subject: [PATCH 115/139] fix bug in getEventStateFromWaypoint function --- .../nodes/decision_maker/decision_maker_node_state_drive.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp index b91a6159090..0bd4668547d 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp @@ -87,7 +87,7 @@ uint8_t DecisionMakerNode::getEventStateFromWaypoint(void) state = current_status_.finalwaypoints.waypoints.at(idx).wpstate.event_state; - if (state && distance >= distance_to_target) + if (state && (state != autoware_msgs::WaypointState::TYPE_EVENT_NULL || distance >= distance_to_target)) { break; } From 43af4fc24e100be533466bc8319117100739c103 Mon Sep 17 00:00:00 2001 From: Azumi SUZUKI Date: Tue, 5 Feb 2019 13:53:38 +0900 Subject: [PATCH 116/139] apply clang-format --- .../decision_maker/test/src/test_main.cpp | 16 +- .../test/src/test_node_decision.cpp | 39 ++-- .../test/src/test_node_state_drive.cpp | 181 ++++++++---------- 3 files changed, 103 insertions(+), 133 deletions(-) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_main.cpp b/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_main.cpp index 984c288ffcf..a42b677d712 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_main.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_main.cpp @@ -17,16 +17,14 @@ #include #include -class TestSuite: public ::testing::Test { +class TestSuite : public ::testing::Test { public: - TestSuite(){} - ~TestSuite(){} + TestSuite() {} + ~TestSuite() {} }; -int main(int argc, char **argv) -{ - testing::InitGoogleTest(&argc, argv); - ros::init(argc, argv, "DecisionMakerTestNode"); - // ros::NodeHandle nh_; - return RUN_ALL_TESTS(); +int main(int argc, char **argv) { + testing::InitGoogleTest(&argc, argv); + ros::init(argc, argv, "DecisionMakerTestNode"); + return RUN_ALL_TESTS(); } diff --git a/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_node_decision.cpp b/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_node_decision.cpp index 95c27d8272a..a802883f321 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_node_decision.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_node_decision.cpp @@ -17,36 +17,29 @@ #include #include -#include "decision_maker_node.hpp" #include "amathutils_lib/amathutils.hpp" +#include "decision_maker_node.hpp" -namespace decision_maker -{ +namespace decision_maker { class TestSuite : public ::testing::Test { public: - TestSuite(){} - ~TestSuite(){} + TestSuite() {} + ~TestSuite() {} protected: - virtual void SetUp() - { + virtual void SetUp() { int argc; - char** argv; + char **argv; dmn = new DecisionMakerNode(argc, argv); }; - virtual void TearDown() - { - delete dmn; - }; + virtual void TearDown() { delete dmn; }; - DecisionMakerNode* dmn; + DecisionMakerNode *dmn; - void createFinalWaypoints() - { + void createFinalWaypoints() { autoware_msgs::Lane final_lane; - for (int idx = 0; idx < 100; idx++) - { + for (int idx = 0; idx < 100; idx++) { static autoware_msgs::Waypoint wp; wp.gid = idx; wp.lid = idx; @@ -62,8 +55,7 @@ class TestSuite : public ::testing::Test { dmn->current_status_.finalwaypoints = final_lane; } - void setCurrentPose(double x, double y, double yaw) - { + void setCurrentPose(double x, double y, double yaw) { geometry_msgs::Pose current_pose; current_pose.position.x = x; current_pose.position.y = y; @@ -73,16 +65,12 @@ class TestSuite : public ::testing::Test { dmn->current_status_.pose = current_pose; } - void setCurrentVelocity(double vel) - { - dmn->current_status_.velocity = vel; - } + void setCurrentVelocity(double vel) { dmn->current_status_.velocity = vel; } bool isArrivedGoal() { return dmn->isArrivedGoal(); } }; -TEST_F(TestSuite, isArrivedGoal) -{ +TEST_F(TestSuite, isArrivedGoal) { createFinalWaypoints(); setCurrentPose(100, 0, 0); @@ -104,7 +92,6 @@ TEST_F(TestSuite, isArrivedGoal) setCurrentVelocity(3.0); ASSERT_FALSE(isArrivedGoal()) << "Current pose is inside the target range." << "It should be false"; - } } // namespace decision_maker diff --git a/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_node_state_drive.cpp b/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_node_state_drive.cpp index 21467ec4e49..57ea59c6e74 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_node_state_drive.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_node_state_drive.cpp @@ -17,34 +17,27 @@ #include #include -#include "decision_maker_node.hpp" #include "amathutils_lib/amathutils.hpp" +#include "decision_maker_node.hpp" -namespace decision_maker -{ +namespace decision_maker { class TestSuite : public ::testing::Test { public: - TestSuite(){} - ~TestSuite(){} + TestSuite() {} + ~TestSuite() {} protected: - virtual void SetUp() - { + virtual void SetUp() { int argc; - char** argv; + char **argv; dmn = new DecisionMakerNode(argc, argv); }; - virtual void TearDown() - { - delete dmn; - }; + virtual void TearDown() { delete dmn; }; - void createFinalWaypoints() - { + void createFinalWaypoints() { autoware_msgs::Lane final_lane; - for (int idx = 0; idx < 100; idx++) - { + for (int idx = 0; idx < 100; idx++) { static autoware_msgs::Waypoint wp; wp.gid = idx; wp.lid = idx; @@ -64,23 +57,22 @@ class TestSuite : public ::testing::Test { dmn->current_status_.finalwaypoints = final_lane; } - void setSteeringState(int index, uint8_t state) - { - dmn->current_status_.finalwaypoints.waypoints.at(index).wpstate.steering_state = state; + void setSteeringState(int index, uint8_t state) { + dmn->current_status_.finalwaypoints.waypoints.at(index) + .wpstate.steering_state = state; } - void setEventState(int index, uint8_t state) - { - dmn->current_status_.finalwaypoints.waypoints.at(index).wpstate.event_state = state; + void setEventState(int index, uint8_t state) { + dmn->current_status_.finalwaypoints.waypoints.at(index) + .wpstate.event_state = state; } - void setStopState(int index, uint8_t state) - { - dmn->current_status_.finalwaypoints.waypoints.at(index).wpstate.stop_state = state; + void setStopState(int index, uint8_t state) { + dmn->current_status_.finalwaypoints.waypoints.at(index).wpstate.stop_state = + state; } - void setCurrentPose(double x, double y, double yaw) - { + void setCurrentPose(double x, double y, double yaw) { geometry_msgs::Pose current_pose; current_pose.position.x = x; current_pose.position.y = y; @@ -90,116 +82,109 @@ class TestSuite : public ::testing::Test { dmn->current_status_.pose = current_pose; } - void setCurrentVelocity(double vel) - { - dmn->current_status_.velocity = vel; - } + void setCurrentVelocity(double vel) { dmn->current_status_.velocity = vel; } - DecisionMakerNode* dmn; - uint8_t getSteeringStateFromWaypoint() { return dmn->getSteeringStateFromWaypoint(); } - uint8_t getEventStateFromWaypoint() { return dmn->getEventStateFromWaypoint(); } - std::pair getStopSignStateFromWaypoint() { return dmn->getStopSignStateFromWaypoint(); } + DecisionMakerNode *dmn; + uint8_t getSteeringStateFromWaypoint() { + return dmn->getSteeringStateFromWaypoint(); + } + uint8_t getEventStateFromWaypoint() { + return dmn->getEventStateFromWaypoint(); + } + std::pair getStopSignStateFromWaypoint() { + return dmn->getStopSignStateFromWaypoint(); + } }; -TEST_F(TestSuite, getSteeringStateFromWaypoint) -{ +TEST_F(TestSuite, getSteeringStateFromWaypoint) { createFinalWaypoints(); - ASSERT_EQ(getSteeringStateFromWaypoint(), autoware_msgs::WaypointState::STR_STRAIGHT) - << "Could not get the expected state" - << "It should be " - << autoware_msgs::WaypointState::STR_STRAIGHT; + ASSERT_EQ(getSteeringStateFromWaypoint(), + autoware_msgs::WaypointState::STR_STRAIGHT) + << "Could not get the expected state" + << "It should be " << autoware_msgs::WaypointState::STR_STRAIGHT; setSteeringState(20, autoware_msgs::WaypointState::STR_LEFT); - ASSERT_EQ(getSteeringStateFromWaypoint(), autoware_msgs::WaypointState::STR_LEFT) - << "Could not get the expected state" - << "It should be " - << autoware_msgs::WaypointState::STR_LEFT; + ASSERT_EQ(getSteeringStateFromWaypoint(), + autoware_msgs::WaypointState::STR_LEFT) + << "Could not get the expected state" + << "It should be " << autoware_msgs::WaypointState::STR_LEFT; setSteeringState(20, autoware_msgs::WaypointState::STR_RIGHT); - ASSERT_EQ(getSteeringStateFromWaypoint(), autoware_msgs::WaypointState::STR_RIGHT) - << "Could not get the expected state" - << "It should be " - << autoware_msgs::WaypointState::STR_RIGHT; + ASSERT_EQ(getSteeringStateFromWaypoint(), + autoware_msgs::WaypointState::STR_RIGHT) + << "Could not get the expected state" + << "It should be " << autoware_msgs::WaypointState::STR_RIGHT; } -TEST_F(TestSuite, getEventStateFromWaypoint) -{ +TEST_F(TestSuite, getEventStateFromWaypoint) { setCurrentPose(0, 0, 0); createFinalWaypoints(); - ASSERT_EQ(getEventStateFromWaypoint(), autoware_msgs::WaypointState::TYPE_EVENT_NULL) - << "Could not get the expected state" - << "It should be " - << autoware_msgs::WaypointState::TYPE_EVENT_NULL; + ASSERT_EQ(getEventStateFromWaypoint(), + autoware_msgs::WaypointState::TYPE_EVENT_NULL) + << "Could not get the expected state" + << "It should be " << autoware_msgs::WaypointState::TYPE_EVENT_NULL; setEventState(20, autoware_msgs::WaypointState::TYPE_EVENT_GOAL); - ASSERT_EQ(getEventStateFromWaypoint(), autoware_msgs::WaypointState::TYPE_EVENT_GOAL) - << "Could not get the expected state" - << "It should be " - << autoware_msgs::WaypointState::TYPE_EVENT_GOAL; + ASSERT_EQ(getEventStateFromWaypoint(), + autoware_msgs::WaypointState::TYPE_EVENT_GOAL) + << "Could not get the expected state" + << "It should be " << autoware_msgs::WaypointState::TYPE_EVENT_GOAL; setEventState(20, autoware_msgs::WaypointState::TYPE_EVENT_MIDDLE_GOAL); - ASSERT_EQ(getEventStateFromWaypoint(), autoware_msgs::WaypointState::TYPE_EVENT_MIDDLE_GOAL) - << "Could not get the expected state" - << "It should be " - << autoware_msgs::WaypointState::TYPE_EVENT_MIDDLE_GOAL; + ASSERT_EQ(getEventStateFromWaypoint(), + autoware_msgs::WaypointState::TYPE_EVENT_MIDDLE_GOAL) + << "Could not get the expected state" + << "It should be " + << autoware_msgs::WaypointState::TYPE_EVENT_MIDDLE_GOAL; setEventState(20, autoware_msgs::WaypointState::TYPE_EVENT_POSITION_STOP); - ASSERT_EQ(getEventStateFromWaypoint(), autoware_msgs::WaypointState::TYPE_EVENT_POSITION_STOP) - << "Could not get the expected state" - << "It should be " - << autoware_msgs::WaypointState::TYPE_EVENT_POSITION_STOP; + ASSERT_EQ(getEventStateFromWaypoint(), + autoware_msgs::WaypointState::TYPE_EVENT_POSITION_STOP) + << "Could not get the expected state" + << "It should be " + << autoware_msgs::WaypointState::TYPE_EVENT_POSITION_STOP; setEventState(20, autoware_msgs::WaypointState::TYPE_EVENT_BUS_STOP); - ASSERT_EQ(getEventStateFromWaypoint(), autoware_msgs::WaypointState::TYPE_EVENT_BUS_STOP) - << "Could not get the expected state" - << "It should be " - << autoware_msgs::WaypointState::TYPE_EVENT_BUS_STOP; + ASSERT_EQ(getEventStateFromWaypoint(), + autoware_msgs::WaypointState::TYPE_EVENT_BUS_STOP) + << "Could not get the expected state" + << "It should be " << autoware_msgs::WaypointState::TYPE_EVENT_BUS_STOP; setEventState(20, autoware_msgs::WaypointState::TYPE_EVENT_PARKING); - ASSERT_EQ(getEventStateFromWaypoint(), autoware_msgs::WaypointState::TYPE_EVENT_PARKING) - << "Could not get the expected state" - << "It should be " - << autoware_msgs::WaypointState::TYPE_EVENT_PARKING; + ASSERT_EQ(getEventStateFromWaypoint(), + autoware_msgs::WaypointState::TYPE_EVENT_PARKING) + << "Could not get the expected state" + << "It should be " << autoware_msgs::WaypointState::TYPE_EVENT_PARKING; } -TEST_F(TestSuite, getStopSignStateFromWaypoint) -{ +TEST_F(TestSuite, getStopSignStateFromWaypoint) { setCurrentPose(0, 0, 0); setCurrentVelocity(10.0); createFinalWaypoints(); std::pair ret1 = getStopSignStateFromWaypoint(); ASSERT_EQ(ret1.first, autoware_msgs::WaypointState::NULLSTATE) - << "Could not get the expected state" - << "It should be " - << autoware_msgs::WaypointState::NULLSTATE; - ASSERT_EQ(ret1.second, -1) - << "Could not get the expected state" - << "It should be " - << -1; + << "Could not get the expected state" + << "It should be " << autoware_msgs::WaypointState::NULLSTATE; + ASSERT_EQ(ret1.second, -1) << "Could not get the expected state" + << "It should be " << -1; setStopState(20, autoware_msgs::WaypointState::TYPE_STOPLINE); std::pair ret2 = getStopSignStateFromWaypoint(); ASSERT_EQ(ret2.first, autoware_msgs::WaypointState::TYPE_STOPLINE) - << "Could not get the expected state" - << "It should be " - << autoware_msgs::WaypointState::TYPE_STOPLINE; - ASSERT_EQ(ret2.second, 20) - << "Could not get the expected state" - << "It should be " - << 20; + << "Could not get the expected state" + << "It should be " << autoware_msgs::WaypointState::TYPE_STOPLINE; + ASSERT_EQ(ret2.second, 20) << "Could not get the expected state" + << "It should be " << 20; setStopState(20, autoware_msgs::WaypointState::TYPE_STOP); std::pair ret3 = getStopSignStateFromWaypoint(); ASSERT_EQ(ret3.first, autoware_msgs::WaypointState::TYPE_STOP) - << "Could not get the expected state" - << "It should be " - << autoware_msgs::WaypointState::TYPE_STOP; - ASSERT_EQ(ret3.second, 20) - << "Could not get the expected state" - << "It should be " - << 20; + << "Could not get the expected state" + << "It should be " << autoware_msgs::WaypointState::TYPE_STOP; + ASSERT_EQ(ret3.second, 20) << "Could not get the expected state" + << "It should be " << 20; } } // namespace decision_maker From 8531fc860500f0f43d259940e30e8688feb9689f Mon Sep 17 00:00:00 2001 From: sgermanserrano Date: Wed, 6 Feb 2019 12:21:53 +0000 Subject: [PATCH 117/139] Added dependencies --- .../decision/packages/decision_maker/CMakeLists.txt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/CMakeLists.txt b/ros/src/computing/planning/decision/packages/decision_maker/CMakeLists.txt index 56c9807cd19..b9aa8aeb085 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/CMakeLists.txt +++ b/ros/src/computing/planning/decision/packages/decision_maker/CMakeLists.txt @@ -67,8 +67,11 @@ add_executable(decision_maker_node nodes/decision_maker/decision_maker_node_publish.cpp nodes/decision_maker/cross_road_area.cpp ) -target_link_libraries(decision_maker_node ${catkin_LIBRARIES}) -add_dependencies(decision_maker_node ${catkin_EXPORTED_TARGETS}) +target_link_libraries(decision_maker_node + ${catkin_LIBRARIES} + ${vector_map_LIBRARIES} + ) +add_dependencies(decision_maker_node autoware_msgs_generate_msgs_cpp ${catkin_EXPORTED_TARGETS}) install(TARGETS decision_maker_node ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} From d518a32a592d7110338a326982f050f3123df28f Mon Sep 17 00:00:00 2001 From: sgermanserrano Date: Wed, 6 Feb 2019 12:22:29 +0000 Subject: [PATCH 118/139] Added TestClass --- .../include/decision_maker_node.hpp | 2 +- .../decision_maker/test/src/test_class.hpp | 2 - .../test/src/test_node_decision.cpp | 68 +++------- .../test/src/test_node_state_drive.cpp | 122 +++++------------- 4 files changed, 53 insertions(+), 141 deletions(-) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp b/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp index ad30b150029..2d1a2f51e39 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/include/decision_maker_node.hpp @@ -112,7 +112,7 @@ struct AutowareStatus class DecisionMakerNode { - friend class TestSuite; + friend class TestClass; private: ros::NodeHandle nh_; ros::NodeHandle private_nh_; diff --git a/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_class.hpp b/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_class.hpp index 1059409522d..699f695edc1 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_class.hpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_class.hpp @@ -73,8 +73,6 @@ class TestClass { void setCurrentVelocity(double vel) { dmn->current_status_.velocity = vel; } - bool isLocalizationConvergence(geometry_msgs::Point _current_point) { return dmn->isLocalizationConvergence(_current_point); } - bool isArrivedGoal() { return dmn->isArrivedGoal(); } uint8_t getSteeringStateFromWaypoint() { diff --git a/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_node_decision.cpp b/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_node_decision.cpp index a802883f321..ba7ccdf8d16 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_node_decision.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_node_decision.cpp @@ -20,6 +20,8 @@ #include "amathutils_lib/amathutils.hpp" #include "decision_maker_node.hpp" +#include "test_class.hpp" + namespace decision_maker { class TestSuite : public ::testing::Test { @@ -27,70 +29,38 @@ class TestSuite : public ::testing::Test { TestSuite() {} ~TestSuite() {} + TestClass test_obj_; + protected: virtual void SetUp() { int argc; char **argv; - dmn = new DecisionMakerNode(argc, argv); + test_obj_.dmn = new DecisionMakerNode(argc, argv); }; - virtual void TearDown() { delete dmn; }; - - DecisionMakerNode *dmn; - - void createFinalWaypoints() { - autoware_msgs::Lane final_lane; - for (int idx = 0; idx < 100; idx++) { - static autoware_msgs::Waypoint wp; - wp.gid = idx; - wp.lid = idx; - wp.pose.pose.position.x = 0.0 + (double)idx; - wp.pose.pose.position.y = 0.0; - wp.pose.pose.position.z = 0.0; - wp.twist.twist.linear.x = 5.0; - wp.twist.twist.angular.z = 0.0; - - final_lane.waypoints.push_back(wp); - } - - dmn->current_status_.finalwaypoints = final_lane; - } - - void setCurrentPose(double x, double y, double yaw) { - geometry_msgs::Pose current_pose; - current_pose.position.x = x; - current_pose.position.y = y; - tf::Quaternion quaternion = tf::createQuaternionFromRPY(0, 0, yaw); - quaternionTFToMsg(quaternion, current_pose.orientation); - - dmn->current_status_.pose = current_pose; - } - - void setCurrentVelocity(double vel) { dmn->current_status_.velocity = vel; } - - bool isArrivedGoal() { return dmn->isArrivedGoal(); } + virtual void TearDown() { delete test_obj_.dmn; }; }; TEST_F(TestSuite, isArrivedGoal) { - createFinalWaypoints(); + test_obj_.createFinalWaypoints(); - setCurrentPose(100, 0, 0); - setCurrentVelocity(0.0); - ASSERT_TRUE(isArrivedGoal()) << "Current pose is outside the target range." + test_obj_.setCurrentPose(100, 0, 0); + test_obj_.setCurrentVelocity(0.0); + ASSERT_TRUE(test_obj_.isArrivedGoal()) << "Current pose is outside the target range." << "It should be true"; - setCurrentPose(100, 0, 0); - setCurrentVelocity(3.0); - ASSERT_FALSE(isArrivedGoal()) << "Current pose is inside the target range." + test_obj_.setCurrentPose(100, 0, 0); + test_obj_.setCurrentVelocity(3.0); + ASSERT_FALSE(test_obj_.isArrivedGoal()) << "Current pose is inside the target range." << "It should be false"; - setCurrentPose(90, 0, 0); - setCurrentVelocity(0.0); - ASSERT_FALSE(isArrivedGoal()) << "Current pose is inside the target range." + test_obj_.setCurrentPose(90, 0, 0); + test_obj_.setCurrentVelocity(0.0); + ASSERT_FALSE(test_obj_.isArrivedGoal()) << "Current pose is inside the target range." << "It should be false"; - setCurrentPose(90, 0, 0); - setCurrentVelocity(3.0); - ASSERT_FALSE(isArrivedGoal()) << "Current pose is inside the target range." + test_obj_.setCurrentPose(90, 0, 0); + test_obj_.setCurrentVelocity(3.0); + ASSERT_FALSE(test_obj_.isArrivedGoal()) << "Current pose is inside the target range." << "It should be false"; } diff --git a/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_node_state_drive.cpp b/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_node_state_drive.cpp index 57ea59c6e74..d13606169c1 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_node_state_drive.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_node_state_drive.cpp @@ -20,6 +20,8 @@ #include "amathutils_lib/amathutils.hpp" #include "decision_maker_node.hpp" +#include "test_class.hpp" + namespace decision_maker { class TestSuite : public ::testing::Test { @@ -27,159 +29,101 @@ class TestSuite : public ::testing::Test { TestSuite() {} ~TestSuite() {} + TestClass test_obj_; + protected: virtual void SetUp() { int argc; char **argv; - dmn = new DecisionMakerNode(argc, argv); + test_obj_.dmn = new DecisionMakerNode(argc, argv); }; - virtual void TearDown() { delete dmn; }; - - void createFinalWaypoints() { - autoware_msgs::Lane final_lane; - for (int idx = 0; idx < 100; idx++) { - static autoware_msgs::Waypoint wp; - wp.gid = idx; - wp.lid = idx; - wp.pose.pose.position.x = 0.0 + (double)idx; - wp.pose.pose.position.y = 0.0; - wp.pose.pose.position.z = 0.0; - wp.twist.twist.linear.x = 5.0; - wp.twist.twist.angular.z = 0.0; - - wp.wpstate.steering_state = autoware_msgs::WaypointState::STR_STRAIGHT; - wp.wpstate.stop_state = autoware_msgs::WaypointState::NULLSTATE; - wp.wpstate.event_state = autoware_msgs::WaypointState::TYPE_EVENT_NULL; - - final_lane.waypoints.push_back(wp); - } - - dmn->current_status_.finalwaypoints = final_lane; - } - - void setSteeringState(int index, uint8_t state) { - dmn->current_status_.finalwaypoints.waypoints.at(index) - .wpstate.steering_state = state; - } - - void setEventState(int index, uint8_t state) { - dmn->current_status_.finalwaypoints.waypoints.at(index) - .wpstate.event_state = state; - } - - void setStopState(int index, uint8_t state) { - dmn->current_status_.finalwaypoints.waypoints.at(index).wpstate.stop_state = - state; - } - - void setCurrentPose(double x, double y, double yaw) { - geometry_msgs::Pose current_pose; - current_pose.position.x = x; - current_pose.position.y = y; - tf::Quaternion quaternion = tf::createQuaternionFromRPY(0, 0, yaw); - quaternionTFToMsg(quaternion, current_pose.orientation); - - dmn->current_status_.pose = current_pose; - } - - void setCurrentVelocity(double vel) { dmn->current_status_.velocity = vel; } - - DecisionMakerNode *dmn; - uint8_t getSteeringStateFromWaypoint() { - return dmn->getSteeringStateFromWaypoint(); - } - uint8_t getEventStateFromWaypoint() { - return dmn->getEventStateFromWaypoint(); - } - std::pair getStopSignStateFromWaypoint() { - return dmn->getStopSignStateFromWaypoint(); - } + virtual void TearDown() { delete test_obj_.dmn; }; }; TEST_F(TestSuite, getSteeringStateFromWaypoint) { - createFinalWaypoints(); - ASSERT_EQ(getSteeringStateFromWaypoint(), + test_obj_.createFinalWaypoints(); + ASSERT_EQ(test_obj_.getSteeringStateFromWaypoint(), autoware_msgs::WaypointState::STR_STRAIGHT) << "Could not get the expected state" << "It should be " << autoware_msgs::WaypointState::STR_STRAIGHT; - setSteeringState(20, autoware_msgs::WaypointState::STR_LEFT); - ASSERT_EQ(getSteeringStateFromWaypoint(), + test_obj_.setSteeringState(20, autoware_msgs::WaypointState::STR_LEFT); + ASSERT_EQ(test_obj_.getSteeringStateFromWaypoint(), autoware_msgs::WaypointState::STR_LEFT) << "Could not get the expected state" << "It should be " << autoware_msgs::WaypointState::STR_LEFT; - setSteeringState(20, autoware_msgs::WaypointState::STR_RIGHT); - ASSERT_EQ(getSteeringStateFromWaypoint(), + test_obj_.setSteeringState(20, autoware_msgs::WaypointState::STR_RIGHT); + ASSERT_EQ(test_obj_.getSteeringStateFromWaypoint(), autoware_msgs::WaypointState::STR_RIGHT) << "Could not get the expected state" << "It should be " << autoware_msgs::WaypointState::STR_RIGHT; } TEST_F(TestSuite, getEventStateFromWaypoint) { - setCurrentPose(0, 0, 0); + test_obj_.setCurrentPose(0, 0, 0); - createFinalWaypoints(); - ASSERT_EQ(getEventStateFromWaypoint(), + test_obj_.createFinalWaypoints(); + ASSERT_EQ(test_obj_.getEventStateFromWaypoint(), autoware_msgs::WaypointState::TYPE_EVENT_NULL) << "Could not get the expected state" << "It should be " << autoware_msgs::WaypointState::TYPE_EVENT_NULL; - setEventState(20, autoware_msgs::WaypointState::TYPE_EVENT_GOAL); - ASSERT_EQ(getEventStateFromWaypoint(), + test_obj_.setEventState(20, autoware_msgs::WaypointState::TYPE_EVENT_GOAL); + ASSERT_EQ(test_obj_.getEventStateFromWaypoint(), autoware_msgs::WaypointState::TYPE_EVENT_GOAL) << "Could not get the expected state" << "It should be " << autoware_msgs::WaypointState::TYPE_EVENT_GOAL; - setEventState(20, autoware_msgs::WaypointState::TYPE_EVENT_MIDDLE_GOAL); - ASSERT_EQ(getEventStateFromWaypoint(), + test_obj_.setEventState(20, autoware_msgs::WaypointState::TYPE_EVENT_MIDDLE_GOAL); + ASSERT_EQ(test_obj_.getEventStateFromWaypoint(), autoware_msgs::WaypointState::TYPE_EVENT_MIDDLE_GOAL) << "Could not get the expected state" << "It should be " << autoware_msgs::WaypointState::TYPE_EVENT_MIDDLE_GOAL; - setEventState(20, autoware_msgs::WaypointState::TYPE_EVENT_POSITION_STOP); - ASSERT_EQ(getEventStateFromWaypoint(), + test_obj_.setEventState(20, autoware_msgs::WaypointState::TYPE_EVENT_POSITION_STOP); + ASSERT_EQ(test_obj_.getEventStateFromWaypoint(), autoware_msgs::WaypointState::TYPE_EVENT_POSITION_STOP) << "Could not get the expected state" << "It should be " << autoware_msgs::WaypointState::TYPE_EVENT_POSITION_STOP; - setEventState(20, autoware_msgs::WaypointState::TYPE_EVENT_BUS_STOP); - ASSERT_EQ(getEventStateFromWaypoint(), + test_obj_.setEventState(20, autoware_msgs::WaypointState::TYPE_EVENT_BUS_STOP); + ASSERT_EQ(test_obj_.getEventStateFromWaypoint(), autoware_msgs::WaypointState::TYPE_EVENT_BUS_STOP) << "Could not get the expected state" << "It should be " << autoware_msgs::WaypointState::TYPE_EVENT_BUS_STOP; - setEventState(20, autoware_msgs::WaypointState::TYPE_EVENT_PARKING); - ASSERT_EQ(getEventStateFromWaypoint(), + test_obj_.setEventState(20, autoware_msgs::WaypointState::TYPE_EVENT_PARKING); + ASSERT_EQ(test_obj_.getEventStateFromWaypoint(), autoware_msgs::WaypointState::TYPE_EVENT_PARKING) << "Could not get the expected state" << "It should be " << autoware_msgs::WaypointState::TYPE_EVENT_PARKING; } TEST_F(TestSuite, getStopSignStateFromWaypoint) { - setCurrentPose(0, 0, 0); - setCurrentVelocity(10.0); + test_obj_.setCurrentPose(0, 0, 0); + test_obj_.setCurrentVelocity(10.0); - createFinalWaypoints(); - std::pair ret1 = getStopSignStateFromWaypoint(); + test_obj_.createFinalWaypoints(); + std::pair ret1 = test_obj_.getStopSignStateFromWaypoint(); ASSERT_EQ(ret1.first, autoware_msgs::WaypointState::NULLSTATE) << "Could not get the expected state" << "It should be " << autoware_msgs::WaypointState::NULLSTATE; ASSERT_EQ(ret1.second, -1) << "Could not get the expected state" << "It should be " << -1; - setStopState(20, autoware_msgs::WaypointState::TYPE_STOPLINE); - std::pair ret2 = getStopSignStateFromWaypoint(); + test_obj_.setStopState(20, autoware_msgs::WaypointState::TYPE_STOPLINE); + std::pair ret2 = test_obj_.getStopSignStateFromWaypoint(); ASSERT_EQ(ret2.first, autoware_msgs::WaypointState::TYPE_STOPLINE) << "Could not get the expected state" << "It should be " << autoware_msgs::WaypointState::TYPE_STOPLINE; ASSERT_EQ(ret2.second, 20) << "Could not get the expected state" << "It should be " << 20; - setStopState(20, autoware_msgs::WaypointState::TYPE_STOP); - std::pair ret3 = getStopSignStateFromWaypoint(); + test_obj_.setStopState(20, autoware_msgs::WaypointState::TYPE_STOP); + std::pair ret3 = test_obj_.getStopSignStateFromWaypoint(); ASSERT_EQ(ret3.first, autoware_msgs::WaypointState::TYPE_STOP) << "Could not get the expected state" << "It should be " << autoware_msgs::WaypointState::TYPE_STOP; From ce9587b3a16737d96bcd988503b5a058199c2d11 Mon Sep 17 00:00:00 2001 From: Azumi SUZUKI Date: Fri, 15 Feb 2019 14:40:35 +0900 Subject: [PATCH 119/139] add License notices --- .../decision/packages/decision_maker/test/src/test_main.cpp | 2 +- .../packages/decision_maker/test/src/test_node_decision.cpp | 2 +- .../packages/decision_maker/test/src/test_node_state_drive.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_main.cpp b/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_main.cpp index a42b677d712..0b712f60400 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_main.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_main.cpp @@ -14,8 +14,8 @@ * limitations under the License. */ -#include #include +#include class TestSuite : public ::testing::Test { public: diff --git a/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_node_decision.cpp b/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_node_decision.cpp index ba7ccdf8d16..283f31bca36 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_node_decision.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_node_decision.cpp @@ -14,8 +14,8 @@ * limitations under the License. */ -#include #include +#include #include "amathutils_lib/amathutils.hpp" #include "decision_maker_node.hpp" diff --git a/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_node_state_drive.cpp b/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_node_state_drive.cpp index d13606169c1..82c6f962b51 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_node_state_drive.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_node_state_drive.cpp @@ -14,8 +14,8 @@ * limitations under the License. */ -#include #include +#include #include "amathutils_lib/amathutils.hpp" #include "decision_maker_node.hpp" From 0b182aff248f657c32d009559fee2762c2c36f9a Mon Sep 17 00:00:00 2001 From: Azumi SUZUKI Date: Fri, 15 Feb 2019 17:38:26 +0900 Subject: [PATCH 120/139] add test of inLocalizationConvergence and fix bug of the function --- .../decision_maker_node_decision.cpp | 2 +- .../decision_maker/test/src/test_class.hpp | 2 ++ .../test/src/test_node_decision.cpp | 26 +++++++++++++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_decision.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_decision.cpp index 5d5b7c1e360..aebef11ff05 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_decision.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_decision.cpp @@ -95,7 +95,7 @@ bool DecisionMakerNode::isLocalizationConvergence(const geometry_msgs::Point& _c { distances.erase(distances.begin()); distances_count--; - double avg_distances = std::accumulate(distances.begin(), distances.end(), 0) / distances.size(); + double avg_distances = std::accumulate(distances.begin(), distances.end(), 0.0) / (double)distances.size(); if (avg_distances <= 2) /*meter*/ { ret = true; diff --git a/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_class.hpp b/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_class.hpp index 699f695edc1..1059409522d 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_class.hpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_class.hpp @@ -73,6 +73,8 @@ class TestClass { void setCurrentVelocity(double vel) { dmn->current_status_.velocity = vel; } + bool isLocalizationConvergence(geometry_msgs::Point _current_point) { return dmn->isLocalizationConvergence(_current_point); } + bool isArrivedGoal() { return dmn->isArrivedGoal(); } uint8_t getSteeringStateFromWaypoint() { diff --git a/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_node_decision.cpp b/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_node_decision.cpp index 283f31bca36..c432a849b9a 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_node_decision.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/test/src/test_node_decision.cpp @@ -40,6 +40,32 @@ class TestSuite : public ::testing::Test { virtual void TearDown() { delete test_obj_.dmn; }; }; +TEST_F(TestSuite, isLocalizationConvergence) { + geometry_msgs::Point pointA, pointB; + pointA.x = 10.0; + pointA.y = 10.0; + pointA.z = 0.0; + pointB.x = 10.0; + pointB.y = 12.0; + pointB.z = 0.0; + + for (int i=0; i<10; i++) + { + ASSERT_FALSE(test_obj_.isLocalizationConvergence(pointA)) << "It should be false"; + } + ASSERT_TRUE(test_obj_.isLocalizationConvergence(pointA)) << "It should be true"; + + for (int i=0; i<5; i++) + { + ASSERT_TRUE(test_obj_.isLocalizationConvergence(pointA)) << "It should be true"; + ASSERT_TRUE(test_obj_.isLocalizationConvergence(pointB)) << "It should be true"; + } + ASSERT_TRUE(test_obj_.isLocalizationConvergence(pointA)) << "It should be true"; + + pointB.y = 12.1; + ASSERT_FALSE(test_obj_.isLocalizationConvergence(pointB)) << "It should be true"; +} + TEST_F(TestSuite, isArrivedGoal) { test_obj_.createFinalWaypoints(); From 46dc15302e4dc6f413f4c91fe1fda17f2ed8f847 Mon Sep 17 00:00:00 2001 From: Azumi SUZUKI Date: Mon, 18 Feb 2019 19:42:25 +0900 Subject: [PATCH 121/139] change the directory of files for testing --- .../packages/lane_planner/include/lane_select_core.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ros/src/computing/planning/mission/packages/lane_planner/include/lane_select_core.h b/ros/src/computing/planning/mission/packages/lane_planner/include/lane_select_core.h index 0db8b3ce109..b155388ad38 100644 --- a/ros/src/computing/planning/mission/packages/lane_planner/include/lane_select_core.h +++ b/ros/src/computing/planning/mission/packages/lane_planner/include/lane_select_core.h @@ -134,6 +134,12 @@ friend class LaneSelectTestClass; void updateChangeFlag(); void createLaneForChange(); int32_t getClosestLaneChangeWaypointNumber(const std::vector& wps, int32_t cl_wp); + + // spinOnce for test + void spinOnce() + { + ros::spinOnce(); + } }; int32_t getClosestWaypointNumber(const autoware_msgs::Lane& current_lane, const geometry_msgs::Pose& current_pose, From 21bccc978ac9f7bc0960c7a2b11c764392082a84 Mon Sep 17 00:00:00 2001 From: Azumi SUZUKI Date: Mon, 18 Feb 2019 19:48:20 +0900 Subject: [PATCH 122/139] add test of lane_select for the new function --- .../test/src/test_lane_select.cpp | 40 ++++----- .../test/src/test_lane_select.hpp | 83 +++++++++---------- 2 files changed, 62 insertions(+), 61 deletions(-) diff --git a/ros/src/computing/planning/mission/packages/lane_planner/test/src/test_lane_select.cpp b/ros/src/computing/planning/mission/packages/lane_planner/test/src/test_lane_select.cpp index 1a436889160..e188b7ba0ef 100644 --- a/ros/src/computing/planning/mission/packages/lane_planner/test/src/test_lane_select.cpp +++ b/ros/src/computing/planning/mission/packages/lane_planner/test/src/test_lane_select.cpp @@ -14,14 +14,16 @@ * limitations under the License. */ -#include #include +#include #include "test_lane_select.hpp" -namespace lane_planner { +namespace lane_planner +{ -class LaneSelectTestSuite : public ::testing::Test { +class LaneSelectTestSuite : public ::testing::Test +{ public: LaneSelectTestSuite() {} ~LaneSelectTestSuite() {} @@ -29,13 +31,19 @@ class LaneSelectTestSuite : public ::testing::Test { LaneSelectTestClass test_obj_; protected: - virtual void SetUp() { test_obj_.lsn = new LaneSelectNode(); }; - virtual void TearDown() { delete test_obj_.lsn; }; + virtual void SetUp() + { + test_obj_.lsn = new LaneSelectNode(); + }; + virtual void TearDown() + { + delete test_obj_.lsn; + }; }; -TEST_F(LaneSelectTestSuite, publishVehicleLocation) { - ASSERT_EQ(test_obj_.vehicle_location_sub.getNumPublishers(), 1U) - << "No publisher exist!"; +TEST_F(LaneSelectTestSuite, publishVehicleLocation) +{ + ASSERT_EQ(test_obj_.vehicle_location_sub.getNumPublishers(), 1U) << "No publisher exist!"; test_obj_.publishTrafficWaypointsArray(); test_obj_.publishCurrentPose(-0.5, 0.0, 0.0); @@ -46,13 +54,8 @@ TEST_F(LaneSelectTestSuite, publishVehicleLocation) { ros::WallDuration(0.1).sleep(); ros::spinOnce(); - ASSERT_EQ(0, test_obj_.cb_vehicle_location.waypoint_index) - << "Waypoint index does not match." - << "It should be -1"; - ASSERT_EQ(test_obj_.lane_array_id_, - test_obj_.cb_vehicle_location.lane_array_id) - << "LaneArray id does not match." - << "It should be " << test_obj_.lane_array_id_; + ASSERT_EQ(0, test_obj_.cb_vehicle_location.waypoint_index) << "Waypoint index does not match." << "It should be -1"; + ASSERT_EQ(test_obj_.lane_array_id_, test_obj_.cb_vehicle_location.lane_array_id) << "LaneArray id does not match." << "It should be " << test_obj_.lane_array_id_; test_obj_.publishCurrentPose(0.5, 0.0, 0.0); test_obj_.publishCurrentVelocity(0); @@ -62,14 +65,13 @@ TEST_F(LaneSelectTestSuite, publishVehicleLocation) { ros::WallDuration(0.1).sleep(); ros::spinOnce(); - ASSERT_EQ(1, test_obj_.cb_vehicle_location.waypoint_index) - << "Waypoint index does not match." - << "It should be 1"; + ASSERT_EQ(1, test_obj_.cb_vehicle_location.waypoint_index) << "Waypoint index does not match." << "It should be 1"; } } // namespace lane_planner -int main(int argc, char **argv) { +int main(int argc, char** argv) +{ testing::InitGoogleTest(&argc, argv); ros::init(argc, argv, "LaneSelectTestNode"); ros::NodeHandle nh; diff --git a/ros/src/computing/planning/mission/packages/lane_planner/test/src/test_lane_select.hpp b/ros/src/computing/planning/mission/packages/lane_planner/test/src/test_lane_select.hpp index e9329d953da..068110e8f02 100644 --- a/ros/src/computing/planning/mission/packages/lane_planner/test/src/test_lane_select.hpp +++ b/ros/src/computing/planning/mission/packages/lane_planner/test/src/test_lane_select.hpp @@ -14,86 +14,85 @@ * limitations under the License. */ -#include -#include -#include + #include + #include + #include -#include "lane_select_core.h" + #include "lane_select_core.h" -namespace lane_planner { +namespace lane_planner +{ class LaneSelectTestClass { public: - LaneSelectTestClass() {} + LaneSelectTestClass(){} - LaneSelectNode *lsn; + LaneSelectNode* lsn; autoware_msgs::VehicleLocation cb_vehicle_location; ros::NodeHandle nh; - ros::Publisher traffic_waypoints_array_pub = - nh.advertise("/traffic_waypoints_array", 0); - ros::Publisher current_pose_pub = - nh.advertise("/current_pose", 0); - ros::Publisher current_velocity_pub = - nh.advertise("/current_velocity", 0); - ros::Subscriber vehicle_location_sub = - nh.subscribe("/vehicle_location", 1, - &LaneSelectTestClass::vehicleLocationCallback, this); + ros::Publisher traffic_waypoints_array_pub = nh.advertise("/traffic_waypoints_array", 0); + ros::Publisher current_pose_pub = nh.advertise("/current_pose", 0); + ros::Publisher current_velocity_pub = nh.advertise("/current_velocity", 0); + ros::Subscriber vehicle_location_sub = nh.subscribe("/vehicle_location", 1, &LaneSelectTestClass::vehicleLocationCallback, this); int32_t lane_array_id_ = 6587651; - void accessPublishVehicleLocation(int32_t clst_wp, int32_t larray_id) { + void accessPublishVehicleLocation(int32_t clst_wp, int32_t larray_id) + { lsn->publishVehicleLocation(clst_wp, larray_id); } - void publishTrafficWaypointsArray() { + void publishTrafficWaypointsArray() + { autoware_msgs::LaneArray pub_msg; autoware_msgs::Lane pub_lane; for (int idx = 0; idx < 100; idx++) { - static autoware_msgs::Waypoint wp; - wp.gid = idx; - wp.lid = idx; - wp.pose.pose.position.x = 0.0 + (double)idx; - wp.pose.pose.position.y = 0.0; - wp.pose.pose.position.z = 0.0; - wp.twist.twist.linear.x = 5.0; - wp.twist.twist.angular.z = 0.0; - - tf::Quaternion quaternion = tf::createQuaternionFromRPY(0, 0, 0); - quaternionTFToMsg(quaternion, wp.pose.pose.orientation); - - pub_lane.waypoints.push_back(wp); - } + static autoware_msgs::Waypoint wp; + wp.gid = idx; + wp.lid = idx; + wp.pose.pose.position.x = 0.0 + (double)idx; + wp.pose.pose.position.y = 0.0; + wp.pose.pose.position.z = 0.0; + wp.twist.twist.linear.x = 5.0; + wp.twist.twist.angular.z = 0.0; + + tf::Quaternion quaternion = tf::createQuaternionFromRPY(0, 0, 0); + quaternionTFToMsg(quaternion, wp.pose.pose.orientation); + + pub_lane.waypoints.push_back(wp); + } pub_msg.lanes.push_back(pub_lane); pub_msg.id = lane_array_id_; traffic_waypoints_array_pub.publish(pub_msg); } - void publishCurrentPose(double x, double y, double yaw) { + void publishCurrentPose(double x, double y, double yaw) + { geometry_msgs::PoseStamped pose; pose.pose.position.x = x; pose.pose.position.y = y; - tf::Quaternion quaternion = tf::createQuaternionFromRPY(0, 0, yaw); - quaternionTFToMsg(quaternion, pose.pose.orientation); + tf::Quaternion quaternion = tf::createQuaternionFromRPY(0, 0, yaw); + quaternionTFToMsg(quaternion, pose.pose.orientation); current_pose_pub.publish(pose); } - void publishCurrentVelocity(double vel) { + void publishCurrentVelocity(double vel) + { geometry_msgs::TwistStamped twist; twist.twist.linear.x = vel; current_velocity_pub.publish(twist); } - void - vehicleLocationCallback(const autoware_msgs::VehicleLocationConstPtr &msg) { + void vehicleLocationCallback(const autoware_msgs::VehicleLocationConstPtr& msg) + { cb_vehicle_location = *msg; - std::cout << "vehicleLocationCallback: " - << cb_vehicle_location.waypoint_index << ", " - << cb_vehicle_location.lane_array_id << std::endl; + std::cout << "vehicleLocationCallback: " << cb_vehicle_location.waypoint_index << ", " << cb_vehicle_location.lane_array_id << std::endl; } - void lsnSpinOnce() { lsn->spinOnce(); } + void lsnSpinOnce(){ lsn->spinOnce(); } + }; } // namespace lane_planner From 04b5951297e9bf3d9c74d32737d2af3f63654d55 Mon Sep 17 00:00:00 2001 From: Azumi SUZUKI Date: Thu, 21 Feb 2019 19:16:58 +0900 Subject: [PATCH 123/139] apply clang-format --- .../test/src/test_lane_select.cpp | 40 +++++---- .../test/src/test_lane_select.hpp | 83 ++++++++++--------- 2 files changed, 61 insertions(+), 62 deletions(-) diff --git a/ros/src/computing/planning/mission/packages/lane_planner/test/src/test_lane_select.cpp b/ros/src/computing/planning/mission/packages/lane_planner/test/src/test_lane_select.cpp index e188b7ba0ef..1a436889160 100644 --- a/ros/src/computing/planning/mission/packages/lane_planner/test/src/test_lane_select.cpp +++ b/ros/src/computing/planning/mission/packages/lane_planner/test/src/test_lane_select.cpp @@ -14,16 +14,14 @@ * limitations under the License. */ -#include #include +#include #include "test_lane_select.hpp" -namespace lane_planner -{ +namespace lane_planner { -class LaneSelectTestSuite : public ::testing::Test -{ +class LaneSelectTestSuite : public ::testing::Test { public: LaneSelectTestSuite() {} ~LaneSelectTestSuite() {} @@ -31,19 +29,13 @@ class LaneSelectTestSuite : public ::testing::Test LaneSelectTestClass test_obj_; protected: - virtual void SetUp() - { - test_obj_.lsn = new LaneSelectNode(); - }; - virtual void TearDown() - { - delete test_obj_.lsn; - }; + virtual void SetUp() { test_obj_.lsn = new LaneSelectNode(); }; + virtual void TearDown() { delete test_obj_.lsn; }; }; -TEST_F(LaneSelectTestSuite, publishVehicleLocation) -{ - ASSERT_EQ(test_obj_.vehicle_location_sub.getNumPublishers(), 1U) << "No publisher exist!"; +TEST_F(LaneSelectTestSuite, publishVehicleLocation) { + ASSERT_EQ(test_obj_.vehicle_location_sub.getNumPublishers(), 1U) + << "No publisher exist!"; test_obj_.publishTrafficWaypointsArray(); test_obj_.publishCurrentPose(-0.5, 0.0, 0.0); @@ -54,8 +46,13 @@ TEST_F(LaneSelectTestSuite, publishVehicleLocation) ros::WallDuration(0.1).sleep(); ros::spinOnce(); - ASSERT_EQ(0, test_obj_.cb_vehicle_location.waypoint_index) << "Waypoint index does not match." << "It should be -1"; - ASSERT_EQ(test_obj_.lane_array_id_, test_obj_.cb_vehicle_location.lane_array_id) << "LaneArray id does not match." << "It should be " << test_obj_.lane_array_id_; + ASSERT_EQ(0, test_obj_.cb_vehicle_location.waypoint_index) + << "Waypoint index does not match." + << "It should be -1"; + ASSERT_EQ(test_obj_.lane_array_id_, + test_obj_.cb_vehicle_location.lane_array_id) + << "LaneArray id does not match." + << "It should be " << test_obj_.lane_array_id_; test_obj_.publishCurrentPose(0.5, 0.0, 0.0); test_obj_.publishCurrentVelocity(0); @@ -65,13 +62,14 @@ TEST_F(LaneSelectTestSuite, publishVehicleLocation) ros::WallDuration(0.1).sleep(); ros::spinOnce(); - ASSERT_EQ(1, test_obj_.cb_vehicle_location.waypoint_index) << "Waypoint index does not match." << "It should be 1"; + ASSERT_EQ(1, test_obj_.cb_vehicle_location.waypoint_index) + << "Waypoint index does not match." + << "It should be 1"; } } // namespace lane_planner -int main(int argc, char** argv) -{ +int main(int argc, char **argv) { testing::InitGoogleTest(&argc, argv); ros::init(argc, argv, "LaneSelectTestNode"); ros::NodeHandle nh; diff --git a/ros/src/computing/planning/mission/packages/lane_planner/test/src/test_lane_select.hpp b/ros/src/computing/planning/mission/packages/lane_planner/test/src/test_lane_select.hpp index 068110e8f02..e9329d953da 100644 --- a/ros/src/computing/planning/mission/packages/lane_planner/test/src/test_lane_select.hpp +++ b/ros/src/computing/planning/mission/packages/lane_planner/test/src/test_lane_select.hpp @@ -14,85 +14,86 @@ * limitations under the License. */ - #include - #include - #include +#include +#include +#include - #include "lane_select_core.h" +#include "lane_select_core.h" -namespace lane_planner -{ +namespace lane_planner { class LaneSelectTestClass { public: - LaneSelectTestClass(){} + LaneSelectTestClass() {} - LaneSelectNode* lsn; + LaneSelectNode *lsn; autoware_msgs::VehicleLocation cb_vehicle_location; ros::NodeHandle nh; - ros::Publisher traffic_waypoints_array_pub = nh.advertise("/traffic_waypoints_array", 0); - ros::Publisher current_pose_pub = nh.advertise("/current_pose", 0); - ros::Publisher current_velocity_pub = nh.advertise("/current_velocity", 0); - ros::Subscriber vehicle_location_sub = nh.subscribe("/vehicle_location", 1, &LaneSelectTestClass::vehicleLocationCallback, this); + ros::Publisher traffic_waypoints_array_pub = + nh.advertise("/traffic_waypoints_array", 0); + ros::Publisher current_pose_pub = + nh.advertise("/current_pose", 0); + ros::Publisher current_velocity_pub = + nh.advertise("/current_velocity", 0); + ros::Subscriber vehicle_location_sub = + nh.subscribe("/vehicle_location", 1, + &LaneSelectTestClass::vehicleLocationCallback, this); int32_t lane_array_id_ = 6587651; - void accessPublishVehicleLocation(int32_t clst_wp, int32_t larray_id) - { + void accessPublishVehicleLocation(int32_t clst_wp, int32_t larray_id) { lsn->publishVehicleLocation(clst_wp, larray_id); } - void publishTrafficWaypointsArray() - { + void publishTrafficWaypointsArray() { autoware_msgs::LaneArray pub_msg; autoware_msgs::Lane pub_lane; for (int idx = 0; idx < 100; idx++) { - static autoware_msgs::Waypoint wp; - wp.gid = idx; - wp.lid = idx; - wp.pose.pose.position.x = 0.0 + (double)idx; - wp.pose.pose.position.y = 0.0; - wp.pose.pose.position.z = 0.0; - wp.twist.twist.linear.x = 5.0; - wp.twist.twist.angular.z = 0.0; - - tf::Quaternion quaternion = tf::createQuaternionFromRPY(0, 0, 0); - quaternionTFToMsg(quaternion, wp.pose.pose.orientation); - - pub_lane.waypoints.push_back(wp); - } + static autoware_msgs::Waypoint wp; + wp.gid = idx; + wp.lid = idx; + wp.pose.pose.position.x = 0.0 + (double)idx; + wp.pose.pose.position.y = 0.0; + wp.pose.pose.position.z = 0.0; + wp.twist.twist.linear.x = 5.0; + wp.twist.twist.angular.z = 0.0; + + tf::Quaternion quaternion = tf::createQuaternionFromRPY(0, 0, 0); + quaternionTFToMsg(quaternion, wp.pose.pose.orientation); + + pub_lane.waypoints.push_back(wp); + } pub_msg.lanes.push_back(pub_lane); pub_msg.id = lane_array_id_; traffic_waypoints_array_pub.publish(pub_msg); } - void publishCurrentPose(double x, double y, double yaw) - { + void publishCurrentPose(double x, double y, double yaw) { geometry_msgs::PoseStamped pose; pose.pose.position.x = x; pose.pose.position.y = y; - tf::Quaternion quaternion = tf::createQuaternionFromRPY(0, 0, yaw); - quaternionTFToMsg(quaternion, pose.pose.orientation); + tf::Quaternion quaternion = tf::createQuaternionFromRPY(0, 0, yaw); + quaternionTFToMsg(quaternion, pose.pose.orientation); current_pose_pub.publish(pose); } - void publishCurrentVelocity(double vel) - { + void publishCurrentVelocity(double vel) { geometry_msgs::TwistStamped twist; twist.twist.linear.x = vel; current_velocity_pub.publish(twist); } - void vehicleLocationCallback(const autoware_msgs::VehicleLocationConstPtr& msg) - { + void + vehicleLocationCallback(const autoware_msgs::VehicleLocationConstPtr &msg) { cb_vehicle_location = *msg; - std::cout << "vehicleLocationCallback: " << cb_vehicle_location.waypoint_index << ", " << cb_vehicle_location.lane_array_id << std::endl; + std::cout << "vehicleLocationCallback: " + << cb_vehicle_location.waypoint_index << ", " + << cb_vehicle_location.lane_array_id << std::endl; } - void lsnSpinOnce(){ lsn->spinOnce(); } - + void lsnSpinOnce() { lsn->spinOnce(); } }; } // namespace lane_planner From 8af4913ef4943c187fa169c5f38898a6c270d6d9 Mon Sep 17 00:00:00 2001 From: Isamu Takagi Date: Thu, 21 Feb 2019 23:18:29 +0900 Subject: [PATCH 124/139] Add prototype of plugin file editor --- .../autoware_launcher/src/autoware_launcher/tool/editor.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py b/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py index 99f03a6551a..9e445dfaf2f 100644 --- a/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py +++ b/ros/src/util/packages/autoware_launcher/src/autoware_launcher/tool/editor.py @@ -154,4 +154,4 @@ def export_view(self): data = collections.OrderedDict() data["target"] = "args." + str(self.name.text()) data["widget"] = "basic." + PluginEditField.viewtypes[self.type.currentText()] - return data \ No newline at end of file + return data From 1fd980cab80558e172dd9de4aaf64014cb889d43 Mon Sep 17 00:00:00 2001 From: Azumi SUZUKI Date: Fri, 22 Feb 2019 16:53:02 +0900 Subject: [PATCH 125/139] add help text message --- .../decision_maker_node_state_mission.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_mission.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_mission.cpp index 4f8445a3680..e40fe418fee 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_mission.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_mission.cpp @@ -84,10 +84,20 @@ void DecisionMakerNode::entryMissionCheckState(cstring_t& state_name, int status } void DecisionMakerNode::updateMissionCheckState(cstring_t& state_name, int status) { + static bool publish_help_text = true; + if (isEventFlagTrue("received_finalwaypoints") && current_status_.closest_waypoint != -1) { tryNextState("mission_is_compatible"); } + else if(publish_help_text) + { + if (current_status_.closest_waypoint == -1) + publishOperatorHelpMessage("[ERROR]Couldn't received \"closest_waypoint\" or its value is -1."); + if (!isEventFlagTrue("received_finalwaypoints")) + publishOperatorHelpMessage("[ERROR]Couldn't received \"final_waypoints\"."); + publish_help_text = false; + } } void DecisionMakerNode::entryMissionAbortedState(cstring_t& state_name, int status) From fcc9880dd4f102f20bd0136d09d100202e97e6da Mon Sep 17 00:00:00 2001 From: Isamu Takagi Date: Tue, 26 Feb 2019 16:14:35 +0900 Subject: [PATCH 126/139] Support command line options --- ros/src/util/packages/autoware_launcher/scripts/main | 1 + 1 file changed, 1 insertion(+) diff --git a/ros/src/util/packages/autoware_launcher/scripts/main b/ros/src/util/packages/autoware_launcher/scripts/main index 7efb1b5ed47..d00692af767 100755 --- a/ros/src/util/packages/autoware_launcher/scripts/main +++ b/ros/src/util/packages/autoware_launcher/scripts/main @@ -16,6 +16,7 @@ args = parser.parse_args() loglevel = logging.INFO if not args.verbose else logging.DEBUG logging.basicConfig(level=loglevel, format="%(levelname)-5s: %(name)s: %(message)s") + server = AwLaunchServer(sys.argv) client = AwQtGuiClient(sys.argv, server) sys.exit(client.start(profile=args.profile, skin=args.skin)) From c527f76e71f3e02ce518ce1e7f707952b25671aa Mon Sep 17 00:00:00 2001 From: Azumi SUZUKI Date: Tue, 26 Feb 2019 18:17:24 +0900 Subject: [PATCH 127/139] update README.md --- .../planning/decision/packages/decision_maker/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ros/src/computing/planning/decision/packages/decision_maker/README.md b/ros/src/computing/planning/decision/packages/decision_maker/README.md index b90a3141ff2..b27fee2755d 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/README.md +++ b/ros/src/computing/planning/decision/packages/decision_maker/README.md @@ -34,7 +34,7 @@ Parameter|Type|Description state_vehicle_file_name|string|file that defines vehicle state transition state_mission_file_name|string|file that defines mission state transition state_drive_file_name|string|file that defines drive state transition -stopline_reset_count|int| +stopline_reset_count|int|This parameter is used if the vehicle stops at the stop line and moves backward without crossing the stop line. When the vehicle moves backward by this count of the waypoints, the stop line is recognized again. ## Subscribed topics From 129fcdcf8cd7ddf4560febaed82145038a923723 Mon Sep 17 00:00:00 2001 From: Isamu Takagi Date: Tue, 26 Feb 2019 19:03:33 +0900 Subject: [PATCH 128/139] Update gazebo simulator panel --- ros/src/util/packages/autoware_launcher/scripts/main | 1 - 1 file changed, 1 deletion(-) diff --git a/ros/src/util/packages/autoware_launcher/scripts/main b/ros/src/util/packages/autoware_launcher/scripts/main index d00692af767..7efb1b5ed47 100755 --- a/ros/src/util/packages/autoware_launcher/scripts/main +++ b/ros/src/util/packages/autoware_launcher/scripts/main @@ -16,7 +16,6 @@ args = parser.parse_args() loglevel = logging.INFO if not args.verbose else logging.DEBUG logging.basicConfig(level=loglevel, format="%(levelname)-5s: %(name)s: %(message)s") - server = AwLaunchServer(sys.argv) client = AwQtGuiClient(sys.argv, server) sys.exit(client.start(profile=args.profile, skin=args.skin)) From a9ffb12e239c7558a10dfe4cef811814539b8123 Mon Sep 17 00:00:00 2001 From: Isamu Takagi Date: Sun, 3 Mar 2019 16:52:21 +0900 Subject: [PATCH 129/139] Update the code for compatibility with python3 --- .../autoware_launcher/tests/test_plugins.py | 25 ++++++++----------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/ros/src/util/packages/autoware_launcher/tests/test_plugins.py b/ros/src/util/packages/autoware_launcher/tests/test_plugins.py index c441fa58872..871811ddb54 100644 --- a/ros/src/util/packages/autoware_launcher/tests/test_plugins.py +++ b/ros/src/util/packages/autoware_launcher/tests/test_plugins.py @@ -14,7 +14,7 @@ def test_plugin_type(): for frame in plugin.panel().frames: print(plugin.path() + " " + str(frame.target)) yield ok_, guimgr.widget(frame).validate_argtypes(fields, frame) - print("") + print() def test_plugin_field(): rospack = rospkg.RosPack() @@ -24,16 +24,13 @@ def test_plugin_field(): plugin = plugins.find(plugin_path) if plugin.isleaf(): result = regexp.match(plugin.rosxml()) - try: - path = rospack.get_path(result.group(1)) + result.group(2) - root = xtree.parse(path).getroot() - xmlargs = {child.attrib["name"] for child in root if child.tag == "arg"} - ymlargs = {arg.name for arg in plugin.args()} - print(plugin.path()) - yield ok_, (xmlargs == ymlargs) - print("") - if xmlargs != ymlargs: - print(ymlargs) - print(xmlargs) - except: - print(result.group(1) + " is not built") + path = rospack.get_path(result.group(1)) + result.group(2) + root = xtree.parse(path).getroot() + xmlargs = {child.attrib["name"] for child in root if child.tag == "arg"} + ymlargs = {arg.name for arg in plugin.args()} + print(plugin.path()) + yield ok_, (xmlargs == ymlargs) + print() + if xmlargs != ymlargs: + print(ymlargs) + print(xmlargs) From bc2884eb124cd9f218f241e22e829a74f1f0b171 Mon Sep 17 00:00:00 2001 From: dimethylether Date: Mon, 4 Mar 2019 12:32:28 +0900 Subject: [PATCH 130/139] updated plugin for lane_rule, lane_stop, and voxel_grid_filter --- .../plugins/leaf/lane_stop.xml | 30 ++++++++----------- 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/ros/src/util/packages/autoware_launcher/plugins/leaf/lane_stop.xml b/ros/src/util/packages/autoware_launcher/plugins/leaf/lane_stop.xml index 070517f7453..d19954f3ddb 100644 --- a/ros/src/util/packages/autoware_launcher/plugins/leaf/lane_stop.xml +++ b/ros/src/util/packages/autoware_launcher/plugins/leaf/lane_stop.xml @@ -1,29 +1,23 @@ - + - + - + - + + From 44954e50be007857ce6ccb2b5045cd20cde603dc Mon Sep 17 00:00:00 2001 From: dimethylether Date: Tue, 5 Mar 2019 04:40:05 -0600 Subject: [PATCH 131/139] added rebuild_decision_maker plugin for autoware_launcher --- .../plugins/node/decision.yaml | 3 +- .../plugins/refs/decision_maker.yaml | 28 +++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 ros/src/util/packages/autoware_launcher/plugins/refs/decision_maker.yaml diff --git a/ros/src/util/packages/autoware_launcher/plugins/node/decision.yaml b/ros/src/util/packages/autoware_launcher/plugins/node/decision.yaml index 1e14ed8a1e6..2888f9af24b 100644 --- a/ros/src/util/packages/autoware_launcher/plugins/node/decision.yaml +++ b/ros/src/util/packages/autoware_launcher/plugins/node/decision.yaml @@ -1,2 +1,3 @@ format: Autoware Launcher Plugin Version 0.1 -rules: [] \ No newline at end of file +rules: + - { name: decision_maker, plugin: refs/decision_maker } diff --git a/ros/src/util/packages/autoware_launcher/plugins/refs/decision_maker.yaml b/ros/src/util/packages/autoware_launcher/plugins/refs/decision_maker.yaml new file mode 100644 index 00000000000..35f89daf805 --- /dev/null +++ b/ros/src/util/packages/autoware_launcher/plugins/refs/decision_maker.yaml @@ -0,0 +1,28 @@ +format: Autoware Launcher Plugin Version 0.1 +rosxml: $(find decision_maker)/launch/decision_maker.launch +args: +- {name: auto_mission_reload, type: bool, default: false} +- {name: auto_engage, type: bool, default: false} +- {name: auto_mission_change, type: bool, default: false} +- {name: use_fms, type: bool, default: false} +- {name: disuse_vector_map, type: bool, default: false} +- {name: param_num_of_steer_behind, type: int, default: 30} +- {name: change_threshold_dist, type: real, default: 1.0} +- {name: change_threshold_angle, type: int, default: 15} +- {name: goal_threshold_dist, type: real, default: 3.0} +- {name: goal_threshold_vel, type: real, default: 0.1} +- {name: stopline_reset_count, type: int, default: 20} +panel: + widget: node.panel + frames: + - {target: args.auto_mission_reload, widget: basic.bool} + - {target: args.auto_engage, widget: basic.bool} + - {target: args.auto_mission_change, widget: basic.bool} + - {target: args.use_fms, widget: basic.bool} + - {target: args.disuse_vector_map, widget: basic.bool} + - {target: args.param_num_of_steer_behind, widget: basic.int} + - {target: args.change_threshold_dist, widget: basic.real} + - {target: args.change_threshold_angle, widget: basic.int} + - {target: args.goal_threshold_dist, widget: basic.real} + - {target: args.goal_threshold_vel, widget: basic.real} + - {target: args.stopline_reset_count, widget: basic.int} From e5086caa81dd1ab9482a981abed9e0126f88f1be Mon Sep 17 00:00:00 2001 From: Joshua Whitley Date: Wed, 8 May 2019 10:28:21 -0500 Subject: [PATCH 132/139] Applying peoria_internal_test patch. --- ros/run | 4 +- ros/src/.config/rviz/default.rviz | 76 +++++++++++-------- .../nodes/feat_proj/feat_proj.cpp | 2 +- .../region_tlr_mxnet/region_tlr_mxnet.cpp | 12 ++- .../decision_maker_node_callback.cpp | 5 +- .../decision_maker_node_state_drive.cpp | 31 ++++---- .../runtime_manager/scripts/computing.yaml | 2 +- 7 files changed, 80 insertions(+), 52 deletions(-) diff --git a/ros/run b/ros/run index 34c950eda52..5dd3adc6950 100755 --- a/ros/run +++ b/ros/run @@ -43,7 +43,7 @@ if [ "$?" == "0" ]; then fi # boot ros-master & health_checker -${TERMINAL} ${MASTER_DISPLAY_OPTION} ${OPTION_WORKING_DIR}=${MY_PATH} ${OPTION_COMMAND}="bash -c 'source ./install/setup.bash; roscore'"& +${TERMINAL} ${MASTER_DISPLAY_OPTION} ${OPTION_WORKING_DIR}=${MY_PATH} ${OPTION_COMMAND}="bash -c 'source ./devel/setup.bash; roscore'"& # boot runtime_manager -${TERMINAL} ${RUNMGR_DISPLAY_OPTION} ${OPTION_WORKING_DIR}=${MY_PATH} ${OPTION_COMMAND}="bash -c 'source ./install/setup.bash; rosrun runtime_manager runtime_manager_dialog.py'" \ No newline at end of file +${TERMINAL} ${RUNMGR_DISPLAY_OPTION} ${OPTION_WORKING_DIR}=${MY_PATH} ${OPTION_COMMAND}="bash -c 'source ./devel/setup.bash; rosrun runtime_manager runtime_manager_dialog.py'" diff --git a/ros/src/.config/rviz/default.rviz b/ros/src/.config/rviz/default.rviz index 078c92fd436..6f4dcded0b2 100644 --- a/ros/src/.config/rviz/default.rviz +++ b/ros/src/.config/rviz/default.rviz @@ -19,7 +19,7 @@ Panels: - /ERROR1 - /FATAL1 Splitter Ratio: 0.695804 - Tree Height: 1903 + Tree Height: 369 - Class: rviz/Selection Name: Selection - Class: rviz/Tool Properties @@ -39,6 +39,15 @@ Panels: Name: Time SyncMode: 0 SyncSource: Points Map + - Class: integrated_viewer/ImageViewerPlugin + Image topic: ----- + Lane topic: ----- + Name: ImageViewerPlugin + Point size: 3 + Point topic: ----- + Rect topic: ----- + - Class: autoware_rviz_debug/DecisionMakerPanel + Name: DecisionMakerPanel Visualization Manager: Class: "" Displays: @@ -65,13 +74,13 @@ Visualization Manager: Frame Timeout: 15 Frames: All Enabled: true - base_link: + map: Value: true - gps: + sim_base_link: Value: true - map: + sim_lidar: Value: true - velodyne: + world: Value: true Marker Scale: 5 Name: TF @@ -79,12 +88,11 @@ Visualization Manager: Show Axes: true Show Names: true Tree: - map: - base_link: - velodyne: - {} - gps: - {} + world: + map: + sim_base_link: + sim_lidar: + {} Update Interval: 0 Value: true - Alpha: 0.0500000007 @@ -122,6 +130,9 @@ Visualization Manager: Marker Topic: /vector_map Name: Vector Map Namespaces: + cross_road: true + cross_walk: true + road_sign: true signal: true stop_line: true white_line: true @@ -274,7 +285,6 @@ Visualization Manager: Crosswalk Detection: true Decelerate Detection: true Stop Detection: true - Stop Line: true Queue Size: 100 Value: true - Class: rviz/Marker @@ -311,11 +321,6 @@ Visualization Manager: Expand Link Details: false Expand Tree: false Link Tree Style: Links in Alphabetic Order - base_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true Name: Vehicle Model Robot Description: robot_description TF Prefix: "" @@ -491,7 +496,8 @@ Visualization Manager: top: 30 update interval: 0.0399999991 width: 80 - - Background Alpha: 0.800000012 + - Align Bottom: false + Background Alpha: 0.800000012 Background Color: 0; 0; 0 Class: jsk_rviz_plugin/OverlayText Enabled: true @@ -532,7 +538,8 @@ Visualization Manager: left: 128 top: 128 width: 640 - - Background Alpha: 0.800000012 + - Align Bottom: false + Background Alpha: 0.800000012 Background Color: 0; 0; 0 Class: jsk_rviz_plugin/OverlayText Enabled: true @@ -550,7 +557,8 @@ Visualization Manager: text size: 12 top: 0 width: 128 - - Background Alpha: 0.800000012 + - Align Bottom: false + Background Alpha: 0.800000012 Background Color: 0; 0; 0 Class: jsk_rviz_plugin/OverlayText Enabled: true @@ -568,7 +576,8 @@ Visualization Manager: text size: 12 top: 0 width: 128 - - Background Alpha: 0.800000012 + - Align Bottom: false + Background Alpha: 0.800000012 Background Color: 0; 0; 0 Class: jsk_rviz_plugin/OverlayText Enabled: true @@ -586,7 +595,8 @@ Visualization Manager: text size: 12 top: 0 width: 128 - - Background Alpha: 0.800000012 + - Align Bottom: false + Background Alpha: 0.800000012 Background Color: 0; 0; 0 Class: jsk_rviz_plugin/OverlayText Enabled: true @@ -636,7 +646,7 @@ Visualization Manager: Value: true Views: Current: - Angle: 0 + Angle: 0.0299999975 Class: rviz/TopDownOrtho Enable Stereo Rendering: Stereo Eye Separation: 0.0599999987 @@ -646,7 +656,7 @@ Visualization Manager: Invert Z Axis: false Name: Current View Near Clip Distance: 0.00999999978 - Scale: 19.7382278 + Scale: 13.4510489 Target Frame: base_link Value: TopDownOrtho (rviz) X: 0 @@ -655,14 +665,18 @@ Visualization Manager: Window Geometry: Camera: collapsed: false + DecisionMakerPanel: + collapsed: false Displays: - collapsed: true - Height: 2136 - Hide Left Dock: true - Hide Right Dock: false + collapsed: false + Height: 896 + Hide Left Dock: false + Hide Right Dock: true Image: collapsed: false - QMainWindow State: 000000ff00000000fd000000040000000000000454000007b0fc020000000efb0000001200530065006c0065006300740069006f006e00000001e10000009b0000006100fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afc00000028000007b00000000000fffffffaffffffff0100000003fb0000000a0049006d0061006700650000000000ffffffff0000005c00fffffffb0000000c00430061006d0065007200610000000000ffffffff0000006700fffffffb000000100044006900730070006c0061007900730000000000000001360000016a00fffffffb0000000a0049006d006100670065010000028e000000d20000000000000000fb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb000000120049006d006100670065005f0072006100770000000000ffffffff0000000000000000fb0000000c00430061006d006500720061000000024e000001710000000000000000fb000000120049006d00610067006500200052006100770100000421000000160000000000000000fb0000000a0049006d00610067006501000002f4000000cb0000000000000000fb0000000a0049006d006100670065010000056c0000026c00000000000000000000000100000163000007b0fc0200000003fb0000000a005600690065007700730100000028000007b0000000ad00fffffffb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000001200530065006c0065006300740069006f006e010000025a000000b20000000000000000000000020000073f000000a8fc0100000001fb0000000a00560069006500770073030000004e00000080000002e1000001970000000300000ebf0000005cfc0100000002fb0000000800540069006d0065010000000000000ebf0000030000fffffffb0000000800540069006d0065010000000000000450000000000000000000000d56000007b000000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 + ImageViewerPlugin: + collapsed: false + QMainWindow State: 000000ff00000000fd00000004000000000000021c000002f9fc020000000ffb0000001200530065006c0065006300740069006f006e00000001e10000009b0000006100fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afc00000028000001d0000001ad0100001dfa000000000100000004fb00000024004400650063006900730069006f006e004d0061006b0065007200500061006e0065006c0100000000ffffffff0000015000fffffffb0000000a0049006d0061006700650000000000ffffffff0000005c00fffffffb0000000c00430061006d0065007200610000000000ffffffff0000006700fffffffb000000100044006900730070006c0061007900730100000000000001360000016a00fffffffb0000000a0049006d006100670065010000028e000000d20000000000000000fb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb000000120049006d006100670065005f0072006100770000000000ffffffff0000000000000000fb0000000c00430061006d006500720061000000024e000001710000000000000000fb000000120049006d00610067006500200052006100770100000421000000160000000000000000fb0000000a0049006d00610067006501000002f4000000cb0000000000000000fb0000000a0049006d006100670065010000056c0000026c0000000000000000fb000000220049006d0061006700650056006900650077006500720050006c007500670069006e01000001fe000001230000008700ffffff000000010000010f000002f9fc0200000003fb0000000a005600690065007700730000000028000002f9000000ad00fffffffb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000001200530065006c0065006300740069006f006e010000025a000000b20000000000000000000000020000073f000000a8fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004bf0000003bfc0100000002fb0000000800540069006d00650100000000000004bf0000030000fffffffb0000000800540069006d006501000000000000045000000000000000000000029d000002f900000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 Selection: collapsed: false Time: @@ -670,7 +684,7 @@ Window Geometry: Tool Properties: collapsed: false Views: - collapsed: false - Width: 3775 + collapsed: true + Width: 1215 X: 65 Y: 24 diff --git a/ros/src/computing/perception/detection/trafficlight_recognizer/nodes/feat_proj/feat_proj.cpp b/ros/src/computing/perception/detection/trafficlight_recognizer/nodes/feat_proj/feat_proj.cpp index a07654eaf5b..112ae9a06da 100644 --- a/ros/src/computing/perception/detection/trafficlight_recognizer/nodes/feat_proj/feat_proj.cpp +++ b/ros/src/computing/perception/detection/trafficlight_recognizer/nodes/feat_proj/feat_proj.cpp @@ -217,7 +217,7 @@ Point3 transform(const Point3 &psrc, tf::StampedTransform &tfsource) bool project2(const Point3 &pt, int &u, int &v, bool useOpenGLCoord = false) { float nearPlane = 1.0; - float farPlane = 200.0; + float farPlane = 85.0; Point3 _pt = transform(pt, trf); float _u = _pt.x() * fx / _pt.z() + cx; float _v = _pt.y() * fy / _pt.z() + cy; diff --git a/ros/src/computing/perception/detection/trafficlight_recognizer/nodes/region_tlr_mxnet/region_tlr_mxnet.cpp b/ros/src/computing/perception/detection/trafficlight_recognizer/nodes/region_tlr_mxnet/region_tlr_mxnet.cpp index f56bec3bdfb..8f38f3b2a0a 100644 --- a/ros/src/computing/perception/detection/trafficlight_recognizer/nodes/region_tlr_mxnet/region_tlr_mxnet.cpp +++ b/ros/src/computing/perception/detection/trafficlight_recognizer/nodes/region_tlr_mxnet/region_tlr_mxnet.cpp @@ -105,7 +105,12 @@ void RegionTLRMxNetROSNode::ROISignalCallback(const autoware_msgs::Signals::Cons } // Publish recognition result as some topic format - PublishTrafficLight(contexts_); + if ( extracted_pos->Signals.size() == 0 ) + { + std::cout << "no signals in the image" << std::endl; + }else{ + PublishTrafficLight(contexts_); + } PublishString(contexts_); PublishMarkerArray(contexts_); PublishImage(contexts_); @@ -242,8 +247,11 @@ void RegionTLRMxNetROSNode::PublishTrafficLight(std::vector contexts) } // If state changes from previous one, publish it - if (topic.traffic_light != previous_state) + static ros::Time prev_time = ros::Time::now(); + double timeout = 10.0; //seconds + if (topic.traffic_light != previous_state || ros::Time::now() - prev_time > ros::Duration(timeout)) { + prev_time = ros::Time::now(); signal_state_publisher.publish(topic); previous_state = topic.traffic_light; } diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp index 252373e4bfb..d9901d8439b 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_callback.cpp @@ -166,8 +166,9 @@ void DecisionMakerNode::setWaypointState(autoware_msgs::LaneArray& lane_array) center_point.x = (bp.x * 2 + fp.x) / 3; center_point.y = (bp.y * 2 + fp.y) / 3; center_point.z = (bp.z + fp.z) / 2; - if (amathutils::isPointLeftFromLine(center_point, lane.waypoints.at(wp_idx).pose.pose.position, - lane.waypoints.at(wp_idx + 1).pose.pose.position) >= 0) +// if (amathutils::isPointLeftFromLine(center_point, lane.waypoints.at(wp_idx).pose.pose.position, +// lane.waypoints.at(wp_idx + 1).pose.pose.position) >= 0) + if(true) { center_point.x = (bp.x + fp.x) / 2; center_point.y = (bp.y + fp.y) / 2; diff --git a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp index 0bd4668547d..468fd7485c7 100644 --- a/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp +++ b/ros/src/computing/planning/decision/packages/decision_maker/nodes/decision_maker/decision_maker_node_state_drive.cpp @@ -340,21 +340,26 @@ void DecisionMakerNode::updateStoplineState(cstring_t& state_name, int status) publishStoplineWaypointIdx(current_status_.found_stopsign_idx); /* wait for clearing risk*/ - static bool timerflag = false; - static ros::Timer stopping_timer; +// static bool timerflag = false; +// static ros::Timer stopping_timer; - if (current_status_.velocity == 0.0 && !timerflag && (current_status_.obstacle_waypoint + current_status_.closest_waypoint) == current_status_.found_stopsign_idx) +// if (current_status_.velocity == 0.0 && !timerflag && (current_status_.obstacle_waypoint + current_status_.closest_waypoint) == current_status_.found_stopsign_idx) +// { + if (current_status_.velocity == 0.0 && (current_status_.obstacle_waypoint + current_status_.closest_waypoint) == current_status_.found_stopsign_idx) { - stopping_timer = nh_.createTimer(ros::Duration(0.5), - [&](const ros::TimerEvent&) { - timerflag = false; - current_status_.prev_stopped_wpidx = current_status_.found_stopsign_idx; - tryNextState("clear"); - /*if found risk, - * tryNextState("found_risk");*/ - }, - this, true); - timerflag = true; + + current_status_.prev_stopped_wpidx = current_status_.found_stopsign_idx; + +// stopping_timer = nh_.createTimer(ros::Duration(0.5), +// [&](const ros::TimerEvent&) { +// timerflag = false; +// current_status_.prev_stopped_wpidx = current_status_.found_stopsign_idx; +// tryNextState("clear"); +// /*if found risk, +// * tryNextState("found_risk");*/ +// }, +// this, true); +// timerflag = true; } } void DecisionMakerNode::exitStopState(cstring_t& state_name, int status) diff --git a/ros/src/util/packages/runtime_manager/scripts/computing.yaml b/ros/src/util/packages/runtime_manager/scripts/computing.yaml index fccc925bb7a..b0af4acf3ce 100755 --- a/ros/src/util/packages/runtime_manager/scripts/computing.yaml +++ b/ros/src/util/packages/runtime_manager/scripts/computing.yaml @@ -1765,7 +1765,7 @@ params : - name : velocity_change_limit desc : velocity_change_limit desc sample label : Velocity Change Limit (km/h) - min : 5 + min : 1 max : 40 v : 7.0 - name : temporal_waypoints_size From c9488463f528f07fa7bbf5cf7462dcf27f2b43a6 Mon Sep 17 00:00:00 2001 From: Joshua Whitley Date: Thu, 9 May 2019 15:02:24 -0500 Subject: [PATCH 133/139] Fixing waypoint_follower after rebasing and merging. --- .../nodes/twist_gate/twist_gate.cpp | 118 +----------------- .../nodes/wf_simulator/wf_simulator.cpp | 111 ++++++++-------- 2 files changed, 55 insertions(+), 174 deletions(-) diff --git a/ros/src/computing/planning/motion/packages/waypoint_follower/nodes/twist_gate/twist_gate.cpp b/ros/src/computing/planning/motion/packages/waypoint_follower/nodes/twist_gate/twist_gate.cpp index 3dc7d415629..e423a17db85 100644 --- a/ros/src/computing/planning/motion/packages/waypoint_follower/nodes/twist_gate/twist_gate.cpp +++ b/ros/src/computing/planning/motion/packages/waypoint_follower/nodes/twist_gate/twist_gate.cpp @@ -28,82 +28,9 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#include "autoware_msgs/ControlCommandStamped.h" -#include "autoware_msgs/RemoteCmd.h" -#include "autoware_msgs/VehicleCmd.h" - -#define CMD_GEAR_D 1 -#define CMD_GEAR_R 2 -#define CMD_GEAR_B 3 -#define CMD_GEAR_N 4 -#define CMD_GEAR_P 5 -#include "autoware_msgs/ControlCommandStamped.h" -#include "tablet_socket_msgs/gear_cmd.h" -#include "tablet_socket_msgs/mode_cmd.h" -class TwistGate -{ - using remote_msgs_t = autoware_msgs::RemoteCmd; - using vehicle_cmd_msg_t = autoware_msgs::VehicleCmd; - -public: - TwistGate(const ros::NodeHandle& nh, const ros::NodeHandle& private_nh); - ~TwistGate(); - -private: - void check_state(); - void watchdog_timer(); - void remote_cmd_callback(const remote_msgs_t::ConstPtr& input_msg); - void auto_cmd_twist_cmd_callback(const geometry_msgs::TwistStamped::ConstPtr& input_msg); - void mode_cmd_callback(const tablet_socket_msgs::mode_cmd::ConstPtr& input_msg); - void gear_cmd_callback(const tablet_socket_msgs::gear_cmd::ConstPtr& input_msg); - void accel_cmd_callback(const autoware_msgs::AccelCmd::ConstPtr& input_msg); - void steer_cmd_callback(const autoware_msgs::SteerCmd::ConstPtr& input_msg); - void brake_cmd_callback(const autoware_msgs::BrakeCmd::ConstPtr& input_msg); - void lamp_cmd_callback(const autoware_msgs::LampCmd::ConstPtr& input_msg); - void ctrl_cmd_callback(const autoware_msgs::ControlCommandStamped::ConstPtr& input_msg); - void state_callback(const std_msgs::StringConstPtr& input_msg); - - bool is_using_decisionmaker(); - void reset_vehicle_cmd_msg(); - - ros::NodeHandle nh_; - ros::NodeHandle private_nh_; - ros::Publisher emergency_stop_pub_; - ros::Publisher control_command_pub_; - ros::Publisher vehicle_cmd_pub_; - ros::Publisher state_cmd_pub_; - ros::Subscriber remote_cmd_sub_; - std::map auto_cmd_sub_stdmap_; - - vehicle_cmd_msg_t twist_gate_msg_; - std_msgs::Bool emergency_stop_msg_; - ros::Time remote_cmd_time_; - ros::Duration timeout_period_; - - std::thread watchdog_timer_thread_; - enum class CommandMode - { - AUTO = 1, - REMOTE = 2 - } command_mode_, - previous_command_mode_; - std_msgs::String command_mode_topic_; +#include "twist_gate.h" - bool is_state_drive_ = true; - // still send is true - bool send_emergency_cmd = false; -}; +#include TwistGate::TwistGate(const ros::NodeHandle& nh, const ros::NodeHandle& private_nh) : nh_(nh) @@ -189,7 +116,7 @@ void TwistGate::check_state() void TwistGate::watchdog_timer() { - while (1) + while (is_alive) { ros::Time now_time = ros::Time::now(); bool emergency_flag = false; @@ -281,7 +208,9 @@ void TwistGate::remote_cmd_callback(const remote_msgs_t::ConstPtr& input_msg) void TwistGate::auto_cmd_twist_cmd_callback(const geometry_msgs::TwistStamped::ConstPtr& input_msg) { - if (command_mode_ == CommandMode::AUTO) + node_status_pub_ptr_->NODE_ACTIVATE(); + node_status_pub_ptr_->CHECK_RATE("/topic/rate/twist_cmd/slow",8,5,1,"topic twist_cmd subscribe rate low."); + if(command_mode_ == CommandMode::AUTO) { twist_gate_msg_.header.frame_id = input_msg->header.frame_id; twist_gate_msg_.header.stamp = input_msg->header.stamp; @@ -416,38 +345,3 @@ void TwistGate::state_callback(const std_msgs::StringConstPtr& input_msg) } } } - -int main(int argc, char** argv) -{ - if (command_mode_ == CommandMode::AUTO) - { - // Set Parking Gear - if (input_msg->data.find("WaitOrder") != std::string::npos) - { - twist_gate_msg_.gear = CMD_GEAR_P; - } - // Set Drive Gear - else - { - twist_gate_msg_.gear = CMD_GEAR_D; - } - - // get drive state - if (input_msg->data.find("Drive\n") != std::string::npos && input_msg->data.find("VehicleReady\n") != std::string::npos) - { - is_state_drive_ = true; - } - else - { - is_state_drive_ = false; - } - vehicle_cmd_pub_.publish(twist_gate_msg_); - - // reset emergency flags - if (input_msg->data.find("VehicleReady") != std::string::npos) - { - emergency_stop_msg_.data = false; - send_emergency_cmd = false; - } - } -} diff --git a/ros/src/computing/planning/motion/packages/waypoint_follower/nodes/wf_simulator/wf_simulator.cpp b/ros/src/computing/planning/motion/packages/waypoint_follower/nodes/wf_simulator/wf_simulator.cpp index 69a6a17612a..7ced485d649 100644 --- a/ros/src/computing/planning/motion/packages/waypoint_follower/nodes/wf_simulator/wf_simulator.cpp +++ b/ros/src/computing/planning/motion/packages/waypoint_follower/nodes/wf_simulator/wf_simulator.cpp @@ -34,61 +34,67 @@ const std::string SIMULATION_FRAME = "sim_base_link"; const std::string LIDAR_FRAME = "sim_lidar"; const std::string MAP_FRAME = "map"; -geometry_msgs::Pose _initial_pose; -bool _initial_set = false; -bool _pose_set = false; -bool _waypoint_set = false; -bool _use_ctrl_cmd = false; -bool g_is_closest_waypoint_subscribed = false; -WayPoints _current_waypoints; -ros::Publisher g_odometry_publisher; -ros::Publisher g_velocity_publisher; -int32_t g_closest_waypoint = -1; -double g_position_error; -double g_angle_error; -double g_linear_acceleration = 0; -double g_steering_angle = 0; -double g_wheel_base_m = 2.7; +bool initial_set_ = false; +bool pose_set_ = false; +bool waypoint_set_ = false; +bool use_ctrl_cmd = false; +bool is_closest_waypoint_subscribed_ = false; + +geometry_msgs::Pose initial_pose_; +WayPoints current_waypoints_; +geometry_msgs::Twist current_velocity_; + +ros::Publisher odometry_publisher_; +ros::Publisher velocity_publisher_; + +int32_t closest_waypoint_ = -1; +double position_error_; +double angle_error_; +double linear_acceleration_ = 0; +double steering_angle_ = 0; +double lidar_height_ = 1.0; +double wheel_base_ = 2.7; constexpr int LOOP_RATE = 50; // 50Hz void CmdCallBack(const autoware_msgs::VehicleCmdConstPtr& msg, double accel_rate) { - if (_use_ctrl_cmd == true) + if (use_ctrl_cmd == true) { - g_linear_acceleration = msg->ctrl_cmd.linear_acceleration; - g_steering_angle = msg->ctrl_cmd.steering_angle; + linear_acceleration_ = msg->ctrl_cmd.linear_acceleration; + steering_angle_ = msg->ctrl_cmd.steering_angle; } else { static double previous_linear_velocity = 0; - if (_current_velocity.linear.x < msg->twist_cmd.twist.linear.x) + if (current_velocity_.linear.x < msg->twist_cmd.twist.linear.x) { - _current_velocity.linear.x = previous_linear_velocity + accel_rate / (double)LOOP_RATE; + current_velocity_.linear.x = previous_linear_velocity + accel_rate / (double)LOOP_RATE; - if (_current_velocity.linear.x > msg->twist_cmd.twist.linear.x) + if (current_velocity_.linear.x > msg->twist_cmd.twist.linear.x) { - _current_velocity.linear.x = msg->twist_cmd.twist.linear.x; + current_velocity_.linear.x = msg->twist_cmd.twist.linear.x; } } else { - _current_velocity.linear.x = previous_linear_velocity - accel_rate / (double)LOOP_RATE; + current_velocity_.linear.x = previous_linear_velocity - accel_rate / (double)LOOP_RATE; - if (_current_velocity.linear.x < msg->twist_cmd.twist.linear.x) + if (current_velocity_.linear.x < msg->twist_cmd.twist.linear.x) { - _current_velocity.linear.x = msg->twist_cmd.twist.linear.x; + current_velocity_.linear.x = msg->twist_cmd.twist.linear.x; } } - previous_linear_velocity = _current_velocity.linear.x; + previous_linear_velocity = current_velocity_.linear.x; - _current_velocity.angular.z = msg->twist_cmd.twist.angular.z; + current_velocity_.angular.z = msg->twist_cmd.twist.angular.z; - //_current_velocity = msg->twist; + //current_velocity_ = msg->twist; } } + void getTransformFromTF(const std::string parent_frame, const std::string child_frame, tf::StampedTransform& transform) { static tf::TransformListener listener; @@ -130,10 +136,8 @@ void callbackFromPoseStamped(const geometry_msgs::PoseStampedConstPtr& msg) void waypointCallback(const autoware_msgs::LaneConstPtr& msg) { - // _path_og.setPath(msg); - _current_waypoints.setPath(*msg); - _waypoint_set = true; - // ROS_INFO_STREAM("waypoint subscribed"); + current_waypoints_.setPath(*msg); + waypoint_set_ = true; } void callbackFromClosestWaypoint(const std_msgs::Int32ConstPtr& msg) @@ -144,11 +148,11 @@ void callbackFromClosestWaypoint(const std_msgs::Int32ConstPtr& msg) void updateVelocity() { - if (_use_ctrl_cmd == false) + if (use_ctrl_cmd == false) return; - _current_velocity.linear.x += g_linear_acceleration / (double)LOOP_RATE; - _current_velocity.angular.z = _current_velocity.linear.x * std::sin(g_steering_angle) / g_wheel_base_m; + current_velocity_.linear.x += linear_acceleration_ / (double)LOOP_RATE; + current_velocity_.angular.z = current_velocity_.linear.x * std::sin(steering_angle_) / wheel_base_; } void publishOdometry() @@ -169,21 +173,10 @@ void publishOdometry() pose_set_ = true; } - /*int closest_waypoint = getClosestWaypoint(_current_waypoints.getCurrentWaypoints(), pose); - if (closest_waypoint == -1) - { - ROS_INFO("cannot publish odometry because closest waypoint is -1."); - return; - } - else - { - pose.position.z = _current_waypoints.getWaypointPosition(closest_waypoint).z; - } -*/ if ( - _waypoint_set && g_is_closest_waypoint_subscribed) - pose.position.z = _current_waypoints.getWaypointPosition(g_closest_waypoint).z; - double vx = _current_velocity.linear.x; - double vth = _current_velocity.angular.z; + if (waypoint_set_ && is_closest_waypoint_subscribed_) + pose.position.z = current_waypoints_.getWaypointPosition(closest_waypoint_).z; + double vx = current_velocity_.linear.x; + double vth = current_velocity_.angular.z; current_time = ros::Time::now(); // compute odometry in a typical way given the velocities of the robot @@ -204,15 +197,6 @@ void publishOdometry() th += delta_th; pose.orientation = tf::createQuaternionMsgFromYaw(th); - // std::cout << "delta (x y th) : (" << delta_x << " " << delta_y << " " << - // delta_th << ")" << std::endl; - // std::cout << "current_velocity(linear.x angular.z) : (" << - // _current_velocity.linear.x << " " << - // _current_velocity.angular.z << ")"<< std::endl; - // std::cout << "current_pose : (" << pose.position.x << " " << - // pose.position.y<< " " << pose.position.z << " " << - // th << ")" << std::endl << std::endl; - // first, we'll publish the transform over tf geometry_msgs::TransformStamped odom_trans; odom_trans.header.stamp = current_time; @@ -273,9 +257,12 @@ int main(int argc, char** argv) private_nh.param("accel_rate", accel_rate, double(1.0)); ROS_INFO_STREAM("accel_rate : " << accel_rate); - private_nh.param("position_error", g_position_error, double(0.0)); - private_nh.param("angle_error", g_angle_error, double(0.0)); - nh.param("vehicle_info/wheel_base", g_wheel_base_m, double(2.7)); + private_nh.param("position_error", position_error_, double(0.0)); + private_nh.param("angle_error", angle_error_, double(0.0)); + private_nh.param("lidar_height", lidar_height_, double(1.0)); + private_nh.param("use_ctrl_cmd", use_ctrl_cmd, false); + + nh.param("vehicle_info/wheel_base", wheel_base_, double(2.7)); // publish topic odometry_publisher_ = nh.advertise("sim_pose", 10); From 9dc91d6ab458d14069b28c7214a2bb68025b1095 Mon Sep 17 00:00:00 2001 From: Joshua Whitley Date: Thu, 9 May 2019 16:01:36 -0500 Subject: [PATCH 134/139] Fixing merge/rebase bug in waypoint_loader. --- .../waypoint_loader/waypoint_loader_core.cpp | 26 +------------------ 1 file changed, 1 insertion(+), 25 deletions(-) diff --git a/ros/src/computing/planning/motion/packages/waypoint_maker/nodes/waypoint_loader/waypoint_loader_core.cpp b/ros/src/computing/planning/motion/packages/waypoint_maker/nodes/waypoint_loader/waypoint_loader_core.cpp index 8cad4ea57f6..1358c8c0e71 100644 --- a/ros/src/computing/planning/motion/packages/waypoint_maker/nodes/waypoint_loader/waypoint_loader_core.cpp +++ b/ros/src/computing/planning/motion/packages/waypoint_maker/nodes/waypoint_loader/waypoint_loader_core.cpp @@ -53,31 +53,7 @@ void WaypointLoaderNode::createLaneArray(const std::vector& paths, { autoware_msgs::Lane lane; createLaneWaypoint(el, &lane); - if (replanning_mode_) - { - replanner_.replanLaneWaypointVel(&lane); - } - lane_array->lanes.push_back(lane); - } -} - -void WaypointLoaderNode::saveLaneArray(const std::vector& paths, - const autoware_msgs::LaneArray& lane_array) -{ - unsigned long idx = 0; - for (const auto& file_path : paths) - { - std::ofstream ofs(file_path.c_str()); - ofs << "x,y,z,yaw,velocity,change_flag,steering_flag,accel_flag,stop_flag,event_flag" << std::endl; - for (const auto& el : lane_array.lanes[idx].waypoints) - { - ofs << std::fixed << std::setprecision(4) << el.pose.pose.position.x << "," << el.pose.pose.position.y << "," - << el.pose.pose.position.z << "," << tf::getYaw(el.pose.pose.orientation) << "," - << mps2kmph(el.twist.twist.linear.x) << "," << (int)el.change_flag << "," << (int)el.wpstate.steering_state - << "," << (int)el.wpstate.accel_state << "," << (int)el.wpstate.stop_state << "," - << (int)el.wpstate.event_state << std::endl; - } - idx++; + lane_array->lanes.emplace_back(lane); } } From fede3e82754cb4c6dbb1c335abfc8d2f368bc3a6 Mon Sep 17 00:00:00 2001 From: Joshua Whitley Date: Mon, 20 May 2019 13:31:41 -0500 Subject: [PATCH 135/139] Making tests/test_plugins.py match as/master. --- .../autoware_launcher/tests/test_plugins.py | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/ros/src/util/packages/autoware_launcher/tests/test_plugins.py b/ros/src/util/packages/autoware_launcher/tests/test_plugins.py index 871811ddb54..4663aa7b131 100644 --- a/ros/src/util/packages/autoware_launcher/tests/test_plugins.py +++ b/ros/src/util/packages/autoware_launcher/tests/test_plugins.py @@ -14,7 +14,7 @@ def test_plugin_type(): for frame in plugin.panel().frames: print(plugin.path() + " " + str(frame.target)) yield ok_, guimgr.widget(frame).validate_argtypes(fields, frame) - print() + print("") def test_plugin_field(): rospack = rospkg.RosPack() @@ -24,13 +24,16 @@ def test_plugin_field(): plugin = plugins.find(plugin_path) if plugin.isleaf(): result = regexp.match(plugin.rosxml()) - path = rospack.get_path(result.group(1)) + result.group(2) - root = xtree.parse(path).getroot() - xmlargs = {child.attrib["name"] for child in root if child.tag == "arg"} - ymlargs = {arg.name for arg in plugin.args()} - print(plugin.path()) - yield ok_, (xmlargs == ymlargs) - print() - if xmlargs != ymlargs: - print(ymlargs) - print(xmlargs) + try: + path = rospack.get_path(result.group(1)) + result.group(2) + root = xtree.parse(path).getroot() + xmlargs = {child.attrib["name"] for child in root if child.tag == "arg"} + ymlargs = {arg.name for arg in plugin.args()} + print(plugin.path()) + yield ok_, (xmlargs == ymlargs) + print("") + if xmlargs != ymlargs: + print(ymlargs) + print(xmlargs) + except: + print(result.group(1) + " is not built") \ No newline at end of file From a0f3d61b030b5560b897a7ca50a310e14d6b5fee Mon Sep 17 00:00:00 2001 From: Joshua Whitley Date: Mon, 20 May 2019 14:03:52 -0500 Subject: [PATCH 136/139] Fixing launch file which caused autoware_launcher to fail tests. --- .../autoware_launcher/plugins/leaf/lane_stop.xml | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/ros/src/util/packages/autoware_launcher/plugins/leaf/lane_stop.xml b/ros/src/util/packages/autoware_launcher/plugins/leaf/lane_stop.xml index d19954f3ddb..eae7132f7d0 100644 --- a/ros/src/util/packages/autoware_launcher/plugins/leaf/lane_stop.xml +++ b/ros/src/util/packages/autoware_launcher/plugins/leaf/lane_stop.xml @@ -1,13 +1,5 @@ - - - - - - - - @@ -17,7 +9,7 @@ seq: 0, stamp: {secs: 0, nsecs: 0}, frame_id: '' }, - manual_detection: $(arg manual_detection) + manual_detection: $(arg use_traffic_light_result) }'"/> From 764e123be125bef80999380ada6500a68622d8d3 Mon Sep 17 00:00:00 2001 From: Joshua Whitley Date: Wed, 22 May 2019 12:43:22 -0500 Subject: [PATCH 137/139] As/111 live traffic detector (#13) * Add plugin edit tool and update plugins * Update the code for compatibility with python3 * Skip test of unbuilt packages * Two other minor rebase fixes. * First pass at adding region_tlr_tensorflow and roi_pub. * Adding 1.13 to FindTensorFlow.cmake. * Removing FindCuDNN.cmake. Changing FindTensorFlow variables. * Adding proper Python folder structure. * Adding new nodes to interface.yaml. * Minor formatting fix. * Making encoding in roi_pub type-specific. * Fixing roi_pub for images with rggb8 format. * Launch file for region_tlr_tensorflow * Renaming launch file for consistency. * Removing unused portion of launch file. --- .../trafficlight_recognizer/CMakeLists.txt | 222 +++++++----- .../cmake/FindTensorFlow.cmake | 298 ++++++++++++++++ .../trafficlight_recognizer/interface.yaml | 6 + ...raffic_light_recognition_tensorflow.launch | 21 ++ .../trafficlight_recognizer/__init__.py | 1 + .../region_tlr_tensorflow.py | 128 +++++++ .../nodes/roi_pub/roi_pub.cpp | 332 ++++++++++++++++++ .../trafficlight_recognizer/package.xml | 8 + .../trafficlight_recognizer/setup.py | 12 + .../autoware_launcher/tests/test_plugins.py | 2 +- 10 files changed, 936 insertions(+), 94 deletions(-) create mode 100644 ros/src/computing/perception/detection/trafficlight_recognizer/cmake/FindTensorFlow.cmake create mode 100644 ros/src/computing/perception/detection/trafficlight_recognizer/launch/traffic_light_recognition_tensorflow.launch create mode 100644 ros/src/computing/perception/detection/trafficlight_recognizer/nodes/region_tlr_tensorflow/trafficlight_recognizer/__init__.py create mode 100755 ros/src/computing/perception/detection/trafficlight_recognizer/nodes/region_tlr_tensorflow/trafficlight_recognizer/region_tlr_tensorflow.py create mode 100644 ros/src/computing/perception/detection/trafficlight_recognizer/nodes/roi_pub/roi_pub.cpp create mode 100644 ros/src/computing/perception/detection/trafficlight_recognizer/setup.py diff --git a/ros/src/computing/perception/detection/trafficlight_recognizer/CMakeLists.txt b/ros/src/computing/perception/detection/trafficlight_recognizer/CMakeLists.txt index 314cac92fa9..d94e516e1e3 100644 --- a/ros/src/computing/perception/detection/trafficlight_recognizer/CMakeLists.txt +++ b/ros/src/computing/perception/detection/trafficlight_recognizer/CMakeLists.txt @@ -6,6 +6,8 @@ execute_process( OUTPUT_STRIP_TRAILING_WHITESPACE ) +set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") + set(ROS_VERSION $ENV{ROS_DISTRO}) @@ -20,6 +22,7 @@ find_package(catkin REQUIRED COMPONENTS geometry_msgs libvectormap roscpp + rospy sensor_msgs std_msgs tf @@ -28,6 +31,8 @@ find_package(catkin REQUIRED COMPONENTS waypoint_follower autoware_msgs vector_map + camera_info_manager + image_transport ) find_package(OpenCV REQUIRED) @@ -74,6 +79,7 @@ catkin_package( geometry_msgs libvectormap roscpp + rospy sensor_msgs std_msgs tf @@ -207,6 +213,21 @@ target_link_libraries(roi_extractor add_dependencies(region_tlr ${catkin_EXPORTED_TARGETS}) +### roi_pub ### +include_directories( + ${catkin_INCLUDE_DIRS} + ${OpenCV_INCLUDE_DIRS} +) + +add_executable(roi_pub + nodes/roi_pub/roi_pub.cpp + ) + +target_link_libraries(roi_pub + ${catkin_LIBRARIES} + ${OpenCV_LIBS} + libcontext +) ### label_maker ### find_package(Qt5Core REQUIRED) @@ -254,52 +275,7 @@ target_link_libraries(label_maker ) -### region_tlr_ssd ### -##############################SSD'sFORK of CAFFE NEEDS TO BE PREVIOUSLY COMPILED#################### -set(SSD_CAFFE_PATH "$ENV{HOME}/ssdcaffe/distribute") -#################################################################################################### -if (EXISTS "${SSD_CAFFE_PATH}") - - find_package(CUDA REQUIRED) - - add_executable(region_tlr_ssd - nodes/region_tlr_ssd/region_tlr_ssd.cpp - nodes/region_tlr_ssd/traffic_light_recognizer.cpp - ) - - target_link_libraries(region_tlr_ssd - ${catkin_LIBRARIES} - ${OpenCV_LIBS} - ${CUDA_LIBRARIES} - ${CUDA_CUBLAS_LIBRARIES} - ${CUDA_curand_LIBRARY} - ${SSD_CAFFE_PATH}/lib/libcaffe.so - glog - libcontext - ) - - target_include_directories(region_tlr_ssd PRIVATE - ${SSD_CAFFE_PATH}/include - ${CUDA_INCLUDE_DIRS} - nodes/region_tlr_ssd/ - ) - - add_dependencies(region_tlr_ssd - ${catkin_EXPORTED_TARGETS} - ) - - install(TARGETS region_tlr_ssd - ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} - LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} - RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} - ) - -else () # if(EXISTS "${SSD_CAFFE_PATH}") - message("'SSD/Caffe' is not installed. 'region_tlr_ssd' will not be built.") -endif () # if(EXISTS "${SSD_CAFFE_PATH}") - - -install(TARGETS region_tlr feat_proj tlr_tuner roi_extractor label_maker libcontext tl_switch +install(TARGETS region_tlr feat_proj tlr_tuner roi_extractor roi_pub label_maker libcontext tl_switch ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} @@ -314,53 +290,113 @@ install(DIRECTORY launch/ DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/launch PATTERN ".svn" EXCLUDE) - -### region_tlr_mxnet ### -##############################MXNET with CPP_PACKAGE NEEDS TO BE PREVIOUSLY COMPILED################ -#############Please follow README file for instructions############################################# -set(MXNET_PATH "$ENV{HOME}/mxnet/") -#################################################################################################### -if (EXISTS "${MXNET_PATH}") - - find_package(CUDA REQUIRED) - - add_executable(region_tlr_mxnet - nodes/region_tlr_mxnet/region_tlr_mxnet.cpp - nodes/region_tlr_mxnet/mxnet_traffic_light_recognizer.cpp - nodes/region_tlr_mxnet/region_tlr_mxnet.h - nodes/region_tlr_mxnet/mxnet_traffic_light_recognizer.h - ) - - target_link_libraries(region_tlr_mxnet - ${catkin_LIBRARIES} - ${OpenCV_LIBS} - ${CUDA_LIBRARIES} - ${CUDA_CUBLAS_LIBRARIES} - ${CUDA_curand_LIBRARY} - ${MXNET_PATH}/lib/libmxnet.so - libcontext - ) - - target_include_directories(region_tlr_mxnet PRIVATE - ${MXNET_PATH}/nnvm/include/ - ${MXNET_PATH}/cpp-package/include/ - ${MXNET_PATH}/include/ - ${MXNET_PATH}/dmlc-core/include/ - ${CUDA_INCLUDE_DIRS} - nodes/region_tlr_mxnet/ - include - ) - - add_dependencies(region_tlr_mxnet - ${catkin_EXPORTED_TARGETS} - ) - - install(TARGETS region_tlr_mxnet - ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} - LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} - RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} - ) +find_package(CUDA) + +if (CUDA_FOUND) + + ### region_tlr_ssd ### + ##############################SSD'sFORK of CAFFE NEEDS TO BE PREVIOUSLY COMPILED#################### + set(SSD_CAFFE_PATH "$ENV{HOME}/ssdcaffe/distribute") + #################################################################################################### + if (EXISTS "${SSD_CAFFE_PATH}") + + add_executable(region_tlr_ssd + nodes/region_tlr_ssd/region_tlr_ssd.cpp + nodes/region_tlr_ssd/traffic_light_recognizer.cpp + ) + + target_link_libraries(region_tlr_ssd + ${catkin_LIBRARIES} + ${OpenCV_LIBS} + ${CUDA_LIBRARIES} + ${CUDA_CUBLAS_LIBRARIES} + ${CUDA_curand_LIBRARY} + ${SSD_CAFFE_PATH}/lib/libcaffe.so + glog + libcontext + ) + + target_include_directories(region_tlr_ssd PRIVATE + ${SSD_CAFFE_PATH}/include + ${CUDA_INCLUDE_DIRS} + nodes/region_tlr_ssd/ + ) + + add_dependencies(region_tlr_ssd + ${catkin_EXPORTED_TARGETS} + ) + + install(TARGETS region_tlr_ssd + ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} + ) + + else () # if(EXISTS "${SSD_CAFFE_PATH}") + message("'SSD/Caffe' is not installed. 'region_tlr_ssd' will not be built.") + endif () # if(EXISTS "${SSD_CAFFE_PATH}") + + + ### region_tlr_mxnet ### + ##############################MXNET with CPP_PACKAGE NEEDS TO BE PREVIOUSLY COMPILED################ + #############Please follow README file for instructions############################################# + set(MXNET_PATH "$ENV{HOME}/mxnet/") + #################################################################################################### + if (EXISTS "${MXNET_PATH}") + + add_executable(region_tlr_mxnet + nodes/region_tlr_mxnet/region_tlr_mxnet.cpp + nodes/region_tlr_mxnet/mxnet_traffic_light_recognizer.cpp + nodes/region_tlr_mxnet/region_tlr_mxnet.h + nodes/region_tlr_mxnet/mxnet_traffic_light_recognizer.h + ) + + target_link_libraries(region_tlr_mxnet + ${catkin_LIBRARIES} + ${OpenCV_LIBS} + ${CUDA_LIBRARIES} + ${CUDA_CUBLAS_LIBRARIES} + ${CUDA_curand_LIBRARY} + ${MXNET_PATH}/lib/libmxnet.so + libcontext + ) + + target_include_directories(region_tlr_mxnet PRIVATE + ${MXNET_PATH}/nnvm/include/ + ${MXNET_PATH}/cpp-package/include/ + ${MXNET_PATH}/include/ + ${MXNET_PATH}/dmlc-core/include/ + ${CUDA_INCLUDE_DIRS} + nodes/region_tlr_mxnet/ + include + ) + + add_dependencies(region_tlr_mxnet + ${catkin_EXPORTED_TARGETS} + ) + + install(TARGETS region_tlr_mxnet + ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} + ) + + else () + message("'MXNET Package' is not installed. 'region_tlr_mxnet' will not be built.") + endif () + + ### region_tlr_tensorflow ### + #################################################################################################### + find_package(TensorFlow QUIET) + + if (TENSORFLOW_FOUND) + catkin_python_setup() + catkin_install_python(PROGRAMS nodes/region_tlr_tensorflow/trafficlight_recognizer/region_tlr_tensorflow.py + DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}) + else () + message("'CuDNN' or 'tensorflow' is not installed. 'region_tlr_tensorflow' will not be built.") + endif () else () - message("'MXNET Package' is not installed. 'region_tlr_mxnet' will not be built.") + message("'CUDA' is not installed. 'region_tlr_mxnet', 'region_tlr_ssd', and 'region_tlr_tensorflow' will not be built.") endif () diff --git a/ros/src/computing/perception/detection/trafficlight_recognizer/cmake/FindTensorFlow.cmake b/ros/src/computing/perception/detection/trafficlight_recognizer/cmake/FindTensorFlow.cmake new file mode 100644 index 00000000000..1eba1930030 --- /dev/null +++ b/ros/src/computing/perception/detection/trafficlight_recognizer/cmake/FindTensorFlow.cmake @@ -0,0 +1,298 @@ +# Patrick Wieschollek, +# FindTENSORFLOW.cmake +# https://github.com/PatWie/tensorflow-cmake/blob/master/cmake/modules/FindTensorFlow.cmake +# ------------- +# +# Find TensorFlow library and includes +# +# Automatically set variables have prefix "TensorFlow", +# while variables you need to specify have prefix "TENSORFLOW" +# This module will set the following variables in your project: +# +# ``TENSORFLOW_VERSION`` +# exact TensorFlow version obtained from runtime +# ``TENSORFLOW_ABI`` +# ABI specification of TensorFlow library obtained from runtime +# ``TENSORFLOW_INCLUDE_DIRS`` +# where to find tensorflow header files obtained from runtime +# ``TENSORFLOW_LIBS`` +# the libraries to link against to use TENSORFLOW obtained from runtime +# ``TENSORFLOW_FOUND TRUE`` +# If false, do not try to use TENSORFLOW. +# +# for some examples, you will need to specify on of the following paths +# ``TensorFlow_SOURCE_DIR`` +# Path to source of TensorFlow, when env-var 'TENSORFLOW_SOURCE_DIR' is set and path exists +# ``TensorFlow_C_LIBRARY`` +# Path to libtensorflow_cc.so (require env-var 'TENSORFLOW_BUILD_DIR') +# +# +# USAGE +# ------ +# add "list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}../../path/to/this/file)" to your project +# +# "add_tensorflow_gpu_operation" is a macro to compile a custom operation +# +# add_tensorflow_gpu_operation("") expects the following files to exists: +# - kernels/_kernel.cc +# - kernels/_kernel_gpu.cu.cc (kernels/_kernel.cu is supported as well) +# - kernels/_op.cc +# - kernels/_op.h +# - ops/.cc + +if(APPLE) + message(WARNING "This FindTensorflow.cmake is not tested on APPLE\n" + "Please report if this works\n" + "https://github.com/PatWie/tensorflow-cmake") +endif(APPLE) + +if(WIN32) + message(WARNING "This FindTensorflow.cmake is not tested on WIN32\n" + "Please report if this works\n" + "https://github.com/PatWie/tensorflow-cmake") +endif(WIN32) + +set(PYTHON_EXECUTABLE "python3" CACHE STRING "specify the python version TensorFlow is installed on.") + + +if(TENSORFLOW_FOUND) + # reuse cached variables + message(STATUS "Reuse cached information from TensorFlow ${TENSORFLOW_VERSION} ") +else() + message(STATUS "Detecting TensorFlow using ${PYTHON_EXECUTABLE}" + " (use -DPYTHON_EXECUTABLE=... otherwise)") + execute_process( + COMMAND ${PYTHON_EXECUTABLE} -c "import tensorflow as tf; print(tf.__version__); print(tf.__cxx11_abi_flag__); print(tf.sysconfig.get_include()); print(tf.sysconfig.get_lib() + '/libtensorflow_framework.so')" + OUTPUT_VARIABLE TF_INFORMATION_STRING + OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE retcode) + + if(NOT "${retcode}" STREQUAL "0") + message(STATUS "Detecting TensorFlow info - failed \n Did you installed TensorFlow?") + else() + message(STATUS "Detecting TensorFlow info - done") + + string(REPLACE "\n" ";" TF_INFORMATION_LIST ${TF_INFORMATION_STRING}) + list(GET TF_INFORMATION_LIST 0 TF_DETECTED_VERSION) + list(GET TF_INFORMATION_LIST 1 TF_DETECTED_ABI) + list(GET TF_INFORMATION_LIST 2 TF_DETECTED_INCLUDE_DIR) + list(GET TF_INFORMATION_LIST 3 TF_DETECTED_LIBRARY) + + # set(TF_DETECTED_VERSION 1.8) + + set(_packageName "TF") + if (DEFINED TF_DETECTED_VERSION) + string (REGEX MATCHALL "[0-9]+" _versionComponents "${TF_DETECTED_VERSION}") + list (LENGTH _versionComponents _len) + if (${_len} GREATER 0) + list(GET _versionComponents 0 TF_DETECTED_VERSION_MAJOR) + endif() + if (${_len} GREATER 1) + list(GET _versionComponents 1 TF_DETECTED_VERSION_MINOR) + endif() + if (${_len} GREATER 2) + list(GET _versionComponents 2 TF_DETECTED_VERSION_PATCH) + endif() + if (${_len} GREATER 3) + list(GET _versionComponents 3 TF_DETECTED_VERSION_TWEAK) + endif() + set (TF_DETECTED_VERSION_COUNT ${_len}) + else() + set (TF_DETECTED_VERSION_COUNT 0) + endif() + + + # -- prevent pre 1.9 versions + # Note: TensorFlow 1.7 supported custom ops and all header files. + # TensorFlow 1.8 broke that promise and 1.9, 1.10 are fine again. + # This cmake-file is only tested against 1.9+. + if("${TF_DETECTED_VERSION}" VERSION_LESS "1.9") + message(FATAL_ERROR "Your installed TensorFlow version ${TF_DETECTED_VERSION} is too old.") + endif() + + if(TF_FIND_VERSION_EXACT) + # User requested exact match of TensorFlow. + # TensorFlow release cycles are currently just depending on (major, minor) + # But we test against both. + set(_TensorFlow_TEST_VERSIONS + "${TF_FIND_VERSION_MAJOR}.${TF_FIND_VERSION_MINOR}.${TF_FIND_VERSION_PATCH}" + "${TF_FIND_VERSION_MAJOR}.${TF_FIND_VERSION_MINOR}") + else(TF_FIND_VERSION_EXACT) + # User requested not an exact TensorFlow version. + # However, only TensorFlow versions 1.9, 1.10 support all header files + # for custom ops. + set(_TensorFlow_KNOWN_VERSIONS ${TensorFlow_ADDITIONAL_VERSIONS} + "1.9" "1.9.0" "1.10" "1.10.0" "1.11" "1.11.0" "1.12" "1.12.0" "1.13" "1.13.0") + set(_TensorFlow_TEST_VERSIONS) + + if(TF_FIND_VERSION) + set(_TF_FIND_VERSION_SHORT "${TF_FIND_VERSION_MAJOR}.${TF_FIND_VERSION_MINOR}") + # Select acceptable versions. + foreach(version ${_TensorFlow_KNOWN_VERSIONS}) + if(NOT "${version}" VERSION_LESS "${TF_FIND_VERSION}") + # This version is high enough. + list(APPEND _TensorFlow_TEST_VERSIONS "${version}") + endif() + endforeach(version) + else(TF_FIND_VERSION) + # Any version is acceptable. + set(_TensorFlow_TEST_VERSIONS "${_TensorFlow_KNOWN_VERSIONS}") + endif(TF_FIND_VERSION) + endif() + + # test all given versions + set(TENSORFLOW_FOUND FALSE) + FOREACH(_TensorFlow_VER ${_TensorFlow_TEST_VERSIONS}) + if("${TF_DETECTED_VERSION_MAJOR}.${TF_DETECTED_VERSION_MINOR}" STREQUAL "${_TensorFlow_VER}") + # found appropriate version + set(TENSORFLOW_VERSION ${TF_DETECTED_VERSION}) + set(TENSORFLOW_ABI ${TF_DETECTED_ABI}) + set(TENSORFLOW_INCLUDE_DIRS ${TF_DETECTED_INCLUDE_DIR}) + set(TENSORFLOW_LIBS ${TF_DETECTED_LIBRARY}) + set(TENSORFLOW_FOUND TRUE) + message(STATUS "Found TensorFlow: (found appropriate version \"${TENSORFLOW_VERSION}\")") + message(STATUS "TensorFlow-ABI is ${TENSORFLOW_ABI}") + message(STATUS "TensorFlow-INCLUDE_DIR is ${TENSORFLOW_INCLUDE_DIRS}") + message(STATUS "TensorFlow-LIBRARY is ${TENSORFLOW_LIBS}") + + add_definitions("-DTENSORFLOW_ABI=${TENSORFLOW_ABI}") + add_definitions("-DTENSORFLOW_VERSION=${TENSORFLOW_VERSION}") + break() + endif() + ENDFOREACH(_TensorFlow_VER) + + if(NOT TENSORFLOW_FOUND) + message(FATAL_ERROR "Your installed TensorFlow version ${TF_DETECTED_VERSION_MAJOR}.${TF_DETECTED_VERSION_MINOR} is not supported\n" + "We tested against ${_TensorFlow_TEST_VERSIONS}") + endif(NOT TENSORFLOW_FOUND) + + # test 1.11 version + if("${TF_DETECTED_VERSION}" VERSION_EQUAL "1.11") + set(TF_DISABLE_ASSERTS "TRUE") + endif() + + if("${TF_DETECTED_VERSION}" VERSION_EQUAL "1.12") + set(TF_DISABLE_ASSERTS "TRUE") + endif() + + if("${TF_DETECTED_VERSION}" VERSION_EQUAL "1.12.0") + set(TF_DISABLE_ASSERTS "TRUE") + endif() + + endif() + +endif() + +if(TENSORFLOW_FOUND) + + if(${TF_DISABLE_ASSERTS}) + message(STATUS "[WARNING] The TensorFlow version ${TF_DETECTED_VERSION} has a bug (see \#22766). We disable asserts using -DNDEBUG=True ") + add_definitions("-DNDEBUG=True") + endif() + + find_library(TensorFlow_C_LIBRARY + NAMES libtensorflow_cc.so + PATHS $ENV{TENSORFLOW_BUILD_DIR} + DOC "TensorFlow CC library." ) + + if(TensorFlow_C_LIBRARY) + message(STATUS "TensorFlow-CC-LIBRARY is ${TensorFlow_C_LIBRARY}") + else() + message(STATUS "No TensorFlow-CC-LIBRARY detected") + endif() + + find_path(TensorFlow_SOURCE_DIR + NAMES + tensorflow/c + tensorflow/cc + tensorflow/core + tensorflow/core/framework + tensorflow/core/platform + tensorflow/python + third_party + PATHS $ENV{TENSORFLOW_SOURCE_DIR}) + + if(TensorFlow_SOURCE_DIR) + message(STATUS "TensorFlow-SOURCE-DIRECTORY is ${TensorFlow_SOURCE_DIR}") + else() + message(STATUS "No TensorFlow source repository detected") + endif() + + macro(TensorFlow_REQUIRE_C_LIBRARY) + if(TensorFlow_C_LIBRARY) + else() + message(FATAL_ERROR "Project requires libtensorflow_cc.so, please specify the path in ENV-VAR 'TENSORFLOW_BUILD_DIR'") + endif() + endmacro() + + macro(TensorFlow_REQUIRE_SOURCE) + if(TensorFlow_SOURCE_DIR) + else() + message(FATAL_ERROR "Project requires TensorFlow source directory, please specify the path in ENV-VAR 'TENSORFLOW_SOURCE_DIR'") + endif() + endmacro() + + macro(add_tensorflow_cpu_operation op_name) + # Compiles a CPU-only operation without invoking NVCC + message(STATUS "will build custom TensorFlow operation \"${op_name}\" (CPU only)") + + add_library(${op_name}_op SHARED kernels/${op_name}_op.cc kernels/${op_name}_kernel.cc ops/${op_name}.cc ) + + set_target_properties(${op_name}_op PROPERTIES PREFIX "") + target_link_libraries(${op_name}_op LINK_PUBLIC ${TENSORFLOW_LIBS}) + endmacro() + + + macro(add_tensorflow_gpu_operation op_name) + # Compiles a CPU + GPU operation with invoking NVCC + message(STATUS "will build custom TensorFlow operation \"${op_name}\" (CPU+GPU)") + + set(kernel_file "") + if(EXISTS "kernels/${op_name}_kernel.cu") + message(WARNING "you should rename your file ${op_name}_kernel.cu to ${op_name}_kernel_gpu.cu.cc") + set(kernel_file kernels/${op_name}_kernel.cu) + else() + set_source_files_properties(kernels/${op_name}_kernel_gpu.cu.cc PROPERTIES CUDA_SOURCE_PROPERTY_FORMAT OBJ) + set(kernel_file kernels/${op_name}_kernel_gpu.cu.cc) + endif() + + cuda_add_library(${op_name}_op_cu SHARED ${kernel_file}) + set_target_properties(${op_name}_op_cu PROPERTIES PREFIX "") + + add_library(${op_name}_op SHARED kernels/${op_name}_op.cc kernels/${op_name}_kernel.cc ops/${op_name}.cc ) + + set_target_properties(${op_name}_op PROPERTIES PREFIX "") + set_target_properties(${op_name}_op PROPERTIES COMPILE_FLAGS "-DGOOGLE_CUDA") + target_link_libraries(${op_name}_op LINK_PUBLIC ${op_name}_op_cu ${TENSORFLOW_LIBS}) + endmacro() + + # simplify TensorFlow dependencies + add_library(TensorFlow_DEP INTERFACE) + TARGET_INCLUDE_DIRECTORIES(TensorFlow_DEP SYSTEM INTERFACE ${TensorFlow_SOURCE_DIR}) + TARGET_INCLUDE_DIRECTORIES(TensorFlow_DEP SYSTEM INTERFACE ${TENSORFLOW_INCLUDE_DIRS}) + TARGET_LINK_LIBRARIES(TensorFlow_DEP INTERFACE -Wl,--allow-multiple-definition -Wl,--whole-archive ${TensorFlow_C_LIBRARY} -Wl,--no-whole-archive) + TARGET_LINK_LIBRARIES(TensorFlow_DEP INTERFACE -Wl,--allow-multiple-definition -Wl,--whole-archive ${TENSORFLOW_LIBS} -Wl,--no-whole-archive) + + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args( + TENSORFLOW + FOUND_VAR TENSORFLOW_FOUND + REQUIRED_VARS + TENSORFLOW_LIBS + TENSORFLOW_INCLUDE_DIRS + VERSION_VAR + TENSORFLOW_VERSION + ) + + mark_as_advanced(TF_INFORMATION_STRING TF_DETECTED_VERSION TF_DETECTED_VERSION_MAJOR TF_DETECTED_VERSION_MINOR TF_DETECTED_VERSION TF_DETECTED_ABI + TF_DETECTED_INCLUDE_DIR TF_DETECTED_LIBRARY TF_DISABLE_ASSERTS + TensorFlow_C_LIBRARY TENSORFLOW_LIBS TensorFlow_SOURCE_DIR TENSORFLOW_INCLUDE_DIRS TENSORFLOW_ABI) + +endif() + + SET(TENSORFLOW_INCLUDE_DIRS ${TENSORFLOW_INCLUDE_DIRS} CACHE PATH "path to tensorflow header files") + SET(TENSORFLOW_VERSION ${TENSORFLOW_VERSION} CACHE INTERNAL "The Python executable Version") + SET(TENSORFLOW_ABI ${TENSORFLOW_ABI} CACHE STRING "The Python executable Version") + SET(TENSORFLOW_LIBS ${TENSORFLOW_LIBS} CACHE PATH "The Python executable Version") + SET(TENSORFLOW_FOUND ${TENSORFLOW_FOUND} CACHE BOOL "The Python executable Version") + SET(TF_DISABLE_ASSERTS ${TF_DISABLE_ASSERTS} CACHE BOOL "Workarounds") diff --git a/ros/src/computing/perception/detection/trafficlight_recognizer/interface.yaml b/ros/src/computing/perception/detection/trafficlight_recognizer/interface.yaml index 915dde9772b..762eddc98b2 100644 --- a/ros/src/computing/perception/detection/trafficlight_recognizer/interface.yaml +++ b/ros/src/computing/perception/detection/trafficlight_recognizer/interface.yaml @@ -12,9 +12,15 @@ - name: /region_tlr_ssd publish: [/light_color, /sound_player, /tlr_result, /tlr_superimpose_image] subscribe: [/image_raw, /roi_signal] +- name: /region_tlr_tensorflow + publish: [/light_color, /sound_player] + subscribe: [/tlr_roi_image] - name: /roi_extractor publish: [] subscribe: [/image_raw, /roi_signal] +- name: /roi_pub + publish: [/tlr_roi_image, /tlr_result, /tlr_superimpose_image] + subscribe: [/image_raw, /roi_signal, /config/superimpose] - name: /light_color_switch publish: [/light_color] subscribe: [/camera_light_color, /ams_light_color] diff --git a/ros/src/computing/perception/detection/trafficlight_recognizer/launch/traffic_light_recognition_tensorflow.launch b/ros/src/computing/perception/detection/trafficlight_recognizer/launch/traffic_light_recognition_tensorflow.launch new file mode 100644 index 00000000000..bdfbc6f0f36 --- /dev/null +++ b/ros/src/computing/perception/detection/trafficlight_recognizer/launch/traffic_light_recognition_tensorflow.launch @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/ros/src/computing/perception/detection/trafficlight_recognizer/nodes/region_tlr_tensorflow/trafficlight_recognizer/__init__.py b/ros/src/computing/perception/detection/trafficlight_recognizer/nodes/region_tlr_tensorflow/trafficlight_recognizer/__init__.py new file mode 100644 index 00000000000..43ae9b13d74 --- /dev/null +++ b/ros/src/computing/perception/detection/trafficlight_recognizer/nodes/region_tlr_tensorflow/trafficlight_recognizer/__init__.py @@ -0,0 +1 @@ +from region_tlr_tensorflow import * diff --git a/ros/src/computing/perception/detection/trafficlight_recognizer/nodes/region_tlr_tensorflow/trafficlight_recognizer/region_tlr_tensorflow.py b/ros/src/computing/perception/detection/trafficlight_recognizer/nodes/region_tlr_tensorflow/trafficlight_recognizer/region_tlr_tensorflow.py new file mode 100755 index 00000000000..a6308f17eaf --- /dev/null +++ b/ros/src/computing/perception/detection/trafficlight_recognizer/nodes/region_tlr_tensorflow/trafficlight_recognizer/region_tlr_tensorflow.py @@ -0,0 +1,128 @@ +#!/usr/bin/env python + +import rospy +from sensor_msgs.msg import Image +from std_msgs.msg import String +from cv_bridge import CvBridge +import cv2 +import numpy as np +import tensorflow as tf +from keras.models import load_model +from keras.preprocessing.image import img_to_array +from autoware_msgs.msg import TrafficLight + +USE_ALT_COLORSPACE = False +TARGET_SIZE = (32, 32) +NUM_CHANNELS = 3 +IDX_DEBOUNCE_THRESHOLD = 2 +CONFIDENCE_THRESHOLD = 0.6 +PUB_TIMEOUT = 10.0 # seconds +ROI_IMG_TIMEOUT = 1.0 # seconds +states = ['red', 'green', 'off'] +# internal_state_map = {0:'green', 1:'off', 2:'red', 3:'yellow' } +classifier_state_map = {0: 1, 1: 2, 2: 0, 3: 0} # note, treating yellow as red + +classifier_state_strings = {0: 'red signal', 1: 'green signal', 2: ''} + +config = tf.ConfigProto() +config.gpu_options.allow_growth = True +session = tf.Session(config=config) + +cv_bridge = CvBridge() +idx_debounce_count = 0 +last_pub_state_idx = -1 +last_debounce_state_idx = -1 +img_timer = None + +result_msg = TrafficLight() + + +def preprocess_image(img): + out_img = cv2.cvtColor(img, cv2.COLOR_BGR2YCrCb) + return out_img + + +def ROI_image_callback(image_msg): + global idx_debounce_count, \ + IDX_DEBOUNCE_THRESHOLD, \ + last_pub_state_idx, \ + last_debounce_state_idx, \ + last_pub_time, \ + img_timer + + if img_timer is not None: + img_timer.shutdown() + + img_timer = rospy.Timer(rospy.Duration(ROI_IMG_TIMEOUT), ImgTimeoutCallback) + last_ROI_img_time = rospy.get_rostime() + + # Resize the input image then feed it into the NN for prediction + cv_image = cv_bridge.imgmsg_to_cv2(image_msg, "passthrough") + + if USE_ALT_COLORSPACE: + cv_image = preprocess_image(cv_image) + + img = cv2.resize(cv_image, TARGET_SIZE, interpolation=cv2.INTER_LINEAR) + img = img.astype("float") / 255.0 + img = img_to_array(img) + img = np.expand_dims(img, axis=0) + + proba = nn_model.predict(img) + confidence = np.amax(proba) + predicted_state = nn_model.predict_classes(img) + + idx = -1 + if confidence >= CONFIDENCE_THRESHOLD: + # Get the prediction + idx = np.argmax(proba) + idx = classifier_state_map[idx] + + # Debounce the prediction before publishing + if idx == last_debounce_state_idx: + idx_debounce_count += 1 + if idx_debounce_count > IDX_DEBOUNCE_THRESHOLD: + idx_debounce_count = IDX_DEBOUNCE_THRESHOLD # prevent overflow + else: + last_debounce_state_idx = idx + idx_debounce_count = 0 + + if idx_debounce_count >= IDX_DEBOUNCE_THRESHOLD: + # Only consider publishing debounced states + if last_debounce_state_idx != last_pub_state_idx or \ + (rospy.get_rostime() - last_pub_time > rospy.Duration(PUB_TIMEOUT) and + last_pub_state_idx != 2): + # Only publish when state changes or a timeout occurs (but only want to repeat non-"unknown" states) + result_msg.traffic_light = last_debounce_state_idx + light_color_pub.publish(result_msg) + + if last_debounce_state_idx != last_pub_state_idx: + light_color_string_pub.publish(classifier_state_strings[last_debounce_state_idx]) + + last_pub_state_idx = last_debounce_state_idx + last_pub_time = rospy.get_rostime() + + +def ImgTimeoutCallback(event): + global last_pub_state_idx, last_pub_time + if last_pub_state_idx != 2: + result_msg.traffic_light = 2 + light_color_pub.publish(result_msg) + light_color_string_pub.publish(classifier_state_strings[2]) + last_pub_state_idx = 2 + last_pub_time = rospy.get_rostime() + +rospy.init_node('tlr_classifier') + +nn_model_path = rospy.get_param('~nn_model_path') +nn_model = load_model(nn_model_path) + +# Have to do this or the prediction in the callback fails +proba = nn_model.predict(np.zeros((1, TARGET_SIZE[0], TARGET_SIZE[1], NUM_CHANNELS))) + +rospy.Subscriber('tlr_roi_image', Image, ROI_image_callback, queue_size=1) +light_color_pub = rospy.Publisher('light_color', TrafficLight, queue_size=1) +light_color_string_pub = rospy.Publisher('sound_player', String, queue_size=1) + +last_pub_time = rospy.get_rostime() + +rospy.spin() diff --git a/ros/src/computing/perception/detection/trafficlight_recognizer/nodes/roi_pub/roi_pub.cpp b/ros/src/computing/perception/detection/trafficlight_recognizer/nodes/roi_pub/roi_pub.cpp new file mode 100644 index 00000000000..a9d314b2d18 --- /dev/null +++ b/ros/src/computing/perception/detection/trafficlight_recognizer/nodes/roi_pub/roi_pub.cpp @@ -0,0 +1,332 @@ +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include + +static const std::string WINDOW_NAME = "superimpose result"; + +// A frame image acquired from topic +cv::Mat frame_; + +std::string image_topic_name; +bool swap_pole_lane_id; + +// Timestamp of a frame in process +std_msgs::Header frame_header_; + +// Publishers +ros::Publisher roi_image_publisher; +ros::Publisher marker_publisher; +ros::Publisher superimpose_image_publisher; + +void PublishMarkerArray(std::vector contexts) +{ + // Define color constants + std_msgs::ColorRGBA color_black; + color_black.r = 0.0f; + color_black.g = 0.0f; + color_black.b = 0.0f; + color_black.a = 1.0f; + + std_msgs::ColorRGBA color_red; + color_red.r = 1.0f; + color_red.g = 0.0f; + color_red.b = 0.0f; + color_red.a = 1.0f; + + std_msgs::ColorRGBA color_yellow; + color_yellow.r = 1.0f; + color_yellow.g = 1.0f; + color_yellow.b = 0.0f; + color_yellow.a = 1.0f; + + std_msgs::ColorRGBA color_green; + color_green.r = 0.0f; + color_green.g = 1.0f; + color_green.b = 0.0f; + color_green.a = 1.0f; + + // publish all result as ROS MarkerArray + for (const auto ctx : contexts) + { + visualization_msgs::MarkerArray signal_set; + visualization_msgs::Marker red_light, yellow_light, green_light; + + // Set the frame ID + red_light.header.frame_id = "map"; + yellow_light.header.frame_id = "map"; + green_light.header.frame_id = "map"; + + // Set the namespace and ID for this markers + red_light.ns = "tlr_result_red"; + red_light.id = ctx.signalID; + + yellow_light.ns = "tlr_result_yellow"; + yellow_light.id = ctx.signalID; + + green_light.ns = "tlr_result_green"; + green_light.id = ctx.signalID; + + // Set the markers type + red_light.type = visualization_msgs::Marker::SPHERE; + yellow_light.type = visualization_msgs::Marker::SPHERE; + green_light.type = visualization_msgs::Marker::SPHERE; + + // Set the pose of the markers + red_light.pose.position.x = ctx.redCenter3d.x; + red_light.pose.position.y = ctx.redCenter3d.y; + red_light.pose.position.z = ctx.redCenter3d.z; + red_light.pose.orientation.x = 0.0; + red_light.pose.orientation.y = 0.0; + red_light.pose.orientation.z = 0.0; + red_light.pose.orientation.w = 0.0; + + yellow_light.pose.position.x = ctx.yellowCenter3d.x; + yellow_light.pose.position.y = ctx.yellowCenter3d.y; + yellow_light.pose.position.z = ctx.yellowCenter3d.z; + yellow_light.pose.orientation.x = 0.0; + yellow_light.pose.orientation.y = 0.0; + yellow_light.pose.orientation.z = 0.0; + yellow_light.pose.orientation.w = 0.0; + + green_light.pose.position.x = ctx.greenCenter3d.x; + green_light.pose.position.y = ctx.greenCenter3d.y; + green_light.pose.position.z = ctx.greenCenter3d.z; + green_light.pose.orientation.x = 0.0; + green_light.pose.orientation.y = 0.0; + green_light.pose.orientation.z = 0.0; + green_light.pose.orientation.w = 0.0; + + // Set the scale of the markers. We assume lamp radius is 30cm in real world + red_light.scale.x = 0.3; + red_light.scale.y = 0.3; + red_light.scale.z = 0.3; + + yellow_light.scale.x = 0.3; + yellow_light.scale.y = 0.3; + yellow_light.scale.z = 0.3; + + green_light.scale.x = 0.3; + green_light.scale.y = 0.3; + green_light.scale.z = 0.3; + + // Set the color for each marker + switch (ctx.lightState) + { + case GREEN: + red_light.color = color_black; + yellow_light.color = color_black; + green_light.color = color_green; + break; + case YELLOW: + red_light.color = color_black; + yellow_light.color = color_yellow; + green_light.color = color_black; + break; + case RED: + red_light.color = color_red; + yellow_light.color = color_black; + green_light.color = color_black; + break; + case UNDEFINED: + red_light.color = color_black; + yellow_light.color = color_black; + green_light.color = color_black; + break; + } + + red_light.lifetime = ros::Duration(0.1); + yellow_light.lifetime = ros::Duration(0.1); + green_light.lifetime = ros::Duration(0.1); + + // Pack each light marker into one + signal_set.markers.push_back(red_light); + signal_set.markers.push_back(yellow_light); + signal_set.markers.push_back(green_light); + + // Publish + marker_publisher.publish(signal_set); + } +} // void PublishMarkerArray() + +void PublishImage(std::vector contexts) +{ + // Copy the frame image for output + cv::Mat result_image = frame_.clone(); + cv::cvtColor(result_image, result_image, cv::COLOR_RGB2BGR); + + // Define information for written label + std::string label; + const int k_font_face = cv::FONT_HERSHEY_COMPLEX_SMALL; + const double k_font_scale = 0.8; + int font_baseline = 0; + CvScalar label_color; + + for (const auto ctx : contexts) + { + // Draw superimpose result on image + circle(result_image, ctx.redCenter, ctx.lampRadius, CV_RGB(255, 0, 0), 1, 0); + circle(result_image, ctx.yellowCenter, ctx.lampRadius, CV_RGB(255, 255, 0), 1, 0); + circle(result_image, ctx.greenCenter, ctx.lampRadius, CV_RGB(0, 255, 0), 1, 0); + + // Draw recognition result on image + switch (ctx.lightState) + { + case GREEN: + label = "GREEN"; + label_color = CV_RGB(0, 255, 0); + break; + case YELLOW: + label = "YELLOW"; + label_color = CV_RGB(255, 255, 0); + break; + case RED: + label = "RED"; + label_color = CV_RGB(255, 0, 0); + break; + case UNDEFINED: + label = "UNKNOWN"; + label_color = CV_RGB(0, 0, 0); + } + + if (ctx.leftTurnSignal) + { + label += " LEFT"; + } + if (ctx.rightTurnSignal) + { + label += " RIGHT"; + } + // add lane # text + label += " " + std::to_string(ctx.closestLaneId); + + cv::Point label_origin = cv::Point(ctx.topLeft.x, ctx.botRight.y + font_baseline); + + cv::putText(result_image, label, label_origin, k_font_face, k_font_scale, label_color); + } + + // Publish superimpose result image + cv_bridge::CvImage converter; + converter.header = frame_header_; + converter.encoding = sensor_msgs::image_encodings::BGR8; + converter.image = result_image; + superimpose_image_publisher.publish(converter.toImageMsg()); +} // void PublishImage() + +void superimposeCb(const std_msgs::Bool::ConstPtr& config_msg) +{ + bool show_superimpose_result = config_msg->data; + + if (show_superimpose_result) + { + cv::namedWindow(WINDOW_NAME, cv::WINDOW_NORMAL); + cv::startWindowThread(); + } + + if (!show_superimpose_result) + { + if (cvGetWindowHandle(WINDOW_NAME.c_str()) != NULL) + { + cv::destroyWindow(WINDOW_NAME); + cv::waitKey(1); + } + } +} // void superimposeCb() + +void imageCallback(const sensor_msgs::ImageConstPtr& msg) +{ + auto se_frame = cv_bridge::toCvShare(msg); + + if (msg->encoding == "bgr8") + cv::cvtColor(se_frame->image, frame_, cv::COLOR_BGR2RGB); + else if (msg->encoding == "bayer_bggr8") + cv::cvtColor(se_frame->image, frame_, cv::COLOR_BayerRG2RGB); + else if (msg->encoding == "bayer_rggb8") + cv::cvtColor(se_frame->image, frame_, cv::COLOR_BayerBG2RGB); + else + ROS_WARN("Received image of unhandled encoding type."); + + frame_header_ = msg->header; +} + +void roiSignalCallback(const autoware_msgs::Signals::ConstPtr& extracted_pos) +{ + static ros::Time previous_timestamp; + std::vector contexts_; + // If frame has not been prepared, abort this callback + if (frame_.empty() || frame_header_.stamp == previous_timestamp) + { + std::cout << "No Image" << std::endl; + return; + } + + // Acquire signal position on the image + // Context::SetContexts(contexts_, extracted_pos, frame_.rows, frame_.cols, swap_pole_lane_id); + Context::SetContexts(contexts_, extracted_pos, frame_.rows, frame_.cols); + + // Publish recognition result as some topic format + if (extracted_pos->Signals.size() == 0 || contexts_.size() == 0) + { + std::cout << "no signals in the image" << std::endl; + } + else + { + // Extract ROI for top signal in vector (top signal has largest estimated + // radius in every signals projected in a image) + cv::Mat roi = frame_(cv::Rect(contexts_.at(0).topLeft, contexts_.at(0).botRight)); + + cv_bridge::CvImage converter; + converter.header = frame_header_; + converter.encoding = sensor_msgs::image_encodings::RGB8; + converter.image = roi; + roi_image_publisher.publish(converter.toImageMsg()); + } + + PublishMarkerArray(contexts_); + PublishImage(contexts_); + + previous_timestamp = frame_header_.stamp; +} + +void getROSParams() +{ + ros::NodeHandle private_node_handle("~"); + private_node_handle.param("image_raw_topic", image_topic_name, "/image_raw"); + ROS_INFO("image_raw_topic: %s", image_topic_name.c_str()); + + private_node_handle.param("swap_pole_lane_id", swap_pole_lane_id, "false"); + ROS_INFO("swap_pole_lane_id: %s", swap_pole_lane_id ? "true" : "false"); +} + +int main(int argc, char** argv) +{ + ros::init(argc, argv, "tlr_roi_pub"); + ros::NodeHandle n; + + getROSParams(); + + // Register subscribers + image_transport::ImageTransport it(n); + image_transport::Subscriber image_subscriber = it.subscribe(image_topic_name, 1, &imageCallback, ros::VoidPtr()); + ros::Subscriber roi_signal_subscriber = n.subscribe("/roi_signal", 1, &roiSignalCallback); + ros::Subscriber superimpose_sub = n.subscribe("/config/superimpose", 1, &superimposeCb); + + // Register publishers + roi_image_publisher = n.advertise("tlr_roi_image", 1); + marker_publisher = n.advertise("tlr_result", 1, true); + superimpose_image_publisher = n.advertise("tlr_superimpose_image", 1); + + ros::spin(); + + return 0; +} diff --git a/ros/src/computing/perception/detection/trafficlight_recognizer/package.xml b/ros/src/computing/perception/detection/trafficlight_recognizer/package.xml index e6719d093ef..037bc6561eb 100644 --- a/ros/src/computing/perception/detection/trafficlight_recognizer/package.xml +++ b/ros/src/computing/perception/detection/trafficlight_recognizer/package.xml @@ -19,10 +19,14 @@ eigen libvectormap roscpp + rospy sensor_msgs tf vector_map visualization_msgs + libopencv-dev + camera_info_manager + image_transport cmake_modules runtime_manager @@ -39,10 +43,14 @@ eigen libvectormap roscpp + rospy sensor_msgs tf vector_map visualization_msgs + libopencv-dev + camera_info_manager + image_transport diff --git a/ros/src/computing/perception/detection/trafficlight_recognizer/setup.py b/ros/src/computing/perception/detection/trafficlight_recognizer/setup.py new file mode 100644 index 00000000000..b2bd23193b6 --- /dev/null +++ b/ros/src/computing/perception/detection/trafficlight_recognizer/setup.py @@ -0,0 +1,12 @@ +## ! DO NOT MANUALLY INVOKE THIS setup.py, USE CATKIN INSTEAD + +from distutils.core import setup +from catkin_pkg.python_setup import generate_distutils_setup + +# fetch values from package.xml +setup_args = generate_distutils_setup( + packages=['trafficlight_recognizer'], + package_dir={'': 'nodes/region_tlr_tensorflow'}, +) + +setup(**setup_args) diff --git a/ros/src/util/packages/autoware_launcher/tests/test_plugins.py b/ros/src/util/packages/autoware_launcher/tests/test_plugins.py index 4663aa7b131..c441fa58872 100644 --- a/ros/src/util/packages/autoware_launcher/tests/test_plugins.py +++ b/ros/src/util/packages/autoware_launcher/tests/test_plugins.py @@ -36,4 +36,4 @@ def test_plugin_field(): print(ymlargs) print(xmlargs) except: - print(result.group(1) + " is not built") \ No newline at end of file + print(result.group(1) + " is not built") From 25e63d8afc275a6e7ae6266f4f4ddd11c52833f8 Mon Sep 17 00:00:00 2001 From: Joshua Whitley Date: Tue, 28 May 2019 08:26:45 -0500 Subject: [PATCH 138/139] As/111 live traffic new detector (#16) * First run at replacing region_tlr_tensorflow with new version. * Fixing order-of-operations CMake bug in TLR. * Fixing another order-of-operations issue in TLR. * Adding main function and fixing srv install. * Fixing launch file for new region_tlr_tensorflow. * Making tensorflow_tlr.py a class. * python global variable fixes in tlr * python self instance ref fixes --- ros/src/.config/rviz/default.rviz | 690 ------------------ .../trafficlight_recognizer/CMakeLists.txt | 62 +- .../trafficlight_recognizer/interface.yaml | 7 +- ...raffic_light_recognition_tensorflow.launch | 6 +- .../region_tlr_tensorflow.cpp | 535 ++++++++++++++ .../region_tlr_tensorflow.h | 80 ++ .../trafficlight_recognizer/__init__.py | 2 +- .../region_tlr_tensorflow.py | 128 ---- .../trafficlight_recognizer/tensorflow_tlr.py | 69 ++ .../nodes/roi_pub/roi_pub.cpp | 332 --------- .../srv/RecognizeLightState.srv | 4 + 11 files changed, 737 insertions(+), 1178 deletions(-) delete mode 100644 ros/src/.config/rviz/default.rviz create mode 100644 ros/src/computing/perception/detection/trafficlight_recognizer/nodes/region_tlr_tensorflow/region_tlr_tensorflow.cpp create mode 100644 ros/src/computing/perception/detection/trafficlight_recognizer/nodes/region_tlr_tensorflow/region_tlr_tensorflow.h delete mode 100755 ros/src/computing/perception/detection/trafficlight_recognizer/nodes/region_tlr_tensorflow/trafficlight_recognizer/region_tlr_tensorflow.py create mode 100755 ros/src/computing/perception/detection/trafficlight_recognizer/nodes/region_tlr_tensorflow/trafficlight_recognizer/tensorflow_tlr.py delete mode 100644 ros/src/computing/perception/detection/trafficlight_recognizer/nodes/roi_pub/roi_pub.cpp create mode 100644 ros/src/computing/perception/detection/trafficlight_recognizer/srv/RecognizeLightState.srv diff --git a/ros/src/.config/rviz/default.rviz b/ros/src/.config/rviz/default.rviz deleted file mode 100644 index 6f4dcded0b2..00000000000 --- a/ros/src/.config/rviz/default.rviz +++ /dev/null @@ -1,690 +0,0 @@ -Panels: - - Class: rviz/Displays - Help Height: 0 - Name: Displays - Property Tree Widget: - Expanded: - - /Global Options1 - - /Camera1/Visibility1 - - /Points Raw1 - - /Points Raw1/Status1 - - /Local Waypoints1/Status1 - - /Vector Map CenterLines1/Namespaces1 - - /Global Path1/Namespaces1 - - /Local Rollouts1/Namespaces1 - - /GlobalPathAnimation1/Status1 - - /OverlayImage1 - - /OK1 - - /WARN1 - - /ERROR1 - - /FATAL1 - Splitter Ratio: 0.695804 - Tree Height: 369 - - Class: rviz/Selection - Name: Selection - - Class: rviz/Tool Properties - Expanded: - - /2D Pose Estimate1 - - /2D Nav Goal1 - - /Publish Point1 - Name: Tool Properties - Splitter Ratio: 0.588679016 - - Class: rviz/Views - Expanded: - - /Current View1 - Name: Views - Splitter Ratio: 0.5 - - Class: rviz/Time - Experimental: false - Name: Time - SyncMode: 0 - SyncSource: Points Map - - Class: integrated_viewer/ImageViewerPlugin - Image topic: ----- - Lane topic: ----- - Name: ImageViewerPlugin - Point size: 3 - Point topic: ----- - Rect topic: ----- - - Class: autoware_rviz_debug/DecisionMakerPanel - Name: DecisionMakerPanel -Visualization Manager: - Class: "" - Displays: - - Alpha: 0.5 - Cell Size: 1 - Class: rviz/Grid - Color: 160; 160; 164 - Enabled: false - Line Style: - Line Width: 0.0299999993 - Value: Lines - Name: Grid - Normal Cell Count: 0 - Offset: - X: 0 - Y: 0 - Z: 0 - Plane: XY - Plane Cell Count: 10 - Reference Frame: - Value: false - - Class: rviz/TF - Enabled: true - Frame Timeout: 15 - Frames: - All Enabled: true - map: - Value: true - sim_base_link: - Value: true - sim_lidar: - Value: true - world: - Value: true - Marker Scale: 5 - Name: TF - Show Arrows: true - Show Axes: true - Show Names: true - Tree: - world: - map: - sim_base_link: - sim_lidar: - {} - Update Interval: 0 - Value: true - - Alpha: 0.0500000007 - Autocompute Intensity Bounds: true - Autocompute Value Bounds: - Max Value: 10 - Min Value: -10 - Value: true - Axis: Z - Channel Name: intensity - Class: rviz/PointCloud2 - Color: 255; 255; 255 - Color Transformer: FlatColor - Decay Time: 0 - Enabled: true - Invert Rainbow: false - Max Color: 255; 255; 255 - Max Intensity: 4096 - Min Color: 0; 0; 0 - Min Intensity: 0 - Name: Points Map - Position Transformer: XYZ - Queue Size: 10 - Selectable: true - Size (Pixels): 2 - Size (m): 0.00999999978 - Style: Points - Topic: /points_map - Unreliable: false - Use Fixed Frame: true - Use rainbow: true - Value: true - - Class: rviz/MarkerArray - Enabled: true - Marker Topic: /vector_map - Name: Vector Map - Namespaces: - cross_road: true - cross_walk: true - road_sign: true - signal: true - stop_line: true - white_line: true - Queue Size: 100 - Value: true - - Class: rviz/Camera - Enabled: false - Image Rendering: overlay - Image Topic: /image_raw - Name: Camera - Overlay Alpha: 0.400000006 - Queue Size: 10 - Transport Hint: raw - Unreliable: false - Value: false - Visibility: - A* Sim Obstacle: true - Behavior State: true - Control Pose: true - Current Pose: true - Detection Range: true - ERROR: true - FATAL: true - Global Path: true - Global Waypoints: true - GlobalPathAnimation: true - Grid: true - Image: true - Local Rollouts: true - Local Waypoints: true - MarkerArray: true - Next Waypoint Mark: true - OK: true - Occupancy Grid Map: true - OverlayImage: true - OverlayText: true - PP Trajectory Mark: true - Points Cluster: true - Points Map: true - Points Raw: true - Safety Box: true - Simulated Obstacle: true - Stixel: true - TF: false - Tracked Contours: true - Value: true - Vector Map: true - Vector Map CenterLines: true - Vehicle Model: true - Velocity (km/h): true - Vscan Points: true - WARN: true - Waypoint Guide: true - Zoom Factor: 1 - - Alpha: 0.300000012 - Autocompute Intensity Bounds: true - Autocompute Value Bounds: - Max Value: 11.8534737 - Min Value: 9.73868942 - Value: true - Axis: Z - Channel Name: intensity - Class: rviz/PointCloud2 - Color: 255; 255; 255 - Color Transformer: AxisColor - Decay Time: 0 - Enabled: true - Invert Rainbow: false - Max Color: 255; 255; 255 - Max Intensity: 137 - Min Color: 0; 0; 0 - Min Intensity: 0 - Name: Points Raw - Position Transformer: XYZ - Queue Size: 10 - Selectable: true - Size (Pixels): 5 - Size (m): 0.00999999978 - Style: Points - Topic: /points_raw - Unreliable: false - Use Fixed Frame: true - Use rainbow: true - Value: true - - Alpha: 0.5 - Autocompute Intensity Bounds: true - Autocompute Value Bounds: - Max Value: 10 - Min Value: -10 - Value: true - Axis: Z - Channel Name: intensity - Class: rviz/PointCloud2 - Color: 255; 255; 0 - Color Transformer: FlatColor - Decay Time: 0 - Enabled: false - Invert Rainbow: false - Max Color: 255; 255; 255 - Max Intensity: 255 - Min Color: 0; 0; 0 - Min Intensity: 255 - Name: Vscan Points - Position Transformer: XYZ - Queue Size: 10 - Selectable: true - Size (Pixels): 3 - Size (m): 0.00999999978 - Style: Points - Topic: /vscan_points - Unreliable: false - Use Fixed Frame: true - Use rainbow: true - Value: false - - Alpha: 1 - Axes Length: 1 - Axes Radius: 0.100000001 - Class: rviz/Pose - Color: 255; 25; 0 - Enabled: false - Head Length: 2 - Head Radius: 2 - Name: Control Pose - Shaft Length: 2 - Shaft Radius: 1 - Shape: Arrow - Topic: /control_pose - Unreliable: false - Value: false - - Alpha: 1 - Axes Length: 1 - Axes Radius: 0.100000001 - Class: rviz/Pose - Color: 255; 170; 255 - Enabled: false - Head Length: 2 - Head Radius: 2 - Name: Current Pose - Shaft Length: 2 - Shaft Radius: 1 - Shape: Arrow - Topic: /ndt_pose - Unreliable: false - Value: false - - Class: rviz/MarkerArray - Enabled: true - Marker Topic: /detection_range - Name: Detection Range - Namespaces: - Crosswalk Detection: true - Decelerate Detection: true - Stop Detection: true - Queue Size: 100 - Value: true - - Class: rviz/Marker - Enabled: true - Marker Topic: /next_target_mark - Name: Next Waypoint Mark - Namespaces: - next_target_marker: true - Queue Size: 100 - Value: true - - Class: rviz/Marker - Enabled: true - Marker Topic: /trajectory_circle_mark - Name: PP Trajectory Mark - Namespaces: - trajectory_circle_marker: true - Queue Size: 100 - Value: true - - Class: rviz/Marker - Enabled: false - Marker Topic: /vscan_linelist - Name: Stixel - Namespaces: - {} - Queue Size: 100 - Value: false - - Alpha: 1 - Class: rviz/RobotModel - Collision Enabled: false - Enabled: true - Links: - All Links Enabled: true - Expand Joint Details: false - Expand Link Details: false - Expand Tree: false - Link Tree Style: Links in Alphabetic Order - Name: Vehicle Model - Robot Description: robot_description - TF Prefix: "" - Update Interval: 0 - Value: true - Visual Enabled: true - - Alpha: 1 - Autocompute Intensity Bounds: true - Autocompute Value Bounds: - Max Value: 10 - Min Value: -10 - Value: true - Axis: Z - Channel Name: intensity - Class: rviz/PointCloud2 - Color: 255; 255; 255 - Color Transformer: RGB8 - Decay Time: 0 - Enabled: true - Invert Rainbow: false - Max Color: 255; 255; 255 - Max Intensity: 4096 - Min Color: 0; 0; 0 - Min Intensity: 0 - Name: Points Cluster - Position Transformer: XYZ - Queue Size: 10 - Selectable: true - Size (Pixels): 5 - Size (m): 0.00999999978 - Style: Points - Topic: /points_cluster - Unreliable: false - Use Fixed Frame: true - Use rainbow: true - Value: true - - Class: rviz/MarkerArray - Enabled: true - Marker Topic: /local_waypoints_mark - Name: Local Waypoints - Namespaces: - local_path_marker: true - local_point_marker: true - local_waypoint_velocity: true - Queue Size: 100 - Value: true - - Class: rviz/MarkerArray - Enabled: true - Marker Topic: /global_waypoints_mark - Name: Global Waypoints - Namespaces: - global_change_flag_lane_1: true - global_lane_waypoint_orientation_marker_1: true - global_velocity_lane_1: true - Queue Size: 100 - Value: true - - Class: rviz/Marker - Enabled: true - Marker Topic: /waypoint_guide - Name: Waypoint Guide - Namespaces: - {} - Queue Size: 100 - Value: true - - Class: rviz/Marker - Enabled: true - Marker Topic: /astar_sim_obstacle - Name: A* Sim Obstacle - Namespaces: - {} - Queue Size: 100 - Value: true - - Alpha: 0.699999988 - Class: rviz/Map - Color Scheme: map - Draw Behind: true - Enabled: true - Name: Occupancy Grid Map - Topic: /grid_map_filter_visualization/distance_transform - Unreliable: false - Use Timestamp: false - Value: true - - Class: rviz/MarkerArray - Enabled: true - Marker Topic: /vector_map_center_lines_rviz - Name: Vector Map CenterLines - Namespaces: - {} - Queue Size: 100 - Value: true - - Class: rviz/MarkerArray - Enabled: true - Marker Topic: /global_waypoints_rviz - Name: Global Path - Namespaces: - {} - Queue Size: 100 - Value: true - - Class: rviz/MarkerArray - Enabled: true - Marker Topic: /local_trajectories - Name: Local Rollouts - Namespaces: - {} - Queue Size: 100 - Value: true - - Class: rviz/MarkerArray - Enabled: true - Marker Topic: /detected_polygons - Name: Tracked Contours - Namespaces: - {} - Queue Size: 100 - Value: true - - Class: rviz/Marker - Enabled: true - Marker Topic: /behavior_state - Name: Behavior State - Namespaces: - {} - Queue Size: 100 - Value: true - - Class: rviz/MarkerArray - Enabled: true - Marker Topic: /AnimateGlobalPlan - Name: GlobalPathAnimation - Namespaces: - {} - Queue Size: 100 - Value: true - - Class: rviz/Marker - Enabled: true - Marker Topic: /safety_border - Name: Safety Box - Namespaces: - {} - Queue Size: 100 - Value: true - - Class: jsk_rviz_plugin/BoundingBoxArray - Enabled: true - Name: Simulated Obstacle - Topic: /dp_planner_tracked_boxes - Unreliable: false - Value: true - alpha: 0.800000012 - color: 25; 255; 0 - coloring: Value - line width: 0.00999999978 - only edge: false - show coords: false - - Buffer length: 100 - Class: jsk_rviz_plugin/Plotter2D - Enabled: true - Name: Velocity (km/h) - Show Value: true - Topic: /linear_velocity_viz - Value: true - auto color change: false - auto scale: true - background color: 0; 0; 0 - backround alpha: 0 - border: true - foreground alpha: 0.699999988 - foreground color: 85; 255; 0 - height: 80 - left: 40 - linewidth: 1 - max color: 255; 0; 0 - max value: 1 - min value: -1 - show caption: true - text size: 8 - top: 30 - update interval: 0.0399999991 - width: 80 - - Align Bottom: false - Background Alpha: 0.800000012 - Background Color: 0; 0; 0 - Class: jsk_rviz_plugin/OverlayText - Enabled: true - Foreground Alpha: 0.800000012 - Foreground Color: 25; 255; 240 - Name: OverlayText - Overtake Color Properties: false - Overtake Position Properties: false - Topic: /ndt_monitor/ndt_info_text - Value: true - font: DejaVu Sans Mono - height: 128 - left: 0 - line width: 2 - text size: 12 - top: 0 - width: 128 - - Class: rviz/Image - Enabled: false - Image Topic: /image_raw - Max Value: 1 - Median window: 5 - Min Value: 0 - Name: Image - Normalize Range: true - Queue Size: 2 - Transport Hint: raw - Unreliable: false - Value: false - - Class: jsk_rviz_plugin/OverlayImage - Enabled: false - Name: OverlayImage - Topic: /image_raw - Value: false - alpha: 0.800000012 - height: 128 - keep aspect ratio: true - left: 128 - top: 128 - width: 640 - - Align Bottom: false - Background Alpha: 0.800000012 - Background Color: 0; 0; 0 - Class: jsk_rviz_plugin/OverlayText - Enabled: true - Foreground Alpha: 0.800000012 - Foreground Color: 25; 255; 240 - Name: OK - Overtake Color Properties: false - Overtake Position Properties: false - Topic: /health_aggregator/ok_text - Value: true - font: DejaVu Sans Mono - height: 128 - left: 0 - line width: 2 - text size: 12 - top: 0 - width: 128 - - Align Bottom: false - Background Alpha: 0.800000012 - Background Color: 0; 0; 0 - Class: jsk_rviz_plugin/OverlayText - Enabled: true - Foreground Alpha: 0.800000012 - Foreground Color: 25; 255; 240 - Name: WARN - Overtake Color Properties: false - Overtake Position Properties: false - Topic: /health_aggregator/warn_text - Value: true - font: DejaVu Sans Mono - height: 128 - left: 0 - line width: 2 - text size: 12 - top: 0 - width: 128 - - Align Bottom: false - Background Alpha: 0.800000012 - Background Color: 0; 0; 0 - Class: jsk_rviz_plugin/OverlayText - Enabled: true - Foreground Alpha: 0.800000012 - Foreground Color: 25; 255; 240 - Name: ERROR - Overtake Color Properties: false - Overtake Position Properties: false - Topic: /health_aggregator/error_text - Value: true - font: DejaVu Sans Mono - height: 128 - left: 0 - line width: 2 - text size: 12 - top: 0 - width: 128 - - Align Bottom: false - Background Alpha: 0.800000012 - Background Color: 0; 0; 0 - Class: jsk_rviz_plugin/OverlayText - Enabled: true - Foreground Alpha: 0.800000012 - Foreground Color: 25; 255; 240 - Name: FATAL - Overtake Color Properties: false - Overtake Position Properties: false - Topic: /health_aggregator/fatal_text - Value: true - font: DejaVu Sans Mono - height: 128 - left: 0 - line width: 2 - text size: 12 - top: 0 - width: 128 - - Class: rviz/MarkerArray - Enabled: true - Marker Topic: /waypoint_saver_marker - Name: MarkerArray - Namespaces: - {} - Queue Size: 100 - Value: true - Enabled: true - Global Options: - Background Color: 48; 48; 48 - Default Light: true - Fixed Frame: map - Frame Rate: 30 - Name: root - Tools: - - Class: rviz/Interact - Hide Inactive Objects: true - - Class: rviz/MoveCamera - - Class: rviz/Select - - Class: rviz/FocusCamera - - Class: rviz/Measure - - Class: rviz/SetInitialPose - Topic: /initialpose - - Class: rviz/SetGoal - Topic: /move_base_simple/goal - - Class: rviz/PublishPoint - Single click: true - Topic: /clicked_point - Value: true - Views: - Current: - Angle: 0.0299999975 - Class: rviz/TopDownOrtho - Enable Stereo Rendering: - Stereo Eye Separation: 0.0599999987 - Stereo Focal Distance: 1 - Swap Stereo Eyes: false - Value: false - Invert Z Axis: false - Name: Current View - Near Clip Distance: 0.00999999978 - Scale: 13.4510489 - Target Frame: base_link - Value: TopDownOrtho (rviz) - X: 0 - Y: 0 - Saved: ~ -Window Geometry: - Camera: - collapsed: false - DecisionMakerPanel: - collapsed: false - Displays: - collapsed: false - Height: 896 - Hide Left Dock: false - Hide Right Dock: true - Image: - collapsed: false - ImageViewerPlugin: - collapsed: false - QMainWindow State: 000000ff00000000fd00000004000000000000021c000002f9fc020000000ffb0000001200530065006c0065006300740069006f006e00000001e10000009b0000006100fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afc00000028000001d0000001ad0100001dfa000000000100000004fb00000024004400650063006900730069006f006e004d0061006b0065007200500061006e0065006c0100000000ffffffff0000015000fffffffb0000000a0049006d0061006700650000000000ffffffff0000005c00fffffffb0000000c00430061006d0065007200610000000000ffffffff0000006700fffffffb000000100044006900730070006c0061007900730100000000000001360000016a00fffffffb0000000a0049006d006100670065010000028e000000d20000000000000000fb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb000000120049006d006100670065005f0072006100770000000000ffffffff0000000000000000fb0000000c00430061006d006500720061000000024e000001710000000000000000fb000000120049006d00610067006500200052006100770100000421000000160000000000000000fb0000000a0049006d00610067006501000002f4000000cb0000000000000000fb0000000a0049006d006100670065010000056c0000026c0000000000000000fb000000220049006d0061006700650056006900650077006500720050006c007500670069006e01000001fe000001230000008700ffffff000000010000010f000002f9fc0200000003fb0000000a005600690065007700730000000028000002f9000000ad00fffffffb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000001200530065006c0065006300740069006f006e010000025a000000b20000000000000000000000020000073f000000a8fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004bf0000003bfc0100000002fb0000000800540069006d00650100000000000004bf0000030000fffffffb0000000800540069006d006501000000000000045000000000000000000000029d000002f900000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 - Selection: - collapsed: false - Time: - collapsed: false - Tool Properties: - collapsed: false - Views: - collapsed: true - Width: 1215 - X: 65 - Y: 24 diff --git a/ros/src/computing/perception/detection/trafficlight_recognizer/CMakeLists.txt b/ros/src/computing/perception/detection/trafficlight_recognizer/CMakeLists.txt index d94e516e1e3..52b40954a64 100644 --- a/ros/src/computing/perception/detection/trafficlight_recognizer/CMakeLists.txt +++ b/ros/src/computing/perception/detection/trafficlight_recognizer/CMakeLists.txt @@ -33,6 +33,7 @@ find_package(catkin REQUIRED COMPONENTS vector_map camera_info_manager image_transport + message_generation ) find_package(OpenCV REQUIRED) @@ -70,6 +71,18 @@ include_directories( ${Eigen3_INCLUDE_DIRS} ) +catkin_python_setup() + +add_service_files( + FILES RecognizeLightState.srv + ) + +generate_messages( + DEPENDENCIES + std_msgs + sensor_msgs + ) + catkin_package( INCLUDE_DIRS ${EIGEN3_INCLUDE_DIRS} CATKIN_DEPENDS @@ -87,6 +100,7 @@ catkin_package( vector_map_server visualization_msgs waypoint_follower + message_runtime LIBRARIES libcontext ) @@ -213,22 +227,6 @@ target_link_libraries(roi_extractor add_dependencies(region_tlr ${catkin_EXPORTED_TARGETS}) -### roi_pub ### -include_directories( - ${catkin_INCLUDE_DIRS} - ${OpenCV_INCLUDE_DIRS} -) - -add_executable(roi_pub - nodes/roi_pub/roi_pub.cpp - ) - -target_link_libraries(roi_pub - ${catkin_LIBRARIES} - ${OpenCV_LIBS} - libcontext -) - ### label_maker ### find_package(Qt5Core REQUIRED) find_package(Qt5Gui REQUIRED) @@ -275,7 +273,7 @@ target_link_libraries(label_maker ) -install(TARGETS region_tlr feat_proj tlr_tuner roi_extractor roi_pub label_maker libcontext tl_switch +install(TARGETS region_tlr feat_proj tlr_tuner roi_extractor label_maker libcontext tl_switch ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} @@ -390,8 +388,34 @@ if (CUDA_FOUND) find_package(TensorFlow QUIET) if (TENSORFLOW_FOUND) - catkin_python_setup() - catkin_install_python(PROGRAMS nodes/region_tlr_tensorflow/trafficlight_recognizer/region_tlr_tensorflow.py + add_executable(region_tlr_tensorflow + nodes/region_tlr_tensorflow/region_tlr_tensorflow.cpp + nodes/region_tlr_tensorflow/region_tlr_tensorflow.h + ) + + target_include_directories(region_tlr_tensorflow PRIVATE + ${catkin_INCLUDE_DIRS} + ${OpenCV_LIBRARIES} + ) + + target_link_libraries(region_tlr_tensorflow + ${catkin_LIBRARIES} + ${OpenCV_LIBRARIES} + libcontext + ) + + add_dependencies(region_tlr_tensorflow + ${catkin_EXPORTED_TARGETS} + ${trafficlight_recognizer_EXPORTED_TARGETS} + ) + + install(TARGETS region_tlr_tensorflow + ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} + ) + + catkin_install_python(PROGRAMS nodes/region_tlr_tensorflow/trafficlight_recognizer/tensorflow_tlr.py DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}) else () message("'CuDNN' or 'tensorflow' is not installed. 'region_tlr_tensorflow' will not be built.") diff --git a/ros/src/computing/perception/detection/trafficlight_recognizer/interface.yaml b/ros/src/computing/perception/detection/trafficlight_recognizer/interface.yaml index 762eddc98b2..b7256de6f54 100644 --- a/ros/src/computing/perception/detection/trafficlight_recognizer/interface.yaml +++ b/ros/src/computing/perception/detection/trafficlight_recognizer/interface.yaml @@ -13,14 +13,11 @@ publish: [/light_color, /sound_player, /tlr_result, /tlr_superimpose_image] subscribe: [/image_raw, /roi_signal] - name: /region_tlr_tensorflow - publish: [/light_color, /sound_player] - subscribe: [/tlr_roi_image] + publish: [/light_color, /sound_player, /tlr_roi_image, /tlr_result, /tlr_superimpose_image] + subscribe: [/image_raw, /roi_signal] - name: /roi_extractor publish: [] subscribe: [/image_raw, /roi_signal] -- name: /roi_pub - publish: [/tlr_roi_image, /tlr_result, /tlr_superimpose_image] - subscribe: [/image_raw, /roi_signal, /config/superimpose] - name: /light_color_switch publish: [/light_color] subscribe: [/camera_light_color, /ams_light_color] diff --git a/ros/src/computing/perception/detection/trafficlight_recognizer/launch/traffic_light_recognition_tensorflow.launch b/ros/src/computing/perception/detection/trafficlight_recognizer/launch/traffic_light_recognition_tensorflow.launch index bdfbc6f0f36..0ec50e94497 100644 --- a/ros/src/computing/perception/detection/trafficlight_recognizer/launch/traffic_light_recognition_tensorflow.launch +++ b/ros/src/computing/perception/detection/trafficlight_recognizer/launch/traffic_light_recognition_tensorflow.launch @@ -3,18 +3,18 @@ - + - + - + diff --git a/ros/src/computing/perception/detection/trafficlight_recognizer/nodes/region_tlr_tensorflow/region_tlr_tensorflow.cpp b/ros/src/computing/perception/detection/trafficlight_recognizer/nodes/region_tlr_tensorflow/region_tlr_tensorflow.cpp new file mode 100644 index 00000000000..95cfcadb90a --- /dev/null +++ b/ros/src/computing/perception/detection/trafficlight_recognizer/nodes/region_tlr_tensorflow/region_tlr_tensorflow.cpp @@ -0,0 +1,535 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "Context.h" +#include "region_tlr_tensorflow.h" + +RegionTLRTensorFlowROSNode::RegionTLRTensorFlowROSNode() : + image_topic_name_("/image_raw"), + kAdvertiseInLatch_(true), + kTrafficLightRed(0), + kTrafficLightGreen(1), + kTrafficLightUnknown(2), + kStringRed("red signal"), + kStringGreen("green signal"), + kStringUnknown("") +{ +} + +RegionTLRTensorFlowROSNode::~RegionTLRTensorFlowROSNode() +{ +} + +void RegionTLRTensorFlowROSNode::RunRecognition() +{ + GetROSParam(); // get execution parameters from ROS parameter server + StartSubscribersAndPublishers(); + ROS_INFO("Node initialized, waiting for signals from feat_proj..."); + ros::spin(); +} + +void RegionTLRTensorFlowROSNode::ImageRawCallback(const sensor_msgs::ImageConstPtr &msg) +{ + auto se_frame = cv_bridge::toCvShare(msg); + + if (msg->encoding == "bgr8") + cv::cvtColor(se_frame->image, frame_, cv::COLOR_BGR2RGB); + else if (msg->encoding == "bayer_bggr8") + cv::cvtColor(se_frame->image, frame_, cv::COLOR_BayerRG2RGB); + else if (msg->encoding == "bayer_rggb8") + cv::cvtColor(se_frame->image, frame_, cv::COLOR_BayerBG2RGB); + else + ROS_WARN("Received image of unhandled encoding type."); + + frame_header_ = msg->header; +} + +void RegionTLRTensorFlowROSNode::ROISignalCallback(const autoware_msgs::Signals::ConstPtr &extracted_pos) +{ + static ros::Time previous_timestamp; + + // Abort this callback if a new image is not available + if (frame_.empty() || + frame_header_.stamp == previous_timestamp) + return; + + // Acquire signal position on the image + Context::SetContexts(contexts_, extracted_pos, frame_.rows, frame_.cols); + + // Recognize the color of the traffic light + int counter = 0; + for (Context &context: contexts_) + { + if (context.topLeft.x > context.botRight.x) + continue; + + counter++; + + // Extract ROI + cv::Mat roi = frame_(cv::Rect(context.topLeft, context.botRight)).clone(); + cv_bridge::CvImage converter; + converter.header = frame_header_; + converter.encoding = sensor_msgs::image_encodings::RGB8; + converter.image = roi; + sensor_msgs::ImagePtr roi_img = converter.toImageMsg(); + + // Publish the ROI image for top signal in vector (top signal has largest estimated + // radius in every signals projected in a image) + if (counter == 1) + { + roi_image_publisher.publish(converter.toImageMsg()); + } + + // Get current state of traffic light from current frame + trafficlight_recognizer::RecognizeLightState srv; + srv.request.roi_image = *roi_img; + LightState current_state = LightState::UNDEFINED; + + double confidence = 0.0; + if (srv_client.call(srv)) + { + ROS_INFO("light state: %d (%f)", srv.response.class_id, srv.response.confidence); + current_state = (LightState)srv.response.class_id; + confidence = srv.response.confidence; + } + else + { + ROS_ERROR("Failed to call service recognize_light_state"); + return; + } + + // The state of the traffic light WON'T be changed + // unless the new state is found at least change_state_threshold_ times + if (confidence >= score_threshold_) + DetermineState(current_state, context); + } + + if (extracted_pos->Signals.size() == 0) + std::cout << "No signals in the image" << std::endl; + else + { + // Publish recognition result + PublishTrafficLight(contexts_); + } + + PublishString(contexts_); + PublishMarkerArray(contexts_); + PublishImage(contexts_); + + // Save timestamp of this frame so that same frame has never been process again + previous_timestamp = frame_header_.stamp; +} + +void RegionTLRTensorFlowROSNode::GetROSParam() +{ + ros::NodeHandle private_node_handle("~"); + + private_node_handle.param("image_raw_topic", image_topic_name_, "/image_raw"); + ROS_INFO("image_raw_topic: %s", image_topic_name_.c_str()); + + private_node_handle.param("change_state_threshold", change_state_threshold_, 2); + ROS_INFO("change_state_threshold: %d", change_state_threshold_); + + private_node_handle.param("score_threshold", score_threshold_, 0.6); + ROS_INFO("score_threshold: %f", score_threshold_); +} + +void RegionTLRTensorFlowROSNode::StartSubscribersAndPublishers() +{ + ros::NodeHandle node_handle; + + // Register subscribers + image_transport::ImageTransport it(node_handle); + image_subscriber = it.subscribe(image_topic_name_, + 1, + &RegionTLRTensorFlowROSNode::ImageRawCallback, + this); + + roi_signal_subscriber = node_handle.subscribe("/roi_signal", + 1, + &RegionTLRTensorFlowROSNode::ROISignalCallback, + this); + + // Register publishers + signal_state_publisher = node_handle.advertise("light_color", 1); + signal_state_string_publisher = node_handle.advertise("sound_player", 1); + marker_publisher = node_handle.advertise("tlr_result", 1, kAdvertiseInLatch_); + superimpose_image_publisher = node_handle.advertise("tlr_superimpose_image", 1); + roi_image_publisher = node_handle.advertise("tlr_roi_image", 1); +} + +/*! + * DetermineState works as a latch to reduce the chance of sudden changes in the state of the traffic light, caused by + * misclassifications in the detector. To change the traffic light state, the new candidate should be found at + * least kChangeStateThreshold times. + * @param current_state the current state of the traffic light as reported by the classifier. + * @param in_out_signal_context the object containing the data of the current Traffic Light instance. + */ +void RegionTLRTensorFlowROSNode::DetermineState(LightState in_current_state, + Context& in_out_signal_context) +{ + //if reported state by classifier is different than the previously stored + if (in_current_state != in_out_signal_context.lightState) + { + //and also different from the previous difference + if (in_current_state != in_out_signal_context.newCandidateLightState) + { + //set classifier result as a candidate + in_out_signal_context.newCandidateLightState = in_current_state; + in_out_signal_context.stateJudgeCount = 0; + } + else + { + //if classifier returned the same result previously, then increase its confidence + in_out_signal_context.stateJudgeCount++; + if (in_out_signal_context.stateJudgeCount > change_state_threshold_) + in_out_signal_context.stateJudgeCount = change_state_threshold_; // prevent overflow + + //if new candidate has been found enough times, change state to the new candidate + if (in_out_signal_context.stateJudgeCount >= change_state_threshold_) + { + in_out_signal_context.lightState = in_current_state; + } + } + } +} + +void RegionTLRTensorFlowROSNode::PublishTrafficLight(std::vector contexts) +{ + autoware_msgs::TrafficLight topic; + static int32_t previous_state = kTrafficLightUnknown; + topic.traffic_light = kTrafficLightUnknown; + + for (const auto ctx: contexts) + { + switch (ctx.lightState) + { + case GREEN: + topic.traffic_light = kTrafficLightGreen; + break; + case YELLOW: + case RED: + topic.traffic_light = kTrafficLightRed; + break; + case UNDEFINED: + topic.traffic_light = kTrafficLightUnknown; + break; + } + + // Publish the first state in contexts, + // which has largest estimated radius of signal. + // This program assume that the signal which has the largest estimated radius + // equal the nearest one from camera. + if (topic.traffic_light != kTrafficLightUnknown) + { + break; + } + } + + // If state changes from previous one, publish it + static ros::Time prev_time = ros::Time::now(); + double timeout = 10.0; //seconds + if (topic.traffic_light != previous_state || ros::Time::now() - prev_time > ros::Duration(timeout)) + { + prev_time = ros::Time::now(); + signal_state_publisher.publish(topic); + previous_state = topic.traffic_light; + } +} + +void RegionTLRTensorFlowROSNode::PublishString(std::vector contexts) +{ + std_msgs::String topic; + static std::string previous_state = kStringUnknown; + topic.data = kStringUnknown; + for (const auto ctx: contexts) + { + switch (ctx.lightState) + { + case GREEN: + topic.data = kStringGreen; + break; + case YELLOW: + case RED: + topic.data = kStringRed; + break; + case UNDEFINED: + topic.data = kStringUnknown; + break; + } + + // Publish the first state in contexts, + // which has largest estimated radius of signal. + // This program assume that the signal which has the largest estimated radius + // equal the nearest one from camera. + if (topic.data != kStringUnknown) + { + break; + } + } + + // If state changes from previous one, publish it + if (topic.data != previous_state) + { + signal_state_string_publisher.publish(topic); + previous_state = topic.data; + } +} + +void RegionTLRTensorFlowROSNode::PublishMarkerArray(std::vector contexts) +{ + // Define color constants + std_msgs::ColorRGBA color_black; + color_black.r = 0.0f; + color_black.g = 0.0f; + color_black.b = 0.0f; + color_black.a = 1.0f; + + std_msgs::ColorRGBA color_red; + color_red.r = 1.0f; + color_red.g = 0.0f; + color_red.b = 0.0f; + color_red.a = 1.0f; + + std_msgs::ColorRGBA color_yellow; + color_yellow.r = 1.0f; + color_yellow.g = 1.0f; + color_yellow.b = 0.0f; + color_yellow.a = 1.0f; + + std_msgs::ColorRGBA color_green; + color_green.r = 0.0f; + color_green.g = 1.0f; + color_green.b = 0.0f; + color_green.a = 1.0f; + + // publish all result as ROS MarkerArray + for (const auto ctx: contexts) + { + visualization_msgs::MarkerArray signal_set; + visualization_msgs::Marker red_light, yellow_light, green_light; + + // Set the frame ID + red_light.header.frame_id = "map"; + yellow_light.header.frame_id = "map"; + green_light.header.frame_id = "map"; + + // Set the namespace and ID for this markers + red_light.ns = "tlr_result_red"; + red_light.id = ctx.signalID; + + yellow_light.ns = "tlr_result_yellow"; + yellow_light.id = ctx.signalID; + + green_light.ns = "tlr_result_green"; + green_light.id = ctx.signalID; + + // Set the markers type + red_light.type = visualization_msgs::Marker::SPHERE; + yellow_light.type = visualization_msgs::Marker::SPHERE; + green_light.type = visualization_msgs::Marker::SPHERE; + + // Set the pose of the markers + red_light.pose.position.x = ctx.redCenter3d.x; + red_light.pose.position.y = ctx.redCenter3d.y; + red_light.pose.position.z = ctx.redCenter3d.z; + red_light.pose.orientation.x = 0.0; + red_light.pose.orientation.y = 0.0; + red_light.pose.orientation.z = 0.0; + red_light.pose.orientation.w = 0.0; + + yellow_light.pose.position.x = ctx.yellowCenter3d.x; + yellow_light.pose.position.y = ctx.yellowCenter3d.y; + yellow_light.pose.position.z = ctx.yellowCenter3d.z; + yellow_light.pose.orientation.x = 0.0; + yellow_light.pose.orientation.y = 0.0; + yellow_light.pose.orientation.z = 0.0; + yellow_light.pose.orientation.w = 0.0; + + green_light.pose.position.x = ctx.greenCenter3d.x; + green_light.pose.position.y = ctx.greenCenter3d.y; + green_light.pose.position.z = ctx.greenCenter3d.z; + green_light.pose.orientation.x = 0.0; + green_light.pose.orientation.y = 0.0; + green_light.pose.orientation.z = 0.0; + green_light.pose.orientation.w = 0.0; + + // Set the scale of the markers. We assume lamp radius is 30cm in real world + red_light.scale.x = 0.3; + red_light.scale.y = 0.3; + red_light.scale.z = 0.3; + + yellow_light.scale.x = 0.3; + yellow_light.scale.y = 0.3; + yellow_light.scale.z = 0.3; + + green_light.scale.x = 0.3; + green_light.scale.y = 0.3; + green_light.scale.z = 0.3; + + // Set the color for each marker + switch (ctx.lightState) + { + case GREEN: + red_light.color = color_black; + yellow_light.color = color_black; + green_light.color = color_green; + break; + case YELLOW: + red_light.color = color_black; + yellow_light.color = color_yellow; + green_light.color = color_black; + break; + case RED: + red_light.color = color_red; + yellow_light.color = color_black; + green_light.color = color_black; + break; + case UNDEFINED: + red_light.color = color_black; + yellow_light.color = color_black; + green_light.color = color_black; + break; + } + + red_light.lifetime = ros::Duration(0.1); + yellow_light.lifetime = ros::Duration(0.1); + green_light.lifetime = ros::Duration(0.1); + + // Pack each light marker into one + signal_set.markers.push_back(red_light); + signal_set.markers.push_back(yellow_light); + signal_set.markers.push_back(green_light); + + // Publish + marker_publisher.publish(signal_set); + } +} + +void RegionTLRTensorFlowROSNode::PublishImage(std::vector contexts) +{ + // Copy the frame image for output + cv::Mat result_image; + cv::cvtColor(frame_, result_image, cv::COLOR_RGB2BGR); + + // Define information for written label + std::string label; + int kFontFace = cv::FONT_HERSHEY_COMPLEX_SMALL; + int kThickness = 1; + double kFontScale = 0.8; + int font_baseline = 0; + CvScalar label_color; + + int counter = 0; + for (const auto ctx: contexts) + { + // Draw superimpose result on image + + // circle(result_image, ctx.redCenter, ctx.lampRadius, CV_RGB(255, 0, 0), 1, 0); + // circle(result_image, ctx.yellowCenter, ctx.lampRadius, CV_RGB(255, 255, 0), 1, 0); + // circle(result_image, ctx.greenCenter, ctx.lampRadius, CV_RGB(0, 255, 0), 1, 0); + + // Draw recognition result on image + switch (ctx.lightState) + { + case GREEN: + label = "GREEN"; + label_color = CV_RGB(0, 255, 0); + break; + case YELLOW: + label = "YELLOW"; + label_color = CV_RGB(255, 255, 0); + break; + case RED: + label = "RED"; + label_color = CV_RGB(255, 0, 0); + break; + case UNDEFINED: + label = "UNKNOWN"; + label_color = CV_RGB(0, 0, 0); + } + + cv::rectangle(result_image, ctx.topLeft, ctx.botRight, label_color, 2); + + if (ctx.leftTurnSignal) + { + label += " LEFT"; + } + if (ctx.rightTurnSignal) + { + label += " RIGHT"; + } + + // Add lane ID text + label += " " + std::to_string(ctx.closestLaneId); + cv::Point label_origin = cv::Point(ctx.topLeft.x, ctx.botRight.y + font_baseline); + cv::putText(result_image, label, label_origin, kFontFace, kFontScale, label_color, kThickness); + } + + std_msgs::String topic; + for (const auto ctx: contexts) + { + switch (ctx.lightState) + { + case GREEN: + topic.data = kStringGreen; + label_color = CV_RGB(0, 255, 0); + break; + case YELLOW: + case RED: + topic.data = kStringRed; + label_color = CV_RGB(255, 0, 0); + break; + case UNDEFINED: + topic.data = kStringUnknown; + label_color = CV_RGB(0, 0, 0); + } + + // Publish the first state in contexts, + // which has largest estimated radius of signal. + // This program assume that the signal which has the largest estimated radius + // equal the nearest one from camera. + if (topic.data != kStringUnknown) + break; + } + + // Add text with state of closest signal + kFontFace = cv::FONT_HERSHEY_TRIPLEX; + kFontScale *= 3; + kThickness *= 3; + std::transform(topic.data.begin(), topic.data.end(), topic.data.begin(), ::toupper); + cv::Size textSize = cv::getTextSize(topic.data, kFontFace, kFontScale, kThickness, &font_baseline); + cv::Point label_origin((frame_.cols - textSize.width) / 2, 3 * (frame_.rows + textSize.height) / 4); + cv::putText(result_image, topic.data, label_origin, kFontFace, kFontScale, label_color, kThickness); + + // Publish superimpose result image + cv_bridge::CvImage converter; + converter.header = frame_header_; + converter.encoding = sensor_msgs::image_encodings::BGR8; + converter.image = result_image; + superimpose_image_publisher.publish(converter.toImageMsg()); +} + +int main(int argc, char *argv[]) +{ + // Initialize ros node + ros::init(argc, argv, "region_tlr_tensorflow_node"); + ros::NodeHandle n; + + // Create RegionTLRTensorFlowROSNode class object and do initialization + RegionTLRTensorFlowROSNode region_tlr_tensorflow_ros_node; + ros::service::waitForService("recognize_light_state", -1); + region_tlr_tensorflow_ros_node.srv_client = n.serviceClient("recognize_light_state"); + + // Start recognition process + region_tlr_tensorflow_ros_node.RunRecognition(); + + return 0; +} diff --git a/ros/src/computing/perception/detection/trafficlight_recognizer/nodes/region_tlr_tensorflow/region_tlr_tensorflow.h b/ros/src/computing/perception/detection/trafficlight_recognizer/nodes/region_tlr_tensorflow/region_tlr_tensorflow.h new file mode 100644 index 00000000000..ca6e2560303 --- /dev/null +++ b/ros/src/computing/perception/detection/trafficlight_recognizer/nodes/region_tlr_tensorflow/region_tlr_tensorflow.h @@ -0,0 +1,80 @@ +#ifndef REGION_TLR_TENSORFLOW_H +#define REGION_TLR_TENSORFLOW_H + +#include +#include +#include +#include + +#include +#include + +#include +#include + +#include "Context.h" +#include "autoware_msgs/Signals.h" + +class RegionTLRTensorFlowROSNode +{ +public: + RegionTLRTensorFlowROSNode(); + ~RegionTLRTensorFlowROSNode(); + + void RunRecognition(); + void ImageRawCallback(const sensor_msgs::ImageConstPtr &msg); + void ROISignalCallback(const autoware_msgs::Signals::ConstPtr &extracted_pos); + + // The vector of data structure to save traffic light state, position, ...etc + std::vector contexts_; + + // Service client + ros::ServiceClient srv_client; + +private: + void GetROSParam(); + void StartSubscribersAndPublishers(); + void DetermineState(LightState in_current_state, Context& in_out_signal_context); + void PublishTrafficLight(std::vector contexts); + void PublishString(std::vector contexts); + void PublishMarkerArray(std::vector contexts); + void PublishImage(std::vector contexts); + void SuperimposeCb(const std_msgs::Bool::ConstPtr &config_msg); + + // Execution parameter + std::string image_topic_name_; + double score_threshold_; + int change_state_threshold_;// The threshold of state detected times to accept the state change + bool swap_pole_lane_id; + + // Subscribers + image_transport::Subscriber image_subscriber; + ros::Subscriber roi_signal_subscriber; + ros::Subscriber superimpose_sub; + + // Publishers + ros::Publisher signal_state_publisher; + ros::Publisher signal_state_string_publisher; + ros::Publisher marker_publisher; + ros::Publisher superimpose_image_publisher; + ros::Publisher roi_image_publisher; + + // Flag to show topic will be published in latch manner + bool kAdvertiseInLatch_; + + // A frame image acquired from topic + cv::Mat frame_; + + // Timestamp of a frame in process + std_msgs::Header frame_header_; + + // constant values to pass recognition states to other nodes + const int32_t kTrafficLightRed; + const int32_t kTrafficLightGreen; + const int32_t kTrafficLightUnknown; + const std::string kStringRed; + const std::string kStringGreen; + const std::string kStringUnknown; +}; + +#endif // REGION_TLR_TENSORFLOW_H diff --git a/ros/src/computing/perception/detection/trafficlight_recognizer/nodes/region_tlr_tensorflow/trafficlight_recognizer/__init__.py b/ros/src/computing/perception/detection/trafficlight_recognizer/nodes/region_tlr_tensorflow/trafficlight_recognizer/__init__.py index 43ae9b13d74..e265ba34fd4 100644 --- a/ros/src/computing/perception/detection/trafficlight_recognizer/nodes/region_tlr_tensorflow/trafficlight_recognizer/__init__.py +++ b/ros/src/computing/perception/detection/trafficlight_recognizer/nodes/region_tlr_tensorflow/trafficlight_recognizer/__init__.py @@ -1 +1 @@ -from region_tlr_tensorflow import * +from tensorflow_tlr import * diff --git a/ros/src/computing/perception/detection/trafficlight_recognizer/nodes/region_tlr_tensorflow/trafficlight_recognizer/region_tlr_tensorflow.py b/ros/src/computing/perception/detection/trafficlight_recognizer/nodes/region_tlr_tensorflow/trafficlight_recognizer/region_tlr_tensorflow.py deleted file mode 100755 index a6308f17eaf..00000000000 --- a/ros/src/computing/perception/detection/trafficlight_recognizer/nodes/region_tlr_tensorflow/trafficlight_recognizer/region_tlr_tensorflow.py +++ /dev/null @@ -1,128 +0,0 @@ -#!/usr/bin/env python - -import rospy -from sensor_msgs.msg import Image -from std_msgs.msg import String -from cv_bridge import CvBridge -import cv2 -import numpy as np -import tensorflow as tf -from keras.models import load_model -from keras.preprocessing.image import img_to_array -from autoware_msgs.msg import TrafficLight - -USE_ALT_COLORSPACE = False -TARGET_SIZE = (32, 32) -NUM_CHANNELS = 3 -IDX_DEBOUNCE_THRESHOLD = 2 -CONFIDENCE_THRESHOLD = 0.6 -PUB_TIMEOUT = 10.0 # seconds -ROI_IMG_TIMEOUT = 1.0 # seconds -states = ['red', 'green', 'off'] -# internal_state_map = {0:'green', 1:'off', 2:'red', 3:'yellow' } -classifier_state_map = {0: 1, 1: 2, 2: 0, 3: 0} # note, treating yellow as red - -classifier_state_strings = {0: 'red signal', 1: 'green signal', 2: ''} - -config = tf.ConfigProto() -config.gpu_options.allow_growth = True -session = tf.Session(config=config) - -cv_bridge = CvBridge() -idx_debounce_count = 0 -last_pub_state_idx = -1 -last_debounce_state_idx = -1 -img_timer = None - -result_msg = TrafficLight() - - -def preprocess_image(img): - out_img = cv2.cvtColor(img, cv2.COLOR_BGR2YCrCb) - return out_img - - -def ROI_image_callback(image_msg): - global idx_debounce_count, \ - IDX_DEBOUNCE_THRESHOLD, \ - last_pub_state_idx, \ - last_debounce_state_idx, \ - last_pub_time, \ - img_timer - - if img_timer is not None: - img_timer.shutdown() - - img_timer = rospy.Timer(rospy.Duration(ROI_IMG_TIMEOUT), ImgTimeoutCallback) - last_ROI_img_time = rospy.get_rostime() - - # Resize the input image then feed it into the NN for prediction - cv_image = cv_bridge.imgmsg_to_cv2(image_msg, "passthrough") - - if USE_ALT_COLORSPACE: - cv_image = preprocess_image(cv_image) - - img = cv2.resize(cv_image, TARGET_SIZE, interpolation=cv2.INTER_LINEAR) - img = img.astype("float") / 255.0 - img = img_to_array(img) - img = np.expand_dims(img, axis=0) - - proba = nn_model.predict(img) - confidence = np.amax(proba) - predicted_state = nn_model.predict_classes(img) - - idx = -1 - if confidence >= CONFIDENCE_THRESHOLD: - # Get the prediction - idx = np.argmax(proba) - idx = classifier_state_map[idx] - - # Debounce the prediction before publishing - if idx == last_debounce_state_idx: - idx_debounce_count += 1 - if idx_debounce_count > IDX_DEBOUNCE_THRESHOLD: - idx_debounce_count = IDX_DEBOUNCE_THRESHOLD # prevent overflow - else: - last_debounce_state_idx = idx - idx_debounce_count = 0 - - if idx_debounce_count >= IDX_DEBOUNCE_THRESHOLD: - # Only consider publishing debounced states - if last_debounce_state_idx != last_pub_state_idx or \ - (rospy.get_rostime() - last_pub_time > rospy.Duration(PUB_TIMEOUT) and - last_pub_state_idx != 2): - # Only publish when state changes or a timeout occurs (but only want to repeat non-"unknown" states) - result_msg.traffic_light = last_debounce_state_idx - light_color_pub.publish(result_msg) - - if last_debounce_state_idx != last_pub_state_idx: - light_color_string_pub.publish(classifier_state_strings[last_debounce_state_idx]) - - last_pub_state_idx = last_debounce_state_idx - last_pub_time = rospy.get_rostime() - - -def ImgTimeoutCallback(event): - global last_pub_state_idx, last_pub_time - if last_pub_state_idx != 2: - result_msg.traffic_light = 2 - light_color_pub.publish(result_msg) - light_color_string_pub.publish(classifier_state_strings[2]) - last_pub_state_idx = 2 - last_pub_time = rospy.get_rostime() - -rospy.init_node('tlr_classifier') - -nn_model_path = rospy.get_param('~nn_model_path') -nn_model = load_model(nn_model_path) - -# Have to do this or the prediction in the callback fails -proba = nn_model.predict(np.zeros((1, TARGET_SIZE[0], TARGET_SIZE[1], NUM_CHANNELS))) - -rospy.Subscriber('tlr_roi_image', Image, ROI_image_callback, queue_size=1) -light_color_pub = rospy.Publisher('light_color', TrafficLight, queue_size=1) -light_color_string_pub = rospy.Publisher('sound_player', String, queue_size=1) - -last_pub_time = rospy.get_rostime() - -rospy.spin() diff --git a/ros/src/computing/perception/detection/trafficlight_recognizer/nodes/region_tlr_tensorflow/trafficlight_recognizer/tensorflow_tlr.py b/ros/src/computing/perception/detection/trafficlight_recognizer/nodes/region_tlr_tensorflow/trafficlight_recognizer/tensorflow_tlr.py new file mode 100755 index 00000000000..2c48c1f37f2 --- /dev/null +++ b/ros/src/computing/perception/detection/trafficlight_recognizer/nodes/region_tlr_tensorflow/trafficlight_recognizer/tensorflow_tlr.py @@ -0,0 +1,69 @@ +#!/usr/bin/env python + +from sensor_msgs.msg import Image +from std_msgs.msg import String, Float32 +from trafficlight_recognizer.srv import * +import cv2 +import numpy as np +import rospy +from cv_bridge import CvBridge +import tensorflow as tf +from keras.models import load_model +from keras.preprocessing.image import img_to_array + +class RegionTlrTensorFlow: + def __init__(self): + self.USE_ALT_COLORSPACE = False + self.TARGET_SIZE = (32, 32) + self.NUM_CHANNELS = 3 + self.CLASSIFIER_STATE_MAP = {0:0, 1:3, 2:2, 3:1} # map from trained NN ordering to Autoware ordering + + self.cv_bridge = CvBridge() + + def preprocess_image(self, img): + if self.USE_ALT_COLORSPACE: + out_img = cv2.cvtColor(img, cv2.COLOR_BGR2YCrCb) + else: + out_img = img.copy() + + out_img = cv2.resize(out_img, self.TARGET_SIZE, interpolation=cv2.INTER_LINEAR) + out_img = out_img.astype("float") / 255.0 # normalize to [0, 1] + out_img = img_to_array(out_img) + out_img = np.expand_dims(out_img, axis=0) # add dimension for batch index + + return out_img + + def recognize_light_state(self, req): + # Prepare the input image then feed it into the NN for prediction + cv_image = self.cv_bridge.imgmsg_to_cv2(req.roi_image, "passthrough") + img = self.preprocess_image(cv_image) + + # Make the class prediction for this image and get a confidence value + proba = self.nn_model.predict(img) + confidence = np.amax(proba) + class_id = self.CLASSIFIER_STATE_MAP[np.argmax(proba)] + return [class_id, confidence] + + def run(self): + rospy.init_node('tensorflow_tlr') + + # Workaround for cuDNN issue + config = tf.ConfigProto() + config.gpu_options.allow_growth = True + session = tf.Session(config=config) + + # Setup the neural network + self.nn_model_path = rospy.get_param('~nn_model_path') + self.nn_model = load_model(self.nn_model_path) + + # Have to do this or the prediction in the callback fails + proba = self.nn_model.predict(np.zeros((1, self.TARGET_SIZE[0], self.TARGET_SIZE[1], self.NUM_CHANNELS))) + + # Setup service + self.service = rospy.Service('recognize_light_state', RecognizeLightState, self.recognize_light_state) + + rospy.spin() + +if __name__ == "__main__": + region_tlr_tensorflow = RegionTlrTensorFlow() + region_tlr_tensorflow.run() diff --git a/ros/src/computing/perception/detection/trafficlight_recognizer/nodes/roi_pub/roi_pub.cpp b/ros/src/computing/perception/detection/trafficlight_recognizer/nodes/roi_pub/roi_pub.cpp deleted file mode 100644 index a9d314b2d18..00000000000 --- a/ros/src/computing/perception/detection/trafficlight_recognizer/nodes/roi_pub/roi_pub.cpp +++ /dev/null @@ -1,332 +0,0 @@ -#include -#include -#include -#include -#include - -#include -#include -#include - -#include -#include -#include -#include - -static const std::string WINDOW_NAME = "superimpose result"; - -// A frame image acquired from topic -cv::Mat frame_; - -std::string image_topic_name; -bool swap_pole_lane_id; - -// Timestamp of a frame in process -std_msgs::Header frame_header_; - -// Publishers -ros::Publisher roi_image_publisher; -ros::Publisher marker_publisher; -ros::Publisher superimpose_image_publisher; - -void PublishMarkerArray(std::vector contexts) -{ - // Define color constants - std_msgs::ColorRGBA color_black; - color_black.r = 0.0f; - color_black.g = 0.0f; - color_black.b = 0.0f; - color_black.a = 1.0f; - - std_msgs::ColorRGBA color_red; - color_red.r = 1.0f; - color_red.g = 0.0f; - color_red.b = 0.0f; - color_red.a = 1.0f; - - std_msgs::ColorRGBA color_yellow; - color_yellow.r = 1.0f; - color_yellow.g = 1.0f; - color_yellow.b = 0.0f; - color_yellow.a = 1.0f; - - std_msgs::ColorRGBA color_green; - color_green.r = 0.0f; - color_green.g = 1.0f; - color_green.b = 0.0f; - color_green.a = 1.0f; - - // publish all result as ROS MarkerArray - for (const auto ctx : contexts) - { - visualization_msgs::MarkerArray signal_set; - visualization_msgs::Marker red_light, yellow_light, green_light; - - // Set the frame ID - red_light.header.frame_id = "map"; - yellow_light.header.frame_id = "map"; - green_light.header.frame_id = "map"; - - // Set the namespace and ID for this markers - red_light.ns = "tlr_result_red"; - red_light.id = ctx.signalID; - - yellow_light.ns = "tlr_result_yellow"; - yellow_light.id = ctx.signalID; - - green_light.ns = "tlr_result_green"; - green_light.id = ctx.signalID; - - // Set the markers type - red_light.type = visualization_msgs::Marker::SPHERE; - yellow_light.type = visualization_msgs::Marker::SPHERE; - green_light.type = visualization_msgs::Marker::SPHERE; - - // Set the pose of the markers - red_light.pose.position.x = ctx.redCenter3d.x; - red_light.pose.position.y = ctx.redCenter3d.y; - red_light.pose.position.z = ctx.redCenter3d.z; - red_light.pose.orientation.x = 0.0; - red_light.pose.orientation.y = 0.0; - red_light.pose.orientation.z = 0.0; - red_light.pose.orientation.w = 0.0; - - yellow_light.pose.position.x = ctx.yellowCenter3d.x; - yellow_light.pose.position.y = ctx.yellowCenter3d.y; - yellow_light.pose.position.z = ctx.yellowCenter3d.z; - yellow_light.pose.orientation.x = 0.0; - yellow_light.pose.orientation.y = 0.0; - yellow_light.pose.orientation.z = 0.0; - yellow_light.pose.orientation.w = 0.0; - - green_light.pose.position.x = ctx.greenCenter3d.x; - green_light.pose.position.y = ctx.greenCenter3d.y; - green_light.pose.position.z = ctx.greenCenter3d.z; - green_light.pose.orientation.x = 0.0; - green_light.pose.orientation.y = 0.0; - green_light.pose.orientation.z = 0.0; - green_light.pose.orientation.w = 0.0; - - // Set the scale of the markers. We assume lamp radius is 30cm in real world - red_light.scale.x = 0.3; - red_light.scale.y = 0.3; - red_light.scale.z = 0.3; - - yellow_light.scale.x = 0.3; - yellow_light.scale.y = 0.3; - yellow_light.scale.z = 0.3; - - green_light.scale.x = 0.3; - green_light.scale.y = 0.3; - green_light.scale.z = 0.3; - - // Set the color for each marker - switch (ctx.lightState) - { - case GREEN: - red_light.color = color_black; - yellow_light.color = color_black; - green_light.color = color_green; - break; - case YELLOW: - red_light.color = color_black; - yellow_light.color = color_yellow; - green_light.color = color_black; - break; - case RED: - red_light.color = color_red; - yellow_light.color = color_black; - green_light.color = color_black; - break; - case UNDEFINED: - red_light.color = color_black; - yellow_light.color = color_black; - green_light.color = color_black; - break; - } - - red_light.lifetime = ros::Duration(0.1); - yellow_light.lifetime = ros::Duration(0.1); - green_light.lifetime = ros::Duration(0.1); - - // Pack each light marker into one - signal_set.markers.push_back(red_light); - signal_set.markers.push_back(yellow_light); - signal_set.markers.push_back(green_light); - - // Publish - marker_publisher.publish(signal_set); - } -} // void PublishMarkerArray() - -void PublishImage(std::vector contexts) -{ - // Copy the frame image for output - cv::Mat result_image = frame_.clone(); - cv::cvtColor(result_image, result_image, cv::COLOR_RGB2BGR); - - // Define information for written label - std::string label; - const int k_font_face = cv::FONT_HERSHEY_COMPLEX_SMALL; - const double k_font_scale = 0.8; - int font_baseline = 0; - CvScalar label_color; - - for (const auto ctx : contexts) - { - // Draw superimpose result on image - circle(result_image, ctx.redCenter, ctx.lampRadius, CV_RGB(255, 0, 0), 1, 0); - circle(result_image, ctx.yellowCenter, ctx.lampRadius, CV_RGB(255, 255, 0), 1, 0); - circle(result_image, ctx.greenCenter, ctx.lampRadius, CV_RGB(0, 255, 0), 1, 0); - - // Draw recognition result on image - switch (ctx.lightState) - { - case GREEN: - label = "GREEN"; - label_color = CV_RGB(0, 255, 0); - break; - case YELLOW: - label = "YELLOW"; - label_color = CV_RGB(255, 255, 0); - break; - case RED: - label = "RED"; - label_color = CV_RGB(255, 0, 0); - break; - case UNDEFINED: - label = "UNKNOWN"; - label_color = CV_RGB(0, 0, 0); - } - - if (ctx.leftTurnSignal) - { - label += " LEFT"; - } - if (ctx.rightTurnSignal) - { - label += " RIGHT"; - } - // add lane # text - label += " " + std::to_string(ctx.closestLaneId); - - cv::Point label_origin = cv::Point(ctx.topLeft.x, ctx.botRight.y + font_baseline); - - cv::putText(result_image, label, label_origin, k_font_face, k_font_scale, label_color); - } - - // Publish superimpose result image - cv_bridge::CvImage converter; - converter.header = frame_header_; - converter.encoding = sensor_msgs::image_encodings::BGR8; - converter.image = result_image; - superimpose_image_publisher.publish(converter.toImageMsg()); -} // void PublishImage() - -void superimposeCb(const std_msgs::Bool::ConstPtr& config_msg) -{ - bool show_superimpose_result = config_msg->data; - - if (show_superimpose_result) - { - cv::namedWindow(WINDOW_NAME, cv::WINDOW_NORMAL); - cv::startWindowThread(); - } - - if (!show_superimpose_result) - { - if (cvGetWindowHandle(WINDOW_NAME.c_str()) != NULL) - { - cv::destroyWindow(WINDOW_NAME); - cv::waitKey(1); - } - } -} // void superimposeCb() - -void imageCallback(const sensor_msgs::ImageConstPtr& msg) -{ - auto se_frame = cv_bridge::toCvShare(msg); - - if (msg->encoding == "bgr8") - cv::cvtColor(se_frame->image, frame_, cv::COLOR_BGR2RGB); - else if (msg->encoding == "bayer_bggr8") - cv::cvtColor(se_frame->image, frame_, cv::COLOR_BayerRG2RGB); - else if (msg->encoding == "bayer_rggb8") - cv::cvtColor(se_frame->image, frame_, cv::COLOR_BayerBG2RGB); - else - ROS_WARN("Received image of unhandled encoding type."); - - frame_header_ = msg->header; -} - -void roiSignalCallback(const autoware_msgs::Signals::ConstPtr& extracted_pos) -{ - static ros::Time previous_timestamp; - std::vector contexts_; - // If frame has not been prepared, abort this callback - if (frame_.empty() || frame_header_.stamp == previous_timestamp) - { - std::cout << "No Image" << std::endl; - return; - } - - // Acquire signal position on the image - // Context::SetContexts(contexts_, extracted_pos, frame_.rows, frame_.cols, swap_pole_lane_id); - Context::SetContexts(contexts_, extracted_pos, frame_.rows, frame_.cols); - - // Publish recognition result as some topic format - if (extracted_pos->Signals.size() == 0 || contexts_.size() == 0) - { - std::cout << "no signals in the image" << std::endl; - } - else - { - // Extract ROI for top signal in vector (top signal has largest estimated - // radius in every signals projected in a image) - cv::Mat roi = frame_(cv::Rect(contexts_.at(0).topLeft, contexts_.at(0).botRight)); - - cv_bridge::CvImage converter; - converter.header = frame_header_; - converter.encoding = sensor_msgs::image_encodings::RGB8; - converter.image = roi; - roi_image_publisher.publish(converter.toImageMsg()); - } - - PublishMarkerArray(contexts_); - PublishImage(contexts_); - - previous_timestamp = frame_header_.stamp; -} - -void getROSParams() -{ - ros::NodeHandle private_node_handle("~"); - private_node_handle.param("image_raw_topic", image_topic_name, "/image_raw"); - ROS_INFO("image_raw_topic: %s", image_topic_name.c_str()); - - private_node_handle.param("swap_pole_lane_id", swap_pole_lane_id, "false"); - ROS_INFO("swap_pole_lane_id: %s", swap_pole_lane_id ? "true" : "false"); -} - -int main(int argc, char** argv) -{ - ros::init(argc, argv, "tlr_roi_pub"); - ros::NodeHandle n; - - getROSParams(); - - // Register subscribers - image_transport::ImageTransport it(n); - image_transport::Subscriber image_subscriber = it.subscribe(image_topic_name, 1, &imageCallback, ros::VoidPtr()); - ros::Subscriber roi_signal_subscriber = n.subscribe("/roi_signal", 1, &roiSignalCallback); - ros::Subscriber superimpose_sub = n.subscribe("/config/superimpose", 1, &superimposeCb); - - // Register publishers - roi_image_publisher = n.advertise("tlr_roi_image", 1); - marker_publisher = n.advertise("tlr_result", 1, true); - superimpose_image_publisher = n.advertise("tlr_superimpose_image", 1); - - ros::spin(); - - return 0; -} diff --git a/ros/src/computing/perception/detection/trafficlight_recognizer/srv/RecognizeLightState.srv b/ros/src/computing/perception/detection/trafficlight_recognizer/srv/RecognizeLightState.srv new file mode 100644 index 00000000000..0ac28d4a223 --- /dev/null +++ b/ros/src/computing/perception/detection/trafficlight_recognizer/srv/RecognizeLightState.srv @@ -0,0 +1,4 @@ +sensor_msgs/Image roi_image +--- +uint8 class_id +float32 confidence From 169c7ab495d2c8d145dae54f5494d21f282c6c04 Mon Sep 17 00:00:00 2001 From: snehagn Date: Wed, 29 May 2019 11:33:34 -0500 Subject: [PATCH 139/139] Adding AS TLR node to runtime manager. --- .../runtime_manager/scripts/computing.yaml | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/ros/src/util/packages/runtime_manager/scripts/computing.yaml b/ros/src/util/packages/runtime_manager/scripts/computing.yaml index b0af4acf3ce..622280ec8b4 100755 --- a/ros/src/util/packages/runtime_manager/scripts/computing.yaml +++ b/ros/src/util/packages/runtime_manager/scripts/computing.yaml @@ -294,6 +294,18 @@ subs : border : 16 flags : [ all ] + - name : region_tlr_tensorflow + desc : region_tlr desc sample + cmd : roslaunch trafficlight_recognizer traffic_light_recognition_tensorflow.launch + param: region_tlr_tensorflow + gui : + flags : [ need_camera_info ] + sel_cam_dialog_only : [ camera_id ] + sel_cam_dialog_allow: [ camera_id ] + camera_id : + border : 16 + flags : [ all ] + - name : region_tlr_mxnet desc : region_tlr_mxnet desc sample cmd : roslaunch trafficlight_recognizer traffic_light_recognition_mxnet.launch @@ -2303,6 +2315,36 @@ params : delim : ':=' only_enable : True + - name : region_tlr_tensorflow + topic: /config/superimpose + msg : Bool + vars : + - name : data + desc : data desc sample + label : Display superimpose result + kind : checkbox + v : False + - name : camera_id + desc : camera_id desc sample + kind : menu + label : Camera ID + choices_type : str + v : '' + cmd_param : + dash : '' + delim : ':=' + only_enable : True + - name : nn_model_path + desc : network model file + label : nn_model_path + kind : path + path_type : multi + v : /home/dev/config/model-RGB-009-0.9857.hdf5 + cmd_param : + dash : '' + delim : ':=' + + - name : region_tlr_mxnet topic: /config/superimpose msg : Bool