locate_pattern.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 import unittest
3 
4 import ensenso_camera.ros2 as ros2py
5 
6 from ensenso_camera_test.helper import Pose
7 import ensenso_camera_test.ros2_testing as ros2py_testing
8 
9 LocatePattern = ros2py.import_action("ensenso_camera_msgs", "LocatePattern")
10 
11 DATA_SET_FILEPATH = ros2py_testing.get_test_data_path("locate_pattern/pattern_pose.json")
12 
13 FRAMES_CONTAIN_PATTERN = [True, False]
14 
15 
16 class TestLocatePattern(unittest.TestCase):
17  def setUp(self):
18  self.node = ros2py.create_node("test_locate_pattern")
19  self.locate_pattern_client = ros2py.create_action_client(self.node, "locate_pattern", LocatePattern)
20  ros2py.wait_for_server(self.node, self.locate_pattern_client)
21 
23  for contains_pattern in FRAMES_CONTAIN_PATTERN:
24  response = ros2py.send_action_goal(self.node, self.locate_pattern_client, LocatePattern.Goal())
25  result = response.get_result()
26 
27  self.assertTrue(response.successful())
28  self.assertEqual(result.error.code, 0)
29 
30  if contains_pattern:
31  self.assertTrue(result.found_pattern)
32  self.assertEqual(len(result.patterns), 1)
33  self.assertEqual(len(result.pattern_poses), 1)
34 
35  self.assertNotEqual(result.frame, "")
36 
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)
44 
45  self.assertNotEqual(result.pattern_poses[0].header.stamp, 0)
46  self.assertNotEqual(result.pattern_poses[0].header.frame_id, "")
47 
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))
51  else:
52  self.assertFalse(result.found_pattern)
53  self.assertEqual(len(result.patterns), 0)
54  self.assertEqual(len(result.pattern_poses), 0)
55 
56 
57 def main():
58  ros2py_testing.run_ros1_test("test_locate_pattern", TestLocatePattern)
59 
60 
61 if __name__ == "__main__":
62  main()
ensenso_camera_test.locate_pattern.TestLocatePattern.node
node
Definition: locate_pattern.py:18
ensenso_camera_test.locate_pattern.main
def main()
Definition: locate_pattern.py:57
ensenso_camera_test.helper
Definition: helper.py:1
ensenso_camera_test.locate_pattern.TestLocatePattern.locate_pattern_client
locate_pattern_client
Definition: locate_pattern.py:19
ensenso_camera_test.locate_pattern.TestLocatePattern.setUp
def setUp(self)
Definition: locate_pattern.py:17
ensenso_camera_test.locate_pattern.TestLocatePattern
Definition: locate_pattern.py:16
ensenso_camera_test.ros2_testing
Definition: ros2_testing.py:1
ensenso_camera_test.locate_pattern.TestLocatePattern.test_locate_pattern
def test_locate_pattern(self)
Definition: locate_pattern.py:22


ensenso_camera_test
Author(s): Ensenso
autogenerated on Wed Apr 2 2025 02:37:52