Where2Act: From Pixels to Actions for Articulated 3D Objects

概述

项目主页
解读参考:12

方法

在这里插入图片描述
在这里插入图片描述
Actionability Scoring Module:计算逐点的action ability score a p a_p ap
Action Proposal Module:计算特定点的交互轨迹
Action scoring module:计算proposal action的成功概率

Tips: train one network per primitive action but across all shape categories

实验

两个指标(F-score,Sample-Succ),三个baseline和消融实验
the binary classification accuracy of the action scoring network Ds,F-score balancing precision and recall for the positive class.

代码初读

仓库地址

代码概览

gen_offline_data.py是一个用于批量生成数据的脚本,调用DataGen类。它接受命令行参数来控制数据生成的过程,并通过并行处理的方式生成与物体交互的模拟数据。通过run_gen_offline_data.sh来调用。
DataGen类描述详见后文
train_3d_critic.py 对应action scoring module D s D_s Ds 的预训练
train_3d.py 对应完整encoder和三个decoder。具体三个模块如下。
关于Critic和ActionScore的辨析:

  1. Critic类,action scoring module,the interaction outcome

    critic只输入交互点的特征,和操作向量,输出操作成功的概率。👇

    one success likelihood score s R ∣ p s_{R|p} sRp for each action proposal R R R.
    在这里插入图片描述
    在这里插入图片描述

  2. Actor类,Action Proposal Module

    这里是引用 在这里插入图片描述

  3. ActionScore类,Actionability Scoring Module

    这里是引用 在这里插入图片描述

env.py

负责整个仿真环境的管理 ,由robot camera都会加入env的scene中
self.engine = sapien.Engine(0, 0.001, 0.005)
self.renderer = sapien.OptifuserRenderer(config=render_config) # 3.0弃用
self.engine.set_renderer(self.renderer)
self.renderer_controller = sapien.OptifuserController(self.renderer) # 3.0弃用
self.renderer_controller.set_camera_position # 3.0弃用
self.renderer_controller.set_camera_rotation # 3.0弃用
self.renderer_controller.render()

self.object.get_qpos()
self.scene.step()

#line97
for j in self.object.get_joints():
if j.get_dof() == 1: # 如果关节的自由度是 1(即可旋转或可平移),它会被认为是可移动的部件
self.movable_link_ids.append(j.get_child_link().get_id())
其中 j.get_dof()涉及到SAPIEN中关节自由度的定义,即”一个关节可以在多少个独立方向上移动“。
旋转关节(Revolute Joint):有 1 个 DOF,意味着它只能绕某个轴旋转。
平移关节(Prismatic Joint):有 1 个 DOF,意味着它只能沿某个方向平移。
球形关节(Spherical Joint):有 3 个 DOF,意味着它可以绕三个轴旋转。
固定关节(Fixed Joint):有 0 个 DOF,意味着它没有运动自由度。
j.get_child_link()获取的是child_link,简单来说base的那个是parent link,而姿态改变的那个是child link。

#line116
get_limits() 获取关节的角度限制,在 URDF 文件中通过 标签来指定

limits = j
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值