mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-05-30 03:27:33 +08:00
Fix problems with master after stabilization and chibi merges (#3280)
Co-authored-by: Freek van Tienen <freek.v.tienen@gmail.com>
This commit is contained in:
committed by
GitHub
parent
41af453cd5
commit
4c97648080
@@ -31,7 +31,7 @@
|
||||
#include "firmwares/rotorcraft/stabilization/stabilization_attitude.h"
|
||||
#include "firmwares/rotorcraft/stabilization/stabilization_attitude_common_float.h"
|
||||
|
||||
extern stabilization_attitude_euler_float_init(void);
|
||||
extern void stabilization_attitude_euler_float_init(void);
|
||||
|
||||
extern struct FloatAttitudeGains stabilization_gains;
|
||||
extern struct FloatEulers stabilization_att_sum_err;
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
#include "firmwares/rotorcraft/stabilization/stabilization_attitude.h"
|
||||
#include "firmwares/rotorcraft/stabilization/stabilization_attitude_common_int.h"
|
||||
|
||||
extern stabilization_attitude_euler_int_init(void);
|
||||
extern void stabilization_attitude_euler_int_init(void);
|
||||
|
||||
extern struct Int32Eulers stabilization_att_sum_err;
|
||||
|
||||
|
||||
@@ -146,7 +146,7 @@ void stabilization_rate_run(bool in_flight, struct StabilizationSetpoint *rate_s
|
||||
cmd[COMMAND_ROLL] = stabilization_rate_fb_cmd.p;
|
||||
cmd[COMMAND_PITCH] = stabilization_rate_fb_cmd.q;
|
||||
cmd[COMMAND_YAW] = stabilization_rate_fb_cmd.r;
|
||||
cmd[COMMAND_THRUST] = th_sp_to_thrust_i(th, 0, THRUST_AXIS_Z);
|
||||
cmd[COMMAND_THRUST] = th_sp_to_thrust_i(thrust, 0, THRUST_AXIS_Z);
|
||||
|
||||
/* bound the result */
|
||||
BoundAbs(cmd[COMMAND_ROLL], MAX_PPRZ);
|
||||
|
||||
@@ -87,14 +87,20 @@ static inline void main_init(void)
|
||||
|
||||
|
||||
static inline void main_periodic(void)
|
||||
{
|
||||
|
||||
{
|
||||
// generated macro from airframe file
|
||||
AllActuatorsCommit();
|
||||
|
||||
// Downlink the actuators raw driver values
|
||||
int16_t v[ACTUATORS_NB] = {0};
|
||||
for (int i = 0; i < ACTUATORS_NB; i++) {
|
||||
v[i] = actuators[i].driver_val;
|
||||
}
|
||||
|
||||
|
||||
LED_PERIODIC();
|
||||
RunOnceEvery(100, {DOWNLINK_SEND_ALIVE(DefaultChannel, DefaultDevice, 16, MD5SUM);});
|
||||
RunOnceEvery(300, DOWNLINK_SEND_ACTUATORS(DefaultChannel, DefaultDevice, ACTUATORS_NB, actuators));
|
||||
RunOnceEvery(300, DOWNLINK_SEND_ACTUATORS(DefaultChannel, DefaultDevice, ACTUATORS_NB, v));
|
||||
|
||||
modules_periodic_task();
|
||||
}
|
||||
|
||||
@@ -43,8 +43,6 @@ extern bool force_forward;
|
||||
#endif
|
||||
|
||||
|
||||
extern float nav_max_deceleration_sp;
|
||||
|
||||
extern void nav_rotorcraft_hybrid_init(void);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -98,11 +98,18 @@ static inline void main_periodic(void)
|
||||
|
||||
SetActuatorsFromCommands(commands, 0);
|
||||
|
||||
// Downlink the actuators raw driver values
|
||||
int16_t v[ACTUATORS_NB] = {0};
|
||||
for (int i = 0; i < ACTUATORS_NB; i++) {
|
||||
v[i] = actuators[i].driver_val;
|
||||
}
|
||||
|
||||
|
||||
LED_PERIODIC();
|
||||
RunOnceEvery(512, {DOWNLINK_SEND_ALIVE(DefaultChannel, DefaultDevice, 16, MD5SUM);});
|
||||
RunOnceEvery(100, {DOWNLINK_SEND_RC(DefaultChannel, DefaultDevice, RADIO_CONTROL_NB_CHANNEL, radio_control.values);});
|
||||
RunOnceEvery(101, {DOWNLINK_SEND_COMMANDS(DefaultChannel, DefaultDevice, COMMANDS_NB, commands);});
|
||||
RunOnceEvery(102, {DOWNLINK_SEND_ACTUATORS(DefaultChannel, DefaultDevice, ACTUATORS_NB, actuators);});
|
||||
RunOnceEvery(102, {DOWNLINK_SEND_ACTUATORS(DefaultChannel, DefaultDevice, ACTUATORS_NB, v);});
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -272,6 +272,8 @@ let print_actuators_idx = fun out ->
|
||||
Hashtbl.iter (fun s (d, i) ->
|
||||
(* Set servo macro *)
|
||||
fprintf out "#define Set_%s_Servo(actuator_value_pprz) { \\\n" s;
|
||||
fprintf out " int32_t servo_value;\\\n";
|
||||
fprintf out " int32_t command_value;\\\n\\\n";
|
||||
fprintf out " actuators[SERVO_%s_IDX].pprz_val = ClipAbs( actuator_value_pprz, MAX_PPRZ); \\\n" s;
|
||||
fprintf out " command_value = actuator_value_pprz * (actuator_value_pprz>0 ? SERVO_%s_TRAVEL_UP_NUM : SERVO_%s_TRAVEL_DOWN_NUM); \\\n" s s;
|
||||
fprintf out " command_value /= actuator_value_pprz>0 ? SERVO_%s_TRAVEL_UP_DEN : SERVO_%s_TRAVEL_DOWN_DEN; \\\n" s s;
|
||||
@@ -434,8 +436,6 @@ let rec parse_section = fun out ac_id s ->
|
||||
fprintf out "}\n\n";
|
||||
(* print actuators from commands macro *)
|
||||
fprintf out "#define SetActuatorsFromCommands(values, AP_MODE) { \\\n";
|
||||
fprintf out " int32_t servo_value;\\\n";
|
||||
fprintf out " int32_t command_value;\\\n\\\n";
|
||||
fprintf out " int32_t actuator_value_pprz;\\\n\\\n";
|
||||
List.iter (parse_command_laws out) (Xml.children s);
|
||||
fprintf out " AllActuatorsCommit(); \\\n";
|
||||
|
||||
Reference in New Issue
Block a user