Source code for base.pose_noise_testing

#! /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


[docs]class NoiseTest(MorseTestCase):
[docs] 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')
[docs] 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)
[docs] 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)
[docs] 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)
[docs] 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)