mirror of
https://github.com/OSURoboticsClub/Rover_2017_2018.git
synced 2025-11-08 18:21:15 +00:00
Added in Chris' working mapping code. Fixed some joystick camera selection code.
This commit is contained in:
@@ -358,6 +358,8 @@ class OverlayImage(object):
|
||||
self.left_x = (self.center_x - (self.width/2))
|
||||
self.upper_y = (self.center_y - (self.height/2))
|
||||
|
||||
self.generate_image_files()
|
||||
|
||||
def generate_image_files(self):
|
||||
"""
|
||||
Creates big_image and display image sizes
|
||||
@@ -410,17 +412,21 @@ class OverlayImage(object):
|
||||
def _draw_rover(self, lat, lon, size, scaler):
|
||||
x, y = self._get_cartesian(lat, lon)
|
||||
draw = PIL.ImageDraw.Draw(self.big_image)
|
||||
draw.ellipsis((x-size, y-size, x+size, y+size), (255, 255, 255, 0))
|
||||
draw.ellipse((x-size, y-size, x+size, y+size), fill="red")
|
||||
point_1 = tuple((math.cos(x-2*size * scaler), math.sin(y * scaler)))
|
||||
point_2 = tuple((math.cos(x * scaler), math.sin(y+2*size * scaler)))
|
||||
point_3 = (math.cos(x+2*size * scaler), math.sin(y * scaler))
|
||||
draw.line(
|
||||
math.cos(x-2*size * scaler),
|
||||
math.sin(y * scaler),
|
||||
math.cos(x * scaler),
|
||||
math.sin(y+2*size * scaler), (255, 255, 255, 0), 25)
|
||||
(point_1,
|
||||
point_2),
|
||||
fill="red",
|
||||
width=600)
|
||||
draw.line(
|
||||
math.cos(x+2*size * scaler),
|
||||
math.sin(y * scaler),
|
||||
math.cos(x * scaler),
|
||||
math.sin(y+2*size * scaler), (255, 255, 255, 0), 25)
|
||||
(point_2,
|
||||
point_3),
|
||||
fill="red",
|
||||
width=600)
|
||||
self.display_image.save("Something.png")
|
||||
|
||||
def update(self):
|
||||
self.display_image.paste(self.big_image, (-self.left_x, -self.upper_y))
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
# Python native imports
|
||||
from PyQt5 import QtCore, QtWidgets, QtGui
|
||||
from PIL.ImageQt import ImageQt
|
||||
from PIL import Image
|
||||
|
||||
import logging
|
||||
|
||||
@@ -81,8 +82,11 @@ class RoverMapCoordinator(QtCore.QThread):
|
||||
1280, 720))
|
||||
|
||||
def _get_map_image(self):
|
||||
while self.map_image is None:
|
||||
self.map_image = self.google_maps_object.display_image
|
||||
# self.map_image.paste(self.overlay_image_object.display_image)
|
||||
self.overlay_image_object.update_new_location(44.567161,-123.278432, .7)
|
||||
self.map_image.paste(self.overlay_image_object.display_image, (0,0), self.overlay_image_object.display_image)
|
||||
# self.map_image = Image.alpha_composite(self.google_maps_object.display_image, self.overlay_image_object.display_image)
|
||||
# get overlay here
|
||||
qim = ImageQt(self.map_image)
|
||||
self.map_pixmap = QtGui.QPixmap.fromImage(qim)
|
||||
|
||||
@@ -12,7 +12,7 @@ class MapHelper(object):
|
||||
returns PIL.IMAGE OBJECT
|
||||
"""
|
||||
if alpha is True:
|
||||
return PIL.Image.new('RGBA', (width, height), (0, 0, 0, 255))
|
||||
return PIL.Image.new('RGBA', (width, height), (0, 0, 0, 0))
|
||||
else:
|
||||
return PIL.Image.new('RGBA', (width, height))
|
||||
|
||||
|
||||
@@ -70,7 +70,7 @@ class RoverVideoCoordinator(QtCore.QThread):
|
||||
rospy.Publisher("/cameras/main_navigation/camera_control", CameraControlMessage, queue_size=1).publish(reset_camera_message)
|
||||
rospy.Publisher("/cameras/end_effector/camera_control", CameraControlMessage, queue_size=1).publish(reset_camera_message)
|
||||
|
||||
# self.msleep(3000)
|
||||
self.msleep(3000)
|
||||
|
||||
# Setup cameras
|
||||
self.__get_cameras()
|
||||
@@ -81,9 +81,9 @@ class RoverVideoCoordinator(QtCore.QThread):
|
||||
self.tertiary_label_current_setting = min(self.secondary_label_current_setting + 1, len(self.valid_cameras))
|
||||
|
||||
self.index_to_label_current_setting = {
|
||||
0, self.primary_label_current_setting,
|
||||
1, self.secondary_label_current_setting,
|
||||
2, self.tertiary_label_current_setting
|
||||
0: self.primary_label_current_setting,
|
||||
1: self.secondary_label_current_setting,
|
||||
2: self.tertiary_label_current_setting
|
||||
}
|
||||
|
||||
self.current_label_for_joystick_adjust = 0
|
||||
@@ -130,11 +130,11 @@ class RoverVideoCoordinator(QtCore.QThread):
|
||||
|
||||
def __update_gui_element_selection(self):
|
||||
if self.gui_selection_update_needed:
|
||||
elements_to_reset = range(len(self.valid_cameras))
|
||||
elements_to_reset = range(len(self.index_to_label_element))
|
||||
elements_to_reset.remove(self.current_label_for_joystick_adjust)
|
||||
|
||||
for index in elements_to_reset:
|
||||
self.index_to_label_element[index].setStyleSheet("background-color: transparent;")
|
||||
self.index_to_label_element[index].setStyleSheet("")
|
||||
|
||||
self.index_to_label_element[self.current_label_for_joystick_adjust].setStyleSheet("border: 2px solid orange")
|
||||
|
||||
@@ -242,11 +242,11 @@ class RoverVideoCoordinator(QtCore.QThread):
|
||||
pass
|
||||
|
||||
def on_camera_gui_element_selection_changed(self, direction):
|
||||
new_selection = self.current_label_for_joystick_adjust + direction
|
||||
new_selection = self.current_label_for_joystick_adjust - direction
|
||||
|
||||
if new_selection < 0:
|
||||
self.current_label_for_joystick_adjust = len(self.valid_cameras)
|
||||
elif new_selection > len(self.valid_cameras):
|
||||
self.current_label_for_joystick_adjust = len(self.index_to_label_element) - 1
|
||||
elif new_selection == len(self.index_to_label_element):
|
||||
self.current_label_for_joystick_adjust = 0
|
||||
else:
|
||||
self.current_label_for_joystick_adjust = new_selection
|
||||
@@ -257,8 +257,8 @@ class RoverVideoCoordinator(QtCore.QThread):
|
||||
new_label_setting = self.index_to_label_current_setting[self.current_label_for_joystick_adjust] + direction
|
||||
|
||||
if new_label_setting < 0:
|
||||
self.index_to_label_current_setting[self.current_label_for_joystick_adjust] = len(self.valid_cameras)
|
||||
elif new_label_setting > len(self.valid_cameras):
|
||||
self.index_to_label_current_setting[self.current_label_for_joystick_adjust] = len(self.valid_cameras) - 1
|
||||
elif new_label_setting == len(self.valid_cameras):
|
||||
self.index_to_label_current_setting[self.current_label_for_joystick_adjust] = 0
|
||||
else:
|
||||
self.index_to_label_current_setting[self.current_label_for_joystick_adjust] = new_label_setting
|
||||
|
||||
@@ -98,7 +98,7 @@ class GroundStation(QtCore.QObject):
|
||||
|
||||
# ##### Instantiate Threaded Classes ######
|
||||
self.__add_thread("Video Coordinator", RoverVideoCoordinator.RoverVideoCoordinator(self.shared_objects))
|
||||
# self.__add_thread("Map Coordinator", RoverMapCoordinator.RoverMapCoordinator(self.shared_objects))
|
||||
self.__add_thread("Map Coordinator", RoverMapCoordinator.RoverMapCoordinator(self.shared_objects))
|
||||
self.__add_thread("Joystick Sender", JoystickControlSender.JoystickControlSender(self.shared_objects))
|
||||
self.connect_signals_and_slots_signal.emit()
|
||||
self.__connect_signals_to_slots()
|
||||
|
||||
Reference in New Issue
Block a user