Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/MIUAV/vibe-coding-ros2 --skill px4-altitude-mode명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | px4-altitude-mode |
| description | PX4 高度保持模式技能 - 水平方向手动控制,垂直方向自动保持设定高度 |
| argument-hint | 高度模式 OR Altitude Mode OR 定高模式 OR PX4高度 |
| user-invocable | true |
水平方向由遥控器手动控制,垂直方向自动保持设定高度
当需要以下帮助时使用此技能:
altitude_mode:
roll: RC_roll_input → 目标Roll角 → 姿态控制 → 电机输出
pitch: RC_pitch_input → 目标Pitch角 → 姿态控制 → 电机输出
yaw: RC_yaw_input → 偏航角速率 → 电机输出
throttle: RC_throttle_input → 目标爬升率 → 高度控制器 → 电机输出
stabilization: ATTITUDE (姿态角稳定)
altitude_hold: ALTITUDE (自动保持高度)
position_hold: NONE (无水平位置保持)
| 特性 | 姿态模式 | 高度模式 |
|---|---|---|
| 姿态控制 | 手动姿态角 | 手动姿态角 |
| 高度控制 | 手动油门 | 自动高度保持 |
| 水平位置 | 无保持 | 无保持 |
| 操纵难度 | 中等 | 较易 |
| 适合场景 | 练习/机动 | 巡航/航拍 |
# 订阅话题
/fmu/out/vehicle_local_position: 本地位置
- x, y, z: 位置 (m)
- vx, vy, vz: 速度 (m/s)
/fmu/out/vehicle_global_position: 全局位置
/fmu/out/vehicle_local_position_setpoint: 位置设定点
/fmu/out/vehicle_attitude: 当前姿态
# 发布话题
/fmu/in/vehicle_command: 发送命令
# 订阅话题
/mavros/local_position/pose: 本地位置
/mavros/local_position/velocity: 速度
/mavros/imu/data: IMU数据
# 发布话题
/mavros/cmd/command: 发送命令
name: altitude_control_skill
description: 高度环控制开发
type: control
interface:
inputs:
- topic: /fmu/out/vehicle_local_position
- topic: /fmu/out/barometer_altitude
- topic: /fmu/out/rc_channels
outputs:
- topic: /fmu/in/vehicle_command
params:
# 高度控制参数
alt_control_p: {type: float, default: 1.0}
alt_control_i: {type: float, default: 0.1}
alt_control_d: {type: float, default: 0.05}
# 爬升率限制
climb_rate_max: {type: float, default: 3.0} # m/s
descent_rate_max: {type: float, default: 1.5} # m/s
control_laws:
throttle_from_climb_rate:
input: RC_throttle →
name: altitude_hold_skill
description: 定高飞行技能
type: flight
params:
target_altitude: {type: float, unit: m}
altitude_tolerance: {type: float, default: 0.5} # m
# 油门参数
hover_throttle: {type: float, default: 0.5} # 悬停油门
alt_offset: {type: float, default: 0.0} # 高度微调
| 参数 | 说明 | 典型值 |
|---|---|---|
MC_ALT_HOLD | 高度保持模式启用 | enabled |
MPC_ALT_HOLD | 最低保持高度 | 0.3 m |
MPC_Z_P | 高度位置P | 1.0 |
MPC_Z_VEL_P | 高度速度P | 1.0 |
MPC_Z_VEL_I | 高度速度I | 0.1 |
MPC_Z_VEL_D | 高度速度D | 0.05 |
MPC_TKO_RAMP_T | 起飞油门斜坡时间 | 1.0 s |
altitude_sources:
barometer:
priority: 1 # 默认
accuracy: ~1m
range_finder:
priority: 2 # 室内/低空
accuracy: ~0.1m
gps_altitude:
priority: 3 # 户外
accuracy: ~2m
vision:
priority: 4 # 室内定位
accuracy: ~0.05m
# 1. 起飞前检查
确认气压计已校准
确认高度源选择正确 (barometer/rangefinder)
检查 MPC_Z_* 参数
# 2. 地面测试
解锁 → 低油门 → 观察高度估计是否稳定
# 3. 飞行测试
起飞到 5m → 稳定悬停 → 观察高度保持
手动横移 → 观察高度是否有明显波动
performance:
altitude_hold_accuracy: ±0.5m (正常飞行)
altitude_hold_accuracy: ±0.2m (静止悬停)
climb_rate_response: < 0.5s (到63%)
disturbance_rejection: < 1.0m (风扰动)
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 高度漂移 | 气压计漂移 | 起飞前重新校准气压计 |
| 高度忽高忽低 | P/I参数不匹配 | 调整 MPC_Z_VEL_P/I |
| 起飞掉高 | 起飞油门不足 | 增加 MPC_TKO_RAMP_T |
| 高度响应迟钝 | D值过大 | 减小 MPC_Z_VEL_D |
| 低空高度不稳 | 超声波干扰 | 使用气压计代替测距仪 |
px4-stabilized-mode: 姿态模式(无高度保持)px4-position-mode: 位置模式(全自动保持)px4-stabilized-mode: 高度控制是位置控制的基础px4-mc-tuning: PID参数调整