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)
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)))