Skip to content
This repository was archived by the owner on Jan 2, 2024. It is now read-only.

Commit aaf0a67

Browse files
committed
addressed latest feedback
1 parent dd20187 commit aaf0a67

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

python/MOCK_sensors.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -131,10 +131,15 @@ def publish(self):
131131
data = self.add_noise(data)
132132

133133
brokenWindSensorStatus = rospy.get_param('broken_wind_sensors', default="not_broken")
134-
if brokenWindSensorStatus != "not_broken":
134+
if brokenWindSensorStatus in ["stuck_at_zero", "stuck_at_rand_constant",
135+
"rand_const_error", "stuck_at_last_value"]:
135136
rospy.logwarn_throttle(30, "Broken Wind Sensor Status: " + brokenWindSensorStatus)
136137
self.breakWindSensors(data, brokenWindSensorStatus)
137138

139+
elif brokenWindSensorStatus != "not_broken":
140+
rospy.logwarn_throttle(1.5, "Unknown 'broken_wind_sensors' argument: \"{}\".".format(brokenWindSensorStatus)
141+
+ " Wind sensor data unchanged.")
142+
138143
self.publisher.publish(data)
139144

140145
def breakWindSensors(self, data, brokenWindSensorStatus):
@@ -143,7 +148,7 @@ def breakWindSensors(self, data, brokenWindSensorStatus):
143148
# Initialization code used by all types of brokenWindSensorStatus
144149
if(self.brokenSensorData is None):
145150
np.random.seed(get_rosparam_or_default_if_invalid('random_seed', default=None, rosparam_type_cast=str))
146-
brokenSensorID = np.random.randint(1, high=4)
151+
brokenSensorID = np.random.randint(1, 4)
147152

148153
if (brokenWindSensorStatus == "stuck_at_zero"):
149154
# This setting chooses a wind sensor which reads an angle of 0 and speed 0
@@ -185,11 +190,11 @@ def breakWindSensors(self, data, brokenWindSensorStatus):
185190

186191
if(self.brokenSensorData is None):
187192

188-
if np.random.randint(1, high=3) < 2:
189-
# multiplier will be between 1/MAX_WINDSPEED_MULTIPLIER_ERROR and 1
193+
if np.random.randint(0, 2):
194+
# 50% chance multiplier will be between 1/MAX_WINDSPEED_MULTIPLIER_ERROR and 1
190195
multiplier = 1.0 - np.random.ranf() * (1.0 - 1.0 / MAX_WINDSPEED_MULTIPLIER_ERROR)
191196
else:
192-
# multiplier will be between 1 and MAX_WINDSPEED_MULTIPLIER_ERROR
197+
# 50% chance multiplier will be between 1 and MAX_WINDSPEED_MULTIPLIER_ERROR
193198
multiplier = 1.0 + np.random.ranf() * (MAX_WINDSPEED_MULTIPLIER_ERROR - 1.0)
194199

195200
self.brokenSensorData = {'brokenSensorID': brokenSensorID,
@@ -225,8 +230,7 @@ def breakWindSensors(self, data, brokenWindSensorStatus):
225230

226231
if(self.brokenSensorData is None):
227232
self.brokenSensorData = {'brokenSensorID': brokenSensorID,
228-
'loopsUntilBroken': np.random.randint(MIN_LOOPS_TO_BREAK,
229-
high=MAX_LOOPS_TO_BREAK),
233+
'loopsUntilBroken': np.random.randint(MIN_LOOPS_TO_BREAK, MAX_LOOPS_TO_BREAK),
230234
'loopsSoFar': 0, 'lastAngle': None, 'lastSpeed': None}
231235

232236
if self.brokenSensorData['loopsSoFar'] <= self.brokenSensorData['loopsUntilBroken']:
@@ -246,10 +250,6 @@ def breakWindSensors(self, data, brokenWindSensorStatus):
246250
+ "angle stuck at {} degrees, ".format(self.brokenSensorData['lastAngle'])
247251
+ "speed stuck at {} knots".format(self.brokenSensorData['lastSpeed']))
248252

249-
else:
250-
rospy.logwarn_throttle(1.5, "Unknown 'broken_wind_sensors' argument: \"{}\".".format(brokenWindSensorStatus)
251-
+ " Wind sensor data unchanged.")
252-
253253
def corrupt_wind_sensor(self, data, brokenSensorNumber, newAngle, newSpeed):
254254
# Helper function for corrupting wind data.
255255
# Overwrites the angle and speed of the wind sensor specified by brokenSensorNumber

0 commit comments

Comments
 (0)