vex LemLib的纯追踪
提示:如果需要更多设置上下文信息,请查看示例项目。
简介
在本教程中,我们将使用纯追踪(Pure Pursuit)。纯追踪是一种路径跟踪算法,可让机器人快速跟随路径。
什么是纯追踪?
纯追踪是一种路径跟踪算法,可让机器人快速跟随路径。它的工作原理是在机器人周围绘制一个假想圆,然后找到该圆与路径的交点。然后机器人将朝着交点行驶。如下 GIF 所示: 
调整纯追踪非常简单。如果希望机器人更紧密地跟随路径,请减小前瞻距离。如果希望机器人更松散但更快地跟随路径,请增加前瞻距离。一个好的起点是 10 - 15 英寸,但这会因每个动作而有所不同。
创建路径
你可以使用path.jerryio.com为自主机器人生成路径。
使用路径生成器很简单:
- 选择 LemLib 格式(右上角)。
- 左键拖动以移动现有路径点(大紫色圆圈)。
- 左键点击以添加路径点。
- 右键点击以删除路径点。
path.jerryio 的另一个功能是能够让机器人在某些点上更快或更慢地行驶。规划器将在急转弯周围自动减慢机器人的速度,并在接近路径末端时减速。你可以在页面底部的速度图上查看每个路径点的路径速度。请观看以下视频:
有关 path.jerryio 的更多信息,请查看其用户指南。
文件
Path.jerryio 将路径保存为.txt 文件。你可以将此文件上传到你的机器人,然后再次上传到 path.jerryio 以便稍后进行进一步修改。
要上传路径,你只需要将.txt 文件保存到项目中的“static”文件夹中。要执行此操作,请在 Windows 上按“Ctrl + S”,或在 Mac 上按“⌘ + S”,然后浏览到“static”文件夹并选择它。现在,如果你点击保存,它将自动保存到你的“static”文件夹中的文件中。
快完成了!现在我们只需要告诉机器人跟随路径。我们可以通过“lemlib::Chassis::follow”函数来实现。以下是如何使用它的示例:
// 路径文件名是“example.txt”。
// 为克服 C++ 的限制,将“.”替换为“_”
ASSET(example_txt);
ASSET(example2_txt)
void autonomous() {
// 设置底盘姿态
chassis.setPose(0, 0, 0);
// 前瞻距离:15 英寸
// 超时时间:2000 毫秒
chassis.follow(example_txt, 15, 2000);
// 跟随下一条路径,但机器人向后行驶
chassis.follow(example2_txt, 15, 2000, false);
}在上面的示例中,机器人读取“example.txt”中的路径,超时时间为 2000 毫秒,前瞻距离为 15 英寸。跟随完该路径后,它将读取“example2.txt”中的路径并跟随它。这次机器人将向后行驶,因此最后一个参数设置为 false。
注意: 机器人开始跟随路径时的位置至关重要。它不需要非常接近,但很容易意外地使机器人在路径末端而不是起点开始。你可以通过路径末端的棋盘格标志来识别路径的末端。如果你犯了这个错误,机器人似乎几乎不动,不在它应该在的地方移动,甚至根本不动。
本文来自 [LemLib](https://lemlib.readthedocs.io/en/stable),经翻译发布于此以供大家学习使用!侵删!