因为之前在simulink中搭了控制的模块,所以想通过联合仿真的方式,快速迁移,同时以后的研发中也尽可能利用matlab的现成模块,进行验证
整体框架
- WSL2:Ubuntu22.04
- ROS2:humble
- Gazebo:Garden v 7.9.0
- PX4:V1.14.3(官方推荐PX4和gazebo版本对应关系)
- Win
- QGC(也可以安装在wsl2中)
- visualstudio 2022(无法检测到visualstudio 2026)
- Matlab2024b(官方推荐版本对应关系 ww2.mathworks.cn/help/releas…)
- python:3.10.10(官方推荐版本对应关系 ww2.mathworks.cn/support/req…)
- 注意matlab和rostoolbox支持的python版本不完全相同,需要两者都满足(ww2.mathworks.cn/help/releas…)
MATLAB配置
参考资料
msg配置
查看现有msg类型
ros2 msg list
配置python环境(是用的Python310,而非python38)
处理报错:路径过长,移动到文件夹到"C:\custom",生成之后再粘贴到程序目录下
配置C++
mex -setup
选择c++ 2022
生成msg配置,文件夹结构与指令如下:
ros2genmsg('custom')
Simulink Real-Time(实时仿真)
sldrtkernel -install
ROS2配置
仿真结果
可以起飞,但是报错,没有查到原因,频率是10HZ,生成ROS2代码依然存在该问题
最新文档链接:www.yuque.com/yuqueyonghu… 《MATLAB与ROS2联合仿真》
需要仿真文件可私信我