From a8dc77fd84fa647973925f30c971f881caf70d4b Mon Sep 17 00:00:00 2001 From: zbr Date: Sat, 16 Oct 2021 17:49:14 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=9D=A0=E6=9C=BA=E4=BF=9D=E6=8A=A4?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=A7=92=E5=BA=A6=E5=92=8C=E9=A3=9E=E8=A1=8C?= =?UTF-8?q?=E9=80=9F=E5=BA=A6=E5=88=A4=E6=96=AD,=E8=A7=92=E5=BA=A6?= =?UTF-8?q?=E8=BF=87=E5=A4=A7=E6=97=B6=E5=8F=96=E6=B6=88=E9=80=9F=E5=BA=A6?= =?UTF-8?q?=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ArduCopter/crash_check.cpp | 26 ++++++++++++++++++++++++-- ArduCopter/version.h | 2 +- hexa-zrv4.sh | 2 +- 版本说明.txt | 38 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 64 insertions(+), 4 deletions(-) diff --git a/ArduCopter/crash_check.cpp b/ArduCopter/crash_check.cpp index f2e03327cc..80689b6cb2 100644 --- a/ArduCopter/crash_check.cpp +++ b/ArduCopter/crash_check.cpp @@ -1,9 +1,12 @@ #include "Copter.h" // Code to detect a crash main ArduCopter code -#define CRASH_CHECK_TRIGGER_SEC 2 // 2 seconds inverted indicates a crash +#define CRASH_CHECK_TRIGGER_SEC 5 // 2 seconds inverted indicates a crash #define CRASH_CHECK_ANGLE_DEVIATION_DEG 30.0f // 30 degrees beyond angle max is signal we are inverted #define CRASH_CHECK_ACCEL_MAX 3.0f // vehicle must be accelerating less than 3m/s/s to be considered crashed +#define CRASH_CHECK_ANGLE_MIN_DEG 15.0f // vehicle must be leaning at least 15deg to trigger crash check +#define CRASH_CHECK_ANGLE_MAX_DEG 90.0f // 超过这个角度,不做速度限制判断 +#define CRASH_CHECK_SPEED_MAX 1.0f // vehicle must be moving at less than 2m/s to trigger crash check // Code to detect a thrust loss main ArduCopter code #define THRUST_LOSS_CHECK_TRIGGER_SEC 1 // 1 second descent while level and high throttle indicates thrust loss @@ -49,6 +52,13 @@ void Copter::crash_check() return; } + // check for lean angle over 15 degrees 角度判断,角度小于稳定飞行值退出 + const float lean_angle_deg = degrees(acosf(ahrs.cos_roll()*ahrs.cos_pitch())); + if (lean_angle_deg <= CRASH_CHECK_ANGLE_MIN_DEG) { + crash_counter = 0; + return; + } + // check for angle error over 30 degrees const float angle_error = attitude_control->get_att_error_angle_deg(); if (angle_error <= CRASH_CHECK_ANGLE_DEVIATION_DEG) { @@ -56,6 +66,14 @@ void Copter::crash_check() return; } + // check for speed under 10m/s (if available) 增加速度判断 + Vector3f vel_ned; + if (ahrs.get_velocity_NED(vel_ned)) { + if(vel_ned.length() >= CRASH_CHECK_SPEED_MAX && lean_angle_deg <= CRASH_CHECK_ANGLE_MAX_DEG){ + crash_counter = 0; + return; + } + } // we may be crashing crash_counter++; @@ -67,7 +85,11 @@ void Copter::crash_check() // send message to gcs gcs().send_text(MAV_SEVERITY_EMERGENCY,"坠机:锁定");//Crash: Disarming // disarm motors - copter.arming.disarm(); + if(g.zr_use_rc != 2){ + copter.arming.disarm(); + }else{ + crash_counter = 0; + } } } diff --git a/ArduCopter/version.h b/ArduCopter/version.h index a9aa7d0aba..889d5d16b9 100644 --- a/ArduCopter/version.h +++ b/ArduCopter/version.h @@ -6,7 +6,7 @@ #include "ap_version.h" -#define THISFIRMWARE "ZRUAV v4.0.16-RC2" //"ArduCopter V4.0.0" +#define THISFIRMWARE "ZRUAV v4.0.16-RC3" //"ArduCopter V4.0.0" // the following line is parsed by the autotest scripts #define FIRMWARE_VERSION 4,0,16,FIRMWARE_VERSION_TYPE_OFFICIAL diff --git a/hexa-zrv4.sh b/hexa-zrv4.sh index 76d0ab11ce..b935e1f9e4 100755 --- a/hexa-zrv4.sh +++ b/hexa-zrv4.sh @@ -1,3 +1,3 @@ ./waf configure --board zr-hexa ./waf copter -cp ./build/zr-hexa/bin/arducopter.apj /mnt/f/_01-work/100=data/固件/zr-v4/六轴_v4.0.16-rc2.px4 +cp ./build/zr-hexa/bin/arducopter.apj /mnt/f/_01-work/100=data/固件/zr-v4/六轴_v4.0.16-rc3.px4 diff --git a/版本说明.txt b/版本说明.txt index 181c7eb1ca..ff11f4d58f 100644 --- a/版本说明.txt +++ b/版本说明.txt @@ -1,3 +1,41 @@ +zr-flow_v4.2 + + 测流合并到zr-v4-base v4.0.15-RC6 + +* v4.0.16 + + * RC3 + + * 坠机保护优化,增加速度和角度限制 + * `g.zr_use_rc != 2`用于测试,只提示,不执行`disarm()` + * RC2 + + * 避障增加avoid.get_zr_mode() = 3时可以用Loiter模式测试自动避障 + * 降落速度限制 + * 电池损耗算法 + * `AVDv6: avoid.get_zr_mode() = 3时可以用Loiter模式测试自动避障` + * RC1 + + * 增加避障 + +* v4.0.15 + + * RC7 + + * 合并测流 + * RC6 + + * 增加到期时间全部参数zr_reg_date + * 增加M66hwdef,sysid类型改成<6启用参数配置 + * RC5 + + * 新增参数设置是否自适应 + * 固件版本前缀修改 + * 固件名类型判断调整,根据hwdef选择,如果没有则用sysid_type + + + + zr-v4.0: 经过飞行测试,稳定版本 zr-v4.0-dev: 新添加的功能,并入主分支前先验证 From 27fe2c9527cf9e84c2f80e6aedb15d4c44ea26b8 Mon Sep 17 00:00:00 2001 From: zbr Date: Fri, 5 Nov 2021 14:58:53 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=B7=BB=E5=8A=A0release=20note=EF=BC=8Cbu?= =?UTF-8?q?ild=20all?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- all.sh | 20 ++++++++++++++++++++ 版本说明.txt => release_note.txt | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100755 all.sh rename 版本说明.txt => release_note.txt (96%) diff --git a/all.sh b/all.sh new file mode 100755 index 0000000000..049f9debe8 --- /dev/null +++ b/all.sh @@ -0,0 +1,20 @@ +./waf configure --board rs100 +./waf clean +./waf copter +cp ./build/rs100/bin/arducopter.apj /mnt/f/_01-work/100\=data/固件/zr-v4/wsl/致睿rs100-v4.0.16-RC3.px4 +./waf configure --board rs100h +./waf clean +./waf copter +cp ./build/rs100h/bin/arducopter.apj /mnt/f/_01-work/100\=data/固件/zr-v4/wsl/致睿rs100h-v4.0.16-RC3.px4 +./waf configure --board d100 +./waf clean +./waf copter +cp ./build/d100/bin/arducopter.apj /mnt/f/_01-work/100\=data/固件/zr-v4/wsl/中海达d100-v4.0.16-RC3.px4 +./waf configure --board d100h +./waf clean +./waf copter +cp ./build/d100h/bin/arducopter.apj /mnt/f/_01-work/100\=data/固件/zr-v4/wsl/中海达d100h-v4.0.16-RC3.px4 +./waf configure --board zr-hexa +./waf clean +./waf copter +cp ./build/zr-hexa/bin/arducopter.apj /mnt/f/_01-work/100\=data/固件/zr-v4/wsl/六轴m66-v4.0.16-RC3.px4 diff --git a/版本说明.txt b/release_note.txt similarity index 96% rename from 版本说明.txt rename to release_note.txt index ff11f4d58f..13a7355e04 100644 --- a/版本说明.txt +++ b/release_note.txt @@ -5,7 +5,7 @@ zr-flow_v4.2 * v4.0.16 * RC3 - + * 坠机锁定增加侧翻时取消速度判断 * 坠机保护优化,增加速度和角度限制 * `g.zr_use_rc != 2`用于测试,只提示,不执行`disarm()` * RC2 From 0c1cb9cb482ff7558b61c50136f347c4207982e1 Mon Sep 17 00:00:00 2001 From: zbr Date: Fri, 5 Nov 2021 15:07:56 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=9D=A0=E6=9C=BA=E4=BF=9D=E6=8A=A4?= =?UTF-8?q?=E8=B0=83=E6=95=B4=EF=BC=8C=E8=AE=A1=E6=97=B63s=EF=BC=8C?= =?UTF-8?q?=E5=8F=96=E6=B6=88=E5=B1=8F=E8=94=BDdisarm?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ArduCopter/crash_check.cpp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/ArduCopter/crash_check.cpp b/ArduCopter/crash_check.cpp index 80689b6cb2..0b3471f500 100644 --- a/ArduCopter/crash_check.cpp +++ b/ArduCopter/crash_check.cpp @@ -1,7 +1,7 @@ #include "Copter.h" // Code to detect a crash main ArduCopter code -#define CRASH_CHECK_TRIGGER_SEC 5 // 2 seconds inverted indicates a crash +#define CRASH_CHECK_TRIGGER_SEC 3 // 3 seconds inverted indicates a crash #define CRASH_CHECK_ANGLE_DEVIATION_DEG 30.0f // 30 degrees beyond angle max is signal we are inverted #define CRASH_CHECK_ACCEL_MAX 3.0f // vehicle must be accelerating less than 3m/s/s to be considered crashed #define CRASH_CHECK_ANGLE_MIN_DEG 15.0f // vehicle must be leaning at least 15deg to trigger crash check @@ -85,11 +85,7 @@ void Copter::crash_check() // send message to gcs gcs().send_text(MAV_SEVERITY_EMERGENCY,"坠机:锁定");//Crash: Disarming // disarm motors - if(g.zr_use_rc != 2){ - copter.arming.disarm(); - }else{ - crash_counter = 0; - } + copter.arming.disarm(); } }