Skip to content

support Windows - #137

Open
Yuming-Lee24 wants to merge 9 commits into
learnsyslab:mainfrom
Yuming-Lee24:support-windows
Open

Yuming-Lee24 wants to merge 9 commits into
learnsyslab:mainfrom
Yuming-Lee24:support-windows

Conversation

@Yuming-Lee24

Copy link
Copy Markdown
Collaborator

support native windows, including acados setup, verified on my win11 pc, I will verify again on my laptop. The simulation seems very smooth in the renderer.

A MinGW-w64 toolchain is introduced to compile acados and MPC solver DLLs.

@Yuming-Lee24

Copy link
Copy Markdown
Collaborator Author
_2026_09_06_20_54_56_782.mp4

@ratheron

ratheron commented Sep 6, 2026

Copy link
Copy Markdown
Collaborator

No more windows kids complaining. No one having to use docker

Trulli

@ratheron ratheron left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Thanks for adding this. This will ease up the first week of the semester. @amacati do you agree that we should drop devcontainer support? Or just keep it in?

I've added some comments. Depending on Martin's answer, we should restructure the installation docs completely. Rest looks fine to me.

Comment thread docs/getting_started/setup.md Outdated
Comment thread docs/getting_started/setup.md Outdated
Comment thread docs/getting_started/setup.md Outdated
Comment thread docs/getting_started/setup.md Outdated
Comment thread docs/getting_started/setup.md Outdated
Comment thread docs/getting_started/setup.md
Comment thread tools/setup_acados.bat Outdated
@@ -0,0 +1,100 @@
@echo off
rem Native Windows setup, called by Pixi through cmd.exe. No PowerShell required.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Called by pixi through cmd.exe?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

hmm, at first I am about to use a .ps1 to setup acados, but the pixi executes activation scripts through cmd.exe by default, so a .ps1 file can not be runned. Well this comment should be deleted.

Yuming-Lee24 and others added 2 commits September 6, 2026 22:45
Removed unnecessary mention of PowerShell in comments.
Co-authored-by: Marcel Rath <75042654+ratheron@users.noreply.github.com>
@amacati

amacati commented Sep 7, 2026

Copy link
Copy Markdown
Collaborator

Thanks for adding this. This will ease up the first week of the semester. @amacati do you agree that we should drop devcontainer support? Or just keep it in?

Hmm, I don't think anyone is using them, and pixi makes them redundant. We never had visualizations in the devcontainers either, right?

@ratheron

ratheron commented Sep 7, 2026

Copy link
Copy Markdown
Collaborator

Thanks for adding this. This will ease up the first week of the semester. @amacati do you agree that we should drop devcontainer support? Or just keep it in?

Hmm, I don't think anyone is using them, and pixi makes them redundant. We never had visualizations in the devcontainers either, right?

Afaik, the visualizations in the containers work, but is extremely slow.

@ratheron

ratheron commented Sep 7, 2026

Copy link
Copy Markdown
Collaborator

@Yuming-Lee24 Looks like my github messed up my suggestions. I removed multiples lines in each, i.e., the whole section. Please check where what lines the comment includes

@amacati

amacati commented Sep 7, 2026

Copy link
Copy Markdown
Collaborator

Then I am fine with dropping the devcontainer support. Would be great if we could do this in a separate PR though to avoid too much churn.

Comment thread docs/getting_started/setup.md Outdated
Comment on lines +271 to +273
Download a **Win64/x86_64 GCC release ZIP (UCRT, POSIX)** from
[WinLibs](https://winlibs.com/#download-release). Extract `mingw64` to
`C:\tools\mingw64`, then add `C:\tools\mingw64\bin` to your user **Path** under

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Do we need to install this manually? Why can't we have this in pixi?

Comment thread docs/getting_started/setup.md Outdated
```powershell
winget install --exact --id Git.Git
winget install --exact --id prefix-dev.pixi
winget install --exact --id Microsoft.VCRedist.2015+.x64

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Do we need to install this manually? Why can't we have this in pixi?

Comment thread docs/getting_started/setup.md Outdated
Comment on lines +266 to +267
winget install --exact --id Git.Git
winget install --exact --id prefix-dev.pixi

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

We should just link to the official installation websites.

Comment thread docs/getting_started/setup.md Outdated
It is also possible to develop the project on Windows using WSL2. Clone this project into the WSL2 file system, and follow the same instructions as for Linux.

However, rendering might not work out of the box. To enable software rendering, set the following environment variable in your WSL2 terminal:
### Native Windows 10/11 (x86-64, not recommended)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

This should be moved up after the Unix installation

@ratheron ratheron left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Nice that all dependencies are in pixi now. This makes it super easy to install. Thanks!

Since in this case the tutorial is basically identical for all platforms, we should only have one tutorial, which is just pointing out where differences lie (like file structure in windows etc)

Comment thread docs/getting_started/setup.md Outdated
Comment on lines +236 to +238
Pixi installs Python, CMake, MinGW-w64 GCC/G++, GNU Make, and the Visual C++ runtime
automatically into the project environment from the Windows dependencies in
`pyproject.toml`.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

This is a Claude comment of what changed, but we dont need.

Comment thread pyproject.toml Outdated
[tool.pixi.target.win-64.dependencies]
cmake = "==3.26.0"
vc14_runtime = "*"
# MinGW-w64 toolchain for acados; exact package builds are pinned in pixi.lock.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Exact packages should not be pinned in the lock file. The lock file is only for reproducability. If we need exact packages, pin them here.

Comment thread docs/getting_started/setup.md Outdated
!!! note
Be careful when flying the drone! Make sure to kill the process (**Ctrl+C**) immediately when your controller is unstable.

### Native Windows 10/11 (x86-64, not recommended)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Since this is properly integrated now, this can be combined with the ubuntu install above. Like, git is already listed as a prerequisite and the clone and pixi steps are identical. We should just point out what doesnt work, like, does GPU work, does deployment work (most likely not) etc. In those cases, we can add something like I propose above

Comment thread docs/getting_started/setup.md Outdated

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Install deployment environment (deploy controller to real drones, Ubuntu only)

If this is the case.

Comment thread docs/getting_started/setup.md Outdated

We also provide a dev container for the simulation environment. However, this is not recommended, since it's heavy and only supports software rendering at the moment. If you're using Windows, make sure to install [WSL](https://docs.microsoft.com/en-us/windows/wsl/install) and [Docker Desktop](https://docs.docker.com/desktop/windows/install/) with WSL integration. Refer to the `Using Docker` section below for more details.

#### Simulation & Hardware on our Lab PC (If Necessary)

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

why this is If nessary? don't we prefer students to deploy on lab PCs? @ratheron

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I agree, the (If Necessary) can be removed imo

Comment thread docs/getting_started/setup.md Outdated
Comment on lines 11 to 12

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

these two lines, a robostack env is not something that student need to install before setting up the repo env, the robotstack is installed via pixi install -e deploy, I suggest to remove this line. And also the line for docker, since we don't support it anymore I guess? @ratheron

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Docker, yes. Robostack, we should still hint what the env is

Comment thread docs/getting_started/setup.md Outdated
Comment on lines 64 to 78

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

not a fan of putting these here, confusing: "should I execute these commands or not?", I would cover this in the simulation env setup below

Comment thread docs/getting_started/setup.md Outdated

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

we don't need -r now, rendering option is in the config file

@Yuming-Lee24

Copy link
Copy Markdown
Collaborator Author

I reconstruct the whole setup.md and fix some lines in simulation.md and deployment.md, tell me what do you think this new version. I think it is clearer. @ratheron

@ratheron ratheron left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I like the overall structure of the new setup.md. Added some comments on the deployment.md

Comment thread docs/challenge/deployment.md Outdated
Comment thread docs/challenge/deployment.md Outdated
Comment thread docs/challenge/deployment.md Outdated
Comment thread docs/challenge/deployment.md Outdated
Comment thread docs/challenge/deployment.md Outdated
Comment thread docs/getting_started/setup.md Outdated
Comment thread docs/getting_started/setup.md Outdated
Comment thread docs/getting_started/setup.md Outdated
Comment thread docs/getting_started/setup.md Outdated
Comment thread docs/getting_started/setup.md Outdated

This branch has not been deployed

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants