From a1288448427eb9c05679ed96a2591402b238d33a Mon Sep 17 00:00:00 2001 From: ito-san <57388357+ito-san@users.noreply.github.com> Date: Tue, 31 May 2022 18:21:57 +0900 Subject: [PATCH 1/9] feat(bluetooth_monitor): add functionality to monitor Bluetooth connection (#862) * feat(bluetooth_monitor): add functionality to monitor Bluetooth connection * ci(pre-commit): autofix * Fixed a typo * Add a dependency * Fixed pre-commit errors * ci(pre-commit): autofix * Fixed pre-commit errors * Fixed uncrustify errors * ci(pre-commit): autofix * use autoware_cmake * Fixed license, Fixed CMakeLists.txt, and Use register_node_macro * Fixed license * Fixed link title * changed the way to run l2ping Signed-off-by: ito-san * ci(pre-commit): autofix * fixed clang tidy error and removed unnecessary dependencies in CMakeLists.txt Signed-off-by: ito-san * corrected dependency in package.xml Signed-off-by: ito-san Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- system/bluetooth_monitor/CMakeLists.txt | 35 + system/bluetooth_monitor/README.md | 84 + .../config/bluetooth_monitor.param.yaml | 7 + .../docs/block_diagram.drawio.svg | 3441 +++++++++++++++++ .../bluetooth_monitor/bluetooth_monitor.hpp | 112 + .../bluetooth_monitor/service/l2ping.hpp | 87 + .../service/l2ping_interface.hpp | 127 + .../service/l2ping_service.hpp | 83 + .../launch/bluetooth_monitor.launch.xml | 6 + system/bluetooth_monitor/package.xml | 29 + system/bluetooth_monitor/service/l2ping.cpp | 165 + .../service/l2ping_service.cpp | 230 ++ system/bluetooth_monitor/service/main.cpp | 97 + .../src/bluetooth_monitor.cpp | 201 + 14 files changed, 4704 insertions(+) create mode 100644 system/bluetooth_monitor/CMakeLists.txt create mode 100644 system/bluetooth_monitor/README.md create mode 100644 system/bluetooth_monitor/config/bluetooth_monitor.param.yaml create mode 100644 system/bluetooth_monitor/docs/block_diagram.drawio.svg create mode 100644 system/bluetooth_monitor/include/bluetooth_monitor/bluetooth_monitor.hpp create mode 100644 system/bluetooth_monitor/include/bluetooth_monitor/service/l2ping.hpp create mode 100644 system/bluetooth_monitor/include/bluetooth_monitor/service/l2ping_interface.hpp create mode 100644 system/bluetooth_monitor/include/bluetooth_monitor/service/l2ping_service.hpp create mode 100644 system/bluetooth_monitor/launch/bluetooth_monitor.launch.xml create mode 100644 system/bluetooth_monitor/package.xml create mode 100644 system/bluetooth_monitor/service/l2ping.cpp create mode 100644 system/bluetooth_monitor/service/l2ping_service.cpp create mode 100644 system/bluetooth_monitor/service/main.cpp create mode 100644 system/bluetooth_monitor/src/bluetooth_monitor.cpp diff --git a/system/bluetooth_monitor/CMakeLists.txt b/system/bluetooth_monitor/CMakeLists.txt new file mode 100644 index 0000000000000..ea91d77abeeb8 --- /dev/null +++ b/system/bluetooth_monitor/CMakeLists.txt @@ -0,0 +1,35 @@ +cmake_minimum_required(VERSION 3.5) +project(bluetooth_monitor) + +### Dependencies +find_package(autoware_cmake REQUIRED) +autoware_package() + +ament_auto_add_library(bluetooth_monitor_lib SHARED + src/bluetooth_monitor.cpp +) + +### Target executable +ament_auto_add_executable(l2ping_service + service/main.cpp + service/l2ping_service.cpp + service/l2ping.cpp +) + +find_package(Boost REQUIRED COMPONENTS + serialization +) + +## Specify libraries to link a library or executable target against +target_link_libraries(bluetooth_monitor_lib ${Boost_LIBRARIES}) +target_link_libraries(l2ping_service ${Boost_LIBRARIES}) + +rclcpp_components_register_node(bluetooth_monitor_lib + PLUGIN "BluetoothMonitor" + EXECUTABLE bluetooth_monitor +) + +ament_auto_package(INSTALL_TO_SHARE + config + launch +) diff --git a/system/bluetooth_monitor/README.md b/system/bluetooth_monitor/README.md new file mode 100644 index 0000000000000..54d59fd18f739 --- /dev/null +++ b/system/bluetooth_monitor/README.md @@ -0,0 +1,84 @@ +# bluetooth_monitor + +## Description + +This node monitors a Bluetooth connection to a wireless device by using L2ping.
+L2ping generates PING echo command on Bluetooth L2CAP layer, and it is able to receive and check echo response from a wireless device. + +## Block diagram + +L2ping is only allowed for root by default, so this package provides the following approach to minimize security risks as much as possible: + +- Provide a small program named `l2ping_service` which performs L2ping and provides wireless device information to `bluetooth_monitor` by using socket programming. +- `bluetooth_monitor` is able to know wireless device information and L2ping status as an unprivileged user since those information are sent by socket communication. + +![block_diagram](docs/block_diagram.drawio.svg) + +## Output + +### bluetooth_monitor: bluetooth_connection + +[summary] + +| level | message | +| ----- | -------------- | +| OK | OK | +| WARN | RTT warning | +| ERROR | Lost | +| | Function error | + +[values] + +| key | value (example) | +| -------------------------- | ----------------------------------------------------------------------- | +| Device [0-9]: Status | OK / RTT warning / Verify error / Lost / Ping rejected / Function error | +| Device [0-9]: Name | Wireless Controller | +| Device [0-9]: Manufacturer | MediaTek, Inc. | +| Device [0-9]: Address | AA:BB:CC:DD:EE:FF | +| Device [0-9]: RTT | 0.00ms | + +- The following key will be added when `bluetooth_monitor` reports `Function error`.
+ ex.) The `connect` system call failed. + +| key (example) | value (example) | +| --------------------- | ------------------------- | +| Device [0-9]: connect | No such file or directory | + +## Parameters + +| Name | Type | Default Value | Explanation | +| ----------- | ------ | ------------- | --------------------------------------------------------- | +| `port` | int | 7640 | Port number to connect to L2ping service. | +| `timeout` | int | 5 | Wait timeout seconds for the response. | +| `rtt_warn` | float | 0.00 | RTT(Round-Trip Time) to generate warn. | +| `addresses` | string | \* | List of bluetooth address of wireless devices to monitor. | + +- `rtt_warn` + + - **0.00(zero)**: Disable checking RTT + - **otherwise**: Check RTT with specified seconds + +- `addresses` + - **\***: All connected devices + - **AA:BB:CC:DD:EE:FF**: You can specify a device to monitor by setting a Bluetooth address + +## Instructions before starting + +- You can skip this instructions if you run `l2ping_service` as root user. + +1. Assign capability to `l2ping_service` since L2ping requires `cap_net_raw+eip` capability. + + ```sh + sudo setcap 'cap_net_raw+eip' ./build/bluetooth_monitor/l2ping_service + ``` + +2. Run `l2ping_service` and `bluetooth_monitor`. + + ```sh + ./build/bluetooth_monitor/l2ping_service + ros2 launch bluetooth_monitor bluetooth_monitor.launch.xml + ``` + +## Known limitations and issues + +None. diff --git a/system/bluetooth_monitor/config/bluetooth_monitor.param.yaml b/system/bluetooth_monitor/config/bluetooth_monitor.param.yaml new file mode 100644 index 0000000000000..fd4c9eaa40d21 --- /dev/null +++ b/system/bluetooth_monitor/config/bluetooth_monitor.param.yaml @@ -0,0 +1,7 @@ +--- +/**: + ros__parameters: + port: 7640 + timeout: 5 + rtt_warn: 0.00 + addresses: ["4C:B9:9B:6E:7F:9A"] diff --git a/system/bluetooth_monitor/docs/block_diagram.drawio.svg b/system/bluetooth_monitor/docs/block_diagram.drawio.svg new file mode 100644 index 0000000000000..1087283100417 --- /dev/null +++ b/system/bluetooth_monitor/docs/block_diagram.drawio.svg @@ -0,0 +1,3441 @@ + + + + + + + + + +
+
+
+ Bluez +
+
+
+
+ + Bluez + +
+
+ + + + +
+
+
+ Autoware +
+
+
+
+ + Autoware + +
+
+ + + + + + + + +
+
+
+ Socket +
+ communication +
+
+
+
+ + Socket... + +
+
+ + + + +
+
+
+ + <<node>> +
+
+ bluetooth_monitor +
+
+
+
+ + <<node>>... + +
+
+ + + + + + +
+
+
+ Get device information +
+
+
+
+ + Get device information + +
+
+ + + + + + +
+
+
+ Ping +
+
+
+
+ + Ping + +
+
+ + + + +
+
+
+ + <<daemon>> +
+
+ l2ping_service +
+
+
+
+ + <<daemon>>... + +
+
+ + + + + + + +
+
+
+ + <<library>> +
+
+ Bluez +
+ (libbluetooth) +
+
+
+
+ + <<library>>... + +
+
+ + + + + + + +
+
+
+ + USB/UART drivers + +
+
+
+
+ + USB/UART drivers + +
+
+ + + + + + + +
+
+
+ + Bluetooth hardware + +
+
+
+
+ + Bluetooth hardware + +
+
+ + + + Bluetooth device + + + + + + +
+
+
+ + Failsafe Architecture + +
+
+
+
+ + Failsafe Architect... + +
+
+ + + + + + + +
+
+
+ + L2CAP socket interface + +
+
+
+
+ + L2CAP socket inter... + +
+
+ + + + + + + +
+
+
+ + HCI socket interface + +
+
+
+
+ + HCI socket interfa... + +
+
+ + + + + + + +
+
+
+ + Bluez Core + +
+
+
+
+ + Bluez Core + +
+
+ + + + + + + +
+
+
+ + Host Controller Interface +
+ (HCI) +
+
+
+
+
+ + Host Controller Interface... + +
+
+ + + + +
+
+
+

+ User Space +
+ Kernel Space +

+
+
+
+
+ + User Space... + +
+
+
+ + + + + Viewer does not support full SVG 1.1 + + + +
\ No newline at end of file diff --git a/system/bluetooth_monitor/include/bluetooth_monitor/bluetooth_monitor.hpp b/system/bluetooth_monitor/include/bluetooth_monitor/bluetooth_monitor.hpp new file mode 100644 index 0000000000000..6ebca9b4189d5 --- /dev/null +++ b/system/bluetooth_monitor/include/bluetooth_monitor/bluetooth_monitor.hpp @@ -0,0 +1,112 @@ +// Copyright 2022 The Autoware Contributors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef BLUETOOTH_MONITOR__BLUETOOTH_MONITOR_HPP_ +#define BLUETOOTH_MONITOR__BLUETOOTH_MONITOR_HPP_ + +#include "bluetooth_monitor/service/l2ping_interface.hpp" + +#include +#include + +#include +#include +#include + +class BluetoothMonitor : public rclcpp::Node +{ +public: + /** + * @brief Constructor + * @param [in] options Options associated with this node + */ + explicit BluetoothMonitor(const rclcpp::NodeOptions & options); + +protected: + /** + * @brief Connect to L2ping service + * @param [out] stat Diagnostic message passed directly to diagnostic publish calls + * @return true on success, false on error + * @note NOLINT syntax is needed since this function asks for a non-const reference + * to pass diagnostic message updated in this function to diagnostic publish calls. + */ + bool connectService( + diagnostic_updater::DiagnosticStatusWrapper & stat); // NOLINT(runtime/references) + + /** + * @brief Send L2ping configuration to L2ping service + * @param [out] stat Diagnostic message passed directly to diagnostic publish calls + * @return true on success, false on error + * @note NOLINT syntax is needed since this function asks for a non-const reference + * to pass diagnostic message updated in this function to diagnostic publish calls. + */ + bool sendConfig( + diagnostic_updater::DiagnosticStatusWrapper & stat); // NOLINT(runtime/references) + + /** + * @brief Receive data from L2ping service + * @param [out] stat Diagnostic message passed directly to diagnostic publish calls + * @return true on success, false on error + * @note NOLINT syntax is needed since this function asks for a non-const reference + * to pass diagnostic message updated in this function to diagnostic publish calls. + */ + bool receiveData(diagnostic_updater::DiagnosticStatusWrapper & stat); + + /** + * @brief Close connection with L2ping service + */ + void closeConnection(); + + /** + * @brief Set error level of diagnostic status + * @param [out] stat Diagnostic message passed directly to diagnostic publish calls + * @note NOLINT syntax is needed since diagnostic_updater asks for a non-const reference + * to pass diagnostic message updated in this function to diagnostic publish calls. + */ + void setErrorLevel( + diagnostic_updater::DiagnosticStatusWrapper & stat); // NOLINT(runtime/references) + + /** + * @brief Obtain diagnostic status and check connection + * @param [out] stat Diagnostic message passed directly to diagnostic publish calls + * @note NOLINT syntax is needed since diagnostic_updater asks for a non-const reference + * to pass diagnostic message updated in this function to diagnostic publish calls. + */ + void checkConnection( + diagnostic_updater::DiagnosticStatusWrapper & stat); // NOLINT(runtime/references) + + diagnostic_updater::Updater updater_; //!< @brief Updater class which advertises to /diagnostics + int socket_; //!< @brief Socket to communicate with L2ping service + int port_; //!< @brief Port number to connect with L2ping service + L2pingServiceConfig config_; //!< @brief Configuration of L2ping service + L2pingStatusList status_list_; //!< @brief Device status list + + using DiagStatus = diagnostic_msgs::msg::DiagnosticStatus; + + static constexpr const char * FUNCTION_ERROR_STR = "Function error"; + + const std::map status_string_list_ = { + {StatusCode::OK, "OK"}, + {StatusCode::RTT_WARNING, "RTT warning"}, + {StatusCode::LOST, "Lost"}, + {StatusCode::FUNCTION_ERROR, FUNCTION_ERROR_STR}}; + + const std::map status_error_list_ = { + {StatusCode::OK, DiagStatus::OK}, + {StatusCode::RTT_WARNING, DiagStatus::WARN}, + {StatusCode::LOST, DiagStatus::ERROR}, + {StatusCode::FUNCTION_ERROR, DiagStatus::ERROR}}; +}; + +#endif // BLUETOOTH_MONITOR__BLUETOOTH_MONITOR_HPP_ diff --git a/system/bluetooth_monitor/include/bluetooth_monitor/service/l2ping.hpp b/system/bluetooth_monitor/include/bluetooth_monitor/service/l2ping.hpp new file mode 100644 index 0000000000000..79940329336c4 --- /dev/null +++ b/system/bluetooth_monitor/include/bluetooth_monitor/service/l2ping.hpp @@ -0,0 +1,87 @@ +// Copyright 2022 The Autoware Contributors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef BLUETOOTH_MONITOR__SERVICE__L2PING_HPP_ +#define BLUETOOTH_MONITOR__SERVICE__L2PING_HPP_ + +#include "bluetooth_monitor/service/l2ping_interface.hpp" + +#include +#include +#include + +class L2ping +{ +public: + /** + * @brief Constructor + * @param [in] address Bluetooth address of remote device + * @param [in] config Configuration of L2ping + */ + L2ping(const std::string & address, const L2pingConfig & config); + + /** + * @brief Start ping thread + */ + void run(); + + /** + * @brief Get status + * @return Status + */ + L2pingStatus getStatus() const; + + /** + * @brief Get address of remote device + * @return address of remote device + */ + const std::string & getAddress() const; + +protected: + /** + * @brief Get information from remote device + * @return true on success, false on error + */ + bool getDeviceInformation(); + + /** + * @brief Thread loop + */ + void thread(); + + /** + * @brief Ping to remote device + * @return true on success, false on error + */ + bool ping(); + + /** + * @brief Set error data to inform ros2 node + * @param [in] function_name Function name which error occurred + * @param [in] error_message Error message to display + */ + void setFunctionError(const std::string & function_name, const std::string & error_message); + + /** + * @brief Set status code + * @param [in] code Status code + */ + void setStatusCode(StatusCode code); + + L2pingConfig config_; //!< @brief Configuration of L2ping + std::thread thread_; //!< @brief Thread to L2ping + L2pingStatus status_; //!< @brief L2ping status +}; + +#endif // BLUETOOTH_MONITOR__SERVICE__L2PING_HPP_ diff --git a/system/bluetooth_monitor/include/bluetooth_monitor/service/l2ping_interface.hpp b/system/bluetooth_monitor/include/bluetooth_monitor/service/l2ping_interface.hpp new file mode 100644 index 0000000000000..f04dccb94f429 --- /dev/null +++ b/system/bluetooth_monitor/include/bluetooth_monitor/service/l2ping_interface.hpp @@ -0,0 +1,127 @@ +// Copyright 2022 The Autoware Contributors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef BLUETOOTH_MONITOR__SERVICE__L2PING_INTERFACE_HPP_ +#define BLUETOOTH_MONITOR__SERVICE__L2PING_INTERFACE_HPP_ + +#include +#include +#include + +#include +#include + +// 7634-7647 Unassigned +static constexpr int DEFAULT_PORT = 7640; +static constexpr int DEFAULT_DELAY = 1; +static constexpr int DEFAULT_TIMEOUT = 5; +static constexpr bool DEFAULT_VERIFY = false; +static constexpr float RTT_NO_WARN = 0.0f; + +/** + * @brief Configuration of L2ping + */ +struct L2pingConfig +{ + int timeout{DEFAULT_TIMEOUT}; //!< @brief Wait timeout seconds for the response + float rtt_warn{RTT_NO_WARN}; //!< @brief RTT warning time + + /** + * @brief Load or save data members. + * @param [inout] ar Archive reference to load or save the serialized data members + * @param [in] version Version for the archive + * @note NOLINT syntax is needed since this is an interface to serialization and + * used inside boost serialization. + */ + template + void serialize(archive & ar, const unsigned /*version*/) // NOLINT(runtime/references) + { + ar & timeout; + ar & rtt_warn; + } +}; + +/** + * @brief Configuration of L2ping service + */ +struct L2pingServiceConfig +{ + L2pingConfig l2ping{}; //!< @brief Configuration of L2ping + std::vector addresses; //!< @brief List of bluetooth address + + /** + * @brief Load or save data members. + * @param [inout] ar Archive reference to load or save the serialized data members + * @param [in] version Version for the archive + * @note NOLINT syntax is needed since this is an interface to serialization and + * used inside boost serialization. + */ + template + void serialize(archive & ar, const unsigned /*version*/) // NOLINT(runtime/references) + { + ar & l2ping; + ar & addresses; + } +}; + +/** + * @brief Status code of a device + */ +enum class StatusCode { + OK = 0, + RTT_WARNING = 1, + LOST = 2, + FUNCTION_ERROR = 3, +}; + +/** + * @brief L2ping status + */ +struct L2pingStatus +{ + StatusCode status_code; //!< @brief Status code of a device + std::string function_name; //!< @brief Function name which error occurred + std::string error_message; //!< @brief Error message to display + + std::string name; //!< @brief Name of remote device + std::string manufacturer; //!< @brief Manufacturer name of remote device + std::string address; //!< @brief Bluetooth address + float time_difference; //!< @brief Time difference between sent and received + + /** + * @brief Load or save data members. + * @param [inout] ar Archive reference to load or save the serialized data members + * @param [in] version Version for the archive + * @note NOLINT syntax is needed since this is an interface to serialization and + * used inside boost serialization. + */ + template + void serialize(archive & ar, const unsigned /*version*/) // NOLINT(runtime/references) + { + ar & status_code; + ar & function_name; + ar & error_message; + ar & name; + ar & manufacturer; + ar & address; + ar & time_difference; + } +}; + +/** + * @brief List of L2ping status + */ +typedef std::vector L2pingStatusList; + +#endif // BLUETOOTH_MONITOR__SERVICE__L2PING_INTERFACE_HPP_ diff --git a/system/bluetooth_monitor/include/bluetooth_monitor/service/l2ping_service.hpp b/system/bluetooth_monitor/include/bluetooth_monitor/service/l2ping_service.hpp new file mode 100644 index 0000000000000..fa325ca733196 --- /dev/null +++ b/system/bluetooth_monitor/include/bluetooth_monitor/service/l2ping_service.hpp @@ -0,0 +1,83 @@ +// Copyright 2022 The Autoware Contributors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef BLUETOOTH_MONITOR__SERVICE__L2PING_SERVICE_HPP_ +#define BLUETOOTH_MONITOR__SERVICE__L2PING_SERVICE_HPP_ + +#include "bluetooth_monitor/service/l2ping.hpp" +#include "bluetooth_monitor/service/l2ping_interface.hpp" + +#include +#include +#include +#include +#include + +class L2pingService +{ +public: + /** + * @brief Constructor + * @param [in] port Port number to access l2ping service + */ + explicit L2pingService(const int port); + + /** + * @brief Initialization + * @return true on success, false on error + */ + bool initialize(); + + /** + * @brief Shutdown + */ + void shutdown(); + + /** + * @brief Main loop + */ + void run(); + +protected: + /** + * @brief Set error data to inform ros2 node + * @param [in] function_name Function name which error occurred + * @param [in] error_message Error message to display + */ + void setFunctionError(const std::string & function_name, const std::string & error_message); + + /** + * @brief Build device list to ping + * @param [in] addresses List of bluetooth address + * @return true on success, false on error + */ + bool buildDeviceList(); + + /** + * @brief Build device list to ping from connected devices + * @param [in] sock socket to bluetooth host controller interface(HCI) + * @param [in] device_id Device ID + * @param [in] addresses List of bluetooth address + * @return true on success, false on error + */ + bool buildDeviceListFromConnectedDevices(int sock, uint16_t device_id); + + int port_; //!< @brief Port number to access l2ping service + int socket_; //!< @brief Socket to communicate with ros2 node + L2pingServiceConfig config_; //!< @brief Configuration of L2ping service + std::vector> objects_; //!< @brief List of l2ping object + L2pingStatusList status_list_; //!< @brief List of l2ping status +}; + +#endif // BLUETOOTH_MONITOR__SERVICE__L2PING_SERVICE_HPP_ diff --git a/system/bluetooth_monitor/launch/bluetooth_monitor.launch.xml b/system/bluetooth_monitor/launch/bluetooth_monitor.launch.xml new file mode 100644 index 0000000000000..7dd98572e544b --- /dev/null +++ b/system/bluetooth_monitor/launch/bluetooth_monitor.launch.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/system/bluetooth_monitor/package.xml b/system/bluetooth_monitor/package.xml new file mode 100644 index 0000000000000..1b96451044631 --- /dev/null +++ b/system/bluetooth_monitor/package.xml @@ -0,0 +1,29 @@ + + + + bluetooth_monitor + 0.1.0 + Bluetooth alive monitoring + Fumihito Ito + Apache License 2.0 + + ament_cmake_auto + + autoware_cmake + + diagnostic_msgs + diagnostic_updater + fmt + libboost-dev + rclcpp + rclcpp_components + + bluez + + ament_lint_auto + autoware_lint_common + + + ament_cmake + + diff --git a/system/bluetooth_monitor/service/l2ping.cpp b/system/bluetooth_monitor/service/l2ping.cpp new file mode 100644 index 0000000000000..03e806408c655 --- /dev/null +++ b/system/bluetooth_monitor/service/l2ping.cpp @@ -0,0 +1,165 @@ +// Copyright 2022 The Autoware Contributors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +#include "bluetooth_monitor/service/l2ping.hpp" + +#include + +#include + +#include +#include + +#define FMT_HEADER_ONLY +#include + +namespace bp = boost::process; + +L2ping::L2ping(const std::string & address, const L2pingConfig & config) +: config_(config), status_{} +{ + status_.address = address; +} + +bool L2ping::getDeviceInformation() +{ + std::ostringstream os; + bp::ipstream is_out; + bp::ipstream is_err; + bp::child c( + fmt::format("hcitool info {}", status_.address), bp::std_out > is_out, bp::std_err > is_err); + c.wait(); + if (c.exit_code() != 0) { + is_err >> os.rdbuf(); + syslog(LOG_ERR, "hcitool info: %s\n", os.str().c_str()); + return false; + } + + std::string line; + std::cmatch match; + const std::regex filter_device_name("\tDevice Name: (.*)"); + const std::regex filter_manufacturer("\tManufacturer: (.*)"); + + while (std::getline(is_out, line) && !line.empty()) { + if (std::regex_match(line.c_str(), match, filter_device_name)) { + status_.name = match[1].str(); + } else if (std::regex_match(line.c_str(), match, filter_manufacturer)) { + status_.manufacturer = match[1].str(); + } + } + + return true; +} + +void L2ping::run() +{ + // Start thread loop + thread_ = std::thread(&L2ping::thread, this); +} + +void L2ping::thread() +{ + while (true) { + // Get device information if not provided + if (status_.name.empty() || status_.manufacturer.empty()) { + getDeviceInformation(); + } + // Ping to remote device in loop + ping(); + } +} + +bool L2ping::ping() +{ + std::ostringstream os; + bp::ipstream is_out; + bp::ipstream is_err; + + bp::child c( + fmt::format("l2ping -c 1 -t {} {}", config_.timeout, status_.address), bp::std_out > is_out, + bp::std_err > is_err); + + /* + Output example of `l2ping` + + Ping: AA:BB:CC:DD:EE:FF from 01:23:45:67:89:01 (data size 44) ... + 44 bytes from AA:BB:CC:DD:EE:FF id 0 time 23.08ms + 1 sent, 1 received, 0% loss + */ + std::string line; + // Skip header + std::getline(is_out, line); + // Get 2nd line + std::getline(is_out, line); + + std::cmatch match; + + // Echo response received + const std::regex filter_time(".*time (\\d+\\.\\d+)ms"); + + if (std::regex_match(line.c_str(), match, filter_time)) { + status_.time_difference = std::stof(match[1].str()); + // Check RTT if configured + if (config_.rtt_warn != RTT_NO_WARN && status_.time_difference > config_.rtt_warn) { + setStatusCode(StatusCode::RTT_WARNING); + // Otherwise, ok + } else { + setStatusCode(StatusCode::OK); + } + } + + // No response + const std::regex filter_no_response("^no response from .*"); + + if (std::regex_match(line.c_str(), match, filter_no_response)) { + setStatusCode(StatusCode::LOST); + } + + c.wait(); + if (c.exit_code() != 0) { + is_err >> os.rdbuf(); + // Remove return code + std::string message = std::regex_replace(os.str(), std::regex("\n"), ""); + // Get stdout if stderr is empty + if (message.empty()) { + message = std::regex_replace(line, std::regex("\n"), ""); + } + syslog(LOG_ERR, "l2ping: %s\n", message.c_str()); + setFunctionError("l2ping", message); + return false; + } + + return true; +} + +void L2ping::setFunctionError(const std::string & function_name, const std::string & error_message) +{ + // Build error data + status_.status_code = StatusCode::FUNCTION_ERROR; + status_.function_name = function_name; + status_.error_message = error_message; +} + +void L2ping::setStatusCode(StatusCode code) +{ + // Build error data + status_.status_code = code; + status_.function_name = {}; + status_.error_message = {}; +} + +L2pingStatus L2ping::getStatus() const { return status_; } + +const std::string & L2ping::getAddress() const { return status_.address; } diff --git a/system/bluetooth_monitor/service/l2ping_service.cpp b/system/bluetooth_monitor/service/l2ping_service.cpp new file mode 100644 index 0000000000000..1cc1d81a31f12 --- /dev/null +++ b/system/bluetooth_monitor/service/l2ping_service.cpp @@ -0,0 +1,230 @@ +// Copyright 2022 The Autoware Contributors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "bluetooth_monitor/service/l2ping_service.hpp" + +#include +#include +#include + +#include +#include + +#include +#include +#include +#include + +#define FMT_HEADER_ONLY +#include + +namespace bp = boost::process; + +L2pingService::L2pingService(const int port) : port_(port), socket_(-1) {} + +bool L2pingService::initialize() +{ + // Create a new socket + socket_ = socket(AF_INET, SOCK_STREAM, 0); + if (socket_ < 0) { + syslog(LOG_ERR, "Failed to create a new socket. %s\n", strerror(errno)); + return false; + } + + // Allow address reuse + int ret = 0; + int opt = 1; + ret = setsockopt( + socket_, SOL_SOCKET, SO_REUSEADDR, reinterpret_cast(&opt), (socklen_t)sizeof(opt)); + if (ret < 0) { + syslog(LOG_ERR, "Failed to set socket FD's option. %s\n", strerror(errno)); + return false; + } + + // Give the socket FD the local address ADDR + sockaddr_in address; + memset(&address, 0, sizeof(sockaddr_in)); + address.sin_family = AF_INET; + address.sin_port = htons(port_); + address.sin_addr.s_addr = htonl(INADDR_ANY); + ret = bind(socket_, (struct sockaddr *)&address, sizeof(address)); + if (ret < 0) { + syslog(LOG_ERR, "Failed to give the socket FD the local address ADDR. %s\n", strerror(errno)); + return false; + } + + // Prepare to accept connections on socket FD + ret = listen(socket_, 5); + if (ret < 0) { + syslog(LOG_ERR, "Failed to prepare to accept connections on socket FD. %s\n", strerror(errno)); + return false; + } + + return true; +} + +void L2pingService::shutdown() { close(socket_); } + +void L2pingService::run() +{ + sockaddr_in client; + socklen_t len = sizeof(client); + + while (true) { + // Await a connection on socket FD + int new_sock = accept(socket_, reinterpret_cast(&client), &len); + if (new_sock < 0) { + syslog( + LOG_ERR, "Failed to prepare to accept connections on socket FD. %s\n", strerror(errno)); + continue; + } + + // Receive configuration of L2ping + char buf[1024]{}; + int ret = recv(new_sock, buf, sizeof(buf) - 1, 0); + if (ret < 0) { + syslog(LOG_ERR, "Failed to receive. %s\n", strerror(errno)); + close(new_sock); + continue; + } + // No data received + if (ret == 0) { + syslog(LOG_ERR, "No data received. %s\n", strerror(errno)); + close(new_sock); + continue; + } + + // Restore configuration of L2ping + try { + std::istringstream iss(buf); + boost::archive::text_iarchive oa(iss); + oa & config_; + } catch (const std::exception & e) { + syslog(LOG_ERR, "Exception occurred. ! %s\n", e.what()); + close(new_sock); + continue; + } + + // Now communication with ros2 node successful + + // Build device list to ping + if (buildDeviceList()) { + // Clear list + status_list_.clear(); + // Build status list + for (const auto & object : objects_) { + status_list_.emplace_back(object->getStatus()); + } + } + + // Inform ros2 node if error occurred + std::ostringstream out_stream; + boost::archive::text_oarchive archive(out_stream); + archive << status_list_; + // Write N bytes of BUF to FD + ret = write(new_sock, out_stream.str().c_str(), out_stream.str().length()); + if (ret < 0) { + syslog(LOG_ERR, "Failed to write N bytes of BUF to FD. %s\n", strerror(errno)); + } + + close(new_sock); + } +} + +void L2pingService::setFunctionError( + const std::string & function_name, const std::string & error_message) +{ + // Clear list + status_list_.clear(); + + // Set error data + L2pingStatus status{}; + status.status_code = StatusCode::FUNCTION_ERROR; + status.function_name = function_name; + status.error_message = error_message; + + status_list_.emplace_back(status); +} + +bool L2pingService::buildDeviceList() +{ + bp::pipe pipe; + std::ostringstream os; + + // Get MAC address list of paired devices + /* + Output example of `bluetoothctl paired-devices` + + Device 01:02:03:04:05:06 Wireless Controller + Device AA:BB:CC:DD:EE:FF bluetooth mouse4.0 + */ + { + bp::ipstream is_err; + bp::child c("bluetoothctl paired-devices", bp::std_out > pipe, bp::std_err > is_err); + c.wait(); + if (c.exit_code() != 0) { + is_err >> os.rdbuf(); + setFunctionError("bluetoothctl", os.str()); + syslog(LOG_ERR, "%s\n", os.str().c_str()); + return false; + } + } + + // Pick up MAC address + std::vector address_list; + { + bp::ipstream is_out; + bp::ipstream is_err; + bp::child c("cut -f 2 -d \" \"", bp::std_out > is_out, bp::std_err > is_err, bp::std_in < pipe); + c.wait(); + if (c.exit_code() != 0) { + is_err >> os.rdbuf(); + setFunctionError("cut", os.str()); + syslog(LOG_ERR, "%s\n", os.str().c_str()); + return false; + } + + // Register device + std::string line; + while (std::getline(is_out, line) && !line.empty()) { + // Skip if device not found and wild card not specified + if ( + std::count(config_.addresses.begin(), config_.addresses.end(), line) == 0 && + std::count(config_.addresses.begin(), config_.addresses.end(), "*") == 0) { + continue; + } + address_list.push_back(line); + } + } + + // Loop for registered devices + for (const auto & address : address_list) { + bool found = false; + for (const auto & object : objects_) { + // If device not registered + if (object->getAddress() == address) { + found = true; + break; + } + } + + if (!found) { + // Start ping thread + objects_.emplace_back(std::make_unique(address, config_.l2ping)); + objects_.back().get()->run(); + } + } + + return true; +} diff --git a/system/bluetooth_monitor/service/main.cpp b/system/bluetooth_monitor/service/main.cpp new file mode 100644 index 0000000000000..a3ccb971a5eb7 --- /dev/null +++ b/system/bluetooth_monitor/service/main.cpp @@ -0,0 +1,97 @@ +// Copyright 2022 The Autoware Contributors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "bluetooth_monitor/service/l2ping_interface.hpp" +#include "bluetooth_monitor/service/l2ping_service.hpp" + +#include + +#include +#include + +/** + * @brief print usage + */ +void usage() +{ + printf("Usage: l2ping_service [options]\n"); + printf(" -h --help : Display help\n"); + printf(" -p --port # : Port number to listen to.\n"); + printf("\n"); +} + +/** + * @brief Main loop + * @param [in] argc Number of arguments + * @param [in] argv Command line arguments + * @return 0 on success, 1 on error + */ +int main(int argc, char ** argv) +{ + static struct option long_options[] = { + {"help", no_argument, 0, 'h'}, {"port", required_argument, 0, 'p'}, {0, 0, 0, 0}}; + + // Parse command-line options + int c = 0; + int option_index = 0; + int port = DEFAULT_PORT; + while ((c = getopt_long(argc, argv, "hp:", long_options, &option_index)) != -1) { + switch (c) { + case 'h': + usage(); + return EXIT_SUCCESS; + + case 'p': + try { + port = boost::lexical_cast(optarg); + } catch (const boost::bad_lexical_cast & e) { + printf("Error: %s\n", e.what()); + return EXIT_FAILURE; + } + break; + + default: + break; + } + } + + // Put the program in the background + if (daemon(0, 0) < 0) { + printf("Failed to put the program in the background. %s\n", strerror(errno)); + return errno; + } + + // Open connection to system logger + openlog(nullptr, LOG_PID, LOG_DAEMON); + + // Initialize l2ping service + L2pingService service(port); + + if (!service.initialize()) { + service.shutdown(); + closelog(); + return EXIT_FAILURE; + } + + // Run main loop + service.run(); + + // Shutdown l2ping service + service.shutdown(); + + // Close descriptor used to write to system logger + closelog(); + + return EXIT_SUCCESS; +} diff --git a/system/bluetooth_monitor/src/bluetooth_monitor.cpp b/system/bluetooth_monitor/src/bluetooth_monitor.cpp new file mode 100644 index 0000000000000..f8414c6353cfd --- /dev/null +++ b/system/bluetooth_monitor/src/bluetooth_monitor.cpp @@ -0,0 +1,201 @@ +// Copyright 2022 The Autoware Contributors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "bluetooth_monitor/bluetooth_monitor.hpp" + +#include +#include + +#include +#include +#include + +#include +#include +#include + +#define FMT_HEADER_ONLY +#include + +BluetoothMonitor::BluetoothMonitor(const rclcpp::NodeOptions & options) +: Node("bluetooth_monitor", options), + updater_(this), + socket_(-1), + port_(declare_parameter("port", DEFAULT_PORT)) +{ + // Get host name + char host_name[HOST_NAME_MAX + 1]; + gethostname(host_name, sizeof(host_name)); + + // Build L2ping configuration + config_.l2ping.timeout = declare_parameter("timeout", DEFAULT_TIMEOUT); + config_.l2ping.rtt_warn = declare_parameter("rtt_warn", RTT_NO_WARN); + config_.addresses = declare_parameter("addresses", std::vector()); + + updater_.add("bluetooth_connection", this, &BluetoothMonitor::checkConnection); + updater_.setHardwareID(host_name); +} + +bool BluetoothMonitor::connectService(diagnostic_updater::DiagnosticStatusWrapper & stat) +{ + // Create a new socket + socket_ = socket(AF_INET, SOCK_STREAM, 0); + if (socket_ < 0) { + stat.summary(DiagStatus::ERROR, FUNCTION_ERROR_STR); + stat.add("socket", strerror(errno)); + return false; + } + + // Specify the receiving timeouts until reporting an error + timeval tv{10, 0}; + int ret = setsockopt(socket_, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv)); + if (ret < 0) { + stat.summary(DiagStatus::ERROR, FUNCTION_ERROR_STR); + stat.add("setsockopt", strerror(errno)); + return false; + } + + // Connect the socket referred to by the file descriptor + sockaddr_in address{}; + address.sin_family = AF_INET; + address.sin_port = htons(port_); + address.sin_addr.s_addr = htonl(INADDR_ANY); + + ret = connect(socket_, reinterpret_cast(&address), sizeof(address)); + if (ret < 0) { + stat.summary(DiagStatus::ERROR, FUNCTION_ERROR_STR); + stat.add("connect", strerror(errno)); + return false; + } + + return true; +} + +bool BluetoothMonitor::sendConfig(diagnostic_updater::DiagnosticStatusWrapper & stat) +{ + std::ostringstream out_stream; + boost::archive::text_oarchive archive(out_stream); + archive & config_; + + // Write list of devices to FD + int ret = write(socket_, out_stream.str().c_str(), out_stream.str().length()); + if (ret < 0) { + stat.summary(DiagStatus::ERROR, FUNCTION_ERROR_STR); + stat.add("write", strerror(errno)); + return false; + } + + return true; +} + +bool BluetoothMonitor::receiveData(diagnostic_updater::DiagnosticStatusWrapper & stat) +{ + char buffer[1024]{}; + + int ret = recv(socket_, buffer, sizeof(buffer) - 1, 0); + if (ret < 0) { + stat.summary(DiagStatus::ERROR, FUNCTION_ERROR_STR); + stat.add("recv", strerror(errno)); + return false; + } + // No data received + if (ret == 0) { + stat.summary(DiagStatus::ERROR, FUNCTION_ERROR_STR); + stat.add("recv", "No data received"); + return false; + } + + // Restore device status list + try { + std::istringstream in_stream(buffer); + boost::archive::text_iarchive archive(in_stream); + archive >> status_list_; + } catch (const std::exception & e) { + stat.summary(DiagStatus::ERROR, "Exception occurred"); + stat.add("Exception", e.what()); + return false; + } + + return true; +} + +void BluetoothMonitor::closeConnection() { close(socket_); } + +void BluetoothMonitor::setErrorLevel(diagnostic_updater::DiagnosticStatusWrapper & stat) +{ + // No device + if (status_list_.size() == 0) { + stat.summary(DiagStatus::OK, "No device connected"); + return; + } + + int level = DiagStatus::OK; + int whole_level = DiagStatus::OK; + StatusCode whole_status_code = StatusCode::OK; + int index = 0; + for (const auto & status : status_list_) { + stat.add(fmt::format("Device {}: Status", index), status_string_list_.at(status.status_code)); + stat.add(fmt::format("Device {}: Name", index), status.name); + stat.add(fmt::format("Device {}: Manufacturer", index), status.manufacturer); + stat.add(fmt::format("Device {}: Address", index), status.address); + stat.addf(fmt::format("Device {}: RTT", index), "%.2f ms", status.time_difference); + + if (status.status_code == StatusCode::FUNCTION_ERROR) { + stat.add(fmt::format("Device {}: {}", index, status.function_name), status.error_message); + } + + level = status_error_list_.at(status.status_code); + whole_level = std::max(whole_level, level); + whole_status_code = std::max(whole_status_code, status.status_code); + ++index; + } + + stat.summary(whole_level, status_string_list_.at(whole_status_code)); +} + +void BluetoothMonitor::checkConnection(diagnostic_updater::DiagnosticStatusWrapper & stat) +{ + if (config_.addresses.empty()) { + RCLCPP_ERROR(get_logger(), "Invalid device parameter."); + stat.summary(DiagStatus::ERROR, "Invalid device parameter"); + return; + } + + // Connect to L2ping service + if (!connectService(stat)) { + closeConnection(); + return; + } + + // Send L2ping configuration to L2ping service + if (!sendConfig(stat)) { + closeConnection(); + return; + } + + // Receive data from L2ping service + if (!receiveData(stat)) { + closeConnection(); + return; + } + + // Close connection with L2ping service + closeConnection(); + + // Set error level of diagnostic status + setErrorLevel(stat); +} + +#include +RCLCPP_COMPONENTS_REGISTER_NODE(BluetoothMonitor) From bf88d08188c97a609d8acf7ad399a7f1d6c9c83a Mon Sep 17 00:00:00 2001 From: Vincent Richard Date: Tue, 31 May 2022 22:55:28 +0900 Subject: [PATCH 2/9] fix(pointcloud_preprocessor): avoid unnecessary data copy (#999) * fix(pointcloud_preprocessor): avoid unnecessary data copy Signed-off-by: Vincent Richard * ci(pre-commit): autofix Signed-off-by: Vincent Richard * fix: avoid unnecessary cloud data copy Signed-off-by: Vincent Richard Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .../pointcloud_preprocessor/src/filter.cpp | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/sensing/pointcloud_preprocessor/src/filter.cpp b/sensing/pointcloud_preprocessor/src/filter.cpp index 947988c6b1078..fb90b2f99adeb 100644 --- a/sensing/pointcloud_preprocessor/src/filter.cpp +++ b/sensing/pointcloud_preprocessor/src/filter.cpp @@ -162,48 +162,48 @@ void pointcloud_preprocessor::Filter::unsubscribe() void pointcloud_preprocessor::Filter::computePublish( const PointCloud2ConstPtr & input, const IndicesPtr & indices) { - PointCloud2 output; + auto output = std::make_unique(); + // Call the virtual method in the child - filter(input, indices, output); + filter(input, indices, *output); - auto cloud_tf = std::make_unique(output); // set the output by default // Check whether the user has given a different output TF frame - if (!tf_output_frame_.empty() && output.header.frame_id != tf_output_frame_) { + if (!tf_output_frame_.empty() && output->header.frame_id != tf_output_frame_) { RCLCPP_DEBUG( this->get_logger(), "[computePublish] Transforming output dataset from %s to %s.", - output.header.frame_id.c_str(), tf_output_frame_.c_str()); + output->header.frame_id.c_str(), tf_output_frame_.c_str()); // Convert the cloud into the different frame - PointCloud2 cloud_transformed; - if (!pcl_ros::transformPointCloud(tf_output_frame_, output, cloud_transformed, *tf_buffer_)) { + auto cloud_transformed = std::make_unique(); + if (!pcl_ros::transformPointCloud(tf_output_frame_, *output, *cloud_transformed, *tf_buffer_)) { RCLCPP_ERROR( this->get_logger(), "[computePublish] Error converting output dataset from %s to %s.", - output.header.frame_id.c_str(), tf_output_frame_.c_str()); + output->header.frame_id.c_str(), tf_output_frame_.c_str()); return; } - cloud_tf.reset(new PointCloud2(cloud_transformed)); + output = std::move(cloud_transformed); } - if (tf_output_frame_.empty() && output.header.frame_id != tf_input_orig_frame_) { + if (tf_output_frame_.empty() && output->header.frame_id != tf_input_orig_frame_) { // no tf_output_frame given, transform the dataset to its original frame RCLCPP_DEBUG( this->get_logger(), "[computePublish] Transforming output dataset from %s back to %s.", - output.header.frame_id.c_str(), tf_input_orig_frame_.c_str()); + output->header.frame_id.c_str(), tf_input_orig_frame_.c_str()); // Convert the cloud into the different frame - PointCloud2 cloud_transformed; + auto cloud_transformed = std::make_unique(); if (!pcl_ros::transformPointCloud( - tf_input_orig_frame_, output, cloud_transformed, *tf_buffer_)) { + tf_input_orig_frame_, *output, *cloud_transformed, *tf_buffer_)) { RCLCPP_ERROR( this->get_logger(), "[computePublish] Error converting output dataset from %s back to %s.", - output.header.frame_id.c_str(), tf_input_orig_frame_.c_str()); + output->header.frame_id.c_str(), tf_input_orig_frame_.c_str()); return; } - cloud_tf.reset(new PointCloud2(cloud_transformed)); + output = std::move(cloud_transformed); } // Copy timestamp to keep it - cloud_tf->header.stamp = input->header.stamp; + output->header.stamp = input->header.stamp; // Publish a boost shared ptr - pub_output_->publish(std::move(cloud_tf)); + pub_output_->publish(std::move(output)); } ////////////////////////////////////////////////////////////////////////////////////////////// From 47eda5f6f96db310b13bbdf25425dfb6f4dfde37 Mon Sep 17 00:00:00 2001 From: Takeshi Miura <57553950+1222-takeshi@users.noreply.github.com> Date: Wed, 1 Jun 2022 10:46:11 +0900 Subject: [PATCH 3/9] docs(merge_from_private): fix merge_from_private design image (#1013) Signed-off-by: 1222-takeshi --- .../docs/intersection/merge_from_private.png | Bin 72558 -> 68829 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/planning/behavior_velocity_planner/docs/intersection/merge_from_private.png b/planning/behavior_velocity_planner/docs/intersection/merge_from_private.png index ab6d898003197443ff3463741ccb154d82189ad1..3c556d0398735e51b101b6f58b24c4a2801705cc 100644 GIT binary patch literal 68829 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 ^k;N}sqg4rNN5U(8!PDPtOFN2 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 V(-eQE8U*+yE-WKdE};AM{{#D2`OE+S literal 72558 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 twgFh$13^5@M{9n`RGk+1 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

`|HCuMtu$NX7gaq%6eB7*h2#x<>-Wj$in)1 zfTcTddzicgw8dy2F?fI;hKa}L<#nxG>41LN0>C|k$JSlIhA8w5sYe}BJ=i&jX{rza!~vm0h% zv&xF*^jNepkfaEOqzETj$;9qz8<;iO*8L+l4^f$n5sNuH%(z&l;e&1lYC)0Dw#&(B zvvkjd{(2b#94$lxWFFv?3?S$54<#3HfH@=rLRTa%Nbuu5LaI)1x{~<)B|U)Qz6OH@ zPPS`1XpI7DMLf($U@sON5>g9zN^p1{f$SO}8d(BN8Ug_^@d@B!BB{EcfL=j>J8pqM z!=w@+`Og>)7t#PRw+DF1*K-}-0&s>I;A;w-#Et&-y$}W#EHMLskH&qUo0T=pH~R`s zDaCo248Il*oHh{00Vdt;U}-3sRcjnp`J)qn#|n?40IK&VSXfdXc0iXfOJ=4Wk5xm({0umZO#xRUxTh)? zi3J#lz=G`%xKh-C(e+;>zAQsmL%8_q4LoLpK<0Wk!Z!=TVGKA$0MqlwqF$$~fSqLt zngD)v0w{kIv$CSth9#yRAKAlslz`v{_k-{U`$-^JmIq!#i%VSv1py!d!fnXlw$R9` z@1j9?Pg=!k(csQGo^`>Ap#bCwY+;8mINP1NFMa~pKOnULG-P<~K3uikx>v>P^+SXT z2N(@(gIR?499Re1PwX*4a(+}3|BJZd;$Sd(!MzRm;sAJt5zA7kIb~vV=r9VbezB^X zT0ZDzleFYgsI1VO-g#YpAe~@AkgtY?H}1+qiCw6|^d?a9F}cqt*S3h}ml2KG=_gCT z^r*w@tPr?sf(i$iXPDtp2R3(r0Yyhk8vrT;M6^nubeKTob%Mx)vzh@oe-jQ50iz<@ z>vuUE%LYe4GXP^}z^?>mMk4?XhSm)<-f_cQg&#gZtREAOfV>wI2!)#tWxpHc&TU%_ z!~j@GbYRQE{!8u0%naP6>Tr-g&V(o95+JUkoh<9;&leAxysF?S0Zx;IGcMscTzKn^ zw*|r}dVq5eC)%+$WvMXHr#BLg!~Nlk!h>mC_-}|j0cjD~*~TX(;(-+$u+G_nuiBnI zRep7tBO}$S#zi2Nmj60E=zeXDfSoNOxKSPq20NVAQm+LFYe1p81okQV1TR}aW3=oPMvcQ_M7_^R2zNoo2ZIBs zy@|5{ycQ0H1fDBLzp@C+-Gp|qb)D!&4j&tazvz$~8k?WO`iX~O*&qW8h$zeb(_sw=yZ7J&W&(Bn4%smE@s z3>-HC)ylsY|B6jOw82oA25YdN=P$**ki$yVFe-eWaY<< z#^jFtN|{kEwzZd*;_-F7oRKtgEfIz&h1)v2uF_r1B_EdR?1e#<$p2&OO~AQsx2R#w zXfO|HFhoS6QYayrGtZ$s$e0YFkf97^Dr87fhRl+wLPV4yB_vT~9-|O4^RD|j=X~#X zeb@I~*SXGlI+g$b_q*@C*IIk+y(JFDk62q<4{ve|us&=UtC^UaZc&%QVt^gT z9lAck@vVSQnO#NyFW1_=2TziRhbIEFxUuFQOZ1R4ZUHuY#*PE;xzcV;B)_?CpKdNO ze67P+F8s?WN{TA6ia^L-JX_ zp5OS?0^i>yn#J#N(l=CHUu+cFuFmJ5CAvviw=I91S4^%}HZqp=Q`Zi|+RRf*_xu|y zkILu(TVT#8LRuce88(Ai`)3UGda9*s6WZv%k7M*zSLW|(CT8Y7M=^*%XG4C0&SAE<2XB>*`J|c-DG7=o?~}a}KD$GVustqiQoao;9F%nwcfj{f-lojN6dJvHMcR zg?MZ>O2FV%3h19WMl`@8eMddwm)aJs>S%;`GZh>_5m~x0%9D%@CCd=Dv&kweQ$Lo! zv!{9;n;+*Z9uXg_)89S`&R$o4qrI-hq0rH(%De>;BM_ccqiw#l+RWy#f3Ex5%leG1GS@$gYzK!#Aj3VtyjaH)goIfevwl0#J3i#;8x(y@U6+YRt zvzSSGFDgnFs%nV1rotaDAy7)LF&+Iv67*a3O$IUlnv6%?*nxPF3nOM&(f2Rh9fpLln`FV$= zA;4lDu?fyHMW*Zc(zyzCH zSy?qNw;n3)Nvt)-0yzYh%aZ9fY~UYLZX|F%efqRj60togFK;ru`|V8;n)}-}`?x%84&Mm5HkyScwQ~*uG)ff%hA2Lh#zEI z6qX6SYbW~^(3QSZ#5z3xa&xjAHu62IUckO+TmKqMGLO)*@EhxQmOXnK&|ggEpsvI2 z*Z~jHhym{k9v&yCsHn&ZA^Stl#q7k;`?0oMg@0uNkO2=zGXM4Qve}qqE0yE4tiPK`(ovwAFe+ABGVBDgHsjkufkM1zEX;@v&2v$Q~|i zuZ8GWkEz>dRXz$`%VmKEK>h_AAJO`O)uk0^;;S_H$Qn1)9~~2O54)K;XnXKsEOFix z?_JzDjw5*kYjTh?WiYf7`Ypswv*Qon;}v1~^aW1R~}#@LsQeqS>AvzTQfA6A9y#!!hK@PAJo%-!1}<1es3K3K*}v6|sC z<>-kMO|;Om12lN7zsL-T9xwPYmU{cg>8Nl1ax-@9_l9VXSvPTP-mzN|8VXJ*$yD|~ zPFy^9+#~s3WTc!riNcM*lEJ~jeGv+K$>!FYS4#NQ85tSOOOG(-9}rQTOt~f`*dW)& z1SHV-`mYyci1!S=iBaF*mM6wHPGN2%n*N%&8MsUGs>CvytzqWiL`b^7=8%(2-e+}zXf^~vVXbL+Ow4AHXj>scLAa=0&Rd~b3F~yQ zG8i|w3_C024@cl^QQQC|3ho?eGN^grm?Y0J}>D?wy^-tXV_(5!wh(EtodZ#rNSIjUkkq}~5?`H#Lk^NYg-+)lcp(GcE??Ly`6TOS&PfXo!~znw*s1fnDTzVC?At}f|jG+Zhw~< zXX99^1TDu`vq~qbrri$AEm8esJNbIM+ZWmwnw)CR^0cLm4V=AAiuYs<3}We$ z5itI<*gFp+#Z~q*ynp{5JFu`TM)u-G?*Ae&HD#byCKeX*Adt*du#XpMj2fL^>G_nu z%2E0xGh{I7zE|C6F*4r^n2v1fgGkrqIju^@`(yBUJ(&&-=BkFp%4Egjw>(q7!^31G zE!lZTCUzqqM?QLV=bPP7+@)vaC}QyxxfhtH{tolEr6K)7B~Z|0#D1Z#$weP<5uEyD zAA9^ffTe!x-rz9Soto=3_fI3sWXJ{$GV@(dNXE(OFjk_OA@EWlr3qt?5`}$n?`E)5 zaCky0Bp?P-fHOW3{f&|R$2>*}!ZxQg=VSbLcCgpn53*beO}=FPg!%D@?wGIt0BzM| zDV5Po^1$#g3K*3@=@bSSV}<$_gbY7Ie=0e|#UGHz)Y>=o z{!0CU%ib|$?bg>^lSXWh{$3V%B35hR3a(36 zTiximf5Jx+ij<^7t3QS-@}~RW-ls&*srsbLRxXB{`%MyG$~U`hfq@*I7rDBJpPXP# zInu+MayH|Yn!E5D_43VXR5X{eB=c#oTKtE-!pW}=^I|X$VSQr!)$cY$0Sc={fjrE<)(Bb-78%{|q8Dhda87YmkL^gDn{(!PC6Jt?!A=fEgRaaL>x7yC$ zFu8WZF4qz(BaihH>qNHGd15dG7O|*hUoHJ%zwe_+uF@>@zc4I_+_^-;J}XI>)L$Z{b0-5-x_sZfrNLXD%v?X2; zV#7c^eJXTYF)KeXG;{zfMh3B+ofnZC%V?aSru_kKK8#WOhsq{p&`14+tEm&Wqw{LV zWn3SSY@LOfaY1+dOe zCcH-=ZeX(|R31U2m(Rc5#Y3LN)}rO1o-bwlKSEyzGneGd(xHBI`=FAT>VBATDJMrjU&AE)HEUz_gpS{P8wU&nd8OV^4kQ5PrkW4wTbPh#9h_&y`O5s{z z1Wxcx3qK6)LPyu4CUht42?UVZmoHf2`^tBhd%2J06p3L!69J^3PEOcqrj_AUv>rA$ zGs7sOD76AKDHv-ZsbvKCQF03Ox|SCYKjfnv%9z*%x|u>#^={tvVKN%EVD zPgWqf!|Je8%DXHd)WhB!;e!I}oHewxs-Wgc+u7NLTwU^%)XOof#w_S$35`v7NM<$6L zkRuGBPm>e#Vkkmi4kMEIp~+L3iUP{gpHs%pfB|KPy^ zoZ4aRa}fD^9szm7=50MOM)syYUGBqs04yO>)_Kn@K(LBE;mS`GO6Xc!;;K3@6@c}G z3m;_i&51@u_BF{h1PmjRY>_Bx96tKJV!~=z8jq;e(xEL0fi~wBD|JaKw^|f7$z|ZgfV1Uzn<1(>mRjyt*ShQb(_6Xl~V{qrAaQXZ50I$7ZEM z!=1Z!osD|$|K!es>haP?lfn$Tj~N`+b(&|2%aTn8q*#VhAr#xQh-eQ*9W0@{0GLMt zHe-!0WFI0bIm-MLIcl>ND|7I!cjEKoH}&KDazg8X`N0X>F(&bb7;XUG@6_#Ll&d5? zz;P(Jk?I7gNg?nBr>z{(AiK&DFo~rGqKDB-J5ywGvTgyRkG{4$ph5$dkfwXG2qWgP z1%kXDpsY)pQx4rt&w-0q7uzaciq~420J>^q|8%DS6+y%~Dd=m8dJ|rQ@ZQ_EZ%-qv z;JDJDe_IZm!9(MdSbr#U?e+i}B+{eM<|sZ|7HXE{31WSs)!*@ND2kVP-B zk1b$Hft-`mly}$^BF$sMoNE%i{45K3AG`UYT&Saa%KH5uB(G_l2?DtKy+jHPa}Ht! z6$z2}GBLo&fl#~|*xA)DU%njTg{3(^m|x$xd=497L$drXPq|3|l~hrxHo4q{Kc&m; zw~@K|KC(N@XLUN^0Sbm>#|l7p*5Qg@Z77CY)+-_l85w&{;D8-mPC4Os$eX zUnB9z>+C&IfGekvBr7cFBwDIm;JL1eOW`SFRsa*UG?Ky_hpH0iTi{2f49U@3yI8$sl*Cb#>SdxYrh2uYXG_oHPvgt+!bj(J!Y&$ z`{7`bPr^N52HB&Agb@ZQ(^*RCUTEnPXuyPXK_x3<^*D~1Ca{4}iOd?1vk9dmrP>Ml z5;Sbo&W>LHYey=x5I;V3udQAqP!=md*A;_T-pTUD3{$a3YJe1XvaVsHGTG_EefV$$ zSq(>4YoS0|ZFU;D%eoxf5P?$OQtA*Cg)e6}eM+Wfveql)+VZO{R(Pw+*p-NxDZhok z=KX}SoS&Z$1lUc<*FZM)At{H7n_ONX@SD^puvAM1OPGtnC=K_JktSqbIsT8h#YGSE z)h5DXHl|mARPqH^LG>UW!Ktv*)gz_hni%)PQjj6h_AG{}9{9ZQnTc~PG{(E{@3F=<9_76-iOuGGSR_(1F z+Wz?64#s4>x;Oa2p|q`Ky8|iVI@;~Py&|3MdX+*~H-bB}H6S_7M(}sW+G74>2d*C^ zvyQS!6p1wW{JE8u1ZVQ3UOj7RZ*S*kU4GR@YpuC_29}~>ld%L&sj~Q#y|42Pjc%{N z!h)0FFhdECLXXXtcFo<1hgp-2sv4`kTpqnH>F&=Aez#jP)WwS0=;zo0>&YbcDvgs5 z4;~ig@}-nBeN-Bw&BayB&H1=}r87lKH#+C~N>njp&9-gn3A1OO|2$^Epuk~N`g|eo z38z7+Ut&7z+0O_+GXI(m8qSATuq@F_u%pTEko@CDni zrlzJhAhZA;8Tr4!k3p&=Q&LiP&z$--u~|WwH6=gasX{I&PDp!Bbho}S4Rx(n`cldR zm9*p6UA$MM0_GD2MywA-c70{JM{G(%-Hf)}O16cfsW}BNxJ0O`-k;v!vd6`R?O61Q zV}V(tIrV`PVb9K-QGBAOtLeI(>CuJ;S&;`SeP(5Tze?MG54?{o8BKf03Ws*V!NR{| zFGxWiJFTJ!l|kiB6A}dnEv%qLr9}I#IBP52a)i5KjO*18dlVuT5T-ghi$EhG37Sv2 z>Avw-{N4D^Mvt#4MAbsWJ=IP%gQZ#JNBAvGVr_3dH9 z&<19m??@#iTOeX@h~w{FeWj4SFm=xAk;O*N+_n!JXe5XM3wSXjs~)k|4KtqZta&4D zaF8qlpm*4QGwMU5I+gFCtU`JP7rAq}^x8z)vuAffuU@nlm1tc60z#G5P2#a1vl*OJ zw0FyqP(ggqLXhaJ$IX3_BjeKi8N-&mEh|kPk1i_hPqf)Mn^x~>IXZb;)w!_ixU)#OT4Cm@THuW z4<9^Gf@DRMbOcSJBoc=JPTe-^(l;&TWHBTzjndh(=k!>5imvrQhp@20ofEULvMNMX9AH%4#%9!etKptHP_&Qu&$c%}jfAy=IEzCd z@AMeUkss_G`dNivSXdWUgxkOz?SWOI*?BJ35QR z$RbW;QFzU*uRZ!{#0vs6K5myd8uG-wfRv9HupI+F8{&TV5a9~ih>ZV! z)SK0wW@cT`E^#V6*spO>rNFb!IUZ)ZB)(Ygy!s=(!M+Q^w|*Y@B-#FvZY1fiiN4~? zcO2hnBuy_^XXenp@LIZh#o2iQW%`hoQEpIw=*RTz><-(8mjruz3`${ZV8sE4=!gBV z_OEC4AOO4tog#P@wy29Z-(Xs8Zg)C<4FQ=7-ztWZ5efp$HgOFb00qAq8kby2)zqCw zSttqK8SFNAa(|=^dADguWnaRU@j0Sde^vR>~$syi%y#B>2lhp?dpv<*j)@S~-O0V#8;H8iU#+S2^WH{FT4S$#E~0>%AObQVdSvyi~>Emm(}D_m{po+3V!+ zoI)DsOwGTcAUGHLRv#Ylhd5Jj~S?-00bL<}bGx&k*QV!V4lANB- z`$hDW&uTnuBUjc|z4-N?g_f5~q7Y~W&`W_NLkuPB`HUaV&(Bj|-y0mb-0Z2T`vROx zrg! z{_x5_RNfM<$sHMSUduQ1vryhWq3kEO>Jt2AxlZfr-^Ud-y>uxgGLqr)_vf6bg5)`y z#-DHv2CRNCGGhH$!d(XJPoaT&b;rQm5lpClqWMIAesS>#N>KqK`j{wpq0H?xGBfJ7 z)$iW<+qPzDf{d%EsJKn_1?1(vetl~0_m6(4%=@9KgWXMyH18W9A9t&03B7Y?JL)D+ zu~!?eQeq`JaqYLt?Hzk0ZGPj=ylrfx36ibCGnxGRS6)HkHs)(Pugl?XDU1U23=Hne^Z7j#+Gs?2db{Pk>A#0` z^+bx6+kF8Zp4VSKD%=V!lK~k&awJtNr9kGha`1bhMcJt*-2E1Mhv~U5GM#njiHr!> z5B;u?tfu5}mT%GR$E!N2Z9%d!(fqnNc^jZP^6uN`hg4jdq>dNCcFa}-4-RK6Lo2nO zg)YcrapnLH^FQ#jqUFfU!lD{F7bOi%ZB5NBxS@y%8fL+rD4>G#Q7CWHzj!glSGdGw zl)fcheHd%2aY7yr3|xdpI1d8%4L(jtC;Az4=U{rHfM>a?tLyP_W5U)Bpdsk2X0oZjvqgM@cgSNkg3C$z8(bpz4hS1&aYp; zGCf{`>k<;;mZMgmU`6#u!3Qpek7$Ds_n66WJct*GO7zAEn6A}SRJNh1Kt>ggxifgJ zpB|l@o*C6fjpZ%wf*{!5B=_4-^z(yLGX`^@+bM1*S^fBaD8 zNzKDkH!so~#T)(SX&$XEw>6)Dra_{tUXXu$Sed-)xt;s=@wgnT_&6gN(R~}2MO{5t zhR$`O>y(SDYk+0x=FOW&e*V-dxiVN$#&Qu_D1?nYC=rJ4Jr#%I(vsteF?li^M*nRS9D73bH zSi|Z3CA0< zMn?anq$J{B1*AYB;W;0U zVgnsLy_S79EI_>j1Mi?rJb+UB!nU;!!pZ!?!b)okGx)=Te*bmzt?DmKG+&=)`0_=v zGd=U5)=oyodOkkAT68Jg5gOc)nnvfh zXS20hr)MuowXEpqN-Lb%>Dt<;xRr51VP7Q9O&te}{YVZMD!lJJe!Le3?G(trBV%LQ zsmjq6IlI^qtRus1y2iuQs000uw*SIA`T}G{5N=ADI5hUTB8Y9)&7{TG7l6z zyfRnTee^5)FH zWKq2)@$Xp_u8DsK`T4o}1|AMHdS? z1ZHMuGc})VMpKz@;OFLM&AfNyal0o7DT@Kh1_pY%FKbp&^)%-;N2QE8SETGT*%|ja z_tm-utpi~N(~6%2dQ?x-WhpBwS{wIKCax?@T`uPi$(KF$TWU-mR^qX9kyfsic!y=9l}ayANLd8x5M9GWTJjGm$264 zT@fA3bq)p<-|Oe072%|@zu;VpA8CU;?tTAg*V44t+SL6j_7%yXkH#OFEBGUmjyH5;lHGLFfu~h`1^i+eu0%{Jze?pNgp=0ssZlMM5t_%%7#EF+OD64}c zK_Fe>`I10X;ug=(ZGHUs@s}JUmMvShP~e;gbYGttAC>kN zKORIh9Ql$NIVlDzic+uUYY$g8QF|3cTWAd_pyL>@A9&*i1%B}(SO!sRfrsRbj2>cR za&l(odqADM7cX?hY8s{1K7#iI1qUbNyFIu2c8>tav^1iCprwTVZ}dsVdbwS1kW%X! z8me1bB4M>QwXsopbi!3pS-B5~T%fdeL;Ig$X^2co;o z*kj~+SPD0qhvF6%Af{2Per6WBpkis6HrZZVd%Mza%LZDc0^}#CGx#gLC%qUJShn(R z-5NrzFHQkD5JG?@&Kw0X-Xh@rV_~7&yBZS{!^Ebu%)EQ|Zt$dYCAtrMsL=xS4_ZK| zv!xQ0(QpA#!x+FC6sl)z?CgJ(9rO{EbgmwG5Q;7m@5%4%lAf%n@*uD(*xK^rG_-eg zFtD;_Ee%vcVp`T^b8tgJmUfI3@CrZz9k&HljaM;>f5GBSFalQZ?_ z532UeO!9?Y={RMi5dfI#C~g28A{3O{wxJMk3!()Pz96d0Ko!yWKJXI1Qq>?Xjq^lS zw^vqH8WsXs5SZA6P^~}_7rp)&BVcuBe^!ePQf-wtG`%1@tui$1DN z4{d#V?kL)qnBs<3n6cA(r|>@%Q1jFA2-rJ?cz6QP!5SJG>NfX#4+47nmBIShhYycp z=6#}w|Jt9yvuFZ)j~hzt1wfM-nVE-OMl|s0#60JPQRX&&EXM=uRiC6vcLCQ4X6Cmz=?L|Wa1Hu;djL$B-&T>?n zczAc?rcKS@voyi?5L29fcZw6O6m>XIL%=%p=Le#D8YHa`LYA+!?`N940+Wq@q6;Aa zkWU4Nv!L-3if)L}#ODfRnVt8b2ly}ZeCbQRc-hq{9X-vo*LM%OzWCxE9{ph&$S3%$ zq7Wa~#9Db-G&lW>K&F=VnLBK3wjxbm6K|!R*lcT-qBPKW2I2k!0hpiB}h69&Auq(-a*Vc^VZ=Ur!9O zkSAC;8fO)DF`XP;XA^P;|}B} z!+mz(t>@t?B?X0H(UARo=X0*Px>n;If#Q8mmfMPhHZ?tM4uP$Ty$(0dzpZXs>%%ij z9a;DrKFA#&fdBd~?riVq=zDxRs%_gY;`gF~^(dT8=ou3}dXyn~Pmx3S(8BaE8hpYd zBhNtRnVgzhNXZ|twzXZgZ{C>7eie^*8@nWazz}&}rbZ~bSz20BNO;UpnwXfts8HfQ zy&ue*_T_uLN~D(^U$XVXkSfV$7WB^@K7Jfp#!hL?mElIJ(jqDS4F2JUfX zd-yuy3H&G-|=&aI+P9Z;tYIuIHE863e>)NBTah}!XguOf;y*=P#A&^Rks5qL|B$?1AoCg z9*XP-}9G2gU92!9uGE6EYp-WeO_z;30+FW39 z7Ku2&u&}=_VjplwOTM{+rc4U>!@^2cq?f z96JW{#)GQPu3F?zw6T)w3ZffemVME^E$=C2L;Ipyb{F?G!WqlFM z9`J8vx^(GMiq-*?%w>MISBJ1Dp+y1T0sXn;OQAMnP-wXwcbes$8q)jZ?Cd5+?ODiR zXcSnnx-)wKt2$D&GOPGCzFmfxHZN@3p2rCo*^lQ|B^kypRRcK+H51S*+&^fSdeP?kc+x{r&CIxPsz@)#Ve^_q)U{r|JdO<#p|pRcEj=S+MQV$toyDLsnc(tUD$w{N~LY3I_)V z5?}F`pN%=#3)xmCBC~9rDS#(ji^HJ$gapiN(3Tw_%4yO)Ss4(y=eoMWdRs=UJ&0PyJ8*y{0a(SMeV+h1h>#>2C3-x` z3P!%a5b*Hu*e&I49Lo^ZwE+t7)RWp%SI1e^A4_Pu{e~Vzz4Zf5902_T02-e>c7t;u zBR5gW1MJCly#8(O{6NcsnZLH&GLUy?nR_HYnI@(x0rBM*6l6JWG6ST9kk~UY;2#!7 z1I#|&p6`c?LwYL#*y;l5_A%=1A1I0c!*l}=Q2UAe_MffUTcU1#{?Mg(KPrlEnJ(ef zb!HkGnnV#pjxherjEsM5ZR^pxDmfaqq+NUO_PjtJIu#HHh*X8I=;-1ii~36EPdkWt zKwD`@HC4`wi;FS_;(~(Pfwf=S|KKk>&d(o=wX5OL(bed8!F;7e^kRC>w(9#j-kV;W zy#%_RapCm|3P>QR=ujXC|F__Y#AJzzQ0#*T`R>z}Q2$k&obov?fgwuzef>Ui>iSdx8#D*MC1+{27VsSU9PnEmoRf0B+<$WA8CAH}EbT5| zc3)XM#&XEG2N9O^1VSqF($idpFFz3V30&e-I1q6ZxFD^4_^?k{Sfehbxvgy&-wQ_| z9@mmGxBHcAw#Jo7_;rrhe&K`q-~QYtk~YVK9ez&&e1DcBz<#Un@hSPZ1)_p!1RE^& zCB`0QMMa`pcI@uKyE8B}On&-Q1&19!k||UWwgl2WMD#SEZxG-=%L~r8w(q(Ho-egL z=~uN}pGN2Xk<%W{u{eOfz_tHaS@CwB1aS&RawoDiLV67z+>Ot#@)NulsZayzSxYaO z9ckWx`wl1uO^okaJRV331RAhae7}A?WS5^`g7|f_D7OwnO53=3vsSjAAhuAwudkN@ zTL&NF`|{T0wTCXPRYDa?F#&-sXkV zA*{CQ}xA{phrpe7)m6vQQU{12oZ-v}ne0}Z^61NrNHz}4u6apF}dNIDN zEPpiWyv#V73W&D6#oONx&v{pxgIz@OsxyD48EA~Yv;Y0{YnnYLW|~`{!&OQB#D)Dt zBh72xiQFzsInq>|4Gjz1@(*GaD=RB0T!3;rUb#ZA$M);jFJL|fz3fDhU#EeNMx_22 zUDlQ(^_JBODBx|l@#4iX$O(2oUd=n86H53dKKgfOdXLO#JKsx-i#igYJozrD&-XFAif1zH7N+)D0c_3s))ipmML$TIe z6ZWG=k5ERg2Ll>60gF_>l>bFFtU48KI zAsHM7sSiy{s4NJiJom!aT}G9k#8HvU-*x!7LW6^4xFRScq7ZAFa5<$9>k5gA>euBGs#=X#M>lOYtYlufYh_eYNt4AMP@(%KsRWRQ-b(_^r9adsOcwA23kn=$7xISNUO%h-y#~tv)FnZb}7E%14+3jeC<9K#oV2&zo--Y{YU zT3K`!I}Pr(MUKTcr?bsO<_LiKROW;Uyr>^$XANGt8~{6s7jyE3XzVp3@o(L++^(zK z>jV5h^%mmLN1P{nPE!Pk+bSX z5Dke_12Cl}Lv!Dz;fugb&=;TPCGMo7Z_i{J>bFY77qz<)B7~y;;|3G4$I1N6cl)i%ATEK3(Oz7n5S5mazY z4gNPvTrU!p@KL7cr_4c|Y+AFJkZ|j5s~_DlCrwG6`nro z1jC{%WAI$)c{E@4NYy$3rN-yFPj&F3YrS?W)Ft!;CA2Qj znrE&|nD|xPtC((IV*=@$xlWAzNI?eY&S4OUEN4n7^d-o_pYSm66c&=;C&RBRR>?mot>Tr&0rM}$fn*WJ2~nV zFM0ecj$Ni+&UfCne$P-ak+lax4-w!1ry%quT6~DXUEPpam2oc~hd&Qg4PJze`TVu` zSx`NkSC`#U3(C~b-8=iU^=(6gs$<($N6)OXOM8 z3&7dTc9v~9Mz^D*nZWIFDPch*7zraG81=l5?`_*S_rJLS7~TSSv#ItGG8#VbCUeRg z$ax@g^|1S`h0mRr9dM=${a$-#`2K+i#olW%>`EcQqlUSnKiFo^s2BEmoI%NyjxItd z!sm|TqDjDtNiek#CT+nTv1W7j2Te|~?sKhKo-!*gt~J+!tz8lNQAVF!28)ua@)hEs(;m%nBp~OGH+8b(L5B0>iSx zpal`T_HbZe;=fJO%i^;97<=>nef@xrPYF_Cj~`zsi5r#Lx{zas1c&rjc71Ngo;`a4 z;?fE6D!F0->&-`GRi>YJ5$_cM447&Fs<{vuc8fVC8rvv>34=i=L5`_%M)3yv8ej2t z$cBX&;sALA29o`-;G=5=bf0JZC_pgkcKi}TD6j|I+mxw846KtgGs`2hfk8o>I2=2$ z{PTn13Glg+s5M~E`(ypwk?-@0ipZB4@2+4ElI2RVzvb^w%fd3(EWT{CkleueZ$c#C zP_S-S(c;2FbK>a@y$evPiRp-FfQJv8;!ptv5jA#kZbBWO8%G9$-)=tFk=OW2LMG+h zklaC?kkWm1_~p)@e*_r`Ntv8&oHf1Jw@CCiw62fAJ%gCm4wJ6N_b!6ifa%Pwt?N+s z&nql^f{crj3?{GyfG449gA5W3F#6~3FC(~lxMTl0ovB$>8&`QdAONj7_;^QhFTAE7 z%7qIQPq4|s2458IN-{|)9GLBh1OoF^s^bcTSW;93fg~9fvMOKTyO|l6)Bik@^kPHp zBk{{PCl{B@X|Yq@%b45um3G%I68nXZA7}plPTHp7FTMk#e+wiCD3yA&YIxms7mq;F z5qIpl(ezo~zOV~V4cO*ekpnxv!yw@JHdf&qNJqd0{*UioA@v53>VR5=eYD6#GkD?K z#Y_1RVH`sYs{xt==zVcpZ$hnuj1bUeV3G3^aJCUV4kFnTP-mBsrklu=0`0HY?ib!H z7whGYR*q2QW@Kax$GkGw7BFIDZNV|0_!0sG>!cz$)wor^d* zatv%5+>ubo#F;b$Z$D!_VPbXyt-OaGRM>k!a^U}hxonf4ASeUmZE0iU-Qa)3pN0q< z851L~p%E^ei>Z!mBG%HdT4$as+z+|BvZJFkKHCJvwvwd^yeRNzp4db08>b;N;X4=` z8{^#T(5j+$n*rm;NhHz9F^mR_p+4k8Yo=75C9%?|1&_v#>PfcB!DMrR*^`UIa0ddpZrlet5o_i>8&+zkzVI->qls*>e?*6{E!{GAlv zzki2*h%(AsLpTtx2WzCl4$Kmj}`b>iqa!6*1w z(kobH|JyHL7-5kDjIrq|6GsPrFOn)#O{7BnfQaoE#o{TU5S9H;5Y_x|-HKrlMQS2L z$3;a&$*f1bBJ0m7LB2V!h*S^B=HSfu!4Cjxc)IE(HM0Qe7Hg|3)OYK&GNUj7<1>g# z<)6}naAKhh@)>dmk&I;52Kv1)H^j}ugMJs8Qxhz6l1%9a3W6v6BFvw}B8vH-{Id5+ z%Lzmxw1Z|$0#f%+{`u2~IuY73SL{F~nP9rYPI{;_*nGrf5 zAu_9!q!D0Gw8@O3vW|Zv)(GlfZg|=6aKEI)Rx2I|9qJPSRwY*!Dt2CeJ_d!TFslA1 ziE*t_6Lt3Zdg8Rnk=gnK!bp=7*Y{qeRac_{>_fT2QQ zej?_ej_C~5g!)oE+i^QGMHEVN8ZH)zh#R)-Xv#4X#eIWh_jIxt+sUDE1MKEDJzYii zLOm`J<}V@#N?TeEZ81t;Mi+{VZPyZ{X+&#XHL-I>Mg-58+T*d914W}ku4QZ-T2UcI z%!P1V4t~ra-Is{>Hf_%yX%sTRFoY+Dsz$L4b$3H5dH%s*6Z2w`7^vBgSbZIx}q58G(Sm(NxX%;1=Mc^d`Mi#NLSR| z2{1pyi!oDqY1UydL`6#lNDI~rq?*1b;zSeq_n$RxQliBd@?~)J@Ob6x{0*VQ>B^O4 zTn1>+a!E>yOQc%5pAvjG6~9Ow5epi#^^iT}eiVW>@7lEsj^~YUK$KCL22+U#)`xol z^>QMhqe`xt;p6*R{_mA3GFl8cq!G3TrcZBw{CGqJsbnhUu|UZ$w_w8?_Ip-`2G&7H zU(zxzW$3V7cj^nsAPB7?D7rpjcih+)dD&nT7I6>r@{)q`8%3UZ9N}M`Hf+LVd3L+Y8 zApgKhgj%BG)vL@krOv~5Irbun!ALRyvR(BTXAq#T;EI|(pwzoJZ*D*rig{>`hX$r7 zA22-uA1fZ)ez=>_3qjfZ1bQ0f&<+&nxj^>-%K;x0P+cMxW5AaI#2$*>5^mwdC-=(r z5}XLiNNRvTA`V^g__BYX)CKgvDlUdoNMN}bx|Chp*RT7b!^38P4~8+6+fXn>0y&JS zC=}3q?Dfky22{mP9 z`mT_In%!{Uk=n*-&(=(Bh1j>KY`QP};mOv^F+<@=+9vJ^rk~O>LFj+?{yi0+>ZTP~ z&QZFmM$NscNu%?}kEyx2+{sf*MbmPrKOafB(-V>Au|#H`7AZBL1~>XOr=wf!jQqXzrTNCYH9$aJdjzn8RE`)YK*Qd_m5f{t?O~&+ zl&Y#KF|KvJK8dF>1bYbz<8sc z#qeu9d1}#RC|y;^w8&AA2oA_zMwKtGpkTf7*ySw!+)s#1q%#p$5~G1IH}WC?$a-nS zUSx*TToJVF?2RZUpvC7H;kK2PN%8JgYgKrbj;9YEIwX(Z0g6ey-Y>hkF+oZlXOj$oh3>Kg&KF=zVy#0R67Z__(YkKQIG^bH(9fA7JeK*NY3# zyUakO73fjWE!L;nU&5OoL}3iJO^cP*ilwWq)T4DJzp_k#NOXAU406!@%p!)kITW+_2qniNKJiW$N64%mLMsSRTMM@IsK>eNh?$8jw-_zJ#v+DG2L(B|Ynqfk+oB z46PV`ksT=L~MSTNfrY22&qC}UmwLHzx@2e zWMn%&1Vx$misAgOlitfPEA;sUz$pEmKpp@%TsE9bbvPRkJx;^2GVwU>U#bGKk|2YF zhm*rzb|AX#g(p9JMND0FAyL$t5HEX8#8Jqgpia(({*tM)*lbwXU0>VP0%j1fSI=iN zs_2~S`TjVSEA}#CJ`_Z9R4?ELiHCJ9I2kpd|NS%I&>!-jJ_Zv0*RDb^z;M(9ZCgge zQtWb?O&XS(xLC0s`pS{XJ7+|nOJjYCgfM3A*KrcR%R)C;Y<#3iIT(l+0#M5(m;_(vrU4S7k zxDncW1(%6jKlrx-gc=S<_VH#HgwcRn5ZuL{^0g3%Y_L~Qyn!~cfH9rmgxc0-C&3pW zdCw~KKx3( zg@Vbx3rO}O%0xDu#fMQ0K~K>Zyf29BXOWvw;U)kXri*ZNjzTrSOC**Pq|AeYg5S`D zf!_<~hjY)Hbpa)NQTW6VCMtP){5D^nMFT<>f|S6QYTke9!}16Kox|*AT-tgx*vy~sTd=G0sP+6;_oAN znV>oR&y%!Wc)@@;a+QmxczERU*l1vHNBpgNiLd-v%I7ZXQlyFv{pSXhYy>h85f;)J ziiu=swhDp7+S}7}1NtF8)yj|IS@kpj_qh6SA$yU<1t4vvFo_|lMZCXQ=D9!*Zbj5P zxSw%wC`hD2s_L1TP{;QI{4_&hi`qObC57^DAJ7=4F#+?CHkAK*4wuoYj&X_GQQ1f7 z9I}%ox~cH>^KghM(8}>)_OP$ka0Oz~Vb~gprvrB%?rstmAski)?4b2nr9e|=07x7l zP#B`Yx^?St?)%|fn>nPcqQdCkM#>SPq1;$=gE}i2EKi2C;I&ANe&2!R7Wh@v6#dZr z1iK0F(1z4g$%l-KrJ<$cb@4z5!#WO)bhSNT-2^w`#rTdmIXg4d%+Ag6ii)y;uu$O2 z5nCYu8>5GjAg0_PzdXswX#jR6jRFX9q@9QFg~QsDkK!P(=io(!qC(s|GQWI~yC93i z#>P?*h79FM4z&%$%lY|v$ALOJoF-vm;Y2(JOt6eZeT#5H*lJ-gAyY+3hf=>GT>UW< zr1jMBc_0wmD(CPYb@~7IJ4CMOJ+!okX3o(|fB^2#$=iWB z^LNNhH@q_>sXEv;4KS&cs4J*Wf!I?m)d%>Zg%anTI3v(7NZB#gnq3R4yb7d9=mkI! zEWSVH@a8B2!@_E7YZYi+5|klA;F!TYa>knSBzhKMnB$d|J!DcI8W6AvBzkeg0A1*C zfi#0sl1f@`Zfb&+W2R3X;=#u*sLtu0M|3P`c<*?LH+>w z=stUv7lsG4=Y)%f_1&@md687C(~MpYM;dS33?DNZ9AuFq$!<8j>U4xc%=DyMf0&o| zHq6DG0r~iz)CWA*cx3;t8q6{Un;b0@Q#C#~(!Lz3#K@tWrckhAdS+5_7YGoCaX%lQ zqG_mle$6vTm=Jub;WEPsj0zFM&N=<|qU3yVJtA+SFse0j+XXQU7ztyDv%>9JSy*nP z7W=O!z$82#_>dxXC9#Xe7qY1gfB!JBmnw=+c=MbHqQoa>T!N({%y?{o+@zfo&`<$Y zRbmEfYRaq1Cod3?4^F3k3^wS;d6u~TSLJjR1!*J0peW*W2Z%-TA%q1NEDvSw(~91K zK%Yn$>|~4>#JU<(sp^CD;jTkS5O@ERQZOn~s-)xQR^18&-56 z5q-o(LQknFKC_IV2CP^mSAVggVsd7GB+<7}Q&Bv7wjVH0&swMBxs5hnj8x`LI}CtA zMu0g;li1&Veg7kpFBG2dz`vk0y#?(9y=d@3jv~ndl!~<1tt0bu5uE=|Z{Pjba~uC# z+NEI>p)ym7XsDzVCEP`kC|c5<+M+%s2`w7h8c3*6eLkfW3DJ&*b~I^8JB{aiL_`U z1STF!Pi!LS!2;~!LEQ)kD~2Y~qc?E6^DJsNv?W6N3&0m`R;?*FNw zu4@PrGbLs`lfjcrvM-@JC82(+6Qd`FA9x|i9!K2!-je&&xPmSzBSRA>ov!hz5wRZi zguq7-n31ua4qpGWue=lBNyb~biaB)<0QWPdAs!*u2jEj3hni(fmj3tOf8g_oB^IQI z9AL{?v`hgA!q>@^7kUcl&!t#QM0ujlp#XZ0a+&m?pFJC|B|8b`8KS^jpmc!A9+pzj zsHuPhWE>^9K&UlvOx}HF&@L?tkc=Oo`HTZl_8Q1gB2dHn*7F`EayO8K%TO~fRvISb z`8e^yz`#IxuUToZQ(!I=z}?+ZXvaoD7sgx~=gYY-geh!liUH{UjPL05duDd_6IKV& zm)!k8T4zXiSPN|^yKlikCFpObAVDWLK;5F`K7_miewO&}5P3k5YwPObQVSmBar_HP zMu-ttfVFaRa(2qfKExMimqpQ51|0bb12Z9c6Wc7d2GL3|Q5y^$@b6mUo581`C5<3N z#ITyiMslqj2GDE>wgLAEKNztc;XsS6BcG~l75pF8A5n?S8$fjH{PE)^Faj3%Jd{fv zG^~X`C6SEq7~t3;TxdT!z6IF{;}iFSXxNNQhRqJgHK{GX0L=RDCk@EtXdvxCpaqeR zWTl;JZ$REWqB)o^HQ{hVD}W6Q4GH0bCJ6&21E?=zuC<8^3wwhiQ66<0>YN9->I32D zjzT6xTl9nt&QONhtS$#PPQD)PII5!>oFSST+swQyxtH%`UHTDD(Z|x6$!vBNyfSqe zVmYaGS}M2h)I{*Sl~J|H?_Kkx-tZ>R<|Av=-)ApMxH*Mw+WIDAV3v|!giGL)qUE%U8IuAV09|+w?DxswoFJLKH)%?!w|-|$%>qsI zIwB1(cYC9AYmwJlQ276BkcbuV|3u*MOIlQ|gA)Z4ierb?2-cw>aCCMi^=VzYUN~fK z4C$x_J3%j)rZa-Q4RZ4et_yTTaE6KGh3f#WR@O{`6z``C-Qt!h7xP>njC|ehB3I==gX} za3RM0lR1cp>od5f^(nm3fBHvt?Dng zk+PcftNO@TITS-c#{qDkp?*PIrV{bTgEu3Cdi8TGi_t+WdWI%WhyArhS~>z*4wj~m z@EgKcZ`_CVLUVSBmKl`j#U2We=p@X)Ek; zKiA15I#%`2ByLGr+1n*R=Kr~fD#ZW$aw$Ya~sA{ zbEkc)95^)+qcON~8>$AVR#nll zvHhGHTrvdpF4snP88*xrhr-CNJaAvwPHr8}J{S3#3RWnwBfy>qVJc5s97|m625Lk{ zz)d8$=H_c11-;9o8@^%W&pF5fT&tvt8nOAXsZE-)%&_R;(b3a=4yt>3zCYedUdZU` zIXnp=g;Czgw?3u9s>B4}Dfah8Oa&%wiy+q{b{I78HWEd=M)?7gw)NBkq89PF63onscR|l!@zh1RiFBw)+SMTrH#ZoeP+13(gP1Qs7V_`(y^6Zm;MOX1 zCt}#l;QOVRGXXv)q6G2RHA8K>L{~%)9?Hf*es9{QmDN+ z(qv{W0)SGDGcP5C@#vo&7wTJY-2)3}l`92e5F*+JU@UAer`3Pz-K)mNNo{XlH33dv zz~i7QjoC+0f*13JTLaScz5V{|kgZk%u%d=9g^#oZ@yc#{h^vG)#Hz1$(Ui*_R&6e9#%fn%iM$({OqNo0HB3_~2}9Z0vEz zPu-&xs7+A)z2ocG%{&`J^oLY>LWtV-S$7o8Q(k&xPFEl9-28X1g4FBnpS@$?yM$>P zbIDlQ*;BAPA!7LfmBM@f7RiL*FvKH9$JKeH;R1TX*MWg@@bbhs2_l+UlSCentK8@S z^FUaWtc#Z*kHH^yLD(_{PH#|neS#gEj!*ow@{Q$N5W12O&xi^R>Q+0?(F7NoFktB3 zGyRMRalJ5*d}PEc%1-*zx%L7G-n7?HcHi4`otO+NLsejjCKNQ765}d3kQ0w}L<^L+ z{2rzI=eV=Xz|P}FAzoFhz4K|GQGuHsI=VSuBOzk1hGkUF7J^aBbNqUxjfU#AtFMnG z+N}-0wGRRZnKz3mCSMu~W5MbYq7dm0NrTX(w>PR`;KkM*JE|t-+m4x^dI|pnxn=@# z=Gf)X>9KzS(qpOMeWtv6Ycnh$=r;!8Kv1=U(4pR-db2B)w|+j4n{u?!nf<Hem*0 zJ)nb8tqjDNh+fuaf;-WeNJn-9tTE8ni&0n%9vLK7N$d~06MJ$o*Pb|T{n>dvdLmB| zvKr4yy2V5ukV&p+-#~*kJ&<~V4Q35=q5#XWX{`F{)e)!2#>FKJHw$kge7?&g0UPYb8M^+;;5P0a{!;Ntr(4 z_#F5>h%!WCfEeQl{%P~(s~gpBc3)Hk-*zAIn)q3GupI0Y z9WvJiyJsx&!RCXDt8}Fp@;`*lAOVYELe)q2O;)9|6Gpw9droRr#B=;t4?q;r$sd_O zIb4dg^iGH}r-D+QbYlUEm)6(wf)fRVvJITQS$bf})<0>tRM{rsp1d-KBY>!1zik^k z$~4HLGgvg7-EROF_s&5#0k78 z$U&%@aB~js@wtIw5}DF2VO}y@1HU$xDd|Pz4+Ee(+>(F-tqOlfZin>1O%9mG(FJa# z8wC>jGe?T1b_jB^#s4Wv1pQVSdiY{{gV0gK0r^tkE&&_|vXkk-N_bab>EZLiZdndm z3amT!tQj@};WTl|mXLeq$m|wq^h5e?2&ZjdUnnXnVkgmI7Q~WsMIh;_S)| zX)MB~Bw8UNlNt?^XYdDlRITEi8MGkD5o)f$Z3xrLS@8@JVyA|a@7AOKAP^i4qTo=L z@$kF`R3#`5Rls>5KT>Ez_Cp!T3Yr*b5dRw&Zp^{L9}z_{WM}FL#uGsUr$H6{s~E08 z)|Te}ALv)X%jK26Kjv)=pd~(}mxplYaU(crqt!l$O?~EX&}L zM`6v6dxB6dY=E!|v~&yQFoxj+jNZC+i$(C*TwjD+PJT40`L23&BYZ|9$zk8%`H>Gu zvG24FW+o+6-=aEcJlMmO{?`l@`Re%6-PMU5UuV@Y=UxzO-vg}5i_8Z)DXMHOmqmPt zW%aK;;8^m0e-YjE)p(X{CSCybTqX(_KocZu9JHp&u8-oH<(jBt2&&-=^atp~jE@i) z#6WV8)k88_CMb9m-BY6Ym|MJ-@6p}$?c08YXOa+5^W_BphJ#27dJhEI!zkfM{~Q#l z*C3<5y22N@3_3otCCN~z2k7FJykdb~dOjQ^W8g4((+6z56sB2XR5AAALu@HXnr)L! z0G3D^>kzj-!0a&mTbvALgEto%6c|r`ls~)hV=~hiv<(5Ih=UezI86zt?_IN8j*T4e zIe$fs&sSgKDVi$7XQk40#h{+S1Ev%OX(`GNd)A$b(;I+@W`(`c=}@ka}Uus)ZK}0`m!NEhhtee|nZL z4z}97seGlFFW;IGz@=Up&&%nQq_W3T^A-r1Qw^ZFk z*+tv^OV;gK^6sYZyDJMr8y|<}4$ZoDOlgTl`5d=gtW9GRQW-s`*SOC`Ztw4<@p4RN zNBmBfObqm%Ej^Y}RC!uiZVQv*`PJ4ptP(QSgVcgobD6a{QFa@6CN(_$IIomDqWW}h z&(!?UqiJSF=7ma*A6okYtK%BKe>XofS>0E&Z0v=M$A_xRCLPMu$3KrJybM(w+tm78 zc|OW%xO^#JczChXs^M1Oo4kU<`hqJ&qyN0=X@`~x#o0hLtyJm!_VUi}^nDV_k!6-6 z-f0g4JN>PnZCqLSO{`9#Q2W>_RUtXX%*GP(ypd6eUV1>&$OrY6!*U{O8Vg` z&lMjQR%;ZHtdwwt%fRePqDCAodg?rL&<(!QrrgUjuRpTIC#dL2EzlPAG8(TQ`1(e; zrmS`Mgivp2mVKJfbNSNB%4>(lL-!@W4^pOjZnt^asE|yvcU;}Mq(3-L%g!iZqknP6 z(%H|-9+?||^lJ8hXfSGVS=7B}c)hmp^{jXN6u!vS=PlC_8ofGiSwM4P$>q?*onaULKv$2Y*)5){&u94yQjbFSri$aya*bl*2Oy<)JHsa-KiMNwzOus5&Xrgm&qa_Uh@ z{`fRbp6AO7O~SXA&_|0mhV_V0J{M|Au&Ky+y<@Zr$$TD{`%$`WL}@tc!jkb%J;pBr ze+ev&OQ}h$RMAX`mg1m#Z<_tpvu@-R=UQy08iz^M4AyIJ{IlH-QY@+xW2oihc8t>Y zthp=JZ|9v4t=3BZud)c+W9${9#nu(Z_fv~Mo)A_(lDohBls3a`ae_kssg|TW;>wiW zTl<3RGyK-26l-ZP~oprZr^fYh_hGw|dEga$zxDs-%u57u9&j zTSLD%SZ}@w6ue$li<^6@fHEDfiC;MCJ+lOxq_c0V+iZK?kO#Ub>*XMVI z-=MF(pYgVKs`%rBu6f=JLsE<~!ZryT>oYk$p9z(@U(Xmkc5HF!Imzb8MGrnj@viA} zYT751c2g36GYz$ITgOW7;S}z2=}n(W9_Wd2#a*i#%WAPX%^g$z2f=q z?`QSw%`|4tck`{dZ|>GmaB0;M8AmL9x7+nFXe&bh>l( zx}rqw5>3jdH5@N&IOST{`7lxQhUvjG7ZrO>q-hH%y6&+yrX13crgsu@u>ACaF^pk0 zrutI-8fR{Uf+Xg`zUg&akHv_0XQ}CRL~gzHFZnE*Sb&cAwKl@b0z>Bf3 zp{iqk6Ri?@oGZBmeDAj5;=oGosX^x}KVC6zJ$9hyNPiK7#zE`vP7x1Tx-XS6YKmQ{ z^$SQ|({SMF0<(8P^w37>`wwDXb$!$H=~ejha=1=Vrq;V~y<)w}`>%b8#r3>0Cbm^G zM~*4_>u2%I8@`V==-8>3xJfK)a+ zs1^3%N|#sG(_E`eDRavde{9Ng;je#jplbfY=ueFcQtvC8gm3AvTi2^kv3f+4BH^1+yxu+!g;JjKkpP$)?cipddKQGJZbmS)A zVe$N3^_$yei1|m8MP>BuIPIaVd5_RQsTBhT2AVT>kBbDpW0dpfh+BH(`MI=uF*;j* zpLH>8>bupFB@DAV+?RRC2z{mHqx&67?z)-2O`K&+J&14sy4+rIa!zwF^b?-jep>Pob#< z(0Zv)o_tK-yd`Ei?UJh{M?sM+r6AI`oPX>Mmk?D#tiTP|0aaWUjIy=S?Wv~m=?3=l zWPM`fcx06pJ4t_k!IrB`yR-X4MoUPd*~E`D{zP-L_~GPDvIolf=+bTrbt`#WTZhc( z$*+{)%C(OXZ;pJD_H@7TXTB5m&G&D6@f*3_aMyZwGd8HDDbd-mD~I24LALJW0X_b_ zh?Oo6?aiwq{bZgmME!59fA;LJxJ-wbcxNO2gPd!vk4$(Mu(m5|JQ7s4;~wumrY%t~ z!~gIwz4@hc8*Oi1DQ1vj{$RPf=A~%G8Aw_8+z$5at#vP`j891}(bT#ym=`0VbD#Bx zP-3)cS)@$(VtJHIvHCZG@X^_c4lSBS!)X?-VzJ;cu2{SQFZn*H>aIr*J0H!N4+cr@ ztxw_KdhGzrg_+KP-eQ3{^xgY0m&EBVD}R zPeiv)+BC26yA%pBM^WYp^FCa}?4Y`xU2?3uD#5QxKp^xfHAX73&Ap)Z_8ARhW?{>1 z`gJZtzg;BbU-=jo@=--t=W9z}80P;N2)>(3M;p4zCogsAvAYCvw z`Lm@`UYRvUY9ahkvbj!{mY<*BZRgv`^EpiMGxyf7UA7(Q(h>fBo|Z$#_xx`>!Yb|ct9zwKchZ}fkNHsqRG&_l&8^ohi(uWI9`I|eb*$KBrPA|` zZX;?>J1omMii4ggQyt_E<>wdOOHoY{x`%MlXW!7qpp-AKVx?-Vy@ye9F?XW;IDOu_YPKnWf=jVav2cqQg-_>S4|CovzTD1N zesAbVRM@$!i0mcKZe71Q!u}n-!w*~=mZTr)nKzwppHiwA{Z_oU-`VSGF|K-3*!F!# z#P+yL%IQ?m;EE|$i*J^}N>dz Date: Wed, 1 Jun 2022 11:16:31 +0900 Subject: [PATCH 4/9] feat(behavior_velocity): add run out module (#752) * fix(behavior_velocity): calculate detection area from the nearest point from ego (#730) * fix(behavior_velocity): calculate lateral distance from the beginning of the path Signed-off-by: Tomohito Ando * add argument of min_velocity Signed-off-by: Tomohito Ando * use veloicty from the nearest point from ego Signed-off-by: Tomohito Ando * pass struct by reference Signed-off-by: Tomohito Ando * fix to interpolate point in util Signed-off-by: Tomohito Ando * fix(longitudinal_controller_node, vehicle_cmd_gate): update stopped condition and behavior (#700) * fix(longitudinal_controller_node): parameterize stopped state entry condition Signed-off-by: satoshi-ota * fix(longitudinal_controller_node): simply set stopped velocity in STOPPED STATE Signed-off-by: satoshi-ota * fix(vehicle_cmd_gate): check time duration since the vehicle stopped Signed-off-by: satoshi-ota Signed-off-by: Tomohito Ando * docs(autoware_testing): fix link (#741) * docs(autoware_testing): fix link * fix typo Co-authored-by: Kenji Miyake <31987104+kenji-miyake@users.noreply.github.com> Signed-off-by: Tomohito Ando * fix: trajectory visualizer (#745) Signed-off-by: tomoya.kimura Signed-off-by: Tomohito Ando * fix(tier4_autoware_utils): modify build error in rolling (#720) * fix(tier4_autoware_utils): modify build error in rolling Signed-off-by: wep21 * fix(lanelet2_extension): add target compile definition for geometry2 Signed-off-by: wep21 * fix(ekf_localizer): add target compile definition for geometry2 Signed-off-by: wep21 * fix(freespace_planning_algorithms): add target compile definition for geometry2 Signed-off-by: wep21 * fix(interpolation): add target compile definition for geometry2 Signed-off-by: wep21 * fix(freespace_planner): add target compile definition for geometry2 Signed-off-by: wep21 * fix(lane_departure_checker): add target compile definition for geometry2 Signed-off-by: wep21 * fix(map_based_prediction): add target compile definition for geometry2 Signed-off-by: wep21 * fix(ground_segmentation): add target compile definition for geometry2 Signed-off-by: wep21 * fix(motion_velocity_smoother): add target compile definition for geometry2 Signed-off-by: wep21 * fix(multi_object_tracker): add target compile definition for geometry2 Signed-off-by: wep21 * fix(trajectory_follower): add target compile definition for geometry2 Signed-off-by: wep21 * fix(control_performance_analysis): add target compile definition for geometry2 Signed-off-by: wep21 * fix(detected_object_validation): add target compile definition for geometry2 Signed-off-by: wep21 * fix(goal_distance_calculator): add target compile definition for geometry2 Signed-off-by: wep21 * fix(ndt_scan_matcher): add target compile definition for geometry2 Signed-off-by: wep21 * fix(route_handler): add target compile definition for geometry2 Signed-off-by: wep21 * fix(behavior_path_planner): add target compile definition for geometry2 Signed-off-by: wep21 * fix(mission_planner): add target compile definition for geometry2 Signed-off-by: wep21 * fix(obstacle_avoidance_planner): add target compile definition for geometry2 Signed-off-by: wep21 * fix(obstacle_stop_planner): add target compile definition for geometry2 Signed-off-by: wep21 * fix(obstacle_collision_checker): add target compile definition for geometry2 Signed-off-by: wep21 * fix(shape_estimation): add target compile definition for geometry2 Signed-off-by: wep21 * fix(behavior_velocity_planner): add target compile definition for geometry2 Signed-off-by: wep21 * fix(path_distance_calculator): add target compile definition for geometry2 Signed-off-by: wep21 * fix(detection_by_tracker): add target compile definition for geometry2 Signed-off-by: wep21 * fix(surround_obstacle_checker): add target compile definition for geometry2 Signed-off-by: wep21 * fix(probabilistic_occupancy_grid_map): add target compile definition for geometry2 Signed-off-by: wep21 * fix(tier4_debug_tools): add target compile definition for geometry2 Signed-off-by: wep21 * fix(tier4_vehicle_rviz_plugin): add target compile definition for geometry2 Signed-off-by: wep21 * fix(pure_pursuit): add target compile definition for geometry2 Signed-off-by: wep21 * fix(trajectory_follower_nodes): add target compile definition for geometry2 Signed-off-by: wep21 * fix(occupancy_grid_map_outlier_filter): add target compile definition for geometry2 Signed-off-by: wep21 * fix(traffic_light_map_based_detector): add target compile definition for geometry2 Signed-off-by: wep21 * fix(planning_error_monitor): add target compile definition for geometry2 Signed-off-by: wep21 * fix(planning_evaluator): add target compile definition for geometry2 Signed-off-by: wep21 * fix(lidar_centerpoint): add target compile definition for geometry2 Signed-off-by: wep21 Signed-off-by: Tomohito Ando * fix(behavior_velocity): handle the case when finding index failed (#746) Signed-off-by: Tomohito Ando * feat: add scene module of dynamic obstacle stop Signed-off-by: Tomohito Ando * fix warnings Signed-off-by: Tomohito Ando * add temporary debug value Signed-off-by: Tomohito Ando * add feature to go after stopping Signed-off-by: Tomohito Ando * fix parameter namespace Signed-off-by: Tomohito Ando * use planner util Signed-off-by: Tomohito Ando * fix calculation when multiple obstacles are detected in one step polygon Signed-off-by: Tomohito Ando * remove unnecessary debug Signed-off-by: Tomohito Ando * add option to apply limit jerk Signed-off-by: Tomohito Ando * Modify parameter name Signed-off-by: Tomohito Ando * Add param file Signed-off-by: Tomohito Ando * remove unnecessary comments Signed-off-by: Tomohito Ando * add feature to exclude obstacles outside of partition Signed-off-by: Tomohito Ando * modify search distance for partitions Signed-off-by: Tomohito Ando * apply voxel grid filter to input points Signed-off-by: Tomohito Ando * set smoother param by passing node instance Signed-off-by: Tomohito Ando * add parameter for velocity limit (temporary) Signed-off-by: Tomohito Ando * add dynamic reconfigure Signed-off-by: Tomohito Ando * add debug value Signed-off-by: Tomohito Ando * avoid acceleration when stopping for obstacles Signed-off-by: Tomohito Ando * fix lateral distance to publish distance from vehicle side Signed-off-by: Tomohito Ando * modify the location to publish longitudinal distance Signed-off-by: Tomohito Ando * fix calculation of stop index Signed-off-by: Tomohito Ando * use current velocity for stop dicision Signed-off-by: Tomohito Ando * add dynamic parameter for slow down limit Signed-off-by: Tomohito Ando * add debug value to display passing dist Signed-off-by: Tomohito Ando * modify stopping velocity Signed-off-by: Tomohito Ando * update param Signed-off-by: Tomohito Ando * use smoother in planner data Signed-off-by: Tomohito Ando * use path with lane id instead of trajectory Signed-off-by: Tomohito Ando * remove unnecessary data check Signed-off-by: Tomohito Ando * extend path to consider obstacles after the end of the path Signed-off-by: Tomohito Ando * rename public member variables Signed-off-by: Tomohito Ando * remove unused paramter Signed-off-by: Tomohito Ando * create detection area using util Signed-off-by: Tomohito Ando * fix visualization of stop distance marker Signed-off-by: Tomohito Ando * make option for detection method easier to understand Signed-off-by: Tomohito Ando * remove parameter about whether to enable this feature Signed-off-by: Tomohito Ando * calculate and publish debug data in function Signed-off-by: Tomohito Ando * use compare map filtered points Signed-off-by: Tomohito Ando * add comment Signed-off-by: Tomohito Ando * fix visualization of detection area when calculation of stop distance failed Signed-off-by: Tomohito Ando * add option whether to specify the jerk Signed-off-by: Tomohito Ando * fix format Signed-off-by: Tomohito Ando * change parameter name Signed-off-by: Tomohito Ando * remove dynamic reconfigure Signed-off-by: Tomohito Ando * delete unused file Signed-off-by: Tomohito Ando * remove unnecessary comments Signed-off-by: Tomohito Ando * remove unnecessary includes Signed-off-by: Tomohito Ando * add launcher for compare map Signed-off-by: Tomohito Ando * add launch and config for dynamic obstacle stop planner Signed-off-by: Tomohito Ando * fix finding package name Signed-off-by: Tomohito Ando * handle the change of util Signed-off-by: Tomohito Ando * relay points for simulation Signed-off-by: Tomohito Ando * update parameter Signed-off-by: Tomohito Ando * fix position and color of stop line marker Signed-off-by: Tomohito Ando * pre-commit fixes Signed-off-by: Tomohito Ando * remove unnecessary comments Signed-off-by: Tomohito Ando * fix Copyright Co-authored-by: Yukihiro Saito Signed-off-by: Tomohito Ando * fix Copyright Signed-off-by: Tomohito Ando * fix typo Signed-off-by: Tomohito Ando * add documents for dynamic obstacle stop module Signed-off-by: Tomohito Ando * ci(pre-commit): autofix Signed-off-by: Tomohito Ando * update documents Signed-off-by: Tomohito Ando * docs: begin a sentence with a capital letter Signed-off-by: Tomohito Ando * docs: replace predicted with smoothed for path velocity Signed-off-by: Tomohito Ando * create interface class to switch method Signed-off-by: Tomohito Ando * run compare map filter only when points method is used Signed-off-by: Tomohito Ando * delete unused functions Signed-off-by: Tomohito Ando * rename functions for inserting velocity Signed-off-by: Tomohito Ando * rename parameter of path_size to max_prediction_time Signed-off-by: Tomohito Ando * fix(behavior_velocity_planner): dynamic obstacle stop planner docs Signed-off-by: Makoto Kurihara Signed-off-by: Tomohito Ando * fix(behavior_velocity_planner): add ego vehicle description Signed-off-by: Makoto Kurihara Signed-off-by: Tomohito Ando * fix(behavior_velocity_planner): change space to hyphen Signed-off-by: Makoto Kurihara Signed-off-by: Tomohito Ando * change smoothed to expected target velocity Signed-off-by: Tomohito Ando * Start a sentence in figure with a capital letter Signed-off-by: Tomohito Ando * fix typo Signed-off-by: Tomohito Ando * use voxel distance based compare map Signed-off-by: Tomohito Ando * select detection method from param file Signed-off-by: Tomohito Ando * do not launch as default for now Signed-off-by: Tomohito Ando * rename dynamic_obstacle_stop to run_out Signed-off-by: Tomohito Ando * remove unnecessary change Signed-off-by: Tomohito Ando * remove unnecessary changes Signed-off-by: Tomohito Ando * remove unnecessary changes Signed-off-by: Tomohito Ando * fix typo Signed-off-by: Tomohito Ando * change default to false Signed-off-by: Tomohito Ando * update cmake to build run_out module Signed-off-by: Tomohito Ando * add launch_run_out parameter Signed-off-by: Tomohito Ando * Add note for compare map filtered points Signed-off-by: Tomohito Ando * handle the change for virtual wall marker Signed-off-by: Tomohito Ando * rename the parameters for smoother Signed-off-by: Tomohito Ando * fix build error in humble Signed-off-by: Tomohito Ando * fix build error in humble Signed-off-by: Tomohito Ando * launch compare map only when run out module is enabled Signed-off-by: Tomohito Ando * update a document Signed-off-by: Tomohito Ando * add calculation time for modify path Signed-off-by: Tomohito Ando * update a document Signed-off-by: Tomohito Ando Co-authored-by: Satoshi OTA <44889564+satoshi-ota@users.noreply.github.com> Co-authored-by: Esteve Fernandez Co-authored-by: Kenji Miyake <31987104+kenji-miyake@users.noreply.github.com> Co-authored-by: Tomoya Kimura Co-authored-by: Daisuke Nishimatsu <42202095+wep21@users.noreply.github.com> Co-authored-by: Yukihiro Saito Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Makoto Kurihara --- .../behavior_velocity_planner.param.yaml | 1 + .../run_out.param.yaml | 45 + .../launch/planning.launch.xml | 6 + .../scenario_planning/lane_driving.launch.xml | 6 + .../behavior_planning.launch.py | 94 ++ .../behavior_planning/compare_map.launch.py | 89 ++ .../scenario_planning.launch.xml | 6 + .../behavior_velocity_planner/CMakeLists.txt | 5 +- planning/behavior_velocity_planner/README.md | 19 +- .../behavior_velocity_planner.param.yaml | 1 + .../config/run_out.param.yaml | 45 + .../calculate_expected_target_velocity.svg | 4 + .../run_out/collision_detection_for_shape.svg | 4 + .../docs/run_out/collision_points.svg | 4 + .../docs/run_out/create_dynamic_obstacle.svg | 4 + .../run_out/create_polygon_on_path_point.svg | 4 + .../exclude_obstacles_by_partition.svg | 4 + .../docs/run_out/insert_velocity.svg | 4 + .../docs/run_out/run_out_overview.svg | 4 + .../include/scene_module/run_out/debug.hpp | 145 +++ .../scene_module/run_out/dynamic_obstacle.hpp | 157 ++++ .../include/scene_module/run_out/manager.hpp | 46 + .../scene_module/run_out/path_utils.hpp | 95 ++ .../include/scene_module/run_out/scene.hpp | 158 ++++ .../include/scene_module/run_out/utils.hpp | 227 +++++ .../run-out-design.md | 197 ++++ .../behavior_velocity_planner/src/node.cpp | 4 + .../src/scene_module/run_out/debug.cpp | 322 +++++++ .../scene_module/run_out/dynamic_obstacle.cpp | 218 +++++ .../src/scene_module/run_out/manager.cpp | 154 +++ .../src/scene_module/run_out/scene.cpp | 879 ++++++++++++++++++ .../src/scene_module/run_out/utils.cpp | 510 ++++++++++ 32 files changed, 3452 insertions(+), 9 deletions(-) create mode 100644 launch/tier4_planning_launch/config/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner/run_out.param.yaml create mode 100644 launch/tier4_planning_launch/launch/scenario_planning/lane_driving/behavior_planning/compare_map.launch.py create mode 100644 planning/behavior_velocity_planner/config/run_out.param.yaml create mode 100644 planning/behavior_velocity_planner/docs/run_out/calculate_expected_target_velocity.svg create mode 100644 planning/behavior_velocity_planner/docs/run_out/collision_detection_for_shape.svg create mode 100644 planning/behavior_velocity_planner/docs/run_out/collision_points.svg create mode 100644 planning/behavior_velocity_planner/docs/run_out/create_dynamic_obstacle.svg create mode 100644 planning/behavior_velocity_planner/docs/run_out/create_polygon_on_path_point.svg create mode 100644 planning/behavior_velocity_planner/docs/run_out/exclude_obstacles_by_partition.svg create mode 100644 planning/behavior_velocity_planner/docs/run_out/insert_velocity.svg create mode 100644 planning/behavior_velocity_planner/docs/run_out/run_out_overview.svg create mode 100644 planning/behavior_velocity_planner/include/scene_module/run_out/debug.hpp create mode 100644 planning/behavior_velocity_planner/include/scene_module/run_out/dynamic_obstacle.hpp create mode 100644 planning/behavior_velocity_planner/include/scene_module/run_out/manager.hpp create mode 100644 planning/behavior_velocity_planner/include/scene_module/run_out/path_utils.hpp create mode 100644 planning/behavior_velocity_planner/include/scene_module/run_out/scene.hpp create mode 100644 planning/behavior_velocity_planner/include/scene_module/run_out/utils.hpp create mode 100644 planning/behavior_velocity_planner/run-out-design.md create mode 100644 planning/behavior_velocity_planner/src/scene_module/run_out/debug.cpp create mode 100644 planning/behavior_velocity_planner/src/scene_module/run_out/dynamic_obstacle.cpp create mode 100644 planning/behavior_velocity_planner/src/scene_module/run_out/manager.cpp create mode 100644 planning/behavior_velocity_planner/src/scene_module/run_out/scene.cpp create mode 100644 planning/behavior_velocity_planner/src/scene_module/run_out/utils.cpp diff --git a/launch/tier4_planning_launch/config/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner/behavior_velocity_planner.param.yaml b/launch/tier4_planning_launch/config/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner/behavior_velocity_planner.param.yaml index d47649bbe7831..1332e422cd3e6 100644 --- a/launch/tier4_planning_launch/config/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner/behavior_velocity_planner.param.yaml +++ b/launch/tier4_planning_launch/config/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner/behavior_velocity_planner.param.yaml @@ -9,6 +9,7 @@ launch_virtual_traffic_light: true launch_occlusion_spot: true launch_no_stopping_area: true + launch_run_out: false forward_path_length: 1000.0 backward_path_length: 5.0 max_accel: -2.8 diff --git a/launch/tier4_planning_launch/config/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner/run_out.param.yaml b/launch/tier4_planning_launch/config/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner/run_out.param.yaml new file mode 100644 index 0000000000000..8818ed01998da --- /dev/null +++ b/launch/tier4_planning_launch/config/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner/run_out.param.yaml @@ -0,0 +1,45 @@ +/**: + ros__parameters: + run_out: + detection_method: "Object" # [-] candidate: Object, ObjectWithoutPath, Points + use_partition_lanelet: true # [-] whether to use partition lanelet map data + specify_decel_jerk: false # [-] whether to specify jerk when ego decelerates + stop_margin: 2.5 # [m] the vehicle decelerates to be able to stop with this margin + passing_margin: 1.1 # [m] the vehicle begins to accelerate if the vehicle's front in predicted position is ahead of the obstacle + this margin + deceleration_jerk: -0.3 # [m/s^3] ego decelerates with this jerk when stopping for obstacles + obstacle_velocity_kph: 5.0 # [km/h] assumption for obstacle velocity + detection_distance: 45.0 # [m] ahead distance from ego to detect the obstacles + detection_span: 1.0 # [m] calculate collision with this span to reduce calculation time + min_vel_ego_kmph: 3.6 # [km/h] min velocity to calculate time to collision + + # rectangle detection area for Points method + # this will be replaced with more appropriate detection area + detection_area_size: + dist_ahead: 50.0 # [m] ahead distance from ego position + dist_behind: 5.0 # [m] behind distance from ego position + dist_right: 7.0 # [m] right distance from ego position + dist_left: 7.0 # [m] left distance from ego position + + # parameter to create abstracted dynamic obstacles + dynamic_obstacle: + min_vel_kmph: 0.0 # [km/h] minimum velocity for dynamic obstacles + max_vel_kmph: 5.0 # [km/h] maximum velocity for dynamic obstacles + diameter: 0.1 # [m] diameter of obstacles. used for creating dynamic obstacles from points + height: 2.0 # [m] height of obstacles. used for creating dynamic obstacles from points + max_prediction_time: 10.0 # [sec] create predicted path until this time + time_step: 0.5 # [sec] time step for each path step. used for creating dynamic obstacles from points or objects without path + + # approach if ego has stopped in the front of the obstacle for a certain amount of time + approaching: + enable: false + margin: 0.0 # [m] distance on how close ego approaches the obstacle + limit_vel_kmph: 3.0 # [km/h] limit velocity for approaching after stopping + stop_thresh: 0.01 # [m/s] threshold to decide if ego is stopping + stop_time_thresh: 3.0 # [sec] threshold for stopping time to transit to approaching state + dist_thresh: 0.5 # [m] end the approaching state if distance to the obstacle is longer than stop_margin + dist_thresh + + # parameter to avoid sudden stopping + slow_down_limit: + enable: true + max_jerk: -0.7 # [m/s^3] minimum jerk deceleration for safe brake. + max_acc : -2.0 # [m/s^2] minimum accel deceleration for safe brake. diff --git a/launch/tier4_planning_launch/launch/planning.launch.xml b/launch/tier4_planning_launch/launch/planning.launch.xml index a596f0b408768..94dd7d853776d 100644 --- a/launch/tier4_planning_launch/launch/planning.launch.xml +++ b/launch/tier4_planning_launch/launch/planning.launch.xml @@ -3,6 +3,10 @@ + + + + @@ -16,6 +20,8 @@ + + diff --git a/launch/tier4_planning_launch/launch/scenario_planning/lane_driving.launch.xml b/launch/tier4_planning_launch/launch/scenario_planning/lane_driving.launch.xml index 09c282b16a4ff..457abe3a62f4b 100644 --- a/launch/tier4_planning_launch/launch/scenario_planning/lane_driving.launch.xml +++ b/launch/tier4_planning_launch/launch/scenario_planning/lane_driving.launch.xml @@ -3,6 +3,10 @@ + + + + @@ -12,6 +16,8 @@ + + diff --git a/launch/tier4_planning_launch/launch/scenario_planning/lane_driving/behavior_planning/behavior_planning.launch.py b/launch/tier4_planning_launch/launch/scenario_planning/lane_driving/behavior_planning/behavior_planning.launch.py index 699602bf3e4ad..8b917ccbc2f3e 100644 --- a/launch/tier4_planning_launch/launch/scenario_planning/lane_driving/behavior_planning/behavior_planning.launch.py +++ b/launch/tier4_planning_launch/launch/scenario_planning/lane_driving/behavior_planning/behavior_planning.launch.py @@ -19,11 +19,14 @@ from launch.actions import DeclareLaunchArgument from launch.actions import ExecuteProcess from launch.actions import GroupAction +from launch.actions import IncludeLaunchDescription from launch.actions import OpaqueFunction from launch.actions import SetLaunchConfiguration from launch.conditions import IfCondition from launch.conditions import UnlessCondition +from launch.launch_description_sources import PythonLaunchDescriptionSource from launch.substitutions import LaunchConfiguration +from launch.substitutions import PythonExpression from launch_ros.actions import ComposableNodeContainer from launch_ros.descriptions import ComposableNode from launch_ros.substitutions import FindPackageShare @@ -188,6 +191,39 @@ def launch_setup(context, *args, **kwargs): extra_arguments=[{"use_intra_process_comms": LaunchConfiguration("use_intra_process")}], ) + # smoother param + common_param_path = os.path.join( + get_package_share_directory("tier4_planning_launch"), + "config", + "scenario_planning", + "common", + "common.param.yaml", + ) + with open(common_param_path, "r") as f: + common_param = yaml.safe_load(f)["/**"]["ros__parameters"] + + motion_velocity_smoother_param_path = os.path.join( + get_package_share_directory("tier4_planning_launch"), + "config", + "scenario_planning", + "common", + "motion_velocity_smoother", + "motion_velocity_smoother.param.yaml", + ) + with open(motion_velocity_smoother_param_path, "r") as f: + motion_velocity_smoother_param = yaml.safe_load(f)["/**"]["ros__parameters"] + + smoother_type_param_path = os.path.join( + get_package_share_directory("tier4_planning_launch"), + "config", + "scenario_planning", + "common", + "motion_velocity_smoother", + "Analytical.param.yaml", + ) + with open(smoother_type_param_path, "r") as f: + smoother_type_param = yaml.safe_load(f)["/**"]["ros__parameters"] + # behavior velocity planner blind_spot_param_path = os.path.join( get_package_share_directory("tier4_planning_launch"), @@ -297,6 +333,18 @@ def launch_setup(context, *args, **kwargs): with open(no_stopping_area_param_path, "r") as f: no_stopping_area_param = yaml.safe_load(f)["/**"]["ros__parameters"] + run_out_param_path = os.path.join( + get_package_share_directory("tier4_planning_launch"), + "config", + "scenario_planning", + "lane_driving", + "behavior_planning", + "behavior_velocity_planner", + "run_out.param.yaml", + ) + with open(run_out_param_path, "r") as f: + run_out_param = yaml.safe_load(f)["/**"]["ros__parameters"] + behavior_velocity_planner_param_path = os.path.join( get_package_share_directory("tier4_planning_launch"), "config", @@ -323,6 +371,10 @@ def launch_setup(context, *args, **kwargs): "~/input/no_ground_pointcloud", "/perception/obstacle_segmentation/pointcloud", ), + ( + "~/input/compare_map_filtered_pointcloud", + "compare_map_filtered/pointcloud", + ), ( "~/input/traffic_signals", "/perception/traffic_light_recognition/traffic_signals", @@ -331,6 +383,10 @@ def launch_setup(context, *args, **kwargs): "~/input/external_traffic_signals", "/external/traffic_light_recognition/traffic_signals", ), + ( + "~/input/external_velocity_limit_mps", + "/planning/scenario_planning/max_velocity_default", + ), ("~/input/virtual_traffic_light_states", "/awapi/tmp/virtual_traffic_light_states"), ( "~/input/occupancy_grid", @@ -356,6 +412,10 @@ def launch_setup(context, *args, **kwargs): occlusion_spot_param, no_stopping_area_param, vehicle_info_param, + run_out_param, + common_param, + motion_velocity_smoother_param, + smoother_type_param, ], extra_arguments=[{"use_intra_process_comms": LaunchConfiguration("use_intra_process")}], ) @@ -372,9 +432,39 @@ def launch_setup(context, *args, **kwargs): output="screen", ) + # load compare map for dynamic obstacle stop module + load_compare_map = IncludeLaunchDescription( + PythonLaunchDescriptionSource( + [ + FindPackageShare("tier4_planning_launch"), + "/launch/scenario_planning/lane_driving/behavior_planning/compare_map.launch.py", + ] + ), + launch_arguments={ + "use_pointcloud_container": LaunchConfiguration("use_pointcloud_container"), + "container_name": LaunchConfiguration("container_name"), + "use_multithread": "true", + }.items(), + # launch compare map only when run_out module is enabled and detection method is Points + condition=IfCondition( + PythonExpression( + [ + LaunchConfiguration( + "launch_run_out", default=behavior_velocity_planner_param["launch_run_out"] + ), + " and ", + "'", + run_out_param["run_out"]["detection_method"], + "' == 'Points'", + ] + ) + ), + ) + group = GroupAction( [ container, + load_compare_map, ExecuteProcess( cmd=[ "ros2", @@ -420,6 +510,10 @@ def add_launch_arg(name: str, default_value=None, description=None): add_launch_arg("use_intra_process", "false", "use ROS2 component container communication") add_launch_arg("use_multithread", "false", "use multithread") + # for compare map + add_launch_arg("use_pointcloud_container", "true") + add_launch_arg("container_name", "pointcloud_container") + set_container_executable = SetLaunchConfiguration( "container_executable", "component_container", diff --git a/launch/tier4_planning_launch/launch/scenario_planning/lane_driving/behavior_planning/compare_map.launch.py b/launch/tier4_planning_launch/launch/scenario_planning/lane_driving/behavior_planning/compare_map.launch.py new file mode 100644 index 0000000000000..fe3e347fd2f7d --- /dev/null +++ b/launch/tier4_planning_launch/launch/scenario_planning/lane_driving/behavior_planning/compare_map.launch.py @@ -0,0 +1,89 @@ +# Copyright 2022 TIER IV, Inc. 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. + +from launch import LaunchDescription +from launch.actions import DeclareLaunchArgument +from launch.actions import SetLaunchConfiguration +from launch.conditions import IfCondition +from launch.conditions import UnlessCondition +from launch.substitutions import LaunchConfiguration +from launch_ros.actions import ComposableNodeContainer +from launch_ros.actions import LoadComposableNodes +from launch_ros.descriptions import ComposableNode + + +def generate_launch_description(): + def add_launch_arg(name: str, default_value=None): + return DeclareLaunchArgument(name, default_value=default_value) + + set_container_executable = SetLaunchConfiguration( + "container_executable", + "component_container", + condition=UnlessCondition(LaunchConfiguration("use_multithread")), + ) + + set_container_mt_executable = SetLaunchConfiguration( + "container_executable", + "component_container_mt", + condition=IfCondition(LaunchConfiguration("use_multithread")), + ) + + composable_nodes = [ + ComposableNode( + package="compare_map_segmentation", + plugin="compare_map_segmentation::VoxelDistanceBasedCompareMapFilterComponent", + name="voxel_distance_based_compare_map_filter_node", + remappings=[ + ("input", "/perception/obstacle_segmentation/pointcloud"), + ("map", "/map/pointcloud_map"), + ("output", "compare_map_filtered/pointcloud"), + ], + parameters=[ + { + "distance_threshold": 0.7, + } + ], + extra_arguments=[ + {"use_intra_process_comms": False} # this node has QoS of transient local + ], + ), + ] + + compare_map_container = ComposableNodeContainer( + name=LaunchConfiguration("container_name"), + namespace="", + package="rclcpp_components", + executable=LaunchConfiguration("container_executable"), + composable_node_descriptions=composable_nodes, + condition=UnlessCondition(LaunchConfiguration("use_pointcloud_container")), + output="screen", + ) + + load_composable_nodes = LoadComposableNodes( + composable_node_descriptions=composable_nodes, + target_container=LaunchConfiguration("container_name"), + condition=IfCondition(LaunchConfiguration("use_pointcloud_container")), + ) + + return LaunchDescription( + [ + add_launch_arg("use_multithread", "true"), + add_launch_arg("use_pointcloud_container", "true"), + add_launch_arg("container_name", "compare_map_container"), + set_container_executable, + set_container_mt_executable, + compare_map_container, + load_composable_nodes, + ] + ) diff --git a/launch/tier4_planning_launch/launch/scenario_planning/scenario_planning.launch.xml b/launch/tier4_planning_launch/launch/scenario_planning/scenario_planning.launch.xml index 95126f9789cb3..35f178ab03375 100644 --- a/launch/tier4_planning_launch/launch/scenario_planning/scenario_planning.launch.xml +++ b/launch/tier4_planning_launch/launch/scenario_planning/scenario_planning.launch.xml @@ -3,6 +3,10 @@ + + + + @@ -41,6 +45,8 @@ + + diff --git a/planning/behavior_velocity_planner/CMakeLists.txt b/planning/behavior_velocity_planner/CMakeLists.txt index 827d1caf1e29a..3766c5f631d06 100644 --- a/planning/behavior_velocity_planner/CMakeLists.txt +++ b/planning/behavior_velocity_planner/CMakeLists.txt @@ -8,7 +8,7 @@ autoware_package() find_package(Boost REQUIRED) find_package(eigen3_cmake_module REQUIRED) find_package(Eigen3 REQUIRED) -find_package(PCL REQUIRED COMPONENTS common) +find_package(PCL REQUIRED COMPONENTS common filters) find_package(OpenCV REQUIRED) set(scene_modules @@ -21,6 +21,7 @@ set(scene_modules no_stopping_area virtual_traffic_light occlusion_spot + run_out ) foreach(scene_module IN LISTS scene_modules) @@ -50,6 +51,8 @@ ament_target_dependencies(behavior_velocity_planner PCL ) +target_link_libraries(behavior_velocity_planner ${PCL_LIBRARIES}) + rclcpp_components_register_node(behavior_velocity_planner PLUGIN "behavior_velocity_planner::BehaviorVelocityPlannerNode" EXECUTABLE behavior_velocity_planner_node diff --git a/planning/behavior_velocity_planner/README.md b/planning/behavior_velocity_planner/README.md index 20ad38140d330..f0801787a8709 100644 --- a/planning/behavior_velocity_planner/README.md +++ b/planning/behavior_velocity_planner/README.md @@ -17,6 +17,7 @@ It consists of several modules. Please refer to the links listed below for detai - [Traffic Light](traffic-light-design.md) - [Occlusion Spot](occlusion-spot-design.md) - [No Stopping Area](no-stopping-area-design.md) +- [Run Out](run-out-design.md) When each module plans velocity, it considers based on `base_link`(center of rear-wheel axis) pose. So for example, in order to stop at a stop line with the vehicles' front on the stop line, it calculates `base_link` position from the distance between `base_link` to front and modifies path velocity from the `base_link` position. @@ -25,14 +26,15 @@ So for example, in order to stop at a stop line with the vehicles' front on the ## Input topics -| Name | Type | Description | -| ----------------------------- | ------------------------------------------------------ | -------------------- | -| `~input/path_with_lane_id` | autoware_auto_planning_msgs::msg::PathWithLaneId | path with lane_id | -| `~input/vector_map` | autoware_auto_mapping_msgs::msg::HADMapBin | vector map | -| `~input/vehicle_odometry` | nav_msgs::msg::Odometry | vehicle velocity | -| `~input/dynamic_objects` | autoware_auto_perception_msgs::msg::PredictedObjects | dynamic objects | -| `~input/no_ground_pointcloud` | sensor_msgs::msg::PointCloud2 | obstacle pointcloud | -| `~input/traffic_signals` | autoware_auto_perception_msgs::msg::TrafficSignalArray | traffic light states | +| Name | Type | Description | +| ----------------------------------------- | ------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------- | +| `~input/path_with_lane_id` | autoware_auto_planning_msgs::msg::PathWithLaneId | path with lane_id | +| `~input/vector_map` | autoware_auto_mapping_msgs::msg::HADMapBin | vector map | +| `~input/vehicle_odometry` | nav_msgs::msg::Odometry | vehicle velocity | +| `~input/dynamic_objects` | autoware_auto_perception_msgs::msg::PredictedObjects | dynamic objects | +| `~input/no_ground_pointcloud` | sensor_msgs::msg::PointCloud2 | obstacle pointcloud | +| `~/input/compare_map_filtered_pointcloud` | sensor_msgs::msg::PointCloud2 | obstacle pointcloud filtered by compare map. Note that this is used only when the detection method of run out module is Points. | +| `~input/traffic_signals` | autoware_auto_perception_msgs::msg::TrafficSignalArray | traffic light states | ## Output topics @@ -52,6 +54,7 @@ So for example, in order to stop at a stop line with the vehicles' front on the | `launch_traffic_light` | bool | whether to launch traffic light module | | `launch_stop_line` | bool | whether to launch stop_line module | | `launch_occlusion_spot` | bool | whether to launch occlusion_spot module | +| `launch_run_out` | bool | whether to launch run_out module | | `forward_path_length` | double | forward path length | | `backward_path_length` | double | backward path length | | `max_accel` | double | (to be a global parameter) max acceleration of the vehicle | diff --git a/planning/behavior_velocity_planner/config/behavior_velocity_planner.param.yaml b/planning/behavior_velocity_planner/config/behavior_velocity_planner.param.yaml index d47649bbe7831..1332e422cd3e6 100644 --- a/planning/behavior_velocity_planner/config/behavior_velocity_planner.param.yaml +++ b/planning/behavior_velocity_planner/config/behavior_velocity_planner.param.yaml @@ -9,6 +9,7 @@ launch_virtual_traffic_light: true launch_occlusion_spot: true launch_no_stopping_area: true + launch_run_out: false forward_path_length: 1000.0 backward_path_length: 5.0 max_accel: -2.8 diff --git a/planning/behavior_velocity_planner/config/run_out.param.yaml b/planning/behavior_velocity_planner/config/run_out.param.yaml new file mode 100644 index 0000000000000..8818ed01998da --- /dev/null +++ b/planning/behavior_velocity_planner/config/run_out.param.yaml @@ -0,0 +1,45 @@ +/**: + ros__parameters: + run_out: + detection_method: "Object" # [-] candidate: Object, ObjectWithoutPath, Points + use_partition_lanelet: true # [-] whether to use partition lanelet map data + specify_decel_jerk: false # [-] whether to specify jerk when ego decelerates + stop_margin: 2.5 # [m] the vehicle decelerates to be able to stop with this margin + passing_margin: 1.1 # [m] the vehicle begins to accelerate if the vehicle's front in predicted position is ahead of the obstacle + this margin + deceleration_jerk: -0.3 # [m/s^3] ego decelerates with this jerk when stopping for obstacles + obstacle_velocity_kph: 5.0 # [km/h] assumption for obstacle velocity + detection_distance: 45.0 # [m] ahead distance from ego to detect the obstacles + detection_span: 1.0 # [m] calculate collision with this span to reduce calculation time + min_vel_ego_kmph: 3.6 # [km/h] min velocity to calculate time to collision + + # rectangle detection area for Points method + # this will be replaced with more appropriate detection area + detection_area_size: + dist_ahead: 50.0 # [m] ahead distance from ego position + dist_behind: 5.0 # [m] behind distance from ego position + dist_right: 7.0 # [m] right distance from ego position + dist_left: 7.0 # [m] left distance from ego position + + # parameter to create abstracted dynamic obstacles + dynamic_obstacle: + min_vel_kmph: 0.0 # [km/h] minimum velocity for dynamic obstacles + max_vel_kmph: 5.0 # [km/h] maximum velocity for dynamic obstacles + diameter: 0.1 # [m] diameter of obstacles. used for creating dynamic obstacles from points + height: 2.0 # [m] height of obstacles. used for creating dynamic obstacles from points + max_prediction_time: 10.0 # [sec] create predicted path until this time + time_step: 0.5 # [sec] time step for each path step. used for creating dynamic obstacles from points or objects without path + + # approach if ego has stopped in the front of the obstacle for a certain amount of time + approaching: + enable: false + margin: 0.0 # [m] distance on how close ego approaches the obstacle + limit_vel_kmph: 3.0 # [km/h] limit velocity for approaching after stopping + stop_thresh: 0.01 # [m/s] threshold to decide if ego is stopping + stop_time_thresh: 3.0 # [sec] threshold for stopping time to transit to approaching state + dist_thresh: 0.5 # [m] end the approaching state if distance to the obstacle is longer than stop_margin + dist_thresh + + # parameter to avoid sudden stopping + slow_down_limit: + enable: true + max_jerk: -0.7 # [m/s^3] minimum jerk deceleration for safe brake. + max_acc : -2.0 # [m/s^2] minimum accel deceleration for safe brake. diff --git a/planning/behavior_velocity_planner/docs/run_out/calculate_expected_target_velocity.svg b/planning/behavior_velocity_planner/docs/run_out/calculate_expected_target_velocity.svg new file mode 100644 index 0000000000000..6c5f2a26e9952 --- /dev/null +++ b/planning/behavior_velocity_planner/docs/run_out/calculate_expected_target_velocity.svg @@ -0,0 +1,4 @@ + + + +
v
v
Expected target velocity
Expected target velocity
Reference velocity
Reference velocity
Current velocity
Current velocity
s
s
d
d
Expected target velocity calculated by smoother
Expected target velocity calculated by smoother
Text is not SVG - cannot display
\ No newline at end of file diff --git a/planning/behavior_velocity_planner/docs/run_out/collision_detection_for_shape.svg b/planning/behavior_velocity_planner/docs/run_out/collision_detection_for_shape.svg new file mode 100644 index 0000000000000..ea7fb711310c0 --- /dev/null +++ b/planning/behavior_velocity_planner/docs/run_out/collision_detection_for_shape.svg @@ -0,0 +1,4 @@ + + + +
Predicted position between min velocity and max velocity
(create a rectangle that includes two bounding boxes)
Predicted position between min velocity and max veloci...
Shape: Bounding Box
Shape: Bounding Box
Predicted position between min velocity and max velocity
(create rectangle that includes two circles)
Predicted position between min velocity and max veloci...
Predicted position at minimum velocity
Predicted position at minimum velocity
Predicted position at maximum velocity
Predicted position at maximum velocity
Shape: Cylinder
Shape: Cylinder
Predicted position between min velocity and max velocity
(create convex hull for two polygons)
Predicted position between min velocity and max velocit...
Predicted position at minimum velocity
Predicted position at minimum velocity
Predicted position at maximum velocity
Predicted position at maximum velocity
Shape: Polygon
Shape: Polygon
Predicted position at minimum velocity
Predicted position at minimum velocity
Predicted position at maximum velocity
Predicted position at maximum velocity
Text is not SVG - cannot display
\ No newline at end of file diff --git a/planning/behavior_velocity_planner/docs/run_out/collision_points.svg b/planning/behavior_velocity_planner/docs/run_out/collision_points.svg new file mode 100644 index 0000000000000..0c254e224e109 --- /dev/null +++ b/planning/behavior_velocity_planner/docs/run_out/collision_points.svg @@ -0,0 +1,4 @@ + + + +
Collision points
Collision points
Selected collision point
Selected collision point
Text is not SVG - cannot display
\ No newline at end of file diff --git a/planning/behavior_velocity_planner/docs/run_out/create_dynamic_obstacle.svg b/planning/behavior_velocity_planner/docs/run_out/create_dynamic_obstacle.svg new file mode 100644 index 0000000000000..0309680bddb91 --- /dev/null +++ b/planning/behavior_velocity_planner/docs/run_out/create_dynamic_obstacle.svg @@ -0,0 +1,4 @@ + + + +

- classifications
- pose
- predicted_paths
- shape
- min_velocity_mps
- max_velocity_mps
- classifications...

- classifications
- pose
- predicted_paths
- shape
- min_velocity_mps
- max_velocity_mps
- classifications...

- classifications
- pose
  - position
  - orientation
- predicted_paths
- shape
- min_velocity_mps
- max_velocity_mps
- classifications...
Use predicted path 
Use predicted path 
Predicted path is created to run out straight to the path of ego
Predicted path is created to...
Predicted path is created to run out straight to the path of ego
Predicted path is created to...
Object
Object
ObjectWithoutPath
ObjectWithoutPath
Points
Points
Use value of input data
Use value of input data
Assign value in this module
Assign value in this module
Input: Predicted object
Input: Predicted object
Input: Points
Input: Points
Text is not SVG - cannot display
\ No newline at end of file diff --git a/planning/behavior_velocity_planner/docs/run_out/create_polygon_on_path_point.svg b/planning/behavior_velocity_planner/docs/run_out/create_polygon_on_path_point.svg new file mode 100644 index 0000000000000..aa1f6c1ed8e52 --- /dev/null +++ b/planning/behavior_velocity_planner/docs/run_out/create_polygon_on_path_point.svg @@ -0,0 +1,4 @@ + + + +
Polygon is created on path points
Polygon is created on path points
t
t
Travel time
Travel time
s
s
d
d
Travel time calculated by using predicted path
Travel time calculated by using...
t = \sum \frac{...
Text is not SVG - cannot display
\ No newline at end of file diff --git a/planning/behavior_velocity_planner/docs/run_out/exclude_obstacles_by_partition.svg b/planning/behavior_velocity_planner/docs/run_out/exclude_obstacles_by_partition.svg new file mode 100644 index 0000000000000..4d2b363959bc2 --- /dev/null +++ b/planning/behavior_velocity_planner/docs/run_out/exclude_obstacles_by_partition.svg @@ -0,0 +1,4 @@ + + + +
Partition defined in lanelet
(guardrail, fence, wall)
Partition defined in lanelet...
Obstacles in this area are not detected
Obstacles in this area are not detect...
Text is not SVG - cannot display
\ No newline at end of file diff --git a/planning/behavior_velocity_planner/docs/run_out/insert_velocity.svg b/planning/behavior_velocity_planner/docs/run_out/insert_velocity.svg new file mode 100644 index 0000000000000..647da6f21f9ef --- /dev/null +++ b/planning/behavior_velocity_planner/docs/run_out/insert_velocity.svg @@ -0,0 +1,4 @@ + + + +
Stop
margin
Stop...
Base link
to front
Base link...

Collision point

Collision point

v

v

x

x

Output velocity

Output velocity

Reference velocity

Reference velocity

Stop point

Stop point
Text is not SVG - cannot display
\ No newline at end of file diff --git a/planning/behavior_velocity_planner/docs/run_out/run_out_overview.svg b/planning/behavior_velocity_planner/docs/run_out/run_out_overview.svg new file mode 100644 index 0000000000000..18711df5fea23 --- /dev/null +++ b/planning/behavior_velocity_planner/docs/run_out/run_out_overview.svg @@ -0,0 +1,4 @@ + + + +
Predicted vehicle polygon
Predicted vehicle polygon
Collision point
Collision point
Stop point
Stop point
Stop margin + base link to front
Stop margin + base link to fro...
Predicted path of the obstacle
Predicted path of the obstac...
Ignore obstacles outside the partition
Ignore obstacles outside the partit...
Text is not SVG - cannot display
\ No newline at end of file diff --git a/planning/behavior_velocity_planner/include/scene_module/run_out/debug.hpp b/planning/behavior_velocity_planner/include/scene_module/run_out/debug.hpp new file mode 100644 index 0000000000000..c96a3d687e1ef --- /dev/null +++ b/planning/behavior_velocity_planner/include/scene_module/run_out/debug.hpp @@ -0,0 +1,145 @@ +// Copyright 2022 TIER IV, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +#ifndef SCENE_MODULE__RUN_OUT__DEBUG_HPP_ +#define SCENE_MODULE__RUN_OUT__DEBUG_HPP_ + +#include "scene_module/run_out/dynamic_obstacle.hpp" + +#include +#include +namespace behavior_velocity_planner +{ +using autoware_auto_planning_msgs::msg::Trajectory; +using tier4_debug_msgs::msg::Float32MultiArrayStamped; +using tier4_debug_msgs::msg::Int32Stamped; + +enum class PointType : int8_t { + Blue = 0, + Red, + Yellow, +}; + +class DebugValues +{ +public: + enum class TYPE { + CALCULATION_TIME = 0, + CALCULATION_TIME_COLLISION_CHECK = 1, + LATERAL_DIST = 2, + LONGITUDINAL_DIST_OBSTACLE = 3, + LONGITUDINAL_DIST_COLLISION = 4, + COLLISION_POS_FROM_EGO_FRONT = 5, + STOP_DISTANCE = 6, + NUM_OBSTACLES = 7, + LATERAL_PASS_DIST = 8, + SIZE, // this is the number of enum elements + }; + + /** + * @brief get the index corresponding to the given value TYPE + * @param [in] type the TYPE enum for which to get the index + * @return index of the type + */ + int getValuesIdx(const TYPE type) const { return static_cast(type); } + /** + * @brief get all the debug values as an std::array + * @return array of all debug values + */ + std::array(TYPE::SIZE)> getValues() const { return values_; } + /** + * @brief set the given type to the given value + * @param [in] type TYPE of the value + * @param [in] value value to set + */ + void setValues(const TYPE type, const float val) { values_.at(static_cast(type)) = val; } + /** + * @brief set the given type to the given value + * @param [in] type index of the type + * @param [in] value value to set + */ + void setValues(const int type, const float val) { values_.at(type) = val; } + +private: + static constexpr int num_debug_values_ = static_cast(TYPE::SIZE); + std::array(TYPE::SIZE)> values_; +}; + +class RunOutDebug +{ +public: + enum class AccelReason { + STOP = 0, + NO_OBSTACLE = 1, + PASS = 2, + LOW_JERK = 3, + }; + + struct TextWithPosition + { + std::string text; + geometry_msgs::msg::Point position; + }; + + explicit RunOutDebug(rclcpp::Node & node); + ~RunOutDebug() {} + + void setDebugValues(const DebugValues::TYPE type, const double val) + { + debug_values_.setValues(type, val); + } + + bool pushObstaclePoint(const geometry_msgs::msg::Point & obstacle_point, const PointType & type); + bool pushObstaclePoint(const pcl::PointXYZ & obstacle_point, const PointType & type); + void pushDebugPoints(const pcl::PointXYZ & debug_point); + void pushDebugPoints(const geometry_msgs::msg::Point & debug_point); + void pushDebugPoints(const std::vector & debug_points); + void pushDebugPoints(const geometry_msgs::msg::Point & debug_point, const PointType point_type); + void pushStopPose(const geometry_msgs::msg::Pose & pose); + void pushDebugLines(const std::vector & debug_line); + void pushDebugPolygons(const std::vector & debug_polygon); + void pushDetectionAreaPolygons(const Polygon2d & debug_polygon); + void pushDebugTexts(const TextWithPosition & debug_text); + void pushDebugTexts( + const std::string text, const geometry_msgs::msg::Pose pose, const float lateral_offset); + void pushDebugTexts(const std::string text, const geometry_msgs::msg::Point position); + void setAccelReason(const AccelReason & accel_reason); + void publishDebugValue(); + void publishDebugTrajectory(const Trajectory & trajectory); + visualization_msgs::msg::MarkerArray createVisualizationMarkerArray(); + visualization_msgs::msg::MarkerArray createVirtualWallMarkerArray(); + +private: + visualization_msgs::msg::MarkerArray createVisualizationMarkerArrayFromDebugData( + const builtin_interfaces::msg::Time & current_time); + void clearDebugMarker(); + + rclcpp::Node & node_; + rclcpp::Publisher::SharedPtr pub_debug_values_; + rclcpp::Publisher::SharedPtr pub_accel_reason_; + rclcpp::Publisher::SharedPtr pub_debug_trajectory_; + std::vector debug_points_; + std::vector debug_points_red_; + std::vector debug_points_yellow_; + std::vector stop_pose_; + std::vector> debug_lines_; + std::vector> debug_polygons_; + std::vector> detection_area_polygons_; + std::vector debug_texts_; + DebugValues debug_values_; + AccelReason accel_reason_; +}; + +} // namespace behavior_velocity_planner + +#endif // SCENE_MODULE__RUN_OUT__DEBUG_HPP_ diff --git a/planning/behavior_velocity_planner/include/scene_module/run_out/dynamic_obstacle.hpp b/planning/behavior_velocity_planner/include/scene_module/run_out/dynamic_obstacle.hpp new file mode 100644 index 0000000000000..e1360eb36e53b --- /dev/null +++ b/planning/behavior_velocity_planner/include/scene_module/run_out/dynamic_obstacle.hpp @@ -0,0 +1,157 @@ +// Copyright 2022 TIER IV, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef SCENE_MODULE__RUN_OUT__DYNAMIC_OBSTACLE_HPP_ +#define SCENE_MODULE__RUN_OUT__DYNAMIC_OBSTACLE_HPP_ + +#include "behavior_velocity_planner/planner_data.hpp" +#include "utilization/util.hpp" + +#include + +#include + +#include +#include + +#ifdef ROS_DISTRO_GALACTIC +#include +#else +#include +#endif + +#include + +namespace behavior_velocity_planner +{ +using autoware_auto_perception_msgs::msg::ObjectClassification; +using autoware_auto_perception_msgs::msg::PredictedObjects; +using autoware_auto_perception_msgs::msg::Shape; +using autoware_auto_planning_msgs::msg::PathPointWithLaneId; +using autoware_auto_planning_msgs::msg::PathWithLaneId; +using PathPointsWithLaneId = std::vector; + +struct DynamicObstacleParam +{ + float min_vel_kmph{0.0}; + float max_vel_kmph{5.0}; + + // parameter to convert points to dynamic obstacle + float diameter{0.1}; // [m] + float height{2.0}; // [m] + float max_prediction_time{10.0}; // [sec] + float time_step{0.5}; // [sec] +}; + +struct PoseWithRange +{ + geometry_msgs::msg::Pose pose_min; + geometry_msgs::msg::Pose pose_max; +}; + +// since we use the minimum and maximum velocity, +// define the PredictedPath without time_step +struct PredictedPath +{ + std::vector path; + float confidence; +}; + +// abstracted obstacle information +struct DynamicObstacle +{ + geometry_msgs::msg::Pose pose; + std::vector collision_points; + geometry_msgs::msg::Point nearest_collision_point; + float min_velocity_mps; + float max_velocity_mps; + std::vector classifications; + Shape shape; + std::vector predicted_paths; +}; + +struct DynamicObstacleData +{ + PredictedObjects predicted_objects; + pcl::PointCloud compare_map_filtered_pointcloud; + PathWithLaneId path; +}; + +/** + * @brief base class for creating dynamic obstacles from multiple types of input + */ +class DynamicObstacleCreator +{ +public: + explicit DynamicObstacleCreator(rclcpp::Node & node) : node_(node) {} + virtual ~DynamicObstacleCreator() = default; + virtual std::vector createDynamicObstacles() const = 0; + void setParam(const DynamicObstacleParam & param) { param_ = param; } + void setData(const PlannerData & planner_data, const PathWithLaneId & path) + { + // compare map filtered points are subscribed in derived class that needs points + dynamic_obstacle_data_.predicted_objects = *planner_data.predicted_objects; + dynamic_obstacle_data_.path = path; + } + +protected: + DynamicObstacleParam param_; + rclcpp::Node & node_; + DynamicObstacleData dynamic_obstacle_data_; +}; + +/** + * @brief create dynamic obstacles from predicted objects + */ +class DynamicObstacleCreatorForObject : public DynamicObstacleCreator +{ +public: + explicit DynamicObstacleCreatorForObject(rclcpp::Node & node); + std::vector createDynamicObstacles() const override; +}; + +/** + * @brief create dynamic obstacles from predicted objects, but overwrite the path to be normal to + * the path of ego vehicle. + */ +class DynamicObstacleCreatorForObjectWithoutPath : public DynamicObstacleCreator +{ +public: + explicit DynamicObstacleCreatorForObjectWithoutPath(rclcpp::Node & node); + std::vector createDynamicObstacles() const override; +}; + +/** + * @brief create dynamic obstacles from points. + * predicted path is created to be normal to the path of ego vehicle. + */ +class DynamicObstacleCreatorForPoints : public DynamicObstacleCreator +{ +public: + explicit DynamicObstacleCreatorForPoints(rclcpp::Node & node); + std::vector createDynamicObstacles() const override; + +private: + void onCompareMapFilteredPointCloud(const sensor_msgs::msg::PointCloud2::ConstSharedPtr msg); + rclcpp::Subscription::SharedPtr + sub_compare_map_filtered_pointcloud_; + + // tf + tf2_ros::Buffer tf_buffer_; + tf2_ros::TransformListener tf_listener_; +}; + +} // namespace behavior_velocity_planner + +#endif // SCENE_MODULE__RUN_OUT__DYNAMIC_OBSTACLE_HPP_ diff --git a/planning/behavior_velocity_planner/include/scene_module/run_out/manager.hpp b/planning/behavior_velocity_planner/include/scene_module/run_out/manager.hpp new file mode 100644 index 0000000000000..7923535065af8 --- /dev/null +++ b/planning/behavior_velocity_planner/include/scene_module/run_out/manager.hpp @@ -0,0 +1,46 @@ +// Copyright 2022 TIER IV, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef SCENE_MODULE__RUN_OUT__MANAGER_HPP_ +#define SCENE_MODULE__RUN_OUT__MANAGER_HPP_ + +#include "scene_module/run_out/scene.hpp" +#include "scene_module/scene_module_interface.hpp" + +#include + +namespace behavior_velocity_planner +{ +class RunOutModuleManager : public SceneModuleManagerInterface +{ +public: + explicit RunOutModuleManager(rclcpp::Node & node); + + const char * getModuleName() override { return "run_out"; } + +private: + run_out_utils::PlannerParam planner_param_; + std::shared_ptr debug_ptr_; + std::unique_ptr dynamic_obstacle_creator_; + + void launchNewModules(const autoware_auto_planning_msgs::msg::PathWithLaneId & path) override; + + std::function &)> getModuleExpiredFunction( + const autoware_auto_planning_msgs::msg::PathWithLaneId & path) override; + + void setDynamicObstacleCreator(rclcpp::Node & node); +}; +} // namespace behavior_velocity_planner + +#endif // SCENE_MODULE__RUN_OUT__MANAGER_HPP_ diff --git a/planning/behavior_velocity_planner/include/scene_module/run_out/path_utils.hpp b/planning/behavior_velocity_planner/include/scene_module/run_out/path_utils.hpp new file mode 100644 index 0000000000000..1a769e3139164 --- /dev/null +++ b/planning/behavior_velocity_planner/include/scene_module/run_out/path_utils.hpp @@ -0,0 +1,95 @@ +// Copyright 2022 TIER IV, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef SCENE_MODULE__RUN_OUT__PATH_UTILS_HPP_ +#define SCENE_MODULE__RUN_OUT__PATH_UTILS_HPP_ + +#include + +#include +#include +#include +#include +#include +#include + +namespace behavior_velocity_planner +{ +namespace run_out_utils +{ + +template +geometry_msgs::msg::Point findLongitudinalNearestPoint( + const T & points, const geometry_msgs::msg::Point & src_point, + const std::vector & target_points) +{ + float min_dist = std::numeric_limits::max(); + geometry_msgs::msg::Point min_dist_point{}; + + for (const auto & p : target_points) { + const float dist = tier4_autoware_utils::calcSignedArcLength(points, src_point, p); + if (dist < min_dist) { + min_dist = dist; + min_dist_point = p; + } + } + + return min_dist_point; +} + +template +size_t calcIndexByLength( + const T & points, const geometry_msgs::msg::Pose & current_pose, const double target_length) +{ + const size_t nearest_index = + tier4_autoware_utils::findNearestIndex(points, current_pose.position); + if (target_length < 0) { + return nearest_index; + } + + for (size_t i = nearest_index; i < points.size(); i++) { + double length_sum = tier4_autoware_utils::calcSignedArcLength(points, current_pose.position, i); + if (length_sum > target_length) { + return i; + } + } + + // reach the end of the points, so return the last index + return points.size() - 1; +} + +template +size_t calcIndexByLengthReverse( + const T & points, const geometry_msgs::msg::Point & src_point, const float target_length) +{ + const auto nearest_seg_idx = tier4_autoware_utils::findNearestSegmentIndex(points, src_point); + if (nearest_seg_idx == 0) { + return 0; + } + + for (size_t i = nearest_seg_idx; i > 0; i--) { + const auto length_sum = + std::abs(tier4_autoware_utils::calcSignedArcLength(points, src_point, i)); + if (length_sum > target_length) { + return i + 1; + } + } + + // reach the beginning of the path + return 0; +} + +} // namespace run_out_utils +} // namespace behavior_velocity_planner +#endif // SCENE_MODULE__RUN_OUT__PATH_UTILS_HPP_ diff --git a/planning/behavior_velocity_planner/include/scene_module/run_out/scene.hpp b/planning/behavior_velocity_planner/include/scene_module/run_out/scene.hpp new file mode 100644 index 0000000000000..3785066a9ae7e --- /dev/null +++ b/planning/behavior_velocity_planner/include/scene_module/run_out/scene.hpp @@ -0,0 +1,158 @@ +// Copyright 2022 TIER IV, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef SCENE_MODULE__RUN_OUT__SCENE_HPP_ +#define SCENE_MODULE__RUN_OUT__SCENE_HPP_ + +#include "scene_module/run_out/debug.hpp" +#include "scene_module/run_out/dynamic_obstacle.hpp" +#include "scene_module/run_out/utils.hpp" +#include "scene_module/scene_module_interface.hpp" + +#include +#include +#include + +namespace behavior_velocity_planner +{ +namespace bg = boost::geometry; +using autoware_auto_perception_msgs::msg::PredictedObjects; +using autoware_auto_planning_msgs::msg::PathPointWithLaneId; +using autoware_auto_planning_msgs::msg::PathWithLaneId; +using run_out_utils::DetectionAreaSize; +using run_out_utils::PlannerParam; +using run_out_utils::State; +using tier4_debug_msgs::msg::Float32Stamped; +using BasicPolygons2d = std::vector; + +class RunOutModule : public SceneModuleInterface +{ +public: + RunOutModule( + const int64_t module_id, const std::shared_ptr & planner_data, + const PlannerParam & planner_param, const rclcpp::Logger logger, + std::unique_ptr dynamic_obstacle_creator, + const std::shared_ptr & debug_ptr, const rclcpp::Clock::SharedPtr clock); + + bool modifyPathVelocity( + autoware_auto_planning_msgs::msg::PathWithLaneId * path, + tier4_planning_msgs::msg::StopReason * stop_reason) override; + + visualization_msgs::msg::MarkerArray createDebugMarkerArray() override; + visualization_msgs::msg::MarkerArray createVirtualWallMarkerArray() override; + + void setPlannerParam(const PlannerParam & planner_param); + +private: + // Parameter + PlannerParam planner_param_; + + // Variable + State state_{State::GO}; + rclcpp::Time stop_time_; + BasicPolygons2d partition_lanelets_; + std::unique_ptr dynamic_obstacle_creator_; + std::shared_ptr debug_ptr_; + + // Function + pcl::PointCloud extractObstaclePointsWithRectangle( + const pcl::PointCloud & input_points, + const geometry_msgs::msg::Pose & current_pose) const; + + void visualizeDetectionArea(const PathWithLaneId & smoothed_path) const; + + pcl::PointCloud pointsWithinPolygon( + const std::vector & polygon, + const pcl::PointCloud & candidate_points) const; + + boost::optional detectCollision( + const std::vector & dynamic_obstacles, + const PathWithLaneId & path_points) const; + + float calcCollisionPositionOfVehicleSide( + const geometry_msgs::msg::Point & point, const geometry_msgs::msg::Pose & base_pose) const; + + std::vector createVehiclePolygon( + const geometry_msgs::msg::Pose & base_pose) const; + + std::vector checkCollisionWithObstacles( + const std::vector & dynamic_obstacles, + std::vector poly, const float travel_time) const; + + boost::optional findNearestCollisionObstacle( + const PathWithLaneId & path, const geometry_msgs::msg::Pose & base_pose, + std::vector & dynamic_obstacles) const; + + boost::optional calcPredictedObstaclePose( + const std::vector & predicted_paths, const float travel_time, + const float velocity_mps) const; + + bool checkCollisionWithShape( + const tier4_autoware_utils::Polygon2d & vehicle_polygon, const PoseWithRange pose_with_range, + const Shape & shape, std::vector & collision_points) const; + + bool checkCollisionWithCylinder( + const tier4_autoware_utils::Polygon2d & vehicle_polygon, const PoseWithRange pose_with_range, + const float radius, std::vector & collision_points) const; + + bool checkCollisionWithBoundingBox( + const tier4_autoware_utils::Polygon2d & vehicle_polygon, const PoseWithRange pose_with_range, + const geometry_msgs::msg::Vector3 & dimension, + std::vector & collision_points) const; + + bool checkCollisionWithPolygon() const; + + std::vector createBoundingBoxForRangedPoints( + const PoseWithRange & pose_with_range, const float x_offset, const float y_offset) const; + + boost::optional calcStopPoint( + const boost::optional & dynamic_obstacle, const PathWithLaneId & path, + const geometry_msgs::msg::Pose & current_pose, const float current_vel, + const float current_acc) const; + + void insertStopPoint( + const boost::optional stop_point, + autoware_auto_planning_msgs::msg::PathWithLaneId & path); + + void insertVelocity( + const boost::optional & dynamic_obstacle, + const geometry_msgs::msg::Pose & current_pose, const float current_vel, const float current_acc, + const PathWithLaneId & smoothed_path, PathWithLaneId & output_path); + + void insertStoppingVelocity( + const boost::optional & dynamic_obstacle, + const geometry_msgs::msg::Pose & current_pose, const float current_vel, const float current_acc, + const PathWithLaneId & smoothed_path, PathWithLaneId & output_path); + + void insertApproachingVelocity( + const DynamicObstacle & dynamic_obstacle, const geometry_msgs::msg::Pose & current_pose, + const float approaching_vel, const float approach_margin, const PathWithLaneId & resampled_path, + PathWithLaneId & output_path); + + void applyMaxJerkLimit( + const geometry_msgs::msg::Pose & current_pose, const float current_vel, const float current_acc, + PathWithLaneId & path) const; + + std::vector excludeObstaclesOutSideOfPartition( + const std::vector & dynamic_obstacles, const PathWithLaneId & path, + const geometry_msgs::msg::Pose & current_pose) const; + + void publishDebugValue( + const PathWithLaneId & path, const std::vector extracted_obstacles, + const boost::optional & dynamic_obstacle, + const geometry_msgs::msg::Pose & current_pose) const; +}; +} // namespace behavior_velocity_planner + +#endif // SCENE_MODULE__RUN_OUT__SCENE_HPP_ diff --git a/planning/behavior_velocity_planner/include/scene_module/run_out/utils.hpp b/planning/behavior_velocity_planner/include/scene_module/run_out/utils.hpp new file mode 100644 index 0000000000000..6922247bc7818 --- /dev/null +++ b/planning/behavior_velocity_planner/include/scene_module/run_out/utils.hpp @@ -0,0 +1,227 @@ +// Copyright 2022 TIER IV, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef SCENE_MODULE__RUN_OUT__UTILS_HPP_ +#define SCENE_MODULE__RUN_OUT__UTILS_HPP_ + +#include "scene_module/run_out/dynamic_obstacle.hpp" + +#include + +#include +#include + +namespace behavior_velocity_planner +{ +namespace run_out_utils +{ +namespace bg = boost::geometry; +using autoware_auto_perception_msgs::msg::ObjectClassification; +using autoware_auto_perception_msgs::msg::PredictedObjects; +using autoware_auto_planning_msgs::msg::PathWithLaneId; +using tier4_autoware_utils::Box2d; +using tier4_autoware_utils::LineString2d; +using tier4_autoware_utils::Point2d; +using tier4_autoware_utils::Polygon2d; +using tier4_debug_msgs::msg::Float32Stamped; +using vehicle_info_util::VehicleInfo; +using PathPointsWithLaneId = std::vector; +struct CommonParam +{ + double normal_min_jerk; // min jerk limit for mild stop [m/sss] + double normal_min_acc; // min deceleration limit for mild stop [m/ss] + double limit_min_jerk; // min jerk limit [m/sss] + double limit_min_acc; // min deceleration limit [m/ss] +}; +struct RunOutParam +{ + std::string detection_method; + bool use_partition_lanelet; + bool specify_decel_jerk; + double stop_margin; + double passing_margin; + double deceleration_jerk; + double obstacle_velocity_kph; + float detection_distance; + float detection_span; + float min_vel_ego_kmph; +}; + +struct VehicleParam +{ + float base_to_front; + float base_to_rear; + float width; +}; + +struct DetectionAreaSize +{ + float dist_ahead; + float dist_behind; + float dist_right; + float dist_left; +}; + +struct ApproachingParam +{ + bool enable; + float margin; + float limit_vel_kmph; + float stop_thresh; + float stop_time_thresh; + float dist_thresh; +}; + +struct SlowDownLimit +{ + bool enable; + float max_jerk; + float max_acc; +}; + +struct PlannerParam +{ + CommonParam common; + RunOutParam run_out; + VehicleParam vehicle_param; + DetectionAreaSize detection_area; + ApproachingParam approaching; + DynamicObstacleParam dynamic_obstacle; + SlowDownLimit slow_down_limit; +}; + +enum class State { + GO = 0, + APPROACH, + STOP, +}; + +enum class DetectionMethod { + Object = 0, + ObjectWithoutPath, + Points, + Unknown, +}; + +bool validCheckDecelPlan( + const double v_end, const double a_end, const double v_target, const double a_target, + const double v_margin, const double a_margin); + +/** + * @brief calculate distance until velocity is reached target velocity (TYPE1) + * @param (v0) current velocity [m/s] + * @param (vt) target velocity [m/s] + * @param (a0) current acceleration [m/ss] + * @param (am) minimum deceleration [m/ss] + * @param (ja) maximum jerk [m/sss] + * @param (jd) minimum jerk [m/sss] + * @param (t_min) duration of constant deceleration [s] + * @return moving distance until velocity is reached vt [m] + * @detail TODO(Satoshi Ota) + */ +boost::optional calcDecelDistPlanType1( + const double v0, const double vt, const double a0, const double am, const double ja, + const double jd, const double t_min); + +/** + * @brief calculate distance until velocity is reached target velocity (TYPE2) + * @param (v0) current velocity [m/s] + * @param (vt) target velocity [m/s] + * @param (a0) current acceleration [m/ss] + * @param (am) minimum deceleration [m/ss] + * @param (ja) maximum jerk [m/sss] + * @param (jd) minimum jerk [m/sss] + * @return moving distance until velocity is reached vt [m] + * @detail TODO(Satoshi Ota) + */ +boost::optional calcDecelDistPlanType2( + const double v0, const double vt, const double a0, const double ja, const double jd); + +/** + * @brief calculate distance until velocity is reached target velocity (TYPE3) + * @param (v0) current velocity [m/s] + * @param (vt) target velocity [m/s] + * @param (a0) current acceleration [m/ss] + * @param (ja) maximum jerk [m/sss] + * @return moving distance until velocity is reached vt [m] + * @detail TODO(Satoshi Ota) + */ +boost::optional calcDecelDistPlanType3( + const double v0, const double vt, const double a0, const double ja); + +boost::optional calcDecelDistWithJerkAndAccConstraints( + const double current_vel, const double target_vel, const double current_acc, const double acc_min, + const double jerk_acc, const double jerk_dec); + +Polygon2d createBoostPolyFromMsg(const std::vector & input_poly); + +std::uint8_t getHighestProbLabel(const std::vector & classification); + +std::vector getHighestConfidencePath( + const std::vector & predicted_paths); + +// apply linear interpolation to position +geometry_msgs::msg::Pose lerpByPose( + const geometry_msgs::msg::Pose & p1, const geometry_msgs::msg::Pose & p2, const float t); + +std::vector findLateralSameSidePoints( + const std::vector & points, const geometry_msgs::msg::Pose & base_pose, + const geometry_msgs::msg::Point & target_point); + +bool isSamePoint(const geometry_msgs::msg::Point & p1, const geometry_msgs::msg::Point & p2); + +// if path points have the same point as target_point, return the index +boost::optional haveSamePoint( + const PathPointsWithLaneId & path_points, const geometry_msgs::msg::Point & target_point); + +// insert path velocity which doesn't exceed original velocity +void insertPathVelocityFromIndexLimited( + const size_t & start_idx, const float velocity_mps, PathPointsWithLaneId & path_points); + +void insertPathVelocityFromIndex( + const size_t & start_idx, const float velocity_mps, PathPointsWithLaneId & path_points); + +boost::optional findFirstStopPointIdx(PathPointsWithLaneId & path_points); + +LineString2d createLineString2d(const lanelet::BasicPolygon2d & poly); + +std::vector excludeObstaclesOutSideOfLine( + const std::vector & dynamic_obstacles, const PathPointsWithLaneId & path_points, + const lanelet::BasicPolygon2d & partition); + +PathPointsWithLaneId decimatePathPoints( + const PathPointsWithLaneId & input_path_points, const float step); + +// trim path from self_pose to trim_distance +PathWithLaneId trimPathFromSelfPose( + const PathWithLaneId & input, const geometry_msgs::msg::Pose & self_pose, + const double trim_distance); + +std::vector createDetectionAreaPolygon( + const geometry_msgs::msg::Pose & current_pose, const DetectionAreaSize detection_area_size); + +// create polygon for passing lines and deceleration line calculated by stopping jerk +// note that this polygon is not closed +boost::optional> createDetectionAreaPolygon( + const std::vector> & passing_lines, + const size_t deceleration_line_idx); + +// extend path to the pose of goal +PathWithLaneId extendPath(const PathWithLaneId & input, const double extend_distance); +PathPoint createExtendPathPoint(const double extend_distance, const PathPoint & goal_point); + +DetectionMethod toEnum(const std::string & detection_method); +} // namespace run_out_utils +} // namespace behavior_velocity_planner +#endif // SCENE_MODULE__RUN_OUT__UTILS_HPP_ diff --git a/planning/behavior_velocity_planner/run-out-design.md b/planning/behavior_velocity_planner/run-out-design.md new file mode 100644 index 0000000000000..cea0a18c63210 --- /dev/null +++ b/planning/behavior_velocity_planner/run-out-design.md @@ -0,0 +1,197 @@ +## Run Out + +### Role + +`run_out` is the module that decelerates and stops for dynamic obstacles such as pedestrians and bicycles. + +![brief](./docs/run_out/run_out_overview.svg) + +### Activation Timing + +This module is activated if `launch_run_out` becomes true + +### Inner-workings / Algorithms + +#### Flow chart + +```plantuml +@startuml +title modifyPathVelocity +start + +partition "Preprocess path" { +:Calculate the expected target velocity for ego vehicle; +:Extend path; +:Trim path from ego position; +} + +partition "Preprocess obstacles" { +:Create data of abstracted dynamic obstacles; +:Exclude obstacles outside of partition lanelet; +} + +partition "Collision_detection" { +:Detect collision with dynamic obstacles; +} + +partition "Insert velocity" { +:Insert velocity to decelerate for obstacles; + +:Limit velocity with specified jerk and acc limit; +} +stop +@enduml +``` + +#### Preprocess path + +##### Calculate the expected target velocity for ego vehicle + +Calculate the expected target velocity for the ego vehicle path to calculate time to collision with obstacles more precisely. +The expected target velocity is calculated with [motion velocity smoother module](https://github.com/autowarefoundation/autoware.universe/tree/main/planning/motion_velocity_smoother) by using current velocity, current acceleration and velocity limits directed by the map and external API. + +![brief](./docs/run_out/calculate_expected_target_velocity.svg) + +##### Extend the path + +The path is extended by the length of base link to front to consider obstacles after the goal. + +##### Trim path from ego position + +The path is trimmed from ego position to a certain distance to reduce calculation time. +Trimmed distance is specified by parameter of `detection_distance`. + +#### Preprocess obstacles + +##### Create data of abstracted dynamic obstacle + +This module can handle multiple types of obstacles by creating abstracted dynamic obstacle data layer. Currently we have 3 types of detection method (Object, ObjectWithoutPath, Points) to create abstracted obstacle data. + +###### Abstracted dynamic obstacle + +Abstracted obstacle data has following information. + +| Name | Type | Description | +| ---------------- | ----------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | +| pose | `geometry_msgs::msg::Pose` | pose of the obstacle | +| classifications | `std::vector` | classifications with probability | +| shape | `autoware_auto_perception_msgs::msg::Shape` | shape of the obstacle | +| predicted_paths | `std::vector` | predicted paths with confidence. this data doesn't have time step because we use minimum and maximum velocity instead. | +| min_velocity_mps | `float` | minimum velocity of the obstacle. specified by parameter of `dynamic_obstacle.min_vel_kmph` | +| max_velocity_mps | `float` | maximum velocity of the obstacle. specified by parameter of `dynamic_obstacle.max_vel_kmph` | + +Enter the maximum/minimum velocity of the object as a parameter, adding enough margin to the expected velocity. This parameter is used to create polygons for [collision detection](#Collision-detection). + +Future work: Determine the maximum/minimum velocity from the estimated velocity with covariance of the object + +###### 3 types of detection method + +We have 3 types of detection method to meet different safety and availability requirements. The characteristics of them are shown in the table below. +Method of `Object` has high availability (less false positive) because it detects only objects whose predicted path is on the lane. However, sometimes it is not safe because perception may fail to detect obstacles or generate incorrect predicted paths. +On the other hand, method of `Points` has high safety (less false negative) because it uses pointcloud as input. Since points don't have a predicted path, the path that moves in the direction normal to the path of ego vehicle is considered to be the predicted path of abstracted dynamic obstacle data. However, without proper adjustment of filter of points, it may detect a lot of points and it will result in very low availability. +Method of `ObjectWithoutPath` has the characteristics of an intermediate of `Object` and `Points`. + +| Method | Description | +| ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Object | use an object with the predicted path for collision detection. | +| ObjectWithoutPath | use an object but not use the predicted path for collision detection. replace the path assuming that an object jumps out to the lane at specified velocity. | +| Points | use filtered points for collision detection. the path is created assuming that points jump out to the lane. points are regarded as an small circular shaped obstacle. | + +![brief](./docs/run_out/create_dynamic_obstacle.svg) + +##### Exclude obstacles outside of partition + +This module can exclude the obstacles outside of partition such as guardrail, fence, and wall. +We need lanelet map that has the information of partition to use this feature. +By this feature, we can reduce unnecessary deceleration by obstacles that are unlikely to jump out to the lane. +You can choose whether to use this feature by parameter of `use_partition_lanelet`. + +![brief](./docs/run_out/exclude_obstacles_by_partition.svg) + +#### Collision detection + +##### Detect collision with dynamic obstacles + +Along the ego vehicle path, determine the points where collision detection is to be performed for each `detection_span`. + +The travel times to the each points are calculated from [the expected target velocity](#Calculate-the-expected-target-velocity-for-ego-vehicle). + +![brief](./docs/run_out/create_polygon_on_path_point.svg) + +For the each points, collision detection is performed using the footprint polygon of the ego vehicle and the polygon of the predicted location of the obstacles. +The predicted location of the obstacles is described as rectangle or polygon that has the range calculated by min velocity, max velocity and the ego vehicle's travel time to the point. +If the input type of the dynamic obstacle is `Points`, the obstacle shape is defined as a small cylinder. + +![brief](./docs/run_out/collision_detection_for_shape.svg) + +Multiple points are detected as collision points because collision detection is calculated between two polygons. +So we select the point that is on the same side as the obstacle and close to ego vehicle as the collision point. + +![brief](./docs/run_out/collision_points.svg) + +#### Insert velocity + +##### Insert velocity to decelerate for obstacles + +If the collision is detected, stop point is inserted on distance of base link to front + stop margin from the selected collision point. The base link to front means the distance between base_link (center of rear-wheel axis) and front of the car. Stop margin is determined by the parameter of `stop_margin`. + +![brief](./docs/run_out/insert_velocity.svg) + +##### Limit velocity with specified jerk and acc limit + +The maximum slowdown velocity is calculated in order not to slowdown too much. +See the [Occlusion Spot document](./occlusion-spot-design.md#maximum-slowdown-velocity) for more details. +You can choose whether to use this feature by parameter of `slow_down_limit.enable`. + +### Module Parameters + +| Parameter | Type | Description | +| ----------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------ | +| `detection_method` | string | [-] candidate: Object, ObjectWithoutPath, Points | +| `use_partition_lanelet` | bool | [-] whether to use partition lanelet map data | +| `specify_decel_jerk` | bool | [-] whether to specify jerk when ego decelerates | +| `stop_margin` | double | [m] the vehicle decelerates to be able to stop with this margin | +| `passing_margin` | double | [m] the vehicle begins to accelerate if the vehicle's front in predicted position is ahead of the obstacle + this margin | +| `deceleration_jerk` | double | [m/s^3] ego decelerates with this jerk when stopping for obstacles | +| `obstacle_velocity_kph` | double | [km/h] assumption for obstacle velocity | +| `detection_distance` | double | [m] ahead distance from ego to detect the obstacles | +| `detection_span` | double | [m] calculate collision with this span to reduce calculation time | +| `min_vel_ego_kmph` | double | [km/h] min velocity to calculate time to collision | + +| Parameter /detection_area_size | Type | Description | +| ------------------------------ | ------ | ------------------------------------- | +| `dist_ahead` | double | [m] ahead distance from ego position | +| `dist_behind` | double | [m] behind distance from ego position | +| `dist_right` | double | [m] right distance from ego position | +| `dist_left` | double | [m] left distance from ego position | + +| Parameter /dynamic_obstacle | Type | Description | +| --------------------------- | ------ | ----------------------------------------------------------------------------------------------------------- | +| `min_vel_kmph` | double | [km/h] minimum velocity for dynamic obstacles | +| `max_vel_kmph` | double | [km/h] maximum velocity for dynamic obstacles | +| `diameter` | double | [m] diameter of obstacles. used for creating dynamic obstacles from points | +| `height` | double | [m] height of obstacles. used for creating dynamic obstacles from points | +| `max_prediction_time` | double | [sec] create predicted path until this time | +| `time_step` | double | [sec] time step for each path step. used for creating dynamic obstacles from points or objects without path | + +| Parameter /approaching | Type | Description | +| ---------------------- | ------ | -------------------------------------------------------------------------------------------------- | +| `enable` | bool | [-] whether to enable approaching after stopping | +| `margin` | double | [m] distance on how close ego approaches the obstacle | +| `limit_vel_kmph` | double | [km/h] limit velocity for approaching after stopping | +| `stop_thresh` | double | [m/s] threshold to decide if ego is stopping | +| `stop_time_thresh` | double | [sec] threshold for stopping time to transit to approaching state | +| `dist_thresh` | double | [m] end the approaching state if distance to the obstacle is longer than stop_margin + dist_thresh | + +| Parameter /slow_down_limit | Type | Description | +| -------------------------- | ------ | ------------------------------------------------------------- | +| `enable` | bool | [-] whether to enable to limit velocity with max jerk and acc | +| `max_jerk` | double | [m/s^3] minimum jerk deceleration for safe brake. | +| `max_acc` | double | [m/s^2] minimum accel deceleration for safe brake. | + +### Future extensions / Unimplemented parts + +- Calculate obstacle's min velocity and max velocity from covariance +- Detect collisions with polygon object +- Handle the case when the predicted path of obstacles are not straight line + - Currently collision check is calculated based on the assumption that the predicted path of the obstacle is a straight line diff --git a/planning/behavior_velocity_planner/src/node.cpp b/planning/behavior_velocity_planner/src/node.cpp index 1a8dac1aca038..325c7e860a25e 100644 --- a/planning/behavior_velocity_planner/src/node.cpp +++ b/planning/behavior_velocity_planner/src/node.cpp @@ -40,6 +40,7 @@ #include #include #include +#include #include #include #include @@ -195,6 +196,9 @@ BehaviorVelocityPlannerNode::BehaviorVelocityPlannerNode(const rclcpp::NodeOptio if (this->declare_parameter("launch_occlusion_spot", true)) { planner_manager_.launchSceneModule(std::make_shared(*this)); } + if (this->declare_parameter("launch_run_out", false)) { + planner_manager_.launchSceneModule(std::make_shared(*this)); + } } // NOTE: argument planner_data must not be referenced for multithreading diff --git a/planning/behavior_velocity_planner/src/scene_module/run_out/debug.cpp b/planning/behavior_velocity_planner/src/scene_module/run_out/debug.cpp new file mode 100644 index 0000000000000..3045b01b91d44 --- /dev/null +++ b/planning/behavior_velocity_planner/src/scene_module/run_out/debug.cpp @@ -0,0 +1,322 @@ +// Copyright 2022 TIER IV, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "scene_module/run_out/debug.hpp" + +#include "scene_module/run_out/scene.hpp" + +using tier4_autoware_utils::appendMarkerArray; +using tier4_autoware_utils::calcOffsetPose; +using tier4_autoware_utils::createDefaultMarker; +using tier4_autoware_utils::createMarkerColor; +using tier4_autoware_utils::createMarkerOrientation; +using tier4_autoware_utils::createMarkerScale; +using tier4_autoware_utils::createPoint; + +namespace behavior_velocity_planner +{ +namespace +{ +RunOutDebug::TextWithPosition createDebugText( + const std::string text, const geometry_msgs::msg::Pose pose, const float lateral_offset) +{ + const auto offset_pose = tier4_autoware_utils::calcOffsetPose(pose, 0, lateral_offset, 0); + + RunOutDebug::TextWithPosition text_with_position; + text_with_position.text = text; + text_with_position.position = offset_pose.position; + + return text_with_position; +} + +RunOutDebug::TextWithPosition createDebugText( + const std::string text, const geometry_msgs::msg::Point position) +{ + RunOutDebug::TextWithPosition text_with_position; + text_with_position.text = text; + text_with_position.position = position; + + return text_with_position; +} + +} // namespace + +RunOutDebug::RunOutDebug(rclcpp::Node & node) : node_(node) +{ + pub_debug_values_ = + node.create_publisher("~/run_out/debug/debug_values", 1); + pub_accel_reason_ = node.create_publisher("~/run_out/debug/accel_reason", 1); + pub_debug_trajectory_ = node.create_publisher("~/run_out/debug/trajectory", 1); +} + +void RunOutDebug::pushDebugPoints(const pcl::PointXYZ & debug_point) +{ + geometry_msgs::msg::Point ros_point; + ros_point.x = debug_point.x; + ros_point.y = debug_point.y; + ros_point.z = debug_point.z; + + debug_points_.push_back(ros_point); +} + +void RunOutDebug::pushDebugPoints(const geometry_msgs::msg::Point & debug_point) +{ + debug_points_.push_back(debug_point); +} + +void RunOutDebug::pushDebugPoints(const std::vector & debug_points) +{ + for (const auto & p : debug_points) { + debug_points_.push_back(p); + } +} + +void RunOutDebug::pushDebugPoints( + const geometry_msgs::msg::Point & debug_point, const PointType point_type) +{ + switch (point_type) { + case PointType::Blue: + debug_points_.push_back(debug_point); + break; + + case PointType::Red: + debug_points_red_.push_back(debug_point); + break; + + case PointType::Yellow: + debug_points_yellow_.push_back(debug_point); + break; + + default: + break; + } +} + +void RunOutDebug::pushStopPose(const geometry_msgs::msg::Pose & pose) +{ + stop_pose_.push_back(pose); +} + +void RunOutDebug::pushDebugLines(const std::vector & debug_line) +{ + debug_lines_.push_back(debug_line); +} + +void RunOutDebug::pushDebugPolygons(const std::vector & debug_polygon) +{ + debug_polygons_.push_back(debug_polygon); +} + +void RunOutDebug::pushDetectionAreaPolygons(const Polygon2d & debug_polygon) +{ + std::vector ros_points; + for (const auto & p : debug_polygon.outer()) { + ros_points.push_back(tier4_autoware_utils::createPoint(p.x(), p.y(), 0.0)); + } + + detection_area_polygons_.push_back(ros_points); +} + +void RunOutDebug::pushDebugTexts(const TextWithPosition & debug_text) +{ + debug_texts_.push_back(debug_text); +} + +void RunOutDebug::pushDebugTexts( + const std::string text, const geometry_msgs::msg::Pose pose, const float lateral_offset) +{ + debug_texts_.push_back(createDebugText(text, pose, lateral_offset)); +} + +void RunOutDebug::pushDebugTexts(const std::string text, const geometry_msgs::msg::Point position) +{ + debug_texts_.push_back(createDebugText(text, position)); +} + +void RunOutDebug::clearDebugMarker() +{ + debug_points_.clear(); + debug_points_red_.clear(); + debug_points_yellow_.clear(); + debug_lines_.clear(); + debug_polygons_.clear(); + detection_area_polygons_.clear(); + debug_texts_.clear(); +} + +visualization_msgs::msg::MarkerArray RunOutDebug::createVisualizationMarkerArray() +{ + rclcpp::Time current_time = node_.now(); + + // create marker array from debug data + auto visualization_marker_array = createVisualizationMarkerArrayFromDebugData(current_time); + + // clear debug data + clearDebugMarker(); + + return visualization_marker_array; +} + +visualization_msgs::msg::MarkerArray RunOutDebug::createVirtualWallMarkerArray() +{ + visualization_msgs::msg::MarkerArray wall_marker; + rclcpp::Time now = node_.now(); + size_t id = 0; + + for (const auto & p : stop_pose_) { + appendMarkerArray( + tier4_autoware_utils::createStopVirtualWallMarker(p, "run_out", now, id++), &wall_marker); + } + + stop_pose_.clear(); + + return wall_marker; +} + +visualization_msgs::msg::MarkerArray RunOutDebug::createVisualizationMarkerArrayFromDebugData( + const builtin_interfaces::msg::Time & current_time) +{ + visualization_msgs::msg::MarkerArray msg; + + if (!debug_points_.empty()) { + auto marker = createDefaultMarker( + "map", current_time, "debug_points", 0, visualization_msgs::msg::Marker::SPHERE_LIST, + createMarkerScale(0.5, 0.5, 0.5), createMarkerColor(0, 0.0, 1.0, 0.999)); + for (const auto & p : debug_points_) { + marker.points.push_back(p); + } + msg.markers.push_back(marker); + } + + if (!debug_points_red_.empty()) { + auto marker = createDefaultMarker( + "map", current_time, "debug_points_red", 0, visualization_msgs::msg::Marker::SPHERE_LIST, + createMarkerScale(1.0, 1.0, 1.0), createMarkerColor(1.0, 0, 0, 0.999)); + for (const auto & p : debug_points_red_) { + marker.points.push_back(p); + } + msg.markers.push_back(marker); + } + + if (!debug_points_yellow_.empty()) { + auto marker = createDefaultMarker( + "map", current_time, "debug_points_yellow", 0, visualization_msgs::msg::Marker::SPHERE_LIST, + createMarkerScale(0.7, 0.7, 0.7), createMarkerColor(1.0, 1.0, 0, 0.999)); + for (const auto & p : debug_points_yellow_) { + marker.points.push_back(p); + } + msg.markers.push_back(marker); + } + + if (!debug_lines_.empty()) { + int32_t marker_id = 0; + for (const auto & line : debug_lines_) { + auto marker = createDefaultMarker( + "map", current_time, "debug_lines", marker_id, visualization_msgs::msg::Marker::LINE_STRIP, + createMarkerScale(0.1, 0.0, 0.0), createMarkerColor(0, 0, 1.0, 0.999)); + for (const auto & p : line) { + marker.points.push_back(p); + } + msg.markers.push_back(marker); + marker_id++; + } + } + + if (!debug_polygons_.empty()) { + auto marker = createDefaultMarker( + "map", current_time, "debug_polygons", 0, visualization_msgs::msg::Marker::LINE_LIST, + createMarkerScale(0.05, 0.0, 0.0), createMarkerColor(1.0, 1.0, 0.0, 0.999)); + + for (const auto & poly : debug_polygons_) { + for (size_t i = 0; i < poly.size() - 1; i++) { + marker.points.push_back(poly.at(i)); + marker.points.push_back(poly.at(i + 1)); + } + marker.points.push_back(poly.back()); + marker.points.push_back(poly.front()); + } + + msg.markers.push_back(marker); + } + + if (!detection_area_polygons_.empty()) { + auto marker = createDefaultMarker( + "map", current_time, "detection_area_polygon", 0, visualization_msgs::msg::Marker::LINE_LIST, + createMarkerScale(0.05, 0.0, 0.0), createMarkerColor(0.0, 0.0, 1.0, 0.999)); + + for (const auto & poly : detection_area_polygons_) { + for (size_t i = 0; i < poly.size() - 1; i++) { + marker.points.push_back(poly.at(i)); + marker.points.push_back(poly.at(i + 1)); + } + marker.points.push_back(poly.back()); + marker.points.push_back(poly.front()); + } + + msg.markers.push_back(marker); + } + + if (!debug_texts_.empty()) { + auto marker = createDefaultMarker( + "map", current_time, "debug_texts", 0, visualization_msgs::msg::Marker::TEXT_VIEW_FACING, + createMarkerScale(0.0, 0.0, 0.8), createMarkerColor(1.0, 1.0, 1.0, 0.999)); + + constexpr float height_offset = 2.0; + for (const auto & text : debug_texts_) { + marker.pose.position = text.position; + marker.pose.position.z += height_offset; + marker.text = text.text; + + msg.markers.push_back(marker); + marker.id++; + } + } + + return msg; +} +void RunOutDebug::setAccelReason(const AccelReason & accel_reason) { accel_reason_ = accel_reason; } + +void RunOutDebug::publishDebugValue() +{ + // publish debug values + tier4_debug_msgs::msg::Float32MultiArrayStamped debug_msg{}; + debug_msg.stamp = node_.now(); + for (const auto & v : debug_values_.getValues()) { + debug_msg.data.push_back(v); + } + pub_debug_values_->publish(debug_msg); + + Int32Stamped accel_reason; + accel_reason.stamp = node_.now(); + accel_reason.data = static_cast(accel_reason_); + pub_accel_reason_->publish(accel_reason); +} + +void RunOutDebug::publishDebugTrajectory(const Trajectory & trajectory) +{ + pub_debug_trajectory_->publish(trajectory); +} + +// scene module +visualization_msgs::msg::MarkerArray RunOutModule::createDebugMarkerArray() +{ + return debug_ptr_->createVisualizationMarkerArray(); +} + +visualization_msgs::msg::MarkerArray RunOutModule::createVirtualWallMarkerArray() +{ + return debug_ptr_->createVirtualWallMarkerArray(); +} + +} // namespace behavior_velocity_planner diff --git a/planning/behavior_velocity_planner/src/scene_module/run_out/dynamic_obstacle.cpp b/planning/behavior_velocity_planner/src/scene_module/run_out/dynamic_obstacle.cpp new file mode 100644 index 0000000000000..afe2994ed4cf5 --- /dev/null +++ b/planning/behavior_velocity_planner/src/scene_module/run_out/dynamic_obstacle.cpp @@ -0,0 +1,218 @@ +// Copyright 2022 TIER IV, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "scene_module/run_out/dynamic_obstacle.hpp" + +#include + +namespace behavior_velocity_planner +{ +namespace +{ +// create quaternion facing to the nearest trajectory point +geometry_msgs::msg::Quaternion createQuaternionFacingToTrajectory( + const PathPointsWithLaneId & path_points, const geometry_msgs::msg::Point & point) +{ + const auto nearest_idx = tier4_autoware_utils::findNearestIndex(path_points, point); + const auto & nearest_pose = path_points.at(nearest_idx).point.pose; + + const auto longitudinal_offset = + tier4_autoware_utils::calcLongitudinalDeviation(nearest_pose, point); + const auto vertical_point = + tier4_autoware_utils::calcOffsetPose(nearest_pose, longitudinal_offset, 0, 0).position; + const auto azimuth_angle = tier4_autoware_utils::calcAzimuthAngle(point, vertical_point); + + return tier4_autoware_utils::createQuaternionFromYaw(azimuth_angle); +} + +// create predicted path assuming that obstacles move with constant velocity +std::vector createPredictedPath( + const geometry_msgs::msg::Pose & initial_pose, const float time_step, + const float max_velocity_mps, const float max_prediction_time) +{ + const size_t path_size = max_prediction_time / time_step; + std::vector path_points; + for (size_t i = 0; i < path_size; i++) { + const float travel_dist = max_velocity_mps * time_step * i; + const auto predicted_pose = + tier4_autoware_utils::calcOffsetPose(initial_pose, travel_dist, 0, 0); + path_points.emplace_back(predicted_pose); + } + + return path_points; +} + +pcl::PointCloud applyVoxelGridFilter( + const pcl::PointCloud::ConstPtr & input_points) +{ + auto no_height_points = *input_points; + for (auto & p : no_height_points) { + p.z = 0.0; + } + + // use boost::makeshared instead of std beacause filter.setInputCloud requires boost shared ptr + pcl::VoxelGrid filter; + filter.setInputCloud(pcl::make_shared>(no_height_points)); + filter.setLeafSize(0.05f, 0.05f, 100000.0f); + + pcl::PointCloud output_points; + filter.filter(output_points); + + return output_points; +} +} // namespace + +DynamicObstacleCreatorForObject::DynamicObstacleCreatorForObject(rclcpp::Node & node) +: DynamicObstacleCreator(node) +{ +} + +std::vector DynamicObstacleCreatorForObject::createDynamicObstacles() const +{ + // create dynamic obstacles from predicted objects + std::vector dynamic_obstacles; + for (const auto & predicted_object : dynamic_obstacle_data_.predicted_objects.objects) { + DynamicObstacle dynamic_obstacle; + dynamic_obstacle.pose = predicted_object.kinematics.initial_pose_with_covariance.pose; + + // TODO(Tomohito Ando): calculate velocity from covariance of predicted_object + dynamic_obstacle.min_velocity_mps = tier4_autoware_utils::kmph2mps(param_.min_vel_kmph); + dynamic_obstacle.max_velocity_mps = tier4_autoware_utils::kmph2mps(param_.max_vel_kmph); + dynamic_obstacle.classifications = predicted_object.classification; + dynamic_obstacle.shape = predicted_object.shape; + + // get predicted paths of predicted_objects + for (const auto & path : predicted_object.kinematics.predicted_paths) { + PredictedPath predicted_path; + predicted_path.confidence = path.confidence; + predicted_path.path.resize(path.path.size()); + std::copy(path.path.cbegin(), path.path.cend(), predicted_path.path.begin()); + + dynamic_obstacle.predicted_paths.emplace_back(predicted_path); + } + + dynamic_obstacles.emplace_back(dynamic_obstacle); + } + + return dynamic_obstacles; +} + +DynamicObstacleCreatorForObjectWithoutPath::DynamicObstacleCreatorForObjectWithoutPath( + rclcpp::Node & node) +: DynamicObstacleCreator(node) +{ +} + +std::vector DynamicObstacleCreatorForObjectWithoutPath::createDynamicObstacles() + const +{ + std::vector dynamic_obstacles; + + for (const auto & predicted_object : dynamic_obstacle_data_.predicted_objects.objects) { + DynamicObstacle dynamic_obstacle; + dynamic_obstacle.pose.position = + predicted_object.kinematics.initial_pose_with_covariance.pose.position; + dynamic_obstacle.pose.orientation = createQuaternionFacingToTrajectory( + dynamic_obstacle_data_.path.points, dynamic_obstacle.pose.position); + + dynamic_obstacle.min_velocity_mps = tier4_autoware_utils::kmph2mps(param_.min_vel_kmph); + dynamic_obstacle.max_velocity_mps = tier4_autoware_utils::kmph2mps(param_.max_vel_kmph); + dynamic_obstacle.classifications = predicted_object.classification; + dynamic_obstacle.shape = predicted_object.shape; + + // replace predicted path with path that runs straight to lane + PredictedPath predicted_path; + predicted_path.path = createPredictedPath( + dynamic_obstacle.pose, param_.time_step, dynamic_obstacle.max_velocity_mps, + param_.max_prediction_time); + predicted_path.confidence = 1.0; + dynamic_obstacle.predicted_paths.emplace_back(predicted_path); + + dynamic_obstacles.emplace_back(dynamic_obstacle); + } + + return dynamic_obstacles; +} + +DynamicObstacleCreatorForPoints::DynamicObstacleCreatorForPoints(rclcpp::Node & node) +: DynamicObstacleCreator(node), tf_buffer_(node.get_clock()), tf_listener_(tf_buffer_) +{ + using std::placeholders::_1; + sub_compare_map_filtered_pointcloud_ = node.create_subscription( + "~/input/compare_map_filtered_pointcloud", rclcpp::SensorDataQoS(), + std::bind(&DynamicObstacleCreatorForPoints::onCompareMapFilteredPointCloud, this, _1)); +} + +std::vector DynamicObstacleCreatorForPoints::createDynamicObstacles() const +{ + std::vector dynamic_obstacles; + for (const auto & point : dynamic_obstacle_data_.compare_map_filtered_pointcloud) { + DynamicObstacle dynamic_obstacle; + + // create pose facing the direction of the lane + dynamic_obstacle.pose.position = tier4_autoware_utils::createPoint(point.x, point.y, point.z); + dynamic_obstacle.pose.orientation = createQuaternionFacingToTrajectory( + dynamic_obstacle_data_.path.points, dynamic_obstacle.pose.position); + + dynamic_obstacle.min_velocity_mps = tier4_autoware_utils::kmph2mps(param_.min_vel_kmph); + dynamic_obstacle.max_velocity_mps = tier4_autoware_utils::kmph2mps(param_.max_vel_kmph); + + // create classification of points as pedestrian + ObjectClassification classification; + classification.label = ObjectClassification::PEDESTRIAN; + classification.probability = 1.0; + dynamic_obstacle.classifications.emplace_back(classification); + + // create shape of points as cylinder + dynamic_obstacle.shape.type = Shape::CYLINDER; + dynamic_obstacle.shape.dimensions.x = param_.diameter; + dynamic_obstacle.shape.dimensions.y = param_.diameter; + dynamic_obstacle.shape.dimensions.z = param_.height; + + // create predicted path of points + PredictedPath predicted_path; + predicted_path.path = createPredictedPath( + dynamic_obstacle.pose, param_.time_step, dynamic_obstacle.max_velocity_mps, + param_.max_prediction_time); + predicted_path.confidence = 1.0; + dynamic_obstacle.predicted_paths.emplace_back(predicted_path); + + dynamic_obstacles.emplace_back(dynamic_obstacle); + } + + return dynamic_obstacles; +} + +void DynamicObstacleCreatorForPoints::onCompareMapFilteredPointCloud( + const sensor_msgs::msg::PointCloud2::ConstSharedPtr msg) +{ + geometry_msgs::msg::TransformStamped transform; + try { + transform = tf_buffer_.lookupTransform( + "map", msg->header.frame_id, msg->header.stamp, rclcpp::Duration::from_seconds(0.1)); + } catch (tf2::TransformException & e) { + RCLCPP_WARN(node_.get_logger(), "no transform found for no_ground_pointcloud: %s", e.what()); + return; + } + + pcl::PointCloud pc; + pcl::fromROSMsg(*msg, pc); + + Eigen::Affine3f affine = tf2::transformToEigen(transform.transform).cast(); + pcl::PointCloud::Ptr pc_transformed(new pcl::PointCloud); + pcl::transformPointCloud(pc, *pc_transformed, affine); + + dynamic_obstacle_data_.compare_map_filtered_pointcloud = applyVoxelGridFilter(pc_transformed); +} +} // namespace behavior_velocity_planner diff --git a/planning/behavior_velocity_planner/src/scene_module/run_out/manager.cpp b/planning/behavior_velocity_planner/src/scene_module/run_out/manager.cpp new file mode 100644 index 0000000000000..5b80ac2c0537e --- /dev/null +++ b/planning/behavior_velocity_planner/src/scene_module/run_out/manager.cpp @@ -0,0 +1,154 @@ +// Copyright 2022 TIER IV, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "scene_module/run_out/manager.hpp" + +namespace behavior_velocity_planner +{ +namespace +{ +} // namespace + +RunOutModuleManager::RunOutModuleManager(rclcpp::Node & node) +: SceneModuleManagerInterface(node, getModuleName()) +{ + // Vehicle Parameters + { + const auto vehicle_info = vehicle_info_util::VehicleInfoUtil(node).getVehicleInfo(); + auto & p = planner_param_.vehicle_param; + p.base_to_front = vehicle_info.wheel_base_m + vehicle_info.front_overhang_m; + p.base_to_rear = vehicle_info.rear_overhang_m; + p.width = vehicle_info.vehicle_width_m; + } + + const std::string ns(getModuleName()); + + { + auto & p = planner_param_.common; + p.normal_min_jerk = node.declare_parameter(".normal.min_jerk", -0.3); + p.normal_min_acc = node.declare_parameter(".normal.min_acc", -1.0); + p.limit_min_jerk = node.declare_parameter(".limit.min_jerk", -1.5); + p.limit_min_acc = node.declare_parameter(".limit.min_acc", -2.5); + } + + { + auto & p = planner_param_.run_out; + p.detection_method = node.declare_parameter(ns + ".detection_method", "Object"); + p.use_partition_lanelet = node.declare_parameter(ns + ".use_partition_lanelet", true); + p.specify_decel_jerk = node.declare_parameter(ns + ".specify_decel_jerk", false); + p.stop_margin = node.declare_parameter(ns + ".stop_margin", 2.5); + p.passing_margin = node.declare_parameter(ns + ".passing_margin", 1.0); + p.deceleration_jerk = node.declare_parameter(ns + ".deceleration_jerk", -0.3); + p.obstacle_velocity_kph = node.declare_parameter(ns + ".obstacle_velocity_kph", 5.0); + p.detection_distance = node.declare_parameter(ns + ".detection_distance", 45.0); + p.detection_span = node.declare_parameter(ns + ".detection_span", 1.0); + p.min_vel_ego_kmph = node.declare_parameter(ns + ".min_vel_ego_kmph", 5.0); + } + + { + auto & p = planner_param_.detection_area; + const std::string ns_da = ns + ".detection_area_size"; + p.dist_ahead = node.declare_parameter(ns_da + ".dist_ahead", 50.0); + p.dist_behind = node.declare_parameter(ns_da + ".dist_behind", 5.0); + p.dist_right = node.declare_parameter(ns_da + ".dist_right", 10.0); + p.dist_left = node.declare_parameter(ns_da + ".dist_left", 10.0); + } + + { + auto & p = planner_param_.dynamic_obstacle; + const std::string ns_do = ns + ".dynamic_obstacle"; + p.min_vel_kmph = node.declare_parameter(ns_do + ".min_vel_kmph", 0.0); + p.max_vel_kmph = node.declare_parameter(ns_do + ".max_vel_kmph", 5.0); + p.diameter = node.declare_parameter(ns_do + ".diameter", 0.1); + p.height = node.declare_parameter(ns_do + ".height", 2.0); + p.max_prediction_time = node.declare_parameter(ns_do + ".max_prediction_time", 10.0); + p.time_step = node.declare_parameter(ns_do + ".time_step", 0.5); + } + + { + auto & p = planner_param_.approaching; + const std::string ns_a = ns + ".approaching"; + p.enable = node.declare_parameter(ns_a + ".enable", false); + p.margin = node.declare_parameter(ns_a + ".margin", 0.0); + p.limit_vel_kmph = node.declare_parameter(ns_a + ".limit_vel_kmph", 5.0); + p.stop_thresh = node.declare_parameter(ns_a + ".stop_thresh", 0.01); + p.stop_time_thresh = node.declare_parameter(ns_a + ".stop_time_thresh", 3.0); + p.dist_thresh = node.declare_parameter(ns_a + ".dist_thresh", 0.5); + } + + { + auto & p = planner_param_.slow_down_limit; + const std::string ns_m = ns + ".slow_down_limit"; + p.enable = node.declare_parameter(ns_m + ".enable", true); + p.max_jerk = node.declare_parameter(ns_m + ".max_jerk", -0.7); + p.max_acc = node.declare_parameter(ns_m + ".max_acc", -2.0); + } + + debug_ptr_ = std::make_shared(node); + setDynamicObstacleCreator(node); +} + +void RunOutModuleManager::launchNewModules( + const autoware_auto_planning_msgs::msg::PathWithLaneId & path) +{ + if (path.points.empty()) { + return; + } + + constexpr int64_t module_id = 0; + if (!isModuleRegistered(module_id)) { + registerModule(std::make_shared( + module_id, planner_data_, planner_param_, logger_.get_child("run_out_module"), + std::move(dynamic_obstacle_creator_), debug_ptr_, clock_)); + } +} + +std::function &)> +RunOutModuleManager::getModuleExpiredFunction( + const autoware_auto_planning_msgs::msg::PathWithLaneId & path) +{ + return + [&path]([[maybe_unused]] const std::shared_ptr & scene_module) -> bool { + return false; + }; +} + +void RunOutModuleManager::setDynamicObstacleCreator(rclcpp::Node & node) +{ + using run_out_utils::DetectionMethod; + + const auto detection_method_enum = run_out_utils::toEnum(planner_param_.run_out.detection_method); + switch (detection_method_enum) { + case DetectionMethod::Object: + dynamic_obstacle_creator_ = std::make_unique(node); + break; + + case DetectionMethod::ObjectWithoutPath: + dynamic_obstacle_creator_ = + std::make_unique(node); + break; + + case DetectionMethod::Points: + dynamic_obstacle_creator_ = std::make_unique(node); + break; + + default: + RCLCPP_WARN_STREAM(logger_, "detection method is invalid. use default method (Object)."); + dynamic_obstacle_creator_ = std::make_unique(node); + break; + } + + dynamic_obstacle_creator_->setParam(planner_param_.dynamic_obstacle); +} +} // namespace behavior_velocity_planner diff --git a/planning/behavior_velocity_planner/src/scene_module/run_out/scene.cpp b/planning/behavior_velocity_planner/src/scene_module/run_out/scene.cpp new file mode 100644 index 0000000000000..71bb6ee12a29b --- /dev/null +++ b/planning/behavior_velocity_planner/src/scene_module/run_out/scene.cpp @@ -0,0 +1,879 @@ +// Copyright 2022 TIER IV, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "scene_module/run_out/scene.hpp" + +#include "scene_module/run_out/path_utils.hpp" +#include "utilization/trajectory_utils.hpp" +#include "utilization/util.hpp" + +namespace behavior_velocity_planner +{ +namespace bg = boost::geometry; + +RunOutModule::RunOutModule( + const int64_t module_id, const std::shared_ptr & planner_data, + const PlannerParam & planner_param, const rclcpp::Logger logger, + std::unique_ptr dynamic_obstacle_creator, + const std::shared_ptr & debug_ptr, const rclcpp::Clock::SharedPtr clock) +: SceneModuleInterface(module_id, logger, clock), + planner_param_(planner_param), + dynamic_obstacle_creator_(std::move(dynamic_obstacle_creator)), + debug_ptr_(debug_ptr) +{ + if (planner_param.run_out.use_partition_lanelet) { + const lanelet::LaneletMapConstPtr & ll = planner_data->route_handler_->getLaneletMapPtr(); + planning_utils::getAllPartitionLanelets(ll, partition_lanelets_); + } +} + +void RunOutModule::setPlannerParam(const PlannerParam & planner_param) +{ + planner_param_ = planner_param; +} + +bool RunOutModule::modifyPathVelocity( + autoware_auto_planning_msgs::msg::PathWithLaneId * path, + [[maybe_unused]] tier4_planning_msgs::msg::StopReason * stop_reason) +{ + // timer starts + const auto t1_modify_path = std::chrono::system_clock::now(); + + // set planner data + const auto current_vel = planner_data_->current_velocity->twist.linear.x; + const auto current_acc = planner_data_->current_accel.get(); + const auto & current_pose = planner_data_->current_pose.pose; + + // smooth velocity of the path to calcute time to collision accurately + PathWithLaneId smoothed_path; + if (!smoothPath(*path, smoothed_path, planner_data_)) { + return true; + } + + // extend path to consider obstacles after the goal + const auto extended_smoothed_path = + run_out_utils::extendPath(smoothed_path, planner_param_.vehicle_param.base_to_front); + + // trim path ahead of the base_link to make calculation easier + const double trim_distance = planner_param_.run_out.detection_distance; + const auto trim_smoothed_path = + run_out_utils::trimPathFromSelfPose(extended_smoothed_path, current_pose, trim_distance); + + // create abstracted dynamic obstacles from objects or points + dynamic_obstacle_creator_->setData(*planner_data_, *path); + const auto dynamic_obstacles = dynamic_obstacle_creator_->createDynamicObstacles(); + debug_ptr_->setDebugValues(DebugValues::TYPE::NUM_OBSTACLES, dynamic_obstacles.size()); + + // extract obstacles using lanelet information + const auto partition_excluded_obstacles = + excludeObstaclesOutSideOfPartition(dynamic_obstacles, trim_smoothed_path, current_pose); + + // timer starts + const auto t1_collision_check = std::chrono::system_clock::now(); + + // detect collision with dynamic obstacles using velocity planning of ego + const auto dynamic_obstacle = detectCollision(partition_excluded_obstacles, trim_smoothed_path); + + // timer ends + const auto t2_collision_check = std::chrono::system_clock::now(); + const auto elapsed_collision_check = + std::chrono::duration_cast(t2_collision_check - t1_collision_check); + debug_ptr_->setDebugValues( + DebugValues::TYPE::CALCULATION_TIME_COLLISION_CHECK, elapsed_collision_check.count() / 1000.0); + + // insert stop point for the detected obstacle + if (planner_param_.approaching.enable) { + // after a certain amount of time has elapsed since the ego stopped, + // approach the obstacle with slow velocity + insertVelocity( + dynamic_obstacle, current_pose, current_vel, current_acc, trim_smoothed_path, *path); + } else { + // just insert zero velocity for stopping + insertStoppingVelocity( + dynamic_obstacle, current_pose, current_vel, current_acc, trim_smoothed_path, *path); + } + + // apply max jerk limit if the ego can't stop with specified max jerk and acc + if (planner_param_.slow_down_limit.enable) { + applyMaxJerkLimit(current_pose, current_vel, current_acc, *path); + } + + visualizeDetectionArea(trim_smoothed_path); + publishDebugValue( + trim_smoothed_path, partition_excluded_obstacles, dynamic_obstacle, current_pose); + + // timer ends + const auto t2_modify_path = std::chrono::system_clock::now(); + const auto elapsed_modify_path = + std::chrono::duration_cast(t2_modify_path - t1_modify_path); + debug_ptr_->setDebugValues( + DebugValues::TYPE::CALCULATION_TIME, elapsed_modify_path.count() / 1000.0); + + return true; +} + +pcl::PointCloud RunOutModule::extractObstaclePointsWithRectangle( + const pcl::PointCloud & input_points, + const geometry_msgs::msg::Pose & current_pose) const +{ + const auto detection_area_polygon = + createDetectionAreaPolygon(current_pose, planner_param_.detection_area); + + debug_ptr_->pushDebugPolygons(detection_area_polygon); + + const auto extracted_points = pointsWithinPolygon(detection_area_polygon, input_points); + + return extracted_points; +} + +void RunOutModule::visualizeDetectionArea(const PathWithLaneId & smoothed_path) const +{ + // calculate distance needed to stop with jerk and acc constraints + const float initial_vel = planner_data_->current_velocity->twist.linear.x; + const float initial_acc = planner_data_->current_accel.get(); + const float target_vel = 0.0; + const float jerk_dec = planner_param_.run_out.deceleration_jerk; + const float jerk_acc = std::abs(jerk_dec); + const float planning_dec = jerk_dec < planner_param_.common.normal_min_jerk + ? planner_param_.common.limit_min_acc + : planner_param_.common.normal_min_acc; + auto stop_dist = run_out_utils::calcDecelDistWithJerkAndAccConstraints( + initial_vel, target_vel, initial_acc, planning_dec, jerk_acc, jerk_dec); + + if (!stop_dist) { + return; + } + + DetectionRange da_range; + const float obstacle_vel_mps = planner_param_.dynamic_obstacle.max_vel_kmph / 3.6; + da_range.interval = planner_param_.run_out.detection_distance; + da_range.min_longitudinal_distance = planner_param_.vehicle_param.base_to_front; + da_range.max_longitudinal_distance = *stop_dist + planner_param_.run_out.stop_margin; + da_range.min_lateral_distance = planner_param_.vehicle_param.width / 2.0; + da_range.max_lateral_distance = + obstacle_vel_mps * planner_param_.dynamic_obstacle.max_prediction_time; + Polygons2d detection_area_poly; + planning_utils::createDetectionAreaPolygons( + detection_area_poly, smoothed_path, planner_data_->current_pose.pose, da_range, + planner_param_.dynamic_obstacle.max_vel_kmph / 3.6); + + for (const auto & poly : detection_area_poly) { + debug_ptr_->pushDetectionAreaPolygons(poly); + } +} + +pcl::PointCloud RunOutModule::pointsWithinPolygon( + const std::vector & polygon, + const pcl::PointCloud & candidate_points) const +{ + // convert to boost type + const tier4_autoware_utils::Polygon2d bg_poly = run_out_utils::createBoostPolyFromMsg(polygon); + + // find points in detection area + pcl::PointCloud within_points; + for (const auto & p : candidate_points) { + tier4_autoware_utils::Point2d point(p.x, p.y); + + if (!bg::covered_by(point, bg_poly)) { + continue; + } + + within_points.push_back(p); + } + + return within_points; +} + +boost::optional RunOutModule::detectCollision( + const std::vector & dynamic_obstacles, const PathWithLaneId & path) const +{ + if (path.points.size() < 2) { + RCLCPP_WARN_STREAM(logger_, "path doesn't have enough points."); + return {}; + } + + // detect collision with obstacles from the nearest path point to the end + // ignore the travel time from current pose to nearest path point? + float travel_time = 0.0; + float dist_sum = 0.0; + for (size_t idx = 1; idx < path.points.size(); idx++) { + const auto & p1 = path.points.at(idx - 1).point; + const auto & p2 = path.points.at(idx).point; + const float prev_vel = + std::max(p1.longitudinal_velocity_mps, planner_param_.run_out.min_vel_ego_kmph / 3.6f); + const float ds = tier4_autoware_utils::calcDistance2d(p1, p2); + + // calculate travel time from nearest point to p2 + travel_time += ds / prev_vel; + dist_sum += ds; + + // skip collision detection to reduce calculation time + if (idx != 1 && dist_sum < planner_param_.run_out.detection_span) { + continue; + } + dist_sum = 0.0; + + const auto vehicle_poly = createVehiclePolygon(p2.pose); + + // debug + { + debug_ptr_->pushDebugPolygons(vehicle_poly); + std::stringstream sstream; + sstream << std::setprecision(4) << travel_time << "s"; + debug_ptr_->pushDebugTexts(sstream.str(), p2.pose, /* lateral_offset */ 3.0); + } + + auto obstacles_collision = + checkCollisionWithObstacles(dynamic_obstacles, vehicle_poly, travel_time); + if (obstacles_collision.empty()) { + continue; + } + + const auto obstacle_selected = findNearestCollisionObstacle(path, p2.pose, obstacles_collision); + if (!obstacle_selected) { + continue; + } + + // debug + { + std::stringstream sstream; + sstream << std::setprecision(4) << "ttc: " << std::to_string(travel_time) << "s"; + debug_ptr_->pushDebugTexts(sstream.str(), obstacle_selected->nearest_collision_point); + debug_ptr_->pushDebugPoints(obstacle_selected->collision_points); + debug_ptr_->pushDebugPoints(obstacle_selected->nearest_collision_point, PointType::Red); + } + + return obstacle_selected; + } + + // no collision detected + return {}; +} + +boost::optional RunOutModule::findNearestCollisionObstacle( + const PathWithLaneId & path, const geometry_msgs::msg::Pose & base_pose, + std::vector & dynamic_obstacles) const +{ + // sort obstacles with distance from ego + std::sort( + dynamic_obstacles.begin(), dynamic_obstacles.end(), + [&path, &base_pose](const auto & lhs, const auto & rhs) -> bool { + const auto dist_lhs = tier4_autoware_utils::calcSignedArcLength( + path.points, base_pose.position, lhs.pose.position); + const auto dist_rhs = tier4_autoware_utils::calcSignedArcLength( + path.points, base_pose.position, rhs.pose.position); + + return dist_lhs < dist_rhs; + }); + + // select obstacle to decelerate from the nearest obstacle + DynamicObstacle obstacle_collision; + for (const auto & obstacle : dynamic_obstacles) { + const auto obstacle_same_side_points = run_out_utils::findLateralSameSidePoints( + obstacle.collision_points, base_pose, obstacle.pose.position); + + const auto nearest_collision_point = run_out_utils::findLongitudinalNearestPoint( + path.points, base_pose.position, obstacle_same_side_points); + + const auto collision_position_from_ego_front = + calcCollisionPositionOfVehicleSide(nearest_collision_point, base_pose); + + // if position of collision on ego side is less than passing margin, + // which is considered to be collision + // TODO(Tomohito Ando): calculate collision position more precisely + if (collision_position_from_ego_front < planner_param_.run_out.passing_margin) { + debug_ptr_->setDebugValues( + DebugValues::TYPE::COLLISION_POS_FROM_EGO_FRONT, collision_position_from_ego_front); + + obstacle_collision = obstacle; + obstacle_collision.nearest_collision_point = nearest_collision_point; + return obstacle_collision; + } + + // the obstacle is considered to be able to pass + debug_ptr_->setAccelReason(RunOutDebug::AccelReason::PASS); + } + + // no collision points + return {}; +} + +// calculate longitudinal offset of collision point from vehicle front +float RunOutModule::calcCollisionPositionOfVehicleSide( + const geometry_msgs::msg::Point & point, const geometry_msgs::msg::Pose & base_pose) const +{ + const auto vehicle_front_pose = tier4_autoware_utils::calcOffsetPose( + base_pose, planner_param_.vehicle_param.base_to_front, 0, 0); + const auto longitudinal_offset_from_front = + std::abs(tier4_autoware_utils::calcLongitudinalDeviation(vehicle_front_pose, point)); + + return longitudinal_offset_from_front; +} + +/** + * p4 p1 + * +----------------+ + * | ↑-> (base) | + * +----------------+ + * p3 p2 + */ +std::vector RunOutModule::createVehiclePolygon( + const geometry_msgs::msg::Pose & base_pose) const +{ + const float base_to_rear = planner_param_.vehicle_param.base_to_rear; + const float base_to_front = planner_param_.vehicle_param.base_to_front; + const float half_width = planner_param_.vehicle_param.width / 2.0; + + const auto p1 = tier4_autoware_utils::calcOffsetPose(base_pose, base_to_front, half_width, 0.0); + const auto p2 = tier4_autoware_utils::calcOffsetPose(base_pose, base_to_front, -half_width, 0.0); + const auto p3 = tier4_autoware_utils::calcOffsetPose(base_pose, -base_to_rear, -half_width, 0.0); + const auto p4 = tier4_autoware_utils::calcOffsetPose(base_pose, -base_to_rear, half_width, 0.0); + + std::vector vehicle_poly; + vehicle_poly.push_back(p1.position); + vehicle_poly.push_back(p2.position); + vehicle_poly.push_back(p3.position); + vehicle_poly.push_back(p4.position); + + return vehicle_poly; +} + +std::vector RunOutModule::checkCollisionWithObstacles( + const std::vector & dynamic_obstacles, + std::vector poly, const float travel_time) const +{ + const auto bg_poly_vehicle = run_out_utils::createBoostPolyFromMsg(poly); + + // check collision for each objects + std::vector obstacles_collision; + for (const auto & obstacle : dynamic_obstacles) { + // get classification that has highest probability + const auto classification = run_out_utils::getHighestProbLabel(obstacle.classifications); + + // detect only pedestrian and bicycle + if ( + classification != ObjectClassification::PEDESTRIAN && + classification != ObjectClassification::BICYCLE) { + continue; + } + + // calculate predicted obstacle pose for min velocity and max velocity + const auto predicted_obstacle_pose_min_vel = + calcPredictedObstaclePose(obstacle.predicted_paths, travel_time, obstacle.min_velocity_mps); + const auto predicted_obstacle_pose_max_vel = + calcPredictedObstaclePose(obstacle.predicted_paths, travel_time, obstacle.max_velocity_mps); + if (!predicted_obstacle_pose_min_vel || !predicted_obstacle_pose_max_vel) { + continue; + } + const PoseWithRange pose_with_range = { + *predicted_obstacle_pose_min_vel, *predicted_obstacle_pose_max_vel}; + + std::vector collision_points; + const bool collision_detected = + checkCollisionWithShape(bg_poly_vehicle, pose_with_range, obstacle.shape, collision_points); + + if (!collision_detected) { + continue; + } + + DynamicObstacle obstacle_collision = obstacle; + obstacle_collision.collision_points = collision_points; + obstacles_collision.emplace_back(obstacle_collision); + } + + return obstacles_collision; +} + +// calculate the predicted pose of the obstacle on the predicted path with given travel time +// assume that the obstacle moves with constant velocity +boost::optional RunOutModule::calcPredictedObstaclePose( + const std::vector & predicted_paths, const float travel_time, + const float velocity_mps) const +{ + // use the path that has highest confidence for now + const auto predicted_path = run_out_utils::getHighestConfidencePath(predicted_paths); + + if (predicted_path.size() < 2) { + RCLCPP_WARN_STREAM(logger_, "predicted path doesn't have enough points"); + return {}; + } + + if ( + travel_time < std::numeric_limits::epsilon() || + velocity_mps < std::numeric_limits::epsilon()) { + return predicted_path.at(0); + } + + // calculate predicted pose + float time_sum = 0.0; + for (size_t i = 1; i < predicted_path.size(); i++) { + const auto & p1 = predicted_path.at(i - 1); + const auto & p2 = predicted_path.at(i); + + const float ds = tier4_autoware_utils::calcDistance2d(p1, p2); + const float dt = ds / velocity_mps; + + // apply linear interpolation between the predicted path points + if (time_sum + dt > travel_time) { + const float time_remaining = travel_time - time_sum; + const float ratio = time_remaining / dt; + return run_out_utils::lerpByPose(p1, p2, ratio); + } + + time_sum += dt; + } + + // reach the end of the predicted path + return predicted_path.back(); +} + +bool RunOutModule::checkCollisionWithShape( + const tier4_autoware_utils::Polygon2d & vehicle_polygon, const PoseWithRange pose_with_range, + const Shape & shape, std::vector & collision_points) const +{ + bool collision_detected = false; + switch (shape.type) { + case Shape::CYLINDER: + collision_detected = checkCollisionWithCylinder( + vehicle_polygon, pose_with_range, shape.dimensions.x / 2.0, collision_points); + break; + + case Shape::BOUNDING_BOX: + collision_detected = checkCollisionWithBoundingBox( + vehicle_polygon, pose_with_range, shape.dimensions, collision_points); + break; + + case Shape::POLYGON: + collision_detected = checkCollisionWithPolygon(); + break; + + default: + break; + } + + return collision_detected; +} + +bool RunOutModule::checkCollisionWithCylinder( + const tier4_autoware_utils::Polygon2d & vehicle_polygon, const PoseWithRange pose_with_range, + const float radius, std::vector & collision_points) const +{ + // create bounding box for min and max velocity point + const auto bounding_box_for_points = + createBoundingBoxForRangedPoints(pose_with_range, radius, radius); + const auto bg_bounding_box_for_points = + run_out_utils::createBoostPolyFromMsg(bounding_box_for_points); + + // debug + debug_ptr_->pushDebugPolygons(bounding_box_for_points); + + // check collision with 2d polygon + std::vector collision_points_bg; + bg::intersection(vehicle_polygon, bg_bounding_box_for_points, collision_points_bg); + + // no collision detected + if (collision_points_bg.empty()) { + return false; + } + + for (const auto & p : collision_points_bg) { + const auto p_msg = + tier4_autoware_utils::createPoint(p.x(), p.y(), pose_with_range.pose_min.position.z); + collision_points.emplace_back(p_msg); + } + + return true; +} + +// create 2D bounding box for two points +// Box is better to reduce calculation cost? +std::vector RunOutModule::createBoundingBoxForRangedPoints( + const PoseWithRange & pose_with_range, const float x_offset, const float y_offset) const +{ + const auto dist_p1_p2 = + tier4_autoware_utils::calcDistance2d(pose_with_range.pose_min, pose_with_range.pose_max); + + geometry_msgs::msg::Pose p_min_to_p_max; + const auto azimuth_angle = tier4_autoware_utils::calcAzimuthAngle( + pose_with_range.pose_min.position, pose_with_range.pose_max.position); + p_min_to_p_max.position = pose_with_range.pose_min.position; + p_min_to_p_max.orientation = tier4_autoware_utils::createQuaternionFromYaw(azimuth_angle); + + std::vector poly; + poly.emplace_back( + tier4_autoware_utils::calcOffsetPose(p_min_to_p_max, dist_p1_p2 + x_offset, y_offset, 0.0) + .position); + poly.emplace_back( + tier4_autoware_utils::calcOffsetPose(p_min_to_p_max, dist_p1_p2 + x_offset, -y_offset, 0.0) + .position); + poly.emplace_back( + tier4_autoware_utils::calcOffsetPose(p_min_to_p_max, -x_offset, -y_offset, 0.0).position); + poly.emplace_back( + tier4_autoware_utils::calcOffsetPose(p_min_to_p_max, -x_offset, y_offset, 0.0).position); + + return poly; +} + +bool RunOutModule::checkCollisionWithBoundingBox( + const tier4_autoware_utils::Polygon2d & vehicle_polygon, const PoseWithRange pose_with_range, + const geometry_msgs::msg::Vector3 & dimension, + std::vector & collision_points) const +{ + // create bounding box for min and max velocity point + const auto bounding_box = + createBoundingBoxForRangedPoints(pose_with_range, dimension.x / 2.0, dimension.y / 2.0); + const auto bg_bounding_box = run_out_utils::createBoostPolyFromMsg(bounding_box); + + // debug + debug_ptr_->pushDebugPolygons(bounding_box); + + // check collision with 2d polygon + std::vector collision_points_bg; + bg::intersection(vehicle_polygon, bg_bounding_box, collision_points_bg); + + // no collision detected + if (collision_points_bg.empty()) { + return false; + } + + for (const auto & p : collision_points_bg) { + const auto p_msg = + tier4_autoware_utils::createPoint(p.x(), p.y(), pose_with_range.pose_min.position.z); + collision_points.emplace_back(p_msg); + } + + return true; +} + +bool RunOutModule::checkCollisionWithPolygon() const +{ + RCLCPP_WARN_STREAM(logger_, "detection for POLYGON type is not implemented yet."); + + return false; +} + +boost::optional RunOutModule::calcStopPoint( + const boost::optional & dynamic_obstacle, const PathWithLaneId & path, + const geometry_msgs::msg::Pose & current_pose, const float current_vel, + const float current_acc) const +{ + // no obstacles + if (!dynamic_obstacle) { + return {}; + } + + // calculate distance to collision with the obstacle + const float dist_to_collision_point = tier4_autoware_utils::calcSignedArcLength( + path.points, current_pose.position, dynamic_obstacle->nearest_collision_point); + const float dist_to_collision = + dist_to_collision_point - planner_param_.vehicle_param.base_to_front; + + // insert the stop point without considering the distance from the obstacle + // smoother will calculate appropriate jerk for deceleration + if (!planner_param_.run_out.specify_decel_jerk) { + // calculate index of stop point + const float base_to_collision_point = + planner_param_.run_out.stop_margin + planner_param_.vehicle_param.base_to_front; + const size_t stop_index = run_out_utils::calcIndexByLengthReverse( + path.points, dynamic_obstacle->nearest_collision_point, base_to_collision_point); + const auto & stop_point = path.points.at(stop_index).point.pose; + + // debug + debug_ptr_->setAccelReason(RunOutDebug::AccelReason::STOP); + debug_ptr_->pushStopPose(tier4_autoware_utils::calcOffsetPose( + stop_point, planner_param_.vehicle_param.base_to_front, 0, 0)); + + return stop_point; + } + + // calculate distance needed to stop with jerk and acc constraints + const float target_vel = 0.0; + const float jerk_dec = planner_param_.run_out.deceleration_jerk; + const float jerk_acc = std::abs(jerk_dec); + const float planning_dec = jerk_dec < planner_param_.common.normal_min_jerk + ? planner_param_.common.limit_min_acc + : planner_param_.common.normal_min_acc; + auto stop_dist = run_out_utils::calcDecelDistWithJerkAndAccConstraints( + current_vel, target_vel, current_acc, planning_dec, jerk_acc, jerk_dec); + if (!stop_dist) { + RCLCPP_WARN_STREAM(logger_, "failed to calculate stop distance."); + + // force to insert zero velocity + stop_dist = boost::make_optional(dist_to_collision); + } + + // debug + { + const float base_to_obstacle = + planner_param_.vehicle_param.base_to_front + planner_param_.run_out.stop_margin; + const auto vehicle_stop_idx = run_out_utils::calcIndexByLength( + path.points, current_pose, stop_dist.get() + base_to_obstacle); + const auto & p = path.points.at(vehicle_stop_idx).point.pose.position; + debug_ptr_->pushDebugPoints(p, PointType::Yellow); + debug_ptr_->setDebugValues(DebugValues::TYPE::STOP_DISTANCE, *stop_dist); + } + + // vehicle have to decelerate if there is not enough distance with deceleration_jerk + const bool deceleration_needed = + *stop_dist > dist_to_collision - planner_param_.run_out.stop_margin; + // avoid acceleration when ego is decelerating + // TODO(Tomohito Ando): replace with more appropriate method + constexpr float epsilon = 1.0e-2; + constexpr float stopping_vel_mps = 2.5 / 3.6; + const bool is_stopping = current_vel < stopping_vel_mps && current_acc < epsilon; + if (!deceleration_needed && !is_stopping) { + debug_ptr_->setAccelReason(RunOutDebug::AccelReason::LOW_JERK); + return {}; + } + + // calculate index of stop point + const float base_to_collision_point = + planner_param_.run_out.stop_margin + planner_param_.vehicle_param.base_to_front; + const size_t stop_index = run_out_utils::calcIndexByLengthReverse( + path.points, dynamic_obstacle->nearest_collision_point, base_to_collision_point); + const auto & stop_point = path.points.at(stop_index).point.pose; + + // debug + debug_ptr_->setAccelReason(RunOutDebug::AccelReason::STOP); + debug_ptr_->pushStopPose(tier4_autoware_utils::calcOffsetPose( + stop_point, planner_param_.vehicle_param.base_to_front, 0, 0)); + + return stop_point; +} + +void RunOutModule::insertStopPoint( + const boost::optional stop_point, + autoware_auto_planning_msgs::msg::PathWithLaneId & path) +{ + // no stop point + if (!stop_point) { + RCLCPP_DEBUG_STREAM(logger_, "already has same point"); + return; + } + + // find nearest point index behind the stop point + const auto nearest_seg_idx = + tier4_autoware_utils::findNearestSegmentIndex(path.points, stop_point->position); + auto insert_idx = nearest_seg_idx + 1; + + // to PathPointWithLaneId + autoware_auto_planning_msgs::msg::PathPointWithLaneId stop_point_with_lane_id; + stop_point_with_lane_id = path.points.at(nearest_seg_idx); + stop_point_with_lane_id.point.pose = *stop_point; + + planning_utils::insertVelocity(path, stop_point_with_lane_id, 0.0, insert_idx); +} + +void RunOutModule::insertVelocity( + const boost::optional & dynamic_obstacle, + const geometry_msgs::msg::Pose & current_pose, const float current_vel, const float current_acc, + const PathWithLaneId & smoothed_path, PathWithLaneId & output_path) +{ + // no obstacles + if (!dynamic_obstacle) { + state_ = State::GO; + return; + } + + const auto longitudinal_offset_to_collision_point = + tier4_autoware_utils::calcSignedArcLength( + smoothed_path.points, current_pose.position, dynamic_obstacle->nearest_collision_point) - + planner_param_.vehicle_param.base_to_front; + // enough distance to the obstacle + if ( + longitudinal_offset_to_collision_point > + planner_param_.run_out.stop_margin + planner_param_.approaching.dist_thresh) { + state_ = State::GO; + } + + switch (state_) { + case State::GO: { + if ( + planner_data_->current_velocity->twist.linear.x < planner_param_.approaching.stop_thresh) { + RCLCPP_DEBUG_STREAM(logger_, "transit to STOP state."); + stop_time_ = clock_->now(); + state_ = State::STOP; + } + + insertStoppingVelocity( + dynamic_obstacle, current_pose, current_vel, current_acc, smoothed_path, output_path); + break; + } + + case State::STOP: { + RCLCPP_DEBUG_STREAM(logger_, "STOP state"); + const auto elapsed_time = (clock_->now() - stop_time_).seconds(); + state_ = + elapsed_time > planner_param_.approaching.stop_time_thresh ? State::APPROACH : State::STOP; + RCLCPP_DEBUG_STREAM(logger_, "elapsed time: " << elapsed_time); + + insertStoppingVelocity( + dynamic_obstacle, current_pose, current_vel, current_acc, smoothed_path, output_path); + break; + } + + case State::APPROACH: { + RCLCPP_DEBUG_STREAM(logger_, "APPROACH state"); + insertApproachingVelocity( + *dynamic_obstacle, current_pose, planner_param_.approaching.limit_vel_kmph / 3.6, + planner_param_.approaching.margin, smoothed_path, output_path); + debug_ptr_->setAccelReason(RunOutDebug::AccelReason::STOP); + break; + } + + default: { + RCLCPP_WARN_STREAM(logger_, "invalid state"); + break; + } + } +} + +void RunOutModule::insertStoppingVelocity( + const boost::optional & dynamic_obstacle, + const geometry_msgs::msg::Pose & current_pose, const float current_vel, const float current_acc, + const PathWithLaneId & smoothed_path, PathWithLaneId & output_path) +{ + const auto stop_point = + calcStopPoint(dynamic_obstacle, smoothed_path, current_pose, current_vel, current_acc); + insertStopPoint(stop_point, output_path); +} + +void RunOutModule::insertApproachingVelocity( + const DynamicObstacle & dynamic_obstacle, const geometry_msgs::msg::Pose & current_pose, + const float approaching_vel, const float approach_margin, const PathWithLaneId & resampled_path, + PathWithLaneId & output_path) +{ + // insert slow down velocity from nearest segment point + const auto nearest_seg_idx = + tier4_autoware_utils::findNearestSegmentIndex(output_path.points, current_pose.position); + run_out_utils::insertPathVelocityFromIndexLimited( + nearest_seg_idx, approaching_vel, output_path.points); + + // debug + debug_ptr_->pushDebugPoints( + output_path.points.at(nearest_seg_idx).point.pose.position, PointType::Yellow); + + // calculate stop point to insert 0 velocity + const float base_to_collision_point = + approach_margin + planner_param_.vehicle_param.base_to_front; + const auto stop_idx = run_out_utils::calcIndexByLengthReverse( + resampled_path.points, dynamic_obstacle.nearest_collision_point, base_to_collision_point); + const auto & stop_point = resampled_path.points.at(stop_idx).point.pose; + + // debug + debug_ptr_->pushStopPose(tier4_autoware_utils::calcOffsetPose( + stop_point, planner_param_.vehicle_param.base_to_front, 0, 0)); + + const auto nearest_seg_idx_stop = + tier4_autoware_utils::findNearestSegmentIndex(output_path.points, stop_point.position); + auto insert_idx_stop = nearest_seg_idx_stop + 1; + + // to PathPointWithLaneId + // use lane id of point behind inserted point + autoware_auto_planning_msgs::msg::PathPointWithLaneId stop_point_with_lane_id; + stop_point_with_lane_id = output_path.points.at(nearest_seg_idx_stop); + stop_point_with_lane_id.point.pose = stop_point; + + planning_utils::insertVelocity(output_path, stop_point_with_lane_id, 0.0, insert_idx_stop); +} + +void RunOutModule::applyMaxJerkLimit( + const geometry_msgs::msg::Pose & current_pose, const float current_vel, const float current_acc, + PathWithLaneId & path) const +{ + const auto stop_point_idx = run_out_utils::findFirstStopPointIdx(path.points); + if (!stop_point_idx) { + return; + } + + const auto stop_point = path.points.at(stop_point_idx.get()).point.pose.position; + const auto dist_to_stop_point = + tier4_autoware_utils::calcSignedArcLength(path.points, current_pose.position, stop_point); + + // calculate desired velocity with limited jerk + const auto jerk_limited_vel = planning_utils::calcDecelerationVelocityFromDistanceToTarget( + planner_param_.slow_down_limit.max_jerk, planner_param_.slow_down_limit.max_acc, current_acc, + current_vel, dist_to_stop_point); + + // overwrite velocity with limited velocity + run_out_utils::insertPathVelocityFromIndex(stop_point_idx.get(), jerk_limited_vel, path.points); +} + +std::vector RunOutModule::excludeObstaclesOutSideOfPartition( + const std::vector & dynamic_obstacles, const PathWithLaneId & path, + const geometry_msgs::msg::Pose & current_pose) const +{ + if (!planner_param_.run_out.use_partition_lanelet || partition_lanelets_.empty()) { + return dynamic_obstacles; + } + + // extract partitions within detection distance + BasicPolygons2d close_partitions; + planning_utils::extractClosePartition( + current_pose.position, partition_lanelets_, close_partitions, + planner_param_.run_out.detection_distance); + + // decimate trajectory to reduce calculation time + constexpr float decimate_step = 1.0; + const auto decimate_path_points = run_out_utils::decimatePathPoints(path.points, decimate_step); + + // exclude obstacles outside of partition + std::vector extracted_obstacles = dynamic_obstacles; + for (const auto & partition : close_partitions) { + extracted_obstacles = run_out_utils::excludeObstaclesOutSideOfLine( + extracted_obstacles, decimate_path_points, partition); + } + + return extracted_obstacles; +} + +void RunOutModule::publishDebugValue( + const PathWithLaneId & path, const std::vector extracted_obstacles, + const boost::optional & dynamic_obstacle, + const geometry_msgs::msg::Pose & current_pose) const +{ + if (dynamic_obstacle) { + const auto lateral_dist = std::abs(tier4_autoware_utils::calcLateralOffset( + path.points, dynamic_obstacle->pose.position)) - + planner_param_.vehicle_param.width / 2.0; + const auto longitudinal_dist_to_obstacle = + tier4_autoware_utils::calcSignedArcLength( + path.points, current_pose.position, dynamic_obstacle->pose.position) - + planner_param_.vehicle_param.base_to_front; + + const float dist_to_collision_point = tier4_autoware_utils::calcSignedArcLength( + path.points, current_pose.position, dynamic_obstacle->nearest_collision_point); + const auto dist_to_collision = + dist_to_collision_point - planner_param_.vehicle_param.base_to_front; + + debug_ptr_->setDebugValues(DebugValues::TYPE::LONGITUDINAL_DIST_COLLISION, dist_to_collision); + debug_ptr_->setDebugValues(DebugValues::TYPE::LATERAL_DIST, lateral_dist); + debug_ptr_->setDebugValues( + DebugValues::TYPE::LONGITUDINAL_DIST_OBSTACLE, longitudinal_dist_to_obstacle); + } else { + // max value + constexpr float max_val = 50.0; + debug_ptr_->setDebugValues(DebugValues::TYPE::LATERAL_DIST, max_val); + debug_ptr_->setDebugValues(DebugValues::TYPE::LONGITUDINAL_DIST_COLLISION, max_val); + debug_ptr_->setDebugValues(DebugValues::TYPE::LONGITUDINAL_DIST_OBSTACLE, max_val); + } + + if (extracted_obstacles.empty()) { + debug_ptr_->setAccelReason(RunOutDebug::AccelReason::NO_OBSTACLE); + } + + debug_ptr_->publishDebugValue(); +} + +} // namespace behavior_velocity_planner diff --git a/planning/behavior_velocity_planner/src/scene_module/run_out/utils.cpp b/planning/behavior_velocity_planner/src/scene_module/run_out/utils.cpp new file mode 100644 index 0000000000000..1f7f6fa72a0a5 --- /dev/null +++ b/planning/behavior_velocity_planner/src/scene_module/run_out/utils.cpp @@ -0,0 +1,510 @@ +// Copyright 2022 TIER IV, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "scene_module/run_out/utils.hpp" + +namespace behavior_velocity_planner +{ +namespace run_out_utils +{ +bool validCheckDecelPlan( + const double v_end, const double a_end, const double v_target, const double a_target, + const double v_margin, const double a_margin) +{ + const double v_min = v_target - std::abs(v_margin); + const double v_max = v_target + std::abs(v_margin); + const double a_min = a_target - std::abs(a_margin); + const double a_max = a_target + std::abs(a_margin); + + if (v_end < v_min || v_max < v_end) { + RCLCPP_DEBUG_STREAM( + rclcpp::get_logger("validCheckDecelPlan"), + "[validCheckDecelPlan] valid check error! v_target = " << v_target << ", v_end = " << v_end); + return false; + } + if (a_end < a_min || a_max < a_end) { + RCLCPP_DEBUG_STREAM( + rclcpp::get_logger("validCheckDecelPlan"), + "[validCheckDecelPlan] valid check error! a_target = " << a_target << ", a_end = " << a_end); + return false; + } + + return true; +} +/** + * @brief calculate distance until velocity is reached target velocity (TYPE1) + * @param (v0) current velocity [m/s] + * @param (vt) target velocity [m/s] + * @param (a0) current acceleration [m/ss] + * @param (am) minimum deceleration [m/ss] + * @param (ja) maximum jerk [m/sss] + * @param (jd) minimum jerk [m/sss] + * @param (t_min) duration of constant deceleration [s] + * @return moving distance until velocity is reached vt [m] + * @detail TODO(Satoshi Ota) + */ +boost::optional calcDecelDistPlanType1( + const double v0, const double vt, const double a0, const double am, const double ja, + const double jd, const double t_min) +{ + constexpr double epsilon = 1e-3; + + const double j1 = am < a0 ? jd : ja; + const double t1 = epsilon < (am - a0) / j1 ? (am - a0) / j1 : 0.0; + const double a1 = a0 + j1 * t1; + const double v1 = v0 + a0 * t1 + 0.5 * j1 * t1 * t1; + const double x1 = v0 * t1 + 0.5 * a0 * t1 * t1 + (1.0 / 6.0) * j1 * t1 * t1 * t1; + + const double t2 = epsilon < t_min ? t_min : 0.0; + const double a2 = a1; + const double v2 = v1 + a1 * t2; + const double x2 = x1 + v1 * t2 + 0.5 * a1 * t2 * t2; + + const double t3 = epsilon < (0.0 - am) / ja ? (0.0 - am) / ja : 0.0; + const double a3 = a2 + ja * t3; + const double v3 = v2 + a2 * t3 + 0.5 * ja * t3 * t3; + const double x3 = x2 + v2 * t3 + 0.5 * a2 * t3 * t3 + (1.0 / 6.0) * ja * t3 * t3 * t3; + + const double a_target = 0.0; + const double v_margin = 0.3; // [m/s] + const double a_margin = 0.1; // [m/s^2] + + if (!validCheckDecelPlan(v3, a3, vt, a_target, v_margin, a_margin)) { + return {}; + } + + return x3; +} +/** + * @brief calculate distance until velocity is reached target velocity (TYPE2) + * @param (v0) current velocity [m/s] + * @param (vt) target velocity [m/s] + * @param (a0) current acceleration [m/ss] + * @param (am) minimum deceleration [m/ss] + * @param (ja) maximum jerk [m/sss] + * @param (jd) minimum jerk [m/sss] + * @return moving distance until velocity is reached vt [m] + * @detail TODO(Satoshi Ota) + */ +boost::optional calcDecelDistPlanType2( + const double v0, const double vt, const double a0, const double ja, const double jd) +{ + constexpr double epsilon = 1e-3; + + const double a1_square = (vt - v0 - 0.5 * (0.0 - a0) / jd * a0) * (2.0 * ja * jd / (ja - jd)); + const double a1 = -std::sqrt(a1_square); + + const double t1 = epsilon < (a1 - a0) / jd ? (a1 - a0) / jd : 0.0; + const double v1 = v0 + a0 * t1 + 0.5 * jd * t1 * t1; + const double x1 = v0 * t1 + 0.5 * a0 * t1 * t1 + (1.0 / 6.0) * jd * t1 * t1 * t1; + + const double t2 = epsilon < (0.0 - a1) / ja ? (0.0 - a1) / ja : 0.0; + const double a2 = a1 + ja * t2; + const double v2 = v1 + a1 * t2 + 0.5 * ja * t2 * t2; + const double x2 = x1 + v1 * t2 + 0.5 * a1 * t2 * t2 + (1.0 / 6.0) * ja * t2 * t2 * t2; + + const double a_target = 0.0; + const double v_margin = 0.3; + const double a_margin = 0.1; + + if (!validCheckDecelPlan(v2, a2, vt, a_target, v_margin, a_margin)) { + return {}; + } + + return x2; +} +/** + * @brief calculate distance until velocity is reached target velocity (TYPE3) + * @param (v0) current velocity [m/s] + * @param (vt) target velocity [m/s] + * @param (a0) current acceleration [m/ss] + * @param (ja) maximum jerk [m/sss] + * @return moving distance until velocity is reached vt [m] + * @detail TODO(Satoshi Ota) + */ +boost::optional calcDecelDistPlanType3( + const double v0, const double vt, const double a0, const double ja) +{ + constexpr double epsilon = 1e-3; + + const double t_acc = (0.0 - a0) / ja; + + const double t1 = epsilon < t_acc ? t_acc : 0.0; + const double a1 = a0 + ja * t1; + const double v1 = v0 + a0 * t1 + 0.5 * ja * t1 * t1; + const double x1 = v0 * t1 + 0.5 * a0 * t1 * t1 + (1.0 / 6.0) * ja * t1 * t1 * t1; + + const double a_target = 0.0; + const double v_margin = 0.3; + const double a_margin = 0.1; + + if (!validCheckDecelPlan(v1, a1, vt, a_target, v_margin, a_margin)) { + return {}; + } + + return x1; +} +boost::optional calcDecelDistWithJerkAndAccConstraints( + const double current_vel, const double target_vel, const double current_acc, const double acc_min, + const double jerk_acc, const double jerk_dec) +{ + constexpr double epsilon = 1e-3; + const double t_dec = + acc_min < current_acc ? (acc_min - current_acc) / jerk_dec : (acc_min - current_acc) / jerk_acc; + const double t_acc = (0.0 - acc_min) / jerk_acc; + const double t_min = (target_vel - current_vel - current_acc * t_dec - + 0.5 * jerk_dec * t_dec * t_dec - 0.5 * acc_min * t_acc) / + acc_min; + + // check if it is possible to decelerate to the target velocity + // by simply bringing the current acceleration to zero. + const auto is_decel_needed = + 0.5 * (0.0 - current_acc) / jerk_acc * current_acc > target_vel - current_vel; + + if (t_min > epsilon) { + return calcDecelDistPlanType1( + current_vel, target_vel, current_acc, acc_min, jerk_acc, jerk_dec, t_min); + } else if (is_decel_needed || current_acc > epsilon) { + return calcDecelDistPlanType2(current_vel, target_vel, current_acc, jerk_acc, jerk_dec); + } else { + return calcDecelDistPlanType3(current_vel, target_vel, current_acc, jerk_acc); + } + + return {}; +} + +Polygon2d createBoostPolyFromMsg(const std::vector & input_poly) +{ + Polygon2d bg_poly; + for (const auto & p : input_poly) { + bg_poly.outer().emplace_back(bg::make(p.x, p.y)); + } + + // one more point to close polygon + const auto & first_point = input_poly.front(); + bg_poly.outer().emplace_back(bg::make(first_point.x, first_point.y)); + + return bg_poly; +} + +std::uint8_t getHighestProbLabel(const std::vector & classification) +{ + std::uint8_t label = autoware_auto_perception_msgs::msg::ObjectClassification::UNKNOWN; + float highest_prob = 0.0; + for (const auto & _class : classification) { + if (highest_prob < _class.probability) { + highest_prob = _class.probability; + label = _class.label; + } + } + return label; +} + +std::vector getHighestConfidencePath( + const std::vector & predicted_paths) +{ + std::vector predicted_path{}; + float highest_confidence = 0.0; + for (const auto & path : predicted_paths) { + if (path.confidence > highest_confidence) { + highest_confidence = path.confidence; + predicted_path = path.path; + } + } + + return predicted_path; +} + +// apply linear interpolation to position +geometry_msgs::msg::Pose lerpByPose( + const geometry_msgs::msg::Pose & p1, const geometry_msgs::msg::Pose & p2, const float t) +{ + tf2::Transform tf_transform1, tf_transform2; + tf2::fromMsg(p1, tf_transform1); + tf2::fromMsg(p2, tf_transform2); + const auto & tf_point = tf2::lerp(tf_transform1.getOrigin(), tf_transform2.getOrigin(), t); + + geometry_msgs::msg::Pose pose; + pose.position.x = tf_point.getX(); + pose.position.y = tf_point.getY(); + pose.position.z = tf_point.getZ(); + pose.orientation = p1.orientation; + return pose; +} + +std::vector findLateralSameSidePoints( + const std::vector & points, const geometry_msgs::msg::Pose & base_pose, + const geometry_msgs::msg::Point & target_point) +{ + const auto signed_deviation = tier4_autoware_utils::calcLateralDeviation(base_pose, target_point); + RCLCPP_DEBUG_STREAM( + rclcpp::get_logger("findLateralSameSidePoints"), "signed dev of target: " << signed_deviation); + + std::vector same_side_points; + for (const auto & p : points) { + const auto signed_deviation_of_point = tier4_autoware_utils::calcLateralDeviation(base_pose, p); + RCLCPP_DEBUG_STREAM( + rclcpp::get_logger("findLateralSameSidePoints"), + "signed dev of point: " << signed_deviation_of_point); + if (signed_deviation * signed_deviation_of_point > 0) { + same_side_points.emplace_back(p); + } + } + + if (same_side_points.empty()) { + return points; + } + + return same_side_points; +} + +bool isSamePoint(const geometry_msgs::msg::Point & p1, const geometry_msgs::msg::Point & p2) +{ + if (tier4_autoware_utils::calcDistance2d(p1, p2) < std::numeric_limits::epsilon()) { + return true; + } + + return false; +} + +// if path points have the same point as target_point, return the index +boost::optional haveSamePoint( + const PathPointsWithLaneId & path_points, const geometry_msgs::msg::Point & target_point) +{ + for (size_t i = 0; i < path_points.size(); i++) { + const auto & path_point = path_points.at(i).point.pose.position; + if (isSamePoint(path_point, target_point)) { + return i; + } + } + + return {}; +} + +// insert path velocity which doesn't exceed original velocity +void insertPathVelocityFromIndexLimited( + const size_t & start_idx, const float velocity_mps, PathPointsWithLaneId & path_points) +{ + for (size_t i = start_idx; i < path_points.size(); i++) { + const auto current_path_vel = path_points.at(i).point.longitudinal_velocity_mps; + path_points.at(i).point.longitudinal_velocity_mps = std::min(velocity_mps, current_path_vel); + } +} + +void insertPathVelocityFromIndex( + const size_t & start_idx, const float velocity_mps, PathPointsWithLaneId & path_points) +{ + for (size_t i = start_idx; i < path_points.size(); i++) { + path_points.at(i).point.longitudinal_velocity_mps = velocity_mps; + } +} + +boost::optional findFirstStopPointIdx(PathPointsWithLaneId & path_points) +{ + for (size_t i = 0; i < path_points.size(); i++) { + const auto vel = path_points.at(i).point.longitudinal_velocity_mps; + if (vel < std::numeric_limits::epsilon()) { + return i; + } + } + + return {}; +} + +LineString2d createLineString2d(const lanelet::BasicPolygon2d & poly) +{ + LineString2d line_string; + for (const auto & p : poly) { + Point2d bg_point{p.x(), p.y()}; + line_string.push_back(bg_point); + } + + return line_string; +} + +std::vector excludeObstaclesOutSideOfLine( + const std::vector & dynamic_obstacles, const PathPointsWithLaneId & path_points, + const lanelet::BasicPolygon2d & partition) +{ + std::vector extracted_dynamic_obstacle; + for (const auto & obstacle : dynamic_obstacles) { + const auto obstacle_nearest_idx = + tier4_autoware_utils::findNearestIndex(path_points, obstacle.pose.position); + const auto & obstacle_nearest_path_point = + path_points.at(obstacle_nearest_idx).point.pose.position; + + // create linestring from traj point to obstacle + const LineString2d path_point_to_obstacle{ + {obstacle_nearest_path_point.x, obstacle_nearest_path_point.y}, + {obstacle.pose.position.x, obstacle.pose.position.y}}; + + // create linestring for partition + const LineString2d partition_bg = createLineString2d(partition); + + // ignore obstacle outside of partition + if (bg::intersects(path_point_to_obstacle, partition_bg)) { + continue; + } + extracted_dynamic_obstacle.emplace_back(obstacle); + } + + return extracted_dynamic_obstacle; +} + +PathPointsWithLaneId decimatePathPoints( + const PathPointsWithLaneId & input_path_points, const float step) +{ + if (input_path_points.empty()) { + return PathPointsWithLaneId(); + } + + float dist_sum = 0.0; + PathPointsWithLaneId decimate_path_points; + // push first point + decimate_path_points.emplace_back(input_path_points.front()); + + for (size_t i = 1; i < input_path_points.size(); i++) { + const auto p1 = input_path_points.at(i - 1); + const auto p2 = input_path_points.at(i); + const auto dist = tier4_autoware_utils::calcDistance2d(p1, p2); + dist_sum += dist; + + if (dist_sum > step) { + decimate_path_points.emplace_back(p2); + dist_sum = 0.0; + } + } + + return decimate_path_points; +} + +// trim path from self_pose to trim_distance +PathWithLaneId trimPathFromSelfPose( + const PathWithLaneId & input, const geometry_msgs::msg::Pose & self_pose, + const double trim_distance) +{ + const size_t nearest_idx = + tier4_autoware_utils::findNearestIndex(input.points, self_pose.position); + + PathWithLaneId output{}; + output.header = input.header; + output.drivable_area = input.drivable_area; + double dist_sum = 0; + for (size_t i = nearest_idx; i < input.points.size(); ++i) { + output.points.push_back(input.points.at(i)); + + if (i != nearest_idx) { + dist_sum += tier4_autoware_utils::calcDistance2d(input.points.at(i - 1), input.points.at(i)); + } + + if (dist_sum > trim_distance) { + break; + } + } + + return output; +} + +std::vector createDetectionAreaPolygon( + const geometry_msgs::msg::Pose & current_pose, const DetectionAreaSize detection_area_size) +{ + const auto & d = detection_area_size; + const auto p1 = tier4_autoware_utils::calcOffsetPose(current_pose, d.dist_ahead, d.dist_left, 0); + const auto p2 = + tier4_autoware_utils::calcOffsetPose(current_pose, d.dist_ahead, -d.dist_right, 0); + const auto p3 = + tier4_autoware_utils::calcOffsetPose(current_pose, -d.dist_behind, -d.dist_right, 0); + const auto p4 = + tier4_autoware_utils::calcOffsetPose(current_pose, -d.dist_behind, d.dist_left, 0); + + std::vector detection_area; + detection_area.emplace_back(p1.position); + detection_area.emplace_back(p2.position); + detection_area.emplace_back(p3.position); + detection_area.emplace_back(p4.position); + + return detection_area; +} + +// create polygon for passing lines and deceleration line calculated by stopping jerk +// note that this polygon is not closed +boost::optional> createDetectionAreaPolygon( + const std::vector> & passing_lines, + const size_t deceleration_line_idx) +{ + if (passing_lines.size() != 2) { + return {}; + } + + std::vector detection_area_polygon; + const auto & line1 = passing_lines.at(0); + const int poly_corner_idx = std::min(deceleration_line_idx, line1.size() - 1); + for (int i = 0; i <= poly_corner_idx; i++) { + const auto & p = line1.at(i); + detection_area_polygon.push_back(p); + } + + // push points from the end to create the polygon + const auto & line2 = passing_lines.at(1); + for (int i = poly_corner_idx; i >= 0; i--) { + const auto & p = line2.at(i); + detection_area_polygon.push_back(p); + } + + return detection_area_polygon; +} + +PathPointWithLaneId createExtendPathPoint( + const double extend_distance, const PathPointWithLaneId & goal_point) +{ + PathPointWithLaneId extend_path_point = goal_point; + extend_path_point.point.pose = + tier4_autoware_utils::calcOffsetPose(goal_point.point.pose, extend_distance, 0.0, 0.0); + return extend_path_point; +} + +PathWithLaneId extendPath(const PathWithLaneId & input, const double extend_distance) +{ + PathWithLaneId output = input; + if (extend_distance < std::numeric_limits::epsilon() || input.points.empty()) { + return output; + } + + const auto goal_point = input.points.back(); + constexpr double interpolation_interval = 0.1; + double extend_sum = interpolation_interval; + while (extend_sum < extend_distance) { + const auto extend_path_point = createExtendPathPoint(extend_sum, goal_point); + output.points.push_back(extend_path_point); + extend_sum += interpolation_interval; + } + + return output; +} + +DetectionMethod toEnum(const std::string & detection_method) +{ + if (detection_method == "Object") { + return DetectionMethod::Object; + } else if (detection_method == "ObjectWithoutPath") { + return DetectionMethod::ObjectWithoutPath; + } else if (detection_method == "Points") { + return DetectionMethod::Points; + } else { + return DetectionMethod::Unknown; + } +} + +} // namespace run_out_utils +} // namespace behavior_velocity_planner From b0ef8885f66202bb93e26cd70179b2c4354c6ba2 Mon Sep 17 00:00:00 2001 From: taikitanaka3 <65527974+taikitanaka3@users.noreply.github.com> Date: Wed, 1 Jun 2022 13:38:15 +0900 Subject: [PATCH 5/9] fix: plot for mpc (#1017) Signed-off-by: tanaka3 --- .../config/plot_juggler_trajectory_follower.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/control/trajectory_follower_nodes/config/plot_juggler_trajectory_follower.xml b/control/trajectory_follower_nodes/config/plot_juggler_trajectory_follower.xml index 06e34a91c4050..9aefdfa8fb8ea 100644 --- a/control/trajectory_follower_nodes/config/plot_juggler_trajectory_follower.xml +++ b/control/trajectory_follower_nodes/config/plot_juggler_trajectory_follower.xml @@ -126,7 +126,7 @@ - + @@ -256,7 +256,7 @@ - + From 2bbb23a02d548ccbdaced4008a947106ceaf972b Mon Sep 17 00:00:00 2001 From: Maxime CLEMENT <78338830+maxime-clem@users.noreply.github.com> Date: Wed, 1 Jun 2022 14:13:28 +0900 Subject: [PATCH 6/9] feat(behavior_velocity_planner): use grid_map_utils::PolygonIterator (#1018) Signed-off-by: Maxime CLEMENT --- .../include/scene_module/occlusion_spot/grid_utils.hpp | 2 +- planning/behavior_velocity_planner/package.xml | 1 + .../src/scene_module/occlusion_spot/grid_utils.cpp | 7 ++++--- .../behavior_velocity_planner/test/src/test_grid_utils.cpp | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/planning/behavior_velocity_planner/include/scene_module/occlusion_spot/grid_utils.hpp b/planning/behavior_velocity_planner/include/scene_module/occlusion_spot/grid_utils.hpp index 64f9d1d2c38b4..50f1842306b8d 100644 --- a/planning/behavior_velocity_planner/include/scene_module/occlusion_spot/grid_utils.hpp +++ b/planning/behavior_velocity_planner/include/scene_module/occlusion_spot/grid_utils.hpp @@ -17,8 +17,8 @@ #include #include -#include #include +#include #include #include #include diff --git a/planning/behavior_velocity_planner/package.xml b/planning/behavior_velocity_planner/package.xml index 16998b4f27f19..968cae55f15e6 100644 --- a/planning/behavior_velocity_planner/package.xml +++ b/planning/behavior_velocity_planner/package.xml @@ -19,6 +19,7 @@ eigen geometry_msgs grid_map_ros + grid_map_utils interpolation lanelet2_extension libboost-dev diff --git a/planning/behavior_velocity_planner/src/scene_module/occlusion_spot/grid_utils.cpp b/planning/behavior_velocity_planner/src/scene_module/occlusion_spot/grid_utils.cpp index 46f48b057ac3e..41df01b5e7b8c 100644 --- a/planning/behavior_velocity_planner/src/scene_module/occlusion_spot/grid_utils.cpp +++ b/planning/behavior_velocity_planner/src/scene_module/occlusion_spot/grid_utils.cpp @@ -68,7 +68,7 @@ void addObjectsToGridMap(const std::vector & objs, grid_map::Gr for (const auto & point : foot_print_polygon.outer()) { grid_polygon.addVertex({point.x(), point.y()}); } - for (grid_map::PolygonIterator iterator(grid, grid_polygon); !iterator.isPastEnd(); + for (grid_map_utils::PolygonIterator iterator(grid, grid_polygon); !iterator.isPastEnd(); ++iterator) { const grid_map::Index & index = *iterator; if (!grid.isValid(index)) continue; @@ -89,7 +89,8 @@ void findOcclusionSpots( for (const auto & point : polygon.outer()) { grid_polygon.addVertex({point.x(), point.y()}); } - for (grid_map::PolygonIterator iterator(grid, grid_polygon); !iterator.isPastEnd(); ++iterator) { + for (grid_map_utils::PolygonIterator iterator(grid, grid_polygon); !iterator.isPastEnd(); + ++iterator) { const grid_map::Index & index = *iterator; if (grid_data(index.x(), index.y()) == grid_utils::occlusion_cost_value::UNKNOWN) { grid_map::Position occlusion_spot_position; @@ -115,7 +116,7 @@ bool isCollisionFree( for (const auto & point : polygon.outer()) { grid_polygon.addVertex({point.x(), point.y()}); } - for (grid_map::PolygonIterator iterator(grid, grid_polygon); !iterator.isPastEnd(); + for (grid_map_utils::PolygonIterator iterator(grid, grid_polygon); !iterator.isPastEnd(); ++iterator) { const grid_map::Index & index = *iterator; if (grid_data(index.x(), index.y()) == grid_utils::occlusion_cost_value::OCCUPIED) { diff --git a/planning/behavior_velocity_planner/test/src/test_grid_utils.cpp b/planning/behavior_velocity_planner/test/src/test_grid_utils.cpp index a50831e65b210..441d6b94bbc03 100644 --- a/planning/behavior_velocity_planner/test/src/test_grid_utils.cpp +++ b/planning/behavior_velocity_planner/test/src/test_grid_utils.cpp @@ -99,7 +99,7 @@ TEST(compareTime, polygon_vs_line_iterator) for (const auto & point : polygon.outer()) { grid_polygon.addVertex({point.x(), point.y()}); } - for (grid_map::PolygonIterator iterator(grid, grid_polygon); !iterator.isPastEnd(); + for (grid_map_utils::PolygonIterator iterator(grid, grid_polygon); !iterator.isPastEnd(); ++iterator) { const grid_map::Index & index = *iterator; if (grid_data(index.x(), index.y()) == OCCUPIED) { From 9e846c684edc3913d75994c3d04e81b6194ca26d Mon Sep 17 00:00:00 2001 From: Takeshi Miura <57553950+1222-takeshi@users.noreply.github.com> Date: Wed, 1 Jun 2022 16:34:39 +0900 Subject: [PATCH 7/9] docs(intersection_module): fix intersection design images (#1007) * docs(intersection_module): fix intersection design images Signed-off-by: 1222-takeshi * docs(intersection_module): fix intersection design title Signed-off-by: 1222-takeshi * docs(intersection_module): add "Note" Signed-off-by: 1222-takeshi * docs(intersection_module): adjusted the headings Signed-off-by: 1222-takeshi --- .../docs/intersection/intersection_left.png | Bin 125810 -> 0 bytes .../docs/intersection/intersection_right.png | Bin 187554 -> 0 bytes .../intersection/intersection_straight.png | Bin 145895 -> 106738 bytes .../intersection/intersection_turn_left.png | Bin 0 -> 126706 bytes .../intersection/intersection_turn_right.png | Bin 0 -> 151299 bytes .../intersection-design.md | 44 +++++++++--------- 6 files changed, 23 insertions(+), 21 deletions(-) delete mode 100644 planning/behavior_velocity_planner/docs/intersection/intersection_left.png delete mode 100644 planning/behavior_velocity_planner/docs/intersection/intersection_right.png create mode 100644 planning/behavior_velocity_planner/docs/intersection/intersection_turn_left.png create mode 100644 planning/behavior_velocity_planner/docs/intersection/intersection_turn_right.png diff --git a/planning/behavior_velocity_planner/docs/intersection/intersection_left.png b/planning/behavior_velocity_planner/docs/intersection/intersection_left.png deleted file mode 100644 index 2dcb8f86919f89c49e56b13215bada162d0b4b7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 125810 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 diff --git a/planning/behavior_velocity_planner/docs/intersection/intersection_right.png b/planning/behavior_velocity_planner/docs/intersection/intersection_right.png deleted file mode 100644 index 03251cbb82376d200bcbf62e86a8761aa50d26d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 187554 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

P8rt*D5zK2^hcSJ;*LiGqUhN`J=7m;LGH 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%0D{Gp+P9B{G^M2)I=+E! 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 diff --git a/planning/behavior_velocity_planner/docs/intersection/intersection_straight.png b/planning/behavior_velocity_planner/docs/intersection/intersection_straight.png index 5cbd6262c57fc1c910a9c1a1af42deefd36e6a3b..958fa8b381a53c0687639a262eb0aeba66f9931a 100644 GIT binary patch literal 106738 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 z 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 diff --git a/planning/behavior_velocity_planner/docs/intersection/intersection_turn_left.png b/planning/behavior_velocity_planner/docs/intersection/intersection_turn_left.png new file mode 100644 index 0000000000000000000000000000000000000000..903be7504be7a7822511e0678597f53b3c4b0c38 GIT binary patch literal 126706 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�rZPwVvxs| z^T)PIiR7>}9ag7k&Q2pRy;&%O_WiU+1ZyA1L}Y_@avw2NDJl!{a@2$>r)=ozi(V~b zpJ3671wb)uy1(}gecSgf9EqYSsQ3ocA~Z11BGI9bg_u;0Kuk%DJV7u)f0?k2KX^XjUs?^%YPk63 zryl>trE=Wq>54-q^*~ye2&Bh{k5%wF^zx^+kIp;gu#ZLy2vrT2?QK039{l?~TAOTF zj}h-F-k2ZrF=`(cwKukvOCY`Hrl+rfzmPWaN8+%3p88JGmm!@cW<{~CG_5EuhaS)u z6GZU0aqus(b2ZT*1KGv+US_^QATy^3-s=8mCpyF)CRWsOGLPA?%yh<>))sIQzXQ01RJyFp5j<%qm%vY?~Zgl(&U)7SyYF>xVPiYfa~lFTA#qxi>=4Uf51+@Yv0AzZBW)c+ECRBA^DD>d?#w z_`}$e zo)(vr{T37|&e1Un;y+x+p%V`4Kp+0OS+8_Nv91FC{b+WIJ85%D&7PxiIC?5hq^qtr zhTisO60!O(XbAV3HXKwU9W+69=7x5IhU#deAA+Y4BqA_&SmWQwhKQhA~ zqzZcWXwC??@_TXT+14{HSzGW`Ll!itZfF%DmzByBNK(+4`&I2^xwvCHuTBR)MIp}X+uW9^8?t8o29Hb=3IQia(m zXJDbSBWY&eg=i;lSlVubJ+6m@h6H3de(`IS+Ydi)@v9ccxONHXR;o8sqj}^`CRU7~ zq0wb8SfY5~$GSyh?JU^8xXPoxjRroh&T;x`w;g1AncLW8)!Td|jPY#ZiG62|A`a!Y z49Lh?JBmwanw#SBmuk%lP6UC3iejGiPF-GYK>=!!Zb#lWLF-O`wP=x6vp`P8+P!hC zpZsK4M?cYuQ90r$&X)VN5iF2N8Ix-NG=jG9wuqKC)Ha;Vp>dBKEeP%l5E#_o7SJhI zLnbL#&3+@q{2(Z^OOoR0A|@ueue&+@xbPms7kh!g9_D+-mATqGfW3g6y8wqJfyeas zN8BCBKT`$xTGYQ(``-B2KO+ta4Q{jN3Lx|AluvyKmYhIWcKODm{Bvi*x-a)$`!2hy z+sYwIE53?-1gix~0*r)6om10eSxd|?^$shS8PFE9we`(ZIBMNC7~E!7f3nO65A0{h zrf{XX5nwz>WJ>X(zn5B6VqOQc(s1;$Q{iLHhcW!QC$1($hzt=M3Y_F8?$ai_`Fd3)4Q_2&)VChd?9qj)OvzLR_QGXpL zn6mo5&vcbAbQN2Q85wQ_gA;y{JJf1Cd3{|sJtJe-wAN`27duT#bGmue9wq=)6YF!g z(9^M#vQk~F+#w0!!4O8^F&?lw$o9!;&kYs1DNh@>Wd5h%UnCs|erzuVxxDz4(8TET)YkPaWD9X<_ zdT5Z29Hio`b!2_VrPbr#nvW*$M2HxlIs{S zPjNyrK|;vII`~~{Z0O(vH`G)o>VIMQBY<4&sr>bw-T0n4i2J(KGD&{@Fvf`0Bj56f zW;@TRPLdKT6s1)A+9)>FwjVX^Ldu+WQIeXVs6z92ZfemP6swWTu^#`yK#(EgGv%f^E;NwZ|e*C~6Mx8ZNvyFZsoEnFAi<3rUL+qomNkUfq zm|7Op^=|cY@&){n4thqF{eHtwGy>yy=^Ul^KtO;?T6U?2>Z%A|mxQnUrapT2x7D z+^xkb7m^v>kGecnXp+Rgz}SCu_RD?iPzjCp9^k!1`6#w}BN$}5B$>zL%rV~8;Zjk>Xy|y#Vn;N5PwrOS5FFwe4Z{Xq% z95PGST-ZP3#2OViAj;u9f!*XEi28GUCdD06|E)rgAhqQewEhO3BWoX=hZ#RtreIUJ zY)~^>%8p;>wGw2dUqtDf(L_tCM)4->;0pzfbM!Al6cu?u(RONjjE6k$piVPM3@Arg zg(&l691FWy$zm`r!l9?MJ{Uri#~bB6jyAGBqf_F@t5o&$jYh((zMMs{Gijgzs+%4& zDcbx79#A-9;KQ$GgclQ`x$o2{wl7E@l3bIteZp~^B@VzmI%^Ci{&@*aF2{jyF=V=u z-X{3v5FKqD`m6Eemjmi?X`(LUpt1I3)pg@**xMyJG(q-1CXs}j8P`jt+iLf)WmL*2 z-cv$wyvNf{Fg!K>AAD_z$nWC_AA=194}iS#69S0)o^X99>d4~1yP(L^-B(24 zHq*4I#j#VvcO~Y3O&KsZJ$EG2K9ClHBL8uf2z7LbIPATxQ?9_*j7t$N>aGMH>I)M1 zXtzDb%;J9j13GPS-?AZr^$+mIaD#vY_cbwIWFp(w$ACQtnKaX9@ zwYveo62#N%ta0P;J5E?sGhsIu6hy!XW)?7wiGE|ajL;hEOqTz8zPF#5PawrSdcdz< zu7(OrHEr-W0sRxp#|Um7p7F`#pW5Vjt3;7-;v{M8U79UJ-H-ffcdJ(Gk?HrlEa=YT zY5tQG=96R;R96GB15Hq`mwoa?^PT6ZT%o|9S^IBB%BidxQo$UZ`nPV-y?>n0&V-nZ zbqTzmP<{6?n6g7e!tQ6UQLK`T2XIUt+K=x5s;5oAyRtQRmJlog^2inPA^aqyy$EOL z#K;sIAe5+m`$(TUuv z$y#b44~nfV_8yk4LMKo$Y5rcqkoh&XFu^|!o2aQPE*3-HenQoLiaSNO=@D|`_geXK zE&6t?%_kvgs){JXiwqs`K|X=*pl~WbpKJ#;3)6ENoixNEuF#Lo5VGtThiZgp+L3Ah^&bSzpipinTPLuaqGu8P#?1gyjM4(7N z&`hyu$YM&tA&wS9OvYImEH7znTauFf^Rp+0ARAh^_UCnkZ{x+-v1!tHJpwZQfa-gA z)7h~Z*xqJStLq2wewgSBWo5_H@#RL+m%S%G$z4GUs0rR+AIPzvFGY~{?ypFpr3$Bv zwL-I7dRiR+VLx))!EZiC5eYrNe3mo{DmzJRXFKBW>&Kg@jCGUr-Rk3g7T*dt}35UuUao(x>13%5+mX3ss&{V{}58Auyt z1K#du)@@6jn3!m`{WX*b{p`*^A?6vvk&yNPwuqFc2eI(GeUEHC+%hD=0k(L19|AN} zSZk^%kj*2g&PR+1ZcyG{uPETwp#;?fJUrebe*JPX39d1p`Ym7^J~VsSs99*mFu?+S zZZwdJvylpE>78Rhet0Z26ybiIsr&)zWp=l7NBVBZpTbIkeDoG!(D$1?mk0TX2L%4| z9RaPm;LyE&c>TWP9^7%?j_JSl#{Jn!-s20%YSeTX7ETVWD_$WqEF*(owcJqvoCuXE zV*P+PC*y#9hTj7AP)lCzYG7(%%kUIhOrg5V%(f(9im!$R*f8dTBU!iyt?SXYZD+^3 z1>YdC{2NU(GJvLAHO4^^0lF-Wz9z<_-^iM|vs}T_(`Do-aWSe+BlO z(JB*bQ1dEd$Sis3md-tRH1~7|KvN!&_Q#9bJ#VStlfHzU zpPvgXwhZIFM}QU$3d1BP>#(u6zbx#uBM9Yt6_%6?h5B^^Q1My+xnGP!(QhBJ{zf_h zW>y$gu8gIr3x64Rk#S9y+%xyjM_Ci=ldv0vvwhtH1p`5 z`5AfBvCo8Vx;rfG0ZEZ^&i>8OOmAa5G_Po8`8ZZd>GxzuG~nmAtk5S*VxloFq+r(OzGh3WB`H--DD-Uenp=f~?q zQ1P!S+}f?&*JJW!Vqp3F7N`0n@a>LIB8KM9$M+UzUFkRY?*)+%*_>)Vam8RXlRr83r$QJ z1uO}9n-s*s%s;8x2zd^`$-2g`ngwG=T4SPm9SVme%40c$cDy_e(>iJQiVZ*T|8Q6^ zTpXXB?d=XHwC%CjHCwEpLhCEiD`&TrTu??SLs{WIIy6PRy}kYB?oRg_jD3k6B;gRX zlSFhd&W|yB+$&2>!h-~73h&RAZ<^gGgDp?mR@!Xw;3Ly&zXc0zQJK9}-l|rh)?CqN zcH^X!4Un_5V{;$@8P8OxK~oKFZ9BFbAP|V=5h>SP^Q)vS-T|xUvX%^8rLfEKY;a7J zKc?4?{Rhm!CZou3hpuJ@ey{Qx4~Q zDSD>*`u+g{rIqs&f4=M;>-s}cB753yDyqW{2wYM0!HjFh9ps=_%1jM$OLs4OvA#Xb zI(|ur!VU6!9MzkE(*L>&v@HFo{>Hz zPIfgsVqtn&>>pXm?rTuu`QCIWOnXty-Yt6|Z;3+fIMGBM*~EoY%|F76SFNMe^l{UejsO;L(6okNgb?ronGa4Cw;aE2$+QlXr$!U9=P!6U zvUX)S3FJ`JTu5?@mL_9jBdWQRSSIPyRt#1V*1X;k-9B7fIs4(FVOvH;oRwOXYJ!JJ8_)#MB2rsVRoWI`y)GZ)vQ7WkxuZE;YJ2d zvYTC+>5fqyshj0vAptIL#aq9&6SXK;#R*%j59Qq*?_92PNY>yoi1| ze2^A$+me3Bz4k97)>+F$Z*d;5e;hjXd$G?AAGb59KOya+JV;$6eXsAOFMW5T%lm`~ zU{3QS#^W++DBk3aSbvL#z3>~nsYJ_e=66){yxUHqFJ5P6Sxno?Y_+Tz%B!d+b&JmV z6aI6o?j+pBY@n|p@5jM7a^{Y+op--VVYuNMFr_QVZkUS7u~x@Um!8T|=!E!^L`YbT zz_R+wA zi&--^dZfh(QhdE;_;exUg2CJfgSRUAKi6)kw^i?NsJbF6LFjk)9jXfd&(+Mz*!1tg z|GCB}{_p!GB~4@B+fx1a;*v$+`|prA!aso-{~a=frq-?azjH_$BbIE^{dWjw5cK@_ zf5)VW{qHnGEm#}}o=u)odA&5VM1MQzTY6DgXYyv2GW`?=(pzvUs*Ex7tL*wEdXWbC>UYIm zx?g|Qw-Bx4;q}O_Txo5xM1Ri(CW~Luc`RyOs&U1W$H!-=Yp6YKKUutT3nRWtU3^>s z)i&3DejdDw^sps=7HyB5ceCBPyoCUUiDkUgU-g!Ta7I@wvNUq*jS!T*uL$qRb525| zWSV#93agcsL`QM1)xl%(IKsIKAUC(#w-@v}qj-RebU)}C+%LcM(BlHoXx`0iN^<1x zXpNqKHeTaGmK&qb^iH>V1$&H% zM&9Z|D()-H?zj6zMYW_BigN6lf-82a(XAo+2TQ5^p0dWRA0b27>-VqY-Y-BYUOyYu(QBtg5esiHhij!yKaQTD zC?90GN#>5c#?9}PLb1ES9PMit_^g#V6&x%YO^E4raK8cixFD0wesZr zsYjX&(IqJ$_X2vF0AG6k_^wFvR>SIt!$mq&oiXf58iyGkf(Q`SFyp%aUF7PnT3Pa!>3bISJ5jHs}=6{5bD z6~r9Zw#6+Xz0bR@E$_MV0HbftNEsa){mG#7{cvHcPaRbuw|?JEU+){H3eb+CO1xuP za@<2ZFhvLRDl5t463KzR2{G2ja~C$oqe!hwkRLnW$OXwZ`fLcW?S>-H6Zj+n!P`c_ zrMsyEkE_}Y&Fl57vgrG&t(jKy=T#V9;Z^>@R_?+Xzt%W(Hs`9_kalZN{X_R7!`m>8 zTJKv%UcVdjx}ffxw?XSaw%b$?PwCew7gpM^fV{y1 z$$pM-zy%WhlU8N$DLr5HTX#9hljP1z&3d%ypRkp!HIU;&N0jyB;UXpzXarObfCASgo~AzQWydm49D zCgZ=JV&_Z%;AUYGV#X<7H`4NpwXtZBaCc4r?Sbzeh49AOSbkPH?tXpkag3`Ib7-~B z`n{j)Cnk~RprVDs%C+U{Uon2AW`CZ9>{Chontm0OBWPXtB}VD3^yHT-U!KCRttxk3 zqMaPCEG$35XLNGS_Esu@Hf)u`zTlFC^pCpVB(xrtbWTB(p)80#$8=}JRZA#afAIU- z=`;U>#>o#CKc*0ma%P=J8s)cMi%o7J^~&v|oaCk2hR@GM_r1fUfaNC|AY@xExxTUX zbO!V_ItKi5kfV^3BiHD(wt%tF=yb~NFLL+RpHSxR#Pn~$Cpvt&C<5u*r=;IU?P^?qEYa&dMH!W&nPUv${`U3|`+{ zkvb1up;2GEYrK2%=Lyqn_o{YZ1%TJybM(|Tekp^(yoo?(Jd0m_zG-;bc^wRrP`t+gXbSFGLj^vK}eEJwdT0~J>* zrRLZOWM5@B>yzUfXmWOB|C6Z$sVHYJe4gI@iI~{q2Eq*~f9N$6cu9cL;Ceybgq4ZK z!qENpudRd)9T}?yQ`Z-Z*Lr-mohi_H$)Hl|7we`T8V;YD3(H3#3!!Yt;`?QMHj}jt z-L(M7jVNF|;i7DC`B|g-oC)a&&J*H|5aWBsUDSEUVEZ^j!b+~>=Oxk^A|s?_q1PM| z1m@WWr&1OSc66HX+m`)!<_5iNsU`c|ZOR%AL}`8v4_k=V?DHXc7-nftXZf|_E9~bkF%rwmlUbB?1ZcwT3Q~a)&iCd2c`;d5R5Bg|e zz&X6Nbya~y^rsfzjBoK9YgyO(_t{RNVB)*>Uis+yQnbfFHL@FBeUkBP@%mb{c-fVj zPkU_Ki$6c(V2|JG2OE_puiL7)m*QFrh8vx}SRRR~-C@iARwbr@w0=h%Eu`UeOf{2$yt8$`95$1i&GMl(9gpMmkY_kRHg6^+xmh+5^ z#~kd(0k_=GZ*35v#g0H1J%P^`@Hx~BDb_TNhS9G5m&0ijQ*=wA#N$)^9bx088k4$j z(ZWx|b%V#Vj&)YM(ng_)x_Z&PO2C1~=yeeRqBEWAU8xY#xTU(LU_jzG$;1x@c;3K1%#J z*KobcpRrOq-tx<);R)5N{CQDT=yJiTEZ?NSM%YmOX^QTInY9tU6?16{2f8>fWzB`( zzsnyp*6T=fENi{xi^|`gL{{$G;aux@_v`h%M+8?|tWO}eLM~-1cM!Q0ybE1BujiBJ z^8oKBEgmkR>a~_D4=b(^qytD`mgjYHXAAGK%jhzjn`7e zGQCV^$MP>Xx25?D(wg&LFPoDc8|iO#^&7+<%n|C#p>||d5@GjC4VW%JAbI7k#sBuN zY2WujAq=}-b0G&{h7?Uw)9yEK(!T}DH+~kGvFH!uTbv+wS(&1KwtkioDu1wlg?6Y~ zerk=Fzcqutecvacr)}1iOM6f6Lp0%zp?Vxkl(0i-1*vSy@7eR9Drk_=T%wW z+1NY(atkBmxm`@U+}@qs=)7DQWU9`zw60uNQ2Cv!cA0YJNoD=&zP#E7bWz*>+*

*<|>pNKjjWjaf-pdskKu_%RsPu(Xcfde(K0-q2>U zdwsZ8J1@B0a#~_XUX#y8Uem6pZ9^KNzH*l`KBlxZf%&ogENI1A5A;ds_6la@acUxN zr`9jWrm50=RJ3{qk8kx-NvEfGW6kB1T0K8 zCtJhhOtn^n(WG}dZ`Xd=C#KrvH<{%u`(d4a8XKJp^K2t4$98w=JjSdZXS_C^z$wAE zT!_x|z9(=!aBri1ZeU!5h$e-E4MSNtrA->5{gyQ%S~cJBwi!#h+{yLIEK<)F<-=xI zTanDVGXIt6J~s7>5Z%~Ut1#;mC_X(-ogFz`=4Ul*ZT)tc-+0z~emK-Ru4U>quT{NXNH{)4xAKp1l`XjX z6q{$|ESiKxXVv5*xh*e0Uo~9G%M>N%Cl$sLqhBNt4^Is=?EM{YdUfO$YM4=H8v%;w z)y?VU02qhIQUd~kjW%9x>w<4H0Vw3)RhjGLw@KEM^0#-aZ#{W&LVk6_f?D&76~0{0 z-H0bY>IPh+1XWtxL`{I5Yc>UTm85dW$6r8|jnRg$VCdR9ng(3a_bd-wmyeU7JSZrS z{5ZeiHLk7v!{l%HTpu=t`%^Qb@TZZ_p^xddmWywqguesh%-SX(?kFRJ$?p*i{KBz4I?6Os_O z=yeDZJaO>I39aW<_S^aB}hqMULI7*_)4n&a(UPkcOEu1yc*1L zLIl3ldhUi2<_lgYpM}tjjez9}Ia49Z=@9Dj-C$_LPVw3E$yvkwVsY#LV8pT$E%Boc zsjXJJyHe_y;#>*z<*)}<*4^o&qACnfZ4ajTYaov(=ar;YiuXEcy*%oy0v;J(Hgv7} zz4#V8R5$8o6<{dVC{xCVqVyE9SmSXZ(uE%Ce?>R1Qe_Y>E#sncQ`FB-eunFxNz z>+#P>J?dB2xo)}K-LF13cVfP(4(_sY&ujUi*$ulhtnD0`z6D`l?_I0Cr-s(DIy;k! z{Ifd`^H!U)@mQ$u_cog2Cmsk}Viw+XXT=65UmsyTv@C#tn~D(Uffke&r-PMc!fZp< zk(qS1uh9W1UWd_wOWc;3?hcQP$x=Jzu4?;>OoQfr#ZI#%)HY?1gz{UzN)riR(N>5f zYM7TN|GZNwoG9xIcv9tl685oGh%PgS=55H6ccU{s#;xJ%rngkH-IK=(qOT)pu-mjU zCpMT7)*z~U5XKwpXMhRvhF}R--c0&DybF82DkFbh4IpdLvoL$SQcXCoFV}x;XZL)J zh<=u-uUq^QNA|^}X?`(pTVi1uGxp*z*XJ;XLD@<^ZJqP-3!ku$FyPId2^1~pIqGB5 z5`EuI&7}D@MV9?GKXWSR7@3`d;qb6&@S_=nUlAl0(%g}V4pckRmy(k_ zitmx@g66{l@Od4XwI)Ktq}wll@0B%G#rN^bIopbqtzkzj;CL! zFgp8vr!IZ7eRHd)NXzSn?q z78NoE3Gc{WnJ0d4dxUa5B9Gy#&uQK(9Qr&uIqva68*AM&erpoyg)e1O_-eo=A_;(p!E7$qOe6@o9r~fVUHSyO_GKMCd8!^{A`QzjdrhX zZ9aW28LO8#m|f;j&GtMkAXCZ`>1v5SkUozYy-7-$ar!W?aQBQwp8uRgm4zAQdDfaT zEWn! zT#s-FwJ&2rldemZ0(E~3ox61=1nuO4{J*&Xe76YGqn`~{y`CVx)J*G86FMf*LJvYi z3~|H<4k(PI<&+JxFnL(MeTs%`YVx-6DTB_(0WB}#!zp0Wb$SyF-;M}8@}+@*4s}6t zAZWgGWgr~|*2Lq>^YfEZUSSRS&np~1&qvmVmtIPYcK$29`_aM0+bychRjB2q-92zY z62!-LFbq1?KQL2QTF!n!M@Zv*7VV59-Mh8ksEx28XRSV|1ukyb%aaUSA9=eY^lM-^ z>aX&&Dm!h;2=As;5-X0y48t@cLG zjcUGz90(*`hXSN^+@u}uw1xqLmZ~9{MkD*L|c?78gnniljP3P z@2ZfxlCl|q4&Y<7B@U+8&db9VeaP< zCx;}9p!s^HAGb%ZIKI7=i{uLqB5o$o@Ig5Vy1#~N6<8Uw>hu~^b5ERc3|^R(N^pXEXZIZ8D6gbms=|UG}vd#5w@!y^G^Y9)U%kX!KSvlEqMMA*ARXBf;Y1|--Zspgb>xaR? zbuP`76E^3(iX0!pS6+rw+Sc~`fK-vu=C-Yd_ zME&l%44tVTFQ|gknAJMxGv9z8(+&V=E4T9TmV~9Vp{D5&QN@+x_wI3Bll@p%E3^!H z@K~=LVV7I)KVVwwE)o~k6Om4foz6>)n{wzyLJQDLkF2=k*w|KRjutS9uVNHiqC5!* zuP%q*{6y*i%WW>O2U@^ndpW?fw&s$=Q+%USm7GgN75XTu!8Bw%S8t_3iMS9#@DM-& zXca)F_qj~JzQlZpGYK3r|Ml+K0i_=(fh?lwTsu~btcyWu*C4U<{q0z5c}o75klA(l zC#?nppqEVB?%$VdMomQ$mq|C`u1=M>gWv^SHNBtRP8?`1rfCOo^gUJW!DE#?7l6*a z+>XB)bHDU;9e4D}%0uZ)ey-{k$z-TvH**IsCSqR=i@_Tb8q3h^UeNC&9dgTA?X4Fh zkd@0ZUnI(83{$($2hA#B!WK!{w`wD2G@)NTm39WwJEUbnW5tK#|54u(ve6^1;rnr%PXoP!@t4MJERg5NQ zKQ9_7FB20kjP%fsGsJw&y1LiF{zEqmpJC_Nz87Vrcu=Tm-I9UFZrD{L{4Bo5A3Od{ zpDu~z`<%^I_e3)KIM46mC9zVwfpFbLNyqG)cwM04pW4n{K70{9b_m6oA7mkPpI1vV zNcYi-MF(QNwJs7;KMIl!6(tO%Ffs@$>K`Uz4u3(Auerc75V959{}q_`%y^~z;WCFv z-0-hb&8;~RYGa4z;c=K_F-|q=`xngbyE#SJf+wM(qhgEi&0F2=J5AzV3jDu(in&3j zUu{I~az-$DH|>DbM;^BMz=(3&{Hsrj9=4NrqT=Q&vV%BBe;agQN*aACmMk)B;*W55~4wxT+xD0lVOwV(c5;%%)y__~K zn%uOz9ZtPI0xfOu~d(&6d;FzO#QScY9OGaL3?4;;SL(?`{Kvc|=dIA7B?babjmm?$MDn#3%M}#35?hA9kTz%iUrfxPcPH5^v=7lNWW=+;f;07T5{OPCtf= z9V!+gE={o0B0dDiz{{r8R7FZ|t)af7+Rf)=Y{a`+c&3^+2z^dRGSmv#l3)pj)7|xK zBY0^FT%9RURNyC-ejo_D{DgxhZ2QM`Nq>%q;rc^*f6cn*CS^-J*N9HdB&Z99}KHk8qK-x4ksQeSfv;NO%=fBbX*;oOKV{)qiFo%_Y?iPGnH*Bczt ziR}9lJS+8EUCi|F?wCaSiwBa9rASlQgaG#+m9(2&rI+N~UHYz6e^s&CFG3#C*^=uS zZOnfkjW*2f9oBUF&7ea9U?XzFE=w@`l_ijKaA4jIfN+24A{dCC%2>)h>l9#|5lP;( z;1yWCvJ;xP>&aH#+i#{%tfc2R^Hw&JIm?L4YFAVEeGe7m?k3yHmHbVxilE;L*KL6E zI7(+OimTro8|XfTs+kb>g!|4c^gK#6TjX z&R~0XNXzrVyU~ZeL?SkdZn08h(r*#XnfuVui@t4_@%7rUg=P`cL00=P?0TJQO0%Fy zM+?Q&{X#155{2Ozjs3d0V9%mzjdW|;^~r1= zIbRIg$=f*Tpl)5|W z2l0CVJ6A%Ve%l}vIJrU}KOd?fQ&p&g@vflsacPyv&r4)XC$n-RDH{{O0zjmV2l@jOWtT;qy z;z@W3PPyfi8d)hFEg&0qTCYPkhp$(1g^7TV&4V~m$`342L&7eK4!d?YV$T5x5}mAn zBM!t)-&8Q6{go~nP1=CpvL!dGHLK2gm7Fba*-vYGorEH$O_9{Y=ITxw3`vQmKb$Y+ zz2*}i2?CcFgf*-k&lO;XfhfBR9|kKWs=RZhHuxecDvUXd=X>nwmXhyDgQ|nmVB__K zrp#s~p2g_v0#SU-USvBKPrHu0+jg}KbmOa++7!ubzU$^^{fMcwKnTHl5@9zu9DYAx zLKX!^v``HLA}m!t>pwF4zhEE*R`YK!AWea2x6Z4(e7$DUwcu{p$?v;tcT+^`vr>n9 z+!Vwfmi9v^ZUi?)7#e8GcWIflG3ggR4pzTwGsRmEpqLeK$W+}D-4p9rzYv*12Cu4y8XY^Dld0Hbio0GP>A(tv2yBgW z!AU>bkZCQnTUPwQ19%!X0c=mOpwu5Wrpx40WHfpA(QMbq`?xd!6));jg>i1zA#p zX)^etKl%?K@1Yuv#v74ERht$g7Bnu0|F5-&6y&_PYAY&AbnBFXsp0?oMcBUH6k+Jv<@M1Tm zh8W=^h@{A!rnlc&{&M8Nmso9=ANcIYa4oMwI=n1Q(>t0)||<4L%( zi5{sOjm_)g;6ee&ytsywEFj8ln-IO4y*{NXJPq*zMLK|V3t8dKA5_i@BX)HJw*{~k zXrV1G6q=VJ2N2;ov+v@KDx)9DIT2wsNcc+JHr`CKE9J93Wt4stfi|+4L?Dj zq`^+QSp0e65O@DG&RGX`$rh5cchZ@h0u%4fgpL7}n>~^x`8gBh1Phk=ef{VoDtm=N z3SB%Qrq{5W0tHz6*roj{tPPi60O$rB|D#9Nl549als>oUwixpI6jGPsrCOo4?Qvf$de_zW4mZr%}0rcZI(4x6>?zU9VCO z35B%QWb1fCsM&zafyZMm|0O>{Qc0#EL)GzYQx?Fd-pL$!pRCU=`}Vr=*1lvgYY^y7 z?nHye-DEby`ayu&qgL|lh&Cmrq(o%aAivF6z>wB;E=2z7T+9cU}TONUIu8)?667{K(o(fMY6H$c-h^K>?&n{r&_is;&+c9KY$I- zu6F)?P#jj8nct^P02>0vQY6EkbnCXK$OAu(cK$hBRxV3al<0}gOG5r6KMzUN%;4J%xql&{k&UTd6WdKF1Pm#!_Ev(2@yAfd zW(Fr<$AP_65nJwehO#j}{tRjfsze*FsNq&gGMprbGG;}FNWQs-LJ0m+UxFKnv?1Rh z&Amg~i|*tEhy;OH`=&rR<%rogO|2(`k5&umO4SkS5)*3AU(%k?;-!od$1`zvB8iGI z%ov}FWZu;}B@-BYW#k)U>`7F?#Iqy$N8rTI|Pm+<^a0JHDFz>|@i8Qi08<2{sc0Z0yUXs;H{m@$c=udurzABV2- zh^H|rPZ2=R5nd~t<_I5*@W#7Fx7vJ#B*HAylAhhxu@TU$y0F{hbY;qkm>;|{{sPR| zSr|&VkZp33(Mk#1B8z)`ML00I6%hkxUXq@Vuvcup26*9?tWQX!yJAp|T%I-*O5fjE zDy&9)H*$wGsgBP6Ui~@rY&_Z#L2lELxo##%Bw|hk)X0kzHnik6U$z#aR|m9YAgq z5;2TdIOOVMzJ}D|kZ8sIxQa~6Lqt^+LH@i(rl9FQc3@~xjvTSVPv7PlvbK8%d?Yny zN1fVv;Pb5RBDEyDHJTW!)rb{{bekX&S+~{GkRJ$tZfd#)>u=e=!-@??@{@nW{Flz|!gf*3W2)M`Dwa z$@-@H8R3RYB2hp-f_#g*lwMc|>h~nH<7UWY*>53(_E=}z&E0e_DQsBcRLI5iyR`9Z zp>!I3B*Zm9*Ou;QHn|3enRY)9Md|geEDqnUC=pQS)obOiEoS z@ww1_$tA$sG=qAFV&!UF+*{JXvlvnQTL-E99GXn$_%ng`Udh;Zz{R@T z!fAHybaPTMYeOo?K3*-qS{g@dK{^HI9t9v5_p-t6|+0^(9SWGj&=I`y<^b{x5 zdu|Px5PabLb*d0DgVLqD{`5@x6{J4LSUq(*4;ME{PHeOT`>1^j`FrBepfQ)2fPJgkJBN&(cu$# zjKlaG_}#kly-ZTJ5-a(hw5ji8Z8yVIY3B&5{-A1LDgS(dLE$ZLi537ootFp|-Fth1 zCM262e%`_bVHfcIxVJ~rkbxY+l0B|@I}O>(Kr1BTiBDM%?X=KdMHtrDZscZAwrZ`l zs8fP)C0cE}#W$ah;J(2`9nQL?4PUG3eQiV7V8(n#BLCK5fp*E%-`EwnKHoM}a6i*y z<4G_BdwhQjFJkvO4$6G*lyNpEG(DxeRt5^pf?_Bld(=WMs53Ff&w?GUx}R8;p3h?z z;vggY+(6+rmCOBJEs=s%d z7`UIrxDq_1{TJBjAe2@wG|sE`9q$=uDL!VL`<=#Z1%bMST%Jh`g)g8QI~^y{L8E1iY)vX`l$+WZW;+!d*2+KAfp0mwFmbTq^APf14E~L zyKO(9!|+Klkb`17PX@Mq5pQ&mhEggbOH>fpL8$ZZ+GW3t@@c-|chWebbll4~tfXHw z+>V+^RjdsePtjiie~v@%t6=bFIU=Wy|6{rTFAuubOQwv$W$u5H{$!koIU)KtP#=+; zXHk)B2N<^o!tv@C)up*;9S5hE+CH870B|;CLHo-qX19H|aY-inv1L6VWyq7jC2P^# zpFIo!KAzkfACr?ETl3cZW@=%}m|yEYJyGiZu*@NoT@$zPcvxOF2(6$6 z97&^$9l4e6dAEu&p|}Iy)<7Y{DG?saNaE#y&^U2#M{;83?Ep_xFTQEl-{Cj#qi7E< zFocNOM^4ZyTjYEf_Q_kl&FVi1GinB0eM>NdqiU6h^#L{?f$B|cNI>!;h%B!`EhylZIWYgeBd~C5Ho^1Z(n)g~yEHGK9ZLV7X8vjm&0~D0* zZPEQB?!UlZ3n5Q0QSSwriy#LJmGeUQ`0ru#YvM`Tl9vXkq=@n0N-stZtgBLSx-WNn-Z3ImjJsD34bn2Kik2&dh>W7>sGBm z#y_EG%Yq6GqJGn*it~yW-S>yiL(Ehh15VzB^oguRjGyQ?UU*i)beRYKGMg*jJkis(O1;} z@#DOX2P!o>Se^q%)KggJ+4Wrv5>;Km&3>lr0FDRGiQTUG9-16mT0 zWG(S9lDd}1@5}B581wf^q*u?GEn`8 z3&7An!X7A>rgv;l-ZTMKQSC>>I_vlmi`^$T0ds#k`y2;3&O=l^!Fo-vR2nt8LxyDm z1ATTtLhu4?H_FizrdlnBfg8~hn1$T9?T(882||A>mOk$;|BnHaT*DyeUsfUYJm6QR zaDs9vMA>hQ5LZn`Sus2m0D4Z;@?}&U9ar0v=;!T=G-12m2$tKQkhNt=Aflw2uZ20iM#^}?63xa9VY!1V0CW^tdzd5eSXN2u)!4Zj2_sJFSm((xF(U6V-@y`&NW@0RGiWHosZ1UZ ztom@=!CLuRS@_wAz!Xk-(++{WuA>RFwcU_@2F{K~fP2G}2chis*W3E>_|H)vj z_jm&taAaD6_1cR|O8%tuycstLx%KG1%%B`n;DTKLH!y1nGp{#HIhT)WbHxNHJUw2k z8%g?_@B3E6=o(yb%uQmeRpXhV_^-(;0BTQL$}LQaH)fa?qf4d`1lL_NI8Wns0DH3!Gk zowkFZojCmX(vZBRfOA>md{s8PQiWXX5nlF z1dp?!4{{>zrrsGK0B|M-Z(5Msi7|18_57G8D)47>96BU5~w)7uR z_CJX27pp-0e^S|hz}Zhb1_uM;>;p0m|&rHP(2Iig`72JOPHA6~5VPIZU>SDA>!{)y7m|6$n*hxqA>- z3+kqj4Da8PMfbDY8QrFgc2-uxKGwdX=ghT2zXr)Vde0@O9|{40eihbG`FbWN4~X3J{R?V{;?L8_RVtyBQVF> znZ&6S7}=2(% zq7Z_XulpLu?2hV%5;V|Cbn&~-eF*+c3FX&>d1rG#4Vj&mIDacQ+{nXkkzaaNc+76X zR#clUTUNF2X=OEYvokkPt`xKvNe&Fw_iqus_1%7T4qTrjX zF;I2Hm&|C6wkyNXNgZcqJ+`TD*2IDouzptwFhn0clLd^M)K%u~a{hK&<9!aaLC1B^ z)}2KG&f+Nm@uQ8iskv0@HyRZSlUQ3=V)O{tt}6G`)7CNY93Z3<=sf&SzHF$YT23d%jEQ{w`MlK~pX9%R924 zifSM3Pd z<0hJ^Q22y{_b(Hh;d**7vJu-%fiW&gD^kHGBw;6=h>Bh zv&`WaSpvS#qa~BEWkGqcMv$bNLMr5EXoBV%{d9rGQH>ZsIKlEV{c_Kkb{A*e?CIGe zUCo95lOlIr279c-aquTewG`mQG1Z{~HwqEPi2H(KM2GN?rZHS8ykZeQy%-1#$O+VN z=nZH*3mW9jt*ML_Bl;44t_0batvb}LJ+doQ@{@Lm`i(cfi6tM}i1{1>@~fS;t>WU3 zoafO=eO}g)Pchc1^(~J24H|lxS0HG~jO&a!GX-W%e?}(MCz1crO6>oO@!V;CP|-jY z;DUpL-);8=AWqa|%8Qr8QD4_@&Pw3%jH3InONwZOJ?v9^%2MuOMYHRW+@cZ}g?}G` zGD34Auv@nXu&Dw%dp&B2Qmx^xY=Yt_l&bCxCf5N~`* zQB!6E)155d0Ag`E&WbEyVG%t1=6HK}Ijt1&8*EUA^TV+RuK+mn{F5OuP=~v4WtpX8 zac*|vdByj1tyn7{$8I{*OG#lmKtR0Q9>ps|4Qq@Lj*7~k7rtZSN3$*J)BhUANf-uh z?_R6*zQoi;{eA))?oFDYpc?h=^e$IoR*V0=?%nof>vNjyLMPri(dzAuxr`T`#a&)( zU59?CW^B-9jOC?r>;yrS(7%u5{Slbc@%P4uz44liV_;C}c`woiIEdbugssj?(Gman z2VOq?PrSU8E6O@9l}xU(>x}T*^@%KsXn)j|V~L~-bHRt!@;*N2qX*zP`H^LLEp4oG zlcn$JnF-wO;(7Si4W9>Z$ZF8mMZqFn<7zfNQJ;q>Dn2^sg006rMn$K&^82?3GbJE} zjV`zO$qnmaz5iOLQTrs}y;)#SJa77%DrVTJ{(nG<-2*;(MXL#c_}G)>!PVb^4`TH9 zRGgiAWVo;}BfdQ$cN!mY!I(oDWp`72^q#m&uTQxY+>_~l&OjaS;KQ>!1kL|a;( zL7Q}&tu>$%YmZDM24?WeN#RK$+JWzBv^|U54v}+RiCCgDdVj)x{D6wuX-d+6SbB3r z_<&d&a3ks<%*67?!QWvEIUWd1?@g3JhM^n>&4m@KV`i5h%ZmIJWtE5aP2$YbRTg%J zovw|DVCI3rcF8WS;t%W}86S?pogQvzF%aeVpL^6C&bNSHX?s9ssBBo+Cw5?AHSGy7 z2i%k)YE4bBKhr^*RSJ|GoOMu{ko$oP7-oM5BAwIaW2Bb#TKn0F3BkX?n2hhT6XtSn zh5YMuL89~MEPvP~t7F{e2*VWZWmBAKSkfnFg;`}c!8v!GkyUg7l)(50e>*s@fhFnciW#xjUomI97Hc{a&I6hXi^||NgSJS8`%mwl}S$N4xZ&g!a?td8HAn zSw&_bxIZH-G;@d?t{*Z!^|AMEI!Q4<&lG>NfsXn}EeIPi#9${w>+yIP_`xC89m5eX zN?Be<`}?xU1yLlV3&Xo{Qd7@6ai0!I$EluQgl~W1MshYI7(4+O5s#9C=w54sdT^^9QX#IO~m{fJH2|RdKB%wN5E^a+n7u6 zzXHV;6sXkA7MpT^iVQs9C#o*|f+mQc&3_H=ZH5SzqED znWPARhtS$KJ2EY@l4Q}+fMnDNkKK9IFZ!lcqhnj+*eVbM&dAZPxSJtJ;@TkX&^sL( zqLl@q;{hmw6kPpV?Ih+P=XNBH-{AvjLkEpvSwUvR?Q{}z_do~|^*J;AKQiG>2%(RS zM!7a%_-cAKkz1xgfupP|$eTXbBsNCr7mz^I&glWh%K&R^kWd)yF%qZ74}?!EKxE=< zz

<)9Szp30M&brRkSaGiiCzmmPL12xt(^_1d&|nC?`FL#Xdp_IlTaN|KHX`s$M`SpxKl@Il`_E`V5I!u^8tV%WdF$ibd%Cd>! zK`WF{eaonwSDWWkXB)Dp48$`X{G=5UH}KhdH;vY7*~ey9kkyGrog@#@n-}(Ah6b|% zo+u77u7l(YacTJ}_RdPRTyJYs0n;~ih01K((%I`?Zx zOSeNrtw*hIp|J|BFpHmzw%@>H9s}nJ<%dY33HxyeUS-JdJjiMAHpM^pd`$%@Ru~D_ zB);-P(Z}B*O_2CqK)OdH?uyQ^TP`~H{qGhI@3#c$$EJptM*kurHCkX?PBT9oNV$tB z{{}S%;8w2;u-sVoGm;jU0eRg0TYy}y9KT0k-Qz%dLAxk;m<^SkCq;-QP`mHE_33;- z49+G5&$-^X%?lF#;{a+ziaHsjIwGedD{o8jC%Q$eML`xQ+_bW^O_JVuI^Q><2Llw} z7dA{x1;4UGfnOJlLYaTa9}OO^v;~_4z(AH@ku;8ZGbfr}P;BoMhfnTYy9TwOp=nhG zjG=m&G24((tJB+VJ7>X!#PVgo{09V2B_Q0V?`-(A4G54TdrN{=R~FHkBDyinbOVv!MtyNJ#%FPnRf?%Z!0(FH2#B+n}3k5 zmqt~;l1_Dfw6|KMYqeOJE=aolzxnuj{;c!Yxf;ra`O6_=O-rIoi0J`59?wL9OLd|h zAzQPN{v!c)`eMCS48gZx{9SVT%&o>Xq;23CXL0mbA&utCUZVGx0E$1zB4u14tikEq z0#{Otm;QI8ya}N7Zbz;wLwjd-3b9Zzr-7zL1aw+t%>FAnA7WDh+C5z`sz%fy$y@nK zE!q&DWYA3}zP>N_-Z;^s*FEhbb{1G^W$6pVMR|h0wN02sX1>(@3>ief~ zc+mPCp<`6IlV`55s2QMMTW`o{Y=YE8aHMYYA$_3u`&|U#^s2aWRo8YP^1>%hSxT`! z4<>jm-D@BpLE+p~{L32e1@wd4Z8*U%l+GPr2DjT$!1+)DP1&G#3Xyew5`BR3)lX6} zuHsaS`FUBweMrH6d-z!tqVq&-G3ztg?ik){&b_sP)l47FjDZ%-d72b?65UgIS0z+|4Mr0<&^OiG%Wo?O(z&B}&2FdPr{1P<`XQAH5lFn{q+5gN_7kau3}X-{^( zi{JgV;%OP4JXMa^Udp;Gj%21O$lGw`M%ZZsQ}Tg54VN(i2G?Iz))9d0V4y z%?QZ`FMP|Bb8~LZG`Zr4{`9hKl86B>t8MK6NZOx2SoLxU$CGimP5s4rr-cX~2YBNB zX2^H8kf`NZ^jqa1<2=(tIEexsco7Jkb9*eG3zsIbxCo%BPzmhFA1182vHPi6PzVa9 zkS56a5_>3eyGO~r20*XCiRQXLA-0AJ?%2Z?D$pc@zL8-Q!0=Xm<707-Mncj+lJ|)u zeQtzsOw(H^gF%Fj^Nbg{2}a+9wl(2IUn<~VNe?_Kg$|=~+xH3U<=GZM0~>TFW@jN_ z-;Zn03DmgyI#&Vl=7UJ~tl6~=7n<` z`c_Hy+KYT3S+7i?E3V3yD3ledEx+wkN(KzH&8V}zsaJnUy&7ET_=hiV1*4cVoRazM zL2#R+b1xkhQ`s@-!1UKqz)nBQzn76A3~L5oii7llySchkWIl2F@5`A3uAp|_5+GcD zgKdQx8qWjPW~3aTF_zmH)=h=P`IO_j4+8gs!$k{@Sm&f1xDZj`6`p!z$zB0bqmamg zH5#f98Y*WL9Ei}>u_C+rSV8VXz=63=BUMaO0rx|y#XF`s_x+buu2=xbD-G@tK3pc- z+$b5cR@8U>bV}1t;X_p_P?1~U2J8=6$+TU?Kz)r&dN*``#;H#E| zKl6ac|7?hdcD|{GI`s{>(?U&)NwB*k)MkbY_>98U1qhjTZC?N1g!Pl{7@4@69tzZ+ zVB@^t2wg-*k-Pv=JWt5ecs;&BQu{pOUmi~G>;JAbAIbmIYA⩔~qi6_Q#GI)v@pY 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

!Muw+1aca%;8P^6sJF3z|M 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 Date: Wed, 1 Jun 2022 11:38:57 +0300 Subject: [PATCH 8/9] feat(control_performance_analysis): add new functionalities to evaluate the control modules (#659) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Berkay Co-authored-by: M. Fatih Cırıt --- .../CMakeLists.txt | 60 +- .../control_performance_analysis/README.md | 87 ++- .../control_performance_analysis.param.yaml | 6 +- .../config/controller_monitor.xml | 534 ++++++++++++++++++ .../control_performance_analysis_core.hpp | 72 ++- .../control_performance_analysis_node.hpp | 43 +- .../control_performance_analysis_utils.hpp | 19 +- ...controller_performance_analysis.launch.xml | 8 +- .../msg/DrivingMonitorStamped.msg | 5 + .../msg/Error.msg | 10 +- .../msg/FloatStamped.msg | 2 + .../control_performance_analysis/package.xml | 7 +- .../src/control_performance_analysis_core.cpp | 354 +++++++++--- .../src/control_performance_analysis_node.cpp | 174 +++--- .../control_performance_analysis_utils.cpp | 2 +- 15 files changed, 1133 insertions(+), 250 deletions(-) create mode 100644 control/control_performance_analysis/config/controller_monitor.xml create mode 100644 control/control_performance_analysis/msg/DrivingMonitorStamped.msg create mode 100644 control/control_performance_analysis/msg/FloatStamped.msg diff --git a/control/control_performance_analysis/CMakeLists.txt b/control/control_performance_analysis/CMakeLists.txt index 0c877fb49063b..10a305e1f7dbc 100644 --- a/control/control_performance_analysis/CMakeLists.txt +++ b/control/control_performance_analysis/CMakeLists.txt @@ -4,6 +4,7 @@ project(control_performance_analysis) find_package(autoware_cmake REQUIRED) autoware_package() + find_package(Boost REQUIRED) find_package(eigen3_cmake_module REQUIRED) @@ -13,43 +14,56 @@ include_directories( SYSTEM ${EIGEN3_INCLUDE_DIR} ) +find_package(builtin_interfaces REQUIRED) +find_package(rosidl_default_generators REQUIRED) +find_package(std_msgs REQUIRED) -rosidl_generate_interfaces(control_performance_analysis_msgs - msg/Error.msg - msg/ErrorStamped.msg - DEPENDENCIES - std_msgs +rosidl_generate_interfaces( + control_performance_analysis + "msg/Error.msg" + "msg/ErrorStamped.msg" + "msg/DrivingMonitorStamped.msg" + "msg/FloatStamped.msg" + DEPENDENCIES builtin_interfaces std_msgs ) -ament_auto_add_library(control_performance_analysis_core SHARED - src/control_performance_analysis_utils.cpp - src/control_performance_analysis_core.cpp +ament_auto_add_library( + control_performance_analysis_core SHARED + src/control_performance_analysis_utils.cpp + src/control_performance_analysis_core.cpp ) -ament_auto_add_library(control_performance_analysis_node SHARED - src/control_performance_analysis_node.cpp +ament_auto_add_library( + control_performance_analysis_node SHARED + src/control_performance_analysis_node.cpp ) if(${rosidl_cmake_VERSION} VERSION_LESS 2.5.0) - rosidl_target_interfaces(control_performance_analysis_node - control_performance_analysis_msgs "rosidl_typesupport_cpp") + rosidl_target_interfaces(control_performance_analysis_node + control_performance_analysis "rosidl_typesupport_cpp") + rosidl_target_interfaces(control_performance_analysis_core + control_performance_analysis "rosidl_typesupport_cpp") else() - rosidl_get_typesupport_target( - cpp_typesupport_target control_performance_analysis_msgs "rosidl_typesupport_cpp") - target_link_libraries(control_performance_analysis_node "${cpp_typesupport_target}") + rosidl_get_typesupport_target( + cpp_typesupport_target control_performance_analysis "rosidl_typesupport_cpp") + target_link_libraries(control_performance_analysis_node "${cpp_typesupport_target}") + target_link_libraries(control_performance_analysis_core "${cpp_typesupport_target}") + endif() -target_link_libraries(control_performance_analysis_node - control_performance_analysis_core +target_link_libraries( + control_performance_analysis_node + control_performance_analysis_core ) -rclcpp_components_register_node(control_performance_analysis_node - PLUGIN "control_performance_analysis::ControlPerformanceAnalysisNode" - EXECUTABLE control_performance_analysis +rclcpp_components_register_node( + control_performance_analysis_node + PLUGIN "control_performance_analysis::ControlPerformanceAnalysisNode" + EXECUTABLE control_performance_analysis_exe ) ament_auto_package( - INSTALL_TO_SHARE - launch - config + INSTALL_TO_SHARE + launch + config ) diff --git a/control/control_performance_analysis/README.md b/control/control_performance_analysis/README.md index dbb0405590b50..bb698f9c9d497 100644 --- a/control/control_performance_analysis/README.md +++ b/control/control_performance_analysis/README.md @@ -2,27 +2,92 @@ ## Purpose -`control_performance_analysis` is the package to analyze the tracking performance of a control module. +`control_performance_analysis` is the package to analyze the tracking performance of a control module and monitor the driving status of the vehicle. This package is used as a tool to quantify the results of the control module. That's why it doesn't interfere with the core logic of autonomous driving. Based on the various input from planning, control, and vehicle, it publishes the result of analysis as `control_performance_analysis::msg::ErrorStamped` defined in this package. +All results in `ErrorStamped` message are calculated in Frenet Frame of curve. Errors and velocity errors are calculated by using paper below. + +`Werling, Moritz & Groell, Lutz & Bretthauer, Georg. (2010). Invariant Trajectory Tracking With a Full-Size Autonomous Road Vehicle. Robotics, IEEE Transactions on. 26. 758 - 765. 10.1109/TRO.2010.2052325.` + +If you are interested in calculations, you can see the error and error velocity calculations in section `C. Asymptotical Trajectory Tracking With Orientation Control`. + +Error acceleration calculations are made based on the velocity calculations above. You can see below the calculation of error acceleration. + +![CodeCogsEqn](https://user-images.githubusercontent.com/45468306/169027099-ef15b306-2868-4084-a350-0e2b652c310f.png) + ## Input / Output ### Input topics -| Name | Type | Description | -| -------------------------------------------------- | -------------------------------------------------------- | --------------------------------------------------- | -| `/planning/scenario_planning/trajectory` | autoware_auto_planning_msgs::msg::Trajectory | Output trajectory from planning module. | -| `/control/trajectory_follower/lateral/control_cmd` | autoware_auto_control_msgs::msg::AckermannLateralCommand | Output lateral control command from control module. | -| `/vehicle/status/steering_status` | autoware_auto_vehicle_msgs::msg::SteeringReport | Steering information from vehicle. | -| `/localization/kinematic_state` | nav_msgs::msg::Odometry | Use twist from odometry. | -| `/tf` | tf2_msgs::msg::TFMessage | Extract ego pose from tf. | +| Name | Type | Description | +| ---------------------------------------- | -------------------------------------------------------- | ------------------------------------------- | +| `/planning/scenario_planning/trajectory` | autoware_auto_planning_msgs::msg::Trajectory | Output trajectory from planning module. | +| `/control/command/control_cmd` | autoware_auto_control_msgs::msg::AckermannControlCommand | Output control command from control module. | +| `/vehicle/status/steering_status` | autoware_auto_vehicle_msgs::msg::SteeringReport | Steering information from vehicle. | +| `/localization/kinematic_state` | nav_msgs::msg::Odometry | Use twist from odometry. | +| `/tf` | tf2_msgs::msg::TFMessage | Extract ego pose from tf. | ### Output topics -| Name | Type | Description | -| --------------------------------------- | ----------------------------------------------- | --------------------------------------- | -| `/control_performance/performance_vars` | control_performance_analysis::msg::ErrorStamped | The result of the performance analysis. | +| Name | Type | Description | +| --------------------------------------- | -------------------------------------------------------- | --------------------------------------------------- | +| `/control_performance/performance_vars` | control_performance_analysis::msg::ErrorStamped | The result of the performance analysis. | +| `/control_performance/driving_status` | control_performance_analysis::msg::DrivingMonitorStamped | Driving status (acceleration, jerk etc.) monitoring | + +### Outputs + +#### control_performance_analysis::msg::DrivingMonitorStamped + +| Name | Type | Description | +| ---------------------------- | ----- | -------------------------------------------------------- | +| `longitudinal_acceleration` | float | [m / s^2] | +| `longitudinal_jerk` | float | [m / s^3] | +| `lateral_acceleration` | float | [m / s^2] | +| `lateral_jerk` | float | [m / s^3] | +| `controller_processing_time` | float | Timestamp between last two control command messages [ms] | + +#### control_performance_analysis::msg::ErrorStamped + +| Name | Type | Description | +| ------------------------------------------ | ----- | ----------------------------------------------------------------------------------------------------------------- | +| `lateral_error` | float | [m] | +| `lateral_error_velocity` | float | [m / s] | +| `lateral_error_acceleration` | float | [m / s^2] | +| `longitudinal_error` | float | [m] | +| `longitudinal_error_velocity` | float | [m / s] | +| `longitudinal_error_acceleration` | float | [m / s^2] | +| `heading_error` | float | [rad] | +| `heading_error_velocity` | float | [rad / s] | +| `control_effort_energy` | float | [u * R * u^T] | +| `error_energy` | float | lateral_error^2 + heading_error^2 | +| `value_approximation` | float | V = xPx' ; Value function from DARE Lyap matrix P | +| `curvature_estimate` | float | [1 / m] | +| `curvature_estimate_pp` | float | [1 / m] | +| `vehicle_velocity_error` | float | [m / s] | +| `tracking_curvature_discontinuity_ability` | float | Measures the ability to tracking the curvature changes [`abs(delta(curvature)) / (1 + abs(delta(lateral_error))`] | + +## Parameters + +| Name | Type | Description | +| ---------------------------------- | ---------------- | --------------------------------------------------------------- | +| `curvature_interval_length` | double | Used for estimating current curvature | +| `prevent_zero_division_value` | double | Value to avoid zero division. Default is `0.001` | +| `odom_interval` | unsigned integer | Interval between odom messages, increase it for smoother curve. | +| `acceptable_min_waypoint_distance` | double | How far the next waypoint can be ahead of the vehicle direction | + +## Usage + +- After launched simulation and control module, launch the `control_performance_analysis.launch.xml`. +- You should be able to see the driving monitor and error variables in topics. +- If you want to visualize the results, you can use `Plotjuggler` and use `config/controller_monitor.xml` as layout. +- After import the layout, please specify the topics that are listed below. + +> - /localization/kinematic_state +> - /control_performance/driving_status +> - /control_performance/performance_vars + +- In `Plotjuggler` you can export the statistic (max, min, average) values as csv file. Use that statistics to compare the control modules. diff --git a/control/control_performance_analysis/config/control_performance_analysis.param.yaml b/control/control_performance_analysis/config/control_performance_analysis.param.yaml index 9867e170e9adb..cca4a02653690 100644 --- a/control/control_performance_analysis/config/control_performance_analysis.param.yaml +++ b/control/control_performance_analysis/config/control_performance_analysis.param.yaml @@ -1,5 +1,7 @@ /**: ros__parameters: # -- publishing period -- - control_period: 0.033 - double curvature_interval_length_: 5.0 + curvature_interval_length_: 5.0 + prevent_zero_division_value: 0.001 + odom_interval_: 3 + acceptable_min_waypoint_distance: 2.0 diff --git a/control/control_performance_analysis/config/controller_monitor.xml b/control/control_performance_analysis/config/controller_monitor.xml new file mode 100644 index 0000000000000..c4247c3a9d0a3 --- /dev/null +++ b/control/control_performance_analysis/config/controller_monitor.xml @@ -0,0 +1,534 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + sum = 0 + sum = sum + math.abs(value) + +return sum + /control_performance/performance_vars/error/longitudinal_error_acceleration + + + sum = 0 + sum = sum + math.abs(value) + +return sum + /control_performance/performance_vars/error/longitudinal_error_velocity + + + sum = 0 + sum = sum + math.abs(value) + +return sum + /control_performance/performance_vars/error/longitudinal_error + + + sum = 0 + sum = sum + math.abs(value) + +return sum + /control_performance/performance_vars/error/lateral_error_acceleration + + + sum = 0 + sum = sum + math.sqrt(value*value) + +return sum + /control_performance/performance_vars/error/heading_error + + + sum = 0 + sum = sum + math.sqrt(value*value) + +return sum + /control_performance/performance_vars/error/heading_error_velocity + + + sum = 0 + sum = sum + math.sqrt(value*value) + +return sum + /control_performance/performance_vars/error/lateral_error + + + sum = 0 + sum = sum + math.abs(value) + +return sum + /control_performance/performance_vars/error/longitudinal_error_velocity + + + sum = 0 + sum = sum + math.sqrt(value*value) + +return sum + /control_performance/performance_vars/error/lateral_error_velocity + + + sum = 0 + sum = sum + math.sqrt(value*value) + +return sum + /control_performance/performance_vars/error/lateral_error_acceleration + + + sum = 0 + sum = sum + math.sqrt(value*value) + +return sum + /control_performance/performance_vars/error/longitudinal_error + + + sum = 0 + sum = sum + math.sqrt(value*value) + +return sum + /control_performance/performance_vars/error/longitudinal_error_acceleration + + + sum = 0 + sum = sum + math.abs(value) + +return sum + /control_performance/performance_vars/error/heading_error + + + sum = 0 + sum = sum + math.sqrt(value*value) + +return sum + /control_performance/performance_vars/error/tracking_curvature_discontinuity_ability + + + sum = 0 + sum = sum + math.abs(value) + +return sum + /control_performance/performance_vars/error/tracking_curvature_discontinuity_ability + + + sum = 0 + sum = sum + math.abs(value) + +return sum + /control_performance/performance_vars/error/lateral_error + + + sum = 0 + sum = sum + math.abs(value) + +return sum + /control_performance/performance_vars/error/heading_error_velocity + + + sum = 0 + sum = sum + math.abs(value) + +return sum + /control_performance/performance_vars/error/lateral_error_velocity + + + + + diff --git a/control/control_performance_analysis/include/control_performance_analysis/control_performance_analysis_core.hpp b/control/control_performance_analysis/include/control_performance_analysis/control_performance_analysis_core.hpp index 4ffcc63f81473..711301271cb53 100644 --- a/control/control_performance_analysis/include/control_performance_analysis/control_performance_analysis_core.hpp +++ b/control/control_performance_analysis/include/control_performance_analysis/control_performance_analysis_core.hpp @@ -1,4 +1,4 @@ -// Copyright 2021 Tier IV, Inc. +// Copyright 2021 - 2022 Tier IV, Inc., Leo Drive Teknoloji A.Ş. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -16,14 +16,20 @@ #define CONTROL_PERFORMANCE_ANALYSIS__CONTROL_PERFORMANCE_ANALYSIS_CORE_HPP_ #include "control_performance_analysis/control_performance_analysis_utils.hpp" +#include "control_performance_analysis/msg/driving_monitor_stamped.hpp" +#include "control_performance_analysis/msg/error_stamped.hpp" +#include "control_performance_analysis/msg/float_stamped.hpp" #include +#include -#include +#include #include +#include #include #include #include +#include #include #include @@ -31,24 +37,16 @@ namespace control_performance_analysis { -using autoware_auto_control_msgs::msg::AckermannLateralCommand; +using autoware_auto_control_msgs::msg::AckermannControlCommand; using autoware_auto_planning_msgs::msg::Trajectory; +using autoware_auto_vehicle_msgs::msg::SteeringReport; +using control_performance_analysis::msg::DrivingMonitorStamped; +using control_performance_analysis::msg::ErrorStamped; +using control_performance_analysis::msg::FloatStamped; using geometry_msgs::msg::Pose; using geometry_msgs::msg::PoseArray; using geometry_msgs::msg::Twist; - -struct TargetPerformanceMsgVars -{ - double lateral_error; - double heading_error; - double control_effort_energy; - double error_energy; - double value_approximation; - double curvature_estimate; - double curvature_estimate_pp; - double lateral_error_velocity; - double lateral_error_acceleration; -}; +using nav_msgs::msg::Odometry; class ControlPerformanceAnalysisCore { @@ -56,14 +54,18 @@ class ControlPerformanceAnalysisCore // See https://eigen.tuxfamily.org/dox/group__TopicStructHavingEigenMembers.html EIGEN_MAKE_ALIGNED_OPERATOR_NEW ControlPerformanceAnalysisCore(); - ControlPerformanceAnalysisCore(double wheelbase, double curvature_interval_length); + ControlPerformanceAnalysisCore( + double wheelbase, double curvature_interval_length, uint odom_interval, + double acceptable_min_waypoint_distance, double prevent_zero_division_value); // Setters void setCurrentPose(const Pose & msg); void setCurrentWaypoints(const Trajectory & trajectory); - void setCurrentVelocities(const Twist & twist_msg); - void setCurrentControlValue(const AckermannLateralCommand & msg); - void setInterpolatedPose(Pose & interpolated_pose); + void setCurrentControlValue(const AckermannControlCommand & msg); + void setInterpolatedVars( + Pose & interpolated_pose, double & interpolated_velocity, double & interpolated_acceleration); + void setOdomHistory(const Odometry & odom); + void setSteeringStatus(const SteeringReport & steering); void findCurveRefIdx(); std::pair findClosestPrevWayPointIdx_path_direction(); @@ -72,26 +74,46 @@ class ControlPerformanceAnalysisCore // Getters bool isDataReady() const; - std::pair getPerformanceVars(); - Pose getPrevWPPose() const; + bool calculateErrorVars(); + bool calculateDrivingVars(); + Pose getPrevWPPose() const; // It is not used! std::pair calculateClosestPose(); + // Output variables + ErrorStamped error_vars; + DrivingMonitorStamped driving_status_vars; + private: double wheelbase_; double curvature_interval_length_; + uint odom_interval_; + double acceptable_min_waypoint_distance_; + double prevent_zero_division_value_; // Variables Received Outside std::shared_ptr current_waypoints_ptr_; + std::shared_ptr> current_waypoints_vel_ptr_; std::shared_ptr current_vec_pose_ptr_; - std::shared_ptr> current_velocities_ptr_; // [Vx, Heading rate] - std::shared_ptr current_control_ptr_; + std::shared_ptr> odom_history_ptr_; // velocities at k-2, k-1, k, k+1 + std::shared_ptr current_control_ptr_; + std::shared_ptr current_vec_steering_msg_ptr_; + + // State holder + + std_msgs::msg::Header last_odom_header; + std_msgs::msg::Header last_steering_report; // Variables computed + std::unique_ptr idx_prev_wp_; // the waypoint index, vehicle std::unique_ptr idx_curve_ref_wp_; // index of waypoint corresponds to front axle center std::unique_ptr idx_next_wp_; // the next waypoint index, vehicle heading to - std::unique_ptr prev_target_vars_{}; + std::unique_ptr prev_target_vars_{}; + std::unique_ptr prev_driving_vars_{}; std::shared_ptr interpolated_pose_ptr_; + std::shared_ptr interpolated_velocity_ptr_; + std::shared_ptr interpolated_acceleration_ptr_; + // V = xPx' ; Value function from DARE Lyap matrix P Eigen::Matrix2d const lyap_P_ = (Eigen::MatrixXd(2, 2) << 2.342, 8.60, 8.60, 64.29).finished(); double const contR{10.0}; // Control weight in LQR diff --git a/control/control_performance_analysis/include/control_performance_analysis/control_performance_analysis_node.hpp b/control/control_performance_analysis/include/control_performance_analysis/control_performance_analysis_node.hpp index 9f051534d2972..a47ebc45b3a74 100644 --- a/control/control_performance_analysis/include/control_performance_analysis/control_performance_analysis_node.hpp +++ b/control/control_performance_analysis/include/control_performance_analysis/control_performance_analysis_node.hpp @@ -1,4 +1,4 @@ -// Copyright 2021 Tier IV, Inc. +// Copyright 2021 - 2022 Tier IV, Inc., Leo Drive Teknoloji A.Ş. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -16,12 +16,14 @@ #define CONTROL_PERFORMANCE_ANALYSIS__CONTROL_PERFORMANCE_ANALYSIS_NODE_HPP_ #include "control_performance_analysis/control_performance_analysis_core.hpp" +#include "control_performance_analysis/msg/driving_monitor_stamped.hpp" #include "control_performance_analysis/msg/error_stamped.hpp" #include +#include #include -#include +#include #include #include #include @@ -30,12 +32,14 @@ #include #include +#include namespace control_performance_analysis { -using autoware_auto_control_msgs::msg::AckermannLateralCommand; +using autoware_auto_control_msgs::msg::AckermannControlCommand; using autoware_auto_planning_msgs::msg::Trajectory; using autoware_auto_vehicle_msgs::msg::SteeringReport; +using control_performance_analysis::msg::DrivingMonitorStamped; using control_performance_analysis::msg::ErrorStamped; using geometry_msgs::msg::PoseStamped; using nav_msgs::msg::Odometry; @@ -46,9 +50,12 @@ struct Param // Global parameters double wheel_base; double curvature_interval_length; + double prevent_zero_division_value; + uint odom_interval; // Increase it for smoother curve - // Control Method Parameters - double control_period; + // How far the next waypoint can be ahead of the vehicle direction. + + double acceptable_min_waypoint_distance; }; class ControlPerformanceAnalysisNode : public rclcpp::Node @@ -59,8 +66,8 @@ class ControlPerformanceAnalysisNode : public rclcpp::Node private: // Subscribers and Local Variable Assignment rclcpp::Subscription::SharedPtr sub_trajectory_; // subscribe to trajectory - rclcpp::Subscription::SharedPtr - sub_control_steering_; // subscribe to steering control value + rclcpp::Subscription::SharedPtr + sub_control_cmd_; // subscribe to steering control value rclcpp::Subscription::SharedPtr sub_velocity_; // subscribe to velocity rclcpp::Subscription::SharedPtr sub_vehicle_steering_; @@ -69,33 +76,39 @@ class ControlPerformanceAnalysisNode : public rclcpp::Node // Publishers rclcpp::Publisher::SharedPtr pub_error_msg_; // publish error message + rclcpp::Publisher::SharedPtr + pub_driving_msg_; // publish driving status message // Node Methods bool isDataReady() const; // check if data arrive static bool isValidTrajectory(const Trajectory & traj); - boost::optional computeTargetPerformanceMsgVars() const; // Callback Methods void onTrajectory(const Trajectory::ConstSharedPtr msg); - void publishErrorMsg(const TargetPerformanceMsgVars & control_performance_vars); - void onControlRaw(const AckermannLateralCommand::ConstSharedPtr control_msg); + void onControlRaw(const AckermannControlCommand::ConstSharedPtr control_msg); void onVecSteeringMeasured(const SteeringReport::ConstSharedPtr meas_steer_msg); void onVelocity(const Odometry::ConstSharedPtr msg); - // Timer - To Publish In Control Period - rclcpp::TimerBase::SharedPtr timer_publish_; - void onTimer(); - // Parameters Param param_{}; // wheelbase, control period and feedback coefficients. + // State holder + std_msgs::msg::Header last_control_cmd_; + double d_control_cmd_{0}; // Subscriber Parameters Trajectory::ConstSharedPtr current_trajectory_ptr_; // ConstPtr to local traj. - AckermannLateralCommand::ConstSharedPtr current_control_msg_ptr_; + AckermannControlCommand::ConstSharedPtr current_control_msg_ptr_; SteeringReport::ConstSharedPtr current_vec_steering_msg_ptr_; Odometry::ConstSharedPtr current_odom_ptr_; PoseStamped::ConstSharedPtr current_pose_; // pose of the vehicle, x, y, heading + // prev states + Trajectory prev_traj; + AckermannControlCommand prev_cmd; + SteeringReport prev_steering; + + std_msgs::msg::Header odom_state_; + // Algorithm std::unique_ptr control_performance_core_ptr_; }; diff --git a/control/control_performance_analysis/include/control_performance_analysis/control_performance_analysis_utils.hpp b/control/control_performance_analysis/include/control_performance_analysis/control_performance_analysis_utils.hpp index de05ea3da63f3..7f982bd4aa9e1 100644 --- a/control/control_performance_analysis/include/control_performance_analysis/control_performance_analysis_utils.hpp +++ b/control/control_performance_analysis/include/control_performance_analysis/control_performance_analysis_utils.hpp @@ -1,4 +1,4 @@ -// Copyright 2021 Tier IV, Inc. +// Copyright 2021 - 2022 Tier IV, Inc., Leo Drive Teknoloji A.Ş. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -41,6 +41,23 @@ inline std::vector getNormalVector(double yaw_angle) return std::vector{-sin(yaw_angle), cos(yaw_angle)}; } +inline std::vector computeLateralLongitudinalError( + std::vector & closest_point_position, std::vector & vehicle_position, + double & desired_yaw_angle) +{ + // Vector to path point originating from the vehicle r - rd + std::vector vector_to_path_point{ + vehicle_position[0] - closest_point_position[0], + vehicle_position[1] - closest_point_position[1]}; + + double lateral_error = -sin(desired_yaw_angle) * vector_to_path_point[0] + + cos(desired_yaw_angle) * vector_to_path_point[1]; + double longitudinal_error = cos(desired_yaw_angle) * vector_to_path_point[0] + + sin(desired_yaw_angle) * vector_to_path_point[1]; + + return std::vector{lateral_error, longitudinal_error}; +} + inline double computeLateralError( std::vector & closest_point_position, std::vector & vehicle_position, double & yaw_angle) diff --git a/control/control_performance_analysis/launch/controller_performance_analysis.launch.xml b/control/control_performance_analysis/launch/controller_performance_analysis.launch.xml index dfec99db7d7c0..be2b30bdf1bf9 100644 --- a/control/control_performance_analysis/launch/controller_performance_analysis.launch.xml +++ b/control/control_performance_analysis/launch/controller_performance_analysis.launch.xml @@ -1,22 +1,24 @@ - + + - + - + + diff --git a/control/control_performance_analysis/msg/DrivingMonitorStamped.msg b/control/control_performance_analysis/msg/DrivingMonitorStamped.msg new file mode 100644 index 0000000000000..c53592bc889ed --- /dev/null +++ b/control/control_performance_analysis/msg/DrivingMonitorStamped.msg @@ -0,0 +1,5 @@ +control_performance_analysis/FloatStamped longitudinal_acceleration +control_performance_analysis/FloatStamped longitudinal_jerk +control_performance_analysis/FloatStamped lateral_acceleration +control_performance_analysis/FloatStamped lateral_jerk +control_performance_analysis/FloatStamped controller_processing_time diff --git a/control/control_performance_analysis/msg/Error.msg b/control/control_performance_analysis/msg/Error.msg index f63ed2117ddce..f689034f3d582 100644 --- a/control/control_performance_analysis/msg/Error.msg +++ b/control/control_performance_analysis/msg/Error.msg @@ -1,9 +1,15 @@ float64 lateral_error +float64 lateral_error_velocity +float64 lateral_error_acceleration +float64 longitudinal_error +float64 longitudinal_error_velocity +float64 longitudinal_error_acceleration float64 heading_error +float64 heading_error_velocity float64 control_effort_energy float64 error_energy float64 value_approximation float64 curvature_estimate float64 curvature_estimate_pp -float64 lateral_error_velocity -float64 lateral_error_acceleration +float64 vehicle_velocity_error +float64 tracking_curvature_discontinuity_ability diff --git a/control/control_performance_analysis/msg/FloatStamped.msg b/control/control_performance_analysis/msg/FloatStamped.msg new file mode 100644 index 0000000000000..5a609c9301a28 --- /dev/null +++ b/control/control_performance_analysis/msg/FloatStamped.msg @@ -0,0 +1,2 @@ +std_msgs/Header header +float64 data diff --git a/control/control_performance_analysis/package.xml b/control/control_performance_analysis/package.xml index 4b4d2f8e61c24..7c60e0a784749 100644 --- a/control/control_performance_analysis/package.xml +++ b/control/control_performance_analysis/package.xml @@ -5,12 +5,15 @@ 0.1.0 Controller Performance Evaluation Ali Boyali + Berkay Karaman + Apache License 2.0 ament_cmake_auto rosidl_default_generators autoware_cmake + builtin_interfaces autoware_auto_control_msgs autoware_auto_planning_msgs @@ -21,16 +24,16 @@ rclcpp rclcpp_components sensor_msgs + signal_processing std_msgs tf2 tf2_eigen tf2_ros tier4_autoware_utils vehicle_info_util - + builtin_interfaces global_parameter_loader rosidl_default_runtime - ament_lint_auto autoware_lint_common diff --git a/control/control_performance_analysis/src/control_performance_analysis_core.cpp b/control/control_performance_analysis/src/control_performance_analysis_core.cpp index 3a5f593818946..79e0ccd86dd26 100644 --- a/control/control_performance_analysis/src/control_performance_analysis_core.cpp +++ b/control/control_performance_analysis/src/control_performance_analysis_core.cpp @@ -1,4 +1,4 @@ -// Copyright 2021 Tier IV, Inc. +// Copyright 2021 - 2022 Tier IV, Inc., Leo Drive Teknoloji A.Ş. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -26,25 +26,52 @@ using geometry_msgs::msg::Quaternion; ControlPerformanceAnalysisCore::ControlPerformanceAnalysisCore() : wheelbase_{2.74} { - prev_target_vars_ = std::make_unique(TargetPerformanceMsgVars{}); - current_velocities_ptr_ = std::make_shared>(2, 0.0); + prev_target_vars_ = std::make_unique(); + prev_driving_vars_ = std::make_unique(); + odom_history_ptr_ = std::make_shared>(); + odom_interval_ = 0; + curvature_interval_length_ = 10.0; + acceptable_min_waypoint_distance_ = 2.0; + prevent_zero_division_value_ = 0.001; } ControlPerformanceAnalysisCore::ControlPerformanceAnalysisCore( - double wheelbase, double curvature_interval_length) -: wheelbase_{wheelbase}, curvature_interval_length_{curvature_interval_length} + double wheelbase, double curvature_interval_length, uint odom_interval, + double acceptable_min_waypoint_distance, double prevent_zero_division_value) +: wheelbase_{wheelbase}, + curvature_interval_length_{curvature_interval_length}, + odom_interval_{odom_interval}, + acceptable_min_waypoint_distance_{acceptable_min_waypoint_distance}, + prevent_zero_division_value_{prevent_zero_division_value} { // prepare control performance struct - prev_target_vars_ = std::make_unique(TargetPerformanceMsgVars{}); - current_velocities_ptr_ = std::make_shared>(2, 0.0); + prev_target_vars_ = std::make_unique(); + odom_history_ptr_ = std::make_shared>(); } void ControlPerformanceAnalysisCore::setCurrentWaypoints(const Trajectory & trajectory) { current_waypoints_ptr_ = std::make_shared(); + current_waypoints_vel_ptr_ = std::make_shared>(); for (const auto & point : trajectory.points) { current_waypoints_ptr_->poses.emplace_back(point.pose); + current_waypoints_vel_ptr_->emplace_back(point.longitudinal_velocity_mps); + } +} + +void ControlPerformanceAnalysisCore::setOdomHistory(const Odometry & odom) +{ + // We need to take the odometry history to calculate jerk and acceleration + if (!odom_history_ptr_->empty() && odom.header.stamp == odom_history_ptr_->back().header.stamp) { + return; + } + if (odom_history_ptr_->size() >= (3 + odom_interval_ * 2)) { + // If higher, remove the first element of vector + odom_history_ptr_->erase(odom_history_ptr_->begin()); + odom_history_ptr_->push_back(odom); + } else { + odom_history_ptr_->push_back(odom); } } @@ -53,9 +80,9 @@ void ControlPerformanceAnalysisCore::setCurrentPose(const Pose & msg) current_vec_pose_ptr_ = std::make_shared(msg); } -void ControlPerformanceAnalysisCore::setCurrentControlValue(const AckermannLateralCommand & msg) +void ControlPerformanceAnalysisCore::setCurrentControlValue(const AckermannControlCommand & msg) { - current_control_ptr_ = std::make_shared(msg); + current_control_ptr_ = std::make_shared(msg); } std::pair ControlPerformanceAnalysisCore::findClosestPrevWayPointIdx_path_direction() @@ -64,16 +91,13 @@ std::pair ControlPerformanceAnalysisCore::findClosestPrevWayPoint return std::make_pair(false, std::numeric_limits::quiet_NaN()); } - // How far the next waypoint can be ahead of the vehicle direction. - double acceptable_min_distance = 2.0; - /* * Create Vectors of Path Directions for each interval * interval_vector_xy = {waypoint_1 - waypoint_0}_xy * */ // Prepare vector of projection distance values; projection of vehicle vectors onto the intervals - std::vector projection_distances_ds; // + std::vector projection_distances_ds; auto f_projection_dist = [this](auto pose_1, auto pose_0) { // Vector of intervals. @@ -88,8 +112,7 @@ std::pair ControlPerformanceAnalysisCore::findClosestPrevWayPoint this->current_vec_pose_ptr_->position.x - pose_0.position.x, this->current_vec_pose_ptr_->position.y - pose_0.position.y}; - double projection_distance_onto_interval; - projection_distance_onto_interval = + double projection_distance_onto_interval = (int_vec[0] * vehicle_vec[0] + int_vec[1] * vehicle_vec[1]) / ds_mag; return projection_distance_onto_interval; @@ -124,10 +147,7 @@ std::pair ControlPerformanceAnalysisCore::findClosestPrevWayPoint int32_t length_of_trajectory = std::distance(current_waypoints_ptr_->poses.cbegin(), current_waypoints_ptr_->poses.cend()); - // Find and set the waypoint L-wheelbase meters ahead of the current waypoint. - findCurveRefIdx(); - - return ((min_distance_ds <= acceptable_min_distance) & (*idx_prev_wp_ >= 0) & + return ((min_distance_ds <= acceptable_min_waypoint_distance_) && (*idx_prev_wp_ >= 0) && (*idx_prev_wp_ <= length_of_trajectory)) ? std::make_pair(true, *idx_prev_wp_) : std::make_pair(false, std::numeric_limits::quiet_NaN()); @@ -142,17 +162,22 @@ bool ControlPerformanceAnalysisCore::isDataReady() const return false; } - if (!current_waypoints_ptr_) { + if (current_waypoints_ptr_->poses.empty()) { RCLCPP_WARN_THROTTLE(logger_, clock, 1000, "cannot get current trajectory waypoints ..."); return false; } - if (!current_velocities_ptr_) { - RCLCPP_WARN_THROTTLE(logger_, clock, 1000, "waiting for current_velocity ..."); + if (odom_history_ptr_->size() < 2) { + RCLCPP_WARN_THROTTLE(logger_, clock, 1000, "waiting for odometry data ..."); return false; } if (!current_control_ptr_) { + RCLCPP_WARN_THROTTLE(logger_, clock, 1000, "waiting for current_control_cmd ..."); + return false; + } + + if (!current_vec_steering_msg_ptr_) { RCLCPP_WARN_THROTTLE(logger_, clock, 1000, "waiting for current_steering ..."); return false; } @@ -160,23 +185,27 @@ bool ControlPerformanceAnalysisCore::isDataReady() const return true; } -std::pair ControlPerformanceAnalysisCore::getPerformanceVars() +bool ControlPerformanceAnalysisCore::calculateErrorVars() { // Check if data is ready. if (!isDataReady() || !idx_prev_wp_) { - return std::make_pair(false, TargetPerformanceMsgVars{}); + return false; } - TargetPerformanceMsgVars target_vars{}; - // Get the interpolated pose std::pair pair_pose_interp_wp_ = calculateClosestPose(); - if (!pair_pose_interp_wp_.first || !interpolated_pose_ptr_) { - RCLCPP_WARN_THROTTLE( - logger_, clock_, 1000, "Cannot get interpolated pose into control_performance algorithm"); + // Find and set the waypoint L-wheelbase meters ahead of the current waypoint. + findCurveRefIdx(); - return std::make_pair(false, TargetPerformanceMsgVars{}); + if ( + !pair_pose_interp_wp_.first || !interpolated_pose_ptr_ || !interpolated_velocity_ptr_ || + !interpolated_acceleration_ptr_) { + RCLCPP_WARN_THROTTLE( + logger_, clock_, 1000, + "Cannot get interpolated pose, velocity, and acceleration into control_performance " + "algorithm"); + return false; } auto && pose_interp_wp_ = pair_pose_interp_wp_.second; @@ -189,50 +218,182 @@ std::pair ControlPerformanceAnalysisCore::getPer current_vec_pose_ptr_->position.x, current_vec_pose_ptr_->position.y}; // Get Yaw angles of the reference waypoint and the vehicle - double const target_yaw = tf2::getYaw(pose_interp_wp_.orientation); + double target_yaw = tf2::getYaw(pose_interp_wp_.orientation); double vehicle_yaw_angle = tf2::getYaw(current_vec_pose_ptr_->orientation); // Compute Curvature at the point where the front axle might follow // get the waypoint corresponds to the front_axle center if (!idx_curve_ref_wp_) { - RCLCPP_ERROR(logger_, "Cannot find index of curvature reference waypoint "); - return std::make_pair(false, TargetPerformanceMsgVars{}); + RCLCPP_WARN(logger_, "Cannot find index of curvature reference waypoint "); + return false; } double curvature_est = estimateCurvature(); // three point curvature double curvature_est_pp = estimatePurePursuitCurvature(); // pure pursuit curvature - // Compute lateral error - projection of vector to waypoint from vehicle onto the vehicle normal. - double && lateral_error = - utils::computeLateralError(interp_waypoint_xy, vehicle_position_xy, vehicle_yaw_angle); + // Compute lateral, longitudinal, heading error w.r.t. frenet frame + + std::vector lateral_longitudinal_error = + utils::computeLateralLongitudinalError(interp_waypoint_xy, vehicle_position_xy, target_yaw); + double & lateral_error = lateral_longitudinal_error[0]; + double & longitudinal_error = lateral_longitudinal_error[1]; // Compute the yaw angle error. double && heading_yaw_error = utils::angleDistance(vehicle_yaw_angle, target_yaw); - // Set the values of TargetPerformanceMsgVars. - target_vars.lateral_error = lateral_error; - target_vars.heading_error = heading_yaw_error; - - double steering_val = current_control_ptr_->steering_tire_angle; - target_vars.control_effort_energy = contR * steering_val * steering_val; // u*R*u'; + // Set the values of ErrorMsgVars. + + error_vars.error.lateral_error = lateral_error; + error_vars.error.longitudinal_error = longitudinal_error; + error_vars.error.heading_error = heading_yaw_error; + + // odom history contains k + 1, k, k - 1 ... steps. We are in kth step + uint && odom_size = odom_history_ptr_->size(); + + error_vars.header.stamp = odom_history_ptr_->at(odom_size - 2).header.stamp; // we are in step k + + double & Vx = odom_history_ptr_->at(odom_size - 2).twist.twist.linear.x; + // Current acceleration calculation + double && d_x = odom_history_ptr_->at(odom_size - 1).pose.pose.position.x - + odom_history_ptr_->at(odom_size - 2).pose.pose.position.x; + double && d_y = odom_history_ptr_->at(odom_size - 1).pose.pose.position.y - + odom_history_ptr_->at(odom_size - 2).pose.pose.position.y; + double && ds = std::hypot(d_x, d_y); + + double && vel_mean = (odom_history_ptr_->at(odom_size - 1).twist.twist.linear.x + + odom_history_ptr_->at(odom_size - 2).twist.twist.linear.x) / + 2.0; + double && dv = odom_history_ptr_->at(odom_size - 1).twist.twist.linear.x - + odom_history_ptr_->at(odom_size - 2).twist.twist.linear.x; + double && dt = ds / std::max(vel_mean, prevent_zero_division_value_); + double && Ax = dv / std::max(dt, prevent_zero_division_value_); // current acceleration + + double && longitudinal_error_velocity = + Vx * cos(heading_yaw_error) - *interpolated_velocity_ptr_ * (1 - curvature_est * lateral_error); + double && lateral_error_velocity = + Vx * sin(heading_yaw_error) - *interpolated_velocity_ptr_ * curvature_est * longitudinal_error; + + double && steering_cmd = current_control_ptr_->lateral.steering_tire_angle; + double && current_steering_val = current_vec_steering_msg_ptr_->steering_tire_angle; + error_vars.error.control_effort_energy = contR * steering_cmd * steering_cmd; // u*R*u'; + + double && heading_velocity_error = (Vx * tan(current_steering_val)) / wheelbase_ - + *this->interpolated_velocity_ptr_ * curvature_est; + + double && lateral_acceleration_error = + -curvature_est * *interpolated_acceleration_ptr_ * longitudinal_error - + curvature_est * *interpolated_velocity_ptr_ * longitudinal_error_velocity + + Vx * heading_velocity_error * cos(heading_yaw_error) + Ax * sin(heading_yaw_error); + + double && longitudinal_acceleration_error = + curvature_est * *interpolated_acceleration_ptr_ * lateral_error + + curvature_est * *interpolated_velocity_ptr_ * lateral_error_velocity - + Vx * heading_velocity_error * sin(heading_yaw_error) + Ax * cos(heading_yaw_error) - + *interpolated_acceleration_ptr_; + + error_vars.error.lateral_error_velocity = lateral_error_velocity; + error_vars.error.lateral_error_acceleration = lateral_acceleration_error; + error_vars.error.longitudinal_error_velocity = longitudinal_error_velocity; + error_vars.error.longitudinal_error_acceleration = longitudinal_acceleration_error; + error_vars.error.heading_error_velocity = heading_velocity_error; Eigen::Vector2d error_vec; error_vec << lateral_error, heading_yaw_error; - target_vars.error_energy = error_vec.dot(error_vec); - target_vars.value_approximation = error_vec.transpose() * lyap_P_ * error_vec; // x'Px + error_vars.error.error_energy = error_vec.dot(error_vec); + error_vars.error.value_approximation = error_vec.transpose() * lyap_P_ * error_vec; // x'Px - target_vars.curvature_estimate = curvature_est; - target_vars.curvature_estimate_pp = curvature_est_pp; + error_vars.error.curvature_estimate = curvature_est; + error_vars.error.curvature_estimate_pp = curvature_est_pp; - double Vx = current_velocities_ptr_->at(0); - target_vars.lateral_error_velocity = Vx * sin(heading_yaw_error); - target_vars.lateral_error_acceleration = Vx * tan(steering_val) / wheelbase_ - curvature_est * Vx; + error_vars.error.vehicle_velocity_error = Vx - *this->interpolated_velocity_ptr_; + error_vars.error.tracking_curvature_discontinuity_ability = + (std::fabs(curvature_est - prev_target_vars_->error.curvature_estimate)) / + (1 + std::fabs(lateral_error - prev_target_vars_->error.lateral_error)); - prev_target_vars_ = std::move(std::make_unique(target_vars)); + prev_target_vars_ = std::make_unique(error_vars); + + return true; +} - return std::make_pair(true, target_vars); +bool ControlPerformanceAnalysisCore::calculateDrivingVars() +{ + if (!odom_history_ptr_->empty()) { + const uint odom_size = odom_history_ptr_->size(); + + if (odom_history_ptr_->at(odom_size - 1).header.stamp != last_odom_header.stamp) { + // Calculate lateral acceleration + + driving_status_vars.lateral_acceleration.header.set__stamp( + odom_history_ptr_->at(odom_size - 1).header.stamp); + driving_status_vars.lateral_acceleration.data = + odom_history_ptr_->at(odom_size - 1).twist.twist.linear.x * + tan(current_vec_steering_msg_ptr_->steering_tire_angle) / wheelbase_; + + if (odom_history_ptr_->size() >= odom_interval_ + 2) { + // Calculate longitudinal acceleration + + double dv = odom_history_ptr_->at(odom_size - 1).twist.twist.linear.x - + odom_history_ptr_->at(odom_size - odom_interval_ - 2).twist.twist.linear.x; + + auto duration = + (rclcpp::Time(odom_history_ptr_->at(odom_size - 1).header.stamp) - + rclcpp::Time(odom_history_ptr_->at(odom_size - odom_interval_ - 2).header.stamp)); + + double dt = duration.seconds(); + + driving_status_vars.longitudinal_acceleration.data = dv / dt; + driving_status_vars.longitudinal_acceleration.header.set__stamp( + rclcpp::Time(odom_history_ptr_->at(odom_size - odom_interval_ - 2).header.stamp) + + duration * 0.5); // Time stamp of acceleration data + + // Calculate lateral jerk + + double d_lateral_jerk = driving_status_vars.lateral_acceleration.data - + prev_driving_vars_->lateral_acceleration.data; + + // We already know the delta time from above. same as longitudinal acceleration + + driving_status_vars.lateral_jerk.data = d_lateral_jerk / dt; + driving_status_vars.lateral_jerk.header = + driving_status_vars.longitudinal_acceleration.header; + } + + if (odom_history_ptr_->size() == 2 * odom_interval_ + 3) { + // calculate longitudinal jerk + double d_a = driving_status_vars.longitudinal_acceleration.data - + prev_driving_vars_->longitudinal_acceleration.data; + auto duration = + (rclcpp::Time(driving_status_vars.longitudinal_acceleration.header.stamp) - + rclcpp::Time(prev_driving_vars_->longitudinal_acceleration.header.stamp)); + double dt = duration.seconds(); + driving_status_vars.longitudinal_jerk.data = d_a / dt; + driving_status_vars.longitudinal_jerk.header.set__stamp( + rclcpp::Time(prev_driving_vars_->longitudinal_acceleration.header.stamp) + + duration * 0.5); // Time stamp of jerk data + } + + prev_driving_vars_ = + std::move(std::make_unique(driving_status_vars)); + + last_odom_header.stamp = odom_history_ptr_->at(odom_size - 1).header.stamp; + last_steering_report.stamp = current_vec_steering_msg_ptr_->stamp; + + } else if (last_steering_report.stamp != current_vec_steering_msg_ptr_->stamp) { + driving_status_vars.lateral_acceleration.header.set__stamp( + current_vec_steering_msg_ptr_->stamp); + driving_status_vars.lateral_acceleration.data = + odom_history_ptr_->at(odom_size - 1).twist.twist.linear.x * + tan(current_vec_steering_msg_ptr_->steering_tire_angle) / wheelbase_; + last_steering_report.stamp = current_vec_steering_msg_ptr_->stamp; + } + return true; + + } else { + RCLCPP_ERROR(logger_, "Can not get odometry data! "); + return false; + } } Pose ControlPerformanceAnalysisCore::getPrevWPPose() const @@ -240,11 +401,12 @@ Pose ControlPerformanceAnalysisCore::getPrevWPPose() const Pose pose_ref_waypoint_ = current_waypoints_ptr_->poses.at(*idx_prev_wp_); return pose_ref_waypoint_; } -void ControlPerformanceAnalysisCore::setCurrentVelocities(const Twist & twist_msg) + +void ControlPerformanceAnalysisCore::setSteeringStatus(const SteeringReport & steering) { - current_velocities_ptr_->at(0) = twist_msg.linear.x; - current_velocities_ptr_->at(1) = twist_msg.angular.z; + current_vec_steering_msg_ptr_ = std::make_shared(steering); } + void ControlPerformanceAnalysisCore::findCurveRefIdx() { // Get the previous waypoint as the reference @@ -287,6 +449,9 @@ std::pair ControlPerformanceAnalysisCore::calculateClosestPose() // Define the next waypoint - so that we can define an interval in which the car follow a line. int32_t idx_next_wp_temp; + double next_wp_acc = 0.0; + double prev_wp_acc = 0.0; + int32_t total_num_of_waypoints_in_traj = std::distance(current_waypoints_ptr_->poses.cbegin(), current_waypoints_ptr_->poses.cend()); @@ -306,17 +471,21 @@ std::pair ControlPerformanceAnalysisCore::calculateClosestPose() * */ // First get te yaw angles of all three poses. - double prev_yaw = tf2::getYaw(current_waypoints_ptr_->poses.at(*idx_prev_wp_).orientation); - double next_yaw = tf2::getYaw(current_waypoints_ptr_->poses.at(*idx_next_wp_).orientation); + double && prev_yaw = tf2::getYaw(current_waypoints_ptr_->poses.at(*idx_prev_wp_).orientation); + double && next_yaw = tf2::getYaw(current_waypoints_ptr_->poses.at(*idx_next_wp_).orientation); + + double & prev_velocity = current_waypoints_vel_ptr_->at(*idx_prev_wp_); + double & next_velocity = current_waypoints_vel_ptr_->at(*idx_next_wp_); // Previous waypoint to next waypoint. - double dx_prev2next = current_waypoints_ptr_->poses.at(*idx_next_wp_).position.x - - current_waypoints_ptr_->poses.at(*idx_prev_wp_).position.x; + double && dx_prev2next = current_waypoints_ptr_->poses.at(*idx_next_wp_).position.x - + current_waypoints_ptr_->poses.at(*idx_prev_wp_).position.x; - double dy_prev2next = current_waypoints_ptr_->poses.at(*idx_next_wp_).position.y - - current_waypoints_ptr_->poses.at(*idx_prev_wp_).position.y; + double && dy_prev2next = current_waypoints_ptr_->poses.at(*idx_next_wp_).position.y - + current_waypoints_ptr_->poses.at(*idx_prev_wp_).position.y; - double delta_psi_prev2next = utils::angleDistance(next_yaw, prev_yaw); + double && delta_psi_prev2next = utils::angleDistance(next_yaw, prev_yaw); + double && d_vel_prev2next = next_velocity - prev_velocity; // Create a vector from p0 (prev) --> p1 (to next wp) std::vector v_prev2next_wp{dx_prev2next, dy_prev2next}; @@ -328,23 +497,23 @@ std::pair ControlPerformanceAnalysisCore::calculateClosestPose() * * */ - double dx_prev2vehicle = + double && dx_prev2vehicle = current_vec_pose_ptr_->position.x - current_waypoints_ptr_->poses.at(*idx_prev_wp_).position.x; - double dy_prev2vehicle = + double && dy_prev2vehicle = current_vec_pose_ptr_->position.y - current_waypoints_ptr_->poses.at(*idx_prev_wp_).position.y; // Vector from p0 to p_vehicle std::vector v_prev2vehicle{dx_prev2vehicle, dy_prev2vehicle}; // Compute the length of v_prev2next_wp : vector from p0 --> p1 - double distance_p02p1 = std::hypot(dx_prev2next, dy_prev2next); + double && distance_p02p1 = std::hypot(dx_prev2next, dy_prev2next); // Compute how far the car is away from p0 in p1 direction. p_interp is the location of the // interpolated waypoint. This is the dot product normalized by the length of the interval. // a.b = |a|.|b|.cos(alpha) -- > |a|.cos(alpha) = a.b / |b| where b is the path interval, - double distance_p02p_interp = + double && distance_p02p_interp = (dx_prev2next * dx_prev2vehicle + dy_prev2next * dy_prev2vehicle) / distance_p02p1; /* @@ -352,7 +521,7 @@ std::pair ControlPerformanceAnalysisCore::calculateClosestPose() * pi = p0 + ratio_t * (p1 - p0) * */ - double ratio_t = distance_p02p_interp / distance_p02p1; + double && ratio_t = distance_p02p_interp / distance_p02p1; // Interpolate pose.position and pose.orientation interpolated_pose.position.x = @@ -364,20 +533,62 @@ std::pair ControlPerformanceAnalysisCore::calculateClosestPose() interpolated_pose.position.z = 0.0; // Interpolate the yaw angle of pi : interpolated waypoint - double interp_yaw_angle = prev_yaw + ratio_t * delta_psi_prev2next; + double && interp_yaw_angle = prev_yaw + ratio_t * delta_psi_prev2next; + double && interp_velocity = prev_velocity + ratio_t * d_vel_prev2next; - Quaternion orient_msg = utils::createOrientationMsgFromYaw(interp_yaw_angle); + Quaternion && orient_msg = utils::createOrientationMsgFromYaw(interp_yaw_angle); interpolated_pose.orientation = orient_msg; - setInterpolatedPose(interpolated_pose); + /* interpolated acceleration calculation */ + + if (*idx_prev_wp_ == 0 || *idx_prev_wp_ == total_num_of_waypoints_in_traj - 1) { + prev_wp_acc = 0.0; + } else { + double && d_x = current_waypoints_ptr_->poses.at(*idx_next_wp_).position.x - + current_waypoints_ptr_->poses.at(*idx_prev_wp_ - 1).position.x; + double && d_y = current_waypoints_ptr_->poses.at(*idx_next_wp_).position.y - + current_waypoints_ptr_->poses.at(*idx_prev_wp_ - 1).position.y; + double && ds = std::hypot(d_x, d_y); + double && vel_mean = (current_waypoints_vel_ptr_->at(*idx_next_wp_) + + current_waypoints_vel_ptr_->at(*idx_prev_wp_ - 1)) / + 2.0; + double && dv = current_waypoints_vel_ptr_->at(*idx_next_wp_) - + current_waypoints_vel_ptr_->at(*idx_prev_wp_ - 1); + double && dt = ds / std::max(vel_mean, prevent_zero_division_value_); + prev_wp_acc = dv / std::max(dt, prevent_zero_division_value_); + } + + if (*idx_next_wp_ == total_num_of_waypoints_in_traj - 1) { + next_wp_acc = 0.0; + } else { + double && d_x = current_waypoints_ptr_->poses.at(*idx_next_wp_ + 1).position.x - + current_waypoints_ptr_->poses.at(*idx_prev_wp_).position.x; + double && d_y = current_waypoints_ptr_->poses.at(*idx_next_wp_ + 1).position.y - + current_waypoints_ptr_->poses.at(*idx_prev_wp_).position.y; + double && ds = std::hypot(d_x, d_y); + double && vel_mean = (current_waypoints_vel_ptr_->at(*idx_next_wp_ + 1) + + current_waypoints_vel_ptr_->at(*idx_prev_wp_)) / + 2.0; + double && dv = current_waypoints_vel_ptr_->at(*idx_next_wp_ + 1) - + current_waypoints_vel_ptr_->at(*idx_prev_wp_); + double && dt = ds / std::max(vel_mean, prevent_zero_division_value_); + next_wp_acc = dv / std::max(dt, prevent_zero_division_value_); + } + double && d_acc_prev2next = next_wp_acc - prev_wp_acc; + double && interp_acceleration = prev_wp_acc + ratio_t * d_acc_prev2next; + + setInterpolatedVars(interpolated_pose, interp_velocity, interp_acceleration); return std::make_pair(true, interpolated_pose); } // Sets interpolated waypoint_ptr_. -void ControlPerformanceAnalysisCore::setInterpolatedPose(Pose & interpolated_pose) +void ControlPerformanceAnalysisCore::setInterpolatedVars( + Pose & interpolated_pose, double & interpolated_velocity, double & interpolated_acceleration) { interpolated_pose_ptr_ = std::make_shared(interpolated_pose); + interpolated_velocity_ptr_ = std::make_shared(interpolated_velocity); + interpolated_acceleration_ptr_ = std::make_shared(interpolated_acceleration); } double ControlPerformanceAnalysisCore::estimateCurvature() @@ -442,7 +653,8 @@ double ControlPerformanceAnalysisCore::estimatePurePursuitCurvature() return 0; } - double Vx = current_velocities_ptr_->at(0); + const uint32_t & odom_size = odom_history_ptr_->size(); + double & Vx = odom_history_ptr_->at(odom_size - 1).twist.twist.linear.x; double look_ahead_distance_pp = std::max(wheelbase_, 2 * Vx); auto fun_distance_cond = [this, &look_ahead_distance_pp](auto pose_t) { diff --git a/control/control_performance_analysis/src/control_performance_analysis_node.cpp b/control/control_performance_analysis/src/control_performance_analysis_node.cpp index 7914f9ee24e10..58c56fea90a47 100644 --- a/control/control_performance_analysis/src/control_performance_analysis_node.cpp +++ b/control/control_performance_analysis/src/control_performance_analysis_node.cpp @@ -1,4 +1,4 @@ -// Copyright 2021 Tier IV, Inc. +// Copyright 2021 - 2022 Tier IV, Inc., Leo Drive Teknoloji A.Ş. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,6 +14,7 @@ #include "control_performance_analysis/control_performance_analysis_node.hpp" +#include "control_performance_analysis/msg/driving_monitor_stamped.hpp" #include "control_performance_analysis/msg/error_stamped.hpp" #include @@ -23,25 +24,10 @@ namespace { -using control_performance_analysis::TargetPerformanceMsgVars; +using autoware_auto_control_msgs::msg::AckermannControlCommand; +using control_performance_analysis::msg::DrivingMonitorStamped; using control_performance_analysis::msg::ErrorStamped; -ErrorStamped createPerformanceMsgVars(const TargetPerformanceMsgVars & target_performance_vars) -{ - ErrorStamped error_msgs{}; - - error_msgs.error.lateral_error = target_performance_vars.lateral_error; - error_msgs.error.heading_error = target_performance_vars.heading_error; - error_msgs.error.control_effort_energy = target_performance_vars.control_effort_energy; - error_msgs.error.error_energy = target_performance_vars.error_energy; - error_msgs.error.value_approximation = target_performance_vars.value_approximation; - error_msgs.error.curvature_estimate = target_performance_vars.curvature_estimate; - error_msgs.error.curvature_estimate_pp = target_performance_vars.curvature_estimate_pp; - error_msgs.error.lateral_error_velocity = target_performance_vars.lateral_error_velocity; - error_msgs.error.lateral_error_acceleration = target_performance_vars.lateral_error_acceleration; - - return error_msgs; -} } // namespace namespace control_performance_analysis @@ -59,19 +45,23 @@ ControlPerformanceAnalysisNode::ControlPerformanceAnalysisNode( param_.wheel_base = vehicle_info.wheel_base_m; // Node Parameters. - param_.control_period = declare_parameter("control_period", 0.033); param_.curvature_interval_length = declare_parameter("curvature_interval_length", 10.0); + param_.prevent_zero_division_value = declare_parameter("prevent_zero_division_value", 0.001); + param_.odom_interval = declare_parameter("odom_interval", 2); + param_.acceptable_min_waypoint_distance = + declare_parameter("acceptable_min_waypoint_distance", 2.0); // Prepare error computation class with the wheelbase parameter. control_performance_core_ptr_ = std::make_unique( - param_.wheel_base, param_.curvature_interval_length); + param_.wheel_base, param_.curvature_interval_length, param_.odom_interval, + param_.acceptable_min_waypoint_distance, param_.prevent_zero_division_value); // Subscribers. sub_trajectory_ = create_subscription( "~/input/reference_trajectory", 1, std::bind(&ControlPerformanceAnalysisNode::onTrajectory, this, _1)); - sub_control_steering_ = create_subscription( + sub_control_cmd_ = create_subscription( "~/input/control_raw", 1, std::bind(&ControlPerformanceAnalysisNode::onControlRaw, this, _1)); sub_vehicle_steering_ = create_subscription( @@ -84,13 +74,7 @@ ControlPerformanceAnalysisNode::ControlPerformanceAnalysisNode( // Publishers pub_error_msg_ = create_publisher("~/output/error_stamped", 1); - // Timer - { - const auto period_ns = std::chrono::duration_cast( - std::chrono::duration(param_.control_period)); - timer_publish_ = rclcpp::create_timer( - this, get_clock(), period_ns, std::bind(&ControlPerformanceAnalysisNode::onTimer, this)); - } + pub_driving_msg_ = create_publisher("~/output/driving_status_stamped", 1); // Wait for first self pose self_pose_listener_.waitForFirstPose(); @@ -112,13 +96,25 @@ void ControlPerformanceAnalysisNode::onTrajectory(const Trajectory::ConstSharedP } void ControlPerformanceAnalysisNode::onControlRaw( - const AckermannLateralCommand::ConstSharedPtr control_msg) + const AckermannControlCommand::ConstSharedPtr control_msg) { + static bool initialized = false; if (!control_msg) { - RCLCPP_ERROR(get_logger(), "steering signal has not been received yet ..."); + RCLCPP_ERROR(get_logger(), "control command has not been received yet ..."); + return; + } else if (!initialized) { + initialized = true; + current_control_msg_ptr_ = control_msg; + last_control_cmd_.stamp = current_control_msg_ptr_->stamp; + + } else { + current_control_msg_ptr_ = control_msg; + rclcpp::Duration duration = + (rclcpp::Time(current_control_msg_ptr_->stamp) - rclcpp::Time(last_control_cmd_.stamp)); + d_control_cmd_ = duration.seconds() * 1000; // ms + last_control_cmd_.stamp = current_control_msg_ptr_->stamp; } - current_control_msg_ptr_ = control_msg; } void ControlPerformanceAnalysisNode::onVecSteeringMeasured( @@ -134,60 +130,80 @@ void ControlPerformanceAnalysisNode::onVecSteeringMeasured( void ControlPerformanceAnalysisNode::onVelocity(const Odometry::ConstSharedPtr msg) { - current_odom_ptr_ = msg; -} + // Sent previous state to error calculation because we need to calculate current acceleration. -void ControlPerformanceAnalysisNode::onTimer() -{ - // Read and Update Current Pose updating var:current_pose_. - current_pose_ = self_pose_listener_.getCurrentPose(); - - // Check Data Stream - if (!isDataReady()) { - // Publish Here + if (!current_odom_ptr_) { + if (isDataReady()) { + current_odom_ptr_ = msg; + current_pose_ = self_pose_listener_.getCurrentPose(); + control_performance_core_ptr_->setOdomHistory(*current_odom_ptr_); + prev_traj = *current_trajectory_ptr_; + prev_cmd = *current_control_msg_ptr_; + prev_steering = *current_vec_steering_msg_ptr_; + } return; } - // Compute Control Performance Variables. - auto performanceVars = computeTargetPerformanceMsgVars(); - if (!performanceVars) { - RCLCPP_ERROR(get_logger(), "steering signal has not been received yet ..."); + control_performance_core_ptr_->setCurrentWaypoints(prev_traj); + control_performance_core_ptr_->setCurrentPose(current_pose_->pose); + control_performance_core_ptr_->setCurrentControlValue(prev_cmd); + control_performance_core_ptr_->setOdomHistory(*msg); // k+1, k, k-1 + control_performance_core_ptr_->setSteeringStatus(prev_steering); + + if (!control_performance_core_ptr_->isDataReady()) { return; } + // Find the index of the next waypoint. + std::pair prev_closest_wp_pose_idx = + control_performance_core_ptr_->findClosestPrevWayPointIdx_path_direction(); - // If successful publish. - publishErrorMsg(*performanceVars); -} - -void ControlPerformanceAnalysisNode::publishErrorMsg( - const TargetPerformanceMsgVars & control_performance_vars) -{ - control_performance_analysis::ErrorStamped error_msgs = - createPerformanceMsgVars(control_performance_vars); + if (!prev_closest_wp_pose_idx.first) { + RCLCPP_ERROR(get_logger(), "Cannot find closest waypoint"); + return; + } - pub_error_msg_->publish(error_msgs); + // Compute control performance values. + if (control_performance_core_ptr_->calculateErrorVars()) { + pub_error_msg_->publish(control_performance_core_ptr_->error_vars); + } else { + RCLCPP_ERROR(get_logger(), "Cannot compute error vars ..."); + } + if (control_performance_core_ptr_->calculateDrivingVars()) { + control_performance_core_ptr_->driving_status_vars.controller_processing_time.header.stamp = + current_control_msg_ptr_->stamp; + control_performance_core_ptr_->driving_status_vars.controller_processing_time.data = + d_control_cmd_; + pub_driving_msg_->publish(control_performance_core_ptr_->driving_status_vars); + } else { + RCLCPP_ERROR(get_logger(), "Cannot compute driving vars ..."); + } + prev_traj = *current_trajectory_ptr_; + prev_cmd = *current_control_msg_ptr_; + prev_steering = *current_vec_steering_msg_ptr_; + current_odom_ptr_ = msg; + current_pose_ = self_pose_listener_.getCurrentPose(); } bool ControlPerformanceAnalysisNode::isDataReady() const { rclcpp::Clock clock{RCL_ROS_TIME}; - if (!current_pose_) { - RCLCPP_WARN_THROTTLE(get_logger(), clock, 1000, "waiting for current_pose ..."); - return false; - } + // if (!current_pose_) { + // RCLCPP_WARN_THROTTLE(get_logger(), clock, 1000, "waiting for current_pose ..."); + // return false; + // } if (!current_trajectory_ptr_) { RCLCPP_WARN_THROTTLE(get_logger(), clock, 1000, "waiting for trajectory ... "); return false; } - if (!current_odom_ptr_) { - RCLCPP_WARN_THROTTLE(get_logger(), clock, 1000, "waiting for current_odom ..."); - return false; - } + // if (!current_odom_ptr_) { + // RCLCPP_WARN_THROTTLE(get_logger(), clock, 1000, "waiting for current_odom ..."); + // return false; + // } if (!current_control_msg_ptr_) { - RCLCPP_WARN_THROTTLE(get_logger(), clock, 1000, "waiting for current_control_steering_val ..."); + RCLCPP_WARN_THROTTLE(get_logger(), clock, 1000, "waiting for current_control_cmd ..."); return false; } @@ -201,36 +217,6 @@ bool ControlPerformanceAnalysisNode::isDataReady() const * -> computePerformanceVars * */ -boost::optional -ControlPerformanceAnalysisNode::computeTargetPerformanceMsgVars() const -{ - // Set trajectory and current pose of controller_performance_core. - control_performance_core_ptr_->setCurrentWaypoints(*current_trajectory_ptr_); - control_performance_core_ptr_->setCurrentPose(current_pose_->pose); - control_performance_core_ptr_->setCurrentVelocities(current_odom_ptr_->twist.twist); - control_performance_core_ptr_->setCurrentControlValue(*current_control_msg_ptr_); - - // Find the index of the next waypoint. - std::pair prev_closest_wp_pose_idx = - control_performance_core_ptr_->findClosestPrevWayPointIdx_path_direction(); - - if (!prev_closest_wp_pose_idx.first) { - RCLCPP_ERROR(get_logger(), "Cannot find closest waypoint"); - return {}; - } - - // Compute control performance values. - const std::pair target_performance_vars = - control_performance_core_ptr_->getPerformanceVars(); - - if (!target_performance_vars.first) { - RCLCPP_ERROR(get_logger(), "Cannot compute control performance vars ..."); - return {}; - } - - return target_performance_vars.second; -} - bool ControlPerformanceAnalysisNode::isValidTrajectory(const Trajectory & traj) { bool check_condition = std::all_of(traj.points.cbegin(), traj.points.cend(), [](auto point) { diff --git a/control/control_performance_analysis/src/control_performance_analysis_utils.cpp b/control/control_performance_analysis/src/control_performance_analysis_utils.cpp index ba4ae2d194701..ce11e10700487 100644 --- a/control/control_performance_analysis/src/control_performance_analysis_utils.cpp +++ b/control/control_performance_analysis/src/control_performance_analysis_utils.cpp @@ -1,4 +1,4 @@ -// Copyright 2021 Tier IV, Inc. +// Copyright 2021 - 2022 Tier IV, Inc., Leo Drive Teknoloji A.Ş. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. From da6482082d48f23d35123b6f402d4697d7dce552 Mon Sep 17 00:00:00 2001 From: Makoto Kurihara Date: Wed, 1 Jun 2022 19:00:54 +0900 Subject: [PATCH 9/9] fix(pose_initializer): fix response of initalize pose API (#1020) * fix(pose_initializer): fix response of initalize pose API Signed-off-by: Makoto Kurihara * ci(pre-commit): autofix * fix(pose_initializer): fix member variable name Signed-off-by: Makoto Kurihara Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .../pose_initializer_core.hpp | 1 + .../src/pose_initializer_core.cpp | 44 ++++++++++--------- .../src/pose_initializer_node.cpp | 6 ++- 3 files changed, 30 insertions(+), 21 deletions(-) diff --git a/localization/pose_initializer/include/pose_initializer/pose_initializer_core.hpp b/localization/pose_initializer/include/pose_initializer/pose_initializer_core.hpp index 6f69d941e69ca..a78c2040dcd77 100644 --- a/localization/pose_initializer/include/pose_initializer/pose_initializer_core.hpp +++ b/localization/pose_initializer/include/pose_initializer/pose_initializer_core.hpp @@ -71,6 +71,7 @@ class PoseInitializer : public rclcpp::Node rclcpp::Client::SharedPtr ndt_client_; + rclcpp::CallbackGroup::SharedPtr initialize_pose_service_group_; rclcpp::Service::SharedPtr initialize_pose_service_; rclcpp::Service::SharedPtr diff --git a/localization/pose_initializer/src/pose_initializer_core.cpp b/localization/pose_initializer/src/pose_initializer_core.cpp index cc6e7b86450c1..ae5deeb74c683 100644 --- a/localization/pose_initializer/src/pose_initializer_core.cpp +++ b/localization/pose_initializer/src/pose_initializer_core.cpp @@ -86,8 +86,10 @@ PoseInitializer::PoseInitializer() initial_pose_pub_ = this->create_publisher("initialpose3d", 10); - ndt_client_ = - this->create_client("ndt_align_srv"); + initialize_pose_service_group_ = + create_callback_group(rclcpp::CallbackGroupType::MutuallyExclusive); + ndt_client_ = this->create_client( + "ndt_align_srv", rmw_qos_profile_services_default, initialize_pose_service_group_); while (!ndt_client_->wait_for_service(std::chrono::seconds(1)) && rclcpp::ok()) { RCLCPP_INFO(get_logger(), "Waiting for service..."); } @@ -219,24 +221,26 @@ bool PoseInitializer::callAlignServiceAndPublishResult( req->seq = ++request_id_; RCLCPP_INFO(get_logger(), "call NDT Align Server"); + auto result = ndt_client_->async_send_request(req).get(); + + if (!result->success) { + RCLCPP_INFO(get_logger(), "failed NDT Align Server"); + response_id_ = result->seq; + return false; + } + + RCLCPP_INFO(get_logger(), "called NDT Align Server"); + response_id_ = result->seq; + // NOTE temporary cov + geometry_msgs::msg::PoseWithCovarianceStamped & pose_with_cov = result->pose_with_covariance; + pose_with_cov.pose.covariance[0] = 1.0; + pose_with_cov.pose.covariance[1 * 6 + 1] = 1.0; + pose_with_cov.pose.covariance[2 * 6 + 2] = 0.01; + pose_with_cov.pose.covariance[3 * 6 + 3] = 0.01; + pose_with_cov.pose.covariance[4 * 6 + 4] = 0.01; + pose_with_cov.pose.covariance[5 * 6 + 5] = 0.2; + initial_pose_pub_->publish(pose_with_cov); + enable_gnss_callback_ = false; - ndt_client_->async_send_request( - req, - [this](rclcpp::Client::SharedFuture - result) { - if (result.get()->success) { - RCLCPP_INFO(get_logger(), "called NDT Align Server"); - response_id_ = result.get()->seq; - // NOTE temporary cov - geometry_msgs::msg::PoseWithCovarianceStamped & pose_with_covariance = - result.get()->pose_with_covariance; - pose_with_covariance.pose.covariance = output_pose_covariance_; - initial_pose_pub_->publish(pose_with_covariance); - enable_gnss_callback_ = false; - } else { - RCLCPP_INFO(get_logger(), "failed NDT Align Server"); - response_id_ = result.get()->seq; - } - }); return true; } diff --git a/localization/pose_initializer/src/pose_initializer_node.cpp b/localization/pose_initializer/src/pose_initializer_node.cpp index b01297bbd3acd..a46969c7711a1 100644 --- a/localization/pose_initializer/src/pose_initializer_node.cpp +++ b/localization/pose_initializer/src/pose_initializer_node.cpp @@ -21,7 +21,11 @@ int main(int argc, char ** argv) { rclcpp::init(argc, argv); - rclcpp::spin(std::make_shared()); + rclcpp::executors::MultiThreadedExecutor executor; + auto node = std::make_shared(); + executor.add_node(node); + executor.spin(); + executor.remove_node(node); rclcpp::shutdown(); return 0; }