7 from gazebo_msgs.msg
import ModelState
8 from gazebo_msgs.srv
import GetModelState, GetModelStateRequest, GetModelStateResponse
9 from gazebo_msgs.srv
import SetModelState, SetModelStateRequest, SetModelStateResponse
10 from geometry_msgs.msg
import Pose, Twist, Point, Quaternion, Vector3
19 name=
'/gazebo/set_model_state',
20 service_class=SetModelState
23 name=
'/gazebo/get_model_state',
24 service_class=GetModelState
36 joint_name=
'test_attachment_box',
38 link_name_1=
'attachment_link',
39 model_name_2=
'sphere',
40 link_name_2=
'attachment_link'
44 joint_name=
'test_attachment_cylinder',
46 link_name_1=
'attachment_link',
47 model_name_2=
'cylinder',
48 link_name_2=
'attachment_link'
54 model_state=ModelState(
57 position=Point(0, 0, 2),
58 orientation=Quaternion(x=0, y=0, z=0, w=1)
61 linear=Vector3(0, 0, 0),
62 angular=Vector3(0, 0, 0)
68 self.assertIsInstance(response, SetModelStateResponse)
75 self.assertIsInstance(box_model_state, GetModelStateResponse)
76 self.assertTrue(box_model_state.success)
83 self.assertIsInstance(sphere_model_state, GetModelStateResponse)
84 self.assertTrue(sphere_model_state.success)
86 self.assertEqual(sphere_model_state.pose.position.y,
87 box_model_state.pose.position.y)
88 self.assertEqual(sphere_model_state.pose.position.z,
89 box_model_state.pose.position.z)
90 self.assertEqual(sphere_model_state.twist, box_model_state.twist)
97 joint_name=
'test_attachment_box',
99 model_name_2=
'sphere',
105 SetModelStateRequest(
106 model_state=ModelState(
109 position=Point(2, 2, 2),
110 orientation=Quaternion(x=0, y=0, z=0, w=1)
113 linear=Vector3(0, 0, 0),
114 angular=Vector3(0, 0, 0)
120 self.assertIsInstance(response, SetModelStateResponse)
123 GetModelStateRequest(
127 self.assertIsInstance(box_model_state, GetModelStateResponse)
128 self.assertTrue(box_model_state.success)
131 GetModelStateRequest(
132 model_name=
'cylinder'
135 self.assertIsInstance(cylinder_model_state, GetModelStateResponse)
136 self.assertTrue(cylinder_model_state.success)
138 self.assertEqual(cylinder_model_state.pose.position.y,
139 box_model_state.pose.position.y)
140 self.assertEqual(cylinder_model_state.pose.position.z,
141 box_model_state.pose.position.z)
142 self.assertEqual(cylinder_model_state.twist, box_model_state.twist)
145 if __name__ ==
'__main__':
146 rospy.init_node(
'test_plugin')
148 rostest.rosrun(
'boeing_gazebo_model_attachment_plugin',
149 'test_plugin', TestPlugin)