mirror of
https://github.com/OSURoboticsClub/Rover_2017_2018.git
synced 2025-11-08 10:11:14 +00:00
Changed code so rover can run without FrSky for EXPO
This commit is contained in:
@@ -22,4 +22,6 @@ SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6011", ATTRS{seria
|
|||||||
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6011", ATTRS{serial}=="NM2UFVE1", ENV{ID_USB_INTERFACE_NUM}=="02", SYMLINK+="rover/ttyIRIS_2_2"
|
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6011", ATTRS{serial}=="NM2UFVE1", ENV{ID_USB_INTERFACE_NUM}=="02", SYMLINK+="rover/ttyIRIS_2_2"
|
||||||
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6011", ATTRS{serial}=="NM2UFVE1", ENV{ID_USB_INTERFACE_NUM}=="03", SYMLINK+="rover/ttyIRIS_2_3"
|
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6011", ATTRS{serial}=="NM2UFVE1", ENV{ID_USB_INTERFACE_NUM}=="03", SYMLINK+="rover/ttyIRIS_2_3"
|
||||||
|
|
||||||
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="AH05K2Y8", SYMLINK+="rover/ttyTEST"
|
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="AH05K2Y8", SYMLINK+="rover/ttyLEFT"
|
||||||
|
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="A906H89E", SYMLINK+="rover/ttyRIGHT"
|
||||||
|
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="A906H7P0", SYMLINK+="rover/ttyREAR"
|
||||||
@@ -53,7 +53,7 @@ void setup() {
|
|||||||
setup_hardware();
|
setup_hardware();
|
||||||
|
|
||||||
num_modbus_registers = sizeof(modbus_data) / sizeof(modbus_data[0]);
|
num_modbus_registers = sizeof(modbus_data) / sizeof(modbus_data[0]);
|
||||||
slave.begin(2000000); // baud-rate at 19200
|
slave.begin(115200); // baud-rate at 19200
|
||||||
slave.setTimeOut(150);
|
slave.setTimeOut(150);
|
||||||
|
|
||||||
Serial.begin(9600);
|
Serial.begin(9600);
|
||||||
|
|||||||
@@ -67,9 +67,6 @@ class SensorCore(QtCore.QThread):
|
|||||||
self.main_cam = self.screen_main_window.main_cam # type: QtWidgets.QLabel
|
self.main_cam = self.screen_main_window.main_cam # type: QtWidgets.QLabel
|
||||||
self.chassis_cam = self.screen_main_window.chassis_cam # type: QtWidgets.QLabel
|
self.chassis_cam = self.screen_main_window.chassis_cam # type: QtWidgets.QLabel
|
||||||
self.under_cam = self.screen_main_window.under_cam # type: QtWidgets.QLabel
|
self.under_cam = self.screen_main_window.under_cam # type: QtWidgets.QLabel
|
||||||
self.bogie_right = self.screen_main_window.right_bogie # type: QtWidgets.QLabel
|
|
||||||
self.bogie_left = self.screen_main_window.left_bogie # type: QtWidgets.QLabel
|
|
||||||
self.bogie_rear = self.screen_main_window.rear_bogie # type: QtWidgets.QLabel
|
|
||||||
self.clock = self.screen_main_window.clock_qlcdnumber # type: QtWidgets.QLCDNumber
|
self.clock = self.screen_main_window.clock_qlcdnumber # type: QtWidgets.QLCDNumber
|
||||||
self.cpu = self.screen_main_window.cpu # type: QtWidgets.QLabel
|
self.cpu = self.screen_main_window.cpu # type: QtWidgets.QLabel
|
||||||
self.ram = self.screen_main_window.ram # type: QtWidgets.QLabel
|
self.ram = self.screen_main_window.ram # type: QtWidgets.QLabel
|
||||||
@@ -78,7 +75,6 @@ class SensorCore(QtCore.QThread):
|
|||||||
|
|
||||||
# ########## subscriptions pulling data from system_statuses_node.py ##########
|
# ########## subscriptions pulling data from system_statuses_node.py ##########
|
||||||
self.camera_status = rospy.Subscriber(CAMERA_TOPIC_NAME, CameraStatuses, self.__camera_callback)
|
self.camera_status = rospy.Subscriber(CAMERA_TOPIC_NAME, CameraStatuses, self.__camera_callback)
|
||||||
self.bogie_status = rospy.Subscriber(BOGIE_TOPIC_NAME, BogieStatuses, self.__bogie_callback)
|
|
||||||
self.frsky_status = rospy.Subscriber(FRSKY_TOPIC_NAME, FrSkyStatus, self.__frsky_callback)
|
self.frsky_status = rospy.Subscriber(FRSKY_TOPIC_NAME, FrSkyStatus, self.__frsky_callback)
|
||||||
self.gps_status = rospy.Subscriber(GPS_TOPIC_NAME, GPSInfo, self.__gps_callback)
|
self.gps_status = rospy.Subscriber(GPS_TOPIC_NAME, GPSInfo, self.__gps_callback)
|
||||||
self.jetson_status = rospy.Subscriber(JETSON_TOPIC_NAME, JetsonInfo, self.__jetson_callback)
|
self.jetson_status = rospy.Subscriber(JETSON_TOPIC_NAME, JetsonInfo, self.__jetson_callback)
|
||||||
@@ -140,32 +136,6 @@ class SensorCore(QtCore.QThread):
|
|||||||
else:
|
else:
|
||||||
self.frsky_stylesheet_change_ready__signal.emit("background-color: darkgreen;")
|
self.frsky_stylesheet_change_ready__signal.emit("background-color: darkgreen;")
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
if data.bogie_connection_1 is False:
|
|
||||||
# self.bogie_right.setStyleSheet("background-color: darkred;")
|
|
||||||
self.bogie_connection_1_stylesheet_change_ready__signal.emit("background-color: darkred;")
|
|
||||||
else:
|
|
||||||
# self.bogie_right.setStyleSheet("background-color: darkgreen;")
|
|
||||||
self.bogie_connection_1_stylesheet_change_ready__signal.emit("background-color: darkgreen;")
|
|
||||||
|
|
||||||
if data.bogie_connection_2 is False:
|
|
||||||
# self.bogie_left.setStyleSheet("background-color: darkred;")
|
|
||||||
self.bogie_connection_2_stylesheet_change_ready__signal.emit("background-color: darkred;")
|
|
||||||
else:
|
|
||||||
# self.bogie_left.setStyleSheet("background-color: darkgreen;")
|
|
||||||
self.bogie_connection_2_stylesheet_change_ready__signal.emit("background-color: darkgreen;")
|
|
||||||
|
|
||||||
if data.bogie_connection_3 is False:
|
|
||||||
# self.bogie_rear.setStyleSheet("background-color: darkred;")
|
|
||||||
self.bogie_connection_3_stylesheet_change_ready__signal.emit("background-color: darkred;")
|
|
||||||
else:
|
|
||||||
# self.bogie_rear.setStyleSheet("background-color: darkgreen;")
|
|
||||||
self.bogie_connection_3_stylesheet_change_ready__signal.emit("background-color: darkgreen;")
|
|
||||||
|
|
||||||
def __jetson_callback(self, data):
|
def __jetson_callback(self, data):
|
||||||
self.jetson_cpu_update_ready__signal.emit("TX2 CPU\n" + str(data.jetson_CPU) + "%")
|
self.jetson_cpu_update_ready__signal.emit("TX2 CPU\n" + str(data.jetson_CPU) + "%")
|
||||||
|
|
||||||
@@ -238,9 +208,6 @@ class SensorCore(QtCore.QThread):
|
|||||||
self.jetson_emmc_stylesheet_change_ready__signal.connect(self.emmc.setStyleSheet)
|
self.jetson_emmc_stylesheet_change_ready__signal.connect(self.emmc.setStyleSheet)
|
||||||
self.jetson_gpu_temp_update_ready__signal.connect(self.gpu_temp.setText)
|
self.jetson_gpu_temp_update_ready__signal.connect(self.gpu_temp.setText)
|
||||||
self.jetson_gpu_temp_stylesheet_change_ready__signal.connect(self.gpu_temp.setStyleSheet)
|
self.jetson_gpu_temp_stylesheet_change_ready__signal.connect(self.gpu_temp.setStyleSheet)
|
||||||
self.bogie_connection_1_stylesheet_change_ready__signal.connect(self.bogie_right.setStyleSheet)
|
|
||||||
self.bogie_connection_2_stylesheet_change_ready__signal.connect(self.bogie_left.setStyleSheet)
|
|
||||||
self.bogie_connection_3_stylesheet_change_ready__signal.connect(self.bogie_rear.setStyleSheet)
|
|
||||||
self.camera_zed_stylesheet_change_ready__signal.connect(self.zed.setStyleSheet)
|
self.camera_zed_stylesheet_change_ready__signal.connect(self.zed.setStyleSheet)
|
||||||
self.camera_under_stylesheet_change_ready__signal.connect(self.under_cam.setStyleSheet)
|
self.camera_under_stylesheet_change_ready__signal.connect(self.under_cam.setStyleSheet)
|
||||||
self.camera_chassis_stylesheet_change_ready__signal.connect(self.chassis_cam.setStyleSheet)
|
self.camera_chassis_stylesheet_change_ready__signal.connect(self.chassis_cam.setStyleSheet)
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
@@ -277,7 +277,7 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="5" column="5">
|
<item row="9" column="5">
|
||||||
<widget class="QLabel" name="chassis_cam">
|
<widget class="QLabel" name="chassis_cam">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||||
@@ -322,7 +322,7 @@ Connected</string>
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="5" column="4">
|
<item row="9" column="4">
|
||||||
<widget class="QLabel" name="under_cam">
|
<widget class="QLabel" name="under_cam">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||||
@@ -395,7 +395,7 @@ Connected</string>
|
|||||||
</font>
|
</font>
|
||||||
</property>
|
</property>
|
||||||
<property name="styleSheet">
|
<property name="styleSheet">
|
||||||
<string notr="true">background-color:darkred;</string>
|
<string notr="true">background-color:darkgreen;</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="frameShape">
|
<property name="frameShape">
|
||||||
<enum>QFrame::NoFrame</enum>
|
<enum>QFrame::NoFrame</enum>
|
||||||
@@ -443,7 +443,7 @@ Connected</string>
|
|||||||
</font>
|
</font>
|
||||||
</property>
|
</property>
|
||||||
<property name="styleSheet">
|
<property name="styleSheet">
|
||||||
<string notr="true">background-color:darkred;</string>
|
<string notr="true">background-color:darkgreen;</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>FrSky
|
<string>FrSky
|
||||||
@@ -485,7 +485,7 @@ Connected</string>
|
|||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="styleSheet">
|
<property name="styleSheet">
|
||||||
<string notr="true">background-color:darkred;</string>
|
<string notr="true">background-color:darkgreen;</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>3D Nav Mouse
|
<string>3D Nav Mouse
|
||||||
@@ -524,7 +524,7 @@ Connected</string>
|
|||||||
</font>
|
</font>
|
||||||
</property>
|
</property>
|
||||||
<property name="styleSheet">
|
<property name="styleSheet">
|
||||||
<string notr="true">background-color:darkred;</string>
|
<string notr="true">background-color:darkgreen;</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="frameShape">
|
<property name="frameShape">
|
||||||
<enum>QFrame::NoFrame</enum>
|
<enum>QFrame::NoFrame</enum>
|
||||||
@@ -538,7 +538,7 @@ Connected</string>
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="5" column="2">
|
<item row="9" column="2">
|
||||||
<widget class="QLabel" name="main_cam">
|
<widget class="QLabel" name="main_cam">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||||
@@ -611,7 +611,7 @@ Connected</string>
|
|||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="styleSheet">
|
<property name="styleSheet">
|
||||||
<string notr="true">background-color:darkred;</string>
|
<string notr="true">background-color:darkgreen;</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>GPS
|
<string>GPS
|
||||||
@@ -623,7 +623,7 @@ Fix</string>
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="4" column="4">
|
<item row="4" column="4">
|
||||||
<widget class="QLabel" name="right_bogie">
|
<widget class="QLabel" name="middle_left_wheel_label">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||||
<horstretch>0</horstretch>
|
<horstretch>0</horstretch>
|
||||||
@@ -656,8 +656,8 @@ Fix</string>
|
|||||||
<string notr="true">background-color:darkred;</string>
|
<string notr="true">background-color:darkred;</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Right Bogie
|
<string>Middle Left Wheel
|
||||||
Connected</string>
|
Disconnected</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignCenter</set>
|
<set>Qt::AlignCenter</set>
|
||||||
@@ -665,7 +665,7 @@ Connected</string>
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="4" column="5">
|
<item row="4" column="5">
|
||||||
<widget class="QLabel" name="rear_bogie">
|
<widget class="QLabel" name="rear_left_wheel_label">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||||
<horstretch>0</horstretch>
|
<horstretch>0</horstretch>
|
||||||
@@ -692,13 +692,13 @@ Connected</string>
|
|||||||
</font>
|
</font>
|
||||||
</property>
|
</property>
|
||||||
<property name="styleSheet">
|
<property name="styleSheet">
|
||||||
<string notr="true">background-color:darkred;</string>
|
<string notr="true">background-color:darkgreen;</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="frameShape">
|
<property name="frameShape">
|
||||||
<enum>QFrame::NoFrame</enum>
|
<enum>QFrame::NoFrame</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Rear Bogie
|
<string>Rear Left Wheel
|
||||||
Connected</string>
|
Connected</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
@@ -707,7 +707,7 @@ Connected</string>
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="4" column="2">
|
<item row="4" column="2">
|
||||||
<widget class="QLabel" name="left_bogie">
|
<widget class="QLabel" name="front_left_wheel_label">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||||
<horstretch>0</horstretch>
|
<horstretch>0</horstretch>
|
||||||
@@ -734,13 +734,13 @@ Connected</string>
|
|||||||
</font>
|
</font>
|
||||||
</property>
|
</property>
|
||||||
<property name="styleSheet">
|
<property name="styleSheet">
|
||||||
<string notr="true">background-color:darkred;</string>
|
<string notr="true">background-color:darkgreen;</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="frameShape">
|
<property name="frameShape">
|
||||||
<enum>QFrame::NoFrame</enum>
|
<enum>QFrame::NoFrame</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Left Bogie
|
<string>Front Left Wheel
|
||||||
Connected</string>
|
Connected</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
@@ -748,7 +748,7 @@ Connected</string>
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="5" column="1">
|
<item row="9" column="1">
|
||||||
<widget class="QLabel" name="zed">
|
<widget class="QLabel" name="zed">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||||
@@ -782,7 +782,8 @@ Connected</string>
|
|||||||
<enum>QFrame::NoFrame</enum>
|
<enum>QFrame::NoFrame</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>ZED Connected</string>
|
<string>ZED
|
||||||
|
Disconnected</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignCenter</set>
|
<set>Qt::AlignCenter</set>
|
||||||
@@ -815,6 +816,174 @@ Connected</string>
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="6" column="2">
|
||||||
|
<widget class="QLabel" name="front_right_wheel_label">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>9999999</width>
|
||||||
|
<height>9999999</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>10</pointsize>
|
||||||
|
<weight>75</weight>
|
||||||
|
<bold>true</bold>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">background-color:darkgreen;</string>
|
||||||
|
</property>
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::NoFrame</enum>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Front Right Wheel
|
||||||
|
Connected</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="6" column="1">
|
||||||
|
<widget class="QLabel" name="battery_voltage_status_label">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>9999999</width>
|
||||||
|
<height>9999999</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>10</pointsize>
|
||||||
|
<weight>75</weight>
|
||||||
|
<bold>true</bold>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">background-color:darkred;</string>
|
||||||
|
</property>
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::NoFrame</enum>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Battery Voltage
|
||||||
|
N/A</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="6" column="4">
|
||||||
|
<widget class="QLabel" name="middle_right_wheel_label">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>9999999</width>
|
||||||
|
<height>9999999</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>10</pointsize>
|
||||||
|
<weight>75</weight>
|
||||||
|
<bold>true</bold>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">background-color:darkred;</string>
|
||||||
|
</property>
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::NoFrame</enum>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Middle Right Wheel
|
||||||
|
Disconnected</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="6" column="5">
|
||||||
|
<widget class="QLabel" name="rear_right_wheel_label">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>9999999</width>
|
||||||
|
<height>9999999</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>10</pointsize>
|
||||||
|
<weight>75</weight>
|
||||||
|
<bold>true</bold>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">background-color:darkgreen;</string>
|
||||||
|
</property>
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::NoFrame</enum>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Rear Right Wheel
|
||||||
|
Connected</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
|
|||||||
@@ -11,20 +11,84 @@ using namespace std;
|
|||||||
|
|
||||||
int device_address = 1;
|
int device_address = 1;
|
||||||
|
|
||||||
int main(int argc, char** argv){
|
////////// Global Variables //////////
|
||||||
smbus busHandle = smOpenBus("/dev/ttyUSB0");
|
// ROS Parameter Defaults
|
||||||
|
const string default_port = "/dev/ttyUSB0";
|
||||||
|
|
||||||
if (busHandle >= 0) {
|
|
||||||
cout << "Successfully connected bus" << endl;
|
|
||||||
// deviceAddress=ui->deviceAddress->value();
|
|
||||||
} else
|
|
||||||
cout << "Couldn't connect to bus";
|
|
||||||
|
|
||||||
while(1){
|
// Axis Defaults
|
||||||
smSetParameter(busHandle, device_address, SMP_FAULTS, 0);
|
const smint32 axis1_max_count = 100000;
|
||||||
smSetParameter(busHandle, device_address, SMP_CONTROL_BITS1, SMP_CB1_ENABLE);
|
float axis1_max_degrees = 180.0;
|
||||||
smSetParameter(busHandle, device_address, SMP_ABSOLUTE_SETPOINT, 1000);
|
|
||||||
cout << "Test" << endl;
|
const smint32 axis2_max_count = 100000;
|
||||||
|
|
||||||
|
const smint32 axis3_max_count = 100000;
|
||||||
|
|
||||||
|
const smint32 axis4_max_count = 100000;
|
||||||
|
|
||||||
|
const smint32 axis5_max_count = 320000;
|
||||||
|
|
||||||
|
const smint32 axis6_max_count = 100000;
|
||||||
|
|
||||||
|
|
||||||
|
class RoverArm{
|
||||||
|
public:
|
||||||
|
RoverArm(int argc, char** argv){
|
||||||
|
ros::init(argc, argv, "rover_arm");
|
||||||
|
|
||||||
|
node_handle = new ros::NodeHandle("~");
|
||||||
|
|
||||||
|
node_handle->param("port", arm_port, default_port);
|
||||||
|
|
||||||
|
|
||||||
|
// Connect to arm, exit if failed
|
||||||
|
arm_bus_handle = smOpenBus(arm_port.c_str());
|
||||||
|
|
||||||
|
if(arm_bus_handle < 0){
|
||||||
|
ROS_ERROR("Could not connect to arm");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void run(){
|
||||||
|
char dir = 0;
|
||||||
|
|
||||||
|
printf("OK?: %d", ros::ok());
|
||||||
|
|
||||||
|
while(ros::ok()){
|
||||||
|
smSetParameter(arm_bus_handle, device_address, SMP_FAULTS, 0);
|
||||||
|
smSetParameter(arm_bus_handle, device_address, SMP_CONTROL_BITS1, SMP_CB1_ENABLE);
|
||||||
|
|
||||||
|
smint32 status = 0;
|
||||||
|
while(!(status & STAT_TARGET_REACHED)){
|
||||||
|
smRead1Parameter(arm_bus_handle, device_address, SMP_STATUS, &status);
|
||||||
|
}
|
||||||
|
|
||||||
|
dir = !dir;
|
||||||
|
|
||||||
|
if(dir){
|
||||||
|
smSetParameter(arm_bus_handle, device_address, SMP_ABSOLUTE_SETPOINT, 0);
|
||||||
|
}else{
|
||||||
|
smSetParameter(arm_bus_handle, device_address, SMP_ABSOLUTE_SETPOINT, 330000);
|
||||||
|
}
|
||||||
|
|
||||||
|
ros::spinOnce();
|
||||||
|
}
|
||||||
|
|
||||||
|
ROS_ERROR("Shutting down.");
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
ros::NodeHandle *node_handle;
|
||||||
|
|
||||||
|
string arm_port;
|
||||||
|
smbus arm_bus_handle;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int main(int argc, char** argv){
|
||||||
|
RoverArm rover_arm(argc, argv);
|
||||||
|
rover_arm.run();
|
||||||
}
|
}
|
||||||
@@ -91,9 +91,9 @@ class DriveCoordinator(object):
|
|||||||
sleep(max(self.wait_time - time_diff, 0))
|
sleep(max(self.wait_time - time_diff, 0))
|
||||||
|
|
||||||
def process_drive_commands(self):
|
def process_drive_commands(self):
|
||||||
if not self.drive_command_data["iris"]["message"].ignore_drive_control:
|
# if not self.drive_command_data["iris"]["message"].ignore_drive_control:
|
||||||
self.send_drive_control_command(self.drive_command_data["iris"])
|
# self.send_drive_control_command(self.drive_command_data["iris"])
|
||||||
else:
|
# else:
|
||||||
self.send_drive_control_command(self.drive_command_data["ground_station"])
|
self.send_drive_control_command(self.drive_command_data["ground_station"])
|
||||||
|
|
||||||
def send_drive_control_command(self, drive_command_data):
|
def send_drive_control_command(self, drive_command_data):
|
||||||
|
|||||||
@@ -68,6 +68,11 @@ class DriveControl(object):
|
|||||||
self.port = rospy.get_param("~port", DEFAULT_PORT)
|
self.port = rospy.get_param("~port", DEFAULT_PORT)
|
||||||
self.baud = rospy.get_param("~baud", DEFAULT_BAUD)
|
self.baud = rospy.get_param("~baud", DEFAULT_BAUD)
|
||||||
|
|
||||||
|
print self.port
|
||||||
|
|
||||||
|
self.first_motor_id = rospy.get_param("~first_motor_id", FIRST_MOTOR_ID)
|
||||||
|
self.second_motor_id = rospy.get_param("~second_motor_id", SECOND_MOTOR_ID)
|
||||||
|
|
||||||
self.first_motor_inverted = rospy.get_param("~invert_first_motor", DEFAULT_INVERT)
|
self.first_motor_inverted = rospy.get_param("~invert_first_motor", DEFAULT_INVERT)
|
||||||
self.second_motor_inverted = rospy.get_param("~invert_second_motor", DEFAULT_INVERT)
|
self.second_motor_inverted = rospy.get_param("~invert_second_motor", DEFAULT_INVERT)
|
||||||
|
|
||||||
@@ -117,6 +122,7 @@ class DriveControl(object):
|
|||||||
print "Error occurred:", error
|
print "Error occurred:", error
|
||||||
|
|
||||||
if (time() - self.bogie_last_seen) > BOGIE_LAST_SEEN_TIMEOUT:
|
if (time() - self.bogie_last_seen) > BOGIE_LAST_SEEN_TIMEOUT:
|
||||||
|
print "Bogie not seen for", BOGIE_LAST_SEEN_TIMEOUT, "seconds. Exiting."
|
||||||
return # Exit so respawn can take over
|
return # Exit so respawn can take over
|
||||||
|
|
||||||
time_diff = time() - start_time
|
time_diff = time() - start_time
|
||||||
@@ -124,8 +130,8 @@ class DriveControl(object):
|
|||||||
sleep(max(self.wait_time - time_diff, 0))
|
sleep(max(self.wait_time - time_diff, 0))
|
||||||
|
|
||||||
def connect_to_bogie(self):
|
def connect_to_bogie(self):
|
||||||
self.first_motor = minimalmodbus.Instrument(self.port, FIRST_MOTOR_ID)
|
self.first_motor = minimalmodbus.Instrument(self.port, int(self.first_motor_id))
|
||||||
self.second_motor = minimalmodbus.Instrument(self.port, SECOND_MOTOR_ID)
|
self.second_motor = minimalmodbus.Instrument(self.port, int(self.second_motor_id))
|
||||||
self.__setup_minimalmodbus_for_485()
|
self.__setup_minimalmodbus_for_485()
|
||||||
|
|
||||||
def send_drive_control_message(self):
|
def send_drive_control_message(self):
|
||||||
|
|||||||
@@ -1,18 +1,20 @@
|
|||||||
<launch>
|
<launch>
|
||||||
<group ns="rover_control">
|
<group ns="rover_control">
|
||||||
<node name="iris_controller" pkg="rover_control" type="iris_controller.py" respawn="true" output="screen">
|
<!--<node name="iris_controller" pkg="rover_control" type="iris_controller.py" respawn="true" output="screen">-->
|
||||||
<param name="port" value="/dev/rover/ttyIRIS"/>
|
<!--<param name="port" value="/dev/rover/ttyIRIS"/>-->
|
||||||
<param name="hertz" value="20"/>
|
<!--<param name="hertz" value="20"/>-->
|
||||||
</node>
|
<!--</node>-->
|
||||||
|
|
||||||
<node name="rear_bogie" pkg="rover_control" type="drive_control.py" respawn="true" output="screen">
|
<node name="rear_bogie" pkg="rover_control" type="drive_control.py" respawn="true" output="screen">
|
||||||
<param name="port" value="/dev/rover/ttyBogieRear"/>
|
<param name="port" value="/dev/rover/ttyREAR"/>
|
||||||
<param name="drive_control_topic" value="drive_control/rear"/>
|
<param name="drive_control_topic" value="drive_control/rear"/>
|
||||||
<param name="drive_control_status_topic" value="drive_status/rear"/>
|
<param name="drive_control_status_topic" value="drive_status/rear"/>
|
||||||
|
<param name="first_motor_id" value="2"/>
|
||||||
|
<param name="second_motor_id" value="1"/>
|
||||||
</node>
|
</node>
|
||||||
|
|
||||||
<node name="left_bogie" pkg="rover_control" type="drive_control.py" respawn="true" output="screen">
|
<node name="left_bogie" pkg="rover_control" type="drive_control.py" respawn="true" output="screen">
|
||||||
<param name="port" value="/dev/rover/ttyBogieLeft"/>
|
<param name="port" value="/dev/rover/ttyLEFT"/>
|
||||||
<param name="drive_control_topic" value="drive_control/left"/>
|
<param name="drive_control_topic" value="drive_control/left"/>
|
||||||
<param name="drive_control_status_topic" value="drive_status/left"/>
|
<param name="drive_control_status_topic" value="drive_status/left"/>
|
||||||
<param name="invert_first_motor" value="True"/>
|
<param name="invert_first_motor" value="True"/>
|
||||||
@@ -20,9 +22,11 @@
|
|||||||
</node>
|
</node>
|
||||||
|
|
||||||
<node name="right_bogie" pkg="rover_control" type="drive_control.py" respawn="true" output="screen">
|
<node name="right_bogie" pkg="rover_control" type="drive_control.py" respawn="true" output="screen">
|
||||||
<param name="port" value="/dev/rover/ttyBogieRight"/>
|
<param name="port" value="/dev/rover/ttyRIGHT"/>
|
||||||
<param name="drive_control_topic" value="drive_control/right"/>
|
<param name="drive_control_topic" value="drive_control/right"/>
|
||||||
<param name="drive_control_status_topic" value="drive_status/right"/>
|
<param name="drive_control_status_topic" value="drive_status/right"/>
|
||||||
|
<param name="first_motor_id" value="2"/>
|
||||||
|
<param name="second_motor_id" value="1"/>
|
||||||
</node>
|
</node>
|
||||||
|
|
||||||
<node name="drive_coordinator" pkg="rover_control" type="drive_coordinator.py" output="screen"/>
|
<node name="drive_coordinator" pkg="rover_control" type="drive_coordinator.py" output="screen"/>
|
||||||
|
|||||||
Reference in New Issue
Block a user