机械表征介绍<br>

The characterization tools consist of a python application that runs on the user’s PC and matching robot code that runs on the user’s robot. The PC application will send control signals to the robot over NetworkTables, while the robot sends data back to the application. The application then processes the data and determines characterization parameters for the user’s robot mechanism, as well as producing diagnostic plots. Data can be saved (in JSON format) for future use, if desired.

什么是“表征”?

“表征” , 或者更正式地说,”系统识别”<https://en.wikipedia.org/wiki/System_identification>`__ - 是通过对系统的投入和输出进行统计分析来确定系统行为的过程。

在FRC比赛中,我们想表征化的最常见的系统是’永磁直流电机<https://en.wikipedia.org/wiki/Brushed_DC_electric_motor#Permanent-magnet_motors>`__. 具体来说,我们想要找出需要哪个电机“输入”(即电机控制器的电压)来实现我们所需的“输出”(即电机的速度和加速度)。

幸运的是,这样做并不是那么困难。永磁直流电动机(除摩擦和惯性外无负载)将遵循以下“电压平衡方程式”(有关更多信息,请参见本文<https://www.chiefdelphi.com/uploads/default/original/3X/f/7/f79d24101e6f1487e76099774e4ba60683e86cda.pdf>`__):

\[V = kS \ cdot sgn(\ dot {d})+ kV \ cdot \ dot {d} + kA \ cdot \ ddot {d}\]

其中:V是施加的电压,D是电动机的位移(位置),dot {d}是其速度,而ddot{d}是它的加速度(传统上,“ 过点”符号表示相对于时间的导数”<https://en.wikipedia.org/wiki/Derivative>`__ )。

试探性地,我们可以将上式中的系数解释如下:

``kS’’是克服电动机静摩擦,或换句话说,就是使电动机运动所需的最小电压。事实证明,无论速度还是加速度,这种静摩擦都具有相同的效果。也就是说,无论您以多大的速度或多大的速度加速,施加在电机上的电压的恒定部分(取决于特定的机构组件)都将克服您齿轮,轴承上的静摩擦。这个值就是您的kS。一定要注意到信号功能”<https://en.wikipedia.org/wiki/Sign_function>`__, 的存在,因为摩擦力始终与运动方向相反。

kV describes how much voltage is needed to hold (or “cruise”) at a given constant velocity while overcoming the electromagnetic resistance in the motor and any additional friction that increases with speed (known as viscous drag). The relationship between speed and voltage (at constant acceleration) is almost entirely linear (with FRC® components, anyway) because of how permanent-magnet DC motors work.

``kA’’描述了在电机轴中感应给定加速度所需的电压。与``kV’’一样,对于FRC组件,电压和加速度(在恒定速度下)之间的关系几乎完全呈线性关系。

一旦确定了这些系数(此处通过“多次线性回归<https://en.wikipedia.org/wiki/Linear_regression>”完成),我们就可以为电动机获取给定的所需速度和加速度,并计算为达到该速度而应施加的电压。这非常有用:不仅用于跟随运动曲线,而且还可以使机械装置在开环控制中更可控,因为操纵杆输入将更接近实际机械装置的运动。

该工具套件中的某些工具在上述方程式中引入了其他术语,以说明与上述简单情况的已知差异-每个工具的详细信息如下:

随附的表征工具

注解

很多其他类型的机制可以通过简单地修改该库中的现有代码来表征

机器人特征化工具套件目前支持以下特征化:

  • 简单的电机设置

  • 动力总成

  • 电梯

简单的电机表征

这个简单的电机表征工具确定方程的最佳拟合参数:

\[V = kS \ cdot sgn(\ dot {d})+ kV \ cdot \ dot {d} + kA \ cdot \ ddot {d}\]

其中math:V`是施加的电压,math:`d`是驱动器的位移(位置),math:ddot {d}`是其速度,而math:`ddot { d}`是它的加速度。如上所述,该模型是除摩擦和惯性外没有负载的永磁直流电动机的模型,并且是飞轮,转塔和水平线性滑块的精确模型。

传动系统表征

传动系统表征工具确定方程的最佳拟合参数:

\[V = kS \ cdot sgn(\ dot {d})+ kV \ cdot \ dot {d} + kA \ cdot \ ddot {d}\]

其中:math:V`是施加的电压, :math:`d 是驱动器的位移(位置),\(\dot{d}\)ddot{d}`是它的加速度。这与简单的电动机表征描述中使用的建模方程式相同。但是,传动系统表征器专门设置为在差动驱动器上运行,并且在需要时将独立地描述驱动器的每一侧。

传动系特性也可以通过陀螺确定机器人的有效轨迹宽度。关于如何运行表征的更多信息可参见:ref:‘轨迹宽度表征<docs/software/wpilib-tools/robot-characterization/characterization-routine:Running Te sts>文章中提供了有关如何运行表征的更多信息。

臂表征化

臂表征工具确定方程的最佳拟合参数:

\[V = kS \ cdot sgn(\ dot {\ theta})+ kCos \ cdot cos(\ theta)+ kV \ cdot \ dot {\ theta} + kA \ cdot \ ddot {\ theta}\]

其中 \(V\)theta`是手臂的角位移(位置), \(\ dot {\ theta}\))以正确说明重力的影响。

电梯表征

电梯表征工具确定方程的最佳拟合参数:

\[V = kG + kS \ cdot sgn(\ dot {d})+ kV \ cdot \ dot {d} + kA \ cdot \ ddot {d}\]

其中:math:V`是施加的电压,:math:`d`是驱动器的位移(位置),:math:dot {d}`是其速度,而:math:ddot { d}`是它的加速度。添加常数项(:math:`kG)可以正确说明重力的影响。

先决条件

要使用Robot Characterization Toolsuite,您必须在计算机上安装Python 3.7以及标准的WPILib编程工具。

Python 3.7

警告

不要从Microsoft Store安装Python。请使用上面的链接下载并安装Python。

安装和启动Toolsuite

要安装Robot Characterization Toolsuite,请打开控制台并输入以下命令

pip install frc-characterization

工具套件及其所有依赖项均应自动下载并安装。如果您使用的是Windows计算机,并且无法识别命令pip,请确保将python脚本文件夹已添加到PATH https://datatofish.com/add-python-to-windows-path/

注解

如果您使用的是Ubuntu,则必须使用`` sudo apt-get install python3-tk ‘’手动安装tkinter。您还必须使用pip3命令而不是pip,因为pip指的是Ubuntu发行版上的Python 2。

如果您已经安装了工具套件,请确保定期进行更新以从错误修正和新增功能中受益:

pip install --upgrade frc-characterization

注解

如果您想使用该工具的beta版本,则必须键入“ pip install –pre –upgrade frc-characterization ”。

安装工具套件后,请从Powershell或终端窗口运行以下命令,启动一个新的驱动器表征项目,以确保其工作。

frc-characterization drive new

新的项目GUI应该会立即打开。要启动其他表征项目,只需用所需的表征类型(“ arm ”,“ elevator ”,“ simple-motor ”)替换“ drive ”。

尽管新的项目GUI具有用于启动日志记录工具和分析器工具的按钮,但是也可以通过将`` new ‘’替换为`` logger ‘’或`` analyzer ‘’来直接从CLI启动这些按钮。

重要

It is highly recommended that you utilize the new project GUI to launch the logger and analyzer tools for more effective unit conversions rather than launching the logger and analyzer from the CLI.

有关CLI使用的更多信息,请输入“ frc-characterization -h ”。