autotest: add test for RPLidarA1

This commit is contained in:
Peter Barker 2021-02-05 12:57:52 +11:00 committed by Randy Mackay
parent ae7fb93e4c
commit f722be9758
1 changed files with 39 additions and 16 deletions

View File

@ -9814,7 +9814,7 @@ class AutoTestCopter(AutoTest):
self.do_RTL() self.do_RTL()
def RPLidar(self): def test_rplidar(self, sim_device_name, expected_distances):
'''plonks a Copter with a RPLidarA2 in the middle of a simulated field '''plonks a Copter with a RPLidarA2 in the middle of a simulated field
of posts and checks that the measurements are what we expect.''' of posts and checks that the measurements are what we expect.'''
self.set_parameters({ self.set_parameters({
@ -9822,21 +9822,10 @@ class AutoTestCopter(AutoTest):
"PRX1_TYPE": 5, "PRX1_TYPE": 5,
}) })
self.customise_SITL_commandline([ self.customise_SITL_commandline([
"--uartF=sim:rplidara2:", "--uartF=sim:%s:" % sim_device_name,
"--home", "51.8752066,14.6487840,0,0", # SITL has "posts" here "--home", "51.8752066,14.6487840,0,0", # SITL has "posts" here
]) ])
expected_distances = {
mavutil.mavlink.MAV_SENSOR_ROTATION_NONE: 276,
mavutil.mavlink.MAV_SENSOR_ROTATION_YAW_45: 256,
mavutil.mavlink.MAV_SENSOR_ROTATION_YAW_90: 1130,
mavutil.mavlink.MAV_SENSOR_ROTATION_YAW_135: 1286,
mavutil.mavlink.MAV_SENSOR_ROTATION_YAW_180: 626,
mavutil.mavlink.MAV_SENSOR_ROTATION_YAW_225: 971,
mavutil.mavlink.MAV_SENSOR_ROTATION_YAW_270: 762,
mavutil.mavlink.MAV_SENSOR_ROTATION_YAW_315: 792,
}
self.wait_ready_to_arm() self.wait_ready_to_arm()
wanting_distances = copy.copy(expected_distances) wanting_distances = copy.copy(expected_distances)
@ -9860,12 +9849,45 @@ class AutoTestCopter(AutoTest):
wanting_distances[m.orientation], wanting_distances[m.orientation],
m.current_distance)) m.current_distance))
continue continue
self.progress("Correct distance for orient %u (want=%u got=%u)" %
(m.orientation,
wanting_distances[m.orientation],
m.current_distance))
del wanting_distances[m.orientation] del wanting_distances[m.orientation]
self.progress("Got correct distance for orient %u" %
(m.orientation))
if len(wanting_distances.items()) == 0: if len(wanting_distances.items()) == 0:
break break
def RPLidarA2(self):
'''test Raspberry Pi Lidar A2'''
expected_distances = {
mavutil.mavlink.MAV_SENSOR_ROTATION_NONE: 276,
mavutil.mavlink.MAV_SENSOR_ROTATION_YAW_45: 256,
mavutil.mavlink.MAV_SENSOR_ROTATION_YAW_90: 1130,
mavutil.mavlink.MAV_SENSOR_ROTATION_YAW_135: 1286,
mavutil.mavlink.MAV_SENSOR_ROTATION_YAW_180: 626,
mavutil.mavlink.MAV_SENSOR_ROTATION_YAW_225: 971,
mavutil.mavlink.MAV_SENSOR_ROTATION_YAW_270: 762,
mavutil.mavlink.MAV_SENSOR_ROTATION_YAW_315: 792,
}
self.test_rplidar("rplidara2", expected_distances)
def RPLidarA1(self):
'''test Raspberry Pi Lidar A1'''
return # we don't send distances when too long?
expected_distances = {
mavutil.mavlink.MAV_SENSOR_ROTATION_NONE: 276,
mavutil.mavlink.MAV_SENSOR_ROTATION_YAW_45: 256,
mavutil.mavlink.MAV_SENSOR_ROTATION_YAW_90: 800,
mavutil.mavlink.MAV_SENSOR_ROTATION_YAW_135: 800,
mavutil.mavlink.MAV_SENSOR_ROTATION_YAW_180: 626,
mavutil.mavlink.MAV_SENSOR_ROTATION_YAW_225: 800,
mavutil.mavlink.MAV_SENSOR_ROTATION_YAW_270: 762,
mavutil.mavlink.MAV_SENSOR_ROTATION_YAW_315: 792,
}
self.test_rplidar("rplidara1", expected_distances)
def tests2b(self): # this block currently around 9.5mins here def tests2b(self): # this block currently around 9.5mins here
'''return list of all tests''' '''return list of all tests'''
ret = ([ ret = ([
@ -9922,7 +9944,8 @@ class AutoTestCopter(AutoTest):
self.AHRSTrimLand, self.AHRSTrimLand,
self.GuidedYawRate, self.GuidedYawRate,
self.NoArmWithoutMissionItems, self.NoArmWithoutMissionItems,
self.RPLidar, self.RPLidarA1,
self.RPLidarA2,
]) ])
return ret return ret