I created a standalone application following this tutorial for loading a robot into Isaac Sim.
I want to load my own custom robot, but I tested it with the Franka robot usd provided in Isaac Sim:
usd_path = "/home/<user_name>/Desktop/franka_alt_fingers.usd"
prim_path = "/World/envs/env_0/panda"
# load the Franka Panda robot USD file
stage_utils.add_reference_to_stage(usd_path, prim_path)
# wrap the prim as an articulation
prim = Articulation(prim_path=prim_path, name="franka_panda")
world.reset()
action = ArticulationAction(joint_positions=np.array([0.0, -1.0, 0.0, -2.2, 0.0, 2.4, 0.8, 0.04, 0.04]))
prim.apply_action(action)
When I run it using python.sh, I get the error:
Traceback (most recent call last):
File "/home/<user_name>/Dev/isaac_sim/scenario.py", line 66, in <module>
prim.apply_action(action)
File "/home/<user_name>/.local/share/ov/pkg/isaac_sim-2023.1.1/exts/omni.isaac.core/omni/isaac/core/articulations/articulation.py", line 898, in apply_action
self._articulation_controller.apply_action(control_actions=control_actions)
File "/home/<user_name>/.local/share/ov/pkg/isaac_sim-2023.1.1/exts/omni.isaac.core/omni/isaac/core/controllers/articulation_controller.py", line 53, in apply_action
applied_actions = self.get_applied_action()
File "/home/<user_name>/.local/share/ov/pkg/isaac_sim-2023.1.1/exts/omni.isaac.core/omni/isaac/core/controllers/articulation_controller.py", line 235, in get_applied_action
applied_actions = self._articulation_view.get_applied_actions()
AttributeError: 'ArticulationController' object has no attribute '_articulation_view'. Did you mean: '_articulation_handle'?
i wonder if this is because of the defined prim path. there was a change in how that was managed from 2023.1.0 to 2023.1.1 and i suspect the documentation you were following isn’t quite up to date.
here’s the detail regarding the update:
another example of user encountering issue when using wrong articulation root prim path:
I tried again with the prim_path being the articulation root “/World/franka_alt_fingers”, found by filtering by Articulation Root in the stage of the usd file in Isaac Sim. However, when I run the program, I get the same error.
Hi, @dekusmash016
Glad to hear you resolved the issue! Thank you for sharing your solution with the community; it’s always helpful to have these insights.
I have a follow-up question that might help others who encounter similar problems. When you compared your script to the one in the Isaac Sim documentation, what specific elements were missing that led to the issue? Was it only the line my_world.scene.add(hand_bot), or were there other crucial parts that needed to be included?
If we don’t add this line, custom robot is loading into isaac sim but it wont move and its throwing an warning like
2024-08-08 07:38:46 [7,226ms] [Warning] [omni.isaac.core.articulations.articulation_view] ArticulationView needs to be initialized.
and if we give any commads for joint target positions or getting any information from robot, it won’t give infromation correctly.
joint_positions are None
dof are : None
So, I thought we need to add articulation view first, scene add, and initalize physics to resolve this issue.
If we can do any other way, please let me know and @VickNV the main thing is Isaac sim documentation is here, but it is not giving all the information, I had to go to this doc to find about articulation view and code. I feel that Isaac sim documentation is already huge, but for few extensions and customs we need to go another docs again.
Thank you for your feedback on our documentation. We appreciate you taking the time to share your experience.
It seems the warning “ArticulationView needs to be initialized.” is indeed critical. This warning indicates that the ArticulationView object must be properly initialized before it can be used. This step is essential for ensuring that the articulation is correctly set up and can interact with the simulation environment as expected.