Isaac Sim cannot find robot class extension

Hi all,

I’m trying to write a class for my robot based on the code used for the Jetbot class, and I try to use it in the Hello Robot turtorial similarly to how the Jetbot class is used. I created a new folder in isaac_sim-2021.2.1/exts which is a copy of omni.isaac.jetbot folder, called it omni.isaac.link, and changed all of the files in this directory to from to for my Link robot. For some reason, the simulation doesn’t recognize the directory and generate this error:

2022-03-06 19:44:07 [184,109,573ms] [Error] [omni.ext.impl._internal] Failed to import python module omni.isaac.examples.tests. Error: No module named 'omni.isaac.link'. Traceback:
Traceback (most recent call last):
  File "/home/USER/.local/share/ov/pkg/isaac_sim-2021.2.1/kit/plugins/bindings-python/omni/ext/impl/_internal.py", line 65, in import_module
    return importlib.import_module(name)
  File "/home/USER/.local/share/ov/pkg/isaac_sim-2021.2.1/kit/python/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/USER/.local/share/ov/pkg/isaac_sim-2021.2.1/exts/omni.isaac.examples/omni/isaac/examples/tests/__init__.py", line 17, in <module>
    from .test_hello_world import *
  File "/home/USER/.local/share/ov/pkg/isaac_sim-2021.2.1/exts/omni.isaac.examples/omni/isaac/examples/tests/test_hello_world.py", line 18, in <module>
    from omni.isaac.examples.hello_world import HelloWorld
  File "/home/USER/.local/share/ov/pkg/isaac_sim-2021.2.1/exts/omni.isaac.examples/omni/isaac/examples/hello_world/__init__.py", line 9, in <module>
    from omni.isaac.examples.user_examples.hello_world import HelloWorld
  File "/home/USER/.local/share/ov/pkg/isaac_sim-2021.2.1/exts/omni.isaac.examples/omni/isaac/examples/user_examples/__init__.py", line 1, in <module>
    from omni.isaac.examples.user_examples.hello_world import HelloWorld
  File "/home/USER/.local/share/ov/pkg/isaac_sim-2021.2.1/exts/omni.isaac.examples/omni/isaac/examples/user_examples/hello_world.py", line 90, in <module>
    from omni.isaac.link import Link
ModuleNotFoundError: No module named 'omni.isaac.link'

2022-03-06 19:44:07 [184,109,573ms] [Error] [carb.scripting-python.plugin] Exception: Extension python module: 'omni.isaac.examples.tests' in '/home/USER/.local/share/ov/pkg/isaac_sim-2021.2.1/exts/omni.isaac.examples/.' failed to load.

At:
  /home/USER/.local/share/ov/pkg/isaac_sim-2021.2.1/kit/plugins/bindings-python/omni/ext/impl/_internal.py(169): startup_all_extensions_in_module
  /home/USER/.local/share/ov/pkg/isaac_sim-2021.2.1/kit/plugins/bindings-python/omni/ext/impl/_internal.py(225): startup_all_extensions_in_module
  PythonExtension.cpp::startup()(2): <module>

2022-03-06 19:44:07 [184,109,573ms] [Error] [omni.ext.plugin] [ext: omni.isaac.examples-0.1.17] Failed to process python module extension in '/home/USER/.local/share/ov/pkg/isaac_sim-2021.2.1/exts/omni.isaac.examples/.'.

I added the class to omni.isaac.examples.tests but it didn’t help.
I am very new to Isaac Sim and trying to learn my way around it. Please let me know if I miss something.

Thank you!

Hi @OM_Metab

Have you also made the necessary changes to the internal folder names and the extension.toml file? In any case, can you share your extension folder here?

HI @toni.sm, yes I did. Here is my extension.toml:

display_name = "Isaac Link Robot"

[dependencies]
"omni.isaac.core" = {}
"omni.isaac.kit" = {}

[[python.module]]
name = "omni.isaac.link"

I preserved all of the folders’ hierarchy; I replaced the name “jetbot” with “link” in all files.
Here are the files:

extension.toml (139 Bytes)
README.md (105 Bytes)
index.rst (386 Bytes)
CHANGELOG.md (113 Bytes)

Hi @OM_Metab

Have you also enabled the extension (Window > Extension menu) before use it?
In any case, here is a version of your omni.isaac.link extension. It is a copy of omni.isaac.jetbot whit the following changes:

omni.isaac.link.zip (463.6 KB)

  • omni.isaac.link/config/extension.toml

    display_name = "Isaac Link Robot"
    
    [dependencies]
    "omni.isaac.core" = {}
    "omni.isaac.kit" = {}
    
    [[python.module]]
    name = "omni.isaac.link"
    
  • omni.isaac.link/omni/isaac/link/init.py

    from omni.isaac.link.jetbot import Jetbot
    
  • omni.isaac.link/omni/isaac/link/controllers/init.py

    from omni.isaac.link.controllers.differential_controller import DifferentialController
    

In addition, here is a screenshot showing how to enable it and an import test in the script editor

Hope this helps you to identify the differences and fix your extension :)

1 Like

It really helped! thank you

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.