autotest: add simple test for Rover set_attitude_target handling

This commit is contained in:
Peter Barker 2021-01-04 16:33:43 +11:00 committed by Randy Mackay
parent 1362abba2e
commit 53336595e1
1 changed files with 39 additions and 0 deletions

View File

@ -4,6 +4,7 @@
from __future__ import print_function from __future__ import print_function
import copy import copy
import math
import os import os
import shutil import shutil
import sys import sys
@ -18,6 +19,7 @@ from common import MsgRcvTimeoutException
from common import NotAchievedException from common import NotAchievedException
from common import PreconditionFailedException from common import PreconditionFailedException
from pymavlink import mavextra
from pymavlink import mavutil from pymavlink import mavutil
# get location of scripts # get location of scripts
@ -5347,6 +5349,39 @@ Brakes have negligible effect (with=%0.2fm without=%0.2fm delta=%0.2fm)
self.disarm_vehicle() self.disarm_vehicle()
self.context_pop() self.context_pop()
def SET_ATTITUDE_TARGET(self, target_sysid=None, target_compid=1):
if target_sysid is None:
target_sysid = self.sysid_thismav()
self.change_mode('GUIDED')
self.wait_ready_to_arm()
self.arm_vehicle()
tstart = self.get_sim_time()
while True:
now = self.get_sim_time_cached()
if now - tstart > 10:
raise AutoTestTimeoutException("Didn't get to speed")
self.mav.mav.set_attitude_target_send(
0, # time_boot_ms
target_sysid,
target_compid,
mavutil.mavlink.ATTITUDE_TARGET_TYPEMASK_BODY_ROLL_RATE_IGNORE |
mavutil.mavlink.ATTITUDE_TARGET_TYPEMASK_BODY_PITCH_RATE_IGNORE |
mavutil.mavlink.ATTITUDE_TARGET_TYPEMASK_ATTITUDE_IGNORE,
mavextra.euler_to_quat([0,
math.radians(0),
math.radians(0)]), # att
0, # yaw rate (rad/s)
0, # pitch rate
0, # yaw rate
1) # thrust
msg = self.mav.recv_match(type='VFR_HUD', blocking=True, timeout=1)
if msg is None:
raise NotAchievedException("No VFR_HUD message")
if msg.groundspeed > 5:
break
self.disarm_vehicle()
def tests(self): def tests(self):
'''return list of all tests''' '''return list of all tests'''
ret = super(AutoTestRover, self).tests() ret = super(AutoTestRover, self).tests()
@ -5441,6 +5476,10 @@ Brakes have negligible effect (with=%0.2fm without=%0.2fm delta=%0.2fm)
"Test enforcement of SYSID_MYGCS", "Test enforcement of SYSID_MYGCS",
self.test_sysid_enforce), self.test_sysid_enforce),
("SET_ATTITUDE_TARGET",
"Test handling of SET_ATTITUDE_TARGET",
self.SET_ATTITUDE_TARGET),
("Button", ("Button",
"Test Buttons", "Test Buttons",
self.test_button), self.test_button),