From 94ff6027fa5a0c2b1668fbaf0365af97ffacb824 Mon Sep 17 00:00:00 2001 From: Angel <roangel@student.ethz.ch> Date: Fri, 13 Oct 2017 12:10:24 +0200 Subject: [PATCH] fixed some thing in python script --- .../src/d_fall_pps/crazyradio/CrazyRadio.py | 44 ++++++++++++++++--- pps_ws/src/d_fall_pps/crazyradio/TestCF.py | 2 +- pps_ws/src/d_fall_pps/param/Crazyflie.db | 2 +- .../src/CircleControllerService.cpp | 2 +- .../d_fall_pps/src/FollowCrazyflieService.cpp | 2 +- .../src/d_fall_pps/src/FollowN_1Service.cpp | 2 +- .../d_fall_pps/src/SafeControllerService.cpp | 2 +- 7 files changed, 43 insertions(+), 13 deletions(-) diff --git a/pps_ws/src/d_fall_pps/crazyradio/CrazyRadio.py b/pps_ws/src/d_fall_pps/crazyradio/CrazyRadio.py index dd2b8629..62da8744 100755 --- a/pps_ws/src/d_fall_pps/crazyradio/CrazyRadio.py +++ b/pps_ws/src/d_fall_pps/crazyradio/CrazyRadio.py @@ -34,9 +34,15 @@ from cflib.crazyflie.log import LogConfig # Logging settings logging.basicConfig(level=logging.ERROR) -CONTROLLER_MOTOR = 2 -CONTROLLER_ANGLE = 1 -CONTROLLER_RATE = 0 +# CONTROLLER_MOTOR = 2 +# CONTROLLER_ANGLE = 1 +# CONTROLLER_RATE = 0 + + +TYPE_PPS_MOTORS = 6 +TYPE_PPS_RATE = 7 +TYPE_PPS_ANGLE = 8 + RAD_TO_DEG = 57.296 # CrazyRadio states: @@ -216,13 +222,30 @@ class PPSRadioClient: self.logconf.delete() rospy.loginfo("logconf deleted") + def _send_to_commander_motor(self, cmd1, cmd2, cmd3, cmd4): + pk = CRTPPacket() + pk.port = CRTPPort.COMMANDER_GENERIC + pk.data = struct.pack('<BHHHH', TYPE_PPS_MOTORS, cmd1, cmd2, cmd3, cmd4) + self._cf.send_packet(pk) + + def _send_to_commander_rate(self, cmd1, cmd2, cmd3, cmd4, roll_rate, pitch_rate, yaw_rate): + pk = CRTPPacket() + pk.port = CRTPPort.COMMANDER_GENERIC + pk.data = struct.pack('<BHHHHfff', TYPE_PPS_RATE, cmd1, cmd2, cmd3, cmd4, roll_rate, pitch_rate, yaw_rate) + self._cf.send_packet(pk) - def _send_to_commander(self,roll, pitch, yaw, thrust, cmd1, cmd2, cmd3, cmd4, mode): + def _send_to_commander_angle(self, cmd1, cmd2, cmd3, cmd4, roll, pitch, yaw): pk = CRTPPacket() - pk.port = CRTPPort.COMMANDER - pk.data = struct.pack('<fffHHHHHH', roll * RAD_TO_DEG, pitch * RAD_TO_DEG, yaw * RAD_TO_DEG, thrust, cmd1, cmd2, cmd3, cmd4, mode) + pk.port = CRTPPort.COMMANDER_GENERIC + pk.data = struct.pack('<BHHHHfff', TYPE_PPS_ANGLE, cmd1, cmd2, cmd3, cmd4, roll, pitch, yaw) self._cf.send_packet(pk) + # def _send_to_commander(self,roll, pitch, yaw, thrust, cmd1, cmd2, cmd3, cmd4, mode): + # pk = CRTPPacket() + # pk.port = CRTPPort.COMMANDER + # pk.data = struct.pack('<fffHHHHHH', roll * RAD_TO_DEG, pitch * RAD_TO_DEG, yaw * RAD_TO_DEG, thrust, cmd1, cmd2, cmd3, cmd4, mode) + # self._cf.send_packet(pk) + def crazyRadioCommandCallback(self, msg): """Callback to tell CrazyRadio to reconnect""" print "crazyRadio command received %s" % msg.data @@ -249,8 +272,15 @@ def controlCommandCallback(data): #cmd1..4 must not be 0, as crazyflie onboard controller resets! #pitch and yaw are inverted on crazyflie controller - cf_client._send_to_commander(data.roll, -data.pitch, -data.yaw, 0, data.motorCmd1, data.motorCmd2, data.motorCmd3, data.motorCmd4, data.onboardControllerType) + if data.onboardControllerType == TYPE_PPS_MOTORS: + cf_client._send_to_commander_motor(data.motorCmd1, data.motorCmd2, data.motorCmd3, data.motorCmd4) + + elif data.onboardControllerType == TYPE_PPS_RATE: + cf_client._send_to_commander_rate(data.motorCmd1, data.motorCmd2, data.motorCmd3, data.motorCmd4, data.roll, -data.pitch, -data.yaw) + elif data.onboardControllerType == TYPE_PPS_ANGLE: + cf_client._send_to_commander_angle(data.motorCmd1, data.motorCmd2, data.motorCmd3, data.motorCmd4, data.roll, -data.pitch, -data.yaw) + # cf_client._send_to_commander(data.roll, -data.pitch, -data.yaw, 0, data.motorCmd1, data.motorCmd2, data.motorCmd3, data.motorCmd4, data.onboardControllerType) diff --git a/pps_ws/src/d_fall_pps/crazyradio/TestCF.py b/pps_ws/src/d_fall_pps/crazyradio/TestCF.py index 2682260e..c5fa4f44 100755 --- a/pps_ws/src/d_fall_pps/crazyradio/TestCF.py +++ b/pps_ws/src/d_fall_pps/crazyradio/TestCF.py @@ -204,7 +204,7 @@ class PPSRadioClient: def _send_to_commander_angle(self, cmd1, cmd2, cmd3, cmd4, roll, pitch, yaw): pk = CRTPPacket() pk.port = CRTPPort.COMMANDER_GENERIC - pk.data = struct.pack('<BHHHHfff', TYPE_PPSRATE, cmd1, cmd2, cmd3, cmd4, roll, pitch, yaw) + pk.data = struct.pack('<BHHHHfff', TYPE_PPSANGLE, cmd1, cmd2, cmd3, cmd4, roll, pitch, yaw) self._cf.send_packet(pk) if __name__ == '__main__': diff --git a/pps_ws/src/d_fall_pps/param/Crazyflie.db b/pps_ws/src/d_fall_pps/param/Crazyflie.db index 9dd75d26..71d3eb1f 100644 --- a/pps_ws/src/d_fall_pps/param/Crazyflie.db +++ b/pps_ws/src/d_fall_pps/param/Crazyflie.db @@ -1 +1 @@ -8,PPS_CF04,0/24/2M,0,-0.33,-1.3,-0.2,1.39,0.34,2 +6,PPS_CF04,0/24/2M/E7E7E7E704,0,-1.18,-0.65,-0.2,0.93,1.04,2 diff --git a/pps_ws/src/d_fall_pps/src/CircleControllerService.cpp b/pps_ws/src/d_fall_pps/src/CircleControllerService.cpp index 233cb9ff..6a3fe811 100755 --- a/pps_ws/src/d_fall_pps/src/CircleControllerService.cpp +++ b/pps_ws/src/d_fall_pps/src/CircleControllerService.cpp @@ -27,7 +27,7 @@ #include "d_fall_pps/Controller.h" #define PI 3.1415926535 -#define RATE_CONTROLLER 0 +#define RATE_CONTROLLER 7 using namespace d_fall_pps; diff --git a/pps_ws/src/d_fall_pps/src/FollowCrazyflieService.cpp b/pps_ws/src/d_fall_pps/src/FollowCrazyflieService.cpp index 62c89dde..1a909405 100755 --- a/pps_ws/src/d_fall_pps/src/FollowCrazyflieService.cpp +++ b/pps_ws/src/d_fall_pps/src/FollowCrazyflieService.cpp @@ -27,7 +27,7 @@ #include "d_fall_pps/Controller.h" #define PI 3.1415926535 -#define RATE_CONTROLLER 0 +#define RATE_CONTROLLER 7 using namespace d_fall_pps; diff --git a/pps_ws/src/d_fall_pps/src/FollowN_1Service.cpp b/pps_ws/src/d_fall_pps/src/FollowN_1Service.cpp index 1e097efd..804618dc 100644 --- a/pps_ws/src/d_fall_pps/src/FollowN_1Service.cpp +++ b/pps_ws/src/d_fall_pps/src/FollowN_1Service.cpp @@ -27,7 +27,7 @@ #include "d_fall_pps/Controller.h" #define PI 3.1415926535 -#define RATE_CONTROLLER 0 +#define RATE_CONTROLLER 7 using namespace d_fall_pps; diff --git a/pps_ws/src/d_fall_pps/src/SafeControllerService.cpp b/pps_ws/src/d_fall_pps/src/SafeControllerService.cpp index 1ea1f35e..de0ce9c4 100755 --- a/pps_ws/src/d_fall_pps/src/SafeControllerService.cpp +++ b/pps_ws/src/d_fall_pps/src/SafeControllerService.cpp @@ -31,7 +31,7 @@ #include <std_msgs/Int32.h> #define PI 3.1415926535 -#define RATE_CONTROLLER 0 +#define RATE_CONTROLLER 7 using namespace d_fall_pps; -- GitLab