ardupilot hardware safety switch

Ardupilot 硬件安全开关是用于控制飞行器电机和舵机输出的重要部件,可有效防止意外启动,保障飞行安全。以下是其相关介绍:

功能作用:安全开关用于启用或禁用电机和伺服的输出,控制飞行器的 “安全” 状态。处于安全状态时,电机通常无法运行,伺服输出的 PWM 被禁用,还会产生预解锁错误条件以防止意外解锁。但在飞机的手动模式下,若强制解锁且brd_safety_mask启用了控制电机的输出,电机仍可运行。
LED 状态指示:
持续闪烁:表示系统正在初始化。
间歇性闪烁:说明系统已准备就绪,但处于 “安全” 状态。此时按下安全开关,若飞行器已解锁,可使能电机和控制面的输出;若未解锁,可取消阻止解锁的预解锁错误条件。
常亮:意味着安全开关已被按下,飞行器解锁后,电机和舵机能够移动。
参数配置:
brd_safety_def:用于禁用安全开关,将其设为 0 可用于未配备安全开关的系统(旧版本固件中为brd_safety_enable)。
brd_safety_option:此为比特掩码,可控制安全按钮的行为,如控制安全按钮是否能启用或禁用 “安全” 状态,以及按钮是仅在未解锁时激活,还是在解锁状态下也能生效等。默认情况下,按钮仅在未解锁时可进入或退出 “安全” 状态。
brd_safety_mask:可设置哪些单独的通道在安全开关作用下保持启用,这样能在地面进行有限的控制面运动,以检查其是否正常工作,但在所有稳定飞行模式下,电机输出仍会保持禁用。
特殊用途:如果在自动驾驶仪通电后的最初几秒按住安全开关,若自动驾驶仪包含 IOM CU(输入输出控制单元),则会重新加载 I/O 固件。这通常在固件上传后启动时听到 “启动失败” 声音等罕见情况下需要。

brd_safety_def:用于禁用安全开关,将其设为 0

现在是什么情况mavproxy_venv)12957488710@raspberrypi:~ 6 mavproxy.py --master=/dev/ttyACMO- -baudrate=115200 -0Ut=U0D:0 .0:1455G ARNTNG: You should uninstaModemManager as it confticts with APM and Pixhawk connect /dev/ttyAcMo source_system=255 ailed to load module: No module named 'cmdlong’, Use 'set moddebug 3’ in the MAvProxy console to enable traceback Failed to load module: No module named 'terrain', use 'set moddebug 3’ in the MAvProxy console to enable traceback Log Directory: Telemetry log: mav.tlog Waiting for heartbeat from /dev/ttyACMO MAV> Detected vehicle 1:1 on link o online system 1 STABILIZE> Mode STABILIZE PreArm:check firmware Or FRAME CLASS PreArm:Throttle below Failsafe Hardware safety switch PreArm: 3D Accel calibration needed reArm: Compass not calibrated eArm: check firmware Or FRAME_CLASS Throttle below Failsafe eArm Hardware safety switch 3D Accel calibration needed compass not calibrated check firmware Or FRAME_CLASS Throttle below Failsafe Haraware safety switch 3D Accel calibration needed YeAYm reArm Throttle beloW Failsafe safety switch ceArm: Hardware PreArm:3D Accel calibration needed PreArm:compass not calibrated Arducopter V3.6.7(38b8af17) chibios:d2030d88 AP : fmuV3 002A0036 31385112 33363933 AP : Frame: UNKNOWN PreArm:check firmware Or FRAME_CLASS AP : AP: PreArm: Throttle below Failsafe AP : PreArm:Hardware safety switch P ! PreArm:3D Accel calibration needed AP:PreArm:compass not calibrated Received 811 parameters Saved 811 parameters to mav.parm fence breach height 44 AP:PreArm:check firmware Or FRAME CLASS Throttle below Failsafe AP : PreArm: AP : PreArm: Hardware safety switch PreArm: 3D Accel calibration needed PreArm: Compass not calibrated check firmware Or FRAME_CLASS PreArm: PreArm : Throttle below Failsafe safety switch Hardware PreArm: 3D Accel calibration needed reArm : PreArm: Compass not calibrated check firmware Or FRAME_CLASS PreArm: PreArm: Throttle below Failsafe PreArm: Hardware safety switch 3D Accel calibration needed PreArm: reArm:compass not calibrated AP:PreArm:check firmware Or FRAME_CLASS PreArm: Throttle below Failsafe PreArm:Hardware safety switch 3D Accel calibration needed PreArm: not calibrated PreArm ComDasS
03-25
<think>好的,我现在需要帮用户解决他们在运行MAVProxy时遇到的问题。首先,用户提供的日志显示了很多错误信息,我需要逐一分析这些错误的原因,并给出相应的解决方案。 首先,用户运行命令时可能有拼写错误。例如,用户输入的是--master=/dev/ttyACMO-,这里的“ttyACMO”应该是“ttyACM0”,即数字0而不是字母O。同样,波特率参数写成-baudrate=115200,而正确的应该是--baudrate,前面有两个短横线。输出参数中的-0Ut=U0D:0.0:1455G也存在明显的拼写错误,应该是--out=udp:0.0.0.0:14550。这些拼写错误可能导致MAVProxy无法正确识别设备或参数,从而连接失败。 接下来,用户收到警告说需要卸载ModemManager,因为会和APM、Pixhawk冲突。ModemManager是Linux上的一个服务,用于管理移动宽带设备,但它有时会占用串口设备,导致飞控无法正常通信。所以需要检查系统是否安装了ModemManager,并按照提示卸载或禁用。 然后,日志中提到无法加载模块“cmdlong”和“terrain”,提示没有这些模块。这可能是因为用户的MAVProxy环境缺少某些依赖库或模块。需要确认是否安装了正确的MAVProxy版本,或者是否在虚拟环境中缺少这些模块。用户可能需要重新安装MAVProxy,或者安装额外的依赖包。 接着是飞控的PreArm检查失败,显示多个问题:固件或框架类别检查失败、油门低于故障保护值、硬件安全开关未关闭、3D加速度计未校准、罗盘未校准。这些是飞控启动前的自检项目,任何一个不通过都会导致无法解锁。用户需要连接地面站(如Mission Planner或QGroundControl)进行传感器校准,检查故障保护设置,关闭安全开关,并确认飞控的固件和框架类型是否正确设置。 此外,日志中显示飞控运行的是ArduCopter V3.6.7,这是一个较旧的版本,可能存在兼容性问题。建议用户升级到更新的固件版本,同时确认飞控的硬件型号是否支持当前固件。 用户的环境是在树莓派上使用虚拟环境mavproxy_venv,可能存在环境配置问题。需要检查虚拟环境中是否正确安装了所有依赖项,特别是与MAVProxy相关的模块,如pymavlink和pyserial。 最后,用户可能还需要检查物理连接,确保飞控通过USB正确连接到树莓派,设备权限是否正确,是否有其他进程占用了串口设备,以及波特率设置是否与飞控的串口配置一致。 总结起来,解决步骤包括:纠正命令中的拼写错误,卸载ModemManager,安装缺失的模块,进行飞控传感器校准,检查安全开关和故障保护设置,升级固件,确认环境配置,以及检查硬件连接和权限。需要一步步引导用户完成这些操作,确保每个问题都得到解决。</think>--- ### **问题诊断与解决方案** 根据你提供的日志,主要存在**设备连接异常、模块缺失、飞控预解锁检查失败**三类问题。以下是详细分析和解决方法: --- #### **一、设备连接问题** 1. **设备名拼写错误** 日志中显示 `connect /dev/ttyAcMo`,但正确设备名应为 `/dev/ttyACM0`(数字 `0`,而非字母 `O`)。 - **错误命令**: ```bash mavproxy.py --master=/dev/ttyACMO- -baudrate=115200 -0Ut=U0D:0.0:1455G ``` - **修正后命令**: ```bash mavproxy.py --master=/dev/ttyACM0 --baudrate=115200 --out=udp:0.0.0.0:14550 ``` - **关键修正点**: - 设备名:`/dev/ttyACM0` → **字母 O 改为数字 0** - 参数格式:`--baudrate` 和 `--out` → **使用双短横线** - 输出格式:`udp:0.0.0.0:14550` → **字母大小写敏感** 2. **ModemManager 冲突警告** 日志提示 `You should uninstall ModemManager`,该服务会占用串口导致通信中断。 - **解决方法**: ```bash sudo apt-get purge modemmanager # 卸载 ModemManager sudo reboot # 重启生效 ``` --- #### **二、模块缺失问题** 日志报错 `No module named 'cmdlong'` 和 `No module named 'terrain'`,表明 MAVProxy 依赖的模块未安装。 - **原因**: - 虚拟环境(`mavproxy_venv`)未正确配置依赖 - MAVProxy 安装不完整 - **解决方案**: 1. **重新安装 MAVProxy 及依赖**: ```bash # 激活虚拟环境(假设已创建) source mavproxy_venv/bin/activate # 安装最新版 MAVProxy pip install mavproxy --upgrade # 安装必要依赖 pip install pymavlink pyserial ``` 2. **验证模块加载**: 启动 MAVProxy 后,输入 `module list`,检查 `cmdlong` 和 `terrain` 是否已加载。 --- #### **三、飞控预解锁检查失败** 日志中重复出现 `PreArm` 错误,具体问题包括: 1. **3D加速度计未校准** 2. **罗盘未校准** 3. **硬件安全开关未关闭** 4. **油门杆未归零(低于故障保护值)** 5. **固件或框架类型检查失败** - **解决步骤**: 1. **连接地面站校准传感器** - 使用 **Mission Planner** 或 **QGroundControl** 进行以下操作: - **加速度计校准**:`初始设置 → 传感器校准 → 校准加速度计` - **罗盘校准**:`初始设置 → 传感器校准 → 校准罗盘` 2. **关闭硬件安全开关** - 飞控上的物理安全开关需拨到“解锁”状态(通常为红色按钮或拨动开关)。 3. **检查油门位置** - 遥控器油门杆需置于最低位置(0%)。 4. **确认飞控固件与框架类型** - 日志显示 `Frame: UNKNOWN`,需在参数列表中设置 `FRAME_CLASS`(例如四轴为 `1`)。 - 通过地面站修改参数:`配置/调试 → 全部参数表 → FRAME_CLASS`。 --- ### **完整操作流程** 1. **修正 MAVProxy 启动命令**: ```bash mavproxy.py --master=/dev/ttyACM0 --baudrate=115200 --out=udp:0.0.0.0:14550 ``` 2. **卸载 ModemManager**: ```bash sudo apt-get purge modemmanager && sudo reboot ``` 3. **校准飞控传感器**: - 加速度计、罗盘校准(通过地面站) - 确认安全开关已关闭 4. **检查飞控参数**: - 设置 `FRAME_CLASS` 为正确值(如四轴:`1`) - 检查 `SERIAL1_BAUD` 是否与 MAVProxy 波特率一致(`115200`) 5. **验证解锁条件**: - 油门归零 - 无 `PreArm` 报错 --- ### **附:关键日志解析** | 日志信息 | 含义 | 解决方案 | |---------|------|----------| | `Failed to load module: cmdlong` | 命令扩展模块缺失 | 重新安装 MAVProxy | | `PreArm: 3D Accel calibration needed` | 加速度计未校准 | 地面站校准 | | `PreArm: Hardware safety switch` | 安全开关未关闭 | 拨动飞控安全开关 | | `Frame: UNKNOWN` | 框架类型未设置 | 修改 `FRAME_CLASS` 参数 | --- ### **最终建议** - 优先执行传感器校准和参数配置,再尝试重新连接 MAVProxy。 - 若问题持续,检查飞控固件是否为最新版(ArduPilot 或 PX4),必要时升级固件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值