UI experimental redesign#84
Open
matejstastny wants to merge 37 commits into
Open
Conversation
…nnection on dashboard
…istent formatting, added way more checks than the src folder
Adds ControllerConfig with tankDriveBlockHorizontal flag to settingsStore (deep-merged on load for backward compat). Applies the setting in ControllerState.updateState to zero out left/right stick X axes (indices 0 & 2) when enabled.
ControllerConfig: shows connected gamepad name, connected/disconnected badge, and toggle for tank-drive block-horizontal. ControllerMonitor: compact controller visualiser with trigger bars (with Xbox 0.5-at-rest initialisation fix), bumpers, face buttons, D-pad, stick pads with live dot, and a bindings table with live value bars.
Two-column top row (connection | controller config) with full-width controller monitor below that fills remaining vertical space.
Two-column no-scroll layout: left col has device info, compact gamepad visualiser, and drive options; right col has the full bindings table. Moves controller content out of Settings.
Exposes reconnect() on roslibManager/roslibStore. ConnectionSettings now has a single Retry Connection button that triggers it; the button is visually disabled and non-interactive when already connected.
Author
|
Some other notes and issues I found, but I do not want to touch more that I need:
Also I do not know if I left some docs not updated, but honestly I would first want to know if there is even a chance this could be a thing before I start changing docs. Also thank you so much for anybody willing to look at this! 💫 |
…ehaving differently
…tor configs in one file for better maintainibility and easier changing
…er zero and deadzones for stickdrift
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why did I do this?
I'm on the drivebase team, and recently we moved to hardware testing. There has been a bunch of things bugging me with mission control, so I decided to fix them for a better drivebase testing expirience. Mainly it was the frontend, websocket config, and controller config. Now I understand as somebody who hasn't talked to the team I do not know what is being done and what are the plans, but the repo and team seemed pretty inactive to me.
What I Changed
Visual Redesign (
global.scss,Navbar.vue, all pages)--tf-green: #00fe00as the primary accent--eerie-black,--app-background,--component-backgroundsurface hierarchyInterin favor of Barlow Condensed (headings) + Overpass (body)New Controller Page (
src/pages/Controller.vue,ControllerConfig.vue,ControllerMonitor.vue)/ControllertanHome Dashboard (
src/pages/Home.vue)ConnectionSettingsdirectly on the dashboard so you don't have to navigate away to reconnect, something we did a lot. We do not do it as much now, because I made the settings be persistent (this was my biggest pain point of the whole thing)Code hygiene
tsconfig.json,tsconfig.node.json)What I Broke / What This Affects
I did this analysis after I implemented all of this and want to be fully transparent. Here's what conflicts with active work on other branches:
Bigger
EmissionGraphScience.vue. My branch replacedScience.vuewith a "Not Implemented" placeholder — their work does not exist in my version.adding-navbar-arrowsdev-tabglobal.scsschanged the meaning of several variables (--grey,--purple,--white, etc.) so any component from that branch will look wrong on mine.Medium
controllerrefactoring+rover-unveilingsrc/lib/input/), refactoredcontrollerState.ts,gamepad.ts, and touchedHome.vue,Telemetry.vue,Map.vue,Navbar.vue, andmain.ts. I also touchcontrollerState.tsand built a parallel Controller UI. Two independent controller systems exist now.OccupancyGraphConnectionSettings.vue,settingsStore.ts,Home.vue, andMap.vue— all files I heavily modified. TheirsettingsStoreis the old simple version and would conflict with myControllerConfigadditions.compass-componentCompassComponentintoMap.vue. MyMap.vueis clean; their compass would need to be re-applied.teja-dasari/map-developmentInteractiveMap.vue(component I don't touch — low risk, but theirMap.vuewrapper changes conflict).Not affected stale (is there a reason they are not deleted?) or mergeble
kyler/3d-arm,adam/new-codebase-camera,camera-use-subscriber,teja-dasari/map-development(InteractiveMap.vue itself),Alan-angle-display,ArmComponentAxisFix,alant-arm-movement,adamc/I-Love-UWBSo what now?
I would like to talk about this with somebody, but I understand if this gets closed right away. Here are some options that appear for me:
Option A: Merge active conflicting branches to
mainfirst, then revisit this. I am going to fix anything that would break.Option B: Merge this into
mainafter review, I help other branches adaptAfter the team reviews and approves the redesign direction, merge this into
main. I will then go branch by branch and help integrate their components into the new theme & structure.Option C Close this PR or cherry-pick only the non-breaking parts
Keep
mainas-is. I understand I went to this without permission without talking with other people about it. It was driving me a little crazy, and there is a lot a person with Claude and a little webdev knowledge can do. Or you can cherry-pick only the parts that don't break anything (tooling fixes, TypeScript config cleanup, package updates) and I rebuild the Controller page on top of the current main. The visual redesign gets scoped down or done in a more coordinated way.Some other notes
ws://192.168.0.146:9090tows://192.168.0.145:9090that's the IP of the Orin. Any reason it was something different? Is it the IP of the other Orin? Or just not updated?settingsStoredeep-merge means old saved settings inlocalStoragewill not break — new keys just get their defaults.