def test_sparsity(self): config, robot_params = self.load() block = ChainSensor(config, ChainMeasurement(chain_id="chainA", chain_state=JointState(position=[numpy.pi / 2.0]) ), "boardA") block.update_config(robot_params) sparsity = block.build_sparsity_dict() self.assertEqual(sparsity['transforms']['transformA'], [1,1,1,1,1,1]) self.assertEqual(sparsity['transforms']['transformB'], [1,1,1,1,1,1]) self.assertEqual(sparsity['dh_chains']['chainA'], {'dh':[[1,1,1,1]], 'gearing':[1]})
def test_cov(self): config, robot_params = self.load() block = ChainSensor(config, ChainMeasurement(chain_id="chainA", chain_state=JointState(position=[0]) ), "boardA") block.update_config(robot_params) cov = block.compute_cov(None) self.assertAlmostEqual(cov[0,0], 0.0, 6) self.assertAlmostEqual(cov[1,0], 0.0, 6) self.assertAlmostEqual(cov[1,1], 1.0, 6) self.assertAlmostEqual(cov[4,4], 4.0, 6)
def test_cov(self): config, robot_params = self.load() block = ChainSensor( config, ChainMeasurement(chain_id="chainA", chain_state=JointState(position=[0])), "boardA") block.update_config(robot_params) cov = block.compute_cov(None) self.assertAlmostEqual(cov[0, 0], 0.0, 6) self.assertAlmostEqual(cov[1, 0], 0.0, 6) self.assertAlmostEqual(cov[1, 1], 1.0, 6) self.assertAlmostEqual(cov[4, 4], 4.0, 6)
def test_sparsity(self): config, robot_params = self.load() block = ChainSensor( config, ChainMeasurement(chain_id="chainA", chain_state=JointState(position=[numpy.pi / 2.0])), "boardA") block.update_config(robot_params) sparsity = block.build_sparsity_dict() self.assertEqual(sparsity['transforms']['transformA'], [1, 1, 1, 1, 1, 1]) self.assertEqual(sparsity['transforms']['transformB'], [1, 1, 1, 1, 1, 1]) self.assertEqual(sparsity['dh_chains']['chainA'], { 'dh': [[1, 1, 1, 1]], 'gearing': [1] })
def test_update1(self): config, robot_params = self.load() block = ChainSensor( config, ChainMeasurement(chain_id="chainA", chain_state=JointState(position=[0])), "boardA") block.update_config(robot_params) target = matrix([[1, 2, 1, 2], [0, 0, 1, 1], [0, 0, 0, 0], [1, 1, 1, 1]]) h = block.compute_expected(target) z = block.get_measurement() r = block.compute_residual(target) self.assertAlmostEqual(numpy.linalg.norm(target - h), 0.0, 6) print "z=\n", z print "target=\n", target self.assertAlmostEqual(numpy.linalg.norm(target - z), 0.0, 6) self.assertAlmostEqual(numpy.linalg.norm(r - numpy.zeros([12])), 0.0, 6)
def test_update2(self): config, robot_params = self.load() block = ChainSensor(config, ChainMeasurement(chain_id="chainA", chain_state=JointState(position=[numpy.pi / 2.0]) ), "boardA") block.update_config(robot_params) target = matrix([[0, 0,-1,-1], [1, 2, 1, 2], [0, 0, 0, 0], [1, 1, 1, 1]]) h = block.compute_expected(target) z = block.get_measurement() r = block.compute_residual(target) self.assertAlmostEqual(numpy.linalg.norm(target-h), 0.0, 6) print "z=\n",z print "target=\n",target self.assertAlmostEqual(numpy.linalg.norm(target-z), 0.0, 6) self.assertAlmostEqual(numpy.linalg.norm(r - numpy.zeros([12])), 0.0, 6)