예제 #1
0
    def test_prepare_new_command_reverse_stationary(self):
        subject = VehicleCtl(self.mock_config_handler)
        subject._gear = Gear.REVERSE
        subject._target_steering = 0.0
        subject._target_acceleration = 0.0
        subject._last_cmd_sent = Command(0.0, 0.0)

        new_cmd = subject.prepare_new_command(self.dt)

        self.assertEqual(new_cmd.get_steering(), 0.0)
        self.assertEqual(new_cmd.get_throttle(), 0.0)
예제 #2
0
    def test_prepare_new_command_park_outputs_stationary_command(self):
        subject = VehicleCtl(self.mock_config_handler)
        subject._gear = Gear.PARK
        subject._target_steering = 0.23
        subject._target_acceleration = -0.34
        subject._last_cmd_sent = Command(0.22, -1.0)

        new_cmd = subject.prepare_new_command(self.dt)

        self.assertEqual(new_cmd.get_steering(), 0.0)
        self.assertEqual(new_cmd.get_throttle(), 0.0)
예제 #3
0
    def test_prepare_new_command_forward_max_at_1_point_0(self):
        subject = VehicleCtl(self.mock_config_handler)
        subject._gear = Gear.DRIVE
        subject._target_steering = 0.0
        subject._target_acceleration = 1.0
        subject._last_cmd_sent = Command(s=0.0, t=1.0)

        new_cmd = subject.prepare_new_command(self.dt)

        self.assertEqual(new_cmd.get_steering(), 0.0)
        self.assertEqual(new_cmd.get_throttle(), 1.0)
예제 #4
0
    def test_prepare_new_command_forward_braking(self):
        subject = VehicleCtl(self.mock_config_handler)
        subject._gear = Gear.DRIVE
        subject._target_steering = 0.0
        subject._target_acceleration = -1.0
        subject._last_cmd_sent = Command(s=0.0, t=1.0)
        expected_instant_acc = -1.0 * self.dt  #this test verifies that instant_acc is not less than -1, before considering dt

        new_cmd = subject.prepare_new_command(self.dt)

        self.assertEqual(new_cmd.get_steering(), 0.0)
        self.assertEqual(new_cmd.get_throttle(), 1.0 + expected_instant_acc)
예제 #5
0
    def test_prepare_new_command_forward_coasting(self):
        subject = VehicleCtl(self.mock_config_handler)
        subject._gear = Gear.DRIVE
        subject._target_steering = 0.0
        subject._target_acceleration = 0.0
        subject._last_cmd_sent = Command(s=0.0, t=1.0)
        expected_instant_acc = (0.0 - VehicleCtl.degradation_factor) * self.dt

        new_cmd = subject.prepare_new_command(self.dt)

        self.assertEqual(new_cmd.get_steering(), 0.0)
        self.assertEqual(new_cmd.get_throttle(), 1.0 + expected_instant_acc)
예제 #6
0
    def test_prepare_new_command_reverse_coasting(self):
        subject = VehicleCtl(self.mock_config_handler)
        subject._gear = Gear.REVERSE
        subject._target_steering = 0.0
        subject._target_acceleration = 0.0
        subject._last_cmd_sent = Command(0.0, -1.0)
        expectedAcc = (0.0 + VehicleCtl.degradation_factor) * self.dt

        new_cmd = subject.prepare_new_command(self.dt)

        self.assertEqual(new_cmd.get_steering(), 0.0)
        self.assertEqual(new_cmd.get_throttle(), -1.0 + expectedAcc)