【论文笔记】Throwing Objects into A Moving Basket While Avoiding Obstacles

news/2024/5/18 21:44:10 标签: 强化学习, 机器人, 论文阅读

文章目录

  • 【论文笔记】Throwing Objects into A Moving Basket While Avoiding Obstacles
    • Abstract
    • I. INTRODUCTION
    • II. RELATED WORK
      • A. Analytical Approaches
      • B. Learning Approaches
      • C. Other Works
    • III. METHOD
      • A. Preliminaries
        • Markov Decision Process (MDP)
        • Off-policy RL
      • B. Problem Formulation
        • States
        • Actions
        • Transition function
        • Rewards
        • Dones
      • C. Perception
    • IV. EXPERIMENTS AND RESULTS
      • A. Experimental setup and tasks settings
      • B. Baseline Methods
      • C. Results
      • D. Failure Cases
    • V. CONCLUSIONS

【论文笔记】Throwing Objects into A Moving Basket While Avoiding Obstacles

Abstract

  1. 研究意义】通过利用投掷行为,机器人的能力将得到显著提高。特别是,投掷将使机器人能够快速地将物体放入目标篮筐中,而且是位于其可行的运动学空间之外的位置,而无需到达所需的位置。
  2. 前人研究方法与不足】通过分析方法、模仿学习或软件编程(hand-coding)来学习一个参数化的投掷“内核”(模型)。在许多情况下,由于各种物体形状、不均匀的质量分布以及环境中可能出现的障碍,这些方法不能很好地工作/推广/泛化。
  3. 引出科学问题】It is obvious that a method is needed to modulate the throwing kernel through its meta parameters. 很明显,需要一种方法来通过其元参数来调制/调节投掷的内核。
  4. 解决科学问题采用的方法】深度强化学习方法。
  5. 具体技术路线机器人在每个时间步长检测目标物体、篮中和障碍物的姿势/位姿,预测目标物体的正确抓取配置,然后推断出适当的参数,将物体扔进篮中。由于安全约束,在Gazebo中开发了一个模拟环境来训练机器人,然后直接在真实机器人中使用学习到的策略。
  6. 实验方案】为了评估所提出的方法的性能,在三个场景下的模拟和真实机器人中进行了广泛的实验集。
  7. 可实现的效果】解决物体投掷问题,使机器人能够在有障碍物阻碍路径时精确地将物体扔到移动的篮子中。
  8. 实验指标】(定性)机械手臂的物理可达性 ↑ \uparrow ,执行时间 ↓ \downarrow ;(定量)扔掷成功率
  9. 效果观看网页】https://youtu.be/VmIFF__c_84

I. INTRODUCTION

  1. 为什么要在机器人中增加扔的动作?

    机器人操纵器中添加这样的投掷动作能增强其功能。

    机器人能够快速地将物体放置到机器人的运动学范围之外的目标位置。

  2. 机器人中增加扔的动作的难点在于?

    它取决于许多因素,从投掷前的条件(例如,物体在夹具内的初始姿态)到物体的特性(如形状、尺寸、柔软度、质量、材料等)。

    当环境中存在障碍,目标篮子在移动时,投掷就变得更加困难。

  3. 大体上实现这个任务的思路?

    首先,为了成功地完成投掷任务,机器人必须处理视觉信息,以了解场景中存在哪些物体(即目标物体、篮子和障碍物),物体的状态是什么(即姿势、速度等),以及如何抓取目标对象(抓取综合)。然后,机器人找到一个无障碍的轨迹来抓住物体。

    然后,考虑到场景中存在的障碍物和目标篮的状态,需要预测投掷参数,将物体精确地投掷到所需的位置(如执行投掷轨迹的速度、释放时间等)。

    最后,机器人使用这些参数来执行投掷运动。

  4. 作者的创新点?

    据我们所知,我们是第一批在环境中存在障碍物和目标篮子移动时处理抛物体的小组。

    尽管只使用仿真数据进行了训练,但该方法可以直接应用于真实机器人

    此外,它对新目标位置和看不见物体展现了很强的的泛化能力。

    实验表明,在模拟和真实机器人环境下,训练后的困难任务(即在有障碍物阻碍路径时将物体扔入篮子)均可达到80%以上的物体投掷精度。

II. RELATED WORK

A. Analytical Approaches

早期的投掷系统依赖于手工制作或机械分析,然后优化控制参数来执行一次投掷,从而使弹丸(通常是一个球)落在目标位置。

精确的动力学建模是困难的,因为它需要关于物体、抓手和环境的物理特征的知识,而这些知识很难量化。

B. Learning Approaches

与投掷的分析方法不同,基于学习的方法使机器人能够通过成功或失败信号直接学习/优化主要任务。一般来说,基于学习的投掷方法比分析方法具有更好的性能。

在这两项作品中,物体(球和飞镖)的性质都是预先已知的。

与这两种方法相反,我们并没有对被抛出的物体的物理性质做出假设。

C. Other Works

试图结合分析方法的潜力和学习方法的机器人投掷任务。

使用解析模型来近似初始控制参数,并使用基于学习的模型来估计残差参数来调整初始参数,这种方法被称为残余物理学。

For instance, [4] proposed TossingBot, an end-to-end self-supervised learning method for learning to throw arbitrary objects with residual physics.

[4] A. Zeng, S. Song, J. Lee, A. Rodriguez, and T. Funkhouser, “TossingBot: Learning to throw arbitrary objects with residual physics,” IEEE Transactions on Robotics, vol. 36, no. 4, pp. 1307–1319, 2020.

与作者的工作类似,[4] 的方法能够把一个物体扔进一个篮子里。

与作者的方法不同,[4] 使用分析方法来估计初始控制参数,然后使用端到端范式来学习投掷运动原语的剩余速度。作者将投掷任务表示为一个调节核运动生成器参数的RL问题。

III. METHOD

A. Preliminaries

Markov Decision Process (MDP)

Off-policy RL

B. Problem Formulation

p s p_s ps: the start pose, grasp synthesis of an object.

p g p_g pg: the goal pose, the pose of the basket.

A fully observable MDP can be used to represent this task, and the off-policy reinforcement learning framework can be used to solve it.

States

19维度的状态空间~

itemproprioobsgoaldisttime
meaning初始和最终的肩关节数值障碍物在任务空间中的位置目标在任务空间中的位置(即框的中心)被投掷物体相对于障碍物和目标的绝对距离,以及X轴和Y轴上的距离执行投掷轨迹的持续时间,以及释放物体的时间
representation ( j i , j f ) (j_i,j_f) (ji,jf) ( x o , y o , z o ) (x_o,y_o,z_o) (xo,yo,zo) ( x g , y g , z g , x ˙ g , y ˙ g , z ˙ g ) (x_g,y_g,z_g,\dot{x}_g,\dot{y}_g,\dot{z}_g) (xg,yg,zg,x˙g,y˙g,z˙g) ( d g , d x g , d y g , d o , d x o , d y o ) (d_g,d_{xg},d_{yg},d_{o},d_{xo},d_{yo}) (dg,dxg,dyg,do,dxo,dyo) ( t r , τ ) (t_{r},\tau) (tr,τ)

Actions

四维度的动作,每个维度的范围都是 [ − 1 , 1 ] [-1,1] [1,1]

分别代表:肩关节初始值,肩关节最终值,轨迹执行的持续时间,释放对象时间。

Transition function

目标随机化:在每个训练过程中,我们随机设置目标的姿势,然后设置机器人和目标姿势之间的障碍物姿势,在 x x x 轴上具有 ± 5 ±5 ±5 厘米的随机性。

隐式的状态转移函数,也就是里面如何状态转移不得而知。

需要注意的是,由于转换函数是未知的,我们的 off-policy 强化学习框架也是无模型 model-free 的。

Rewards

如果被投掷的物体在执行投掷动作后落入目标篮内,则达到成功。

计算物体和目标之间的绝对距离 d i s ( o , g ) < d dis(o,g)<d dis(o,g)<d,其中 d d d 表示篮子内的圆柱形空间的半径。

当状态和行动采取时,如果被投掷的物体与障碍物碰撞,则负奖励 r = − 10 r=−10 r=10 给予严重的惩罚。

需要注意的是,碰撞信息只能在动作执行完毕后才能获得。

如果下一个状态导致了成功(被扔出去的物体掉进了篮子里),我们通过设置奖励 r = 1 r = 1 r=1 来鼓励这种行为。

在将物体扔出目标篮外的情况下,也会通过根据距离 r = − d i s ( o , g ) r=−dis(o,g) r=dis(o,g) 计算奖励来进行惩罚。

Dones

一个事件在执行一个投掷动作后被终止。

成功的尝试会被记录下来,以便以后用于行为克隆。

C. Perception

1

为一个示例场景可视化,我们的感知模块的输出:对象姿态、大小和标签方面的世界模型信息。

特别地,估计的对象的姿态由参照系显示,对象的大小由绿色边界框显示,对象的标签在对象的z轴顶部用红色突出显示。此外,预测的抓握姿态由一个黄色的握把表示。

真机配置: an RGB-D Asus Xtion camera,两个UR5搭在一起的双臂机器人

通过捕获 30 H z 30 Hz 30Hz 的点云数据来感知环境;感知系统提供了一个世界模型服务,智能体可以在每个时间步长调用来接收世界的当前状态,其中包括唯一的ID、姿态、速度、标签和每个对象的抓取合成。

一般来说,一个点云由一组点组成, p i : i ∈ { 1 , … , } p_i: i\in\{1,…,\} pi:i{1},其中每个点由其三维坐标 [ x , y , z ] [x,y,z] [xyz] 和RGB-D信息描述。为了跟踪目标对象的姿态和速度,我们使用了一个考虑形状和颜色数据的粒子滤波器 [15]。

[15] S. Kasaei, J. Sock, L. S. Lopes, A. M. Tome, and T.-K. Kim, “Perceiving, learning, and recognizing 3d objects: An approach to cognitive service robots,” in Proceedings of the AAAI Conference on Artifificial Intelligence, vol. 32, no. 1, 2018.

IV. EXPERIMENTS AND RESULTS

主要的定量实验指标: the throwing success rate,它的计算方法是一个被扔出的物体落入目标盒子的次数除以试验的次数。

实验目的:(1)当在相同的环境和任务设置中使用时,哪一种RL方法在投掷成功率方面优于其他基线;(2)我们的方法是否学会了在有障碍物阻碍目标篮前进时安全地将物体扔入目标篮;(3)在模拟中学习到的策略能很好地转移到我们的真实机器人上。

A. Experimental setup and tasks settings

2

在 Gazebo 上开发了一个与我们的真实机器人非常相似的模拟环境,以减少模拟和真实机器人之间的差距,并促进迁移学习。由于安全约束,我们首先在仿真环境中对机器人进行训练,然后将学习到的策略直接转移到真实的机器人中,而不进行微调


设计了三种任务。

Task123
Meaning将无障碍物体扔进一个随机放置在机器人前面的静态篮子中。无障碍物体扔进一个移动的篮子。当障碍物阻碍投掷路径时投掷物体。

我们使用了10个具有不同材料、形状、大小和重量的物体,来模拟日常生活中存在的物体,以及5个真实存在的物体。特别是,在训练过程中,我们使用了5个模拟物体(即牛奶盒、可乐罐、香蕉、瓶子、苹果),其他5个模拟物体被用于测试(如啤酒罐、桃子、肥皂、品客客片、芥末瓶)。在真实的机器人实验中,我们使用了5个家用物体,它们在大小和形状上与训练阶段使用的模拟物体不同(即丑陋的玩具、猫咪、小盒子、果汁盒、手皂)。

B. Baseline Methods

Baselines:DDPG 和 SAC ,使用 baselines3 框架。

SAC 和 DDPG 的神经网络结构由两个隐藏层组成,每层大小为256个网络,具有 ReLU 激活函数。

3

DDPG的参数在上一篇论文 [21].

[21] S. Luo, H. Kasaei, and L. Schomaker, “Accelerating reinforcement learning for reaching using continuous curriculum learning,” in 2020 International Joint Conference on Neural Networks (IJCNN). IEEE, 2020, pp. 1–8.

行为克隆(Behavior Cloning, BC),通过使用在训练和测试阶段收集的25k个成功试验中的状态动作对的监督学习,直接学习一个策略(即,类似Actor网络)。

C. Results

对于每个提出的任务,我们使用这5个训练对象对模型进行了5万步的模拟训练。

“看不见的物体”是一组训练中看不见的混合物体,“看见的物体”是一组训练中使用的混合物体。

在模拟的情况下,对于每个对象,机器人的投掷性能使用学习策略进行了100步测试:一次是五个测试(看不见的)对象,一次是五个训练(看见的)对象。

我们还在真实的机器人实验中使用了相同的学习策略,并对每个测试对象进行了20次测试。

4

“A-B”: A 指代 “看得见” 或者 “看不见” 的东西; B 指代 “Simulation” 或者 “Real” 的东西

5

连续的快照显示了我们的模拟机器人成功地把一个牛奶盒扔进篮子里(任务1)。

SAC是DDPG, BC 和自身相比最好的方法.

在这一轮的实验中,机器人无法到达篮子,机器人应该首先抓住目标物体,然后根据篮子的姿势,推断出合适的参数,将物体成功地扔进篮子里。

6

在模拟实验中,我们随机选择了移动篮子的方向和一个线性速度,而在真实的机器人实验中,一个人类用户使用一根棍子移动篮子

SAC是DDPG, BC 和自身相比最好的方法.

有趣的是,与仿真结果相比,具有DDPG策略的机器人在现实世界中表现不如SAC没有竞争力。

7

与上一轮实验类似,采用SAC策略的机器人在可见和看不见物体上都优于DDPG和BC。

通过比较所有实验,我们发现,当任务难度较大时,SAC策略与其他策略之间的差异较大。

特别是,具有SAC策略的机器人可以更好地建模解决方案空间,并处理在真实世界的对象中呈现的未建模的物理参数(例如,空气动力学、材料或刚度)。

实验结果表明,我们的学习方法保持了表达复杂动力学系统所需的灵活性,同时通过试错使学习更容易。

D. Failure Cases

失败的情况分析

  1. 模拟实验:参数预测不准确,投掷到临近的框。

  2. 真实实验:除了仿真实验外,还有以下:

    第一:不准确的跟踪是主要原因之一,用户移动物体非常快,跟踪不能立即跟踪物体的姿态;

    第二:执行夹持器命令的滞后,存在“电脑——控制器——夹持器控制器”这样的时间延迟;

    第三:选择一个不稳定的抓握姿势。

  3. 对于形状不同的物体,如丑玩具、手皂和猫咪,被扔物体的轨迹随抓取姿势的不同而变化。

    相比之下,对于同质物体,被投掷物体的运动轨迹并不依赖于抓握姿势。

V. CONCLUSIONS

In the continuation of this work, we would like to investigate the possibility of enhancing throwing performance by taking into account additional sensory modalities (e.g., force or tactile sensors), as these could help the robot grasp objects steadily and adjust its throwing parameters accordingly.

往模型中加入力或触觉传感器


http://www.niftyadmin.cn/n/176961.html

相关文章

Redis缓存与数据库双写一致性

数据库和缓存&#xff08;比如&#xff1a;redis&#xff09;双写数据一致性问题&#xff0c;是一个跟开发语言无关的公共问题。尤其在高并发的场景下&#xff0c;这个问题变得更加严重。今天这篇文章我会从浅入深&#xff0c;跟大家一起聊聊&#xff0c;数据库和缓存双写数据一…

【备战秋招-04】Java 面向对象编程

基础知识 面向对象的三大特征 封装 (Encapsulation)继承 (Inheritance)多态 (Polymorphism) 面向对象&#xff1a;Object Oriented Programming 面向过程&#xff1a;Procedure Oriented Programming 类是对一类事物的描述&#xff0c;是抽象的、概念上的定义 对象是实际…

计算机视觉 基于CUDA编程的入门与实践 CUDA Streams五

一、Cuda Streams 在GPU上是通过使用CUDA流来实现任务并行的,CUDA流是GPU上的工作队列,队列里的工作将以特定的顺序执行。这些工作可以包括:内核函数的调用,cudaMemcpy系列传输,以及对CUDA事件的操作。它们添加到队列的顺序将决定它们的执行顺序。 每个CUDA流可以被视为单…

半导体器件基础08:MOS管结构和原理(2)

说在开头&#xff1a;关于海森堡和泡利&#xff08;3&#xff09; 索末菲每周都要和学生们谈话&#xff0c;跟每个学生都保持了密切联系&#xff0c;他推荐泡利和海森堡去哥廷根大学找玻恩学习&#xff0c;玻恩很赏识这两个年轻人。玻恩也有一个研讨班&#xff0c;搞了一班优秀…

Fuzzing101系列 Exercise 1 - Xpdf

序言 Fuzzing101系列包含针对10 个真实目标的10个练习&#xff0c;在练习中一步一步学习Fuzzing技术的知识。 模糊测试&#xff08;Fuzzing/Fuzz&#xff09;是一种自动化软件测试技术&#xff0c;它基于为程序提供随机或变异的输入值并监视它的异常和崩溃。 AFL、libFuzzer…

org.quartz.jobStore.misfireThreshold配置的作用

org.quartz.jobStore.misfireThreshold配置的作用如果同时满足执行条件的Trigger比较多&#xff0c;而线程池却比较小&#xff0c;那么可能导致有些Trigger在规定的时间没有被触发&#xff0c;对于这些未被按时触发的Trigger&#xff0c;Quartz是如何处理的呢&#xff1f; Qua…

MQTT协议史上最全解析(纯干货分享)

目录MQTT是什么&#xff1f;一些术语解释MQTT特点MQTT控制报文格式十四种控制报文1号控制报文&#xff1a;CONNECT – 连接到服务端2号控制报文&#xff1a;CONNACK – 确认连接请求3号控制报文&#xff1a;PUBLISH – 发布消息4号控制报文&#xff1a;PUBACK – 发布确认5号控…

9-数据结构-单链表头插法尾插法

问题&#xff1a; 单链表头插法与尾插法 思路&#xff1a; 头插法&#xff0c;类似于前面的在末位置前&#xff0c;插入元素。最后创建完为逆序&#xff1b;尾插法&#xff0c;则是定一个尾指针r&#xff0c;每次接入新的结点s&#xff0c;随后rs(即r往后移位) 详解&#xf…