环境:
ubuntu版本:20.04
px4固件版本: stable v1.12.3
QgroundControl版本:v4.14
飞控硬件:pixhawk cuav v5+
gazebo版本:11.9.0
步骤:
打开QGC地面站,点击左上角Q图标,接着点击Vehicle Setup->Firmware, usb线连接飞控到电脑,右边会弹出Firmware Setup图标,选择PX4 Pro Stable Release v1.12.3. 点击OK,下载好飞控固件。
重新连接飞控到地面站, 点击Airframe,选择HIL Standard VTOL QuadPlanner, 右上角点击Apply and Restart。
在这里插入图片描述
飞控重启后,进入Summary, 看到的界面如下。
在这里插入图片描述

接下来转到PX4-Autopilot项目下的Tools/sitl_gazebo(假如没有任何文件,请先运行git submodule init && git submodule update)文件夹. (这时文件夹中将出现standard_vtol.sdf.jinja, 但是它不是我们要修改的), 我们需要回到PX4-Autopilot文件夹下, 紧接着运行make clean && make distclean && DONT_RUN=1 make px4_sitl_default gazebo, 之后再次进入sitl_gazebo/models/standard_vtol 文件夹下, 你将看到standard_vtol.sdf文件。
这个文件的正确路径是下面
PX4-Autopilot/Tools/sitl_gazebo/models/standard_vtol/standard_vtol.sdf,设置一下3个变量,

<serialEnabled>1<serialEnabled>
<serialDevice>/dev/ttyACM0<serialDevice> 
<hil_mode>1<hil_mode>

接下来声明仿真环境变量。

source Tools/setup_gazebo.bash $(pwd) $(pwd)/build/px4_sitl_default 

接着运行仿真命令
(运行前先后运行 ls /dev, 确定你的飞控接口是否为ttyACM0)

gazebo Tools/sitl_gazebo/worlds/hitl_standard_vtol.world

(有时候运行完这个命令后没有任何反应,这时重新启动电脑)
(有时候,出来的是串口被关闭的消息, 这时重新启动电脑)
运行正常会出现这一条消息Opened serial device /dev/ttyACM0。 (注意右下角窗口内)
gazebo将会被正常打开,垂直起降固定翼无人机出现在gazebo中。
在这里插入图片描述

打开QGC地面站,飞机会自动连接到地面站上, 你就可以操控飞机了。
点击takeoff,飞机将以旋翼方式起飞,指定高度后,飞行模式变为Hold模式, 然后点击MC, 飞行模式将转变为FW模式, 也就是以固定翼方式盘旋飞行。
飞控上

2025年6月24日追加,当我使用V4.2.8QGC时, 出现不能arm的情况, 我将arm前的检查全部都注释后,飞机就可以正常arm了。

cuigaosheng@cuigaosheng:~/px4_guanfang/PX4-Autopilot$ git diff
diff --git a/src/modules/commander/Arming/PreFlightCheck/PreFlightCheck.cpp b/src/modules/commander/Arming/PreFlightCheck/PreFlightCheck.cpp
index 80abab1304..c37d4dd6e8 100644
--- a/src/modules/commander/Arming/PreFlightCheck/PreFlightCheck.cpp
+++ b/src/modules/commander/Arming/PreFlightCheck/PreFlightCheck.cpp
@@ -63,6 +63,7 @@ bool PreFlightCheck::preflightCheck(orb_advert_t *mavlink_log_pub, vehicle_statu
 
        bool failed = false;
 
+#if 0
        failed = failed || !airframeCheck(mavlink_log_pub, status);
        failed = failed || !sdcardCheck(mavlink_log_pub, status_flags.sd_card_detected_once, report_failures);
 
@@ -262,6 +263,7 @@ bool PreFlightCheck::preflightCheck(orb_advert_t *mavlink_log_pub, vehicle_statu
        failed = failed || !manualControlCheck(mavlink_log_pub, report_failures);
        failed = failed || !cpuResourceCheck(mavlink_log_pub, report_failures);
 
+#endif
        /* Report status */
        return !failed;
 }
cuigaosheng@cuigaosheng:~/px4_guanfang/PX4-Autopilot$ cd src/modules/commander/Arming/PreFlightCheck/

如果是v13.0版本, 采用下面的命令

DONT_RUN=1 make px4_sitl_default gazebo
  source Tools/simulation/gazebo-classic/setup_gazebo.bash $(pwd) $(pwd)/build/px4_sitl_default
gazebo Tools/simulation/gazebo-classic/sitl_gazebo-classic/worlds hitl_standard_vtol.world
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐