文章目录
概述
项目主页:https://cs.stanford.edu/~kaichun/where2act/
解读参考:https://zhuanlan.zhihu.com/p/685524104
https://www.zhihu.com/people/chen-yuan-46-31-51/posts
方法
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
代码初读
代码概览
gen_offline_data.py
是一个用于批量生成数据的脚本。它接受命令行参数来控制数据生成的过程,并通过并行处理的方式生成与物体交互的模拟数据。通过run_gen_offline_data.sh
来调用。
datagen.py
是一个用于并行生成数据的模块,通过调用其他脚本(collect_data.py
、recollect_data.py
和checkcollect_data.py
)来处理数据收集任务。
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_ch