Server Application Examples

This application receives images (four streams) from a message generator, as well as poses from a pose generator, and sends them to the remote client. It does not use joystick commands from the remote client.

This application receives images (one stream) from Isaac Sim and streams them to the remote client, as well as forwarding JoystickStateProto messages sent by the remote client to the robot_remote/RobotRemoteControl component, which allows the Robot in Simulation to be controlled.

See Isaac Sim Unity3D for using Isaac Sim Unity3D and Isaac Sim Built on Omniverse for using Isaac Sim built on Omniverse.

To use the isaac_rc_sim application, follow these steps:

  1. Before running Isaac Sim, modify the config to point to the IP of the device where the Isaac RC server will run so it can receive joystick commands.

    1. For Unity3D, modify the config.navsim.input.host field in builds/factory_of_the_future_Data/StreamingAssets/navsim-pkg/packages/navsim/apps/navsim.app.json within the Isaac Sim package, as shown below:

      Copy
      Copied!
                  

      "config": { "navsim": { "output": { "port": 55000 }, "input": { "port": 55001, "host": "<Isaac RC Server IP>" } } }

    2. For Omniverse, modify the config.interface.input.host field in exts/omni.isaac.robot_engine_bridge/resources/isaac_engine/json/isaacsim.app.json within the Isaac Sim package, as shown below:

      Copy
      Copied!
                  

      "config": { "interface": { "input": { "port": 55001, "host": "<Isaac RC Server IP>" }, "output": { "port": 55000 } } }

  2. Launch Isaac Sim:

    1. For Unity3D, launch the Isaac Sim Factory01 scenario:

      Copy
      Copied!
                  

      bob@desktop:~/isaac_sim_unity3d/builds$ ./factory_of_the_future.x86_64 --scene Factory01 --scenario 1 --logFile -

    2. For Omniverse, launch the Cart Delivery scenario, start the Robot Engine Bridge, and press Play. Refer to Isaac Sim Built on Omniverse for full setup/launch instructions.

  3. In Isaac SDK, open packages/navsim/apps/navsim_navigation.subgraph.json and set the config.interface.output.host field to the IP of the device on which Isaac Sim is running, as shown below:

    Copy
    Copied!
                

    "config": { "interface": { "input": { "port": 55001 }, "output": { "port": 55000, "host": "<Isaac Sim IP>" } } }

  4. Run the application.

Run the following command in the sdk directory, where <app-name> is replaced with isaac_rc_image, isaac_rc_sim, or another user-defined app:

Copy
Copied!
            

bob@desktop:~/isaac/sdk/$ bazel run //packages/isaac_rc/apps:<app-name>

Deploy //packages/isaac_rc/apps:<app-name>-pkg to the robot as explained in Application Console Options, then run the following command in the deploy/bob/<app-name>-pkg directory, where <app-name> is replaced with isaac_rc_image, isaac_rc_sim, or another user-defined app:

Copy
Copied!
            

bob@jetson:~/deploy/bob/<app-name>-pkg$ ./packages/isaac_rc/apps/<app-name>

Any Isaac RC application within Isaac will need a client to connect to. To connect a client to the Isaac RC application, see the Client Build documentation.

© Copyright 2018-2020, NVIDIA Corporation. Last updated on Oct 30, 2023.