Skip to content

Commit

Permalink
Update crazyflie_server.py
Browse files Browse the repository at this point in the history
  • Loading branch information
knmcguire authored Nov 13, 2023
1 parent 13cb67f commit 88eaa66
Showing 1 changed file with 20 additions and 2 deletions.
22 changes: 20 additions & 2 deletions crazyflie/scripts/crazyflie_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,7 @@
from crazyflie_interfaces.srv import Takeoff, Land, GoTo, RemoveLogging, AddLogging
from crazyflie_interfaces.srv import UploadTrajectory, StartTrajectory, NotifySetpointsStop
from rcl_interfaces.msg import ParameterDescriptor, SetParametersResult, ParameterType
from crazyflie_interfaces.msg import Hover
from crazyflie_interfaces.msg import LogDataGeneric
from crazyflie_interfaces.msg import Hover, LogDataGeneric, FullState
from motion_capture_tracking_interfaces.msg import NamedPoseArray

from std_srvs.srv import Empty
Expand Down Expand Up @@ -246,6 +245,10 @@ def __init__(self):
Hover, name +
"/cmd_hover", partial(self._cmd_hover_changed, uri=uri), 10
)
self.create_subscription(
Hover, name +
"/cmd_full_state", partial(self._cmd_full_state_changed, uri=uri), 10
)
qos_profile = QoSProfile(reliability =QoSReliabilityPolicy.BEST_EFFORT,
history=QoSHistoryPolicy.KEEP_LAST,
depth=1,
Expand Down Expand Up @@ -846,6 +849,21 @@ def _cmd_hover_changed(self, msg, uri=""):
self.swarm._cfs[uri].cf.commander.send_hover_setpoint(vx, vy, yawrate, z)
self.get_logger().info(f"{uri}: Received hover topic {vx} {vy} {yawrate} {z}")

def _cmd_full_state_changed(self, msg, uri=""):
"""
Topic update callback to full state cmd topic
"""
pos = [msg.pose.position.x, msg.pose.position.y, msg.pose.position.z]
vel = [msg.twist.linear.x, msg.twist.linear.y, msg.twist.linear.z]
acc = [msg.acc.x, msg.acc.y, msg.acc.z]
q = [msg.pose.orientation.x, msg.pose.orientation.y, msg.pose.orientation.z, msg.pose.orientation.w]
roll_rate = msg.twist.angular.x
pitch_rate = msg.twist.angular.y
yaw_rate = msg.twist.angular.z

self.swarm._cfs[uri].cf.commander.send_hover_setpoint(pos, vel, acc, q, roll_rate, pitch_rate, yaw_rate)
self.get_logger().info(f"{uri}: Received full state topic {pose} {vel} {acc} {q}, {roll_rate}, {pitch_rate}, {yaw_rate})

def _remove_logging(self, request, response, uri="all"):
"""
Service callback to remove logging blocks of the crazyflie
Expand Down

0 comments on commit 88eaa66

Please sign in to comment.