python test.py
Creating new Mesh cache: 1
changing goal type, breaking previous cuda graph.
NoneType: None
Traceback (most recent call last):
File "test.py", line 67, in <module>
result = motion_gen.plan_batch(start_state, goal_pose, MotionGenPlanConfig(max_attempts=1), link_poses=state.link_pose)
File "/juno/u/tylerlum/github_repos/curobo/src/curobo/wrap/reacher/motion_gen.py", line 1533, in plan_batch
result = self._plan_batch_attempts(
File "/juno/u/tylerlum/github_repos/curobo/src/curobo/wrap/reacher/motion_gen.py", line 2933, in _plan_batch_attempts
result = self._plan_from_solve_state_batch(
File "/juno/u/tylerlum/github_repos/curobo/src/curobo/wrap/reacher/motion_gen.py", line 3570, in _plan_from_solve_state_batch
ik_result = self._solve_ik_from_solve_state(
File "/juno/u/tylerlum/miniconda3/envs/nerf_grasping_env_experimental/lib/python3.8/contextlib.py", line 75, in inner
return func(*args, **kwds)
File "/juno/u/tylerlum/github_repos/curobo/src/curobo/wrap/reacher/motion_gen.py", line 2571, in _solve_ik_from_solve_state
ik_result = self.ik_solver.solve_any(
File "/juno/u/tylerlum/github_repos/curobo/src/curobo/wrap/reacher/ik_solver.py", line 1182, in solve_any
return self.solve_batch(
File "/juno/u/tylerlum/github_repos/curobo/src/curobo/wrap/reacher/ik_solver.py", line 794, in solve_batch
return self._solve_from_solve_state(
File "/juno/u/tylerlum/github_repos/curobo/src/curobo/wrap/reacher/ik_solver.py", line 1037, in _solve_from_solve_state
goal_buffer = self._update_goal_buffer(solve_state, goal_pose, retract_config, link_poses)
File "/juno/u/tylerlum/github_repos/curobo/src/curobo/wrap/reacher/ik_solver.py", line 586, in _update_goal_buffer
log_error("changing goal type, breaking previous cuda graph.")
File "/juno/u/tylerlum/github_repos/curobo/src/curobo/util/logger.py", line 103, in log_error
raise ValueError(txt)
ValueError: changing goal type, breaking previous cuda graph.
Root Cause
I looked into this and the reason it happens is that the warmup step assumes link_poses=None when doing plan_batch, so it breaks the cuda graph when it is not None afterwards
cuRobo installation mode (choose from [python, isaac sim, docker python, docker isaac sim]): python
Problem
This is the exact same code as the Motion Generation example code but with 2 changes:
link_poses=state.link_pose
to theplan_batch
function.I get the following error with this code:
Root Cause
I looked into this and the reason it happens is that the
warmup
step assumeslink_poses=None
when doingplan_batch
, so it breaks the cuda graph when it is not None afterwardsIssue Details