配置/调校(麦克纳姆轮探测车)
本主题为设置麦克纳姆轮探测车提供了分步指南。 后续步骤将启用具有更多自动驾驶仪支持和功能的驾驶模式。
:::警告 每个步骤都依赖于之前的步骤已完成。 只有在配置好前面的模式后,后续模式才能正常工作。 :::
基本设置
要开始使用麦克纳姆轮探测车,请执行以下操作:
通过将PX4探测车固件版本刷写到飞行控制器上,来启用对探测车的支持。 请注意,这是一个特殊的固件版本,包含了探测车特定的模块。
在机架配置中,选择“通用麦克纳姆轮探测车”机架:
选择“应用并重启”按钮。
INFO
如果此机架未在用户界面中显示,也可以通过将SYS_AUTOSTART参数设置为
52000
来选择它。
:::
- 使用执行器配置与测试将电机功能映射到飞行控制器的输出端。
手动模式
上述基本设置是在手动模式下使用探测车所需的全部操作。
INFO
在手动模式下,操纵杆输入直接映射到电机指令。 特别是将控制偏航速率的操纵杆完全推向一侧时,会导致左右两侧的轮子以相反的方向全速旋转。 根据探测车的不同,这可能会导致非常剧烈的旋转。 参数RM_MAX_YAW_RATE和RM_MAX_THR_YAW_R可用于调整偏航速率的手动输入。 通过将该参数从默认值1减小,可以对这种行为进行调校。 请注意,此参数仅影响此模式,不影响以下任何其他模式。
特技模式
要设置特技模式,请在QGroundControl中导航至参数,并设置以下参数:
RM_WHEEL_TRACK [米]:测量从右侧车轮中心到左侧车轮中心的距离。
RM_MAX_YAW_RATE [度/秒]:这是您希望为探测车设置的最大偏航速率。 这将为所有使用闭环偏航控制的手动模式定义操纵杆与偏航速率的映射关系,并为所有自动模式的偏航速率设定点设置上限。
此值可根据您的偏好进行设置,没有通用的经验法则,因为它完全取决于您的探测车和使用场景。
TIP
探测车有一个最大可能的偏航速率,这由探测车的几何形状和电机能够提供的最大扭矩决定。 如果您没有理由限制探测车的偏航速率,可以将此参数设置为在测试中观察到的最高偏航速率:
- 在手动模式下,将控制器的右操纵杆完全推向左侧或右侧。
解除探测车的武装状态,然后从飞行日志中绘制RoverMecanumSetpoint中的actual_yaw_rate
(实际偏航速率)。 3. 将RM_MAX_YAW_RATE
设置为观察到的最高偏航速率。 请注意,日志中的偏航速率以弧度/秒为单位,而该参数的单位是度/秒,因此您需要先转换该值。
如果探测车的转弯对于您的使用场景来说过于剧烈:
- 切换到特技模式。
- 将控制器的右操纵杆完全推向左侧或右侧,并观察探测车的行为。 不断减小RM_MAX_YAW_RATE的值,直到您对最大转弯速率感到满意为止。
:::
RM_MAX_THR_YAW_R [米/秒]:此参数用于计算闭环偏航速率控制的前馈项。 控制器计算左右电机所需的速度差,以实现所需的偏航速率。 然后,将这个所需的速度差线性映射到归一化的电机指令。
要获得此参数的良好初始值,请在手动模式下以全油门向前驾驶探测车,并记录车辆的地面速度。 然后将此值的两倍输入到该参数中。
TIP
要进一步调校此参数,首先确保将RM_YAW_RATE_P和RM_YAW_RATE_I设置为零。
这样,偏航速率仅由前馈项控制,这使得调校更容易。 现在将探测车置于特技模式,然后将控制器的右操纵杆向右和/或向左移动,并在几个不同的位置分别保持几秒钟。 解除探测车的武装状态,然后从飞行日志中绘制RoverMecanumSetpoint中的_yaw_rate_setpoint_(偏航速率设定点)和_actual_yaw_rate_(实际偏航速率),并将它们绘制在一起。 如果探测车的实际偏航速率高于偏航速率设定点,则增加RM_MAX_THR_YAW_R。 如果情况相反,则减小该参数,然后重复此过程,直到您对设定点跟踪感到满意为止。
:::
RM_YAW_RATE_P [-]:闭环偏航速率控制器的比例增益。 与控制器的前馈部分不同,闭环偏航速率控制将偏航速率设定点与测量的偏航速率进行比较,并根据它们之间的误差调整电机指令。 比例增益与该误差相乘,然后将该值添加到电机指令中。 这可以补偿诸如不平坦地面和外部力等干扰因素。
TIP
调校此参数时,请考虑到增加该值会提高对干扰的抑制能力,但可能会导致设定点出现超调或振荡。
要调校该值:
- 将RM_YAW_RATE_P设置为
0.1
。 - 将探测车置于特技模式,然后将控制器的右操纵杆向右和/或向左移动,并在几个不同的位置分别保持几秒钟。
- 解除探测车的武装状态,然后从飞行日志中绘制RoverMecanumSetpoint中的
yaw_rate_setpoint
(偏航速率设定点)和actual_yaw_rate
(实际偏航速率),并将它们绘制在一起。 - 如果
actual_yaw_rate
超过了yaw_rate_setpoint
或在其周围振荡,则减小RM_YAW_RATE_P的值。否则,您可以增加此值。
请注意,如果您在平坦的地面上行驶,增加此值可能不会观察到设定点跟踪的改善,因为它的主要目的是抑制干扰(通常情况下,RM_YAW_RATE_P的值越高,抑制干扰的效果越好)。
- 将RM_YAW_RATE_P设置为
:::
(可选)RM_YAW_RATE_I [-]:闭环偏航控制器的积分增益。 积分增益会随着时间累积期望偏航速率与实际偏航速率之间的误差,并将该值添加到电机指令中。
TIP
对于偏航速率设定点,积分器增益通常不是必需的,因为该值通常变化较快。
除非必要,否则将此参数保持为零,因为它可能会产生负面影响,例如超调或在设定点周围振荡。
:::
现在,探测车已准备好在特技模式下行驶。
稳定模式
WARNING
要使此模式正常工作,必须已经配置好特技模式!
对于稳定模式,控制器使用闭环偏航控制器,当直线行驶(无偏航速率输入)时,该控制器会创建一个偏航速率设定点来控制偏航。
与闭环偏航速率不同,此控制器没有前馈项。 因此,您只需要调校闭环增益:
RM_YAW_P和RM_YAW_I [-]:闭环偏航控制器的比例增益和积分增益。
TIP
在稳定模式下,闭环偏航控制仅在直线行驶(无偏航速率输入)时才会激活。
要调校它:
将探测车置于稳定模式,然后将控制器的左操纵杆向上和/或向下移动,以向前/向后行驶。
解除探测车的武装状态,然后从飞行日志中绘制RoverMecanumSetpoint消息中的_yaw_setpoint_(偏航设定点)和RoverMecanumStatus消息中的_actual_yaw_(实际偏航),并将它们绘制在一起。
增加/减小RM_YAW_P,直到您对设定点跟踪感到满意为止。
如果您观察到_yaw_setpoint_和_actual_yaw_之间存在恒定的偏差,您可能需要积分项RM_YAW_I。
对于闭环偏航控制,积分器增益是有用的,因为这个设定点通常会在一段时间内保持恒定,积分器可以消除可能导致探测车永远无法达到设定点的稳态误差:
否则,您可以增加该值,直到对设定点跟踪感到满意为止。
:::
现在,探测车已准备好在稳定模式下行驶。
位置模式
位置模式是最先进的手动模式,它利用闭环偏航速率、偏航和速度控制,并借助位置估计。
要进行配置,请设置以下参数:
RM_MAX_SPEED [米/秒]:这是您希望为探测车设置的最大速度。 这将为位置模式定义操纵杆与速度的映射关系,并为所有自动模式的速度设定点设置上限。
TIP
此值可根据您的偏好进行设置,没有通用的经验法则,因为它完全取决于您的探测车和使用场景。
最直接的方法如下:您的探测车有一个最大可能的速度,这由电机能够提供的最大扭矩决定。
在手动模式下,将控制器的左操纵杆完全向上或向下移动。 解除探测车的武装状态,然后从飞行日志中绘制RoverMecanumSetpoint消息中的_forward_speed_setpoint_(前进速度设定点)和RoverMecanumStatus消息中的_measured_forward_speed_(测量的前进速度),并将它们绘制在一起。 如果您没有理由限制探测车的速度,只需将此参数设置为观察到的最高速度即可。
如果您想限制最大速度,则需要先完成步骤2。 之后,在位置模式下,将控制器的左操纵杆完全向上或向下移动,并观察探测车的行为。 不断减小RM_MAX_SPEED的值,直到您对最大速度感到满意为止。
:::
RM_MAX_THR_SPD [米/秒]:此参数用于计算闭环速度控制的前馈项,该前馈项将期望速度线性映射到归一化的电机指令。 一个好的起始值是在手动模式下探测车以最大油门行驶时观察到的地面速度。
这确保速度仅由前馈项控制,这使得调校更容易。 2. 现在将探测车置于位置模式,然后将控制器的左操纵杆向上和/或向下移动,并在几个不同的位置分别保持几秒钟。 3. 解除探测车的武装状态,然后从飞行日志中绘制RoverMecanumSetpoint消息中的_forward_speed_setpoint_(前进速度设定点)和RoverMecanumStatus消息中的_measured_forward_speed_(测量的前进速度),并将它们绘制在一起。
如果探测车的实际速度高于速度设定点,则增加[RM_MAX_THR_SPD](#RM_MAX_THR_SPD)。
如果情况相反,则减小该参数,然后重复此过程,直到您对设定点跟踪感到满意为止。
:::
RM_SPEED_P和RM_SPEED_I [-]:闭环速度控制器的比例增益和积分增益。
TIP
调校此参数时,我们需要考虑以下权衡:增加此参数的值会提高对干扰的抑制能力,但可能会导致设定点出现超调或振荡。
要进行调校:
从RM_SPEED_P的值为0.1开始。
将探测车置于位置模式,然后将控制器的左操纵杆向上/向下移动,并在几个不同的位置分别保持几秒钟。
解除探测车的武装状态,然后从飞行日志中绘制RoverMecanumSetpoint消息中的_forward_speed_setpoint_(前进速度设定点)和RoverMecanumStatus消息中的_measured_forward_speed_(测量的前进速度),并将它们绘制在一起。
如果_measured_forward_speed_超过了_forward_speed_setpoint_或在其周围振荡,则减小RM_SPEED_P的值。 否则,您可以增加此值。
请注意,如果您在平坦的地面上行驶,增加此值可能不会观察到设定点跟踪的改善,因为它的主要目的是抑制干扰(通常情况下,RM_SPEED_P的值越高,抑制干扰的效果越好)。
如果您观察到_measured_forward_speed_和_forward_speed_setpoint_之间存在恒定的偏差,您可能需要积分项RM_SPEED_I。
对于闭环速度控制,积分器增益是有用的,因为这个设定点通常会在一段时间内保持恒定,积分器可以消除可能导致探测车永远无法达到设定点的稳态误差:
- 首先将RM_SPEED_I设置为0.01,然后再次观察设定点跟踪情况。
- 如果_measured_forward_speed_开始超过设定点,则减小RM_SPEED_I的值。 否则,您可以增加该值