From e7ad3030a871f170b58c7de82a3f23f435ba5814 Mon Sep 17 00:00:00 2001 From: Yutaka Kondo Date: Wed, 18 Sep 2024 16:58:00 +0900 Subject: [PATCH 01/14] fix(docker): remove TODO comments and unnecessary copies of source code (#5253) --- docker/Dockerfile | 6 ------ 1 file changed, 6 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index d53659d5c17..bc2917ca949 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -65,9 +65,6 @@ RUN rosdep update && rosdep keys --ignore-src --from-paths src \ COPY src/universe/external /autoware/src/universe/external COPY src/universe/autoware.universe/common /autoware/src/universe/autoware.universe/common -# TODO(youtalk): Remove COPYs when https://github.com/autowarefoundation/autoware.universe/issues/8695 is resolved -COPY src/universe/autoware.universe/simulator/dummy_perception_publisher /autoware/src/universe/autoware.universe/simulator/dummy_perception_publisher -COPY src/universe/autoware.universe/vehicle/autoware_vehicle_info_utils /autoware/src/universe/autoware.universe/vehicle/autoware_vehicle_info_utils RUN rosdep keys --ignore-src --from-paths src \ | xargs rosdep resolve --rosdistro ${ROS_DISTRO} \ | grep -v '^#' \ @@ -223,9 +220,6 @@ RUN --mount=type=ssh \ # hadolint ignore=SC1091 RUN --mount=type=cache,target=${CCACHE_DIR} \ --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/common,target=/autoware/src/universe/autoware.universe/common \ - # TODO(youtalk): Remove --mount options when https://github.com/autowarefoundation/autoware.universe/issues/8695 is resolved - --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/simulator/dummy_perception_publisher,target=/autoware/src/universe/autoware.universe/simulator/dummy_perception_publisher \ - --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/vehicle/autoware_vehicle_info_utils,target=/autoware/src/universe/autoware.universe/vehicle/autoware_vehicle_info_utils \ --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/external,target=/autoware/src/universe/external \ source /opt/ros/"$ROS_DISTRO"/setup.bash \ && source /opt/autoware/setup.bash \ From 508036eae984b051a6b734b9e9f1d42b497eaf3e Mon Sep 17 00:00:00 2001 From: "awf-autoware-bot[bot]" <94889083+awf-autoware-bot[bot]@users.noreply.github.com> Date: Thu, 19 Sep 2024 01:52:21 +0000 Subject: [PATCH 02/14] ci(pre-commit): autoupdate (#5247) Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: github-actions --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 26c5585f4fc..e6c3aba177d 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -38,7 +38,7 @@ repos: - id: shellcheck - repo: https://github.com/scop/pre-commit-shfmt - rev: v3.8.0-1 + rev: v3.9.0-1 hooks: - id: shfmt args: [-w, -s, -i=4] From 549a7f85eb605053651ddb9edd45e1148ea65122 Mon Sep 17 00:00:00 2001 From: Khalil Selyan <36904941+KhalilSelyan@users.noreply.github.com> Date: Thu, 19 Sep 2024 16:15:20 +0300 Subject: [PATCH 03/14] feat: qt5ct dark mode integration using ansible (#4838) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: KhalilSelyan Co-authored-by: M. Fatih Cırıt --- ansible/playbooks/install_rviz_theme.yaml | 4 + ansible/playbooks/universe.yaml | 3 + ansible/roles/qt5ct_setup/README.md | 60 + ansible/roles/qt5ct_setup/defaults/main.yml | 1 + .../autoware-rviz-icons/active/downarrow.svg | 19 + .../autoware-rviz-icons/active/uparrow.svg | 19 + .../disabled/branch-end.svg | 24 + .../disabled/branch-more.svg | 24 + .../disabled/downarrow.svg | 19 + .../disabled/leftarrow.svg | 19 + .../disabled/radiobutton_checked.svg | 22 + .../disabled/radiobutton_unchecked.svg | 19 + .../disabled/rightarrow.svg | 19 + .../autoware-rviz-icons/disabled/uparrow.svg | 19 + .../autoware-rviz-icons/disabled/vline.svg | 23 + .../files/autoware-rviz-icons/primary/add.svg | 1 + .../primary/branch-closed.svg | 1 + .../primary/branch-end.svg | 24 + .../primary/branch-more.svg | 24 + .../primary/branch-open.svg | 1 + .../primary/checkbox_checked_disabled.svg | 1 + .../primary/checkbox_checked_enabled.svg | 1 + .../primary/checkbox_checked_hovered.svg | 1 + .../primary/checkbox_checked_pressed.svg | 1 + .../checkbox_indeterminate_disabled.svg | 1 + .../checkbox_indeterminate_enabled.svg | 1 + .../checkbox_indeterminate_hovered.svg | 1 + .../checkbox_indeterminate_pressed.svg | 1 + .../primary/checkbox_unchecked_disabled.svg | 1 + .../primary/checkbox_unchecked_enabled.svg | 1 + .../primary/checkbox_unchecked_hovered.svg | 1 + .../primary/checkbox_unchecked_pressed.svg | 1 + .../autoware-rviz-icons/primary/close.svg | 1 + .../autoware-rviz-icons/primary/downarrow.svg | 19 + .../autoware-rviz-icons/primary/float.svg | 20 + .../autoware-rviz-icons/primary/leftarrow.svg | 19 + .../autoware-rviz-icons/primary/minus.svg | 1 + .../autoware-rviz-icons/primary/more.svg | 1 + .../primary/radiobutton_checked.svg | 22 + .../primary/radiobutton_checked_invert.svg | 22 + .../primary/radiobutton_unchecked.svg | 19 + .../primary/radiobutton_unchecked_invert.svg | 19 + .../primary/rightarrow.svg | 19 + .../autoware-rviz-icons/primary/sizegrip.svg | 29 + .../autoware-rviz-icons/primary/slider.svg | 19 + .../primary/splitter-horizontal.svg | 3 + .../primary/splitter-vertical.svg | 3 + .../autoware-rviz-icons/primary/tab_close.svg | 20 + .../primary/toolbar-handle-horizontal.svg | 31 + .../primary/toolbar-handle-vertical.svg | 31 + .../autoware-rviz-icons/primary/uparrow.svg | 19 + ansible/roles/qt5ct_setup/files/autoware.qss | 1392 +++++++++++++++++ ansible/roles/qt5ct_setup/files/qt5ct.conf | 35 + ansible/roles/qt5ct_setup/meta/main.yml | 0 ansible/roles/qt5ct_setup/tasks/main.yml | 81 + 55 files changed, 2182 insertions(+) create mode 100644 ansible/playbooks/install_rviz_theme.yaml create mode 100644 ansible/roles/qt5ct_setup/README.md create mode 100644 ansible/roles/qt5ct_setup/defaults/main.yml create mode 100644 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/active/downarrow.svg create mode 100644 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/active/uparrow.svg create mode 100755 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/branch-end.svg create mode 100755 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/branch-more.svg create mode 100755 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/downarrow.svg create mode 100755 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/leftarrow.svg create mode 100755 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/radiobutton_checked.svg create mode 100755 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/radiobutton_unchecked.svg create mode 100755 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/rightarrow.svg create mode 100755 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/uparrow.svg create mode 100755 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/vline.svg create mode 100644 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/add.svg create mode 100755 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/branch-closed.svg create mode 100755 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/branch-end.svg create mode 100755 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/branch-more.svg create mode 100755 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/branch-open.svg create mode 100644 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_checked_disabled.svg create mode 100644 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_checked_enabled.svg create mode 100644 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_checked_hovered.svg create mode 100644 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_checked_pressed.svg create mode 100644 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_indeterminate_disabled.svg create mode 100644 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_indeterminate_enabled.svg create mode 100644 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_indeterminate_hovered.svg create mode 100644 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_indeterminate_pressed.svg create mode 100644 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_unchecked_disabled.svg create mode 100644 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_unchecked_enabled.svg create mode 100644 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_unchecked_hovered.svg create mode 100644 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_unchecked_pressed.svg create mode 100755 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/close.svg create mode 100755 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/downarrow.svg create mode 100755 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/float.svg create mode 100755 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/leftarrow.svg create mode 100644 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/minus.svg create mode 100644 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/more.svg create mode 100755 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/radiobutton_checked.svg create mode 100755 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/radiobutton_checked_invert.svg create mode 100755 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/radiobutton_unchecked.svg create mode 100755 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/radiobutton_unchecked_invert.svg create mode 100755 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/rightarrow.svg create mode 100755 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/sizegrip.svg create mode 100755 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/slider.svg create mode 100644 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/splitter-horizontal.svg create mode 100644 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/splitter-vertical.svg create mode 100755 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/tab_close.svg create mode 100755 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/toolbar-handle-horizontal.svg create mode 100755 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/toolbar-handle-vertical.svg create mode 100755 ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/uparrow.svg create mode 100644 ansible/roles/qt5ct_setup/files/autoware.qss create mode 100644 ansible/roles/qt5ct_setup/files/qt5ct.conf create mode 100644 ansible/roles/qt5ct_setup/meta/main.yml create mode 100644 ansible/roles/qt5ct_setup/tasks/main.yml diff --git a/ansible/playbooks/install_rviz_theme.yaml b/ansible/playbooks/install_rviz_theme.yaml new file mode 100644 index 00000000000..a30b0900ddf --- /dev/null +++ b/ansible/playbooks/install_rviz_theme.yaml @@ -0,0 +1,4 @@ +- name: Install RViz theme + hosts: localhost + roles: + - autoware.dev_env.qt5ct_setup diff --git a/ansible/playbooks/universe.yaml b/ansible/playbooks/universe.yaml index e443c041bc5..ce32248d98b 100644 --- a/ansible/playbooks/universe.yaml +++ b/ansible/playbooks/universe.yaml @@ -62,3 +62,6 @@ # ONNX files and other artifacts - role: autoware.dev_env.artifacts when: prompt_download_artifacts == 'y' + + # Qt5ct setup (RViz theme) + - role: autoware.dev_env.qt5ct_setup diff --git a/ansible/roles/qt5ct_setup/README.md b/ansible/roles/qt5ct_setup/README.md new file mode 100644 index 00000000000..41fc944eb4e --- /dev/null +++ b/ansible/roles/qt5ct_setup/README.md @@ -0,0 +1,60 @@ +# qt5ct_setup Ansible role + +## Overview + +The `qt5ct_setup` Ansible role automates the configuration of the `qt5ct` environment for Autoware. +It won't affect the system-wide configuration. + +## Installation + +Follow the instructions below to **install** or **update** the custom theme for `RViz2` in Autoware. + +> **Important:** Both commands must be run when you want to update the theme. + +```bash +cd ~/autoware # The root directory of the cloned repository +ansible-galaxy collection install -f -r "ansible-galaxy-requirements.yaml" +ansible-playbook autoware.dev_env.install_rviz_theme --ask-become-pass +``` + +## How to use the custom theme in RViz2 + +To apply a custom theme to RViz2, you can use the `qt5ct` platform theme. Follow these steps to ensure that the `QT_QPA_PLATFORMTHEME` environment variable is set correctly for your RViz2 instance when used with Autoware. + +### Manual setup for running RViz2 + +Before running RViz2 manually, set the `QT_QPA_PLATFORMTHEME` environment variable to `qt5ct`. +This ensures that the custom theme settings are applied. + +```bash +export QT_QPA_PLATFORMTHEME=qt5ct +``` + +Then, start RViz2 as usual. + +```bash +rviz2 +``` + +### Automatic setup in Autoware + +In Autoware, the `QT_QPA_PLATFORMTHEME` environment variable is automatically set within the main [autoware.launch.xml](https://github.com/autowarefoundation/autoware_launch/blob/main/autoware_launch/launch/autoware.launch.xml) file. +Therefore, you do not need to manually set this environment variable when launching Autoware. + +In the `autoware.launch.xml` file, RViz2 is configured with the following `` element: + +```xml + + + +``` + +This configuration automatically sets the `QT_QPA_PLATFORMTHEME` to `qt5ct` when RViz2 is launched as part of Autoware. +It also includes additional options such as respawn behavior and custom RViz2 configurations. diff --git a/ansible/roles/qt5ct_setup/defaults/main.yml b/ansible/roles/qt5ct_setup/defaults/main.yml new file mode 100644 index 00000000000..bdaab0e3e6d --- /dev/null +++ b/ansible/roles/qt5ct_setup/defaults/main.yml @@ -0,0 +1 @@ +# defaults file for qt5ct_setup diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/active/downarrow.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/active/downarrow.svg new file mode 100644 index 00000000000..22a70a5fbc9 --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/active/downarrow.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/active/uparrow.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/active/uparrow.svg new file mode 100644 index 00000000000..b283329b32b --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/active/uparrow.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/branch-end.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/branch-end.svg new file mode 100755 index 00000000000..decd600a806 --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/branch-end.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/branch-more.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/branch-more.svg new file mode 100755 index 00000000000..669c8ee6b77 --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/branch-more.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/downarrow.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/downarrow.svg new file mode 100755 index 00000000000..22a70a5fbc9 --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/downarrow.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/leftarrow.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/leftarrow.svg new file mode 100755 index 00000000000..a1b5eb770c3 --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/leftarrow.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/radiobutton_checked.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/radiobutton_checked.svg new file mode 100755 index 00000000000..462030e6b75 --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/radiobutton_checked.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/radiobutton_unchecked.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/radiobutton_unchecked.svg new file mode 100755 index 00000000000..73e58ac050b --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/radiobutton_unchecked.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/rightarrow.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/rightarrow.svg new file mode 100755 index 00000000000..31224808311 --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/rightarrow.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/uparrow.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/uparrow.svg new file mode 100755 index 00000000000..b283329b32b --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/uparrow.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/vline.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/vline.svg new file mode 100755 index 00000000000..67f84120ce2 --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/disabled/vline.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/add.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/add.svg new file mode 100644 index 00000000000..c747fc89c49 --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/add.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/branch-closed.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/branch-closed.svg new file mode 100755 index 00000000000..43acdf27491 --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/branch-closed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/branch-end.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/branch-end.svg new file mode 100755 index 00000000000..87f7840f363 --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/branch-end.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/branch-more.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/branch-more.svg new file mode 100755 index 00000000000..9f8af0ba8c3 --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/branch-more.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/branch-open.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/branch-open.svg new file mode 100755 index 00000000000..d22353f4e9e --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/branch-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_checked_disabled.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_checked_disabled.svg new file mode 100644 index 00000000000..f737c436438 --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_checked_disabled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_checked_enabled.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_checked_enabled.svg new file mode 100644 index 00000000000..d9eee3a1e08 --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_checked_enabled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_checked_hovered.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_checked_hovered.svg new file mode 100644 index 00000000000..b49a8cf315b --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_checked_hovered.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_checked_pressed.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_checked_pressed.svg new file mode 100644 index 00000000000..5d3bccb1941 --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_checked_pressed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_indeterminate_disabled.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_indeterminate_disabled.svg new file mode 100644 index 00000000000..8f9b9ae512c --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_indeterminate_disabled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_indeterminate_enabled.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_indeterminate_enabled.svg new file mode 100644 index 00000000000..797fb421df9 --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_indeterminate_enabled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_indeterminate_hovered.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_indeterminate_hovered.svg new file mode 100644 index 00000000000..43b20a76820 --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_indeterminate_hovered.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_indeterminate_pressed.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_indeterminate_pressed.svg new file mode 100644 index 00000000000..a39172c056a --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_indeterminate_pressed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_unchecked_disabled.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_unchecked_disabled.svg new file mode 100644 index 00000000000..873587b1985 --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_unchecked_disabled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_unchecked_enabled.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_unchecked_enabled.svg new file mode 100644 index 00000000000..265a55067f5 --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_unchecked_enabled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_unchecked_hovered.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_unchecked_hovered.svg new file mode 100644 index 00000000000..27990330dc2 --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_unchecked_hovered.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_unchecked_pressed.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_unchecked_pressed.svg new file mode 100644 index 00000000000..e9c0436eb7e --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/checkbox_unchecked_pressed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/close.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/close.svg new file mode 100755 index 00000000000..fed396b0d88 --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/close.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/downarrow.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/downarrow.svg new file mode 100755 index 00000000000..8176e8f50b0 --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/downarrow.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/float.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/float.svg new file mode 100755 index 00000000000..bb2383e4ec7 --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/float.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/leftarrow.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/leftarrow.svg new file mode 100755 index 00000000000..e595c0d652d --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/leftarrow.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/minus.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/minus.svg new file mode 100644 index 00000000000..7be3c893e40 --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/more.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/more.svg new file mode 100644 index 00000000000..c11e849e587 --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/more.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/radiobutton_checked.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/radiobutton_checked.svg new file mode 100755 index 00000000000..ea2d8183e3d --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/radiobutton_checked.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/radiobutton_checked_invert.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/radiobutton_checked_invert.svg new file mode 100755 index 00000000000..92003b1b80c --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/radiobutton_checked_invert.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/radiobutton_unchecked.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/radiobutton_unchecked.svg new file mode 100755 index 00000000000..ec6ee7a3213 --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/radiobutton_unchecked.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/radiobutton_unchecked_invert.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/radiobutton_unchecked_invert.svg new file mode 100755 index 00000000000..5defd965a50 --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/radiobutton_unchecked_invert.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/rightarrow.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/rightarrow.svg new file mode 100755 index 00000000000..4845aa5975c --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/rightarrow.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/sizegrip.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/sizegrip.svg new file mode 100755 index 00000000000..6a3d5ec4839 --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/sizegrip.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/slider.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/slider.svg new file mode 100755 index 00000000000..ecd7581285f --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/slider.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/splitter-horizontal.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/splitter-horizontal.svg new file mode 100644 index 00000000000..6be8cb04a16 --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/splitter-horizontal.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/splitter-vertical.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/splitter-vertical.svg new file mode 100644 index 00000000000..d4819f465e5 --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/splitter-vertical.svg @@ -0,0 +1,3 @@ + + + diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/tab_close.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/tab_close.svg new file mode 100755 index 00000000000..3c758445d0a --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/tab_close.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/toolbar-handle-horizontal.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/toolbar-handle-horizontal.svg new file mode 100755 index 00000000000..0d639307250 --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/toolbar-handle-horizontal.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/toolbar-handle-vertical.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/toolbar-handle-vertical.svg new file mode 100755 index 00000000000..b6b267ead6f --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/toolbar-handle-vertical.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/uparrow.svg b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/uparrow.svg new file mode 100755 index 00000000000..cab8eba2ab5 --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware-rviz-icons/primary/uparrow.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/ansible/roles/qt5ct_setup/files/autoware.qss b/ansible/roles/qt5ct_setup/files/autoware.qss new file mode 100644 index 00000000000..d0e2af381f7 --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/autoware.qss @@ -0,0 +1,1392 @@ +/* ------------------------------------------------------------------------ */ +/* QtMaterial - https://github.com/UN-GCPDS/qt-material +/* By Yeison Cardona - GCPDS +/* ------------------------------------------------------------------------ */ + +* { + color: #ffffff; + font-family: Roboto, sans-serif; + font-size: 13px; + line-height: 13px; + selection-color: #0f1417; +} + +*:focus { + outline: none; +} + +/* Basic widgets */ + +QWidget { + background-color: #0f1417; +} + +QGroupBox, +QFrame { + background-color: #0f1417; +} + +QGroupBox.fill_background, +QFrame.fill_background { + background-color: #0f1417; +} + +QSplitter { + background-color: transparent; + border: none; +} + +QStatusBar { + color: #ffffff; + background-color: #0f1417; + border-radius: 0px; +} + +QScrollArea, +QStackedWidget, +QWidget > QToolBox, +QToolBox > QWidget, +QTabWidget > QWidget { + border: none; +} + +QTabWidget::pane { + border: none; +} + +/* ------------------------------------------------------------------------ */ +/* Inputs */ + +QDateEdit, +QDateTimeEdit, +QSpinBox, +QDoubleSpinBox, +QComboBox, +QLineEdit { + color: #ffffff; + padding-left: 16px; + border-radius: 0px; + height: 24px; + background-color: #0f1417; +} + +QListView { + color: #ffffff; + height: 24px; + background-color: #1b2023; + selection-background-color: #303538; + selection-color: #ffffff; +} + +QPlainTextEdit { + padding: 8px 0px; + background-color: #0f1417; + border: 2px solid #0f1417; +} + +QTextEdit { + padding: 8px 0px; + background-color: #0f1417; +} + +QSpinBox, +QDoubleSpinBox { + color: #ffffff; + background-color: #292d30; + height: 24px; + border-bottom: 1px solid #DFE3E7; + selection-background-color: #84c2e6; +} + +QAbstractSpinBox { + padding: 2px; +} + +QDateEdit:disabled, +QDateTimeEdit:disabled, +QSpinBox:disabled, +QDoubleSpinBox:disabled, +QTextEdit:disabled, +QLineEdit:disabled { + color: rgba(255, 255, 255, 0.2); + background-color: rgba(35, 38, 41, 0.3); + border: 2px solid #232629; + border-width: 0 0 2px 0; + padding: 0px 16px; + border-radius: 0px; + height: 24px; +} + +/* ------------------------------------------------------------------------ */ +/* QComboBox */ + +QDateEdit, +QComboBox { + color: #ffffff; + height: 24px; + background-color: #292d30; + border-bottom: 1px solid #DFE3E7; +} + +QDateEdit:disabled, +QComboBox:disabled { + color: rgba(255, 255, 255, 0.2); + background-color: rgba(35, 38, 41, 0.3); + border-bottom: 2px solid #232629; +} + +QDateEdit::drop-down, +QComboBox::drop-down { + border: none; +} + +QDateEdit::down-arrow, +QComboBox::down-arrow { + image: url("/icons_path/active/downarrow.svg"); +} + +QDateEdit::down-arrow:focus, +QComboBox::down-arrow:focus { + image: url("/icons_path/primary/downarrow.svg"); +} + +QDateEdit::down-arrow:disabled, +QComboBox::down-arrow:disabled { + image: url("/icons_path/disabled/downarrow.svg"); +} + +QDateEdit QAbstractItemView, +QComboBox QAbstractItemView { + background-color: #0f1417; + padding: 4px; +} + +QDateEdit[frame="false"], +QComboBox[frame="false"] { + color: #ffffff; + background-color: transparent; + border: 1px solid transparent; +} + +QDateEdit[frame="false"]:disabled, +QComboBox[frame="false"]:disabled { + color: rgba(255, 255, 255, 0.2); +} + +/* ------------------------------------------------------------------------ */ +/* Spin buttons */ + +QDateTimeEdit::up-button, +QDoubleSpinBox::up-button, +QSpinBox::up-button { + subcontrol-origin: border; + subcontrol-position: top right; + width: 20px; + image: url("/icons_path/active/uparrow.svg"); + border-width: 0px; + margin-top: 5px; +} + +QTreeView QDateTimeEdit::up-button, +QTreeView QDoubleSpinBox::up-button, +QTreeView QSpinBox::up-button { + margin-top: 0px; +} + +QDateTimeEdit::up-button:disabled, +QDoubleSpinBox::up-button:disabled, +QSpinBox::up-button:disabled { + image: url("/icons_path/disabled/uparrow.svg"); +} + +QDateTimeEdit::down-button, +QDoubleSpinBox::down-button, +QSpinBox::down-button { + subcontrol-origin: border; + subcontrol-position: bottom right; + width: 20px; + image: url("/icons_path/active/downarrow.svg"); + border-width: 0px; + border-top-width: 0; + margin-bottom: 5px; +} + +QTreeView QDateTimeEdit::down-button, +QTreeView QDoubleSpinBox::down-button, +QTreeView QSpinBox::down-button { + margin-bottom: 0px; +} + +QDateTimeEdit::down-button:disabled, +QDoubleSpinBox::down-button:disabled, +QSpinBox::down-button:disabled { + image: url("/icons_path/disabled/downarrow.svg"); +} + +/* ------------------------------------------------------------------------ */ +/* QPushButton */ + +QPushButton { + text-transform: capitalize; + margin: 0px; + padding: 0px 16px; + height: 24px; + font-weight: bold; + color: #003546; + border: 2px solid rgba(255, 255, 255, 0); + border-radius: 14px; + background-color: #8bd0f0; +} + +QPushButton:checked, +QPushButton:pressed { + color: #003546; + background-color: #84c2e6; +} + +QPushButton:hover { + background-color: #84c2e6; + color: #003546; + border: 2px solid rgba(255, 255, 255, 0); +} + +QPushButton:flat { + margin: 0px; + color: #84c2e6; + border: none; + background-color: transparent; +} + +QPushButton:flat:hover { + background-color: #84c2e6; +} + +QPushButton:flat:pressed, +QPushButton:flat:checked { + background-color: #699bb8; +} + +QPushButton:disabled { + color: #6e7276; + background-color: #292d30; + border: 2px solid rgba(255, 255, 255, 0); +} + +QPushButton:flat:disabled { + color: #6e7276; + background-color: #292d30; + border: none; +} + +QPushButton:checked:disabled { + color: #6e7276; + background-color: #0f1417; + border: 2px solid rgba(255, 255, 255, 0); +} + +QToolButton:focus, +QPushButton:focus { + background-color: #84c2e6; +} + +QPushButton:checked:focus, +QPushButton:pressed:focus { + background-color: #699bb8; +} + +QPushButton:flat:focus { + border: none; + background-color: #84c2e6; +} + +/* ------------------------------------------------------------------------ */ +/* QTabBar */ + +QTabBar { + text-transform: capitalize; + font-weight: bold; +} + +QTabBar::tab { + color: #ffffff; + border-top: 2px solid rgba(255, 255, 255, 0); +} + +QTabBar::tab:bottom, +QTabBar::tab:top { + padding: 0 16px; + height: 28px; +} + +QTabBar::tab:left, +QTabBar::tab:right { + padding: 16px 0; + width: 28px; +} + +QTabBar::tab:top:selected, +QTabBar::tab:top:hover { + border-bottom: 2px solid #8bd0f0; +} + +QTabBar::tab:bottom:selected, +QTabBar::tab:bottom:hover { + border-top: 2px solid #8bd0f0; +} + +QTabBar::tab:right:selected, +QTabBar::tab:right:hover { + border-left: 2px solid #8bd0f0; +} + +QTabBar::tab:left:selected, +QTabBar::tab:left:hover { + border-right: 2px solid #8bd0f0; +} + +QTabBar::tab:hover { + color: #fff; + background-color: #303538; +} + +QTabBar::tab:selected { + color: #fff; + background-color: #292d30; +} + +/* pressed state */ +QTabBar::tab:pressed { + color: #fff; + background-color: #383b3f; +} + +QTabBar QToolButton:hover, +QTabBar QToolButton { + border: 0px; + background-color: #232629; +} + +QTabBar QToolButton::up-arrow { + image: url("/icons_path/primary/uparrow.svg"); + width: 28px; +} + +QTabBar QToolButton::down-arrow { + image: url("/icons_path/primary/downarrow.svg"); + width: 28px; +} + +QTabBar QToolButton::right-arrow { + image: url("/icons_path/disabled/rightarrow.svg"); + height: 28px; +} + +QTabBar QToolButton::left-arrow { + image: url("/icons_path/disabled/leftarrow.svg"); + height: 28px; +} + +QTabBar::close-button { + image: url("/icons_path/primary/tab_close.svg"); +} + +QTabBar::close-button:hover { + image: url("/icons_path/primary/tab_close.svg"); +} + +/* ------------------------------------------------------------------------ */ +/* QGroupBox */ + +QGroupBox { + padding: 16px; + padding-top: 36px; + text-transform: capitalize; +} + +QGroupBox::title { + color: #dfe3e7; + subcontrol-origin: margin; + subcontrol-position: top left; + padding: 16px; + background-color: transparent; + height: 36px; +} + +/* ------------------------------------------------------------------------ */ +/* QRadioButton and QCheckBox labels */ + +QRadioButton, +QCheckBox { + color: #84c2e6; + line-height: 12px; + height: 24px; + background-color: transparent; + spacing: 5px; +} + +QRadioButton:disabled, +QCheckBox:disabled { + color: #8bd0f0; +} + +/* ------------------------------------------------------------------------ */ +/* QRadioButton Indicator */ + +QRadioButton::indicator:checked { + image: url("/icons_path/primary/radiobutton_checked.svg"); +} + +QRadioButton::indicator:unchecked { + image: url("/icons_path/primary/radiobutton_unchecked.svg"); +} + +QRadioButton::indicator:checked:disabled { + image: url("/icons_path/disabled/radiobutton_checked.svg"); +} + +QRadioButton::indicator:unchecked:disabled { + image: url("/icons_path/disabled/radiobutton_unchecked.svg"); +} + +/* ------------------------------------------------------------------------ */ +/* QDockWidget */ + +QDockWidget { + color: #ffffff; + text-transform: capitalize; + border: 2px solid #232629; + titlebar-close-icon: url("/icons_path/primary/close.svg"); + titlebar-normal-icon: url("/icons_path/primary/float.svg"); + border-radius: 4px; +} + +QDockWidget::title { + text-align: left; + padding-left: 36px; + padding: 3px; + margin-top: 4px; +} + +/* ------------------------------------------------------------------------ */ +/* QMenu */ + +QMenu { + background-color: #1b2023; + margin: 10px; +} + +QMenu::item { + height: 14px; + margin: 4px; + padding: 0px; + color: #ffffff; +} + +QMenu::item:selected { + background-color: #303538; + margin-top: 0px; + margin-bottom: 0px; +} + +QMenu::item:disabled { + color: rgba(255, 255, 255, 0.3); +} + +QMenu::separator { + height: 1px; + margin: 2px; + background-color:#40484C; +} + +QMenu::right-arrow { + image: url("/icons_path/primary/rightarrow.svg"); + width: 16px; + height: 16px; +} + +QMenu::right-arrow:selected { + image: url("/icons_path/disabled/rightarrow.svg"); +} + +/* QMenu Checkboxes */ + +QMenu::indicator:non-exclusive:unchecked { + image: url("/icons_path/primary/checkbox_unchecked_enabled.svg"); +} + +QMenu::indicator:non-exclusive:unchecked:selected { + image: url("/icons_path/primary/checkbox_unchecked_hovered.svg"); +} + +QMenu::indicator:non-exclusive:checked { + image: url("/icons_path/primary/checkbox_checked_enabled.svg"); +} + +QMenu::indicator:non-exclusive:checked:selected { + image: url("/icons_path/primary/checkbox_checked_hovered.svg"); +} + +/* QMenu Radiobuttons */ + +QMenu::indicator:exclusive:unchecked { + image: url("/icons_path/primary/radiobutton_unchecked.svg"); +} + +QMenu::indicator:exclusive:unchecked:selected { + image: url("/icons_path/primary/radiobutton_unchecked_invert.svg"); +} + +QMenu::indicator:exclusive:checked { + image: url("/icons_path/primary/radiobutton_checked.svg"); +} + +QMenu::indicator:exclusive:checked:selected { + image: url("/icons_path/primary/radiobutton_checked_invert.svg"); +} + +/* ------------------------------------------------------------------------ */ +/* QMenuBar */ + +QMenuBar { + background-color: #0f1417; + color: #ffffff; + border-bottom: 2px solid rgba(255, 255, 255, 0); +} + +QMenuBar::item { + /* height: 32px; */ + padding: 4px; + background-color: transparent; + color: #ffffff; +} + +QMenuBar::item:selected, +QMenuBar::item:pressed { + color: #ffffff; + background-color: #303538; +} + +/* ------------------------------------------------------------------------ */ +/* QToolBox */ + +QToolBox::tab { + background-color: #0f1417; + color: #ffffff; + text-transform: capitalize; + border-radius: 4px; + padding-left: 15px; +} + +QToolBox::tab:selected, +QToolBox::tab:hover { + background-color: #84c2e6; +} + +/* ------------------------------------------------------------------------ */ +/* QProgressBar */ + +QProgressBar { + border-radius: 0; + background-color: #0f1417; + text-align: center; + color: transparent; +} + +QProgressBar::chunk { + background-color: #84c2e6; +} + +/* ------------------------------------------------------------------------ */ +/* QScrollBar */ + +QScrollBar { + border: 0; + background: rgba(255, 255, 255, 0.15); + border-radius: 5px; +} + +QScrollBar:horizontal { + height: 10px; +} + +QScrollBar:vertical { + width: 10px; +} + +QScrollBar::handle { + background: #8bd0f0; + border-radius: 5px; +} + +QScrollBar::handle:horizontal { + min-width: 24px; +} + +QScrollBar::handle:vertical { + min-height: 24px; +} + +QScrollBar::handle:hover { + background-color: #84c2e6; +} + +QScrollBar::handle:pressed { + background-color: #699bb8; +} + +QScrollBar::add-line:vertical, +QScrollBar::sub-line:vertical, +QScrollBar::add-line:horizontal, +QScrollBar::sub-line:horizontal { + border: 0; + background: transparent; + width: 0px; + height: 0px; +} + +QScrollBar::sub-page:horizontal, +QScrollBar::add-page:horizontal, +QScrollBar::sub-page:vertical, +QScrollBar::add-page:vertical { + background: transparent; +} + +/* ------------------------------------------------------------------------ */ +/* QScrollBar-Big */ + +QScrollBar.big:horizontal { + border: 0; + background: #232629; + height: 36px; +} + +QScrollBar.big:vertical { + border: 0; + background: #232629; + width: 36px; +} + +QScrollBar.big::handle, +QScrollBar.big::handle:vertical:hover, +QScrollBar.big::handle:horizontal:hover { + background: #84c2e6; +} + +QScrollBar.big::handle:horizontal { + min-width: 24px; +} + +QScrollBar.big::handle:vertical { + min-height: 24px; +} + +QScrollBar.big::add-line:vertical, +QScrollBar.big::sub-line:vertical, +QScrollBar.big::add-line:horizontal, +QScrollBar.big::sub-line:horizontal { + border: 0; + background: transparent; + width: 0px; + height: 0px; +} + +/* ------------------------------------------------------------------------ */ +/* QSlider */ +QSlider { + min-height: 20px; + min-width: 20px; +} + +QSlider:horizontal { + min-height: 30px; + min-width: 30px; +} + +QSlider:vertical { +} + +QSlider::groove:horizontal { + border: 1px solid #262626; + height: 4px; + background: #0f1417; + margin: 0; +} + +QSlider::groove:vertical { + width: 4px; + background: #0f1417; + margin: 12px 0; +} + +QSlider::handle:horizontal { + width: 22px; + height: 18px; + margin: -9px -9px; +} + +QSlider::handle:vertical { + background: #84c2e6; + width: 9px; + height: 9px; + min-height: 0px; + margin: -9px -18px; +} + +QSlider::add-page { + background: #5e5e5e; +} + +QSlider::sub-page { + background: #84c2e6; +} + +/* ------------------------------------------------------------------------ */ +/* QLabel */ + +QLabel { + border: none; + background: transparent; + color: #ffffff; +} + +QLabel:disabled { + color: rgba(255, 255, 255, 0.2); +} + +/* ------------------------------------------------------------------------ */ +/* VLines and HLinex */ + +QFrame[frameShape="4"] { + border-width: 1px 0 0 0; + background: none; +} + +QFrame[frameShape="5"] { + border-width: 0 1px 0 0; + background: none; +} + +QFrame[frameShape="4"], +QFrame[frameShape="5"] { + border-color: #0f1417; +} + +/* ------------------------------------------------------------------------ */ +/* QToolBar */ + +QToolBar { + background: #0f1417; + border: 0px solid; +} + +QToolBar:horizontal { + /* border-bottom: 1px solid rgba(132, 194, 230, 0.7); */ + border-top: 1px solid rgba(132, 194, 230, 0.7); +} + +QToolBar:vertical { + border-right: 1px solid rgba(132, 194, 230, 0.7); + border-left: 1px solid rgba(132, 194, 230, 0.7); +} + +QToolBar::handle:horizontal { + image: url("/icons_path/primary/toolbar-handle-horizontal.svg"); +} + +QToolBar::handle:vertical { + image: url("/icons_path/primary/toolbar-handle-vertical.svg"); +} + +QToolBar::separator:horizontal { + border-top: 1px solid rgba(132, 194, 230, 0.7); + border-bottom: 1px solid rgba(132, 194, 230, 0.7); + width: 1px; +} + +QToolBar::separator:vertical { + border-top: 1px solid rgba(132, 194, 230, 0.7); + border-bottom: 1px solid rgba(132, 194, 230, 0.7); + height: 1px; +} + +/* ------------------------------------------------------------------------ */ +/* QToolButton */ + +QToolButton { + background: #171c1f; + border: 0px; + margin: 2px; + padding: 2px; + border-radius: 15px; + color: #8bd0f0; +} + +QToolButton:hover { + background: #262931; +} + +QToolButton:pressed { + background: #2d303a; +} + +QToolButton:checked { + background: #2d303a; + border: 1px solid #8bd0f0; +} + +/* ------------------------------------------------------------------------ */ +/* General viewers */ + +QTableView { + background-color: #0f1417; + border: 1px solid #232629; + border-radius: 4px; +} + +QTreeView, +QListView { + margin: 0px; + border: 0px; +} + +QTableView::item, +QTreeView::item, +QListView::item { + padding: 2px; + min-height: 12px; + color: #ffffff; + border-color: transparent; +} + +QListView::item { + margin-left: 0px; + margin-right: 2px; + background-color: #1b2023; +} + +/* ------------------------------------------------------------------------ */ +/* Items Selection */ + +QTableView::item:selected, +QTreeView::item:selected, +QListView::item:selected { + background-color: #303538; + color: #ffffff; +} + +QTableView::item:selected:focus, +QTreeView::item:selected:focus, +QListView::item:selected:focus { + color: #ffffff; +} + +QTableView::item:disabled { + color: #bdbdbd; + background-color: #303538; +} + +/* ------------------------------------------------------------------------ */ +/* QTreeView */ + +QTreeView::branch { + background-color: transparent; +} + +QTreeView::branch:hover { + background-color: transparent; +} + +QTreeView::branch:selected { + background-color: #303538; +} + +QTreeView::branch:closed:has-children:has-siblings, +QTreeView::branch:closed:has-children:!has-siblings { + image: url("/icons_path/primary/branch-closed.svg"); + margin-left: -8px; +} + +QTreeView::branch:open:has-children:!has-siblings, +QTreeView::branch:open:has-children:has-siblings { + image: url("/icons_path/primary/branch-open.svg"); + margin-left: -8px; +} + +/* Commented in case decided to show the branch icons */ +/* +QTreeView::branch:has-siblings:!adjoins-item { + border-image: url("/icons_path/disabled/vline.svg"); +} + +QTreeView::branch:has-siblings:adjoins-item { + border-image: url("/icons_path/disabled/branch-more.svg"); +} + +QTreeView::branch:!has-children:!has-siblings:adjoins-item, +QTreeView::branch:has-children:!has-siblings:adjoins-item { + border-image: url("/icons_path/disabled/branch-end.svg"); +} */ + +QTreeView QHeaderView::section { + border: none; +} + +/* QTableView */ + +QTableCornerButton::section { + background-color: #0f1417; + border-radius: 0px; + border-right: 1px solid; + border-bottom: 1px solid; + border-color: #31363b; +} + +QHeaderView { + border: none; +} + +QHeaderView::section { + color: rgba(255, 255, 255, 0.7); + text-transform: capitalize; + background-color: #0f1417; + padding: 4px 6px; + border-radius: 0px; + border-right: 1px solid; + border-bottom: 1px solid; + border-color: #31363b; +} + +QHeaderView::section:vertical { +} + +QHeaderView::section:horizontal { +} + +/* ------------------------------------------------------------------------ */ +/* QLCDNumber */ + +QLCDNumber { + color: #84c2e6; + background-color: #699bb8; + border: 1px solid rgba(132, 194, 230, 0.3); + border-radius: 4px; +} + +/* ------------------------------------------------------------------------ */ +/* QCalendarWidget */ + +QCalendarWidget { + min-height: 300px; +} + +#qt_calendar_prevmonth { + qproperty-icon: url("/icons_path/primary/leftarrow.svg"); +} + +#qt_calendar_nextmonth { + qproperty-icon: url("/icons_path/primary/rightarrow.svg"); +} + +/* ------------------------------------------------------------------------ */ +/* Inline QLineEdit */ + +QTreeView QLineEdit, +QTableView QLineEdit, +QListView QLineEdit { + color: #ffffff; + background-color: #0f1417; + /* border: 1px solid unset; */ + border-radius: unset; + padding: unset; + padding-left: unset; + height: unset; + border-width: unset; + border-top-left-radius: unset; + border-top-right-radius: unset; +} + +/* ------------------------------------------------------------------------ */ +/* QToolTip */ + +QToolTip { + padding: 4px; + border: 1px solid #31363b; + border-radius: 4px; + color: #ffffff; + background-color: #0f1417; +} + +/* ------------------------------------------------------------------------ */ +/* QDialog */ + +/* linux */ +QDialog QToolButton, +QDialog QToolButton:hover, +QDialog QToolButton:pressed, +QDialog QToolButton:checked { + border: 0px; + height: unset; + margin: unset; + padding: unset; + border-right: unset; + border-left: unset; + background-color: #84c2e6; + color: #ffffff; + border-radius: 8px; +} + +QDialog QToolButton:disabled { + background-color: #0f1417; + color: #ffffff; +} + +/* ------------------------------------------------------------------------ */ +/* Grips */ + +QMainWindow::separator:vertical, +QSplitter::handle:horizontal { + image: url("/icons_path/primary/splitter-vertical.svg"); + background-color: rgba(255, 255, 255, 0.03); + width: 15px; +} + +QMainWindow::separator:horizontal, +QSplitter::handle:vertical { + image: url("/icons_path/primary/splitter-horizontal.svg"); + background-color: rgba(255, 255, 255, 0.03); + height: 15px; +} + +QSizeGrip { + image: url("/icons_path/primary/sizegrip.svg"); + background-color: transparent; +} + +QMenuBar QToolButton:hover, +QMenuBar QToolButton:pressed, +QMenuBar QToolButton { + border-width: 0; + border-image: url("/icons_path/primary/rightarrow.svg"); + background-color: transparent; +} + +/* ------------------------------------------------------------------------ */ +/* Focus */ + +QDateTimeEdit:focus, +QSpinBox:focus, +QDoubleSpinBox:focus, +QComboBox:focus { + color: #fff; + border-bottom: 2px solid #8bd0f0; + background-color: #303538; +} + + +QDateTimeEdit::up-button:focus, +QDoubleSpinBox::up-button:focus, +QSpinBox::up-button:focus { + image: url("/icons_path/primary/uparrow.svg"); +} + +QDateTimeEdit::down-button:focus, +QDoubleSpinBox::down-button:focus, +QSpinBox::down-button:focus { + image: url("/icons_path/primary/downarrow.svg"); +} + +/* Special cases from rviz source code */ + +QToolButton[toolTip="Add a new tool"] { + qproperty-iconSize: 16px 16px; + qproperty-icon: url("/icons_path/primary/add.svg"); + background: #171c1f; + border: 0px; + margin: 2px; + padding: 0px; + border-radius: 12px; + width: 24px; + height: 24px; +} + +QToolButton[toolTip="Add a new tool"]:hover { + background: #262931; +} + +QToolButton[toolTip="Add a new tool"]:pressed { + background: #2d303a; +} + +QToolButton[toolTip="Remove a tool from the toolbar"] { + qproperty-iconSize: 16px 16px; + qproperty-icon: url("/icons_path/primary/minus.svg"); + background: #171c1f; + border: 0px; + margin: 2px; + padding: 0px; + border-radius: 12px; + width: 24px; + height: 24px; +} + +QToolButton[toolTip="Remove a tool from the toolbar"]:hover { + background: #262931; +} + +QToolButton[toolTip="Remove a tool from the toolbar"]:pressed { + background: #2d303a; +} + +QDialog { + background-color: #1b2023; +} + +QGroupBox[title="Tool Type"] > QTextBrowser { + background-color: #1b2023; +} + +QGroupBox[title="Tool Type"] { + background-color: #1b2023; +} +QGroupBox[title="Tool Type"] > QTreeView { + background-color: #1b2023; +} + +QGroupBox[title="Panel Name"] { + background-color: #1b2023; +} + +QGroupBox[title="Panel Name"] > QLineEdit { + background-color: #1b2023; +} + +QGroupBox[title="Panel Type"] > QTextBrowser { + background-color: #1b2023; +} + +QGroupBox[title="Panel Type"] { + background-color: #1b2023; +} +QGroupBox[title="Panel Type"] > QTreeView { + background-color: #1b2023; +} + +QGroupBox[title="Create visualization"] { + background-color: #1b2023; +} + +QGroupBox[title="Create visualization"] > QTextBrowser { + background-color: #1b2023; +} +QGroupBox[title="Display Name"] { + background-color: #1b2023; +} + +QGroupBox[title="Display Name"] > QLineEdit { + background-color: #1b2023; +} + +QGroupBox[title="Create visualization"] > QTabWidget { + background-color: #1b2023; +} + +QGroupBox[title="Create visualization"] QTabWidget QTreeWidget { + background-color: #1b2023; + color: white; +} +QGroupBox[title="Create visualization"] QCheckBox { + background-color: #1b2023; + color: white; +} + +QGroupBox[title="Create visualization"] QTabWidget::pane { + background-color: #1b2023; +} + +QGroupBox[title="Create visualization"] QTabBar::tab { + background-color: #1b2023; + color: white; +} + +QGroupBox[title="Create visualization"] QTabBar::tab:selected { + background-color: #383b3f; + border-bottom: 2px solid #8bd0f0; +} + +QGroupBox[title="Create visualization"] QTabBar::tab:!selected { + background-color: #1b2023; + border-bottom: 2px solid #1b2023; +} + +QGroupBox[title="Create visualization"] QTabBar::tab:hover { + color: #fff; + background-color: #292d30; + border-bottom: 2px solid #8bd0f0; +} + +QGroupBox[title="Create visualization"] QTabBar::tab:pressed { + color: #fff; + background-color: #383b3f; + border-bottom: 2px solid #8bd0f0; +} + +QGroupBox[title="Create visualization"] QFrame { + background-color: #1b2023; + border: none; + margin: 0px; + padding: 0px; +} + +QComboBox { + padding: 2px; + margin: 0px; +} + +/* QLineEdit */ +QLineEdit { + border-top-left-radius: 0px; + border-top-right-radius: 0px; + selection-background-color: #84c2e6; + +} + +QLineEdit > QPushButton { + qproperty-icon: url("/icons_path/primary/more.svg"); + qproperty-iconSize: 16px 16px; + qproperty-text: ""; + margin: 0px; + padding: 0px; + background: transparent; + border-radius: 0px; +} + +QLineEdit > QPushButton:hover { + background: transparent; + border-radius: 0px; +} + +/* Not entirely sure if this affects anything other than the close button */ +QDockWidget QToolButton { + qproperty-icon: url("/icons_path/primary/close.svg"); + qproperty-iconSize: 16px 16px; + background: transparent; +} + +QDockWidget QToolButton:hover { + background: #262931; +} + +/* Style the list view of the QComboBox */ +QComboBox QAbstractItemView { + background-color: #1b2023; + height: 16px; +} +QComboBox { + selection-background-color: #303538; + selection-color: #fff; +} + + +QGroupBox[title="Create visualization"] QCheckBox::indicator:enabled:checked, +QGroupBox[title="Create visualization"] QCheckBox::indicator:enabled:checked:selected, +QGroupBox[title="Create visualization"] QCheckBox::indicator:enabled:checked:focus, +QGroupBox[title="Create visualization"] QCheckBox::indicator:checked, +QTreeView::indicator:enabled:checked, +QTreeView::indicator:enabled:checked:selected, +QTreeView::indicator:enabled:checked:focus, +QTreeView::indicator:checked { + image: url("/icons_path/primary/checkbox_checked_enabled.svg"); +} + +QGroupBox[title="Create visualization"] QCheckBox::indicator:checked:selected:active, +QTreeView::indicator:checked:selected:active { + image: url("/icons_path/primary/checkbox_checked_hovered.svg"); +} + +QGroupBox[title="Create visualization"] QCheckBox::indicator:disabled:checked, +QGroupBox[title="Create visualization"] QCheckBox::indicator:disabled:checked:selected, +QGroupBox[title="Create visualization"] QCheckBox::indicator:disabled:checked:focus, +QGroupBox[title="Create visualization"] QCheckBox::indicator:checked:disabled, +QTreeView::indicator:disabled:checked, +QTreeView::indicator:disabled:checked:selected, +QTreeView::indicator:disabled:checked:focus, +QTreeView::indicator:checked:disabled { + image: url("/icons_path/primary/checkbox_checked_disabled.svg"); +} + +QGroupBox[title="Create visualization"] QCheckBox::indicator:enabled:unchecked, +QGroupBox[title="Create visualization"] QCheckBox::indicator:enabled:unchecked:selected, +QGroupBox[title="Create visualization"] QCheckBox::indicator:enabled:unchecked:focus, +QGroupBox[title="Create visualization"] QCheckBox::indicator:unchecked, +QTreeView::indicator:enabled:unchecked, +QTreeView::indicator:enabled:unchecked:selected, +QTreeView::indicator:enabled:unchecked:focus, +QTreeView::indicator:unchecked { + image: url("/icons_path/primary/checkbox_unchecked_enabled.svg"); +} + +QGroupBox[title="Create visualization"] QCheckBox::indicator:unchecked:selected:active, +QTreeView::indicator:unchecked:selected:active { + image: url("/icons_path/primary/checkbox_unchecked_hovered.svg"); +} + +QGroupBox[title="Create visualization"] QCheckBox::indicator:disabled:unchecked, +QGroupBox[title="Create visualization"] QCheckBox::indicator:disabled:unchecked:selected, +QGroupBox[title="Create visualization"] QCheckBox::indicator:disabled:unchecked:focus, +QGroupBox[title="Create visualization"] QCheckBox::indicator:unchecked:disabled, +QTreeView::indicator:disabled:unchecked, +QTreeView::indicator:disabled:unchecked:selected, +QTreeView::indicator:disabled:unchecked:focus, +QTreeView::indicator:unchecked:disabled { + image: url("/icons_path/primary/checkbox_unchecked_disabled.svg"); +} + +QGroupBox[title="Create visualization"] QCheckBox::indicator:enabled:indeterminate, +QGroupBox[title="Create visualization"] QCheckBox::indicator:enabled:indeterminate:selected, +QGroupBox[title="Create visualization"] QCheckBox::indicator:enabled:indeterminate:focus, +QGroupBox[title="Create visualization"] QCheckBox::indicator:indeterminate, +QTreeView::indicator:enabled:indeterminate, +QTreeView::indicator:enabled:indeterminate:selected, +QTreeView::indicator:enabled:indeterminate:focus, +QTreeView::indicator:indeterminate { + image: url("/icons_path/primary/checkbox_indeterminate_enabled.svg"); +} + +QGroupBox[title="Create visualization"] QCheckBox::indicator:indeterminate:selected:active, +QTreeView::indicator:indeterminate:selected:active { + image: url("/icons_path/primary/checkbox_indeterminate_hovered.svg"); +} + +QGroupBox[title="Create visualization"] QCheckBox::indicator:disabled:indeterminate, +QGroupBox[title="Create visualization"] QCheckBox::indicator:disabled:indeterminate:selected, +QGroupBox[title="Create visualization"] QCheckBox::indicator:disabled:indeterminate:focus, +QGroupBox[title="Create visualization"] QCheckBox::indicator:indeterminate:disabled, +QTreeView::indicator:disabled:indeterminate, +QTreeView::indicator:disabled:indeterminate:selected, +QTreeView::indicator:disabled:indeterminate:focus, +QTreeView::indicator:indeterminate:disabled { + image: url("/icons_path/primary/checkbox_indeterminate_disabled.svg"); +} +QGroupBox[title="Create visualization"] QCheckBox::indicator, +QTreeView::indicator { + width: 20px; + height: 20px; +} + + +QTreeView::item:disabled { + color: #888888; +} + + +QTreeView QComboBox, +QTreeView QSpinBox, +QTreeView QDoubleSpinBox { + border: 0px; +} + +QTreeView QComboBox:focus, +QTreeView QSpinBox:focus, +QTreeView QDoubleSpinBox:focus { + border: 0px; +} diff --git a/ansible/roles/qt5ct_setup/files/qt5ct.conf b/ansible/roles/qt5ct_setup/files/qt5ct.conf new file mode 100644 index 00000000000..90c386c617f --- /dev/null +++ b/ansible/roles/qt5ct_setup/files/qt5ct.conf @@ -0,0 +1,35 @@ +[Appearance] +color_scheme_path=/usr/share/qt5ct/colors/darker.conf +custom_palette=true +icon_theme=ubuntu-mono-dark +standard_dialogs=default +style=Fusion + +[Fonts] +fixed=@Variant(\0\0\0@\0\0\0\f\0R\0o\0\x62\0o\0t\0o\xbf\xf0\0\0\0\0\0\0\0\0\0\r\x5\x1\0\x32\x10) +general=@Variant(\0\0\0@\0\0\0\f\0R\0o\0\x62\0o\0t\0o\xbf\xf0\0\0\0\0\0\0\0\0\0\r\x5\x1\0\x32\x10) + +[Interface] +activate_item_on_single_click=1 +buttonbox_layout=3 +cursor_flash_time=1000 +dialog_buttons_have_icons=1 +double_click_interval=400 +gui_effects=@Invalid() +keyboard_scheme=2 +menus_have_icons=true +show_shortcuts_in_context_menus=true +stylesheets=autoware_stylesheet_path +toolbutton_style=0 +underline_shortcut=1 +wheel_scroll_lines=3 + +[QSSEditor] +geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\t\xde\0\0\x2~\0\0\f`\0\0\x4\x95\0\0\t\xde\0\0\x2\xa3\0\0\f`\0\0\x4\x95\0\0\0\0\0\0\0\0\n\0\0\0\t\xde\0\0\x2\xa3\0\0\f`\0\0\x4\x95) + +[SettingsWindow] +geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\f\x9c\0\0\x4\x19\0\0\xfz\0\0\a\x3\0\0\f\x9c\0\0\x4>\0\0\xfz\0\0\a\x3\0\0\0\0\0\0\0\0\xf\0\0\0\f\x9c\0\0\x4>\0\0\xfz\0\0\a\x3) + +[Troubleshooting] +force_raster_widgets=2 +ignored_applications=@Invalid() diff --git a/ansible/roles/qt5ct_setup/meta/main.yml b/ansible/roles/qt5ct_setup/meta/main.yml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/ansible/roles/qt5ct_setup/tasks/main.yml b/ansible/roles/qt5ct_setup/tasks/main.yml new file mode 100644 index 00000000000..fbb6c912117 --- /dev/null +++ b/ansible/roles/qt5ct_setup/tasks/main.yml @@ -0,0 +1,81 @@ +- name: Install qt5ct + ansible.builtin.apt: + name: qt5ct + state: present + become: true + +- name: Install rsync + ansible.builtin.package: + name: rsync + state: present + become: true + +- name: Remove qt5ct from auto-start + ansible.builtin.file: + path: /etc/X11/Xsession.d/99qt5ct + state: absent + become: true + +- name: Set variable qt5ct_config_dir + ansible.builtin.set_fact: + qt5ct_config_dir: "{{ ansible_env.HOME }}/.config/qt5ct" + +- name: Ensure qt5ct_config_dir exists + ansible.builtin.file: + path: "{{ qt5ct_config_dir }}" + state: directory + mode: "0755" + +- name: Print the role_path + ansible.builtin.debug: + msg: "The role_path is: {{ role_path }}" + +- name: Set icons_path variable + ansible.builtin.set_fact: + icons_path: "{{ qt5ct_config_dir }}/autoware-rviz-icons" + +- name: Remove autoware-rviz-icons folder if it exists + ansible.builtin.file: + path: "{{ icons_path }}" + state: absent + +# Replace rsync with synchronize which is an ansible wrapper for rsync +- name: Copy autoware-rviz-icons to the qt5ct config directory + ansible.posix.synchronize: + src: "{{ role_path }}/files/autoware-rviz-icons/" + dest: "{{ icons_path }}/" + mode: push + +- name: Fix the paths in the qss file + ansible.builtin.replace: + path: "{{ role_path }}/files/autoware.qss" + regexp: /icons_path/ + replace: "{{ icons_path }}/" + +- name: Ensure qt5ct_config_dir/qss exists + ansible.builtin.file: + path: "{{ qt5ct_config_dir }}/qss" + state: directory + mode: "0755" + +- name: Copy autoware.qss to the qt5ct qss directory + ansible.builtin.copy: + src: "{{ role_path }}/files/autoware.qss" + dest: "{{ qt5ct_config_dir }}/qss/autoware.qss" + force: true + backup: true + mode: "0644" + +- name: Fix the paths in the config file + ansible.builtin.replace: + path: "{{ role_path }}/files/qt5ct.conf" + regexp: autoware_stylesheet_path + replace: "{{ qt5ct_config_dir }}/qss/autoware.qss" + +- name: Copy qt5ct.conf to the config directory + ansible.builtin.copy: + src: "{{ role_path }}/files/qt5ct.conf" + dest: "{{ ansible_env.HOME }}/.config/qt5ct/qt5ct.conf" + force: true + backup: true + mode: "0644" From 0fb00f4ea44a94149c76c85c65338ee75859b0a8 Mon Sep 17 00:00:00 2001 From: Yutaka Kondo Date: Fri, 20 Sep 2024 14:20:43 +0900 Subject: [PATCH 04/14] fix(.github): fix non `-cuda` tag names (#5262) fix no cuda tag names Signed-off-by: Yutaka Kondo --- .../actions/docker-build-and-push/action.yaml | 40 +++++++++---------- .../docker-build-and-push-arm64.yaml | 2 +- .github/workflows/docker-build-and-push.yaml | 2 +- .github/workflows/health-check-arm64.yaml | 2 - .github/workflows/health-check.yaml | 2 - 5 files changed, 22 insertions(+), 26 deletions(-) diff --git a/.github/actions/docker-build-and-push/action.yaml b/.github/actions/docker-build-and-push/action.yaml index 6389b4d8ceb..23eec646837 100644 --- a/.github/actions/docker-build-and-push/action.yaml +++ b/.github/actions/docker-build-and-push/action.yaml @@ -78,8 +78,8 @@ runs: with: images: ghcr.io/${{ github.repository_owner }}/${{ inputs.bake-target }} tags: | - type=raw,value=base${{ inputs.tag-suffix && '-' }}${{ inputs.tag-suffix }} - type=raw,value=base${{ inputs.tag-suffix && '-' }}${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }} + type=raw,value=base$${{ inputs.tag-suffix }} + type=raw,value=base$${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }} bake-target: docker-metadata-action-base flavor: | latest=false @@ -90,8 +90,8 @@ runs: with: images: ghcr.io/${{ github.repository_owner }}/${{ inputs.bake-target }} tags: | - type=raw,value=core-devel${{ inputs.tag-suffix && '-' }}${{ inputs.tag-suffix }} - type=raw,value=core-devel${{ inputs.tag-suffix && '-' }}${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }} + type=raw,value=core-devel${{ inputs.tag-suffix }} + type=raw,value=core-devel${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }} bake-target: docker-metadata-action-core-devel flavor: | latest=false @@ -102,8 +102,8 @@ runs: with: images: ghcr.io/${{ github.repository_owner }}/${{ inputs.bake-target }} tags: | - type=raw,value=universe-sensing-perception-devel${{ inputs.tag-suffix && '-' }}${{ inputs.tag-suffix }} - type=raw,value=universe-sensing-perception-devel${{ inputs.tag-suffix && '-' }}${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }} + type=raw,value=universe-sensing-perception-devel${{ inputs.tag-suffix }} + type=raw,value=universe-sensing-perception-devel${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }} bake-target: docker-metadata-action-universe-sensing-perception-devel flavor: | latest=false @@ -114,8 +114,8 @@ runs: with: images: ghcr.io/${{ github.repository_owner }}/${{ inputs.bake-target }} tags: | - type=raw,value=universe-sensing-perception${{ inputs.tag-suffix && '-' }}${{ inputs.tag-suffix }} - type=raw,value=universe-sensing-perception${{ inputs.tag-suffix && '-' }}${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }} + type=raw,value=universe-sensing-perception${{ inputs.tag-suffix }} + type=raw,value=universe-sensing-perception${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }} bake-target: docker-metadata-action-universe-sensing-perception flavor: | latest=false @@ -126,8 +126,8 @@ runs: with: images: ghcr.io/${{ github.repository_owner }}/${{ inputs.bake-target }} tags: | - type=raw,value=universe-localization-mapping-devel${{ inputs.tag-suffix && '-' }}${{ inputs.tag-suffix }} - type=raw,value=universe-localization-mapping-devel${{ inputs.tag-suffix && '-' }}${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }} + type=raw,value=universe-localization-mapping-devel${{ inputs.tag-suffix }} + type=raw,value=universe-localization-mapping-devel${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }} bake-target: docker-metadata-action-universe-localization-mapping-devel flavor: | latest=false @@ -138,8 +138,8 @@ runs: with: images: ghcr.io/${{ github.repository_owner }}/${{ inputs.bake-target }} tags: | - type=raw,value=universe-localization-mapping${{ inputs.tag-suffix && '-' }}${{ inputs.tag-suffix }} - type=raw,value=universe-localization-mapping${{ inputs.tag-suffix && '-' }}${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }} + type=raw,value=universe-localization-mapping${{ inputs.tag-suffix }} + type=raw,value=universe-localization-mapping${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }} bake-target: docker-metadata-action-universe-localization-mapping flavor: | latest=false @@ -150,8 +150,8 @@ runs: with: images: ghcr.io/${{ github.repository_owner }}/${{ inputs.bake-target }} tags: | - type=raw,value=universe-planning-control-devel${{ inputs.tag-suffix && '-' }}${{ inputs.tag-suffix }} - type=raw,value=universe-planning-control-devel${{ inputs.tag-suffix && '-' }}${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }} + type=raw,value=universe-planning-control-devel${{ inputs.tag-suffix }} + type=raw,value=universe-planning-control-devel${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }} bake-target: docker-metadata-action-universe-planning-control-devel flavor: | latest=false @@ -162,8 +162,8 @@ runs: with: images: ghcr.io/${{ github.repository_owner }}/${{ inputs.bake-target }} tags: | - type=raw,value=universe-planning-control${{ inputs.tag-suffix && '-' }}${{ inputs.tag-suffix }} - type=raw,value=universe-planning-control${{ inputs.tag-suffix && '-' }}${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }} + type=raw,value=universe-planning-control${{ inputs.tag-suffix }} + type=raw,value=universe-planning-control${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }} bake-target: docker-metadata-action-universe-planning-control flavor: | latest=false @@ -174,8 +174,8 @@ runs: with: images: ghcr.io/${{ github.repository_owner }}/${{ inputs.bake-target }} tags: | - type=raw,value=universe-devel${{ inputs.tag-suffix && '-' }}${{ inputs.tag-suffix }} - type=raw,value=universe-devel${{ inputs.tag-suffix && '-' }}${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }} + type=raw,value=universe-devel${{ inputs.tag-suffix }} + type=raw,value=universe-devel${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }} bake-target: docker-metadata-action-universe-devel flavor: | latest=false @@ -186,8 +186,8 @@ runs: with: images: ghcr.io/${{ github.repository_owner }}/${{ inputs.bake-target }} tags: | - type=raw,value=universe${{ inputs.tag-suffix && '-' }}${{ inputs.tag-suffix }} - type=raw,value=universe${{ inputs.tag-suffix && '-' }}${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }} + type=raw,value=universe${{ inputs.tag-suffix }} + type=raw,value=universe${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }} bake-target: docker-metadata-action-universe flavor: | latest=auto diff --git a/.github/workflows/docker-build-and-push-arm64.yaml b/.github/workflows/docker-build-and-push-arm64.yaml index 245eb563951..9a4dcc46950 100644 --- a/.github/workflows/docker-build-and-push-arm64.yaml +++ b/.github/workflows/docker-build-and-push-arm64.yaml @@ -31,7 +31,7 @@ jobs: platform: arm64 base_image_env: base_image lib_dir: aarch64 - additional-tag-suffix: cuda + additional-tag-suffix: -cuda steps: # https://github.com/actions/checkout/issues/211 - name: Change permission of workspace diff --git a/.github/workflows/docker-build-and-push.yaml b/.github/workflows/docker-build-and-push.yaml index 1057b5d238a..46bb19c734c 100644 --- a/.github/workflows/docker-build-and-push.yaml +++ b/.github/workflows/docker-build-and-push.yaml @@ -31,7 +31,7 @@ jobs: platform: amd64 base_image_env: base_image lib_dir: x86_64 - additional-tag-suffix: cuda + additional-tag-suffix: -cuda steps: - name: Check out repository uses: actions/checkout@v4 diff --git a/.github/workflows/health-check-arm64.yaml b/.github/workflows/health-check-arm64.yaml index e1ee8813ca6..baf58b00d3b 100644 --- a/.github/workflows/health-check-arm64.yaml +++ b/.github/workflows/health-check-arm64.yaml @@ -24,12 +24,10 @@ jobs: base_image_env: base_image lib_dir: aarch64 setup-args: --no-nvidia - additional-tag-suffix: "" - name: cuda platform: arm64 base_image_env: base_image lib_dir: aarch64 - additional-tag-suffix: -cuda steps: # https://github.com/actions/checkout/issues/211 - name: Change permission of workspace diff --git a/.github/workflows/health-check.yaml b/.github/workflows/health-check.yaml index bed2d8f51a6..a312cb970ec 100644 --- a/.github/workflows/health-check.yaml +++ b/.github/workflows/health-check.yaml @@ -39,12 +39,10 @@ jobs: base_image_env: base_image lib_dir: x86_64 setup-args: --no-nvidia - additional-tag-suffix: "" - name: cuda platform: amd64 base_image_env: base_image lib_dir: x86_64 - additional-tag-suffix: -cuda steps: - name: Check out repository uses: actions/checkout@v4 From f9a73804404efae08fa317621bce76b3848c6775 Mon Sep 17 00:00:00 2001 From: Yutaka Kondo Date: Fri, 20 Sep 2024 17:14:56 +0900 Subject: [PATCH 05/14] fix(docker): copy all `.csv` and `.png` files to images (#5263) copy all .csv and .png files to images Signed-off-by: Yutaka Kondo --- .dockerignore | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.dockerignore b/.dockerignore index 5d2f070ee05..ac26bde50a1 100644 --- a/.dockerignore +++ b/.dockerignore @@ -13,14 +13,10 @@ docker # Ignore a part of files under src src/**/.* src/**/*.asc -src/**/*.csv src/**/*.gif src/**/*.md src/**/*.pcd -src/**/*.png src/**/*.svg -!src/universe/autoware.universe/common/autoware_overlay_rviz_plugin/autoware_overlay_rviz_plugin/assets -!src/universe/autoware.universe/vehicle/autoware_raw_vehicle_cmd_converter/data/default # Ignore generated files by colcon build From 886409979b78019e75185a0b57e11cb1b449942b Mon Sep 17 00:00:00 2001 From: Khalil Selyan <36904941+KhalilSelyan@users.noreply.github.com> Date: Fri, 20 Sep 2024 16:21:53 +0300 Subject: [PATCH 06/14] refactor(qt5ct): update selection colors in autoware.qss (#5266) Signed-off-by: KhalilSelyan --- ansible/roles/qt5ct_setup/files/autoware.qss | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ansible/roles/qt5ct_setup/files/autoware.qss b/ansible/roles/qt5ct_setup/files/autoware.qss index d0e2af381f7..3bd40b42527 100644 --- a/ansible/roles/qt5ct_setup/files/autoware.qss +++ b/ansible/roles/qt5ct_setup/files/autoware.qss @@ -1282,8 +1282,8 @@ QComboBox QAbstractItemView { height: 16px; } QComboBox { - selection-background-color: #303538; - selection-color: #fff; + selection-background-color: #84c2e6; + selection-color: #1b2023; } From d0536ca3dcaaaefa9aee4531d6c07f3ea5279570 Mon Sep 17 00:00:00 2001 From: oguzkaganozt Date: Sat, 21 Sep 2024 10:33:31 +0300 Subject: [PATCH 07/14] fix(docker): add platform tag and increase frequency of multi-arch manifest workflow (#5256) add platform to the tag and increase frequency of multi-arch manifest workflow Signed-off-by: Oguz Ozturk --- .../actions/docker-build-and-push/action.yaml | 40 +++++++++---------- .../docker-build-and-push-arm64.yaml | 7 ++-- .github/workflows/docker-build-and-push.yaml | 6 +-- .github/workflows/update-docker-manifest.yaml | 2 +- 4 files changed, 27 insertions(+), 28 deletions(-) diff --git a/.github/actions/docker-build-and-push/action.yaml b/.github/actions/docker-build-and-push/action.yaml index 23eec646837..903ef8de109 100644 --- a/.github/actions/docker-build-and-push/action.yaml +++ b/.github/actions/docker-build-and-push/action.yaml @@ -78,8 +78,8 @@ runs: with: images: ghcr.io/${{ github.repository_owner }}/${{ inputs.bake-target }} tags: | - type=raw,value=base$${{ inputs.tag-suffix }} - type=raw,value=base$${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }} + type=raw,value=base${{ inputs.tag-suffix }}-${{ inputs.platform }} + type=raw,value=base${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }}-${{ inputs.platform }} bake-target: docker-metadata-action-base flavor: | latest=false @@ -90,8 +90,8 @@ runs: with: images: ghcr.io/${{ github.repository_owner }}/${{ inputs.bake-target }} tags: | - type=raw,value=core-devel${{ inputs.tag-suffix }} - type=raw,value=core-devel${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }} + type=raw,value=core-devel${{ inputs.tag-suffix }}-${{ inputs.platform }} + type=raw,value=core-devel${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }}-${{ inputs.platform }} bake-target: docker-metadata-action-core-devel flavor: | latest=false @@ -102,8 +102,8 @@ runs: with: images: ghcr.io/${{ github.repository_owner }}/${{ inputs.bake-target }} tags: | - type=raw,value=universe-sensing-perception-devel${{ inputs.tag-suffix }} - type=raw,value=universe-sensing-perception-devel${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }} + type=raw,value=universe-sensing-perception-devel${{ inputs.tag-suffix }}-${{ inputs.platform }} + type=raw,value=universe-sensing-perception-devel${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }}-${{ inputs.platform }} bake-target: docker-metadata-action-universe-sensing-perception-devel flavor: | latest=false @@ -114,8 +114,8 @@ runs: with: images: ghcr.io/${{ github.repository_owner }}/${{ inputs.bake-target }} tags: | - type=raw,value=universe-sensing-perception${{ inputs.tag-suffix }} - type=raw,value=universe-sensing-perception${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }} + type=raw,value=universe-sensing-perception${{ inputs.tag-suffix }}-${{ inputs.platform }} + type=raw,value=universe-sensing-perception${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }}-${{ inputs.platform }} bake-target: docker-metadata-action-universe-sensing-perception flavor: | latest=false @@ -126,8 +126,8 @@ runs: with: images: ghcr.io/${{ github.repository_owner }}/${{ inputs.bake-target }} tags: | - type=raw,value=universe-localization-mapping-devel${{ inputs.tag-suffix }} - type=raw,value=universe-localization-mapping-devel${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }} + type=raw,value=universe-localization-mapping-devel${{ inputs.tag-suffix }}-${{ inputs.platform }} + type=raw,value=universe-localization-mapping-devel${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }}-${{ inputs.platform }} bake-target: docker-metadata-action-universe-localization-mapping-devel flavor: | latest=false @@ -138,8 +138,8 @@ runs: with: images: ghcr.io/${{ github.repository_owner }}/${{ inputs.bake-target }} tags: | - type=raw,value=universe-localization-mapping${{ inputs.tag-suffix }} - type=raw,value=universe-localization-mapping${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }} + type=raw,value=universe-localization-mapping${{ inputs.tag-suffix }}-${{ inputs.platform }} + type=raw,value=universe-localization-mapping${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }}-${{ inputs.platform }} bake-target: docker-metadata-action-universe-localization-mapping flavor: | latest=false @@ -150,8 +150,8 @@ runs: with: images: ghcr.io/${{ github.repository_owner }}/${{ inputs.bake-target }} tags: | - type=raw,value=universe-planning-control-devel${{ inputs.tag-suffix }} - type=raw,value=universe-planning-control-devel${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }} + type=raw,value=universe-planning-control-devel${{ inputs.tag-suffix }}-${{ inputs.platform }} + type=raw,value=universe-planning-control-devel${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }}-${{ inputs.platform }} bake-target: docker-metadata-action-universe-planning-control-devel flavor: | latest=false @@ -162,8 +162,8 @@ runs: with: images: ghcr.io/${{ github.repository_owner }}/${{ inputs.bake-target }} tags: | - type=raw,value=universe-planning-control${{ inputs.tag-suffix }} - type=raw,value=universe-planning-control${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }} + type=raw,value=universe-planning-control${{ inputs.tag-suffix }}-${{ inputs.platform }} + type=raw,value=universe-planning-control${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }}-${{ inputs.platform }} bake-target: docker-metadata-action-universe-planning-control flavor: | latest=false @@ -174,8 +174,8 @@ runs: with: images: ghcr.io/${{ github.repository_owner }}/${{ inputs.bake-target }} tags: | - type=raw,value=universe-devel${{ inputs.tag-suffix }} - type=raw,value=universe-devel${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }} + type=raw,value=universe-devel${{ inputs.tag-suffix }}-${{ inputs.platform }} + type=raw,value=universe-devel${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }}-${{ inputs.platform }} bake-target: docker-metadata-action-universe-devel flavor: | latest=false @@ -186,8 +186,8 @@ runs: with: images: ghcr.io/${{ github.repository_owner }}/${{ inputs.bake-target }} tags: | - type=raw,value=universe${{ inputs.tag-suffix }} - type=raw,value=universe${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }} + type=raw,value=universe${{ inputs.tag-suffix }}-${{ inputs.platform }} + type=raw,value=universe${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }}-${{ inputs.platform }} bake-target: docker-metadata-action-universe flavor: | latest=auto diff --git a/.github/workflows/docker-build-and-push-arm64.yaml b/.github/workflows/docker-build-and-push-arm64.yaml index 9a4dcc46950..c262f0944a1 100644 --- a/.github/workflows/docker-build-and-push-arm64.yaml +++ b/.github/workflows/docker-build-and-push-arm64.yaml @@ -26,12 +26,12 @@ jobs: base_image_env: base_image lib_dir: aarch64 setup-args: --no-nvidia - additional-tag-suffix: "" + tag-suffix: "" - name: cuda platform: arm64 base_image_env: base_image lib_dir: aarch64 - additional-tag-suffix: -cuda + tag-suffix: -cuda steps: # https://github.com/actions/checkout/issues/211 - name: Change permission of workspace @@ -80,8 +80,7 @@ jobs: *.cache-from=type=registry,ref=ghcr.io/${{ github.repository }}-buildcache:${{ matrix.name }}-${{ matrix.platform }}-${{ github.ref_name }} *.cache-from=type=registry,ref=ghcr.io/${{ github.repository }}-buildcache:${{ matrix.name }}-${{ matrix.platform }}-main *.cache-to=type=registry,ref=ghcr.io/${{ github.repository }}-buildcache:${{ matrix.name }}-${{ matrix.platform }}-${{ github.ref_name }},mode=max - tag-suffix: ${{ matrix.additional-tag-suffix }}-${{ matrix.platform }} - tag-prefix: ${{ needs.load-env.outputs.rosdistro }} + tag-suffix: ${{ matrix.tag-suffix }} - name: Show disk space run: | diff --git a/.github/workflows/docker-build-and-push.yaml b/.github/workflows/docker-build-and-push.yaml index 46bb19c734c..025d6e7485c 100644 --- a/.github/workflows/docker-build-and-push.yaml +++ b/.github/workflows/docker-build-and-push.yaml @@ -26,12 +26,12 @@ jobs: base_image_env: base_image lib_dir: x86_64 setup-args: --no-nvidia - additional-tag-suffix: "" + tag-suffix: "" - name: cuda platform: amd64 base_image_env: base_image lib_dir: x86_64 - additional-tag-suffix: -cuda + tag-suffix: -cuda steps: - name: Check out repository uses: actions/checkout@v4 @@ -75,7 +75,7 @@ jobs: *.cache-from=type=registry,ref=ghcr.io/${{ github.repository }}-buildcache:${{ matrix.name }}-${{ matrix.platform }}-${{ github.ref_name }} *.cache-from=type=registry,ref=ghcr.io/${{ github.repository }}-buildcache:${{ matrix.name }}-${{ matrix.platform }}-main *.cache-to=type=registry,ref=ghcr.io/${{ github.repository }}-buildcache:${{ matrix.name }}-${{ matrix.platform }}-${{ github.ref_name }},mode=max - tag-suffix: ${{ matrix.additional-tag-suffix }} + tag-suffix: ${{ matrix.tag-suffix }} - name: Show disk space run: | diff --git a/.github/workflows/update-docker-manifest.yaml b/.github/workflows/update-docker-manifest.yaml index a0539b037ed..af9324fb162 100644 --- a/.github/workflows/update-docker-manifest.yaml +++ b/.github/workflows/update-docker-manifest.yaml @@ -2,7 +2,7 @@ name: update-docker-manifest on: schedule: - - cron: 0 0 * * * + - cron: 0 */2 * * * workflow_dispatch: jobs: From 7306fa6e36cf9e53ffba8f3de1dd3baf254a7df1 Mon Sep 17 00:00:00 2001 From: Max Schmeller <6088931+mojomex@users.noreply.github.com> Date: Tue, 24 Sep 2024 10:47:51 +0900 Subject: [PATCH 08/14] chore: freeze Nebula version to v0.0.1 (#5271) Signed-off-by: Max SCHMELLER --- autoware.repos | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/autoware.repos b/autoware.repos index a61cd39ba5f..e232225fdde 100644 --- a/autoware.repos +++ b/autoware.repos @@ -100,7 +100,7 @@ repositories: sensor_component/external/nebula: type: git url: https://github.com/tier4/nebula.git - version: main + version: v0.0.1 # Fork of transport_drivers that enables reduction of copy operations sensor_component/transport_drivers: type: git From a53db3d9d3894a16478c80b3b7e91afe072826cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=2E=20Fatih=20C=C4=B1r=C4=B1t?= Date: Wed, 25 Sep 2024 16:15:22 +0300 Subject: [PATCH 09/14] fix(autoware.repos): use main branch of ros2_socketcan (#5279) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: M. Fatih Cırıt --- autoware.repos | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/autoware.repos b/autoware.repos index e232225fdde..2667ed83d70 100644 --- a/autoware.repos +++ b/autoware.repos @@ -110,7 +110,7 @@ repositories: sensor_component/ros2_socketcan: type: git url: https://github.com/autowarefoundation/ros2_socketcan - version: feat/continental_fd + version: main # sensor_kit sensor_kit/sample_sensor_kit_launch: type: git From f24de1e59f3c233b000ff12bc13f37be93174f55 Mon Sep 17 00:00:00 2001 From: oguzkaganozt Date: Fri, 27 Sep 2024 12:33:46 +0300 Subject: [PATCH 10/14] feat(docker): add vehicle-system container (#5257) * add vehicle-system container Signed-off-by: Oguz Ozturk * add to bakefile and workflow Signed-off-by: Oguz Ozturk * style(pre-commit): autofix * add missing tag info Signed-off-by: Oguz Ozturk * update documentation Signed-off-by: Oguz Ozturk * add missing dependencies Signed-off-by: Oguz Ozturk * update svg Signed-off-by: Oguz Ozturk --------- Signed-off-by: Oguz Ozturk Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .../actions/docker-build-and-push/action.yaml | 26 + docker/Dockerfile | 94 +++- docker/Dockerfile.svg | 500 ++++++++++-------- docker/README.md | 11 + docker/docker-bake.hcl | 16 + 5 files changed, 426 insertions(+), 221 deletions(-) diff --git a/.github/actions/docker-build-and-push/action.yaml b/.github/actions/docker-build-and-push/action.yaml index 903ef8de109..b7e6b393b1e 100644 --- a/.github/actions/docker-build-and-push/action.yaml +++ b/.github/actions/docker-build-and-push/action.yaml @@ -168,6 +168,30 @@ runs: flavor: | latest=false + - name: Docker meta for autoware:universe-vehicle-system-devel + id: meta-universe-vehicle-system-devel + uses: docker/metadata-action@v5 + with: + images: ghcr.io/${{ github.repository_owner }}/${{ inputs.bake-target }} + tags: | + type=raw,value=universe-vehicle-system-devel${{ inputs.tag-suffix && '-' }}${{ inputs.tag-suffix }} + type=raw,value=universe-vehicle-system-devel${{ inputs.tag-suffix && '-' }}${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }} + bake-target: docker-metadata-action-universe-vehicle-system-devel + flavor: | + latest=false + + - name: Docker meta for autoware:universe-vehicle-system + id: meta-universe-vehicle-system + uses: docker/metadata-action@v5 + with: + images: ghcr.io/${{ github.repository_owner }}/${{ inputs.bake-target }} + tags: | + type=raw,value=universe-vehicle-system${{ inputs.tag-suffix && '-' }}${{ inputs.tag-suffix }} + type=raw,value=universe-vehicle-system${{ inputs.tag-suffix && '-' }}${{ inputs.tag-suffix }}-${{ steps.date.outputs.date }} + bake-target: docker-metadata-action-universe-vehicle-system + flavor: | + latest=false + - name: Docker meta for autoware:universe-devel id: meta-universe-devel uses: docker/metadata-action@v5 @@ -213,6 +237,8 @@ runs: ${{ steps.meta-universe-localization-mapping.outputs.bake-file }} ${{ steps.meta-universe-planning-control-devel.outputs.bake-file }} ${{ steps.meta-universe-planning-control.outputs.bake-file }} + ${{ steps.meta-universe-vehicle-system-devel.outputs.bake-file }} + ${{ steps.meta-universe-vehicle-system.outputs.bake-file }} ${{ steps.meta-universe-devel.outputs.bake-file }} ${{ steps.meta-universe.outputs.bake-file }} provenance: false diff --git a/docker/Dockerfile b/docker/Dockerfile index bc2917ca949..efde0797845 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -141,6 +141,29 @@ RUN rosdep keys --dependency-types=exec --ignore-src --from-paths src \ > /rosdep-universe-planning-control-exec-depend-packages.txt \ && cat /rosdep-universe-planning-control-exec-depend-packages.txt +FROM rosdep-depend AS rosdep-universe-vehicle-system-depend +SHELL ["/bin/bash", "-o", "pipefail", "-c"] +ARG ROS_DISTRO + +COPY src/universe/autoware.universe/vehicle /autoware/src/universe/autoware.universe/vehicle +COPY src/universe/autoware.universe/system /autoware/src/universe/autoware.universe/system +COPY src/universe/autoware.universe/map/autoware_map_height_fitter /autoware/src/universe/autoware.universe/map/autoware_map_height_fitter +COPY src/universe/autoware.universe/localization/autoware_pose2twist /autoware/src/universe/autoware.universe/localization/autoware_pose2twist +RUN rosdep keys --ignore-src --from-paths src \ + | xargs rosdep resolve --rosdistro ${ROS_DISTRO} \ + | grep -v '^#' \ + | sed 's/ \+/\n/g'\ + | sort \ + > /rosdep-universe-vehicle-system-depend-packages.txt \ + && cat /rosdep-universe-vehicle-system-depend-packages.txt +RUN rosdep keys --dependency-types=exec --ignore-src --from-paths src \ + | xargs rosdep resolve --rosdistro ${ROS_DISTRO} \ + | grep -v '^#' \ + | sed 's/ \+/\n/g'\ + | sort \ + > /rosdep-universe-vehicle-system-exec-depend-packages.txt \ + && cat /rosdep-universe-vehicle-system-exec-depend-packages.txt + FROM rosdep-depend AS rosdep-universe-depend SHELL ["/bin/bash", "-o", "pipefail", "-c"] ARG ROS_DISTRO @@ -334,6 +357,40 @@ RUN --mount=type=cache,target=${CCACHE_DIR} \ ENTRYPOINT ["/ros_entrypoint.sh"] CMD ["/bin/bash"] +FROM universe-common-devel AS universe-vehicle-system-devel +SHELL ["/bin/bash", "-o", "pipefail", "-c"] +ARG ROS_DISTRO +ENV CCACHE_DIR="/root/.ccache" + +# Install rosdep dependencies +COPY --from=rosdep-universe-vehicle-system-depend /rosdep-universe-vehicle-system-depend-packages.txt /tmp/rosdep-universe-vehicle-system-depend-packages.txt +# hadolint ignore=SC2002 +RUN --mount=type=ssh \ + apt-get update \ + && cat /tmp/rosdep-universe-vehicle-system-depend-packages.txt | xargs apt-get install -y --no-install-recommends \ + && apt-get autoremove -y && apt-get clean -y && rm -rf /var/lib/apt/lists/* "$HOME"/.cache + +# hadolint ignore=SC1091 +RUN --mount=type=cache,target=${CCACHE_DIR} \ + --mount=type=bind,from=rosdep-universe-vehicle-system-depend,source=/autoware/src/universe/autoware.universe/vehicle,target=/autoware/src/universe/autoware.universe/vehicle \ + --mount=type=bind,from=rosdep-universe-vehicle-system-depend,source=/autoware/src/universe/autoware.universe/system,target=/autoware/src/universe/autoware.universe/system \ + --mount=type=bind,from=rosdep-universe-vehicle-system-depend,source=/autoware/src/universe/autoware.universe/map/autoware_map_height_fitter,target=/autoware/src/universe/autoware.universe/map/autoware_map_height_fitter \ + --mount=type=bind,from=rosdep-universe-vehicle-system-depend,source=/autoware/src/universe/autoware.universe/localization/autoware_pose2twist,target=/autoware/src/universe/autoware.universe/localization/autoware_pose2twist \ + source /opt/ros/"$ROS_DISTRO"/setup.bash \ + && source /opt/autoware/setup.bash \ + && du -sh ${CCACHE_DIR} && ccache -s \ + && colcon build --cmake-args \ + " -Wno-dev" \ + " --no-warn-unused-cli" \ + --merge-install \ + --install-base /opt/autoware \ + --mixin release compile-commands ccache \ + && du -sh ${CCACHE_DIR} && ccache -s \ + && rm -rf /autoware/build + +ENTRYPOINT ["/ros_entrypoint.sh"] +CMD ["/bin/bash"] + FROM universe-common-devel AS universe-devel SHELL ["/bin/bash", "-o", "pipefail", "-c"] ARG ROS_DISTRO @@ -350,6 +407,7 @@ RUN --mount=type=ssh \ COPY --from=universe-sensing-perception-devel /opt/autoware /opt/autoware COPY --from=universe-localization-mapping-devel /opt/autoware /opt/autoware COPY --from=universe-planning-control-devel /opt/autoware /opt/autoware +COPY --from=universe-vehicle-system-devel /opt/autoware /opt/autoware # hadolint ignore=SC1091 RUN --mount=type=cache,target=${CCACHE_DIR} \ --mount=type=bind,from=rosdep-universe-depend,source=/autoware/src/launcher,target=/autoware/src/launcher \ @@ -359,9 +417,7 @@ RUN --mount=type=cache,target=${CCACHE_DIR} \ --mount=type=bind,from=rosdep-universe-depend,source=/autoware/src/universe/autoware.universe/evaluator,target=/autoware/src/universe/autoware.universe/evaluator \ --mount=type=bind,from=rosdep-universe-depend,source=/autoware/src/universe/autoware.universe/launch,target=/autoware/src/universe/autoware.universe/launch \ --mount=type=bind,from=rosdep-universe-depend,source=/autoware/src/universe/autoware.universe/simulator,target=/autoware/src/universe/autoware.universe/simulator \ - --mount=type=bind,from=rosdep-universe-depend,source=/autoware/src/universe/autoware.universe/system,target=/autoware/src/universe/autoware.universe/system \ --mount=type=bind,from=rosdep-universe-depend,source=/autoware/src/universe/autoware.universe/tools,target=/autoware/src/universe/autoware.universe/tools \ - --mount=type=bind,from=rosdep-universe-depend,source=/autoware/src/universe/autoware.universe/vehicle,target=/autoware/src/universe/autoware.universe/vehicle \ --mount=type=bind,from=rosdep-universe-depend,source=/autoware/src/vehicle,target=/autoware/src/vehicle \ source /opt/ros/"$ROS_DISTRO"/setup.bash \ && source /opt/autoware/setup.bash \ @@ -480,6 +536,40 @@ RUN echo "source /opt/autoware/setup.bash" > /etc/bash.bashrc ENTRYPOINT ["/ros_entrypoint.sh"] CMD ["/bin/bash"] +FROM base AS universe-vehicle-system +SHELL ["/bin/bash", "-o", "pipefail", "-c"] +ARG ROS_DISTRO +ARG LIB_DIR +ARG SETUP_ARGS + +# Set up runtime environment and artifacts +COPY --from=rosdep-universe-vehicle-system-depend /rosdep-universe-vehicle-system-exec-depend-packages.txt /tmp/rosdep-universe-vehicle-system-exec-depend-packages.txt +# hadolint ignore=SC2002 +RUN --mount=type=ssh \ + --mount=type=cache,target=/var/cache/apt,sharing=locked \ + ./setup-dev-env.sh -y --module all ${SETUP_ARGS} --no-cuda-drivers --runtime openadkit \ + && pip uninstall -y ansible ansible-core \ + && apt-get update \ + && cat /tmp/rosdep-universe-vehicle-system-exec-depend-packages.txt | xargs apt-get install -y --no-install-recommends \ + && apt-get autoremove -y && rm -rf "$HOME"/.cache \ + && find /usr/lib/$LIB_DIR-linux-gnu -name "*.a" -type f -delete \ + && find / -name "*.o" -type f -delete \ + && find / -name "*.h" -type f -delete \ + && find / -name "*.hpp" -type f -delete \ + && rm -rf /autoware/ansible /autoware/ansible-galaxy-requirements.yaml /autoware/setup-dev-env.sh /autoware/*.env \ + /root/.local/pipx /opt/ros/"$ROS_DISTRO"/include /etc/apt/sources.list.d/cuda*.list \ + /etc/apt/sources.list.d/docker.list /etc/apt/sources.list.d/nvidia-docker.list \ + /usr/include /usr/share/doc /usr/lib/gcc /usr/lib/jvm /usr/lib/llvm* + +COPY --from=universe-vehicle-system-devel /opt/autoware /opt/autoware + +# Copy bash aliases +COPY docker/etc/.bash_aliases /root/.bash_aliases +RUN echo "source /opt/autoware/setup.bash" > /etc/bash.bashrc + +ENTRYPOINT ["/ros_entrypoint.sh"] +CMD ["/bin/bash"] + FROM base AS universe SHELL ["/bin/bash", "-o", "pipefail", "-c"] ARG ROS_DISTRO diff --git a/docker/Dockerfile.svg b/docker/Dockerfile.svg index a54e635be43..a8d5d4e1d37 100644 --- a/docker/Dockerfile.svg +++ b/docker/Dockerfile.svg @@ -1,352 +1,414 @@ - - - + + G - + cluster_legend - + key -FROM ...  -COPY --from=...  -RUN --mount=(.*)from=...  +FROM ...  +COPY --from=...  +RUN --mount=(.*)from=...  key2 -  -  -  +  +  +  key:e->key2:w - - + + key:e->key2:w - - + + key:e->key2:w - - + + external_image_0 - -$BASE_IMAGE + +$BASE_IMAGE stage_0 - -base + +base external_image_0->stage_0 - - + + stage_1 - -rosdep-depend + +rosdep-depend external_image_0->stage_1 - - + + - + -stage_6 - -core-devel +stage_7 + +core-devel - + -stage_0->stage_6 - - +stage_0->stage_7 + + - + -stage_12 - -universe-sensing-perception +stage_14 + +universe-sensing-perception - + -stage_0->stage_12 - - - +stage_0->stage_14 + + + - + -stage_13 - -universe-localization-mapping +stage_15 + +universe-localization-mapping - + -stage_0->stage_13 - +stage_0->stage_15 + + - + -stage_14 - -universe-planning-control +stage_16 + +universe-planning-control - + -stage_0->stage_14 - - - +stage_0->stage_16 + + + + - + -stage_15 - -universe +stage_17 + +universe-vehicle-system - + -stage_0->stage_15 - - +stage_0->stage_17 + - - -stage_1->stage_6 - - + + +stage_18 + +universe + + + +stage_0->stage_18 + + + + + +stage_1->stage_7 + + - + stage_2 - -rosdep-universe-sensing-perception-depend + +rosdep-universe-sensing-perception-depend - + stage_1->stage_2 - - + + - + stage_3 - -rosdep-universe-localization-mapping-depend + +rosdep-universe-localization-mapping-depend - + stage_1->stage_3 - - + + - + stage_4 - -rosdep-universe-planning-control-depend + +rosdep-universe-planning-control-depend - + stage_1->stage_4 - - + + + - + stage_5 - -rosdep-universe-depend + +rosdep-universe-vehicle-system-depend - + stage_1->stage_5 - - - - - - -stage_7 - -universe-common-devel - - - -stage_1->stage_7 - - + + - - -stage_6->stage_7 - - + + +stage_6 + +rosdep-universe-depend - - -stage_2->stage_12 - - + + +stage_1->stage_6 + + + - + stage_8 - -universe-sensing-perception-devel + +universe-common-devel - - -stage_2->stage_8 - - + + +stage_1->stage_8 + + - - -stage_3->stage_13 - - - + + +stage_7->stage_8 + + + + + +stage_2->stage_14 + + - + stage_9 - -universe-localization-mapping-devel + +universe-sensing-perception-devel - - -stage_3->stage_9 - - + + +stage_2->stage_9 + + - - -stage_4->stage_14 - - + + +stage_3->stage_15 + + - + stage_10 - -universe-planning-control-devel + +universe-localization-mapping-devel - - -stage_4->stage_10 - - + + +stage_3->stage_10 + + - - -stage_5->stage_15 - - + + +stage_4->stage_16 + + - + stage_11 - -universe-devel + +universe-planning-control-devel - - -stage_5->stage_11 - - + + +stage_4->stage_11 + + - - -stage_7->stage_8 - - + + +stage_5->stage_17 + + + - - -stage_7->stage_9 - - + + +stage_12 + +universe-vehicle-system-devel - + + +stage_5->stage_12 + + + + -stage_7->stage_10 - - +stage_6->stage_18 + + - - -stage_7->stage_11 - - + + +stage_13 + +universe-devel - - -stage_8->stage_12 - - + + +stage_6->stage_13 + + - + -stage_8->stage_11 - - +stage_8->stage_9 + + - - -stage_9->stage_13 - - + + +stage_8->stage_10 + + - + -stage_9->stage_11 - - +stage_8->stage_11 + + - - -stage_10->stage_14 - - + + +stage_8->stage_12 + + - + -stage_10->stage_11 - - +stage_8->stage_13 + + - + -stage_11->stage_15 - - +stage_9->stage_14 + + + + + +stage_9->stage_13 + + + + + +stage_10->stage_15 + + + + + +stage_10->stage_13 + + + + + +stage_11->stage_16 + + + + + +stage_11->stage_13 + + + + + +stage_12->stage_17 + + + + + +stage_12->stage_13 + + + + + +stage_13->stage_18 + + diff --git a/docker/README.md b/docker/README.md index 3d600ccfe30..14c39306153 100644 --- a/docker/README.md +++ b/docker/README.md @@ -76,6 +76,17 @@ This stage installs the dependency packages based on `/rosdep-universe-planning- This stage is a Autoware Universe Planning/Control runtime container. It only includes the dependencies given by `/rosdep-universe-planning-control-exec-depend-packages.txt` and the binaries built in the `universe-planning-control-devel` stage. +### `universe-vehicle-system-devel` + +This stage installs the dependency packages based on `/rosdep-universe-vehicle-system-depend-packages.txt` and build the packages under the following directories of `autoware.repos`. + +- `universe/autoware.universe/vehicle` +- `universe/autoware.universe/system` + +### `universe-vehicle-system` + +This stage is a Autoware Universe Vehicle/System runtime container. It only includes the dependencies given by `/rosdep-universe-vehicle-system-exec-depend-packages.txt` and the binaries built in the `universe-vehicle-system-devel` stage. + ### `universe-devel` This stage installs the dependency packages based on `/rosdep-universe-depend-packages.txt` and build the remaining packages of `autoware.repos`: diff --git a/docker/docker-bake.hcl b/docker/docker-bake.hcl index cc544f2409e..35d0f7fdbfc 100644 --- a/docker/docker-bake.hcl +++ b/docker/docker-bake.hcl @@ -8,6 +8,8 @@ group "default" { "universe-localization-mapping", "universe-planning-control-devel", "universe-planning-control", + "universe-vehicle-system-devel", + "universe-vehicle-system", "universe-devel", "universe" ] @@ -22,6 +24,8 @@ target "docker-metadata-action-universe-localization-mapping-devel" {} target "docker-metadata-action-universe-localization-mapping" {} target "docker-metadata-action-universe-planning-control-devel" {} target "docker-metadata-action-universe-planning-control" {} +target "docker-metadata-action-universe-vehicle-system-devel" {} +target "docker-metadata-action-universe-vehicle-system" {} target "docker-metadata-action-universe-devel" {} target "docker-metadata-action-universe" {} @@ -73,6 +77,18 @@ target "universe-planning-control" { target = "universe-planning-control" } +target "universe-vehicle-system-devel" { + inherits = ["docker-metadata-action-universe-vehicle-system-devel"] + dockerfile = "docker/Dockerfile" + target = "universe-vehicle-system-devel" +} + +target "universe-vehicle-system" { + inherits = ["docker-metadata-action-universe-vehicle-system"] + dockerfile = "docker/Dockerfile" + target = "universe-vehicle-system" +} + target "universe-devel" { inherits = ["docker-metadata-action-universe-devel"] dockerfile = "docker/Dockerfile" From f0314f1b42602da1fac926226712117749e922ca Mon Sep 17 00:00:00 2001 From: Max Schmeller <6088931+mojomex@users.noreply.github.com> Date: Thu, 3 Oct 2024 20:18:55 +0900 Subject: [PATCH 11/14] chore!: upgrade to Nebula v0.2.1 (#5275) Signed-off-by: Max SCHMELLER --- autoware.repos | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/autoware.repos b/autoware.repos index 2667ed83d70..2adedbe524b 100644 --- a/autoware.repos +++ b/autoware.repos @@ -100,12 +100,12 @@ repositories: sensor_component/external/nebula: type: git url: https://github.com/tier4/nebula.git - version: v0.0.1 + version: v0.2.1 # Fork of transport_drivers that enables reduction of copy operations sensor_component/transport_drivers: type: git url: https://github.com/autowarefoundation/transport_drivers - version: mutable-buffer-in-udp-callback + version: main # Continental compatible version of ROS 2 socket CAN sensor_component/ros2_socketcan: type: git From 1c82af012de1d0b71d29241b74115168778ec79d Mon Sep 17 00:00:00 2001 From: Junya Sasaki Date: Fri, 4 Oct 2024 13:42:09 +0900 Subject: [PATCH 12/14] feat(create-prs-to-update-vcs-repositories): add a workflow (#5295) --- ...create-prs-to-update-vcs-repositories.yaml | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 .github/workflows/create-prs-to-update-vcs-repositories.yaml diff --git a/.github/workflows/create-prs-to-update-vcs-repositories.yaml b/.github/workflows/create-prs-to-update-vcs-repositories.yaml new file mode 100644 index 00000000000..8eca0a8fb9b --- /dev/null +++ b/.github/workflows/create-prs-to-update-vcs-repositories.yaml @@ -0,0 +1,31 @@ +name: create-prs-to-update-vcs-repositories + +on: + schedule: + - cron: 0 0,6,12,18 * * * + workflow_dispatch: + +jobs: + create-version-update-pr: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Generate GitHub App token + id: generate-token + uses: tibdex/github-app-token@v2 + with: + app_id: ${{ secrets.APP_ID }} + private_key: ${{ secrets.PRIVATE_KEY }} + + - name: Create PRs to update VCS repositories + uses: autowarefoundation/autoware-github-actions/create-prs-to-update-vcs-repositories@v1 + with: + token: ${{ steps.generate-token.outputs.token }} + repo_name: autowarefoundation/autoware + parent_dir: . + targets: major minor patch + base_branch: main + new_branch_prefix: feat/update- + autoware_repos_file_name: autoware.repos + verbosity: 0 From 6812e5ee6a3309f41a64869a021b0e05833dfd1b Mon Sep 17 00:00:00 2001 From: Yutaka Kondo Date: Fri, 4 Oct 2024 14:19:38 +0900 Subject: [PATCH 13/14] docs(docker): description of how to use the development and runtime containers (#5301) * add dev container readme Signed-off-by: Yutaka Kondo * add description Signed-off-by: Yutaka Kondo * update Signed-off-by: Yutaka Kondo * add runtime description Signed-off-by: Yutaka Kondo * style(pre-commit): autofix --------- Signed-off-by: Yutaka Kondo Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- docker/README.md | 62 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/docker/README.md b/docker/README.md index 14c39306153..2dc13c925bf 100644 --- a/docker/README.md +++ b/docker/README.md @@ -4,6 +4,68 @@ Detailed instructions on how to use the containers can be found in the [Open AD Kit documentation](https://autowarefoundation.github.io/autoware-documentation/main/installation/autoware/docker-installation/). +## Development containers + +When using Open AD Kit as a development container, it is easy to use Autoware's all-in-one development container image, `ghcr.io/autowarefoundation/autoware:universe-devel-cuda`. +If you do not need the CUDA drivers, you can also use the smaller image `ghcr.io/autowarefoundation/autoware:universe-devel`. + +```shell +$ git clone git@github.com:autowarefoundation/autoware.git +$ cd autoware +$ vcs import src < autoware.repos +$ docker run -it --rm \ + –v $PWD/src/universe/autoware.universe/XXX/autoware_YYY:/autoware/src/autoware_YYY \ + ghcr.io/autowarefoundation/autoware:universe-devel-cuda +$ colcon build --mixin debug compile-commands +$ source install/setup.bash +$ ros2 run --prefix "gdb -ex run --args" autoware_YYY ZZZ +``` + +For example, if you want to make modifications to [`autoware.universe/perception/autoware_bytetrack`](https://github.com/autowarefoundation/autoware.universe/tree/main/perception/autoware_bytetrack), you can execute the following commands to perform the volume mount and debug build and execution of only the `autoware_bytetrack`. + +Note that `gdb` is not currently installed in the development containers, but it would be installed in the near future. + +```shell +$ docker run -it --rm \ + -v $PWD/src/universe/autoware.universe/perception/autoware_bytetrack:/autoware/src/autoware_bytetrack \ + ghcr.io/autowarefoundation/autoware:universe-devel-cuda +$ root@a566e785c4d2:/autoware# colcon build --mixin debug compile-commands +Starting >>> autoware_bytetrack +[Processing: autoware_bytetrack] +Finished <<< autoware_bytetrack [37.9s] + +Summary: 1 package finished [38.1s] +$ root@a566e785c4d2:/autoware# source install/setup.bash +$ root@a566e785c4d2:/autoware# apt update && apt install gdb +$ root@a566e785c4d2:/autoware# ros2 run --prefix "gdb -ex run --args" autoware_bytetrack bytetrack_node_exe +GNU gdb (Ubuntu 12.1-0ubuntu1~22.04.2) 12.1 +... +[Thread debugging using libthread_db enabled] +... +[New Thread 0x7ff6f3fff640 (LWP 1205)] +Init ByteTrack! +``` + +## Runtime containers + +In the execution container, there is the all-in-one runtime container for Autoware, `ghcr.io/autowarefoundation/autoware:universe-cuda`, and the multi-containerized `ghcr.io/autowarefoundation/autoware:universe-***-cuda` for each component of Autoware Universe. + +The all-in-one execution container also has the autoware_launch package installed, allowing it to be started in the same way as a locally built Autoware. + +```shell +git clone git@github.com:autowarefoundation/autoware.git +cd autoware +docker run -it --rm ghcr.io/autowarefoundation/autoware:universe-cuda +ros2 launch autoware_launch planning_simulator.launch.xml map_path:=... +``` + +For example, if you want to run the runtime container that only includes the `sensing/perception` components, you can execute it as follows. + +```shell +docker run -it --rm ghcr.io/autowarefoundation/autoware:universe-sensing-perception-cuda +ros2 launch autoware_pointcloud_preprocessor preprocessor.launch.xml +``` + ## Multi-stage Dockerfile structure ![](./Dockerfile.svg) From f4ef99d1053f87234ce5028de7659e02bbdbe1df Mon Sep 17 00:00:00 2001 From: "awf-autoware-bot[bot]" <94889083+awf-autoware-bot[bot]@users.noreply.github.com> Date: Fri, 4 Oct 2024 05:34:47 +0000 Subject: [PATCH 14/14] feat(autoware.repos): minor update autowarefoundation/autoware_msgs to 1.2.0 (#5304) Signed-off-by: github-actions Co-authored-by: github-actions --- autoware.repos | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/autoware.repos b/autoware.repos index 2adedbe524b..bd3b94c0240 100644 --- a/autoware.repos +++ b/autoware.repos @@ -3,7 +3,7 @@ repositories: core/autoware_msgs: type: git url: https://github.com/autowarefoundation/autoware_msgs.git - version: 1.1.0 + version: 1.2.0 core/autoware_adapi_msgs: type: git url: https://github.com/autowarefoundation/autoware_adapi_msgs.git