Ejemplo n.º 1
0
    def _broadcast_arlo_status(self, msg):
        '''
        Description - broadcasts the ArlobotNode status
        :param msg:
        :return: None
        '''

        arlo_status = arloStatus()

        arlo_status.safeToProceed = msg.safe_to_proceed
        arlo_status.safeToRecede = msg.safe_to_recede
        arlo_status.Escaping = msg.escaping
        arlo_status.abd_speedLimit = msg.max_forward_speed
        arlo_status.abdR_speedLimit = msg.max_reverse_speed
        arlo_status.Heading = self.lastHeading
        arlo_status.gyroHeading = self.alternate_heading
        arlo_status.minDistanceSensor = msg.min_distance_sensor
        arlo_status.leftMotorVoltage = msg.left_motor_voltage
        arlo_status.rightMotorVoltage = msg.right_motor_voltage
        arlo_status.leftMotorCurrent = msg.left_motor_current
        arlo_status.rightMotorCurrent = msg.left_motor_current
        arlo_status.cliffDetected = msg.cliff_detected
        arlo_status.floorObstacleDetected = msg.floor_obstacle_detected

        # Who need to use ArloStatus?
        self._arlo_status_publisher.publish(arlo_status)
Ejemplo n.º 2
0
 def _broadcast_arlo_status(self, line_parts):
     arlo_status = arloStatus()
     # Order from ROS Interface for ArloBot.c
     # dprint(term, "s\t%d\t%d\t%d\t%d\t%d\n", safeToProceed, safeToRecede, Escaping, abd_speedLimit, abdR_speedLimit);
     if int(line_parts[1]) == 1:
         arlo_status.safeToProceed = True
     else:
         arlo_status.safeToProceed = False
     if int(line_parts[2]) == 1:
         arlo_status.safeToRecede = True
     else:
         arlo_status.safeToRecede = False
     if int(line_parts[3]) == 1:
         arlo_status.Escaping = True
     else:
         arlo_status.Escaping = False
     arlo_status.abd_speedLimit = int(line_parts[4])
     arlo_status.abdR_speedLimit = int(line_parts[5])
     arlo_status.Heading = self.lastHeading
     arlo_status.gyroHeading = self.alternate_heading
     arlo_status.minDistanceSensor = int(line_parts[6])
     left_motor_voltage = (15 / 4.69) * float(line_parts[7])
     right_motor_voltage = (15 / 4.69) * float(line_parts[8])
     arlo_status.robotBatteryLevel = 12.0
     if left_motor_voltage < 1:
         arlo_status.leftMotorPower = False
     else:
         arlo_status.leftMotorPower = True
         arlo_status.robotBatteryLevel = left_motor_voltage
     self._leftMotorPower = arlo_status.leftMotorPower
     if right_motor_voltage < 1:
         arlo_status.rightMotorPower = False
     else:
         arlo_status.rightMotorPower = True
         arlo_status.robotBatteryLevel = right_motor_voltage
     self._rightMotorPower = arlo_status.rightMotorPower
     # 11.6 volts is the cutoff for an SLA battery.
     if arlo_status.robotBatteryLevel < 12:
         arlo_status.robotBatteryLow = True
     else:
         arlo_status.robotBatteryLow = False
     arlo_status.laptopBatteryPercent = self._laptop_battery_percent
     arlo_status.acPower = self._acPower
     if int(line_parts[9]) == 1:
         arlo_status.cliff = True
     else:
         arlo_status.cliff = False
     if int(line_parts[10]) == 1:
         arlo_status.floorObstacle = True
     else:
         arlo_status.floorObstacle = False
     self._arlo_status_publisher.publish(arlo_status)
Ejemplo n.º 3
0
 def _broadcast_arlo_status(self, line_parts):
     arlo_status = arloStatus()
     # Order from ROS Interface for ArloBot.c
     # dprint(term, "s\t%d\t%d\t%d\t%d\t%d\n", safeToProceed, safeToRecede, Escaping, abd_speedLimit, abdR_speedLimit);
     if int(line_parts[1]) == 1:
         arlo_status.safeToProceed = True
     else:
         arlo_status.safeToProceed = False
     if int(line_parts[2]) == 1:
         arlo_status.safeToRecede = True
     else:
         arlo_status.safeToRecede = False
     if int(line_parts[3]) == 1:
         arlo_status.Escaping = True
     else:
         arlo_status.Escaping = False
     arlo_status.abd_speedLimit = int(line_parts[4])
     arlo_status.abdR_speedLimit = int(line_parts[5])
     arlo_status.Heading = self.lastHeading
     arlo_status.gyroHeading = self.alternate_heading
     arlo_status.minDistanceSensor = int(line_parts[6])
     left_motor_voltage = (15 / 4.69) * float(line_parts[7])
     right_motor_voltage = (15 / 4.69) * float(line_parts[8])
     arlo_status.robotBatteryLevel = 12.0
     if left_motor_voltage < 1:
         arlo_status.leftMotorPower = False
     else:
         arlo_status.leftMotorPower = True
         arlo_status.robotBatteryLevel = left_motor_voltage
     self._leftMotorPower = arlo_status.leftMotorPower
     if right_motor_voltage < 1:
         arlo_status.rightMotorPower = False
     else:
         arlo_status.rightMotorPower = True
         arlo_status.robotBatteryLevel = right_motor_voltage
     self._rightMotorPower = arlo_status.rightMotorPower
     # 11.6 volts is the cutoff for an SLA battery.
     if arlo_status.robotBatteryLevel < 12:
         arlo_status.robotBatteryLow = True
     else:
         arlo_status.robotBatteryLow = False
     arlo_status.laptopBatteryPercent = self._laptop_battery_percent
     arlo_status.acPower = self._acPower
     self._arlo_status_publisher.publish(arlo_status)
Ejemplo n.º 4
0
 def _broadcast_arlo_status(self, line_parts):
     arlo_status = arloStatus()
     # Order from ROS Interface for ArloBot.c
     # dprint(term, "s\t%d\t%d\t%d\t%d\t%d\n", safeToProceed, safeToRecede, Escaping, abd_speedLimit, abdR_speedLimit);
     if int(line_parts[1]) == 1:
         arlo_status.safeToProceed = True
     else:
         arlo_status.safeToProceed = False
     if int(line_parts[2]) == 1:
         arlo_status.safeToRecede = True
     else:
         arlo_status.safeToRecede = False
     if int(line_parts[3]) == 1:
         arlo_status.Escaping = True
     else:
         arlo_status.Escaping = False
     arlo_status.abd_speedLimit = int(line_parts[4])
     arlo_status.abdR_speedLimit = int(line_parts[5])
     arlo_status.Heading = self.lastHeading
     arlo_status.gyroHeading = self.alternate_heading
     self._arlo_status_publisher.publish(arlo_status)
Ejemplo n.º 5
0
    def _broadcast_arlo_status(self, msg):
        arlo_status = arloStatus()
        # Order from ROS Interface for ArloBot.c
        arlo_status.safeToProceed = msg.safe_to_proceed
        arlo_status.safeToRecede = msg.safe_to_recede
        arlo_status.Escaping = msg.escaping
        arlo_status.abd_speedLimit = msg.max_forward_speed
        arlo_status.abdR_speedLimit = msg.max_reverse_speed
        arlo_status.Heading = self.lastHeading
        arlo_status.gyroHeading = self.alternate_heading
        arlo_status.minDistanceSensor = msg.min_distance_sensor

        # Note: Just faking the motor voltages for now, remember to change this when there is an actual motor voltage measurement
        left_motor_voltage = (15 / 4.69) * msg.left_motor_voltage
        right_motor_voltage = (15 / 4.69) * msg.right_motor_voltage


        arlo_status.robotBatteryLevel = 12.0
        if left_motor_voltage < 1:
            arlo_status.leftMotorPower = False
        else:
            arlo_status.leftMotorPower = True
            arlo_status.robotBatteryLevel = left_motor_voltage
        self._leftMotorPower = arlo_status.leftMotorPower
        if right_motor_voltage < 1:
            arlo_status.rightMotorPower = False
        else:
            arlo_status.rightMotorPower = True
            arlo_status.robotBatteryLevel = right_motor_voltage
        self._rightMotorPower = arlo_status.rightMotorPower
        # 11.6 volts is the cutoff for an SLA battery.
        if arlo_status.robotBatteryLevel < 12:
            arlo_status.robotBatteryLow = True
        else:
            arlo_status.robotBatteryLow = False
        arlo_status.laptopBatteryPercent = self._laptop_battery_percent
        arlo_status.acPower = self._acPower
        arlo_status.cliff = msg.cliff_detected
        arlo_status.floorObstacle = msg.floor_obstacle_detected
        self._arlo_status_publisher.publish(arlo_status)