< >
Home » DroneKit-Python教程 » DroneKit-python入门教程教程-SITL仿真-参数设置

DroneKit-python入门教程教程-SITL仿真-参数设置

DroneKit-python入门教程教程-SITL仿真-参数设置

说明:

  • 如何为SITL模拟器设置虚拟光流传感器和虚拟超声波传感器,以测试室内自动控制方案是否可行
  • 在光流传感器和超声波传感器的帮助下实现室内的自动控制是一项实验性的功能,你需要使用最新的飞控软件版本来获得最新特性

步骤:

  • 运行SITL
cd ~/ardupilot/ArduCopter/
./ArduCopter.elf --home 0,0,0,270 --model quad
  • 启动MAVProxy,将数据包转发
mavproxy.py --master tcp:127.0.0.1:5760 --sitl 127.0.0.1:5501 --out 127.0.0.1:14550 --out 127.0.0.1:14551
  • 打开了两个本地端口,14550用于连接地面站,14551用于连接DroneKit程序

MAVProxy使用:

  • MAVProxy是一个基于命令行的、为开发人员设计的地面站软件,更多信息可以查看官方MAVProxy
  • MAVProxy中,查看参数的命令为
param show PARAM_NAME
  • 使用任意参数名代替PARAM_NAME即可。
  • MAVProxy对大小写不敏感
param show EK2*
  • 将会显示所有以”EK2”开头的参数
param show *
  • 将会显示全部参数
  • MAVProxy修改参数的命令为
param set PARAM_NAME VALUE
  • 其中PARAM_NAME代表参数名,VALUE代表数值
  • 例如,使用以下命令禁用飞行前检查(Arming Check)
param set ARMING_CHECK 0
  • 修改的参数会自动保存,下一次启动时不必再次修改
  • SITL支持禁用GPS信号、为模拟的无人机添加虚拟的传感器,可以通过在MAVProxy中修改相关参数实现
  • 禁用GPS
# 禁用SITL的GPS信号
param set SIM_GPS_DISABLE 0
  • 设置虚拟光流
# 设置虚拟光流传感器
param set SIM_FLOW_ENABLE 1
# 启用光流传感器
param set FLOW_ENABLE 1
# 设置光流传感器参数
param set FLOW_FXSCALER 50
param set FLOW_FYSCALER 50
  • 设置虚拟超声波传感器
# 设置虚拟超声波传感器
param set SIM_SONAR_SCALE 10
# 启用模拟声呐,最大距离50m
param set RNGFND_TYPE 1
param set RNGFND_SCALING 10
param set RNGFND_PIN 0
param set RNGFND_MAX_CM 5000
  • 修改飞控参数
  • 更改飞控使用的卡曼滤波器
# 使用EKF3(最新版本的卡曼滤波)
param set AHRS_EKF_TYPE 3
# 停止EKF2
param set EK2_ENABLE 0 
# 使能EKF3
param set EK3_ENABLE 1 
  • 完成以上设置后,需要重启SITL进程(按ctrl+C中止,之后再重新启动)和MAVProxy(不然EKF3的相关参数不会出现)
  • 重启后,再进行以下设置
# 禁用GPS
GPS_TYPE = 0

# 使用光流传感器作为定位源
EK3_GPS_TYPE = 3
# 使用超声波传感器作为高度源
EK3_ALT_SOURCE = 1

Set Home Here/设置家在此

  • 因为光流传感器无法提供绝对的定位信息(只能提供相对位置信息)
  • 在使用程序控制“GUIDED”模式下的无人机自动起飞之前,必须要告诉飞控“家”的位置。
  • 打开MissionPlanner,通过UDP、端口14550连接到SITL。
  • 在MissionPlanner地图上的任意位置,右键,选择“Set Home Here/设置家在此”
    请输入图片描述
  • 若操作成功,则会在地图上出现无人机的图案及朝向

请输入图片描述

  • 此时,无人机在室内的自动控制已经准备就绪了,你可以使用代码开始测试了(代码需连接到127.0.0.1:14551)

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: dronekit-python入门教程教程