mirror of
https://github.com/OSURoboticsClub/Rover_2017_2018.git
synced 2025-11-08 10:11:14 +00:00
Modified rover_statuses.py for subscriber example on how to pull data from system_statuses_node.py for ground control station -- very rough idea, I expect only the subscription calls really being used in actual implementation
This commit is contained in:
28
rover/system_statuses/scripts/.idea/workspace.xml
generated
28
rover/system_statuses/scripts/.idea/workspace.xml
generated
@@ -14,8 +14,8 @@
|
||||
<file leaf-file-name="system_statuses_node.py" pinned="false" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/system_statuses_node.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-648">
|
||||
<caret line="114" column="41" lean-forward="true" selection-start-line="114" selection-start-column="41" selection-end-line="114" selection-end-column="41" />
|
||||
<state relative-caret-position="384">
|
||||
<caret line="16" column="9" lean-forward="false" selection-start-line="16" selection-start-column="9" selection-end-line="16" selection-end-column="9" />
|
||||
<folding>
|
||||
<element signature="e#22#34#0" expanded="true" />
|
||||
<element signature="e#4801#5092#0" expanded="false" />
|
||||
@@ -33,8 +33,8 @@
|
||||
<file leaf-file-name="rover_statuses.py" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/rover_statuses.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="168">
|
||||
<caret line="7" column="23" lean-forward="true" selection-start-line="7" selection-start-column="23" selection-end-line="7" selection-end-column="23" />
|
||||
<state relative-caret-position="672">
|
||||
<caret line="28" column="17" lean-forward="false" selection-start-line="28" selection-start-column="17" selection-end-line="28" selection-end-column="17" />
|
||||
<folding>
|
||||
<element signature="e#22#34#0" expanded="true" />
|
||||
</folding>
|
||||
@@ -57,8 +57,8 @@
|
||||
<option value="$PROJECT_DIR$/system_statuses.py" />
|
||||
<option value="$PROJECT_DIR$/node_statuses.py" />
|
||||
<option value="$PROJECT_DIR$/camera_2_updater.py" />
|
||||
<option value="$PROJECT_DIR$/rover_statuses.py" />
|
||||
<option value="$PROJECT_DIR$/system_statuses_node.py" />
|
||||
<option value="$PROJECT_DIR$/rover_statuses.py" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
@@ -143,15 +143,15 @@
|
||||
<layout>
|
||||
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
|
||||
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Python Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="11" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Python Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.116234995" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
|
||||
<window_info id="Docker" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Docker" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3294347" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="SciView" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="SciView" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
|
||||
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
||||
@@ -195,8 +195,8 @@
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/rover_statuses.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="168">
|
||||
<caret line="7" column="23" lean-forward="true" selection-start-line="7" selection-start-column="23" selection-end-line="7" selection-end-column="23" />
|
||||
<state relative-caret-position="672">
|
||||
<caret line="28" column="17" lean-forward="false" selection-start-line="28" selection-start-column="17" selection-end-line="28" selection-end-column="17" />
|
||||
<folding>
|
||||
<element signature="e#22#34#0" expanded="true" />
|
||||
</folding>
|
||||
@@ -205,8 +205,8 @@
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/system_statuses_node.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-648">
|
||||
<caret line="114" column="41" lean-forward="true" selection-start-line="114" selection-start-column="41" selection-end-line="114" selection-end-column="41" />
|
||||
<state relative-caret-position="384">
|
||||
<caret line="16" column="9" lean-forward="false" selection-start-line="16" selection-start-column="9" selection-end-line="16" selection-end-column="9" />
|
||||
<folding>
|
||||
<element signature="e#22#34#0" expanded="true" />
|
||||
<element signature="e#4801#5092#0" expanded="false" />
|
||||
|
||||
@@ -1,48 +1,75 @@
|
||||
#!/usr/bin/env python
|
||||
import rospy
|
||||
from system_statuses.msg import RoverSysStatus
|
||||
from system_statuses.msg import CameraStatuses, BogieStatuses, FrSkyStatus, GPSInfo, MiscStatuses, JetsonInfo
|
||||
|
||||
|
||||
# THIS IS A SUPER ROUGH EXAMPLE OF HOW TO PULL THE DATA
|
||||
# You can create your own message formats in the msg folder
|
||||
# This is a simple example of pulling data from system_statuses_node.py
|
||||
# and storing them into self values.
|
||||
# The ground control code sounds like it'll be fairly different in format.
|
||||
|
||||
class RoverStatuses:
|
||||
|
||||
def __init__(self):
|
||||
|
||||
rospy.init_node('RoverStatuses')
|
||||
|
||||
self.pub = rospy.Publisher('rover_statuses_chatter', RoverSysStatus, queue_size=10)
|
||||
# self.pub = rospy.Publisher('rover_statuses_chatter', RoverSysStatus, queue_size=10)
|
||||
|
||||
# Test Subscription for updating camera_undercarriage
|
||||
rospy.Subscriber('rover_system_status_chatter', RoverSysStatus, self.__sub_callback)
|
||||
# Subscription examples on pulling data from system_statuses_node.py
|
||||
rospy.Subscriber('camera_system_status_chatter', CameraStatuses, self.__camera_callback)
|
||||
rospy.Subscriber('bogie_system_status_chatter', BogieStatuses, self.__camera_callback)
|
||||
rospy.Subscriber('FrSky_system_status_chatter', FrSkyStatus, self.__camera_callback)
|
||||
rospy.Subscriber('GPS_system_status_chatter', GPSInfo, self.__camera_callback)
|
||||
rospy.Subscriber('jetson_system_status_chatter', JetsonInfo, self.__camera_callback)
|
||||
rospy.Subscriber('misc_system_status_chatter', MiscStatuses, self.__camera_callback)
|
||||
|
||||
self.msg = RoverSysStatus()
|
||||
self.camera_msg = CameraStatuses()
|
||||
self.bogie_msg = BogieStatuses()
|
||||
self.FrSky_msg = FrSkyStatus()
|
||||
self.GPS_msg = GPSInfo()
|
||||
self.jetson_msg = JetsonInfo()
|
||||
self.misc_msg = MiscStatuses()
|
||||
|
||||
def __sub_callback(self, data):
|
||||
self.msg.UTC_GPS_time = data.UTC_GPS_time
|
||||
self.msg.bogie_connection_1 = data.bogie_connection_1
|
||||
self.msg.bogie_connection_2 = data.bogie_connection_2
|
||||
self.msg.bogie_connection_3 = data.bogie_connection_3
|
||||
self.msg.arm_connection_status = data.arm_connection_status
|
||||
self.msg.arm_end_effector_connection_statuses = data.arm_end_effector_connection_statuses
|
||||
self.msg.camera_zed = data.camera_zed
|
||||
self.msg.camera_undercarriage = data.camera_undercarriage
|
||||
self.msg.camera_chassis = data.camera_chassis
|
||||
self.msg.camera_main_navigation = data.camera_main_navigation
|
||||
self.msg.sample_containment_connection_status = data.sample_containment_connection_status
|
||||
self.msg.tower_connection_status = data.tower_connection_status
|
||||
self.msg.chassis_pan_tilt_connection_status = data.chassis_pan_tilt_connection_status
|
||||
self.msg.GPS_connection_status = data.GPS_connection_status
|
||||
self.msg.jetson_CPU = data.jetson_CPU
|
||||
self.msg.jetson_RAM = data.jetson_RAM
|
||||
self.msg.jetson_EMMC = data.jetson_EMMC
|
||||
self.msg.jetson_NVME_SSD = data.jetson_NVME_SSD
|
||||
self.msg.FrSky_controller_connection_status = data.FrSky_controller_connection_status
|
||||
rospy.loginfo(self.msg)
|
||||
def __camera_callback(self, data):
|
||||
self.camera_msg.camera_zed = data.camera_zed
|
||||
self.camera_msg.camera_undercarriage = data.camera_undercarriage
|
||||
self.camera_msg.camera_chassis = data.camera_chassis
|
||||
self.camera_msg.camera_main_navigation = data.camera_main_navigation
|
||||
|
||||
def __frsky_callback(self, data):
|
||||
self.FrSky_msg.FrSky_controller_connection_status = data.FrSky_controller_connection_status
|
||||
|
||||
def __bogie_callback(self, data):
|
||||
self.bogie_msg.bogie_connection_1 = data.bogie_connection_1
|
||||
self.bogie_msg.bogie_connection_2 = data.bogie_connection_2
|
||||
self.bogie_msg.bogie_connection_3 = data.bogie_connection_3
|
||||
|
||||
def __jetson_callback(self, data):
|
||||
self.jetson_msg.jetson_CPU = data.jetson_CPU
|
||||
self.jetson_msg.jetson_RAM = data.jetson_RAM
|
||||
self.jetson_msg.jetson_EMMC = data.jetson_EMMC
|
||||
self.jetson_msg.jetson_NVME_SSD = data.jetson_NVME_SSD
|
||||
|
||||
def __gps_callback(self, data):
|
||||
self.GPS_msg.UTC_GPS_time = data.UTC_GPS_time
|
||||
self.GPS_msg.GPS_connection_status = data.GPS_connection_status
|
||||
|
||||
def __misc_callback(self, data):
|
||||
self.misc_msg.arm_connection_status = data.arm_connection_status
|
||||
self.misc_msg.arm_end_effector_connection_statuses = data.arm_end_effector_connection_statuses
|
||||
self.misc_msg.sample_containment_connection_status = data.sample_containment_connection_status
|
||||
self.misc_msg.tower_connection_status = data.tower_connection_status
|
||||
self.misc_msg.chassis_pan_tilt_connection_status = data.chassis_pan_tilt_connection_status
|
||||
|
||||
def run(self):
|
||||
rospy.Subscriber('rover_system_status_chatter', RoverSysStatus, self.__sub_callback)
|
||||
|
||||
# Update GUI Here? (Most likely)
|
||||
|
||||
rospy.Subscriber('camera_system_status_chatter', CameraStatuses, self.__camera_callback)
|
||||
rospy.Subscriber('bogie_system_status_chatter', BogieStatuses, self.__camera_callback)
|
||||
rospy.Subscriber('FrSky_system_status_chatter', FrSkyStatus, self.__camera_callback)
|
||||
rospy.Subscriber('GPS_system_status_chatter', GPSInfo, self.__camera_callback)
|
||||
rospy.Subscriber('jetson_system_status_chatter', JetsonInfo, self.__camera_callback)
|
||||
rospy.Subscriber('misc_system_status_chatter', MiscStatuses, self.__camera_callback)
|
||||
rospy.spin()
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user