PX4仿真基础

本文章描述jmavsim和gazebo两种仿真器的使用

    仿真器可以让PX4飞行控制程序在仿真的“世界”中控制一架计算机模拟的飞行器。您可以使用QGroundControl地面站程序、API或遥控器与该飞行器进行交互,就像与真实飞行器进行交互一样。

    软件仿真是指PX4飞行控制程序运行在宿主机中,我们这里使用的宿主机是一台安装了ubuntu server的thinkpad笔记本计算机,PX4飞行控制程序安装在宿主机中。

     硬件仿真是指PX4飞行控制程序运行在真实飞控计算机中,我们这里使用的是一个安装了PX4飞行控制程序的pixhawk飞控计算机中。

运行环境版本说明:

硬件:赫星公司pixhawk 2.1 cube black

软件:QGroundControl地面站 : 2021-02-23 daily version

           PX4固件:1.11.3

           操作系统:ubuntu server 20.0.04.2 LTS

1. jmavsim仿真器

参考文档:https://docs.px4.io/master/en/simulation/jmavsim.html

1.1 jmavsim软件仿真(SITL)

步骤:

1.1.1. 从px4网站下载 PX4_Autopilot源代码

1.1.2. 进入PX4-Autopilot目录

1.1.3. 执行命令

             make px4_sitl_default jmavsim

      px4源码和jmavsim plugin相应源码被编译,之后出现飞机以及飞行环境的界面

1.1.4. 在pxh命令行界面输入命令:commander takeoff,此时可以看到飞机起飞

1.1.5. 启动QGroundcontrol地面站程序,用这个程序可以观察飞行路线,也可用虚拟遥控器操作飞机,还可以规划飞行任务让飞机执行飞行任务。

1.2. jmavsim硬件仿真(HITL)

步骤

1. 2.1 启动QGroundControl地面站软件

1.2.2 在Vechicle Setup的safty功能中的Hardware in the loop Simulation中选择HITL enabled

1.2.3 在Vechicle Setup的Aireframe中挑选“HIL QuadCopter X”机架,点击apply按钮。   

     注意:飞控重新启动后,出现提示Parameters are missing from firmware. You may be running a version of firmware which is not fully supported or your firmware has a bug in it. Missing params: 1:BAT_V_CHARGED, 1:BAT_N_CELLS, 1:BAT_V_EMPTY

    这个提示是说系统的几个参数没有了,主要指电池部分,事实上,uavcan的参数也丢失了。后面需要用missionplanner恢复。这是pixhawk 2.1特有的缺陷。

1.2.4 在Application Settings中的General中的AutoConnect to the following devices, uncheck 所有选框,留下“udp”。

1.2.5 关闭QGroundControl

1.2.6 拔下飞控usb线

1.2.7 插上飞控usb线,等待飞控启动好。

1.2.8 进入PX4-Autopilot目录,运行命令

    ./Tools/jmavsim_run.sh -q -s -d /dev/ttyACM0 -b 921600 -r 250

    仿真GUI界面就启动了。

1.2.9 启动QGroundControl

    jmavsim仿真器将与QGroundControl和px4自动连接。

1.2.10.用遥控器解锁飞机,推油门起飞。

     注意:在设置为HITL后,QGroundControl提示,丢失电源参数(三个参数),需要校验传感器等信息。不用搭理,为了恢复这些丢失的参数,可参考pixhawk 2.1的说明书(赫星公司)。

2. gazebo仿真器

参考文档:https://docs.px4.io/master/en/simulation/gazebo.html

gazebo 9,这是px4官网指定的gazebo版本,因为目前的PX4固件源代码中仅打包了gazebo 9的相应代码,gazebo 9需要自行安装。

gazebo9的安装步骤:

安装gazebo9和开发库,都是二进制。

首先安装gazebo9-common

sudo apt-get install gazebo9-common

然后

sudo apt-get install gazebo9

然后

sudo apt-get install libgazebo9-dev

2.1 gazebo软件仿真(SITL)

步骤:

2.1.1 从px4网站下载 PX4_Autopilot源代码

2.1.2 进入PX4-Autopilot目录

2.1.3 执行命令

    make px4_sitl gazebo

    px4源码和相应的gazebo plugin源码被编译,之后会出现飞机以及飞行环境的界面

2.1.4 在pxh命令行界面输入命令:commander takeoff

    此时可以看到飞机起飞

2.1.5 启动QGroundcontrol地面站程序,用这个程序可以观察飞行路线,也可用虚拟遥控器操作飞机,还可以规划飞行任务让飞机执行飞行任务。

2.1.6 可以更换飞机的飞行背景

      比如:make px4_sitl gazebo_iris__warehouse

      注意:iris与warehouse之间是2个下划线,其中iris在gazebo中代表四轴飞机,warehouse代表背景。

2.2. gazebo硬件仿真(HITL)

步骤:

2.2.1 启动QGroundControl地面站软件

2.2.2 在Vechicle Setup的safety功能中的Hardware in the loop Simulation中选择HITL enabled

2.2.3 在Vechicle Setup的Aireframe中挑选“HIL QuadCopter X”机架,点击apply按钮。

注意:飞控重新启动后,出现提示Parameters are missing from firmware. You may be running a version of firmware which is not fully supported or your firmware has a bug in it. Missing params: 1:BAT_V_CHARGED, 1:BAT_N_CELLS, 1:BAT_V_EMPTY

这个提示是说系统的几个参数没有了,主要指电池部分,事实上,uavcan的参数也丢失了。在完成硬件仿真后需要用missionplanner恢复。这是uavcan参数丢失是pixhawk 2.1特有的缺陷。

2.2.4 在Application Settings中的General中的AutoConnect to the following devices, uncheck 所有选框,留下“udp”。

2.2.5 关闭QGroundControl

2.2.6 拔下飞控usb线

2.2.7 插上飞控usb线,等待飞控启动好。

2.2.8 编译gazebo plugin

       进入PX4-Autopilot目录,执行命令

   DONT_RUN=1 make px4_sitl_default gazebo

2.2.9 按官网修改gazebo plugin的xml配置文件

打开四轴飞机的sdf 文件 Tools/sitl_gazebo/models/iris_hitl/iris_hitl.sdf. 如果必要,将serialDevice 更换为/dev/ttyACM0

2.2.10 设置环境变量,执行命令

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

2.2.11 运行gazebo

   gazebo Tools/sitl_gazebo/worlds/hitl_iris.world

2.2.12 启动QGroundControl

gazebo仿真器将与QGroundControl和px4自动连接。

2.2.13 用遥控器解锁飞机,推油门起飞。

注意:在设置为HITL后,启动QGroundControl后提示,丢失电源参数(三个参数),需要校验传感器等信息,不用搭理。恢复丢失的uavcan参数可参考pixhawk 2.1的说明书(赫星公司)。

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值