首页 > 其他分享 >Ardupilot 如何使用软件在环SITL-(10)

Ardupilot 如何使用软件在环SITL-(10)

时间:2023-03-07 20:12:12浏览次数:43  
标签:10 Ardupilot SITL -- py 使用 vehicle sim

Ardupilot 如何使用软件在环SITL

本文介绍了如何使用SITL来改变环境、模拟故障模式以及使用可选组件配置车辆。

sim_vehicle.py SITL 可以在 Linux 下运行,使用从 Linux 或 WSL2 命令行命名的工具,或通过Mission Planner 的模拟功能它还可以与图形可视化和/或物理建模程序(如Realflight)结合运行。

除了运行模拟之外,还需要同时运行地面控制站程序以控制模拟。使用sim_vehicle.pyMAVProxy会自动启动。使用 Mission Planner 的模拟功能时,会用到它。您还可以连接多个 GCS,请参阅连接到不同的 GCS

 

如果您刚刚开始使用 MAVProxy 和 SITL,您可能希望从阅读Copter SITL/MAVProxy 教程 (或其他车辆的等效教程)开始。

 

使用 sim_vehicle.py

提供启动脚本,`sim_vehicle.py自动为当前代码分支构建SITL固件版本,加载仿真模型,启动仿真器,设置环境和车辆参数,启动MAVProxy GCS。可以指定许多脚本启动参数,键入以下内容以获得完整列表:

sim_vehicle.py --help

选择车辆/车架类型

模拟将默认为启动目录中的车辆类型。如果从任何目录启动,您可以通过使用参数调用sim_vehicle.py启动模拟器来选择车辆类型-v

sim_vehicle.py -v ArduPlane --console --map

帧类型也可以用-f参数改变。

sim_vehicle.py -v ArduPlane -f quadplane --console --map

框架类型:

下面显示了帧类型的部分列表。对于当前列表,只需键入:

sim_vehicle.py --help
飞行器类型 架构类型
plane plane (default if -f is not used)
quadplane firefly plane-dspoilers plane-elevon plane-jet plane-tailsitter plane- vtail quadplane-cl84 quadplane-tilthvec quadplane-tilttri quadplane-tilttrivec quadplane-tri plane-3d
Copter quad (default if -f is not used)

coaxcopter dodeca-hexa heli heli-compound heli-dual hexa hexa-cwx hexa-dji octa octa-cwx octa-dji octa-quad octaquad-cwx tri cwx singlecopter y6 djix

Rover Rover rover (default if -f is not used)   
balancebot rover-skid sailboat sailboat-motor

 

 

 

 

 

 

 

 

 

选择合适的帧类型很重要。这不仅加载了正确的参数集,而且选择了正确的物理模型。例如,在现实生活中,您可以为任何 QuadPlane 配置和设置 ArduPlane 固件,但如果没有为模拟选择确切的 QuadPlane

帧类型以获得正确的物理模型,您就不能在 SITL 中执行此操作。如果未选择车架类型,将加载车辆类型的默认设置,如上所示。

 

设置车辆起始位置

您可以通过使用参数和ardupilot/Tools/autotest/locations.txt文件中的命名位置 调用sim_vehicle.py来在特定位置使用车辆启动模拟器 。-L

例如,要在Ballarat ( locations.txt中的命名位置 )启动 Copter,请调用:

cd ArduCopter
sim_vehicle.py -L Ballarat --console --map

注:您可以将自己的位置添加到文件中。顺序是 Lat、Lng、Alt、Heading,其中 alt 是 MSL,以米为单位,航向是度数。如果飞行地点被很好地使用,那么考虑通过拉取请求将其添加到项目中。

      您可以将自己的私人位置添加到本地 locations.txt 文件,其格式与主文件相同。在 Linux 上,该文件位于$HOME/.config/ardupilot/locations.txt- 您需要使用您喜欢的文本编辑器创建该文件。

加载不同的默认参数集

 一组默认参数由帧类型自动选择。但是,您可以使用选项选择不同的参数文件--add-param-file=,而不是在模拟开始后通过 GCS 手动加载它们:

sim_vehicle.py -v ArduPlane --console --map --add-param-file=<path to file>

默认工作目录将是启动 sim_vehicle.py 的目录。

“默认”参数集模拟固件中包含的参数默认值。这些在启动时用于参数,除非用户之前更改了它们的参数,在这种情况下,将使用那些更改的值。在 SITL 中,这些更改存储在仿真启动目录中名为eeprom.bin

如果您希望仅使用默认值启动,则可以删除该文件,或者-w可以使用这些选项。

sim_vehicle.py -v ArduPlane --console --map --add-param-file=<path to file> -w

使用真正的串口设备

    有时在 SITL 中使用真实的串行设备很有用。这使得将 SITL 连接到真实的 GPS 以进行 GPS 设备驱动程序开发,或将其连接到真实的 OSD 设备以测试 OSD 成为可能。

    要使用真正的串行设备,您可以使用如下命令:

sim_vehicle.py -A "--serial2=uart:/dev/ttyUSB0" --console --map

它的作用是将 –serial2 参数传递给 ardupilot 代码,告诉它使用 /dev/ttyUSB0 而不是第二个 UART 的正常内部模拟 GPS。您可以在此处找到 SITL 串行端口映射

8个UART中的任何一个都可以这样配置,使用serial0到serial7。标准串口SERIAL1和SERIAL2分别为uartC和uartD。

通常,串行设备可以通过 FTDI 适配器连接到计算机的 USB 端口,但请注意,这些设备通常不支持半双工。为了以这种方式与设备通信,您应该确保您的用户在 linux 类型的系统上具有对拨出组的适当访问权限。

在 WSL 上,通常还需要在设备连接后设置端口,然后再尝试通过 SITL 与其交互。例如对于 COM22:

stty -F /dev/ttyS22 raw 115200

您可以在连接字符串中的 uart 上设置其他参数,例如,要仅以 115k 波特率使用 SERIAL1 上的设备,请指定:

sim_vehicle.py -v ArduCopter -A "--serial1=uart:/dev/ttyUSB0:115200" --console --map

与此类似,如果您在 Microsoft Windows 上通过 Cygwin 在 SITL 中运行车辆,并且您想通过 COM16 上连接的无线电将 MAVLink 输出发送到 AntennaTracker,您可以使用这样的命令 - 注意 Cygwin 下的通信端口是 ttyS,它们开始在 0 所以 15 相当于 COM16:

sim_vehicle.py -A "--serial1=uart:/dev/ttyS15" --console --map

使用不同的 GCS 而不是 MAVProxy

 

标签:10,Ardupilot,SITL,--,py,使用,vehicle,sim
From: https://www.cnblogs.com/csymemory/p/17189460.html

相关文章

  • F-Droid 更新索引格式,数据量降低 100 倍
    F-Droid更新索引格式,数据量降低100倍来源:OSCHINA编辑: Alias_Travis2023-03-0709:02:45 0Android足够开放的特性诞生了很多可以替代GooglePlay......
  • 推荐10个yyds开源微信小程序优秀项目
    推荐10个yyds开源微信小程序优秀项目原创2023-01-1408:00·Echa攻城狮 大家好,我是Echa。昨天有好几个粉丝私信小编,说微信小程序这么流行,这么火,为啥不多分享分......
  • bzoj 3101 N 皇后
    线性构造出一个解。#include<cstdio>#include<iostream>voidsolve(intn){if((n>>1)%2==0){for(inti=2;i<=n;i+=2)......
  • ASEMI高压MOS管10N60参数,10N60特征,10N60大小
    编辑-ZASEMI高压MOS管10N60参数:型号:10N60漏极-源极电压(VDS):600V栅源电压(VGS):30V漏极电流(ID):10A功耗(PD):125W储存温度(Tstg):-55to150℃静态漏源导通电阻(RDS(ON)):0.85Ω二......
  • WIN11无法访问win7的共享打印机,(操作不能完成(错误0x00000709)),WIN10能正常访问该共享打
    1、问题描述:WIN11无法访问win7的共享打印机(操作不能完成(错误0x00000709)),win10可以访问。三台电脑都在同一个局域网内,分别为win7,win10,win11。WIN7系统为旗舰版,作为共......
  • Win10 清理C盘方法
    在Win10系统使用一段时间,各种软件会出现临时文件和日志,当C盘空间不足时,可用下面的方法有选择的删除。一、win10用于存储更新日志和更新补丁下载的文件C:\Windows\Software......
  • 每日一题10_动态规划
    题目:70.爬楼梯思路:转移方程:斐波那契数列代码:classSolution{publicintclimbStairs(intn){//a[n]=a[n-1]+a[n-2],a1=1,a2=2;关键retur......
  • Lua 学习-10 元表metaTable
    2.4– MetatablesandMetamethodsEveryvalueinLuacanhavea metatable.This metatable isanordinaryLuatablethatdefinesthebehavioroftheorigina......
  • 106. Construct Binary Tree from Inorder and Postorder Traversal
    题目Giveninorderandpostordertraversalofatree,constructthebinarytree.Note:Youmayassumethatduplicatesdonotexistinthetree.思路本题......
  • Windows10 删除Windows.edb,释放C盘空间
    运行win10系统一段时间后,发现电脑非常卡顿,检查后发现Windows.edb文件占用内存比拟大。Windows.edb一个Window搜索服务数据库文件,索引后提供文件,内容和属性缓存的搜索结果......