Follow these steps to build and run the Isaac RC client sample app for x86_64.
The client machine running Ubuntu 18.04 must have the following software installed in order to make use of the Isaac RC client SDK:
CUDA 10.2 toolkit and drivers: Refer to the CUDA installation guide for Linux.
OpenGL 3.1: This should come with CUDA drivers. Run the following command to check your GL version:
bob@desktop:/home/bob$ glxinfo | grep "OpenGL version"
Niels Lohmann JSON:
bob@desktop:/home/bob$ sudo apt install nlohmann-json-dev
Obtain the Isaac RC client packages from here, then extract and install:
bob@desktop:/home/bob/Downloads$ tar -xf isaac-rc-client_1_0_x86.tar.gz
bob@desktop:/home/bob/Downloads$ cd isaac-rc-client_x86
bob@desktop:/home/bob/isaac_rc-client_x86$ sudo dpkg -i libjrt_amd64.deb libjrt-dev_amd64.deb isaac-rc-client_1.0.0_amd64.deb
The Isaac RC client package comes with a prebuilt sample app.
Setup
The following steps are necessary when running the client sample app:
The client should have a server to connect to, so follow Server Build documentation to set that up first. When the console running Isaac RC server says “A client may now connect”, run the client.
Refer to these steps to set up a controller.
Running the Sample App
Run the following command:
bob@desktop:/opt/nvidia/nvrc-client/samples/isaac_rc$ ./isaac_rc_client <Isaac RC Server IP>
Notice this command is run in a specific directory where the sample binary can be found. The binary can be moved around and run from any directory, but only if the command is modified to reflect the relative location of the binary.
Using a Controller with the Sample App
After running the sample app, a window should appear with the video stream that the server is sending. Controls can be sent using the controller: Hold down L1 while using LS to move forward/backward and RS to turn right/left.
The source for the client sample app may be modified for other use cases and recompiled.
Installing Prerequisites
In addition to the IsaacRC client prerequisites, the following dependencies are required to build the sample app:
CMake 3.5+:
bob@desktop:/home/bob$ sudo apt install cmake
GLFW:
bob@desktop:/home/bob$ sudo apt install libglfw3-dev
GL3W:
bob@desktop:/opt/nvidia/nvrc-client/samples/isaac_rc$ sudo ./install_gl3w.sh [<Path to Install Location>]
Notice this command is run in a specific directory where the installation
script can be found. Also, notice the installation path argument, which can
be left blank to install GL3W in /usr/lib
and /usr/include
.
If a different installation path is specified,
/opt/nvidia/nvrc-client/samples/isaac_rc/CMakeLists.txt
must be
modified to add that installation location to lib and include search paths.
Some commented-out code exists and can be uncommented; after that, the
GL3W_LIB_DIR
and GL3W_INCLUDE_DIR
variables should be
modified to point to the locations of the lib
and include
directories where GL3W was installed, respectively.
Build Process
To develop the sample source outside the default location in an existing workspace, run the following command:
bob@desktop:/home/bob$ cp -r /opt/nvidia/nvrc-client/samples/isaac_rc <Path to Workspace>
Run the following commands in the isaac_rc
directory within your workspace:
bob@desktop:/home/bob/workspace/isaac_rc$ mkdir build
bob@desktop:/home/bob/workspace/isaac_rc$ cd build
bob@desktop:/home/bob/workspace/isaac_rc/build$ cmake ..
bob@desktop:/home/bob/workspace/isaac_rc/build$ make -j$(nproc)
If you did not copy the sample source into an existing workspace and instead
wish to build within the default installation location for the client sample,
you will need to run the above commands with admin permissions (use
sudo
) or change the owner of the
/opt/nvidia/nvrc-client/samples/isaac_rc
directory.
Running the Rebuilt Sample App
Make sure to follow setup instructions before running following command.
bob@desktop:/home/bob/workspace/isaac_rc/build$ ./isaac_rc_sample <Isaac RC Server IP>
Using a Controller with the Rebuilt Sample App
The instructions are the same as in the section on using controller with the sample app.