当前位置: 首页 > news >正文

Crazyflie支持MATLAB/Simulink控制 基于NOKOV度量动捕系统实现

Crazyflie支持MATLABSimulink控制 基于NOKOV度量动捕系统实现

一、动捕软件VRPN配置

以动捕软件版本XINGYING 4.2.0.5495为例,其他版本同理。打开动捕软件,连接上镜头。单击菜单栏下的视图->数据广播。在数据广播中的VRPN流下,将单位下拉选择米,类型勾选刚体并启用VRPN。
在这里插入图片描述

图 1-打开数据广播视图
在这里插入图片描述

图 2-动捕中vrpn配置
单击菜单栏下的视图->设备打开设备视图。先点击停止播放按键,在高级框中将动捕帧率修改为120。
在这里插入图片描述

图 3-打开设备视图
在这里插入图片描述

图 4-修改动捕帧率

二、MATLAB/Simulink平台配置

要求ROS 版本:galactic,Ubuntu 版本:20.04。crazyflie固件版本2024.10以上,若版本过低自行更新版本(cfclient使用)。在windows主机上,Matlab版本建议2020a以上,本实验使用2022a;自行安装python、cmake和Microsoft Visual C++,注意要与matlab的版本对应。

(一)ubuntu环境配置

开启终端,使用以下命令将环境配置写入.bashrc中。ROS_DOMAIN_ID的取值范围为0~255。
echo “export RMW_IMPLEMENTATION=rmw_fastrtps_cpp” >> ~/.bashrc
echo “export ROS_DOMAIN_ID=26” >> ~/.bashrc

(二)Matlab/Simulink环境配置

1.先将flightmaster2的matlab套件解压,使用matlab打开套件,flightmaster2.slx一定要在当前文件夹。
在这里插入图片描述

图 5-打开flightmaster2的matlab套件
2.在matlab终端上运行以下代码,选择编译器和编译语言。
mex -setup C++
在这里插入图片描述

图 6-选择编译语言
3.运行以下命令对自定义消息进行编译。
ros2genmsg(‘custom_msgs’);
在这里插入图片描述

图 7-编译自定义消息类型
4.双击flightmaster2.slx进入simulink模型。
在这里插入图片描述

图 8-打开flightmaster2的simulink程序
5.点击上方的仿真,在单击ROS Network。将Domain ID修改为与ubuntu一致,将RMW Implementation修改为rmw_fastrtps_cpp。
在这里插入图片描述

图 9-配置ROS2网络

三、基础飞行操作演示

(一)基础控制

在基础控制轮盘中实现了对无人机的基础控制,包括解锁、起飞、悬停、降落和急停服务,可对单个或多个无人机操作。
1.将三架crazyflie机头朝向x轴正方向,放置在场地中,在动捕创建刚体nokov1、nokov2和nokov3,骨骼朝向为x轴,如下图所示。
在这里插入图片描述

图 10-建立刚体
2.双击flightmaster2.slx打开simulink模型。

在这里插入图片描述
在这里插入图片描述

图 11-simulink模型
3.打开ubuntu,在flightmaster2中的flightmasters.yaml启用三架crazyflie。
在这里插入图片描述

图 12-启动三架crazyflie
4.开启一个终端,使用以下命令打开flightmaster2图形控制界面。
cd ~/FlightMaster2/
python fmclient.py
在这里插入图片描述

图 13-运行flightmaster2图形化界面
5.在图形化界面上选择RealMode并勾选RViz,再点击启动FlightSwarm。此时会运行flightmaster2的服务节点,rviz也会启动。
在这里插入图片描述

图 14-flightmaster2图形化界面
6.在matlab的simulink界面上,将集群demo轮盘和基础服务轮盘先拨至NO。再选择上方的仿真,单击运行按键。
在这里插入图片描述

图 15-将轮盘拨至No
在这里插入图片描述

图 16-运行simulink
先将基础服务轮盘拨至Takeoff,此时三架无人机会起飞至1米,再将轮盘拨至Hold,无人机会在当前位置保持悬停,再将轮盘拨至Land,三架无人机降落,最后将轮盘拨至No。
在这里插入图片描述

图 17-轮盘拨至takeoff
在这里插入图片描述

图 18-无人机起飞
在这里插入图片描述

图 19-rviz显示

(二)crazyflie单机绕方

1.一架crazyflie放入动捕场地中,机头朝向x轴,在动捕软件中建立刚体,名称为vehicle3,骨骼朝向x轴。
在这里插入图片描述

图 20-创建刚体
2.打开ubuntu,在flightmasters.yaml启用一架crazyflie,在flightmaster2图形控制界面上启动FlightSwarm。
在这里插入图片描述

图 21-启用一架crazyflie
在这里插入图片描述

图 22-启动FlightSwarm
3.在matlab的simulink界面上,将demo控制轮盘和基础服务轮盘先拨至NO。再选择上方的仿真,单击运行按键。
在这里插入图片描述

图 23-将轮盘拨至No
在这里插入图片描述

图 24-运行simulink
4.在demo控制轮盘下方,将VEHICLE3开关拨至on启用设备,此时启用设备的灯会变绿。
在这里插入图片描述

图 25-启用设备
5.将demo控制轮盘拨至crazyflie。此时vehicle3会先起飞然后绕方形。
在这里插入图片描述

图 26-轮盘拨至crazyflie
在这里插入图片描述

图 27-crazyflie绕方形
在这里插入图片描述

图 28-rviz显示

http://www.lryc.cn/news/582718.html

相关文章:

  • 安装 asciidoctor-vscode 最新版
  • 【Python篇】PyCharm 安装与基础配置指南
  • Spring AI 基本组件详解 —— ChatClient、Prompt、Memory
  • Fiddler-关于抓取Android手机包,安装证书后页面加载失败,提示当前证书不可信存在安全风险的问题
  • Rust 中字符串类型区别解析
  • Rust 仿射类型(Affine Types)
  • AR/VR 显示画质失真?OAS百叶窗波导案例破难题
  • Linux网络:UDP socket创建流程与简单通信
  • 深入解析 structuredClone API:现代JS深拷贝的终极方案
  • 【RAG知识库实践】数据源Data Source
  • 使用策略模式 + 自动注册机制来构建旅游点评系统的搜索模块
  • 京东商品评论(2)
  • 机器学习(西瓜书) 第三章 线性模型
  • 【PyTorch】PyTorch中torch.nn模块的激活函数
  • Nuxt.js 静态生成中的跨域问题解决方案
  • maven 发布到中央仓库之 Ignore Licence-04
  • FPGA 47 ,MIG 内存接口生成器深度解析( FPGA 中的 MIG 技术 )
  • 手机解压软件 7z:高效便捷的解压缩利器
  • 【AI智能体】智能音视频-基于乐鑫 ESP32 实现音视频通话
  • 从 CODING 停服到极狐 GitLab “接棒”,软件研发工具市场风云再起
  • 20250708-2-Kubernetes 集群部署、配置和验证-使用kubeadm快速部署一个K8s集群_笔记
  • Safetensors与大模型文件格式全面解析
  • 金融行业信息
  • Android 事件分发机制深度解析
  • Apache DolphinScheduler保姆级实操指南:云原生任务调度实战
  • 【Linux服务器】-安装ftp与sftp服务
  • 二刷(李宏毅深度学习,醍醐灌顶,长刷长爽)
  • .NET nupkg包的深度解析与安全防护指南
  • Linux 信号机制:操作系统的“紧急电话”系统
  • 【时时三省】(C语言基础)指针变量作为函数参数