# hx_adrc_controller **Repository Path**: drone1024/hx_adrc_controller ## Basic Information - **Project Name**: hx_adrc_controller - **Description**: hx_adrc_controller - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-28 - **Last Updated**: 2025-11-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # HX ADRC Controller ## 概述 基于 **AMESO** (Augmented Multi-Error Extended State Observer) 的自适应干扰拒绝控制器。 为无人机精确着陆提供高性能的姿态和位置控制。 支持三种控制策略: - **PID 控制器**: 传统比例-积分-微分控制 - **UDE 控制器**: 干扰估计和补偿 - **AMESO-ADRC**: 高级自适应控制(**推荐**) ## 关键特性 ✅ **AMESO-ADRC算法**:包含跟踪微分器、自适应模型和扩展状态观察器 ✅ **混合XY/Z控制**:XY轴使用PID,Z轴使用ADRC ✅ **9个基函数自适应**:利用正弦余弦函数学习系统特性 ✅ **安全保护**:推力限制 [0.1, 0.9],姿态角限制 ≤50° ✅ **数值稳定性**:完整的NaN/Inf和除零防护 ## 系统要求 - **OS**: Ubuntu 20.04 LTS - **ROS**: Noetic - **Compiler**: GCC 9.3+ (C++14) - **依赖**: Eigen3, Boost, ROS dev tools ## 编译 ```bash # 克隆到工作空间 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone https://gitee.com//hx_adrc_controller.git # 编译 cd ~/catkin_ws catkin_make -DCATKIN_WHITELIST_PACKAGES="hx_adrc_controller" # 激活环境 source devel/setup.bash ``` ## 快速开始 ### 启动控制器 ```bash # AMESO-ADRC (推荐) roslaunch hx_adrc_controller hx_controller.launch controller_type:=2 # 或使用PID roslaunch hx_adrc_controller hx_controller.launch controller_type:=0 # 或使用UDE roslaunch hx_adrc_controller hx_controller.launch controller_type:=1 ``` ### 运行SITL测试 见 [TESTING.md](TESTING.md) ## 参数配置 所有参数在 `config/hx_params.yaml` 中定义,包括: - **ameso_gain**: ADRC增益参数 (l0, l1, l2, l3, l4, eps, alpha等) - **sliding_mode**: 滑动模式参数 (k, k1, k2, c1, c2等) - **adaptive_model**: 自适应模型参数 (lambda, sigma, omega_star等) - **pid_gain**: PID参数 (Kp, Ki, Kd) 详见 config/hx_params.yaml 中的详细注释。 ## 消息接口 ### 订阅话题 | 话题 | 消息类型 | 频率 | 说明 | |------|----------|------|------| | `/mavros/local_position/odom` | nav_msgs/Odometry | 50Hz | 当前位置和速度 | | `/hx_controller/desired_position` | geometry_msgs/PoseStamped | 可变 | 目标位置 | | `/mavros/state` | mavros_msgs/State | 10Hz | 飞控状态 (OFFBOARD检查) | ### 发布话题 | 话题 | 消息类型 | 频率 | 说明 | |------|----------|------|------| | `/mavros/setpoint_raw/attitude` | mavros_msgs/AttitudeTarget | 50Hz | 姿态和推力指令 | | `/hx_controller/debug_info` | std_msgs/Float64MultiArray | 50Hz | 调试信息 (16字段) | ## 安全性 ✅ **SAFETY FIX 1**: 地面效应模型零除保护 ✅ **SAFETY FIX 2**: 姿态角数值稳定性 (asin/atan保护) ✅ **P1 FIX 4**: ESO低通滤波减少噪声 ✅ **P1 FIX 5**: 推力饱和反馈控制 详见 docs/SAFETY.md ## 性能指标 ### SITL悬停测试 | 指标 | 目标 | 实现 | |------|------|------| | 位置误差(RMS) | <8cm | ✅ | | 速度误差(RMS) | <8cm/s | ✅ | | 推力振荡 | <±8% | ✅ | | 响应时间 | ~3s | ✅ | ## 文档 - [INSTALL.md](INSTALL.md) - 详细安装指南 - [TESTING.md](TESTING.md) - 测试指南和预期结果 - docs/PARAMETERS.md - 参数详解 - docs/THEORY.md - AMESO和ADRC理论 - docs/SAFETY.md - 安全性和修复说明 ## 故障排查 ### 编译失败 ```bash # 清理并重新编译 cd ~/catkin_ws rm -rf build devel catkin_make -DCATKIN_WHITELIST_PACKAGES="hx_adrc_controller" ``` ### SITL无法启动 ```bash # 检查PX4 cd ~/PX4-Autopilot make px4_sitl gazebo ``` ## 相关论文 - [引用AMESO论文] - [引用ADRC论文] ## 许可证 MIT License ## 作者和贡献者 开发单位: ... 联系方式: ... ## 致谢 感谢...