Compare commits

..

3 Commits

Author SHA1 Message Date
Matthias Grob e13b56f806 Switch simulated solo to control allocation 2022-06-30 18:07:10 +02:00
Matthias Grob 203e2779b0 Switch default Iris in simulation to control allocation 2022-06-30 18:06:55 +02:00
Ryan Meagher f16ea921c2 drivers/barometer/invensense: fix icp10111 and icp10100
* fix icp so it compiles
* add icp10111 and icp10100 DEVTPYE
2022-06-29 21:22:10 -04:00
20 changed files with 76 additions and 68 deletions
@@ -9,4 +9,28 @@
. ${R}etc/init.d/rc.mc_defaults
set MIXER quad_w
param set-default SYS_CTRL_ALLOC 1
param set-default CA_AIRFRAME 0
param set-default CA_ROTOR_COUNT 4
param set-default CA_ROTOR0_PX 0.1515
param set-default CA_ROTOR0_PY 0.245
param set-default CA_ROTOR0_KM 0.05
param set-default CA_ROTOR1_PX -0.1515
param set-default CA_ROTOR1_PY -0.1875
param set-default CA_ROTOR1_KM 0.05
param set-default CA_ROTOR2_PX 0.1515
param set-default CA_ROTOR2_PY -0.245
param set-default CA_ROTOR2_KM -0.05
param set-default CA_ROTOR3_PX -0.1515
param set-default CA_ROTOR3_PY 0.1875
param set-default CA_ROTOR3_KM -0.05
param set-default PWM_MAIN_FUNC1 101
param set-default PWM_MAIN_FUNC2 102
param set-default PWM_MAIN_FUNC3 103
param set-default PWM_MAIN_FUNC4 104
set MIXER skip
set MIXER_AUX none
@@ -1,37 +0,0 @@
#!/bin/sh
#
# @name 3DR Iris Quadrotor SITL
#
# @type Quadrotor Wide
#
# @maintainer Julian Oes <julian@oes.ch>
#
. ${R}etc/init.d/rc.mc_defaults
param set-default SYS_CTRL_ALLOC 1
param set-default CA_AIRFRAME 0
param set-default CA_ROTOR_COUNT 4
param set-default CA_ROTOR0_PX 0.1515
param set-default CA_ROTOR0_PY 0.245
param set-default CA_ROTOR0_KM 0.05
param set-default CA_ROTOR1_PX -0.1515
param set-default CA_ROTOR1_PY -0.1875
param set-default CA_ROTOR1_KM 0.05
param set-default CA_ROTOR2_PX 0.1515
param set-default CA_ROTOR2_PY -0.245
param set-default CA_ROTOR2_KM -0.05
param set-default CA_ROTOR3_PX -0.1515
param set-default CA_ROTOR3_PY 0.1875
param set-default CA_ROTOR3_KM -0.05
param set-default PWM_MAIN_FUNC1 101
param set-default PWM_MAIN_FUNC2 102
param set-default PWM_MAIN_FUNC3 103
param set-default PWM_MAIN_FUNC4 104
set MIXER skip
set MIXER_AUX none
@@ -7,7 +7,31 @@
. ${R}etc/init.d/rc.mc_defaults
param set-default SYS_CTRL_ALLOC 1
param set-default CA_AIRFRAME 0
param set-default CA_ROTOR_COUNT 4
param set-default CA_ROTOR0_PX 0.145
param set-default CA_ROTOR0_PY 0.145
param set-default CA_ROTOR0_KM 0.05
param set-default CA_ROTOR1_PX -0.145
param set-default CA_ROTOR1_PY -0.145
param set-default CA_ROTOR1_KM 0.05
param set-default CA_ROTOR2_PX 0.145
param set-default CA_ROTOR2_PY -0.145
param set-default CA_ROTOR2_KM -0.05
param set-default CA_ROTOR3_PX -0.145
param set-default CA_ROTOR3_PY 0.145
param set-default CA_ROTOR3_KM -0.05
param set-default PWM_MAIN_FUNC1 101
param set-default PWM_MAIN_FUNC2 102
param set-default PWM_MAIN_FUNC3 103
param set-default PWM_MAIN_FUNC4 104
param set-default MC_PITCHRATE_P 0.1
param set-default MC_ROLLRATE_P 0.05
set MIXER quad_x
set MIXER skip
set MIXER_AUX none
@@ -33,7 +33,6 @@
px4_add_romfs_files(
10016_iris
10017_iris_ctrlalloc
10018_iris_foggy_lidar
10019_omnicopter
10020_if750a
-2
View File
@@ -64,7 +64,5 @@ float32[21] velocity_covariance
uint8 reset_counter
uint8 quality
# TOPICS vehicle_odometry vehicle_mocap_odometry vehicle_visual_odometry
# TOPICS estimator_odometry estimator_visual_odometry_aligned
+3
View File
@@ -0,0 +1,3 @@
menu "Invensense"
rsource "*/Kconfig"
endmenu #Invensense
@@ -32,7 +32,7 @@
############################################################################
px4_add_module(
MODULE drivers__invensense__icp10100
MODULE drivers__barometer__invensense__icp10100
MAIN icp10100
COMPILE_FLAGS
SRCS
@@ -233,7 +233,6 @@ ICP10100::RunImpl()
float b = (_pcal[0] - a) * (s1 + c);
float _pressure_Pa = a + b / (c + _raw_p);
const hrt_abstime nowx = hrt_absolute_time();
float temperature = _temperature_C;
float pressure = _pressure_Pa;
@@ -0,0 +1,7 @@
menuconfig DRIVERS_BAROMETER_INVENSENSE_ICP10100
bool "icp10100"
default n
---help---
Enable support for icp10100
@@ -32,7 +32,7 @@
############################################################################
px4_add_module(
MODULE drivers__invensense__icp10111
MODULE drivers__barometer__invensense__icp10111
MAIN icp10111
COMPILE_FLAGS
SRCS
@@ -0,0 +1,6 @@
menuconfig DRIVERS_BAROMETER_INVENSENSE_ICP10111
bool "icp10100"
default n
---help---
Enable support for icp10111
+3
View File
@@ -213,6 +213,9 @@
#define DRV_FLOW_DEVTYPE_PX4FLOW 0xB5
#define DRV_FLOW_DEVTYPE_PAA3905 0xB6
#define DRV_BARO_DEVTYPE_ICP10100 0xC0
#define DRV_BARO_DEVTYPE_ICP10111 0xC1
#define DRV_DEVTYPE_UNUSED 0xff
#endif /* _DRV_SENSOR_H */
+1 -3
View File
@@ -208,7 +208,6 @@ struct extVisionSample {
float angVar{}; ///< angular heading variance (rad**2)
VelocityFrame vel_frame = VelocityFrame::BODY_FRAME_FRD;
uint8_t reset_counter{};
uint8_t quality{}; ///< quality indicator between 0 and 100
};
struct dragSample {
@@ -330,14 +329,13 @@ struct parameters {
float range_kin_consistency_gate{1.0f}; ///< gate size used by the range finder kinematic consistency check
// vision position fusion
int32_t ev_quality_minimum{0}; ///< vision minimum acceptable quality integer
float ev_vel_innov_gate{3.0f}; ///< vision velocity fusion innovation consistency gate size (STD)
float ev_pos_innov_gate{5.0f}; ///< vision position fusion innovation consistency gate size (STD)
// optical flow fusion
float flow_noise{0.15f}; ///< observation noise for optical flow LOS rate measurements (rad/sec)
float flow_noise_qual_min{0.5f}; ///< observation noise for optical flow LOS rate measurements when flow sensor quality is at the minimum useable (rad/sec)
int32_t flow_qual_min{1}; ///< minimum acceptable quality integer from the flow sensor
int32_t flow_qual_min{1}; ///< minimum acceptable quality integer from the flow sensor
float flow_innov_gate{3.0f}; ///< optical flow fusion innovation consistency gate size (STD)
// these parameters control the strictness of GPS quality checks used to determine if the GPS is
+1 -1
View File
@@ -201,7 +201,7 @@ void Ekf::controlFusionModes()
void Ekf::controlExternalVisionFusion()
{
// Check for new external vision data
if (_ev_data_ready && _ev_sample_delayed.quality >= _params.ev_quality_minimum) {
if (_ev_data_ready) {
bool reset = false;
-4
View File
@@ -120,7 +120,6 @@ EKF2::EKF2(bool multi_mode, const px4::wq_config_t &config, bool replay_mode):
_param_ekf2_rng_a_igate(_params->range_aid_innov_gate),
_param_ekf2_rng_qlty_t(_params->range_valid_quality_s),
_param_ekf2_rng_k_gate(_params->range_kin_consistency_gate),
_param_ekf2_ev_qmin(_params->ev_quality_minimum),
_param_ekf2_evv_gate(_params->ev_vel_innov_gate),
_param_ekf2_evp_gate(_params->ev_pos_innov_gate),
_param_ekf2_of_n_min(_params->flow_noise),
@@ -1701,9 +1700,6 @@ bool EKF2::UpdateExtVisionSample(ekf2_timestamps_s &ekf2_timestamps, vehicle_odo
// use timestamp from external computer, clocks are synchronized when using MAVROS
ev_data.time_us = ev_odom.timestamp_sample;
ev_data.reset_counter = ev_odom.reset_counter;
ev_data.quality = ev_odom.quality;
if (new_ev_odom) {
_ekf.setExtVisionData(ev_data);
}
+2 -2
View File
@@ -469,8 +469,8 @@ private:
_param_ekf2_rng_k_gate, ///< range finder kinematic consistency gate size (STD)
// vision estimate fusion
(ParamInt<px4::params::EKF2_EV_NOISE_MD>) _param_ekf2_ev_noise_md, ///< determine source of vision observation noise
(ParamExtInt<px4::params::EKF2_EV_QMIN>) _param_ekf2_ev_qmin,
(ParamInt<px4::params::EKF2_EV_NOISE_MD>)
_param_ekf2_ev_noise_md, ///< determine source of vision observation noise
(ParamFloat<px4::params::EKF2_EVP_NOISE>)
_param_ekf2_evp_noise, ///< default position observation noise for exernal vision measurements (m)
(ParamFloat<px4::params::EKF2_EVV_NOISE>)
-10
View File
@@ -721,16 +721,6 @@ PARAM_DEFINE_FLOAT(EKF2_MIN_RNG, 0.1f);
*/
PARAM_DEFINE_INT32(EKF2_EV_NOISE_MD, 0);
/**
* Vision minimum quality
*
* @group EKF2
* @min 0
* @max 100
* @decimal 1
*/
PARAM_DEFINE_INT32(EKF2_EV_QMIN, 0);
/**
* Measurement noise for vision position observations used to lower bound or replace the uncertainty included in the message
*
-1
View File
@@ -1415,7 +1415,6 @@ MavlinkReceiver::handle_message_odometry(mavlink_message_t *msg)
}
odometry.reset_counter = odom.reset_counter;
odometry.quality = odom.quality;
/**
* Supported local frame of reference is MAV_FRAME_LOCAL_NED or MAV_FRAME_LOCAL_FRD
-1
View File
@@ -160,7 +160,6 @@ private:
}
msg.reset_counter = odom.reset_counter;
msg.quality = odom.quality;
mavlink_msg_odometry_send_struct(_mavlink->get_channel(), &msg);