mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-21 08:13:35 +08:00
multirotor_motor_limits only publish for MC
This commit is contained in:
committed by
Nuno Marques
parent
9cacd3f994
commit
26f00609ac
@@ -64,6 +64,7 @@
|
||||
#include <px4_tasks.h>
|
||||
#include <systemlib/circuit_breaker.h>
|
||||
#include <systemlib/err.h>
|
||||
#include <systemlib/mixer/mixer.h>
|
||||
#include <systemlib/param/param.h>
|
||||
#include <systemlib/perf_counter.h>
|
||||
#include <systemlib/systemlib.h>
|
||||
@@ -161,27 +162,12 @@ private:
|
||||
struct actuator_controls_s _actuators; /**< actuator controls */
|
||||
struct actuator_armed_s _armed; /**< actuator arming status */
|
||||
struct vehicle_status_s _vehicle_status; /**< vehicle status */
|
||||
struct multirotor_motor_limits_s _motor_limits; /**< motor limits */
|
||||
struct mc_att_ctrl_status_s _controller_status; /**< controller status */
|
||||
struct battery_status_s _battery_status; /**< battery status */
|
||||
struct sensor_gyro_s _sensor_gyro; /**< gyro data before thermal correctons and ekf bias estimates are applied */
|
||||
struct sensor_correction_s _sensor_correction; /**< sensor thermal corrections */
|
||||
|
||||
union {
|
||||
struct {
|
||||
uint16_t motor_pos : 1; // 0 - true when any motor has saturated in the positive direction
|
||||
uint16_t motor_neg : 1; // 1 - true when any motor has saturated in the negative direction
|
||||
uint16_t roll_pos : 1; // 2 - true when a positive roll demand change will increase saturation
|
||||
uint16_t roll_neg : 1; // 3 - true when a negative roll demand change will increase saturation
|
||||
uint16_t pitch_pos : 1; // 4 - true when a positive pitch demand change will increase saturation
|
||||
uint16_t pitch_neg : 1; // 5 - true when a negative pitch demand change will increase saturation
|
||||
uint16_t yaw_pos : 1; // 6 - true when a positive yaw demand change will increase saturation
|
||||
uint16_t yaw_neg : 1; // 7 - true when a negative yaw demand change will increase saturation
|
||||
uint16_t thrust_pos : 1; // 8 - true when a positive thrust demand change will increase saturation
|
||||
uint16_t thrust_neg : 1; // 9 - true when a negative thrust demand change will increase saturation
|
||||
} flags;
|
||||
uint16_t value;
|
||||
} _saturation_status;
|
||||
MultirotorMixer::saturation_status _saturation_status{};
|
||||
|
||||
perf_counter_t _loop_perf; /**< loop performance counter */
|
||||
perf_counter_t _controller_latency_perf;
|
||||
@@ -415,13 +401,10 @@ MulticopterAttitudeControl::MulticopterAttitudeControl() :
|
||||
_actuators{},
|
||||
_armed{},
|
||||
_vehicle_status{},
|
||||
_motor_limits{},
|
||||
_controller_status{},
|
||||
_battery_status{},
|
||||
_sensor_gyro{},
|
||||
_sensor_correction{},
|
||||
|
||||
_saturation_status{},
|
||||
/* performance counters */
|
||||
_loop_perf(perf_alloc(PC_ELAPSED, "mc_att_control")),
|
||||
_controller_latency_perf(perf_alloc_once(PC_ELAPSED, "ctrl_latency")),
|
||||
@@ -784,8 +767,10 @@ MulticopterAttitudeControl::vehicle_motor_limits_poll()
|
||||
orb_check(_motor_limits_sub, &updated);
|
||||
|
||||
if (updated) {
|
||||
orb_copy(ORB_ID(multirotor_motor_limits), _motor_limits_sub, &_motor_limits);
|
||||
_saturation_status.value = _motor_limits.saturation_status;
|
||||
multirotor_motor_limits_s motor_limits = {};
|
||||
orb_copy(ORB_ID(multirotor_motor_limits), _motor_limits_sub, &motor_limits);
|
||||
|
||||
_saturation_status.value = motor_limits.saturation_status;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user