请求(飞行)控制器提供数据¶
地面站或配套计算机可使用以下方法之一请求所需的数据(和速率):
请注意,在发送参数和航点时,数据流速率会暂时比要求的慢 4 倍或更多。
有关上述方法的更多详情,请参阅下文。
备注
如果您发现自己的信息速率在设置后又恢复到某个固定值,这很可能是地面控制站在调整信息流速率以适应自己的需要。大多数地面控制站都会有一个控件来阻止地面控制站这样做,例如在 MAVProxy 中使用 设置 流率 -1
.如果调整 GCS 配置不可行,则可以在 "GCS "中设置第 12 位。 SERIALn_OPTIONS
参数,该参数与传输 mavlink 流量的串行端口相对应,可强制 ArduPilot 忽略 GCS 通过 streamrate 命令设置信息速率的尝试。
使用 SRx 参数¶
设置 SRx_
参数(然后重启(飞行)控制器)将导致(飞行)控制器主动向地面站发送多组信息。这不是推荐的方法,因为地面站无法确定 "x "应该是什么。
用地面站连接(飞行)控制器
确定正在使用的遥测连接。例如,如果地面站连接到(飞行)控制器的 "Telem1 "端口(可能使用的是 Wifi 或遥测无线电),则
SR1_
应修改参数设置
SRx_
参数为您希望该组信息的发送速率(以 Hz 为单位)。通过查看每辆飞行器 GCS_Mavlink.cpp 文件中的 STREAM_xxx 数组,可以确定每组中包含的确切信息(参见此处的 旋翼飞行器, 固定翼飞行器, 无人车UGV, 潜航器 和 天线跟踪器).以下是 Copter-4.0 按组划分的信息列表:SRx_ADSB
SRx_EXT_STAT
SRx_EXTRA1
SRx_EXTRA2
SRx_EXTRA3
电池2 (已废弃,请使用 BATTERY_STATUS)。
SRx_PARAMS - 不应更改
SRx_POSITION
SRx_RAW_CTRL (未使用)
SRx_RAW_SENS
SRx_RC_CHAN
rc_channels_raw (仅在 mavlink1 链接上发送)
使用 REQUEST_DATA_STREAM¶
包括Mission Planner地面站在内的大多数地面站都使用这种方法。参见 设置数据速率 在Mission Planner地面站维基中。
发送 请求数据流 信息,其中包括以下字段
target_system:载具的 MAVLink 系统 ID(通常为 "1")。
target_components : 通常为 "0"
req_stream_id:0 至 12,与报文组相对应(参见 mav_data_stream).请参阅上文 "使用 SRx 参数 "部分,以确定每组中的确切报文。
req_message_rate:信息速率(以赫兹为单位
start_stop :"1 "表示开始发送,"0 "表示停止发送
使用 SET_MESSAGE_INTERVAL¶
这种方法可提供最精确的控制,并减少带宽需求(因为不会发送不必要的信息),但需要准确了解您需要哪些信息
发送 命令长 包含以下字段
target_system:载具的 MAVLink 系统 ID(通常为 "1")。
target_components : 通常为 "0"
指令:511(用于 mav_cmd_set_message_interval)
确认0
param1:所需的 MAVLink 报文 ID(例如,33 表示"......")。 global_position_int)
param2:信息之间的时间间隔,以微秒为单位(例如,10 赫兹为 100000,1 赫兹为 1000000)
参数 3 至参数 7: 0(未使用)
警告
如果遥测链路是共享的(即多台全球控制站或一台全球控制站和一台配套计算机),则可能会出现请求冲突的情况。最常见的例子是Mission Planner地面站使用 REQUEST_DATA_STREAM 方法,而配套计算机使用 SET_MESSAGE_INTERVAL 方法。Mission Planner地面站至少可以通过将速率设置为"-1 "来关闭 REQUEST_DATA_STREAM 请求(请参阅 "Mission Planner地面站")。 设置数据速率).MAVProxy 用户可以 设置 流率 -1
.
使用 REQUEST_MESSAGE¶
全球监控系统可以轮询(飞行)控制器发出的单个信息实例。
发送 命令长 包含以下字段
target_system:载具的 MAVLink 系统 ID(通常为 "1")。
target_components : 通常为 "0"
指令:512(用于 mav_cmd_request_message)
确认0
param1:所需的 MAVLink 报文 ID(例如,33 表示"......")。 global_position_int)
param2:取决于所请求的信息;详情请查看该信息的定义。
参数 3 至参数 7: 0(未使用)
在文件中指定信息速率¶
启动时,ArduPilot 将从 ROMFS 或文件系统中找到的文件填充初始信息间隔。
在基于 ChibiOS 的板卡上(闪存超过 1MB),SD 卡将在根目录下搜索特殊命名的文件。
每个 mavlink 通道都在单独的配置文件中配置。配置为 mavlink 的第一个串行端口为通道 0,第二个串行端口为通道 1 等。
文件名示例如下 message-intervals-chan0.txt
格式简单而严格。有两列,中间用一个空格隔开,都包含数字。第一个数字是 mavlink 消息 ID。第二个数字是信息间隔,以毫秒为单位。每行必须以回车结束 或 换行。
30 50
28 100
29 200
该示例文件内容将流式传输 态度 (ID=30) 频率为 20Hz 和 缩放压力 (ID=29),频率为 5Hz。信息 ID 28 是 RAW_PRESSURE,ArduPilot 不会发送该信息 - 这一行将被忽略。
通过在相关电路板的 hwdef 文件中指定配置文件的路径,可将配置文件包含在 ROMFS 中(即编译到映像中):
ROMFS 信息-间隔-chan0.文本 图书馆/AP_HAL_ChibiOS/hwdef/橙色立方体/信息-间隔-chan0.文本
第二个参数是 ArduPilot 签出根目录的相对路径。
这方面的用例包括在无法运行脚本的电路板上或在脚本运行之前锁定遥测率。
检查信息速率¶
一些地面站(包括 Mission Planner 和 QGC)包括一个 "MAVLink 检查器",在检查特定信息的更新率时非常有用。
如果使用Mission Planner地面站:
按 Ctrl-F
按下 "MAVLink 检查器 "按钮
展开载具和组件 ID,查看单个信息及其更新率
如果使用 MAVProxy:
模块加载
消息状态