5 import ensenso_camera.ros2
as ros2py
7 from ensenso_camera_msgs.msg
import Parameter
11 from geometry_msgs.msg
import Pose, Point, Quaternion
13 CalibrateWorkspace = ros2py.import_action(
"ensenso_camera_msgs",
"CalibrateWorkspace")
14 LocatePattern = ros2py.import_action(
"ensenso_camera_msgs",
"LocatePattern")
15 SetParameter = ros2py.import_action(
"ensenso_camera_msgs",
"SetParameter")
22 self.
node = ros2py.create_node(
"test_workspace_calibration")
29 parameter = Parameter(key=Parameter.FOLLOW_LINK, string_value=
"Disabled")
30 goal = SetParameter.Goal(parameters=[parameter])
33 result = response.get_result()
34 self.assertTrue(response.successful())
35 self.assertEqual(result.error.code, 0)
39 x = random.randint(-500, 500)
40 y = random.randint(-500, 500)
41 z = random.randint(-500, 500)
43 p = Point(x=float(x), y=float(y), z=float(z))
45 q = Quaternion(x=0.0, y=0.0, z=0.0, w=1.0)
46 pose = Pose(position=p, orientation=q)
49 goal = CalibrateWorkspace.Goal(defined_pattern_pose=pose)
51 result = response.get_result()
53 self.assertTrue(response.successful())
54 self.assertEqual(result.error.code, 0)
55 self.assertTrue(result.successful)
61 result = response.get_result()
63 self.assertTrue(response.successful())
64 self.assertEqual(result.error.code, 0)
66 self.assertTrue(result.found_pattern)
67 self.assertEqual(len(result.pattern_poses), 1)
69 pose = result.pattern_poses[0].pose
70 self.assertTrue(abs(pose.position.x - x) < tolerance)
71 self.assertTrue(abs(pose.position.y - y) < tolerance)
72 self.assertTrue(abs(pose.position.z - z) < tolerance)
76 ros2py_testing.run_ros1_test(
"test_workspace_calibration", TestWorkspaceCalibration)
79 if __name__ ==
"__main__":