Exemple #1
0
    def setUp(self):
        self.sender = ToCRIO()
        self.sender.send_reboot_command()
        sleep(5)
#        self.sender.send_stop_command()
#        self.sender.send_start_command()
        self.receiver = FromCRIO()
        self.receiver.has_data.wait(180)
Exemple #2
0
class RotateInPlaceVerification(unittest.TestCase):
    def setUp(self):
        self.sender = ToCRIO()
        self.sender.send_reboot_command()
        sleep(5)
#        self.sender.send_stop_command()
#        self.sender.send_start_command()
        self.receiver = FromCRIO()
        self.receiver.has_data.wait(180)

    def tearDown(self):
#        self.sender.send_stop_command()
        self.sender.send_heading_speed_command(self.receiver.heading, 0)
        self.sender = None
        self.receiver.cleanup()
        self.receiver = None

    multitest_steering_values = get_test_angles()
    def multitest_steering(self, angle):
        condition = self.receiver.has_data.isSet()
        self.assertTrue(condition, "Timed out waiting for the receiver to receive a packet")
        self.sender.send_heading_speed_command(angle, 0.0)
        sleep(4.8)
        self.x = self.receiver.x
        self.y = self.receiver.y
        self.heading = self.receiver.heading
        self.dist_err = distance_from_origin(self.x, self.y)
        self.assertTrue(self.dist_err < 0.5, "Not within 0.5 meters of origin after turn to %f. Distance Error was %f" % (angle, self.dist_err))
        self.error = angle - self.heading
        self.min_error = min_angle(self.error)
        self.assertTrue(math.degrees(self.min_error) < 5.0, "Heading error not less than 5 degrees after turn to %f. Error was %f" % (angle, math.degrees(self.min_error)))