add articulate debug in load_task_solution at part_joint_limits keyerror problem

This commit is contained in:
2025-09-15 20:01:32 +08:00
parent 3cdeb975b7
commit 8b89b2e35b
3 changed files with 33 additions and 10 deletions

View File

@@ -2,8 +2,10 @@
import copy
import json
import os
from sqlite3 import dbapi2
import time
from pyboot.utils.log import Log
import trimesh
curPath = os.path.abspath(os.path.dirname(__file__))
@@ -210,6 +212,7 @@ def get_aligned_pose(active_obj, passive_obj, distance=0.01, N=1):
def load_task_solution(task_info):
Log.info('Loading task solution')
# task_info = json.load(open('%s/task_info.json'%task_dir, 'rb'))
stages = task_info['stages']
@@ -217,7 +220,8 @@ def load_task_solution(task_info):
'gripper': OmniObject('gripper')
}
for obj_info in task_info['objects']:
for i, obj_info in enumerate(task_info['objects']):
Log.info(f'Loading object: {obj_info["object_id"]} [Loading task solution: {i+1}/{len(task_info["objects"])}]')
obj_id = obj_info['object_id']
if obj_id == 'fix_pose':
obj = OmniObject('fix_pose')
@@ -245,15 +249,19 @@ def load_task_solution(task_info):
objects[obj_id] = obj
if hasattr(obj, 'part_ids'):
if hasattr(obj, 'part_joint_limits') and obj.part_joint_limits is not None:
obj_parts_joint_limits = obj.part_joint_limits
for part_id in obj.part_ids:
id = obj_id + '/%s' % part_id
objects[id] = copy.deepcopy(obj)
objects[id].name = id
objects[id].part_joint_limit = obj_parts_joint_limits[part_id]
#====== DEBUG START ======
print(f'debug: ')
import ipdb;ipdb.set_trace()
#====== DEBUG END ======
if hasattr(obj, 'part_joint_limits') and obj.part_joint_limits is not None:
objects[id].part_joint_limit = obj.part_joint_limits[part_id]
if len(obj.part_ids):
del objects[obj_id]
Log.success('Finished Loading task solution')
return stages, objects