- updated flight path assertion position subscription and added check if it does not get a position after 1 sec

- modified test so it works iwth new _Z_P parameter
This commit is contained in:
Andreas Antener
2015-03-15 16:39:35 +01:00
parent 15a5c0a9be
commit 1d5beb1edf
2 changed files with 10 additions and 3 deletions
@@ -132,6 +132,7 @@ class DirectOffboardPosctlTest(unittest.TestCase):
# prepare flight path # prepare flight path
positions = ( positions = (
(0, 0, 0), (0, 0, 0),
(0, 0, -2),
(2, 2, -2), (2, 2, -2),
(2, -2, -2), (2, -2, -2),
(-2, -2, -2), (-2, -2, -2),
@@ -62,7 +62,7 @@ class FlightPathAssertion(threading.Thread):
# #
def __init__(self, positions, tunnelRadius=1, yaw_offset=0.2): def __init__(self, positions, tunnelRadius=1, yaw_offset=0.2):
threading.Thread.__init__(self) threading.Thread.__init__(self)
rospy.Subscriber("px4_multicopter/vehicle_local_position", vehicle_local_position, self.position_callback) rospy.Subscriber("iris/vehicle_local_position", vehicle_local_position, self.position_callback)
self.spawn_model = rospy.ServiceProxy('gazebo/spawn_sdf_model', SpawnModel) self.spawn_model = rospy.ServiceProxy('gazebo/spawn_sdf_model', SpawnModel)
self.set_model_state = rospy.ServiceProxy('gazebo/set_model_state', SetModelState) self.set_model_state = rospy.ServiceProxy('gazebo/set_model_state', SetModelState)
self.delete_model = rospy.ServiceProxy('gazebo/delete_model', DeleteModel) self.delete_model = rospy.ServiceProxy('gazebo/delete_model', DeleteModel)
@@ -103,7 +103,7 @@ class FlightPathAssertion(threading.Thread):
"</visual>" + "</visual>" +
"</link>" + "</link>" +
"</model>" + "</model>" +
"</sdf>" % self.tunnel_radius) "</sdf>") % self.tunnel_radius
self.spawn_model("indicator", xml, "", Pose(), "") self.spawn_model("indicator", xml, "", Pose(), "")
@@ -147,7 +147,7 @@ class FlightPathAssertion(threading.Thread):
self.spawn_indicator() self.spawn_indicator()
current = 0 current = 0
count = 0
while not self.should_stop: while not self.should_stop:
if self.has_pos: if self.has_pos:
# calculate distance to line segment between first two points # calculate distance to line segment between first two points
@@ -189,3 +189,9 @@ class FlightPathAssertion(threading.Thread):
break break
rate.sleep() rate.sleep()
count = count + 1
if count > 10 and not self.has_pos: # no position after 1 sec
rospy.logerr("no position")
self.failed = True
break