Skip to content

[TASK] Initial GUI setup #3

@kluge7

Description

@kluge7

Description of task

Create an initial GUI codebase which should be easy to configure and add elements to.

Specifications

  • Buttons which starts up tmux windows that run the nodes specified in a config file. The config file should contains params for strings which is the command that is run when the button is clicked? Or instead it runs a bash script which starts the tmux sessions (i think this makes more sense). The script should connect to the drone (Orin), start tmux sessions and then run the launch files we want. To DEBUG: Drop the ssh, only test locally on computer, it only needs to launch one node. We have buttons for our different missions (one for Docking, one for Pipeline following, one for Valve). Make one bash scripts, which then loads configs depending on mission. (Figure out how toggling should work, if you click it once it starts stuff, but if you click it again it shuts down (maybe smart? but should also have a warning if you try to shut it down). Should show which button is active, and you probably shouldnt be able to activate multiple buttons at a time (should also wait for the previous tmux session to end before you can click a button again)
  • Slider for light intensities. Need subscriber and publish logic (talk to @forrisdahl), the GUI publish the value we want and it receives the what the value is currently. The slider is the value we want, and is what we should publish. Cant work on this yet, should wait for embedded code to be ready.
  • Add logic for sending waypoints to drone from the GUI. Make it look user friendly.
  • If we get a warning or error message back from anything (if we send a waypoint and it fails or its completed, visualize that somehow in the GUI. An idea is to have a text window/terminal where you log all the messages you get. 15:16 - Waypoint sent successfully, 15:20 Waypoint reached. Need to make a parser for this. It should also visualize other msgs (unsure how this will be done, some sort of handling in the ros code, write to file?)
  • Visualize the current operation mode we are in. Previously this was done through foxglove, but it was very small and annoying to look at. This should also be logged to text window. Talk to @eirisak. Could also be an idea to have buttons or some way to change the operation mode from the GUI.

Contacts

Code Quality

  • Every function in header files are documented (inputs/returns/exceptions)
  • The project has automated tests that cover MOST of the functions and branches in functions (pytest/gtest)
  • The code is documented on the wiki (provide link)

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions