首页 > 其他分享 >差速AGV机器人速度控制【径向速度控制】【横向速度控制】【速度耦合】

差速AGV机器人速度控制【径向速度控制】【横向速度控制】【速度耦合】

时间:2024-11-03 16:44:38浏览次数:5  
标签:控制 机器人 曲线 横向速度 位置 差速 速度 径向速度

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

AGV机器人多用双轮差速方案行走,速度控制策略可分为三部分:
1、径向速度控制
2、横向速度控制
3、速度耦合输出
本文根据AGV机器人的实际速度控制出发,进行讲解。


无代码

一、径向速度控制

径向速度控制分为二大步,四小步:
第一大步:基于目标的速度规划
目标速度规划是根据目标点位置,当前位置和速度,动力学约束(速度,加速度,加加速度约束)等生成一条理想的速度曲线,为机器人提供一个全局速度规划。
本文所用为:
1、s曲线速度规划
第二大步:基于位置的速度控制
当前位置速度控制是一种实时反馈控制,基于机器人当前位置,位置误差,突发性事件(避障,急停)来调整速度。
2、电机过流,位置误差引起的约束
3、贝塞尔速度约束
4、其余工况限速:避障,急停等

1.s曲线速度规划

径向速度控制中的 S曲线控制 是一种常见的加速度平滑控制方法,主要用来优化机器人从静止加速到目标速度,以及从高速减速到停止的过程。这种控制方法可以有效减少速度急剧变化带来的振动和冲击,使机器人行驶更加平稳。

输入:目标路径点,当前速度和位置,速度约束,加速度约束,加加速度约束。
理论上,根据加速度不同,可以将其分为七段:加加速阶段,匀加速阶段,加减速阶段,匀速阶段,减加速阶段,匀减速阶段,减减速阶段
存在末端路径并非停止点的情况,需要根据情况处理。
实际过程中,由于初速度,距离等限制,不一定每次都存在完整的七段,所以将s曲线简化为:加速阶段,匀速阶段,减速阶段。
需要先判断加速阶段和减速阶段是否可以达到最大加速度,然后去判断是否存在匀速阶段,这部分详情请看另一位博主的文章:

‘https://blog.csdn.net/m0_61616957/article/details/141220514’

输出:可输出速度,加速度,位置随时间t变化的函数。

其中速度随时间t变化的函数,就是我们所需要的速度规划曲线

2.位置偏差的约束

上面s曲线速度规划,得到了一条初始速度规划曲线
实际控制中,电机过流和位置误差也是关键的约束条件,需要在初步速度曲线上进行必要的调整:
1、电机过流检测:实时检测电机电流是否超过允许的安全阈值。如果电流过高,通过降低加速度来减小电机负载,保障安全。
2、位置误差:对于依靠地面二维码识别定位的机器人来说,根据路径中的二维码进行位置更新。
3、根据当前实际位置调整速度,使其与理想速度曲线保持一致。
4、具体实现:使用PID逐步消除误差。

3.贝塞尔速度约束(起始段和末端)

目标:进一步平滑S曲线的加速和减速阶段,使起始和终止阶段的速度曲线符合位置和动力学要求。
控制方式:这部分仍然基于 目标速度规划。我们将贝塞尔曲线与S曲线结合,优化速度曲线的边缘(起点和终点的过渡阶段),避免因速度突变导致的不稳定性。
结合方式:在S曲线的前段和后段叠加贝塞尔控制点,进一步降低初始加速和末端减速的陡峭程度。这相当于为S曲线加上一个柔和的“缓冲区”,使机器人在起步和停止时的动力学特性更加稳定。

4.其他工况限速(避障,急停等)

目标:处理各种动态工况,防止突发状况影响行驶安全。
控制方式:这一阶段采用实时反馈的 当前位置速度控制,在遇到障碍、急停或紧急减速等情况下,通过位置和环境反馈,快速降低速度。
实现方式:如果在路径执行中检测到紧急情况,忽略目标速度规划的全局曲线,优先满足当前位置的动态控制需求。此时的限速优先于S曲线和贝塞尔约束,确保紧急情况下的快速响应。

最后输出左右驱动轮速度,径向速度控制中两驱动轮速度相同。

二、横向速度控制(MPC)

差速驱动的AGV机器人的横向速度控制依靠(MPC)等算法实现。MPC横向控制主要目标是通过实时计算来保持机器人在期望轨迹上,同时稳定地控制机器人的横向位置和姿态偏差。具体到差速机器人,MPC会控制左右车轮的速度差,从而产生期望的转向效果。
一共可以分为五步:
1、建立系统模型;
2、定义目标函数;
3、确定约束条件;
4、求解优化问题;
5、将控制输入转换为差速轮速度;

1.建立系统模型

机器人模型:两轮差速AGV机器人运动学模型较为简单。在此不再赘述。
输入控制量:对于差速驱动机器人,主要控制量是左右车轮的速度

标签:控制,机器人,曲线,横向速度,位置,差速,速度,径向速度
From: https://blog.csdn.net/weixin_48386130/article/details/143382987

相关文章

  • 低功耗控制器概述
    目录一、定义与功能1.1.数据包的编码与解码1.2.无线电信号的发送与接收1.3. 与主机之间的通信桥接1.4.满足物联网和智能设备需求二、结构与层次2.1.物理层(PHY)2.1.1.数据编码与解码2.1.2.工作参数与属性2.2.链路层(LL)2.2.1.连接管理2.2.2.数据传2.2.3.状......
  • 【python应用】Pyarmor:实现 Python 代码授权绑定,控制代码的使用权限,防止反编译和盗用
    原创小白这样学Python随着Python的流行,越来越多的开发者选择使用它来构建各种应用。然而,开源的特性也意味着代码的易读性和可修改性,这对于一些商业项目来说,存在着巨大的安全隐患。为了保护代码的知识产权,开发者们需要采取一些措施,例如代码混淆。Pyarmor应运而生,它是一款功能强......
  • Windows PC通过网络控制PDU开关
    PDU开关原理,是通过跟一台设备进行通信,如果正常通信,则PDU不会进行操作,如果通信中断且超时多长时间多少次后,会进行保持、重启、断开等操作,可以此来对PDU的开关进行控制一 设置IP及循环变量    先设置一个IP,此IP一般为PDU的IP,可用于后续PC和它直接ping包确认是否通信......
  • 基于深度学习的机器人智能控制算法 笔记
    正解/逆解求正解/逆解有现成的库,参考https://github.com/petercorke/robotics-toolbox-python,代码如下:importroboticstoolboxasrtbimportnumpyasnpnp.set_printoptions(precision=6,suppress=True)robot=rtb.models.Panda()qr=np.array([0,-0.3,0,-2.2......
  • 数字信号处理:自动增益控制(AGC)
    自动增益控制::自动增益控制(AutomaticGainControl,AGC)是一种信号处理技术,用于在接收端调整输入信号的增益(或放大系数),以保持信号在一个合适的强度范围内,从而防止信号过弱或过强。工作原理:AGC电路通过测量接收到的信号强度,将该强度与一个预设的理想水平进行比较,并根据两者的......
  • Linux进程控制
    目录1.进程创建1.1.fork()函数常规用法1.2.fork()函数创建失败的原因 2.进程退出 2.1退出码2.2将错误码转化为错误描述 2.2.1利用系统自带的方法进行转化2.2.2自定义的方式2.3普通函数的返回值2.4错误码2.4.2错误码和退出码的区别 2.5进程退出的几种情况2.6......
  • 2024年大湾区杯数学建模竞赛 A 题 证券市场投资风险控制模型设计 思路和代码(持续更新)
    目录任务一:风险计量指标计算与分析1.1平均收益率计算1.2市场流动性(换手率)1.3市场情绪指标(波动率)指标的经济意义和分析任务二:系统性风险预测模型构建2.1多因子模型示例2.2使用GARCH模型预测波动性任务三:事前风控体系构建任务四:合理收益预期设定任务一:风险计量......
  • 如何实现跨境设备操作?ToDesk远程控制加持全球节点轻松搞定
    随着近年来国际化水平的逐步提高,跨境的学习、交流、工作、旅行等已愈发常见。然而虽然交通出行也算方便,但针对频繁两地往来、海内外人员协助互动等,从省时、省力、省财力精力等成本方面考量,通过来回往返来解决却并非是一个最佳选项。那么,面向例如外资企业远程协助境外同事处理任务......
  • 内置RC振荡器/抗干扰能力强VK1668 SOP24数码管驱动控制器/LED驱动器原厂技术支持
    产品品牌:永嘉微电/VINKA产品型号:VK1668封装形式:SOP24概述VK1668是一种带键盘扫描接口的数码管或点阵LED驱动控制专用芯片,内部集成有3线串行接口、数据锁存器、LED驱动、键盘扫描等电路。SEG脚接LED阳极,GRID脚接LED阴极,可支持13SEGx4GRID、12SEGx5GRID、11SEGx6GRID、10S......
  • 利用Msfvenom对Windows进行远程控制
    一、准备工作先在kali安装Apache2,下载代码如下sudoaptinstallapache2 启动Apache2服务serviceapache2start 在kali浏览器中输入你的kaliIP,得到该页面说明启动成功二、开始1.msf远控生成(1)在kali运行msf生成exemsfvenom-pwindows/meterpreter/reverse_t......