cbteeple / pressure_control_interface

The top-level control interface for controlling a Ctrl-P pressure control system.
https://ctrl-p.cbteeple.com/latest/top-level
MIT License
1 stars 1 forks source link

Implement a simple control GUI #8

Open cbteeple opened 2 years ago

cbteeple commented 2 years ago

Feature description

Currently everything runs in the terminal or command line, so the barrier to entry for using this system is relatively high (need to understand how to use the terminal, pass arguments, etc.)

The ideal solution

This system would be brought to the next level with a simple GUI that allows the following features:

  1. Config Window
    • Upload configs to the controller (by selecting config file)
    • (Extra) Load a config file and enable editing of values with live updates to the controller.
  2. Manual Control Interface
    • Set the setpoints live using sliders and/or spinboxes
    • Send commands via text box
    • (Extra) Enable saving a series of waypoints into a trajectory.
  3. Trajectory Interface
    • Build trajectory by selecting traj file, and display a graph.
    • Upload trajectories to the controller (by selecting a built traj file)
    • Run trajectories
      • Set the number of reps & speed factor using sliders
      • Display live graph of data with setpoints.

Alternatives?

Current alternative for some of this is to use the GUIs in ROS, but this requires a huge amount of setup and is not cross platform.

Will this require substantial changes to the codebase?

No, we can use the same command validation and sending procedure as for everything else.

cbteeple commented 2 years ago

The ROS guis are based on ROS's version of PyQt. Qt is cross-platform and works in many programming languages, but it seems a little more clunky compared to Tk.

In pure python, the simplest method seems to be TkInter.