Skip to content

Commit

Permalink
feat: add autoware_launch (#1)
Browse files Browse the repository at this point in the history
* feat: change launch package name (#186)

* rename launch folder

Signed-off-by: tomoya.kimura <[email protected]>

* autoware_launch -> tier4_autoware_launch

Signed-off-by: tomoya.kimura <[email protected]>

* integration_launch -> tier4_integration_launch

Signed-off-by: tomoya.kimura <[email protected]>

* map_launch -> tier4_map_launch

Signed-off-by: tomoya.kimura <[email protected]>

* fix

Signed-off-by: tomoya.kimura <[email protected]>

* planning_launch -> tier4_planning_launch

Signed-off-by: tomoya.kimura <[email protected]>

* simulator_launch -> tier4_simulator_launch

Signed-off-by: tomoya.kimura <[email protected]>

* control_launch -> tier4_control_launch

Signed-off-by: tomoya.kimura <[email protected]>

* localization_launch -> tier4_localization_launch

Signed-off-by: tomoya.kimura <[email protected]>

* perception_launch -> tier4_perception_launch

Signed-off-by: tomoya.kimura <[email protected]>

* sensing_launch -> tier4_sensing_launch

Signed-off-by: tomoya.kimura <[email protected]>

* system_launch -> tier4_system_launch

Signed-off-by: tomoya.kimura <[email protected]>

* ci(pre-commit): autofix

* vehicle_launch -> tier4_vehicle_launch

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

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: tanaka3 <[email protected]>
Co-authored-by: taikitanaka3 <[email protected]>

* feat(atutoware.rviz): disable selectable for pointcloud visualization (#402)

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

* fix: change the default mode of perception.launch (#409)

* fix: change the default mode of perception.launch

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

* chore: remove unnecessary comments

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

* chore: remove default values

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

* rename package name

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

* ci(pre-commit): autofix

* add build_depends.repos

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

Co-authored-by: Tomoya Kimura <[email protected]>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: tanaka3 <[email protected]>
Co-authored-by: taikitanaka3 <[email protected]>
Co-authored-by: Yamato Ando <[email protected]>
  • Loading branch information
6 people authored Feb 21, 2022
1 parent 13b903c commit 3f01cd9
Show file tree
Hide file tree
Showing 11 changed files with 1,980 additions and 0 deletions.
16 changes: 16 additions & 0 deletions autoware_launch/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
cmake_minimum_required(VERSION 3.5)
project(autoware_launch)

find_package(ament_cmake_auto REQUIRED)
ament_auto_find_build_dependencies()

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

ament_auto_package(
INSTALL_TO_SHARE
launch
rviz
)
17 changes: 17 additions & 0 deletions autoware_launch/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# autoware_launch

## Structure

![autoware_launch](./autoware_launch.drawio.svg)

## Package Dependencies

Please see `<exec_depend>` in `package.xml`.

## Usage

You can use the command as follows at shell script to launch `*.launch.xml` in `launch` directory.

```bash
ros2 launch autoware_launch autoware.launch.xml map_path:=/path/to/map_folder vehicle_model:=lexus sensor_model:=aip_xx1
```
4 changes: 4 additions & 0 deletions autoware_launch/autoware_launch.drawio.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
90 changes: 90 additions & 0 deletions autoware_launch/launch/autoware.launch.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
<?xml version="1.0" encoding="UTF-8"?>
<launch>
<!-- Essential parameters -->
<arg name="map_path" description="point cloud and lanelet2 map directory path"/>
<arg name="vehicle_model" description="vehicle model name"/>
<arg name="sensor_model" description="sensor model name"/>
<arg name="use_pointcloud_container" default="true" description="launch pointcloud container"/>
<arg name="pointcloud_container_name" default="pointcloud_container"/>
<!-- Optional parameters -->
<arg name="rviz" default="true" description="launch rviz"/>
<arg name="lanelet2_map_file" default="lanelet2_map.osm" description="lanelet2 map file name"/>
<arg name="pointcloud_map_file" default="pointcloud_map.pcd" description="pointcloud map file name"/>

<!-- Global parameters -->
<include file="$(find-pkg-share global_parameter_loader)/launch/global_params.launch.py">
<arg name="vehicle_model" value="$(var vehicle_model)"/>
</include>

<!-- Pointcloud container -->
<include file="$(find-pkg-share autoware_launch)/launch/pointcloud_container.launch.py" if="$(var use_pointcloud_container)">
<arg name="use_multithread" value="true"/>
<arg name="container_name" value="$(var pointcloud_container_name)"/>
</include>

<!-- Vehicle -->
<include file="$(find-pkg-share tier4_vehicle_launch)/launch/vehicle.launch.xml">
<arg name="vehicle_model" value="$(var vehicle_model)"/>
<arg name="sensor_model" value="$(var sensor_model)"/>
</include>

<!-- System -->
<include file="$(find-pkg-share tier4_system_launch)/launch/system.launch.xml">
<arg name="run_mode" value="online"/>
<arg name="sensor_model" value="$(var sensor_model)"/>
</include>

<!-- Map -->
<include file="$(find-pkg-share tier4_map_launch)/launch/map.launch.py">
<arg name="lanelet2_map_path" value="$(var map_path)/$(var lanelet2_map_file)"/>
<arg name="pointcloud_map_path" value="$(var map_path)/$(var pointcloud_map_file)"/>
</include>

<!-- Sensing -->
<include file="$(find-pkg-share tier4_sensing_launch)/launch/sensing.launch.xml">
<arg name="launch_driver" value="true"/>
<arg name="sensor_model" value="$(var sensor_model)"/>
<arg name="vehicle_param_file" value="$(find-pkg-share $(var vehicle_model)_description)/config/vehicle_info.param.yaml"/>
<arg name="vehicle_mirror_param_file" value="$(find-pkg-share $(var vehicle_model)_description)/config/mirror.param.yaml"/>
<arg name="use_pointcloud_container" value="$(var use_pointcloud_container)"/>
<arg name="pointcloud_container_name" value="$(var pointcloud_container_name)"/>
</include>

<!-- Localization -->
<include file="$(find-pkg-share tier4_localization_launch)/launch/localization.launch.xml">
</include>

<!-- Perception -->
<include file="$(find-pkg-share tier4_perception_launch)/launch/perception.launch.xml">
<arg name="mode" value="lidar"/>
<arg name="vehicle_param_file" value="$(find-pkg-share $(var vehicle_model)_description)/config/vehicle_info.param.yaml"/>
<arg name="use_pointcloud_container" value="$(var use_pointcloud_container)"/>
<arg name="pointcloud_container_name" value="$(var pointcloud_container_name)"/>
</include>

<!-- Planning -->
<include file="$(find-pkg-share tier4_planning_launch)/launch/planning.launch.xml">
<arg name="vehicle_info_param_file" value="$(find-pkg-share $(var vehicle_model)_description)/config/vehicle_info.param.yaml"/>
</include>

<!-- Control -->
<include file="$(find-pkg-share tier4_control_launch)/launch/control.launch.py">
<arg name="lateral_controller_mode" value="mpc_follower"/>
<arg name="vehicle_info_param_file" value="$(find-pkg-share $(var vehicle_model)_description)/config/vehicle_info.param.yaml"/>
</include>

<!-- Rviz -->
<node
pkg="rviz2"
exec="rviz2"
name="rviz2"
output="screen"
args="-d $(find-pkg-share autoware_launch)/rviz/autoware.rviz -s $(find-pkg-share autoware_launch)/rviz/image/autoware.png"
if="$(var rviz)"
>
</node>

<!-- Web Controller -->
<include file="$(find-pkg-share web_controller)/launch/web_controller.launch.xml"/>

</launch>
132 changes: 132 additions & 0 deletions autoware_launch/launch/logging_simulator.launch.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
<?xml version="1.0" encoding="UTF-8"?>
<launch>

<!-- Essential parameters -->
<arg name="map_path" description="point cloud and lanelet2 map directory path"/>
<arg name="vehicle_model" description="vehicle model name"/>
<arg name="sensor_model" description="sensor model name"/>
<arg name="vehicle_id" default="$(env VEHICLE_ID default)" description="vehicle specific ID"/>

<!-- Optional parameters -->
<arg name="vehicle" default="true" description="launch vehicle"/>
<arg name="system" default="true" description="launch system"/>
<arg name="map" default="true" description="launch map"/>
<arg name="sensing" default="true" description="launch sensing"/>
<arg name="localization" default="true" description="launch localization"/>
<arg name="perception" default="true" description="launch perception"/>
<arg name="planning" default="true" description="launch planning"/>
<arg name="control" default="true" description="launch control"/>
<arg name="rviz" default="true" description="launch rviz"/>
<arg name="lanelet2_map_file" default="lanelet2_map.osm" description="lanelet2 map file name"/>
<arg name="pointcloud_map_file" default="pointcloud_map.pcd" description="pointcloud map file name"/>
<arg name="vehicle_simulation" default="false" description="use vehicle simulation"/>
<arg name="use_pointcloud_container" default="true" description="launch pointcloud container"/>
<arg name="pointcloud_container_name" default="pointcloud_container"/>
<!-- Optional parameters for scenario simulation -->
<arg name="scenario_simulation" default="false" description="use scenario simulation"/>

<!-- Global parameters -->
<include file="$(find-pkg-share global_parameter_loader)/launch/global_params.launch.py">
<arg name="use_sim_time" value="true"/>
<arg name="vehicle_model" value="$(var vehicle_model)"/>
</include>

<!-- Pointcloud container -->
<include file="$(find-pkg-share autoware_launch)/launch/pointcloud_container.launch.py" if="$(var use_pointcloud_container)">
<arg name="use_multithread" value="true"/>
<arg name="container_name" value="$(var pointcloud_container_name)"/>
</include>

<!-- Vehicle -->
<group>
<include file="$(find-pkg-share tier4_vehicle_launch)/launch/vehicle.launch.xml" if="$(var vehicle)">
<arg name="vehicle_model" value="$(var vehicle_model)"/>
<arg name="sensor_model" value="$(var sensor_model)"/>
<arg name="vehicle_id" value="$(var vehicle_id)"/>
<arg name="simulation" value="$(var vehicle_simulation)"/>
</include>
</group>

<!-- System -->
<group>
<include file="$(find-pkg-share tier4_system_launch)/launch/system.launch.xml" if="$(var system)">
<arg name="run_mode" value="online"/>
<arg name="sensor_model" value="$(var sensor_model)"/>
</include>
</group>

<!-- Map -->
<group>
<include file="$(find-pkg-share tier4_map_launch)/launch/map.launch.py" if="$(var map)">
<arg name="lanelet2_map_path" value="$(var map_path)/$(var lanelet2_map_file)"/>
<arg name="pointcloud_map_path" value="$(var map_path)/$(var pointcloud_map_file)"/>
</include>
</group>

<!-- Sensing -->
<group>
<include file="$(find-pkg-share tier4_sensing_launch)/launch/sensing.launch.xml" if="$(var sensing)">
<arg name="launch_driver" value="false"/>
<arg name="sensor_model" value="$(var sensor_model)"/>
<arg name="vehicle_param_file" value="$(find-pkg-share $(var vehicle_model)_description)/config/vehicle_info.param.yaml"/>
<arg name="vehicle_mirror_param_file" value="$(find-pkg-share $(var vehicle_model)_description)/config/mirror.param.yaml"/>
<arg name="use_pointcloud_container" value="$(var use_pointcloud_container)"/>
<arg name="pointcloud_container_name" value="$(var pointcloud_container_name)"/>
</include>
</group>

<!-- Localization -->
<group>
<include file="$(find-pkg-share tier4_localization_launch)/launch/localization.launch.xml" if="$(var localization)">
</include>
</group>

<!-- Perception -->
<group>
<include file="$(find-pkg-share tier4_perception_launch)/launch/perception.launch.xml" if="$(var perception)">
<arg name="mode" value="lidar"/>
<arg name="vehicle_param_file" value="$(find-pkg-share $(var vehicle_model)_description)/config/vehicle_info.param.yaml"/>
<arg name="use_pointcloud_container" value="$(var use_pointcloud_container)"/>
<arg name="pointcloud_container_name" value="$(var pointcloud_container_name)"/>
</include>
</group>

<!-- Planning -->
<group>
<include file="$(find-pkg-share tier4_planning_launch)/launch/planning.launch.xml" if="$(var planning)">
<arg name="vehicle_info_param_file" value="$(find-pkg-share $(var vehicle_model)_description)/config/vehicle_info.param.yaml"/>
</include>
</group>

<!-- Control -->
<group>
<include file="$(find-pkg-share tier4_control_launch)/launch/control.launch.py" if="$(var control)">
<arg name="lateral_controller_mode" value="mpc_follower"/>
<arg name="vehicle_info_param_file" value="$(find-pkg-share $(var vehicle_model)_description)/config/vehicle_info.param.yaml"/>
</include>
</group>

<!-- Rviz -->
<node
pkg="rviz2"
exec="rviz2"
name="rviz2"
output="screen"
args="-d $(find-pkg-share autoware_launch)/rviz/autoware.rviz -s $(find-pkg-share autoware_launch)/rviz/image/autoware.png"
if="$(var rviz)"
>
</node>

<!-- Web Controller -->
<group>
<include file="$(find-pkg-share web_controller)/launch/web_controller.launch.xml"/>
</group>

<!-- Simulator -->
<include file="$(find-pkg-share tier4_simulator_launch)/launch/simulator.launch.xml">
<arg name="scenario_simulation" value="$(var scenario_simulation)"/>
<arg name="vehicle_simulation" value="false"/>
<arg name="vehicle_model" value="$(var vehicle_model)"/>
<arg name="vehicle_info_param_file" value="$(find-pkg-share $(var vehicle_model)_description)/config/vehicle_info.param.yaml"/>
</include>
</launch>
81 changes: 81 additions & 0 deletions autoware_launch/launch/planning_simulator.launch.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
<?xml version="1.0" encoding="UTF-8"?>
<launch>
<!-- Essential parameters -->
<arg name="map_path" description="point cloud and lanelet2 map directory path"/>
<arg name="vehicle_model" description="vehicle model name"/>
<arg name="sensor_model" description="sensor model name"/>
<!-- Optional parameters -->
<arg name="rviz" default="true" description="launch rviz"/>
<arg name="rviz_config" default="$(find-pkg-share autoware_launch)/rviz/autoware.rviz" description="rviz config"/>
<arg name="lanelet2_map_file" default="lanelet2_map.osm" description="lanelet2 map file name"/>
<arg name="pointcloud_map_file" default="pointcloud_map.pcd" description="pointcloud map file name"/>
<!-- Optional parameters for scenario simulation -->
<arg name="initial_engage_state" default="true" description="/vehicle/engage state after starting Autoware"/>
<arg name="perception/enable_detection_failure" default="true" description="enable to simulate detection failure when using dummy perception"/>
<arg name="perception/enable_object_recognition" default="true" description="enable object recognition when using dummy perception"/>
<arg name="sensing/visible_range" default="300.0" description="visible range when using dummy perception"/>
<arg name="scenario_simulation" default="false" description="use scenario simulation"/>
<!-- Optional parameters for vcu emulation -->
<arg name="vehicle_simulation" default="true" description="use vehicle simulation"/>

<!-- Global parameters -->
<include file="$(find-pkg-share global_parameter_loader)/launch/global_params.launch.py">
<arg name="vehicle_model" value="$(var vehicle_model)"/>
</include>

<!-- Vehicle -->
<include file="$(find-pkg-share tier4_vehicle_launch)/launch/vehicle.launch.xml">
<arg name="vehicle_model" value="$(var vehicle_model)"/>
<arg name="sensor_model" value="$(var sensor_model)"/>
<arg name="simulation" value="$(var vehicle_simulation)"/>
</include>

<!-- System -->
<include file="$(find-pkg-share tier4_system_launch)/launch/system.launch.xml">
<arg name="run_mode" value="planning_simulation"/>
<arg name="sensor_model" value="$(var sensor_model)"/>
</include>

<!-- Map -->
<include file="$(find-pkg-share tier4_map_launch)/launch/map.launch.py">
<arg name="lanelet2_map_path" value="$(var map_path)/$(var lanelet2_map_file)"/>
<arg name="pointcloud_map_path" value="$(var map_path)/$(var pointcloud_map_file)"/>
</include>

<!-- Planning -->
<include file="$(find-pkg-share tier4_planning_launch)/launch/planning.launch.xml">
<arg name="vehicle_info_param_file" value="$(find-pkg-share $(var vehicle_model)_description)/config/vehicle_info.param.yaml"/>
</include>

<!-- Control -->
<include file="$(find-pkg-share tier4_control_launch)/launch/control.launch.py">
<!-- options for lateral_controller_mode: mpc_follower, pure_pursuit -->
<arg name="lateral_controller_mode" value="mpc_follower"/>
<arg name="vehicle_info_param_file" value="$(find-pkg-share $(var vehicle_model)_description)/config/vehicle_info.param.yaml"/>
</include>

<!-- Initial Pose Relay -->
<node pkg="topic_tools" exec="relay" name="initial_pose_2d">
<param name="input_topic" value="/initialpose"/>
<param name="output_topic" value="/initialpose2d"/>
<param name="type" value="geometry_msgs/msg/PoseWithCovarianceStamped"/>
</node>

<!-- Rviz -->
<node pkg="rviz2" exec="rviz2" name="rviz2" output="screen" args="-d $(var rviz_config) -s $(find-pkg-share autoware_launch)/rviz/image/autoware.png" if="$(var rviz)"/>

<!-- Web Controller -->
<include file="$(find-pkg-share web_controller)/launch/web_controller.launch.xml" unless="$(var scenario_simulation)"/>

<!-- Simulator -->
<include file="$(find-pkg-share tier4_simulator_launch)/launch/simulator.launch.xml">
<arg name="scenario_simulation" value="$(var scenario_simulation)"/>
<arg name="perception/enable_detection_failure" value="$(var perception/enable_detection_failure)"/>
<arg name="perception/enable_object_recognition" value="$(var perception/enable_object_recognition)"/>
<arg name="sensing/visible_range" value="$(var sensing/visible_range)"/>
<arg name="vehicle_simulation" value="$(var vehicle_simulation)"/>
<arg name="vehicle_model" value="$(var vehicle_model)"/>
<arg name="initial_engage_state" value="$(var initial_engage_state)"/>
<arg name="vehicle_info_param_file" value="$(find-pkg-share $(var vehicle_model)_description)/config/vehicle_info.param.yaml"/>
</include>
</launch>
57 changes: 57 additions & 0 deletions autoware_launch/launch/pointcloud_container.launch.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# Copyright 2021 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


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")),
)

pointcloud_container = ComposableNodeContainer(
name=LaunchConfiguration("container_name"),
namespace="/",
package="rclcpp_components",
executable=LaunchConfiguration("container_executable"),
composable_node_descriptions=[],
output="screen",
)

return LaunchDescription(
[
add_launch_arg("use_multithread", "false"),
add_launch_arg("container_name", "pointcloud_container"),
set_container_executable,
set_container_mt_executable,
pointcloud_container,
]
)
Loading

0 comments on commit 3f01cd9

Please sign in to comment.