feat(gui): add gyro steering that maps DS5 gyro roll to the left stick #806

Open
Corzcode wants to merge 2 commits from Corzcode/pr/upstream/gyrosteer into main
Corzcode commented 2026-08-26 22:40:29 -05:00 (Migrated from github.com)

Add the gyro steering core (lib chiaki_gyro_steer_*) that maps the DualSense roll angle into a left-stick steering value with configurable sensitivity, deadzone, inversion and recenter (absolute roll-to-stick / ANGLE mode).

Add GyroSteerBridge (GUI) exposing the settings and a live angle/output-stick preview to QML; feed the DS5 orientation tracker into it and merge the produced left_x into the StreamSession controller state.

Add gyro steering settings and a GyroSteerSettingsDialog with the CMake / qml.qrc / Main + SettingsDialog wiring, plus unit tests for the lib core.

Depends on the DualSense fixes PR (#REF) — this branch is stacked on pr/upstream/dualsense (8f0dfa1a). GyroSteerBridge is fed by the native DS5 gyro/accel orientation tracker that PR adds, and relies on the ds5_gyro_fix path landing first. Please review and merge #REF before this one.

Add the gyro steering core (lib chiaki_gyro_steer_*) that maps the DualSense roll angle into a left-stick steering value with configurable sensitivity, deadzone, inversion and recenter (absolute roll-to-stick / ANGLE mode). Add GyroSteerBridge (GUI) exposing the settings and a live angle/output-stick preview to QML; feed the DS5 orientation tracker into it and merge the produced left_x into the StreamSession controller state. Add gyro steering settings and a GyroSteerSettingsDialog with the CMake / qml.qrc / Main + SettingsDialog wiring, plus unit tests for the lib core. > **Depends on the DualSense fixes PR (#REF)** — this branch is stacked on `pr/upstream/dualsense` (`8f0dfa1a`). GyroSteerBridge is fed by the native DS5 gyro/accel orientation tracker that PR adds, and relies on the `ds5_gyro_fix` path landing first. Please review and merge #REF before this one.
This pull request is broken due to missing fork information.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin 'Corzcode/pr/upstream/gyrosteer:Corzcode/pr/upstream/gyrosteer'
git switch 'Corzcode/pr/upstream/gyrosteer'

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch 'main'
git merge --no-ff 'Corzcode/pr/upstream/gyrosteer'
git switch 'Corzcode/pr/upstream/gyrosteer'
git rebase 'main'
git switch 'main'
git merge --ff-only 'Corzcode/pr/upstream/gyrosteer'
git switch 'Corzcode/pr/upstream/gyrosteer'
git rebase 'main'
git switch 'main'
git merge --no-ff 'Corzcode/pr/upstream/gyrosteer'
git switch 'main'
git merge --squash 'Corzcode/pr/upstream/gyrosteer'
git switch 'main'
git merge --ff-only 'Corzcode/pr/upstream/gyrosteer'
git switch 'main'
git merge 'Corzcode/pr/upstream/gyrosteer'
git push origin 'main'
Sign in to join this conversation.
No description provided.