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

【论文笔记】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.

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

### 回答1: 这个错误通常发生在你的 while 循环中没有退出条件(或者退出条件不正确)的情况下,导致程序进入死循环,最终抛出异常以中止程序。 为了解决这个问题,你需要确保 while 循环有正确的退出条件。例如,你可以使用 break 或者 return 语句来跳出循环,或者使用条件语句来判断是否需要进入下一次循环。同时,你也可以在循环中打印一些信息来帮助你找出问题所在。 ### 回答2: While语句在没有抛出异常的情况下无法完成。 在编程中,while语句用于循环执行一段代码,直到给定的条件不再满足。通常情况下,while语句会在条件为真的情况下重复执行代码块,直到条件变为假。 然而,在某些情况下,while语句可能无法完成循环而引发异常。这种情况通常发生在循环的条件永远为真(无法改变为假)的情况下,或者在循环体内部发生了错误导致程序终止。 当循环条件永远为真时,while语句将一直重复执行循环体内的代码,而没有任何停止的机制。这可能会导致程序无限循环,并最终耗尽系统资源或导致系统崩溃。 另一种情况是,当循环体内部发生错误并导致异常时,while语句也无法正常完成。例如,在循环体内部执行某些需要外部资源(如文件或网络连接)的操作时,如果出现错误,可能会抛出异常。在这种情况下,while语句可能无法继续执行,因为它依赖于循环体内的操作。 为了解决这个问题,我们需要确保循环条件最终变为假,或者在循环体内部正确地处理可能引发异常的情况。可以使用break语句来提前退出循环,或者使用try-catch语句来捕获并处理异常,以确保程序能够正常结束循环。另外,还应该检查循环条件是否正确,并确保循环体内的操作能够安全地执行,以避免异常的发生。这样可以确保while语句能够正常完成循环而不抛出异常。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ctrl+Alt+L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值