Skip to main content
Version: Next

Create New Dock

Create a new dock. Dock information is stored in persistent memory.

import rclpy
from rclpy.node import Node

from clearpath_dock_msgs.srv import AddDock


class AddDock(Node):

def __init__(self):
super().__init__('add_dock_client')
self._srv_client = self.create_client(AddDock, 'docking/dock_manager/add_dock')
while not self._srv_client.wait_for_service(timeout_sec=1.0):
self.get_logger().info('service not available, waiting again...')
self.req = AddDock.Request()

def send_request(self, lat, lon):
# self.req.lat = lat
# self.req.lon = lon
self.future = self._srv_client.call_async(self.req)
rclpy.spin_until_future_complete(self, self.future)
return self.future.result()

if __name__ == '__main__':
rclpy.init(args=args)
add_dock_client = AddDock()
response = add_dock_client.send_request()
if response.success:
add_dock_client.get_logger().info('New dock created succesfully!')
else:
add_dock_client.get_logger().error('Failed creating new dock')

set_datum_client.destroy_node()
rclpy.shutdown()