Added boolean for iris controller connected. Updated iris node to set state.

This commit is contained in:
2018-03-03 18:49:59 -08:00
parent 5336c754be
commit f7bb745e49
2 changed files with 7 additions and 2 deletions

View File

@@ -1,2 +1,3 @@
bool controller_present
bool ignore_drive_control
geometry_msgs/Twist drive_twist

View File

@@ -117,8 +117,10 @@ class IrisController(object):
sleep(max(self.wait_time - time_diff, 0))
def read_registers(self):
try:
self.registers = self.iris.read_registers(0, len(MODBUS_REGISTERS))
# print self.registers
except Exception, error:
print error
def broadcast_drive_if_current_mode(self):
if self.registers[MODBUS_REGISTERS[REGISTER_STATE_MAPPING["DRIVE_VS_ARM"]]] < SBUS_VALUES["SBUS_MID"]:
@@ -128,6 +130,7 @@ class IrisController(object):
right_y_axis = self.registers[MODBUS_REGISTERS["RIGHT_STICK_Y_AXIS"]]
if left_y_axis == 0 and right_y_axis == 0:
command.controller_present = False
command.ignore_drive_control = True
command.drive_twist.linear.x = 0
command.drive_twist.angular.z = 0
@@ -139,6 +142,7 @@ class IrisController(object):
right = (right_y_axis - SBUS_VALUES["SBUS_MID"]) / SBUS_VALUES[
"SBUS_RANGE"]
command.controller_present = True
command.ignore_drive_control = \
self.registers[MODBUS_REGISTERS[REGISTER_STATE_MAPPING["IGNORE_CONTROL"]]] > SBUS_VALUES["SBUS_MID"]
command.drive_twist.linear.x = (left + right) / 2.0