# notes-lib **Repository Path**: YapengChen1102/notes-lib ## Basic Information - **Project Name**: notes-lib - **Description**: Nothing here. - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-10 - **Last Updated**: 2025-11-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 项目树 control-sys/ | |--- `__init__.py` | |--- `interpolator.py` | |--- `README.md` # 线性插值器 考虑一电子老鼠在二维迷宫中的移动,状态转移算子是有限的(up, down, left, right),每次状态转移只能移动一个单位长度。 若迷宫是有限大小且是可走出的,那在有限时间内通过有限次状态转移算子可以使得电子老鼠走出迷宫! 现在,我们考虑一个更简单的问题,在平面呢给定一个起点(start point)和终点(terimnus), 要求规划一条路径,使得动点 $m$ 在有限时间内沿着该路径离终点是足够接近。这里需要解释为什么条件要求是:离终点足够近。实际上的动点是在一个有界的闭区域上,如果要求无限接近终点,那移动步长需要无限小,所需时间需要无限长。这是没有意义的。 现在开始分析,由于点的存在不依赖坐标系,那取 $m$ 的初始位置为原点。找到一组单位正交基底后可以建立平面直角系,终点的坐标可以被这组正交基底线性表出。定义内积后可以诱导出范数,即欧氏距离。现在对 $\mathbb{R}^2$ 上的点和向量我们不加区分。用直线连接起点(original point)与终点,这显然就是最短(也最优)路径! 好的,现在我们需要考虑一个更一般的问题,动点的状态转移算子只有 $x \leftarrow x \pm 1$, $y \leftarrow y \pm 1$ ,即动点只能沿着单位长度的网格线移动。 由于我们考虑的是定步长的的路径规划问题,所以误差在所难免。但这不重要,**因为考试不考**。实际上你减小步长,或者再加个模拟退火算法也可以。不过我并不care了。 由于原点到终点的直线是最优路径,那我们要想办法逼近它。几何上通过画格子给出了大概的运动轨迹是什么样的。以第一象限举例,如果动点在直线下方就该往上走一格,如果动点在直线上方就该往右边走一格。用斜率(slope)来判断当 $y_{m}/x_{m} > y_{e}/x_{e}$的时侯说明在直线上方, $\overrightarrow{OM}$ 比 $\overrightarrow{OP_{e}}$ 斜率更大。 定义偏差函数 $F_{m} = y_{m}x_{e} - y_{e}x_{m}$ 。 规定当 $F_{m} \geq 0$ 时有 $x \leftarrow x + 1 $ , 当 $F_{m} < 0$ 时有 $y \leftarrow y + 1$ ,这就是终点在第一象限的线性插补。 现在推导其他象限的动点坐标更新公式。 卡住了,就先写到这吧。。。 > 若在给定了坐标系的框架下求解此类问题只需要做个平移变换。 # 圆弧插值器