gazebo_client.py
Go to the documentation of this file.
1 #!/usr/bin/env python3
2 
3 import logging
4 
5 import rospy
6 
7 from gazebo_model_attachment_plugin.srv import Attach, AttachRequest, AttachResponse
8 from gazebo_model_attachment_plugin.srv import Detach, DetachRequest, DetachResponse
9 
10 logger = logging.getLogger(__name__)
11 
12 
14  def __init__(self):
15  self.__attach_srv = rospy.ServiceProxy(
16  name='/gazebo/attach',
17  service_class=Attach
18  )
19 
20  self.__detach_srv = rospy.ServiceProxy(
21  name='/gazebo/detach',
22  service_class=Detach
23  )
24 
25  self.__attach_srv.wait_for_service(timeout=20)
26  self.__detach_srv.wait_for_service(timeout=20)
27 
28  def attach(self, joint_name, model_name_1, link_name_1, model_name_2, link_name_2):
29  # type: (str, str, str, str, str) -> None
30  response = self.__attach_srv.call(
31  AttachRequest(
32  joint_name=joint_name,
33  model_name_1=model_name_1,
34  link_name_1=link_name_1,
35  model_name_2=model_name_2,
36  link_name_2=link_name_2
37  )
38  ) # type: AttachResponse
39  assert isinstance(response, AttachResponse)
40 
41  if response.success:
42  logger.info('Successfully attached models by adding joint {}'.format(joint_name))
43  else:
44  raise Exception('Failed to attach models: {}<--{}-->{} - {}'
45  .format(model_name_1, joint_name, model_name_2, response.message))
46 
47  def detach(self, joint_name, model_name_1, model_name_2):
48  # type: (str, str, str) -> None
49  response = self.__detach_srv.call(
50  DetachRequest(
51  joint_name=joint_name,
52  model_name_1=model_name_1,
53  model_name_2=model_name_2
54  )
55  ) # type: DetachResponse
56  assert isinstance(response, DetachResponse)
57 
58  if response.success:
59  logger.info('Successfully detached models by removing joint {}'.format(joint_name))
60  else:
61  raise Exception('Failed to detach models: {}<--{}-->{} - {}'
62  .format(model_name_1, joint_name, model_name_2, response.message))
gazebo_model_attachment_plugin.gazebo_client.GazeboModelAttachmentClient.__detach_srv
__detach_srv
Definition: gazebo_client.py:20
gazebo_model_attachment_plugin.gazebo_client.GazeboModelAttachmentClient
Definition: gazebo_client.py:13
gazebo_model_attachment_plugin.gazebo_client.GazeboModelAttachmentClient.attach
def attach(self, joint_name, model_name_1, link_name_1, model_name_2, link_name_2)
Definition: gazebo_client.py:28
gazebo_model_attachment_plugin.gazebo_client.GazeboModelAttachmentClient.__init__
def __init__(self)
Definition: gazebo_client.py:14
gazebo_model_attachment_plugin.gazebo_client.GazeboModelAttachmentClient.__attach_srv
__attach_srv
Definition: gazebo_client.py:15
gazebo_model_attachment_plugin.gazebo_client.GazeboModelAttachmentClient.detach
def detach(self, joint_name, model_name_1, model_name_2)
Definition: gazebo_client.py:47


boeing_gazebo_model_attachment_plugin
Author(s): Boeing
autogenerated on Fri Dec 15 2023 03:43:22