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顯示