Nantes Université

Skip to content
Extraits de code Groupes Projets
Valider 501e733c rédigé par Lionel GENEVE's avatar Lionel GENEVE
Parcourir les fichiers

Update of multi_control.py with commented sections that can be used to arm and...

Update of multi_control.py with commented sections that can be used to arm and take off multiple drones at the same time.
parent 4ba33dff
Branches master
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -5,7 +5,8 @@ from ls2n_interfaces.srv import *
from rcl_interfaces.msg import ParameterDescriptor, ParameterType
from rclpy.node import Node
from rclpy.qos import qos_profile_sensor_data
#from std_msgs.msg import Bool
#from std_srvs.srv import Empty
qos_profile_sensor_data.depth = 1
DroneStatusString = [None] * (DroneStatus.LAST + 1)
......@@ -54,6 +55,10 @@ class MultiControl(Node):
self.status_pub = self.create_publisher(
DroneStatus, "Status", qos_profile_sensor_data
)
#self.create_service(Empty, 'StartExperiment', self.start_experimentation)
#self.create_service(Empty, 'StopExperiment', self.stop_experimentation)
#self.create_service(Empty, "SpinMotors", self.spin_motors)
#self.multi_control_client = self.create_client(DroneRequest, 'Request')
self.create_service(DroneRequest, "Request", self.handle_request)
self.keep_alive_sub = self.create_subscription(
KeepAlive, "KeepAlive", self.keep_alive, qos_profile_sensor_data
......@@ -161,6 +166,45 @@ class MultiControl(Node):
return response
# def spin_motors(self, request, response):
# """
# Callback function of the service spin motors. All drones spin when the service is called.
# :return response: The response of the service.
# """
# self.get_logger().info('Spin motors request made')
# request_out = DroneRequest.Request()
# request_out.request = DroneRequest.Request.SPIN_MOTORS
# self.multi_control_client.call_async(request_out)
# return response
# def start_experimentation(self, request, response):
# """
# Callback function of the service for start experimentation. All drones take-off when the service is called.
# :return: The response of the service.
# """
# self.get_logger().info('Start Experiment request made')
# request_out = DroneRequest.Request()
# request_out.request = DroneRequest.Request.TAKE_OFF
# self.multi_control_client.call_async(request_out)
# return response
# def stop_experimentation(self, request, response):
# """
# Callback function of the service stop experimentation. All drones land when the service is called.
# :return response: The response of the service.
# """
# self.get_logger().info('Stop Experiment request made')
# msg = Bool()
# msg.data = False
# self.active = False
# request_out = DroneRequest.Request()
# request_out.request = DroneRequest.Request.LAND
# self.multi_control_client.call_async(request_out)
# return response
def keep_alive(self, keepAlive):
"""
This function sends keep alive to each drone
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter