双编码器构建机器人零力拖动/导纳控制思路

本文介绍了作者在实验中如何通过与力控专家讨论,理解了UR5机器人如何利用导纳控制实现零力拖动,重点讲解了双编码器策略在感知外力并进行补偿的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

这篇博客主要记录昨日与实验室大佬针对UR5机器人拖动示教功能实现的思路。由于本人并非主攻力控方面。直到昨天在做实验的时候,与力控组的大佬讨论过后才了解UR机器人实现导纳控制的思路。

关于导纳控制/零力拖动

导纳控制与阻抗控制单从字面去理解很容易记混淆,实际上只要从算法输入输出就可以进行区分。
导纳控制: 机器人感知外力,根据控制律,输出电机的位移与速度;
阻抗控制: 机器人感知目标位移,目标速度与当前位移,当前速度的差值,根据控制律,输出电机的力矩。
导纳控制可以应用于零力拖动(示教)等任务场景。下图就是导纳控制的经典框图,参考仓库
导纳控制
可以看出输入到机器人的是位移与速度项

双编码器思路

对于外力的感知,是构建导纳控制的关键。有多种方法可以对外力的进行估计与测量,比如直接使用力传感器,动量估计算法等等… 但是在这里则是采用双编码器思路,一个编码器固定于电机端,另一个编码器固定于运动输出端,二者通过减速器进行连接。当施加外力使得机器人的关节偏离原位后,两个编码器之间的差值通过类似胡克定律的方式计算出外力。此即为双编码器思路。
当感知到外力后,就需要按照上面的控制律分别计算出机器人关节的加速度项,从而实现导纳控制。

关于重力补偿

从上面的控制律表达式可以看到,并没有动力学方程中的 G ( q ) G(q) G(q)项,因此并没有重力补偿的需求。

机器人导纳控制是指通过传感器等监测装置实时感知机器人末端执行器与环境相互作用的矩等信息,根据设定的导纳参数,将机器人末端执行器的运动控制与环境相互作用的进行实时调节和控制的一种方法。机器人导纳控制的实现需要编写相应的控制算法,并进行仿真和实验验证。 Matlab是一种功能强大的科学计算软件,可以进行数值计算、绘图和编程等操作。在机器人导纳控制的实现中,可以利用Matlab来进行算法的编写和仿真。 实现机器人导纳控制的Matlab源码主要包括以下几个方面: 1. 动学模型的建立:根据机器人的结构特点和运动学参数,通过Matlab进行建模,并获取机器人末端执行器的位置、速度和加速度等信息。 2. 传感器的数据获取:通过Matlab读取连接在机器人末端执行器上的传感器数据,获取环境对机器人作用的矩等信息。 3. 导纳参数设定:根据需求和控制目标,设定机器人导纳控制的参数,包括刚度和阻尼等。 4. 导纳控制算法的编写:根据机器人导纳控制的原理,利用Matlab编写相应的导纳控制算法,实现机器人末端执行器运动的调节和控制。 5. 控制指令的发送:通过Matlab将计算得到的控制指令发送给机器人控制器,实现对机器人末端执行器的运动控制。 6. 仿真与实验验证:利用Matlab进行导纳控制算法的仿真和实验验证,通过对机器人的位置、传感器数据等进行监测和分析,评估导纳控制算法的性能和效果。 总之,通过编写Matlab源码来实现机器人导纳控制,可以有效地控制和调节机器人末端执行器在与环境相互作用时的运动,提高机器人在不同工作场景中的操作性能和灵活性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值