集成视触觉传感器的机器人操作学习

强化学习是一种仿人学习的方法,其在不断与环境交互试错的过程中进行学习,提高自身的认知。其具有如下的优点,首先是数据依赖性低,强化学习通过与环境的交互来学习,减少了对标记数据的依赖性,可以大量的减少成本。其次是探索性强,强化学习通过与环境的交互来进行学习,可以更好地探索新的策略。最后是可解释性好,强化学习方法所使用的价值函数、策略等都具有明确的表示形式,能够为动作决策过程提供一定的解释能力。因此,强化学习(RL)是执行复杂任务的有效方法,智能体在与环境交互中利用观察值(Observation)来执行适当的动作以提高奖励(Reward)值,从而完成任务。这种方法适用于复杂任务和未知环境。目前已经提出了多种强化学习策略,如SARSA、Q-learning、DQN、TD3、PPO和DPO。

虽然基于强化学习的方法已经在机器人操作领域取得了不少成果,但仍然存在着不少的问题。由于机械手缺少末端传感器,其所能获取的信息很少,甚至只作为一个末端执行器。这使得很多时候要去根据先验知识进行来使用基于模型的强化学习,这会大大降低训练出来的强化学习模型的鲁棒性和一般性。

如果能够在机械手末端加装传感器来获取更加丰富信息,这些信息可以丰富强化学习的信息量,并作为观察值(Observation)来对齐虚拟和现实,完成强化学习的迁移,提高整体模型的鲁棒性和一般性。视触觉传感器作为一款连续型柔性传感器,与柔性操作有着天然的适配性。将视触觉传感器作为执行器的末端传感器,则可以在操作物体的同时,获取物体的信息。有研究使用生成对抗网络(GAN)基于真实触觉图形来生成伪触觉图像,并以此作为强化学习的观察值。最终使用Tactip完成了表面跟踪操作任务虚拟到现实的迁移。但由于GAN网络所使用数据的专一性,该方法并不具有鲁棒性。还有研究者设计一种新的肌腱连接多功能光学触觉传感器MechTac。该传感器可以用于视野中物体的感知(TacTip)和视觉盲区中触摸点位置的确定(TacSide)。该论文中所提到的二值化卷积层大大提高了图片的预测效率。

图1 视触觉传感器作为末端执行器进行捋线操作

上述研究表明视触觉传感器可以很好地获取物体表面信息,这有助于强化学习虚拟向现实迁移时信息对齐,但这也带来了不小的挑战。上文介绍了强化学习是一种仿人学习的方法,其通过与环境交互试错来不断学习,但这就存在试错成本。如果在现实中直接进行强化学习训练,则会造成如数据采集效率低、设备磨损和安全事故。因此,为了降低强化学习的训练成本,提高安全性和稳定性。强化学习通常在虚拟环境中进行数据的采集和训练。如果想在机械手上加入末端传感器,尤其是柔性传感器,并使用强化学习作为训练策略,则会遇到很多困难,例如在虚拟中如何仿真柔性传感器的变形并获取准确的物体信息。这大大提高了仿真的难度,从而限制了其在强化学习的应用。

为了解决这些问题,人们开始关注到视触觉传感器的仿真方法,如有限元法(FEM)、关键点法和移动最小二乘物质点法(MLS-MPM)等。为了预测视触觉传感器弹性体的变形状态,有研究者使用 MLS-MPM 作为变形预测方法并开发了仿真环境,但它只考虑了弹性的弹性变形,未考虑被操作物体的弹塑性。因此,它仅适用于视触觉传感器与刚性物体之间的相互作用。另有研究者使用有限元(FEM)的方法来对视触觉传感器进行了仿真,通过视触觉传感器的标记点来对齐虚拟和现实的信息,完成了插拔刚体,钥匙开锁等刚性操作。然而对于可变形物体而言,其拥有着更加复杂的变形特性,如弹性、塑性和弹塑性变形。这会继续加大仿真的难度,是一个巨大的挑战。

图2 使用从虚拟到现实的强化学习训练策略进行机器人抓取操作

图3 利用有限元法(FEM)对视触觉传感器进行仿真并最终迁移到现实

随着计算机图形学技术的发展,越来越多基于物理的方法开始应用到仿真环境的设计中。为了模拟弹塑性体,有研究使用粒子群来表示弹塑性体(即橡皮泥),通过粒子之间信息的交互来表征物体因相互作用而发生的变形,并最终描述其变形特征。

图4 针对可变形物体的仿真结果

由于弹塑性体的复杂特性,可能发生弹性、塑性和弹塑性变形。因此视触觉传感器与弹塑性体之间的相互作用更为复杂,这就需要更为先进的仿真方法及可靠的物理引擎。

相关推荐
居然是阿宋24 分钟前
【学习笔记】OkHttp源码架构解析:从设计模式到核心实现
笔记·学习·okhttp
想成为大佬的每一天44 分钟前
Linux驱动学习day20(pinctrl子系统驱动大全)
学习
不太可爱的叶某人9 小时前
【学习笔记】MySQL技术内幕InnoDB存储引擎——第5章 索引与算法
笔记·学习·mysql
岁岁岁平安9 小时前
Redis基础学习(五大值数据类型的常用操作命令)
数据库·redis·学习·redis list·redis hash·redis set·redis string
知识分享小能手11 小时前
Vue3 学习教程,从入门到精通,使用 VSCode 开发 Vue3 的详细指南(3)
前端·javascript·vue.js·学习·前端框架·vue·vue3
pay4fun12 小时前
2048-控制台版本
c++·学习
知识分享小能手13 小时前
Bootstrap 5学习教程,从入门到精通,Bootstrap 5 表单验证语法知识点及案例代码(34)
前端·javascript·学习·typescript·bootstrap·html·css3
weixin_4188138714 小时前
Python-可视化学习笔记
笔记·python·学习
Haoea!14 小时前
Flink-05学习 接上节,将FlinkJedisPoolConfig 从Kafka写入Redis
学习·flink·kafka
丁满与彭彭15 小时前
嵌入式学习笔记-MCU阶段-DAY01
笔记·单片机·学习