项目简介
本项目是基于ROS(机器人操作系统)构建的无人机引导降落仿真系统。利用阿鲁科(Aruco)标记实现无人机定位,通过PID控制、模糊PID控制、MPC控制等不同控制策略对无人机运动进行控制。系统节点接收来自Aruco检测器、位置传感器、速度传感器和移动平台(如轮式机器人)的数据,经计算后发布控制指令,以此模拟无人机着陆的起飞、导航、降落等关键阶段。
项目的主要特性和功能
- 基于ROS框架开发,支持多传感器数据融合与实时控制。
- 实现PID控制、模糊PID控制和模型预测控制(MPC)等多种控制策略,用于无人机位置和姿态控制。
- 支持阿鲁科标记检测,用于无人机定位和导航。
- 具备着陆策略,保障无人机在目标位置安全降落。
- 支持数据记录,方便后续分析与优化。
- 拥有用户友好的界面和简便的操作方式。
安装使用步骤
环境准备
推荐使用Ubuntu 18.04和ROS Melodic,但非必须。
依赖安装
- Prometheus
- 注意:Prometheus依赖项中除ROS外,其他模块的依赖项均无需安装。安装完成后,仅编译control模块:
bash ./compile_control.sh
- 注意:Prometheus依赖项中除ROS外,其他模块的依赖项均无需安装。安装完成后,仅编译control模块:
- casadi
bash cd casadi mkdir build cd build cmake -DWITH_IPOPT=ON -DWITH_OSQP=ON -DWITH_QPOASES=ON .. make sudo make install
运行项目
- 进入到simulation/shell目录下,打开终端:
bash cd ~/simulation/shell
- 根据要进行的实验,执行对应的
.sh
文件:- 地面平台静止降落(无延迟)
bash ./auto_landing.sh
执行后打开若干终端,正常无红色报错时,从右向左第2个终端窗口显示:Input 1 to switch to offboard mode and arm the drone.
键盘输入1
并Enter
,无人机解锁,螺旋桨转动,该窗口显示:Input 1 to takeoff.
再输入1
并Enter
,无人机起飞,仿真开始。 - 地面平台直线运动降落(无延迟)
bash ./auto_move_landing_straight.sh
在从右向左第2个终端窗口操作:bash Input 1 to switch to offboard mode and arm the drone. 1 #键盘输入并回车 Input 1 to takeoff. 1 #键盘输入并回车
无人机起飞到达预设位置悬停后,另开一个终端,输入:bash rostopic pub /moving_platform/wheelcontrol/cmd_vel geometry_msgs/Twist -r 1 [0.5,0.0,0.0] [0.0,0.0,0.0]
地面平台做直线运动,从无人机下方经过。 - 地面平台曲线运动降落(无延迟)
bash ./auto_move_landing_curve.sh
在从右向左第2个终端窗口操作:bash Input 1 to switch to offboard mode and arm the drone. 1 #键盘输入并回车 Input 1 to takeoff. 1 #键盘输入并回车
无人机起飞到达预设位置悬停后,另开一个终端,输入:bash rostopic pub /moving_platform/wheelcontrol/cmd_vel geometry_msgs/Twist -r 1 [0.5,0.0,0.0] [0.0,0.0,0.4]
地面平台做曲线运动,从无人机下方经过。
- 地面平台静止降落(无延迟)
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】