Skip to content

Commit

Permalink
Merge pull request #151 from cwruRobotics/combine-pilot-debug
Browse files Browse the repository at this point in the history
Combine Pilot and Debug Gui
  • Loading branch information
ShannonGriswold authored Apr 27, 2024
2 parents a97056a + d50f238 commit 6244e27
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 125 deletions.
71 changes: 0 additions & 71 deletions src/surface/gui/gui/debug_app.py

This file was deleted.

19 changes: 15 additions & 4 deletions src/surface/gui/gui/pilot_app.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,11 @@ class PilotApp(App):
def __init__(self) -> None:
super().__init__('pilot_gui_node')

self.setWindowTitle('Pilot GUI - CWRUbotix ROV 2024')

main_layout = QVBoxLayout()
self.setLayout(main_layout)

simulation_param = self.node.declare_parameter('simulation', False)
gui_param = self.node.declare_parameter('gui', 'pilot')

if simulation_param.value:
front_cam_type = CameraType.SIMULATION
Expand Down Expand Up @@ -45,8 +44,20 @@ def __init__(self) -> None:
video_area = SwitchableVideoWidget([bottom_cam_description, depth_cam_description],
"camera_switch")

main_layout.addWidget(main_video, alignment=Qt.AlignmentFlag.AlignHCenter)
main_layout.addWidget(video_area, alignment=Qt.AlignmentFlag.AlignHCenter)
if gui_param.value == 'pilot':
self.setWindowTitle('Pilot GUI - CWRUbotix ROV 2024')

main_layout.addWidget(main_video, alignment=Qt.AlignmentFlag.AlignHCenter)
main_layout.addWidget(video_area, alignment=Qt.AlignmentFlag.AlignHCenter)
else:
self.setWindowTitle('Debug GUI - CWRUbotix ROV 2024')

video_layout = QHBoxLayout()

video_layout.addWidget(main_video, alignment=Qt.AlignmentFlag.AlignHCenter)
video_layout.addWidget(video_area, alignment=Qt.AlignmentFlag.AlignHCenter)

main_layout.addLayout(video_layout)

bottom_screen_layout = QHBoxLayout()

Expand Down
60 changes: 11 additions & 49 deletions src/surface/gui/launch/pilot_launch.py
Original file line number Diff line number Diff line change
@@ -1,43 +1,17 @@
from enum import Enum

from launch.actions import GroupAction
from launch.launch_description import DeclareLaunchArgument, LaunchDescription
from launch.launch_description import LaunchDescription
from launch.substitutions.launch_configuration import LaunchConfiguration
from launch.substitutions.equals_substitution import EqualsSubstitution
from launch.conditions.if_condition import IfCondition
from launch_ros.actions import Node, PushRosNamespace


class GUIVersion(str, Enum):
PILOT = 'pilot'
DEBUG = 'debug'


def pilot_node_generator(executable: str, gui_version: GUIVersion,
gui_version_substitution: LaunchConfiguration) -> Node:
"""
Generate pilot nodes.
Parameters
----------
executable : str
Name of the executable to run.
gui_version : GUIVersion
Enum for which gui being run
gui_version_substitution : LaunchConfiguration
LaunchConfiguration for the gui argument.
Returns
-------
Node
Return launch_ros Node.
"""
return Node(
def generate_launch_description() -> LaunchDescription:
"""Asynchronously launches pilot's gui node."""
pilot_node = Node(
package='gui',
executable=executable,
executable='run_pilot',
parameters=[{'theme': LaunchConfiguration('theme', default='dark')},
{'simulation': LaunchConfiguration('simulation', default='false')}],
{'simulation': LaunchConfiguration('simulation', default='false')},
{'gui': LaunchConfiguration('gui', default='pilot')}],
remappings=[("/surface/gui/mavros/cmd/arming", "/tether/mavros/cmd/arming"),
("/surface/gui/camera_switch", "/surface/camera_switch"),
("/surface/gui/bottom_cam/image_raw", "/surface/bottom_cam/image_raw"),
Expand All @@ -46,26 +20,14 @@ def pilot_node_generator(executable: str, gui_version: GUIVersion,
("/surface/gui/vehicle_state_event", "/surface/vehicle_state_event"),
("/surface/gui/flooding", "/tether/flooding")],
emulate_tty=True,
output='screen',
condition=IfCondition(EqualsSubstitution(gui_version.value, gui_version_substitution)))


def generate_launch_description() -> LaunchDescription:
"""Asynchronously launches pilot's gui node."""
gui_version_arg = DeclareLaunchArgument('gui', default_value=GUIVersion.PILOT,
choices=[GUIVersion.PILOT, GUIVersion.DEBUG])

gui_version_substitution = LaunchConfiguration('gui', default=GUIVersion.PILOT)
pilot_node = pilot_node_generator('run_pilot', GUIVersion.PILOT, gui_version_substitution)
debug_node = pilot_node_generator('run_debug', GUIVersion.DEBUG, gui_version_substitution)
output='screen'
)

namespace_launch = GroupAction(
actions=[
PushRosNamespace('gui'),
pilot_node,
debug_node
pilot_node
]
)

return LaunchDescription([namespace_launch,
gui_version_arg])
return LaunchDescription([namespace_launch])
1 change: 0 additions & 1 deletion src/surface/gui/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@
entry_points={
'console_scripts': ['run_pilot = gui.pilot_app:run_gui_pilot',
'run_operator = gui.operator_app:run_gui_operator',
'run_debug = gui.debug_app:run_gui_debug',
'run_timer = gui.gui_nodes.auxiliary_nodes.timer:run_timer'],
},
)

0 comments on commit 6244e27

Please sign in to comment.