ACS运动控制:轨迹拐点、曲率不连续点

2024-08-22 05:08

本文主要是介绍ACS运动控制:轨迹拐点、曲率不连续点,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.拐点是什么:

拐点是在2个相邻段之间的非光滑连接的点。在一个拐点处,速度矢量改变了它的方向。如果这个速度矢量非0,那么所有与该段轨迹相关的坐标轴在拐点处的速度均表现出不连续性。

2.曲率不连续点是什么:

是即使两个相邻段之间是平滑连接的,但是两个段具有不同或不同方向的曲率。大多数这样的光滑连接,其实际上是间断点(曲率不连续点)。在该类型的不连续点上,所有相关坐标轴都表现出加速度的不连续性。

3.怎么样进行速度轮廓的规划:

如果在运动开始之前就已经指定了所有运动段,也即整个路径是已知的,所以,可以计算一整个运动轨迹段的速度分布。

然而,一个典型情况是,控制器执行XSEG运动,而程序或上位机会继续添加新的运动段。新添加的段可以改变先前段的速度分布。例如,新的分段指了一个较低的速度,该速度从这个新段的第一个点就开始生效。那么,控制器就会让前一个或多个段的速度曲线减速。

综上,所以,该控制器就要提供动态计算,并且如果必要,在每次添加新段时,都要重新计算运动轮廓。

为了实现速度的前瞻计算,ACSPL+程序或上位机必须可以在前一个段运动完成之前就要添加下一个新段。如果是在ACSPL+程序中添加段,那没有问题。但是,如果是上位机通过通信信道添加新的段,那么可能会出现无法及时提供段的情况,这种情况称为“段饥饿”。如果出现“段饥饿”,控制器这边就会置位AST.#STARV标志并执行防止运动不连续的特定算法。该算法避免了机械的颠簸(jerk)。但是,如果“段饥饿”在持续,那么移动速度就会减慢;一旦上位机开始以足够的速度提供段,那么控制器就会恢复到正常运动。

如4.6.6节动态速度轮廓规划所述,XSEG命令实现了用于速度轮廓计算的“动态”方法。计算需要显著的处理时间,可能会导致控制器过度使用故障的情况如下。

在XSEG命令中指定轴数量可以是2-6个轴。

  • 前两个轴被认为是主轴。
  • 添加到轴列表中的任何附加轴(最多4个)被认为是辅助轴。
    在XSEG命令中,为XSEG轴列表中指定的每个轴指定初始坐标(参见
    XSEG…ENDS

现有的GSEG参数指示当前执行的实际段,在轨迹处理之后。轨迹处理可以通过添加附加段(在舍入的情况下)或通过移除段(在零长度段的情况下)来改变段编号。因此,GSEG编号可能不对应于最初由用户段定义的编号。
新引入的GSEGU参数指示当前执行的原始用户段。任何添加或删除的段不会影响最初由用户段定义的GSEGU编号。
下面的参数不会被一个XSEG运动改写,因为他们是只读且只表示运动状态的变量。

不同组的开关可以一起使用,比如,可以指定曲率不连续点(/D)处的速度以及拐点处允许的偏差(/G)。在这种情况下,控制器首先为轨迹应用拐点圆滑处理,然后为以及处理的轨迹计算速度轮廓
这个参数被忽略怎么理解:比如在曲率不连续点,指定了一个较高的速度值,但是,显然的是,控制器计算出来的所需要的速度要很低,才能过这个点,那么,你指定的这个速度参数就会被忽略。

拐点处理的三种方式(只能三选一):

  • 1.根据允许偏差进行拐点舍入(/g):用户指定运动轨迹的最大允许偏差(maximum permitted)。控制器在拐角处插入一个附加段,使得得到的路径是平滑的并且符合最大偏差。
  • 2.根据允许半径的拐点舍入(/u):用户指定附加段(additional segment)最大允许舍入半径。控制器在拐角处插入一个附加段,使得得到的路径是平滑的并且符合最大允许半径。
  • 3.自动拐角舍入(/h):用户指定自动转角舍入的最大段长度(maximum segment length)。如果两段的长度小于最大段长度,则控制器应用自动转角舍入。
  • 4.自动拐点处理(/y)

这篇关于ACS运动控制:轨迹拐点、曲率不连续点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1095328

相关文章

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

poj2406(连续重复子串)

题意:判断串s是不是str^n,求str的最大长度。 解题思路:kmp可解,后缀数组的倍增算法超时。next[i]表示在第i位匹配失败后,自动跳转到next[i],所以1到next[n]这个串 等于 n-next[n]+1到n这个串。 代码如下; #include<iostream>#include<algorithm>#include<stdio.h>#include<math.

XTU 1233 n个硬币连续m个正面个数(dp)

题面: Coins Problem Description: Duoxida buys a bottle of MaiDong from a vending machine and the machine give her n coins back. She places them in a line randomly showing head face or tail face o

轨迹规划-B样条

B样条究竟是干啥的?白话就是给出一堆点,用样条的方式,给这些点连接起来,并保证丝滑的。 同时B样条分为准均匀和非均匀,以下为准均匀为例。 参考链接1:https://zhuanlan.zhihu.com/p/50626506https://zhuanlan.zhihu.com/p/50626506 参考链接2: https://zhuanlan.zhihu.com/p/536470972h

控制反转 的种类

之前对控制反转的定义和解释都不是很清晰。最近翻书发现在《Pro Spring 5》(免费电子版在文章最后)有一段非常不错的解释。记录一下,有道翻译贴出来方便查看。如有请直接跳过中文,看后面的原文。 控制反转的类型 控制反转的类型您可能想知道为什么有两种类型的IoC,以及为什么这些类型被进一步划分为不同的实现。这个问题似乎没有明确的答案;当然,不同的类型提供了一定程度的灵活性,但

Unity3D 运动之Move函数和translate

CharacterController.Move 移动 function Move (motion : Vector3) : CollisionFlags Description描述 A more complex move function taking absolute movement deltas. 一个更加复杂的运动函数,每次都绝对运动。 Attempts to

深入解析秒杀业务中的核心问题 —— 从并发控制到事务管理

深入解析秒杀业务中的核心问题 —— 从并发控制到事务管理 秒杀系统是应对高并发、高压力下的典型业务场景,涉及到并发控制、库存管理、事务管理等多个关键技术点。本文将深入剖析秒杀商品业务中常见的几个核心问题,包括 AOP 事务管理、同步锁机制、乐观锁、CAS 操作,以及用户限购策略。通过这些技术的结合,确保秒杀系统在高并发场景下的稳定性和一致性。 1. AOP 代理对象与事务管理 在秒杀商品

PostgreSQL中的多版本并发控制(MVCC)深入解析

引言 PostgreSQL作为一款强大的开源关系数据库管理系统,以其高性能、高可靠性和丰富的功能特性而广受欢迎。在并发控制方面,PostgreSQL采用了多版本并发控制(MVCC)机制,该机制为数据库提供了高效的数据访问和更新能力,同时保证了数据的一致性和隔离性。本文将深入解析PostgreSQL中的MVCC功能,探讨其工作原理、使用场景,并通过具体SQL示例来展示其在实际应用中的表现。 一、

vue2实践:el-table实现由用户自己控制行数的动态表格

需求 项目中需要提供一个动态表单,如图: 当我点击添加时,便添加一行;点击右边的删除时,便删除这一行。 至少要有一行数据,但是没有上限。 思路 这种每一行的数据固定,但是不定行数的,很容易想到使用el-table来实现,它可以循环读取:data所绑定的数组,来生成行数据,不同的是: 1、table里面的每一个cell,需要放置一个input来支持用户编辑。 2、最后一列放置两个b

全英文地图/天地图和谷歌瓦片地图杂交/设备分布和轨迹回放/无需翻墙离线使用

一、前言说明 随着风云局势的剧烈变化,对我们搞软件开发的人员来说,影响也是越发明显,比如之前对美对欧的软件居多,现在慢慢的变成了对大鹅和中东以及非洲的居多,这两年明显问有没有俄语或者阿拉伯语的输入法的增多,这要是放在2019年以前,一年也遇不到一个人问这种需求场景的。 地图应用这块也是,之前的应用主要在国内,现在慢慢的多了一些外国的应用场景,这就遇到一个大问题,我们平时主要开发用的都是国内的地