折返的Liung

我如溪水,静静流淌在山涧~~我如白云,俯瞰此生今生~~

APM-使用调试终端与APM交互

说明

地面站的调试终端协议是与APM通过简单的终端界面进行交互的适宜人类可读的文本的一种方式。通过地面站的终端界面,用户可以改变APM的一些运行参数状态,甚至是在实时飞行过程中,并且还能够读取到各种不同的飞行参数信息,使得更加了解APM实时运行的动作。

调试终端工具主要用来探索与测试APM的特性;目前并不赞成作为用户终端界面使用。大部分的飞行状态参数都是根据源代码中执行的计算结果来返回的结构化的数据,并不是大多数不了解源码的人们根据直觉理解的一些数据。这可以成为了解APM工作方式的一个好的工具,但是目前所呈现的仅仅是一些粗糙的用户界面。当调试工具返回的数据出乎你的意外,请查阅一下产生这些响应数据的代码,你是否能够在脑海中勾勒中APM正在执行的内容。

一个常见的问题是APM内部存在的参数值与人们理解的参数值有分歧。比如,纬度值存储的整数值等于角度值乘以一千万,但是相对于以一千万分之一度为单位,可能以十进制单位角度打印出来的数值更能符合人们常规的习惯。目前,调试终端当显示数值时混合了上述两种方法。最近大部分指令参数已经开发完成,并尽可能地采用了对用户更方便(友善)的数值显示方法。


设置

需要在你的APM调试终端遵循一下步骤:

A. 连接串口到需要的遥测端口

B. 在APM_Config.h文件的末尾增加下面几行代码:

//Select Debug Terminal as the GCS to use:
#define GCS_PROTOCOLGCS_PROTOCOL_DEBUGTERMINAL

//Use the telemetry port for the Debug Terminal interface:
//(selecting 0 here would cause the USB serial port to be used instead)
#define GCS_PORT3

//Set the baud rate for the telemetry port to match your XBee setup:
#define SERIAL3_BAUD115200

命令索引

默认模式下,预设的调试终端提供了帮助命令来方便管理参数语法。如果某个参数忘记了具体如何拼写,只要在终端键入你所能记住的部分然后在后面添加问号(即:你键入的部分指令+?)。键入问号后终端会向你显示一些可能的参数列表。例如,status-?将会出现下面的状态命令参数:

所有的终端命令都是大小写和空白符敏感的。 Commands are terminated by a carriage return (so be sure to selectCarriage return rather than No line ending if using the Arduino serial monitor). 在下面的索引列表中,<N>代表非负整数;<X>代表数值型的值,可能是复数、小数或负数;竖线(|)表示“或者”;闭合的花括号({})表示可选参数集合,所以,{A|B|C}表示你必须选择A或者B或者C。方括号([])表示可选参数。对于下面没有详细说明的参数,命令语法会单独给出一个简单的关于该参数作用的说明。更多的信息可以通过阅读GCS_DebugTerminal.pde代码文件获取(在SVN仓库的这里)。

show heartbeat

是否自动显示“heartbeat(心跳)”信息,报告APM的控制模式,特别当其放生改变时。默认显示。

show attitude

是否自动显示“attitude(姿态)”信息,其中内容包括:

  • 滚转、俯仰、偏航、油门的无线遥控(RC)信号
  • APM重新计算得到的飞行器滚转、俯仰信号
  • Navigation information including the target bearing, desired roll, and number of degrees loitered
  • Orientation actuation including roll and pitch servo outputs

show location

show severity

hide {heartbeat|attitude|location}

hide all

echo

groundstart

inithome

print altitude

print attitude

print commands

print ctrlmode

print curwaypts

print flightmodes

print kp {servoroll|servopitch|servorudder|navroll|navpitchasp|navpitchalt|throttlete|throttlealt}

print ki {servoroll|servopitch|servorudder|navroll|navpitchasp|navpitchalt|throttlete|throttlealt}

print kd {servoroll|servopitch|servorudder|navroll|navpitchasp|navpitchalt|throttlete|throttlealt}

print kff {pitchcomp|ruddermix|pitchtothrottle}

print location

print navsettings

print pressure

print rlocation [home]

print speed

print tuning

reset commands

rtl

set cmd {here| }

set cmd

set cmdcount

set cmdindex

set cruise

set holdalt

set kp {servoroll|servopitch|servorudder|navroll|navpitchasp|navpitchalt|throttlete|throttlealt}

set ki {servoroll|servopitch|servorudder|navroll|navpitchasp|navpitchalt|throttlete|throttlealt}

set kd {servoroll|servopitch|servorudder|navroll|navpitchasp|navpitchalt|throttlete|throttlealt}

set kff {pitchcomp|ruddermix|pitchtothrottle}

set loiterradius

set wpradius

status control

status gps

status landing

status loiter

status navigation

status navpitch

status navroll

status rc

status rcinputch

status rcin

status rcout

status rcpwm

status rctrim

status system

status takeoff

status telemetry

status throttle

status waypoints


链接

  1. APM官网原文链接
  2. APM开发人员参考手册目录列表

(over)

Comments