def test_tilting_laser_1(self): print "" config, robot_params = loadSystem() joint_points = [ JointState(position=[0, 0, 0]), JointState(position=[0, pi / 2, 1]), JointState(position=[pi / 2, 0, 1]) ] sensor = TiltingLaserSensor( config["tilting_lasers"]["laserA"], LaserMeasurement(laser_id="laserA", joint_points=joint_points)) sensor.update_config(robot_params) target_pts = matrix([[0, 0, 0], [0, 1, 0], [0, 0, -1], [1, 1, 1]]) h = sensor.compute_expected(target_pts) z = sensor.get_measurement() r = sensor.compute_residual(target_pts) self.assertAlmostEqual(numpy.linalg.norm(h - target_pts), 0.0, 6) self.assertAlmostEqual(numpy.linalg.norm(z - target_pts), 0.0, 6) self.assertAlmostEqual(numpy.linalg.norm(r), 0.0, 6) # Test Sparsity sparsity = sensor.build_sparsity_dict() self.assertEqual(sparsity['transforms']['j0'], [1, 1, 1, 1, 1, 1]) self.assertEqual(sparsity['transforms']['j1'], [1, 1, 1, 1, 1, 1]) self.assertEqual(sparsity['transforms']['j2'], [1, 1, 1, 1, 1, 1]) self.assertEqual(sparsity['tilting_lasers']['laserA']['gearing'], 1)