在现有的旋翼无人机市场中,绝大部分可二次开发的产品都只提供C、C++等SDK,但在科研类无人机这一细分领域中,更多的开发者偏好或善于使用Matlab进行算法的开发和验证。为了助力从事控制算法理论研究的开发者,能够独立完成控制算法到无人机平台的移植,快速实现控制算法从“理论”到“应用”落地,阿木实验室特推出“Matlab无人机算法开发套件 ”。
该套件基于Matlab/Simulink进行了深度开发,仿真和真机实验的程序完全通用和兼容、接口和示例丰富、底层安全检查功能齐全。开发者不仅可以使用Matlab对顶层控制算法进行开发、仿真验证和实验验证,还能在Matlab端完成算法修改和测试,无需将Matlab程序改写为C语言程序并移植到机载电脑,极大地降低了开发者的工作量和开发难度。
Matlab无人机算法开发套件-添加素材
Matlab无人机算法开发套件技术框架
1、总体技术框架
主要包含两部分:第一部分是Simulink模块,包含无人机位置、速度、加速度三种控制器;第二部分是Prometheus模块,用于转发PX4底层提供的无人机状态信息和Simulink提供的控制信息,在仿真中提供Gazebo仿真环境,而在实验中直接对无人机真机进行控制。
总体技术框架
2、Matlab/Simulink ROS Toolbox
利用Matlab/Simulink ROS Toolbox,在Simulink程序中对无人机位姿、状态、控制指令、配置指令等话题的订阅与发布,实现Simulink对无人机进行闭环控制的功能。
Simulink程序中的ROS接口程序
接口程序中的ROS话题的发送与接收模块
3、Matlab Bridge
在Prometheus系统中,本开发套件包含了一个专用模块“Matlab Bridge”,其功能是将Prometheus中的自定义ROS消息转换成标准的ROS话题,并与Simulink进行消息的传输。同时,Matlab Bridge也通过重定义特定的标准ROS话题,来传输无人机的飞行状态信息和安全检查标志,以完全兼容Prometheus原有的安全模块。
Matlab Bridge在系统中转发的ROS话题
功能介绍
1、核心功能
-
三种控制模式切换
支持位置控制、速度控制和加速度控制三种无人机控制模式,并可以在程序中通过拨动旋钮进行一键切换。
-
控制示例程序及二次开发
提供丰富的控制算法示例程序,包括经典的串级PID控制、UDE、ADRC等鲁棒控制方法,控制方法之间可进行一键切换,且预留二次开发程序接口。
-
飞行状态显示
实时显示无人机的飞行状态、通信情况、时钟同步信息、电池电压、电量等信息。
2、安全检查功能兼容Prometheus原有的安全检查功能,在无人机真机和仿真环境中,无人机能进行自检和报错。同时,在Matlab_bridge程序中,也定义了相应的安全逻辑,以应对通信丢包、通信丢失、Matlab程序失效等意外情况。
3、辅助功能
-
飞行数据记录
将飞行过程中的无人机状态、控制信号等数据进行自动保存,支持自定义保存途径。
-
飞行数据自动绘图
在停止仿真或实验后,Simulink程序将自动对飞行结果进行绘图,用于展示飞行过程中的关键信息。
配置与服务
如需了解更多套件详情,可跳转观看产品手册:Prometheus_MATLAB_Toolbox_wiki文档 - 产品简介 (amovlab.com)