1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
|
#! /usr/bin/env python
"""
This script tests the several Noise modifiers
"""
from morse.testing.testing import MorseTestCase
try:
# Include this import to be able to use your test file as a regular
# builder script, ie, usable with: 'morse [run|exec] <your test>.py
from morse.builder import *
except ImportError:
pass
import os
import sys
from pymorse import Morse
class NoiseTest(MorseTestCase):
def setUpEnv(self):
robot = ATRV()
motion = MotionVW()
robot.append(motion)
pose = Pose()
robot.append(pose)
pose_noised = Pose()
pose_noised.alter('Noise', pos_std=1, rot_std=1)
robot.append(pose_noised)
gps = GPS()
robot.append(gps)
gps_noised = GPS()
gps_noised.alter('Noise', pos_std=1)
robot.append(gps_noised)
gyroscope = Gyroscope()
robot.append(gyroscope)
gyroscope_noised = Gyroscope()
gyroscope_noised.alter('Noise', rot_std=1)
robot.append(gyroscope_noised)
odometry = Odometry()
robot.append(odometry)
odometry.level('integrated')
odometry_noised = Odometry()
odometry_noised.alter('Noise', pos_std=1, rot_std=1)
robot.append(odometry_noised)
odometry_noised.level('integrated')
robot.add_default_interface('socket')
env = Environment('empty', fastmode = True)
env.add_interface('socket')
def test_noised_pose(self):
""" Test if the Pose data is noised
"""
with Morse() as morse:
d = morse.robot.pose.get()
dn = morse.robot.pose_noised.get()
for i in ['x', 'y', 'z', 'roll', 'pitch', 'yaw']:
self.assertNotAlmostEqual(d[i], dn[i], delta=.001)
def test_noised_gyro(self):
""" Test if the Gyroscope data is noised
"""
with Morse() as morse:
d = morse.robot.gyroscope.get()
dn = morse.robot.gyroscope_noised.get()
for i in ['roll', 'pitch', 'yaw']:
self.assertNotAlmostEqual(d[i], dn[i], delta=.001)
def test_noised_gps(self):
""" Test if the GPS data is noised
"""
with Morse() as morse:
d = morse.robot.gps.get()
dn = morse.robot.gps_noised.get()
for i in ['x', 'y', 'z']:
self.assertNotAlmostEqual(d[i], dn[i], delta=.001)
def test_noised_odometry(self):
""" Test if the odometry data is noised
"""
with Morse() as morse:
morse.robot.motion.publish({'v': 1, 'w':.5})
morse.sleep(1)
d = morse.robot.odometry.get()
dn = morse.robot.odometry_noised.get()
for i in ['x', 'y', 'z', 'yaw', 'pitch', 'roll']:
#, 'vx', 'vy', 'vz', 'wz', 'wy', 'wz']:
self.assertNotAlmostEqual(d[i], dn[i], delta=.001)
########################## Run these tests ##########################
if __name__ == "__main__":
from morse.testing.testing import main
main(NoiseTest)
|