Skip to content

Commit

Permalink
test(behavior_velocity_planner): add interface test (#3401)
Browse files Browse the repository at this point in the history
* add planning_interface_test_manager class

Signed-off-by: kyoichi-sugahara <[email protected]>

* add counter function

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* add interface test for motion_velocity_smoother

Signed-off-by: kyoichi-sugahara <[email protected]>

* add param in default_motion_velocity_smoother,param.yaml

Signed-off-by: kyoichi-sugahara <[email protected]>

* successfully launch target node

Signed-off-by: kyoichi-sugahara <[email protected]>

* successfully build the test

Signed-off-by: kyoichi-sugahara <[email protected]>

* add test for test_motion_velocity_smoother

Signed-off-by: kyoichi-sugahara <[email protected]>

* add abnormal trajectory test

Signed-off-by: kyoichi-sugahara <[email protected]>

* delete unnecessary part

Signed-off-by: kyoichi-sugahara <[email protected]>

* style(pre-commit): autofix

* style(pre-commit): autofix

* run pre-commit

Signed-off-by: kyoichi-sugahara <[email protected]>

* add declaration

Signed-off-by: kyoichi-sugahara <[email protected]>

* refactor

Signed-off-by: kyoichi-sugahara <[email protected]>

* refactor

Signed-off-by: kyoichi-sugahara <[email protected]>

* Refactor callback functions for standardization

Signed-off-by: kyoichi-sugahara <[email protected]>

* refacotoring

Signed-off-by: kyoichi-sugahara <[email protected]>

* refactored

Signed-off-by: kyoichi-sugahara <[email protected]>

* Refactor functions into a single template function

Signed-off-by: kyoichi-sugahara <[email protected]>

* Refactor

Signed-off-by: kyoichi-sugahara <[email protected]>

* style(pre-commit): autofix

* refactor

Signed-off-by: kyoichi-sugahara <[email protected]>

* relete unnecessary definition

Signed-off-by: kyoichi-sugahara <[email protected]>

* Revert "delete unnecessary definition"

This reverts commit 6cd13f8.

Signed-off-by: kyoichi-sugahara <[email protected]>

* delete unnecessary definition

Signed-off-by: kyoichi-sugahara <[email protected]>

* delete unnecessary definition

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* delete module dependent part

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* delete unnecessary arg

Signed-off-by: kyoichi-sugahara <[email protected]>

* apply motion_velocity_smoother change

Signed-off-by: kyoichi-sugahara <[email protected]>

* add interface test for obstacle stop planner

Signed-off-by: kyoichi-sugahara <[email protected]>

* run pre-commit

Signed-off-by: kyoichi-sugahara <[email protected]>

* add test fot obstacle_cruise_planner

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* add test fot planning_vaildator

Signed-off-by: kyoichi-sugahara <[email protected]>

* add interface test for freespace_planner_node

Signed-off-by: kyoichi-sugahara <[email protected]>

* add interface test for obstacle_stop_planner with slow down

Signed-off-by: kyoichi-sugahara <[email protected]>

* add part of interface test for freespace

Signed-off-by: kyoichi-sugahara <[email protected]>

* change package name

Signed-off-by: kyoichi-sugahara <[email protected]>

* apply change of package name

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* fix build error

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp commit for debug

Signed-off-by: kyoichi-sugahara <[email protected]>

* add planning interface test manager for scenario selector

Signed-off-by: kyoichi-sugahara <[email protected]>

* refactor

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* refactor

Signed-off-by: kyoichi-sugahara <[email protected]>

* update parameter

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp for behavior_path_planner

Signed-off-by: kyoichi-sugahara <[email protected]>

* add param file

Signed-off-by: kyoichi-sugahara <[email protected]>

* add test free space planner module

Signed-off-by: kyoichi-sugahara <[email protected]>

* update map

Signed-off-by: kyoichi-sugahara <[email protected]>

* add test for behavior path planner

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* pass freespace test

Signed-off-by: kyoichi-sugahara <[email protected]>

* pass freespace test

Signed-off-by: kyoichi-sugahara <[email protected]>

* update map

Signed-off-by: kyoichi-sugahara <[email protected]>

* update map detection area

Signed-off-by: kyoichi-sugahara <[email protected]>

* add no stopping area

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* for print debug

Signed-off-by: kyoichi-sugahara <[email protected]>

* update param

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* add param file

Signed-off-by: kyoichi-sugahara <[email protected]>

* refactor(behavior_path_planner): remove unnecessary functions (#3271)

* refactor(behavior_path_planner): remove unnecessary functions

Signed-off-by: yutaka <[email protected]>

* update

Signed-off-by: yutaka <[email protected]>

---------

Signed-off-by: yutaka <[email protected]>

* Revert "temp"

This reverts commit b82805e.

Signed-off-by: kyoichi-sugahara <[email protected]>

* suppress build error (-Werror=pedantic)

Signed-off-by: kyoichi-sugahara <[email protected]>

* add interface test for behavior_velocity_planner

* build success

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* add param

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* pass test

Signed-off-by: kyoichi-sugahara <[email protected]>

* pass test

Signed-off-by: kyoichi-sugahara <[email protected]>

* build success

Signed-off-by: kyoichi-sugahara <[email protected]>

* update param

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* delete param file

Signed-off-by: kyoichi-sugahara <[email protected]>

* Resolve differences outside of parameter files

Signed-off-by: kyoichi-sugahara <[email protected]>

* update test manager

Signed-off-by: kyoichi-sugahara <[email protected]>

* update test manager

Signed-off-by: kyoichi-sugahara <[email protected]>

* upload cloud map

Signed-off-by: kyoichi-sugahara <[email protected]>

* fix typo

Signed-off-by: kyoichi-sugahara <[email protected]>

* refactor utils

Signed-off-by: kyoichi-sugahara <[email protected]>

* refactor utils

Signed-off-by: kyoichi-sugahara <[email protected]>

* refactor test_manager

Signed-off-by: kyoichi-sugahara <[email protected]>

* refactor

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* modify test for obstacle cruise planner

Signed-off-by: kyoichi-sugahara <[email protected]>

* modify test for obstacle_stop_planner

Signed-off-by: kyoichi-sugahara <[email protected]>

* refactor

Signed-off-by: kyoichi-sugahara <[email protected]>

* revert parameter change

Signed-off-by: kyoichi-sugahara <[email protected]>

* add obstacle_avoidance_planner

Signed-off-by: kyoichi-sugahara <[email protected]>

* Revert "add obstacle_avoidance_planner"

This reverts commit efb5d50.

Signed-off-by: kyoichi-sugahara <[email protected]>

* add obstacle_avoidance_planner

Signed-off-by: kyoichi-sugahara <[email protected]>

* change file name

Signed-off-by: kyoichi-sugahara <[email protected]>

* change file name

Signed-off-by: kyoichi-sugahara <[email protected]>

* modify CMake

Signed-off-by: kyoichi-sugahara <[email protected]>

* refactor

Signed-off-by: kyoichi-sugahara <[email protected]>

* refactor

Signed-off-by: kyoichi-sugahara <[email protected]>

* build success

Signed-off-by: kyoichi-sugahara <[email protected]>

* test success

Signed-off-by: kyoichi-sugahara <[email protected]>

* execption test is added

Signed-off-by: kyoichi-sugahara <[email protected]>

* delete unnecessary debug code

Signed-off-by: kyoichi-sugahara <[email protected]>

* add prototype declaration

Signed-off-by: kyoichi-sugahara <[email protected]>

* delete unnecessary comments

Signed-off-by: kyoichi-sugahara <[email protected]>

* style(pre-commit): autofix

* feat(planning_test_utils): update test manager for all planning modules (#3364)

* add planning_interface_test_manager class

Signed-off-by: kyoichi-sugahara <[email protected]>

* add counter function

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* add interface test for motion_velocity_smoother

Signed-off-by: kyoichi-sugahara <[email protected]>

* add param in default_motion_velocity_smoother,param.yaml

Signed-off-by: kyoichi-sugahara <[email protected]>

* successfully launch target node

Signed-off-by: kyoichi-sugahara <[email protected]>

* successfully build the test

Signed-off-by: kyoichi-sugahara <[email protected]>

* add test for test_motion_velocity_smoother

Signed-off-by: kyoichi-sugahara <[email protected]>

* add abnormal trajectory test

Signed-off-by: kyoichi-sugahara <[email protected]>

* delete unnecessary part

Signed-off-by: kyoichi-sugahara <[email protected]>

* style(pre-commit): autofix

* style(pre-commit): autofix

* run pre-commit

Signed-off-by: kyoichi-sugahara <[email protected]>

* add declaration

Signed-off-by: kyoichi-sugahara <[email protected]>

* refactor

Signed-off-by: kyoichi-sugahara <[email protected]>

* refactor

Signed-off-by: kyoichi-sugahara <[email protected]>

* Refactor callback functions for standardization

Signed-off-by: kyoichi-sugahara <[email protected]>

* refacotoring

Signed-off-by: kyoichi-sugahara <[email protected]>

* refactored

Signed-off-by: kyoichi-sugahara <[email protected]>

* Refactor functions into a single template function

Signed-off-by: kyoichi-sugahara <[email protected]>

* Refactor

Signed-off-by: kyoichi-sugahara <[email protected]>

* style(pre-commit): autofix

* refactor

Signed-off-by: kyoichi-sugahara <[email protected]>

* relete unnecessary definition

Signed-off-by: kyoichi-sugahara <[email protected]>

* Revert "delete unnecessary definition"

This reverts commit 6cd13f8.

Signed-off-by: kyoichi-sugahara <[email protected]>

* delete unnecessary definition

Signed-off-by: kyoichi-sugahara <[email protected]>

* delete unnecessary definition

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* delete module dependent part

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* delete unnecessary arg

Signed-off-by: kyoichi-sugahara <[email protected]>

* apply motion_velocity_smoother change

Signed-off-by: kyoichi-sugahara <[email protected]>

* add interface test for obstacle stop planner

Signed-off-by: kyoichi-sugahara <[email protected]>

* run pre-commit

Signed-off-by: kyoichi-sugahara <[email protected]>

* add test fot obstacle_cruise_planner

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* add test fot planning_vaildator

Signed-off-by: kyoichi-sugahara <[email protected]>

* add interface test for freespace_planner_node

Signed-off-by: kyoichi-sugahara <[email protected]>

* add interface test for obstacle_stop_planner with slow down

Signed-off-by: kyoichi-sugahara <[email protected]>

* add part of interface test for freespace

Signed-off-by: kyoichi-sugahara <[email protected]>

* change package name

Signed-off-by: kyoichi-sugahara <[email protected]>

* apply change of package name

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* fix build error

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp commit for debug

Signed-off-by: kyoichi-sugahara <[email protected]>

* add planning interface test manager for scenario selector

Signed-off-by: kyoichi-sugahara <[email protected]>

* refactor

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* refactor

Signed-off-by: kyoichi-sugahara <[email protected]>

* update parameter

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp for behavior_path_planner

Signed-off-by: kyoichi-sugahara <[email protected]>

* add param file

Signed-off-by: kyoichi-sugahara <[email protected]>

* add test free space planner module

Signed-off-by: kyoichi-sugahara <[email protected]>

* update map

Signed-off-by: kyoichi-sugahara <[email protected]>

* add test for behavior path planner

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* pass freespace test

Signed-off-by: kyoichi-sugahara <[email protected]>

* pass freespace test

Signed-off-by: kyoichi-sugahara <[email protected]>

* update map

Signed-off-by: kyoichi-sugahara <[email protected]>

* update map detection area

Signed-off-by: kyoichi-sugahara <[email protected]>

* add no stopping area

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* for print debug

Signed-off-by: kyoichi-sugahara <[email protected]>

* update param

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* add param file

Signed-off-by: kyoichi-sugahara <[email protected]>

* refactor(behavior_path_planner): remove unnecessary functions (#3271)

* refactor(behavior_path_planner): remove unnecessary functions

Signed-off-by: yutaka <[email protected]>

* update

Signed-off-by: yutaka <[email protected]>

---------

Signed-off-by: yutaka <[email protected]>

* Revert "temp"

This reverts commit b82805e.

Signed-off-by: kyoichi-sugahara <[email protected]>

* suppress build error (-Werror=pedantic)

Signed-off-by: kyoichi-sugahara <[email protected]>

* add interface test for behavior_velocity_planner

* build success

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* add param

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* pass test

Signed-off-by: kyoichi-sugahara <[email protected]>

* pass test

Signed-off-by: kyoichi-sugahara <[email protected]>

* build success

Signed-off-by: kyoichi-sugahara <[email protected]>

* update param

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* delete param file

Signed-off-by: kyoichi-sugahara <[email protected]>

* Resolve differences outside of parameter files

Signed-off-by: kyoichi-sugahara <[email protected]>

* update test manager

Signed-off-by: kyoichi-sugahara <[email protected]>

* update test manager

Signed-off-by: kyoichi-sugahara <[email protected]>

* upload cloud map

Signed-off-by: kyoichi-sugahara <[email protected]>

* fix typo

Signed-off-by: kyoichi-sugahara <[email protected]>

* refactor utils

Signed-off-by: kyoichi-sugahara <[email protected]>

* refactor utils

Signed-off-by: kyoichi-sugahara <[email protected]>

* refactor test_manager

Signed-off-by: kyoichi-sugahara <[email protected]>

* refactor

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* modify test for obstacle cruise planner

Signed-off-by: kyoichi-sugahara <[email protected]>

* modify test for obstacle_stop_planner

Signed-off-by: kyoichi-sugahara <[email protected]>

* refactor

Signed-off-by: kyoichi-sugahara <[email protected]>

* revert parameter change

Signed-off-by: kyoichi-sugahara <[email protected]>

* add obstacle_avoidance_planner

Signed-off-by: kyoichi-sugahara <[email protected]>

* Revert "add obstacle_avoidance_planner"

This reverts commit efb5d50.

Signed-off-by: kyoichi-sugahara <[email protected]>

* change file name

Signed-off-by: kyoichi-sugahara <[email protected]>

* change file name

Signed-off-by: kyoichi-sugahara <[email protected]>

* modify CMake

Signed-off-by: kyoichi-sugahara <[email protected]>

* refactor

Signed-off-by: kyoichi-sugahara <[email protected]>

* refactor

Signed-off-by: kyoichi-sugahara <[email protected]>

---------

Signed-off-by: kyoichi-sugahara <[email protected]>
Signed-off-by: yutaka <[email protected]>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Yutaka Shimizu <[email protected]>
Signed-off-by: kyoichi-sugahara <[email protected]>

* fix config name

Signed-off-by: kyoichi-sugahara <[email protected]>

* delete unnecessary files

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* temp

Signed-off-by: kyoichi-sugahara <[email protected]>

* update test_manager

Signed-off-by: kyoichi-sugahara <[email protected]>

* update test_manager

Signed-off-by: kyoichi-sugahara <[email protected]>

* fix node name in commnet

Signed-off-by: kyoichi-sugahara <[email protected]>

* fix build error

Signed-off-by: kyoichi-sugahara <[email protected]>

* fix build error

Signed-off-by: kyoichi-sugahara <[email protected]>

* delete unnecessary publisher from test_node

Signed-off-by: kyoichi-sugahara <[email protected]>

* set flag for launch scene module

Signed-off-by: kyoichi-sugahara <[email protected]>

* add ego pose test with comment out

Signed-off-by: kyoichi-sugahara <[email protected]>

* add username in TODO

Signed-off-by: kyoichi-sugahara <[email protected]>

* enable off-track test

Signed-off-by: Takamasa Horibe <[email protected]>

---------

Signed-off-by: kyoichi-sugahara <[email protected]>
Signed-off-by: yutaka <[email protected]>
Signed-off-by: Takamasa Horibe <[email protected]>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Yutaka Shimizu <[email protected]>
Co-authored-by: Takamasa Horibe <[email protected]>
  • Loading branch information
4 people authored May 12, 2023
1 parent a178168 commit a54ad62
Show file tree
Hide file tree
Showing 4 changed files with 164 additions and 25 deletions.
8 changes: 8 additions & 0 deletions planning/behavior_velocity_planner/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,14 @@ if(BUILD_TESTING)
gtest_main
behavior_velocity_planner
)

ament_add_ros_isolated_gtest(test_${PROJECT_NAME}
test/src/test_${PROJECT_NAME}_node_interface.cpp
)
target_link_libraries(test_${PROJECT_NAME}
gtest_main
${PROJECT_NAME}
)
endif()

ament_auto_package(INSTALL_TO_SHARE
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
// Copyright 2023 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 "ament_index_cpp/get_package_share_directory.hpp"
#include "behavior_velocity_planner/node.hpp"
#include "planning_interface_test_manager/planning_interface_test_manager.hpp"
#include "planning_interface_test_manager/planning_interface_test_manager_utils.hpp"

#include <gtest/gtest.h>

#include <cmath>
#include <vector>

using behavior_velocity_planner::BehaviorVelocityPlannerNode;
using planning_test_utils::PlanningInterfaceTestManager;

std::shared_ptr<PlanningInterfaceTestManager> generateTestManager()
{
auto test_manager = std::make_shared<PlanningInterfaceTestManager>();

// set subscriber with topic name: behavior_velocity_planner → test_node_
test_manager->setPathSubscriber("behavior_velocity_planner_node/output/path");

// set behavior_velocity_planner node's input topic name(this topic is changed to test node)
test_manager->setPathWithLaneIdTopicName(
"behavior_velocity_planner_node/input/path_with_lane_id");

test_manager->setInitialPoseTopicName("behavior_velocity_planner_node/input/vehicle_odometry");
test_manager->setOdometryTopicName("behavior_velocity_planner_node/input/vehicle_odometry");

return test_manager;
}

std::shared_ptr<BehaviorVelocityPlannerNode> generateNode()
{
auto node_options = rclcpp::NodeOptions{};

const auto planning_test_utils_dir =
ament_index_cpp::get_package_share_directory("planning_test_utils");
const auto behavior_velocity_planner_dir =
ament_index_cpp::get_package_share_directory("behavior_velocity_planner");
const auto motion_velocity_smoother_dir =
ament_index_cpp::get_package_share_directory("motion_velocity_smoother");

test_utils::updateNodeOptions(
node_options,
{planning_test_utils_dir + "/config/test_common.param.yaml",
planning_test_utils_dir + "/config/test_nearest_search.param.yaml",
planning_test_utils_dir + "/config/test_vehicle_info.param.yaml",
motion_velocity_smoother_dir + "/config/default_motion_velocity_smoother.param.yaml",
motion_velocity_smoother_dir + "/config/Analytical.param.yaml",
behavior_velocity_planner_dir + "/config/behavior_velocity_planner.param.yaml",
behavior_velocity_planner_dir + "/config/blind_spot.param.yaml",
behavior_velocity_planner_dir + "/config/crosswalk.param.yaml",
behavior_velocity_planner_dir + "/config/detection_area.param.yaml",
behavior_velocity_planner_dir + "/config/intersection.param.yaml",
behavior_velocity_planner_dir + "/config/no_stopping_area.param.yaml",
behavior_velocity_planner_dir + "/config/occlusion_spot.param.yaml",
behavior_velocity_planner_dir + "/config/run_out.param.yaml",
behavior_velocity_planner_dir + "/config/speed_bump.param.yaml",
behavior_velocity_planner_dir + "/config/stop_line.param.yaml",
behavior_velocity_planner_dir + "/config/traffic_light.param.yaml",
behavior_velocity_planner_dir + "/config/virtual_traffic_light.param.yaml",
behavior_velocity_planner_dir + "/config/out_of_lane.param.yaml"});

node_options.append_parameter_override("launch_stop_line", true);
node_options.append_parameter_override("launch_crosswalk", true);
node_options.append_parameter_override("launch_traffic_light", true);
node_options.append_parameter_override("launch_intersection", true);
node_options.append_parameter_override("launch_blind_spot", true);
node_options.append_parameter_override("launch_detection_area", true);
node_options.append_parameter_override(
"launch_virtual_traffic_light", false); // TODO(Kyoichi Sugahara) set to true
node_options.append_parameter_override(
"launch_occlusion_spot", false); // TODO(Kyoichi Sugahara) set to true
node_options.append_parameter_override("launch_no_stopping_area", true);
node_options.append_parameter_override(
"launch_run_out", false); // TODO(Kyoichi Sugahara) set to true
node_options.append_parameter_override(
"launch_speed_bump", false); // TODO(Kyoichi Sugahara) set to true
node_options.append_parameter_override("launch_out_of_lane", true);

return std::make_shared<BehaviorVelocityPlannerNode>(node_options);
}

void publishMandatoryTopics(
std::shared_ptr<PlanningInterfaceTestManager> test_manager,
std::shared_ptr<BehaviorVelocityPlannerNode> test_target_node)
{
// publish necessary topics from test_manager
test_manager->publishTF(test_target_node, "/tf");
test_manager->publishAcceleration(test_target_node, "behavior_velocity_planner_node/input/accel");
test_manager->publishPredictedObjects(
test_target_node, "behavior_velocity_planner_node/input/dynamic_objects");
test_manager->publishPointCloud(
test_target_node, "behavior_velocity_planner_node/input/no_ground_pointcloud");
test_manager->publishOdometry(
test_target_node, "behavior_velocity_planner_node/input/vehicle_odometry");
test_manager->publishAcceleration(test_target_node, "behavior_velocity_planner_node/input/accel");
test_manager->publishMap(test_target_node, "behavior_velocity_planner_node/input/vector_map");
test_manager->publishTrafficSignals(
test_target_node, "behavior_velocity_planner_node/input/traffic_signals");
test_manager->publishMaxVelocity(
test_target_node, "behavior_velocity_planner_node/input/external_velocity_limit_mps");
test_manager->publishVirtualTrafficLightState(
test_target_node, "behavior_velocity_planner_node/input/virtual_traffic_light_states");
test_manager->publishOccupancyGrid(
test_target_node, "behavior_velocity_planner_node/input/occupancy_grid");
}

TEST(PlanningModuleInterfaceTest, NodeTestWithExceptionPathWithLaneID)
{
rclcpp::init(0, nullptr);
auto test_manager = generateTestManager();
auto test_target_node = generateNode();

publishMandatoryTopics(test_manager, test_target_node);

// test with nominal path_with_lane_id
ASSERT_NO_THROW(test_manager->testWithNominalPathWithLaneId(test_target_node));
EXPECT_GE(test_manager->getReceivedTopicNum(), 1);

// test with empty path_with_lane_id
ASSERT_NO_THROW(test_manager->testWithAbnormalPathWithLaneId(test_target_node));
rclcpp::shutdown();
}

TEST(PlanningModuleInterfaceTest, NodeTestWithOffTrackEgoPose)
{
rclcpp::init(0, nullptr);

auto test_manager = generateTestManager();
auto test_target_node = generateNode();
publishMandatoryTopics(test_manager, test_target_node);

// test for normal trajectory
ASSERT_NO_THROW(test_manager->testWithNominalPathWithLaneId(test_target_node));

// make sure behavior_path_planner is running
EXPECT_GE(test_manager->getReceivedTopicNum(), 1);

ASSERT_NO_THROW(test_manager->testOffTrackFromPathWithLaneId(test_target_node));

rclcpp::shutdown();
}
Original file line number Diff line number Diff line change
Expand Up @@ -114,11 +114,7 @@ class PlanningInterfaceTestManager
void publishLateralOffset(rclcpp::Node::SharedPtr target_node, std::string topic_name);
void publishOperationModeState(rclcpp::Node::SharedPtr target_node, std::string topic_name);
void publishTrafficSignals(rclcpp::Node::SharedPtr target_node, std::string topic_name);
void publishExternalTrafficSignals(rclcpp::Node::SharedPtr target_node, std::string topic_name);
void publishVirtualTrafficLightState(rclcpp::Node::SharedPtr target_node, std::string topic_name);
void publishExternalCrosswalkStates(rclcpp::Node::SharedPtr target_node, std::string topic_name);
void publishExternalIntersectionStates(
rclcpp::Node::SharedPtr target_node, std::string topic_name);

void setTrajectoryInputTopicName(std::string topic_name);
void setParkingTrajectoryInputTopicName(std::string topic_name);
Expand Down Expand Up @@ -188,10 +184,7 @@ class PlanningInterfaceTestManager
rclcpp::Publisher<LateralOffset>::SharedPtr lateral_offset_pub_;
rclcpp::Publisher<OperationModeState>::SharedPtr operation_mode_state_pub_;
rclcpp::Publisher<TrafficSignalArray>::SharedPtr traffic_signals_pub_;
rclcpp::Publisher<TrafficSignalArray>::SharedPtr external_traffic_signals_pub_;
rclcpp::Publisher<VirtualTrafficLightStateArray>::SharedPtr virtual_traffic_light_states_pub_;
rclcpp::Publisher<CrosswalkStatus>::SharedPtr external_crosswalk_states_pub_;
rclcpp::Publisher<IntersectionStatus>::SharedPtr external_intersection_states_pub_;

// Subscriber
rclcpp::Subscription<Trajectory>::SharedPtr traj_sub_;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -163,31 +163,13 @@ void PlanningInterfaceTestManager::publishTrafficSignals(
test_node_, target_node, topic_name, traffic_signals_pub_, TrafficSignalArray{});
}

void PlanningInterfaceTestManager::publishExternalTrafficSignals(
rclcpp::Node::SharedPtr target_node, std::string topic_name)
{
test_utils::publishToTargetNode(
test_node_, target_node, topic_name, external_traffic_signals_pub_, TrafficSignalArray{});
}
void PlanningInterfaceTestManager::publishVirtualTrafficLightState(
rclcpp::Node::SharedPtr target_node, std::string topic_name)
{
test_utils::publishToTargetNode(
test_node_, target_node, topic_name, virtual_traffic_light_states_pub_,
VirtualTrafficLightStateArray{});
}
void PlanningInterfaceTestManager::publishExternalCrosswalkStates(
rclcpp::Node::SharedPtr target_node, std::string topic_name)
{
test_utils::publishToTargetNode(
test_node_, target_node, topic_name, external_crosswalk_states_pub_, CrosswalkStatus{});
}
void PlanningInterfaceTestManager::publishExternalIntersectionStates(
rclcpp::Node::SharedPtr target_node, std::string topic_name)
{
test_utils::publishToTargetNode(
test_node_, target_node, topic_name, external_intersection_states_pub_, IntersectionStatus{});
}

void PlanningInterfaceTestManager::publishInitialPoseTF(
rclcpp::Node::SharedPtr target_node, std::string topic_name)
Expand Down

0 comments on commit a54ad62

Please sign in to comment.