Skip to content

feat: autoware system designer#6739

Merged
mitsudome-r merged 1 commit into
autowarefoundation:mainfrom
technolojin:autoware_system_designer
Apr 1, 2026
Merged

feat: autoware system designer#6739
mitsudome-r merged 1 commit into
autowarefoundation:mainfrom
technolojin:autoware_system_designer

Conversation

@technolojin
Copy link
Copy Markdown
Contributor

@technolojin technolojin commented Jan 22, 2026

Description

DISCUSSION https://github.com/orgs/autowarefoundation/discussions/6760

ISSUE #6793

autoware system designer: https://github.com/autowarefoundation/autoware_system_designer

  • implementation structure
Screenshot from 2026-02-13 10-54-06
  • configuration so called autoware_system_design_format
Screenshot from 2026-01-26 10-41-51
  • diagram visualization
Screenshot from 2026-01-22 15-42-08
  • auto-generated ros launcher
Screenshot from 2026-01-22 15-38-23

How was this PR tested?

build

# repositories
vcs import src < repositories/autoware.repos
vcs import src < repositories/autoware-nightly.repos
vcs pull src

# pull PRs
cd src/universe/autoware_universe
gh pr checkout 12070

cd src/launcher/autoware_launch
gh pr checkout 1751

cd src/sensor_component/external/nebula
# for latest version
gh pr checkout 403
# for stable version
gh pr checkout 404

# build
colcon build --packages-up-to autoware_system_designer autoware_system_design_examples autoware_sample_deployment
Screenshot from 2026-01-22 15-36-45

launch

logging simulator

# launch logging simulator
ros2 launch '/your/workspace/install/autoware_sample_deployment/share/autoware_sample_deployment/exports/AutowareSample/launcher/LoggingSimulation/main_ecu/main_ecu.launch.xml' 

AWSIM

#  launch AWSIM simulator
ros2 launch '/your/workspace/install/autoware_sample_deployment/share/autoware_sample_deployment/exports/AutowareSample/launcher/E2ESimulation/main_ecu/main_ecu.launch.xml' 

planning simulator

# launch planning simulator
ros2 launch /your/workspace/install/autoware_sample_deployment/share/autoware_sample_deployment/exports/AutowareSample/launcher/PlanningSimulation/main_ecu/main_ecu.launch.xml

# open rviz for control
QT_QPA_PLATFORMTHEME=qt5ct rviz2 -d /your/workspace/install/autoware_launch/share/autoware_launch/rviz/autoware.rviz
Screenshot from 2026-01-22 15-38-23

visualization

# visualization
google-chrome /your/workspace/install/systems.html
Screenshot from 2026-01-22 15-33-21 Screenshot from 2026-01-22 15-42-08

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jan 22, 2026

Thank you for contributing to the Autoware project!

🚧 If your pull request is in progress, switch it to draft mode.

Please ensure:

@paulsohn
Copy link
Copy Markdown
Collaborator

paulsohn commented Jan 29, 2026

First of all, I like to appreciate your great work. I have some opinions for the detail:

  • while I support the idea to maintain launch files (or its source) in more controllable way, it might cause a strong lock-in effect for launcher to your system. I would like to have a backup plan to discontinue system designer and return to traditional launcher files if we consider necessary.
  • I would say that launch artifact itself should be present before build (i.e. it should be autogenerated and available as source level, not compiled). In this way we can ensure transparency (1) for us developers that the launch file works as we intended, (2) and for current and future tools that trace launch file statically even before build.

More context for (2): as a former user of Bazel, I don't really like the misalignment between build stage and launch stage requirements. For example, v0.3.x nebula supports depending on only necessary components, but our sample sensor kits cannot enjoy this improvement, and our package.xml need to depend on the complete bundle.

Still work in progress, but I want to share my milestones here. I am working planning to work on designing an enhanced launcher from existing ros2 launch:

  1. 'dry run mode' for which generates the resolved launch.xml file, which can then be tested whether arguments are passed correctly, or visualized using ROS 2 visualization tool
  2. compiler-integrated launcher which detects and builds packages only necessary in a certain launch flow (ignoring depends in package.xml; depends info is now stored in per launch file). I'm not sure if this is even possible, especially when an absolute path is passed into <include from=""/> instead of a package and a relative path from it.

cc @mojomex

@Owen-Liuyuxuan
Copy link
Copy Markdown
Contributor

@paulsohn

compiler-integrated launcher which detects and builds packages only necessary in a certain launch flow (ignoring depends in package.xml; depends info is now stored in per launch file). I'm not sure if this is even possible, especially when an absolute path is passed into instead of a package and a relative path from it.

Some plugins and libraries are used in the code, but not from the launcher. So we need a place for people to write the dependencies on packages.xml. I think it will be very difficult to skip this.

@paulsohn
Copy link
Copy Markdown
Collaborator

paulsohn commented Jan 29, 2026

@Owen-Liuyuxuan Yes, I think it will really take lots of efforts and don't know even if it's possible for now.

In the meantime it would be great if we have something directly in launcher, not packages.xml:

<build_depends>
  <build_depend>dep1</build_depend>
  <build_depend>dep2</build_depend>
</build_depends>

... AND fallback to package.xml build_depend list if such entry does not exist. For now I'm just daydreaming on milestone 2, but it seems worthy to discuss.

@technolojin
Copy link
Copy Markdown
Contributor Author

@paulsohn @Owen-Liuyuxuan
Thank you for your opinions.
Can you please discuss in https://github.com/orgs/autowarefoundation/discussions/6760?

@technolojin technolojin force-pushed the autoware_system_designer branch 2 times, most recently from 2021ac5 to eea0476 Compare February 12, 2026 05:34
@technolojin technolojin added type:build Tooling and infrastructure around building the Autoware. type:new-feature New functionalities or additions, feature requests. run:health-check Run health-check and removed type:build Tooling and infrastructure around building the Autoware. labels Feb 12, 2026
@technolojin technolojin marked this pull request as ready for review February 13, 2026 02:43
@technolojin
Copy link
Copy Markdown
Contributor Author

@mitsudome-r

I would like to check this PR

  1. is autoware-nightly.repos the right file to be updated? or also autoware.repos?
  2. the health-check(main) failed. It supposed not to be related with current update.

@mitsudome-r
Copy link
Copy Markdown
Member

@technolojin If we are going to add under core/ directory, we should add them to autoware.repos.
autoware.repos file also needs to have a released version to be specified so you need to make a release (i.e., make a tag) to system_designer.

@mitsudome-r mitsudome-r force-pushed the autoware_system_designer branch from eea0476 to 354008a Compare February 18, 2026 03:22
@technolojin technolojin marked this pull request as draft February 20, 2026 08:56
@technolojin
Copy link
Copy Markdown
Contributor Author

@mitsudome-r when other reviews are finished, I will bring back to open with updates.

@technolojin technolojin force-pushed the autoware_system_designer branch from 354008a to 403d654 Compare March 5, 2026 07:06
@technolojin technolojin force-pushed the autoware_system_designer branch from 403d654 to d1a85ba Compare March 26, 2026 01:59
@technolojin
Copy link
Copy Markdown
Contributor Author

autowarefoundation/autoware_launch#1751
autoware_launch will require the autoware system designer in workspace.
this PR shall be merged before the autoware_launch introduction

@technolojin technolojin marked this pull request as ready for review March 26, 2026 02:16
Copy link
Copy Markdown
Member

@mitsudome-r mitsudome-r left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Build on arm was failing due to communication issue to runner so I'm rerunning the test just in case.

@technolojin
Copy link
Copy Markdown
Contributor Author

I added build test to the autoware_system_designer repository autowarefoundation/autoware_system_designer#34

@xmfcx
Copy link
Copy Markdown
Contributor

xmfcx commented Mar 27, 2026

@mitsudome-r This is unrelated to the PR. The docker-build (main-arm64) runner got killed mid-build due to CPU/memory starvation -- the annotation on the job confirms:

"The hosted runner lost communication with the server. Anything in your workflow that terminates the runner process, starves it for CPU/Memory, or blocks its network access can cause this error."

image

The main and nightly Docker builds both passed; only main-arm64 failed after running for ~1h47m. The "Build 'Autoware'" step has no logs captured because the runner was killed before it could flush them.

Root cause: colcon build in build_and_clean.sh uses all available cores by default. On the public ubuntu-22.04-arm runners (4 vCPUs / 16GB RAM), this leads to OOM when multiple C++ packages compile in parallel.

…y configuration

Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp>

feat(repositories): update repository URLs and versions for autoware components

Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp>

fix(repositories): update repository URLs to point to tier4 organization

Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp>

fix(repositories): update autoware_core URL and version to point to tier4 organization

Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp>

feat(repositories): add core/autoware_system_designer repository to nightly configuration

Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp>

fix(repositories): update autoware_system_designer URL to point to autowarefoundation organization

Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp>

back to origin repos/branches

Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp>

remove duplicated nebula source

Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp>

remove duplicated system designer

Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp>

a
@mitsudome-r mitsudome-r force-pushed the autoware_system_designer branch from 47c09d9 to 5e46b42 Compare March 31, 2026 14:59
@mitsudome-r mitsudome-r merged commit 8e69657 into autowarefoundation:main Apr 1, 2026
18 checks passed
@technolojin technolojin deleted the autoware_system_designer branch April 1, 2026 01:31
@xmfcx
Copy link
Copy Markdown
Contributor

xmfcx commented Apr 10, 2026

@technolojin Is there a reason why this was not added to autoware.repos too?

https://github.com/autowarefoundation/autoware/actions/runs/24238221304/job/70766076243?pr=6958#step:12:4263

 > [rosdep-universe-depend 4/5] RUN /autoware/resolve_rosdep_keys.sh /autoware/src "humble"   > /rosdep-universe-depend-packages.txt   && cat /rosdep-universe-depend-packages.txt:
9.666 ERROR: no rosdep rule for 'autoware_system_designer'

Failed but not sure if related, still investigating.

But in general, we don't want to have a repo to only be in nightly.

  • autoware.repos provides hash or version
  • autoware.nightly acts as an overlay to override it to main or a branch

@technolojin
Copy link
Copy Markdown
Contributor Author

@xmfcx
I thought a new concept may be tested under nightly and introduced after a good validation.
Anyway, thank you for your check and fix #7000

I confirmed the issue about cmake macros refers hard-coded paths. autowarefoundation/autoware_system_designer#46

The root cause is fixed in v0.3.2 autowarefoundation/autoware_system_designer#48 and it would be introduced to the autoware #7010

can you review the version update PR #7010 ?

then We may can bring back the autoware_launch PR autowarefoundation/autoware_launch#1814

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

run:health-check Run health-check type:new-feature New functionalities or additions, feature requests.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants