4 import ensenso_camera.ros2
as ros2py
9 LocatePattern = ros2py.import_action(
"ensenso_camera_msgs",
"LocatePattern")
11 DATA_SET_FILEPATH = ros2py_testing.get_test_data_path(
"locate_pattern/pattern_pose.json")
13 FRAMES_CONTAIN_PATTERN = [
True,
False]
18 self.
node = ros2py.create_node(
"test_locate_pattern")
23 for contains_pattern
in FRAMES_CONTAIN_PATTERN:
25 result = response.get_result()
27 self.assertTrue(response.successful())
28 self.assertEqual(result.error.code, 0)
31 self.assertTrue(result.found_pattern)
32 self.assertEqual(len(result.patterns), 1)
33 self.assertEqual(len(result.pattern_poses), 1)
35 self.assertNotEqual(result.frame,
"")
37 pattern = result.patterns[0]
38 self.assertEqual(pattern.thickness, 0.001)
39 self.assertEqual(pattern.grid_spacing, 0.01875)
40 self.assertEqual(pattern.grid_size_x, 7)
41 self.assertEqual(pattern.grid_size_y, 7)
42 self.assertEqual(len(pattern.left_points), 49)
43 self.assertEqual(len(pattern.right_points), 49)
45 self.assertNotEqual(result.pattern_poses[0].header.stamp, 0)
46 self.assertNotEqual(result.pattern_poses[0].header.frame_id,
"")
48 reference_pattern_pose = Pose.from_json(DATA_SET_FILEPATH)
49 estimated_pattern_pose = Pose.from_message(result.pattern_poses[0].pose)
50 self.assertTrue(reference_pattern_pose.equals(estimated_pattern_pose))
52 self.assertFalse(result.found_pattern)
53 self.assertEqual(len(result.patterns), 0)
54 self.assertEqual(len(result.pattern_poses), 0)
58 ros2py_testing.run_ros1_test(
"test_locate_pattern", TestLocatePattern)
61 if __name__ ==
"__main__":