Skip to content

Commit

Permalink
Merge pull request #3 from leo-drive/build-run
Browse files Browse the repository at this point in the history
add planning simulator launch
  • Loading branch information
oguzkaganozt authored Nov 2, 2023
2 parents 691e8fd + a39af63 commit 8ee975e
Show file tree
Hide file tree
Showing 10 changed files with 120 additions and 43 deletions.
3 changes: 0 additions & 3 deletions docker/autoware-openadk/TODO

This file was deleted.

18 changes: 0 additions & 18 deletions docker/autoware-openadk/base/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -81,23 +81,5 @@ RUN source /opt/ros/"$ROS_DISTRO"/setup.bash \
&& find /autoware/install -type d -exec chmod 777 {} \; \
&& echo "source /autoware/install/setup.bash" > /etc/bash.bashrc

# Create entrypoint
CMD ["/bin/bash"]

FROM prebuilt as prebuilt-sim
ENV CMAKE_GENERATOR=Ninja
ENV CCACHE_DIR=/ccache

COPY simulator.repos /autoware/

RUN source /opt/ros/"$ROS_DISTRO"/setup.bash \
&& vcs import src < simulator.repos \
&& apt update \
&& rosdep update \
&& DEBIAN_FRONTEND=noninteractive rosdep install -y --ignore-src --from-paths src --rosdistro "$ROS_DISTRO" \
&& colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release --packages-skip-build-finished \
&& find /autoware/install -type d -exec chmod 777 {} \; \
&& echo "source /autoware/install/setup.bash" > /etc/bash.bashrc

# Create entrypoint
CMD ["/bin/bash"]
2 changes: 1 addition & 1 deletion docker/autoware-openadk/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ export rosdistro

set -x
# Build base images
docker buildx bake --load --progress=plain -f "$SCRIPT_DIR/base/docker-bake.hcl" \
docker buildx bake --load --progress=plain -f "$SCRIPT_DIR/docker-bake.hcl" \
--set "*.context=$WORKSPACE_ROOT" \
--set "*.ssh=default" \
--set "*.platform=$platform" \
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
group "default" {
targets = ["base", "devel", "prebuilt", "monolithic", "planning-control"]
targets = ["base", "devel", "prebuilt", "monolithic", "planning-control", "simulator"]
}

// For docker/metadata-action
Expand Down
15 changes: 11 additions & 4 deletions docker/autoware-openadk/services/planning-control/.bash_aliases
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# planning-control launch
alias awf-launch-planning-control='ros2 launch /launch/planning-control.launch.xml map_path:=/autoware/map/ vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit'
function download_planning_map() {
if [ ! -f ~/autoware_map/sample-map-planning.zip ]; then
gdown -O ~/autoware_map/ 'https://docs.google.com/uc?export=download&id=1499_nsbUbIeturZaDj7jhUownh5fvXHd'
unzip -d ~/autoware_map ~/autoware_map/sample-map-planning.zip
fi
}

alias awf-launch-planning-sim='download_planning_map&&ros2 launch autoware_launch planning_simulator.launch.xml map_path:=$HOME/autoware_map/sample-map-planning vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit'

# vanilla autoware launch
alias awf-launch-autoware='ros2 launch autoware_launch autoware.launch.xml map_path:=/autoware/map/sample-map-rosbag/ vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit'

# planning-control launch
alias awf-launch-with-sample-map='ros2 launch /launch/planning-control.launch.xml map_path:=$HOME/autoware_map/sample-map-planning vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit'
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ RUN --mount=type=ssh \

# Bugfix rviz2 black-screen problem with some nvidia drivers: https://github.com/ros2/rviz/issues/948
RUN apt update && apt install -y software-properties-common && add-apt-repository ppa:kisak/kisak-mesa && apt install -y \
libegl-mesa0 libegl1-mesa-dev libgbm-dev libgbm1 libgl1-mesa-dev libgl1-mesa-dri libglapi-mesa libglx-mesa0
libegl-mesa0 libegl1-mesa-dev libgbm-dev libgbm1 libgl1-mesa-dev libgl1-mesa-dri libglapi-mesa libglx-mesa0 unzip

# Copy bash aliases
COPY docker/autoware-openadk/services/planning-control/.bash_aliases /root/.bash_aliases
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
<?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="data_path" default="$(env HOME)/autoware_data" description="packages data and artifacts directory path"/>

<!-- Optional parameters -->
<!-- Map -->
<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"/>
<!-- System -->
<arg name="launch_system_monitor" default="false" description="launch system monitor"/>
<arg name="launch_dummy_diag_publisher" default="false" description="launch dummy diag publisher"/>
<!-- 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="perception/use_base_link_z" default="true" description="dummy perception uses base_link z axis coordinate if it is true"/>
<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"/>
<!-- Tools -->
<arg name="rviz" default="true" description="launch rviz"/>
<arg name="rviz_config" default="$(find-pkg-share autoware_launch)/rviz/autoware.rviz" description="rviz config"/>
<let name="rviz_respawn" value="false" if="$(var scenario_simulation)"/>
<let name="rviz_respawn" value="true" unless="$(var scenario_simulation)"/>
<!-- Vcu emulation -->
<arg name="vehicle_simulation" default="true" description="use vehicle simulation"/>

<group scoped="false">
<!-- Vehicle -->
<let name="launch_vehicle_interface" value="false" if="$(var vehicle_simulation)"/>
<let name="launch_vehicle_interface" value="true" unless="$(var vehicle_simulation)"/>

<include file="$(find-pkg-share autoware_launch)/launch/autoware.launch.xml">
<!-- Common -->
<arg name="map_path" value="$(var map_path)"/>
<arg name="vehicle_model" value="$(var vehicle_model)"/>
<arg name="sensor_model" value="$(var sensor_model)"/>
<arg name="data_path" value="$(var data_path)"/>
<!-- Modules to be launched -->
<arg name="launch_sensing" value="false"/>
<arg name="launch_localization" value="false"/>
<arg name="launch_perception" value="false"/>
<!-- Pointcloud container -->
<arg name="use_pointcloud_container" value="false"/>
<!-- Vehicle -->
<arg name="launch_vehicle_interface" value="$(var launch_vehicle_interface)"/>
<!-- System -->
<arg name="system_run_mode" value="planning_simulation"/>
<arg name="launch_system_monitor" value="$(var launch_system_monitor)"/>
<arg name="launch_dummy_diag_publisher" value="$(var launch_dummy_diag_publisher)"/>
<!-- Map -->
<arg name="lanelet2_map_file" value="$(var lanelet2_map_file)"/>
<arg name="pointcloud_map_file" value="$(var pointcloud_map_file)"/>
<!-- Tools -->
<arg name="rviz" value="$(var rviz)"/>
<arg name="rviz_config" value="$(var rviz_config)"/>
<arg name="rviz_respawn" value="$(var rviz_respawn)"/>
</include>
</group>

<!-- Simulator -->
<group>
<let name="launch_dummy_perception" value="false" if="$(var scenario_simulation)"/>
<let name="launch_dummy_perception" value="true" unless="$(var scenario_simulation)"/>
<let name="launch_dummy_vehicle" value="false" if="$(var scenario_simulation)"/>
<let name="launch_dummy_vehicle" value="true" unless="$(var scenario_simulation)"/>
<let name="launch_dummy_localization" value="true"/>
<let name="launch_diagnostic_converter" value="$(var scenario_simulation)"/>

<include file="$(find-pkg-share autoware_launch)/launch/components/tier4_simulator_component.launch.xml">
<arg name="launch_dummy_perception" value="$(var launch_dummy_perception)"/>
<arg name="launch_dummy_vehicle" value="$(var launch_dummy_vehicle)"/>
<arg name="launch_dummy_localization" value="$(var launch_dummy_localization)"/>
<arg name="launch_diagnostic_converter" value="$(var launch_diagnostic_converter)"/>
<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="perception/use_base_link_z" value="$(var perception/use_base_link_z)"/>
<arg name="sensing/visible_range" value="$(var sensing/visible_range)"/>
<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>
</group>
</launch>
5 changes: 1 addition & 4 deletions docker/autoware-openadk/services/simulator/.bash_aliases
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
# planning simulator
alias awf-launch-sample-planning-sim='ros2 launch scenario_test_runner scenario_test_runner.launch.py architecture_type:=awf/universe record:=false scenario:=/autoware/scenario-sim/yield_maneuver_demo.yaml sensor_model:=sample_sensor_kit vehicle_model:=sample_vehicle map_path:=/autoware/scenario-sim/map/'
alias awf-launch-rviz='rviz2 -d $(find-pkg-share autoware_launch)/rviz/autoware.rviz'

# rosbag replay simulator
alias awf-launch-sample-rosbag-sim='ros2 launch autoware_launch logging_simulator.launch.xml map_path:=/autoware/map/sample-map-rosbag vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit'

# vanilla autoware launch
alias awf-launch-autoware='ros2 launch autoware_launch autoware.launch.xml map_path:=/autoware/map/sample-map-rosbag/ vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit'
22 changes: 17 additions & 5 deletions docker/autoware-openadk/services/simulator/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,25 +1,37 @@
ARG PLATFORM
ARG ROS_DISTRO
FROM ghcr.io/autowarefoundation/autoware-openadk:base-${ROS_DISTRO}-${PLATFORM} as base
FROM ghcr.io/autowarefoundation/autoware-openadk:base-${ROS_DISTRO}-${PLATFORM} as simulator

SHELL ["/bin/bash", "-o", "pipefail", "-c"]

ARG PLATFORM
ARG ROS_DISTRO

# Copy install folder from prebuilt
FROM ghcr.io/autowarefoundation/autoware-openadk:prebuilt-${ROS_DISTRO}-${PLATFORM} as prebuilt
FROM base as simulator
COPY --from=prebuilt /autoware/install/ /autoware/install/
# # Copy install folder from prebuilt
# FROM ghcr.io/autowarefoundation/autoware-openadk:prebuilt-sim-${ROS_DISTRO}-${PLATFORM} as prebuilt
# FROM base as simulator
# COPY --from=prebuilt /autoware/install/ /autoware/install/

COPY simulator.repos /autoware/

# Set up runtime environment
RUN --mount=type=ssh \
mkdir src \
&& vcs import src < simulator.repos \
&& vcs import src < /autoware/src/simulator/scenario_simulator/dependency_humble.repos \
&& apt update \
&& rosdep update \
&& DEBIAN_FRONTEND=noninteractive rosdep install -y --rosdistro "$ROS_DISTRO" --ignore-src --from-paths src \
&& source /opt/ros/"$ROS_DISTRO"/setup.bash \
&& colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release --cmake-args \
" -Wno-dev" \
" --no-warn-unused-cli" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
&& find /autoware/install -type d -exec chmod 777 {} \; \
&& echo "source /autoware/install/setup.bash" > /etc/bash.bashrc \
# Remove unnecessary files
&& apt-get autoremove -y && apt-get clean -y && rm -rf /var/lib/apt/lists/* "$HOME"/.cache \
&& find /usr/lib/$PLATFORM-linux-gnu -name "*.a" -type f -delete \
Expand Down
7 changes: 1 addition & 6 deletions simulator.repos
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,4 @@ repositories:
simulator/scenario_simulator:
type: git
url: https://github.com/tier4/scenario_simulator_v2.git
version: master

simulator/external:
type: git
url: https://github.com/mitsudome-r/embree_vendor
version: v3.13.5_arm
version: master

0 comments on commit 8ee975e

Please sign in to comment.