Skip to content

Commit

Permalink
feat: add external cmd selector package (autowarefoundation#78)
Browse files Browse the repository at this point in the history
* Porting remote cmd selector (autowarefoundation#1286)

* Feature/add remote cmd selector (autowarefoundation#1179)

* Add in/out args of remote_cmd_converter.launch

Signed-off-by: Kenji Miyake <[email protected]>

* Change remote input topic of vehicle_cmd_gate

Signed-off-by: Kenji Miyake <[email protected]>

* Add msgs for remote_cmd_selector

Signed-off-by: Kenji Miyake <[email protected]>

* Add remote_cmd_selector

Signed-off-by: Kenji Miyake <[email protected]>

* Rename remote_cmd_selector to external_cmd_selector

Signed-off-by: Kenji Miyake <[email protected]>

* Remove VehicleCommand support in autoware_joy_controller

Signed-off-by: Kenji Miyake <[email protected]>

* Support external_cmd_source in autoware_joy_controller.launch (autowarefoundation#1194)

Signed-off-by: Kenji Miyake <[email protected]>

* Fix porting miss

Signed-off-by: Kenji Miyake <[email protected]>

* fix missing function

* modify xml format

* fix include guard

* add callback group

* modify remap name

* Revert "modify remap name"

This reverts commit 169cc8d28442825b1d61b0439b9892c913304527.

* change topic name

* use rclcpp_component

* Remove autoware_debug_msgs from autoware_joy_controller

Signed-off-by: Kenji Miyake <[email protected]>

* Change default mode of autoware_joy_controller

Signed-off-by: Kenji Miyake <[email protected]>

Co-authored-by: Kenji Miyake <[email protected]>
Co-authored-by: Kenji Miyake <[email protected]>

* fix ament (autowarefoundation#1307)

* Ros2/create/external commands (autowarefoundation#1299)

* add remote message

* add remote commands

* fix topic

* remove unnecessary topic

* remove unused topic

* add external cmd instead

* ToExternalComd

* fix topic in joy con

* Fix -Wunused-parameter (autowarefoundation#1836)

* Fix -Wunused-parameter

Signed-off-by: Kenji Miyake <[email protected]>

* Fix mistake

Signed-off-by: Kenji Miyake <[email protected]>

* fix spell

* Fix lint issues

Signed-off-by: Kenji Miyake <[email protected]>

* Ignore flake8 warnings

Signed-off-by: Kenji Miyake <[email protected]>

Co-authored-by: Hiroki OTA <[email protected]>

* suppress warnings for control packages (autowarefoundation#1892)

* add Werror

* add maybe unused

* Add autoware api (autowarefoundation#1979)

* Move launch file of external_cmd_selector (autowarefoundation#2017)

* Move launch file of external_cmd_selector

Signed-off-by: Takagi, Isamu <[email protected]>

* Add copyright

Signed-off-by: Takagi, Isamu <[email protected]>

* Use DeclareLaunchArgument

Signed-off-by: Takagi, Isamu <[email protected]>

* Fix external command api name

Signed-off-by: Takagi, Isamu <[email protected]>

* Move common parameters

Signed-off-by: Takagi, Isamu <[email protected]>

* Fix format

Signed-off-by: Takagi, Isamu <[email protected]>

* Fix format

Signed-off-by: Takagi, Isamu <[email protected]>

* Use EmergencyState instead of deprecated EmergencyMode (autowarefoundation#2030)

* Use EmergencyState instead of deprecated EmergencyMode

Signed-off-by: Kenji Miyake <[email protected]>

* Use stamped type

Signed-off-by: Kenji Miyake <[email protected]>

* add sort-package-xml hook in pre-commit (autowarefoundation#1881)

* add sort xml hook in pre-commit

* change retval to exit_status

* rename

* add prettier plugin-xml

* use early return

* add license note

* add tier4 license

* restore prettier

* change license order

* move local hooks to public repo

* move prettier-xml to pre-commit-hooks-ros

* update version for bug-fix

* apply pre-commit

* Improve diagnostic tree for future extensions (autowarefoundation#2153)

* change resource monitoring group

* implement diagnostic tree proposal

* rename v2x param file

* add v2x to launch

* add dummy analyzer to avoid format error

* modify external control

* rename vehicle_ecu_errors

* fixup

* remove num_items

* fix error

* add heartbeat to external command selector

* Restore sensing/node_alive_monitoring

* Update system/autoware_error_monitor/config/diagnostic_aggregator/sensing.param.yaml

Co-authored-by: Kenji Miyake <[email protected]>

* add sensor_kit arg for diagnostic_agg

* change sensor_kit's default value

* add _ prefix to hide parameter file

* delete dummy parameter

* change to use update_functions

* add extra_agg_config_file_vehicle

* change initializer

* remove line

* Update system/autoware_error_monitor/config/diagnostic_aggregator/system.param.yaml

Co-authored-by: Kenji Miyake <[email protected]>

* change hearbeat diag

* add clock group

* update sensing diag

* Remove discard and v2x

Signed-off-by: Kenji Miyake <[email protected]>

* Fix heartbeat name

Signed-off-by: Kenji Miyake <[email protected]>

* Add remote_external_control

Signed-off-by: Kenji Miyake <[email protected]>

* Add external_control

Signed-off-by: Kenji Miyake <[email protected]>

* Rename remote_control to external_control

Signed-off-by: Kenji Miyake <[email protected]>

* Rename command_gate to control_command_gate

Signed-off-by: Kenji Miyake <[email protected]>

* Simplify resource monitoring

Signed-off-by: Kenji Miyake <[email protected]>

* Remove sensing from autoware_error_monitor.param.yaml

Signed-off-by: Kenji Miyake <[email protected]>

* Remove trajectory_deviation

Signed-off-by: Kenji Miyake <[email protected]>

* Remove vehicle specific settings

Signed-off-by: Kenji Miyake <[email protected]>

* Add blank lines

Signed-off-by: Kenji Miyake <[email protected]>

* Ignore matching_score error

Signed-off-by: Kenji Miyake <[email protected]>

* Remove debug_data_logger

Signed-off-by: Kenji Miyake <[email protected]>

* Add trajectory_validation

Signed-off-by: Kenji Miyake <[email protected]>

* Specify children for performance_monitoring

Signed-off-by: Kenji Miyake <[email protected]>

* Comment out route_validation

Signed-off-by: Kenji Miyake <[email protected]>

* Revert "Remove trajectory_deviation"

This reverts commit 199132f1a6c7083440f0ef9a956b0663d45f4531.

* Remove control_command_topic_status

Signed-off-by: Kenji Miyake <[email protected]>

* Disable some diagnostics for planning simulator

Signed-off-by: Kenji Miyake <[email protected]>

* Add TODO comment

Signed-off-by: Kenji Miyake <[email protected]>

* Enable /autoware/vehicle/node_alive_monitoring in planning simulator

Signed-off-by: Kenji Miyake <[email protected]>

Co-authored-by: Kenji Miyake <[email protected]>
Co-authored-by: Kenji Miyake <[email protected]>

* Fix missing dependency of external_cmd_selector (autowarefoundation#2324)

Signed-off-by: Kenji Miyake <[email protected]>

* Change formatter to clang-format and black (autowarefoundation#2332)

* Revert "Temporarily comment out pre-commit hooks"

This reverts commit 748e9cdb145ce12f8b520bcbd97f5ff899fc28a3.

* Replace ament_lint_common with autoware_lint_common

Signed-off-by: Kenji Miyake <[email protected]>

* Remove ament_cmake_uncrustify and ament_clang_format

Signed-off-by: Kenji Miyake <[email protected]>

* Apply Black

Signed-off-by: Kenji Miyake <[email protected]>

* Apply clang-format

Signed-off-by: Kenji Miyake <[email protected]>

* Fix build errors

Signed-off-by: Kenji Miyake <[email protected]>

* Fix for cpplint

* Fix include double quotes to angle brackets

Signed-off-by: Kenji Miyake <[email protected]>

* Apply clang-format

Signed-off-by: Kenji Miyake <[email protected]>

* Fix build errors

Signed-off-by: Kenji Miyake <[email protected]>

* Add COLCON_IGNORE (autowarefoundation#500)

Signed-off-by: Kenji Miyake <[email protected]>

* port part of external_cmd_selector (autowarefoundation#497)

* port part of external_cmd_selector

Signed-off-by: Kosuke Murakami <[email protected]>

* add convert function

Signed-off-by: kosuke murakami <[email protected]>

* port signal

Signed-off-by: kosuke murakami <[email protected]>

* Update control/external_cmd_selector/include/external_cmd_selector/external_cmd_selector_node.hpp

Co-authored-by: tkimura4 <[email protected]>

* Fix publisher in external_cmd_selector (autowarefoundation#676)

Co-authored-by: Keisuke Shima <[email protected]>
Co-authored-by: Kenji Miyake <[email protected]>
Co-authored-by: Kenji Miyake <[email protected]>
Co-authored-by: Hiroki OTA <[email protected]>
Co-authored-by: Takagi, Isamu <[email protected]>
Co-authored-by: Keisuke Shima <[email protected]>
Co-authored-by: Kosuke Murakami <[email protected]>
Co-authored-by: tkimura4 <[email protected]>
Co-authored-by: Fumiya Watanabe <[email protected]>
  • Loading branch information
10 people authored Dec 3, 2021
1 parent eb30515 commit 8154776
Show file tree
Hide file tree
Showing 6 changed files with 544 additions and 0 deletions.
34 changes: 34 additions & 0 deletions control/external_cmd_selector/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
cmake_minimum_required(VERSION 3.5)
project(external_cmd_selector)

### Compile options
if(NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
endif()
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
add_compile_options(-Wall -Wextra -Wpedantic -Werror)
endif()

### Dependencies
find_package(ament_cmake_auto REQUIRED)
ament_auto_find_build_dependencies()

ament_auto_add_library(external_cmd_selector_node SHARED
src/external_cmd_selector/external_cmd_selector_node.cpp
)

rclcpp_components_register_node(external_cmd_selector_node
PLUGIN "ExternalCmdSelector"
EXECUTABLE external_cmd_selector
)

if(BUILD_TESTING)
find_package(ament_lint_auto REQUIRED)
ament_lint_auto_find_test_dependencies()
endif()

ament_auto_package(INSTALL_TO_SHARE
launch
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
// Copyright 2020 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 EXTERNAL_CMD_SELECTOR__EXTERNAL_CMD_SELECTOR_NODE_HPP_
#define EXTERNAL_CMD_SELECTOR__EXTERNAL_CMD_SELECTOR_NODE_HPP_

#include <diagnostic_updater/diagnostic_updater.hpp>
#include <diagnostic_updater/update_functions.hpp>
#include <rclcpp/rclcpp.hpp>

#include <autoware_auto_vehicle_msgs/msg/gear_command.hpp>
#include <autoware_auto_vehicle_msgs/msg/hazard_lights_command.hpp>
#include <autoware_auto_vehicle_msgs/msg/turn_indicators_command.hpp>
#include <autoware_control_msgs/msg/external_command_selector_mode.hpp>
#include <autoware_control_msgs/srv/external_command_select.hpp>
#include <autoware_external_api_msgs/msg/control_command_stamped.hpp>
#include <autoware_external_api_msgs/msg/gear_shift_stamped.hpp>
#include <autoware_external_api_msgs/msg/heartbeat.hpp>
#include <autoware_external_api_msgs/msg/turn_signal_stamped.hpp>

#include <memory>

class ExternalCmdSelector : public rclcpp::Node
{
public:
explicit ExternalCmdSelector(const rclcpp::NodeOptions & node_options);

private:
using CommandSourceSelect = autoware_control_msgs::srv::ExternalCommandSelect;
using CommandSourceMode = autoware_control_msgs::msg::ExternalCommandSelectorMode;
using InternalGearShift = autoware_auto_vehicle_msgs::msg::GearCommand;
using InternalTurnSignal = autoware_auto_vehicle_msgs::msg::TurnIndicatorsCommand;
using InternalHazardSignal = autoware_auto_vehicle_msgs::msg::HazardLightsCommand;
using InternalHeartbeat = autoware_external_api_msgs::msg::Heartbeat;
using ExternalControlCommand = autoware_external_api_msgs::msg::ControlCommandStamped;
using ExternalGearShift = autoware_external_api_msgs::msg::GearShiftStamped;
using ExternalTurnSignal = autoware_external_api_msgs::msg::TurnSignalStamped;
using ExternalHeartbeat = autoware_external_api_msgs::msg::Heartbeat;

// CallbackGroups
rclcpp::CallbackGroup::SharedPtr callback_group_subscribers_;
rclcpp::CallbackGroup::SharedPtr callback_group_services_;

// Publisher
rclcpp::Publisher<CommandSourceMode>::SharedPtr pub_current_selector_mode_;
rclcpp::Publisher<ExternalControlCommand>::SharedPtr pub_control_cmd_;
rclcpp::Publisher<InternalGearShift>::SharedPtr pub_shift_cmd_;
rclcpp::Publisher<InternalTurnSignal>::SharedPtr pub_turn_signal_cmd_;
rclcpp::Publisher<InternalHazardSignal>::SharedPtr pub_hazard_signal_cmd_;
rclcpp::Publisher<InternalHeartbeat>::SharedPtr pub_heartbeat_;

// Subscriber
rclcpp::Subscription<ExternalControlCommand>::SharedPtr sub_local_control_cmd_;
rclcpp::Subscription<ExternalGearShift>::SharedPtr sub_local_shift_cmd_;
rclcpp::Subscription<ExternalTurnSignal>::SharedPtr sub_local_turn_signal_cmd_;
rclcpp::Subscription<ExternalHeartbeat>::SharedPtr sub_local_heartbeat_;

rclcpp::Subscription<ExternalControlCommand>::SharedPtr sub_remote_control_cmd_;
rclcpp::Subscription<ExternalGearShift>::SharedPtr sub_remote_shift_cmd_;
rclcpp::Subscription<ExternalTurnSignal>::SharedPtr sub_remote_turn_signal_cmd_;
rclcpp::Subscription<ExternalHeartbeat>::SharedPtr sub_remote_heartbeat_;

void onLocalControlCmd(const ExternalControlCommand::ConstSharedPtr msg);
void onLocalShiftCmd(const ExternalGearShift::ConstSharedPtr msg);
void onLocalTurnSignalCmd(const ExternalTurnSignal::ConstSharedPtr msg);
void onLocalHeartbeat(const ExternalHeartbeat::ConstSharedPtr msg);

void onRemoteControlCmd(const ExternalControlCommand::ConstSharedPtr msg);
void onRemoteShiftCmd(const ExternalGearShift::ConstSharedPtr msg);
void onRemoteTurnSignalCmd(const ExternalTurnSignal::ConstSharedPtr msg);
void onRemoteHeartbeat(const ExternalHeartbeat::ConstSharedPtr msg);

// Service
rclcpp::Service<CommandSourceSelect>::SharedPtr srv_select_external_command_;
CommandSourceMode current_selector_mode_;

bool onSelectExternalCommandService(
const CommandSourceSelect::Request::SharedPtr req,
const CommandSourceSelect::Response::SharedPtr res);

// Timer
rclcpp::TimerBase::SharedPtr timer_;

void onTimer();

// Converter
static InternalGearShift convert(const ExternalGearShift & command);
static InternalHeartbeat convert(const ExternalHeartbeat & command);

// Diagnostics Updater
diagnostic_updater::Updater updater_{this};
};

#endif // EXTERNAL_CMD_SELECTOR__EXTERNAL_CMD_SELECTOR_NODE_HPP_
123 changes: 123 additions & 0 deletions control/external_cmd_selector/launch/external_cmd_selector.launch.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
# Copyright 2021 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.

from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument
from launch.substitutions import LaunchConfiguration
from launch_ros.actions import LoadComposableNodes
from launch_ros.descriptions import ComposableNode


def _create_mapping_tuple(name):
return ("~/" + name, LaunchConfiguration(name))


def generate_launch_description():

arguments = [
# component
DeclareLaunchArgument("use_intra_process"),
DeclareLaunchArgument("target_container"),
# settings
DeclareLaunchArgument(
"initial_selector_mode", default_value="local", choices=["local", "remote"]
),
# service
DeclareLaunchArgument(
"service/select_external_command", default_value="~/select_external_command"
),
# local input
DeclareLaunchArgument(
"input/local/control_cmd", default_value="/api/external/set/command/local/control"
),
DeclareLaunchArgument(
"input/local/shift_cmd", default_value="/api/external/set/command/local/shift"
),
DeclareLaunchArgument(
"input/local/turn_signal_cmd",
default_value="/api/external/set/command/local/turn_signal",
),
DeclareLaunchArgument(
"input/local/heartbeat", default_value="/api/external/set/command/local/heartbeat"
),
# remote input
DeclareLaunchArgument(
"input/remote/control_cmd", default_value="/api/external/set/command/remote/control"
),
DeclareLaunchArgument(
"input/remote/shift_cmd", default_value="/api/external/set/command/remote/shift"
),
DeclareLaunchArgument(
"input/remote/turn_signal_cmd",
default_value="/api/external/set/command/remote/turn_signal",
),
DeclareLaunchArgument(
"input/remote/heartbeat", default_value="/api/external/set/command/remote/heartbeat"
),
# output
DeclareLaunchArgument(
"output/control_cmd", default_value="/external/selected/external_control_cmd"
),
DeclareLaunchArgument("output/gear_cmd", default_value="/external/selected/gear_cmd"),
DeclareLaunchArgument(
"output/turn_indicators_cmd", default_value="/external/selected/turn_indicators_cmd"
),
DeclareLaunchArgument(
"output/hazard_lights_cmd", default_value="/external/selected/hazard_lights_cmd"
),
DeclareLaunchArgument("output/heartbeat", default_value="/external/selected/heartbeat"),
DeclareLaunchArgument(
"output/current_selector_mode", default_value="~/current_selector_mode"
),
]

component = ComposableNode(
package="external_cmd_selector",
plugin="ExternalCmdSelector",
name="external_cmd_selector",
remappings=[
_create_mapping_tuple("service/select_external_command"),
_create_mapping_tuple("input/local/control_cmd"),
_create_mapping_tuple("input/local/shift_cmd"),
_create_mapping_tuple("input/local/turn_signal_cmd"),
_create_mapping_tuple("input/local/heartbeat"),
_create_mapping_tuple("input/remote/control_cmd"),
_create_mapping_tuple("input/remote/shift_cmd"),
_create_mapping_tuple("input/remote/turn_signal_cmd"),
_create_mapping_tuple("input/remote/heartbeat"),
_create_mapping_tuple("output/control_cmd"),
_create_mapping_tuple("output/gear_cmd"),
_create_mapping_tuple("output/turn_indicators_cmd"),
_create_mapping_tuple("output/hazard_lights_cmd"),
_create_mapping_tuple("output/heartbeat"),
_create_mapping_tuple("output/current_selector_mode"),
],
parameters=[
{
"initial_selector_mode": LaunchConfiguration("initial_selector_mode"),
}
],
extra_arguments=[
{
"use_intra_process_comms": LaunchConfiguration("use_intra_process"),
}
],
)

loader = LoadComposableNodes(
composable_node_descriptions=[component],
target_container=LaunchConfiguration("target_container"),
)

return LaunchDescription(arguments + [loader])
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<launch>

<!-- settings -->
<arg name="initial_selector_mode" default="local" description="local, remote" />

<!-- service -->
<arg name="service/select_external_command" default="~/select_external_command" />

<!-- input local -->
<arg name="input/local/control_cmd" default="/api/external/set/command/local/control" />
<arg name="input/local/shift_cmd" default="/api/external/set/command/local/shift" />
<arg name="input/local/turn_signal_cmd" default="/api/external/set/command/local/turn_signal" />
<arg name="input/local/heartbeat" default="/api/external/set/command/local/heartbeat" />

<!-- input remote -->
<arg name="input/remote/control_cmd" default="/api/external/set/command/remote/control" />
<arg name="input/remote/shift_cmd" default="/api/external/set/command/remote/shift" />
<arg name="input/remote/turn_signal_cmd" default="/api/external/set/command/remote/turn_signal" />
<arg name="input/remote/heartbeat" default="/api/external/set/command/remote/heartbeat" />

<!-- output -->
<arg name="output/control_cmd" default="/external/selected/external_control_cmd" />
<arg name="output/gear_cmd" default="/external/selected/gear_cmd" />
<arg name="output/turn_indicators_cmd" default="/external/selected/turn_indicators_cmd" />
<arg name="output/hazard_lights_cmd" default="/external/selected/hazard_lights_cmd" />
<arg name="output/heartbeat" default="/external/selected/heartbeat" />
<arg name="output/current_selector_mode" default="~/current_selector_mode" />

<!-- node -->
<node pkg="external_cmd_selector" exec="external_cmd_selector" name="external_cmd_selector" output="screen">
<remap from="~/service/select_external_command" to="$(var service/select_external_command)" />
<remap from="~/input/local/control_cmd" to="$(var input/local/control_cmd)" />
<remap from="~/input/local/shift_cmd" to="$(var input/local/shift_cmd)" />
<remap from="~/input/local/turn_signal_cmd" to="$(var input/local/turn_signal_cmd)" />
<remap from="~/input/local/heartbeat" to="$(var input/local/heartbeat)" />
<remap from="~/input/remote/control_cmd" to="$(var input/remote/control_cmd)" />
<remap from="~/input/remote/shift_cmd" to="$(var input/remote/shift_cmd)" />
<remap from="~/input/remote/turn_signal_cmd" to="$(var input/remote/turn_signal_cmd)" />
<remap from="~/input/remote/heartbeat" to="$(var input/remote/heartbeat)" />
<remap from="~/output/control_cmd" to="$(var output/control_cmd)" />
<remap from="~/output/gear_cmd" to="$(var output/gear_cmd)" />
<remap from="~/output/turn_indicators_cmd" to="$(var output/turn_indicators_cmd)" />
<remap from="~/output/hazard_lights_cmd" to="$(var output/hazard_lights_cmd)" />
<remap from="~/output/heartbeat" to="$(var output/heartbeat)" />
<remap from="~/output/current_selector_mode" to="$(var output/current_selector_mode)" />
<param name="initial_selector_mode" value="$(var initial_selector_mode)" />
</node>

</launch>
28 changes: 28 additions & 0 deletions control/external_cmd_selector/package.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<?xml version="1.0"?>
<package format="2">
<name>external_cmd_selector</name>
<version>0.1.0</version>
<description>The external_cmd_selector package</description>
<maintainer email="[email protected]">Kenji Miyake</maintainer>
<author email="[email protected]">Kenji Miyake</author>
<license>Apache License 2.0</license>

<buildtool_depend>ament_cmake_auto</buildtool_depend>

<depend>autoware_auto_vehicle_msgs</depend>
<depend>autoware_control_msgs</depend>
<depend>autoware_external_api_msgs</depend>
<depend>autoware_iv_auto_msgs_converter</depend>
<depend>diagnostic_updater</depend>
<depend>geometry_msgs</depend>
<depend>rclcpp</depend>
<depend>rclcpp_components</depend>
<depend>std_msgs</depend>

<test_depend>ament_lint_auto</test_depend>
<test_depend>autoware_lint_common</test_depend>

<export>
<build_type>ament_cmake</build_type>
</export>
</package>
Loading

0 comments on commit 8154776

Please sign in to comment.