环境:
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项目下的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模式, 也就是以固定翼方式盘旋飞行。
飞控上
如果是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