Skip to main content
Run Wuji SDK applications in Linux Docker containers to keep the application and SDK dependencies in a separate environment. A container can connect to devices through the host network and share the host’s SDK user data. Configure network access and data mounts for your application to use device connection, data subscription, device-supported control, parameters, and recording. See the Wuji SDK Reading Guide for API usage.

Prepare the Environment

Install Docker Engine on the Linux host, then run docker version to check that both the client and server are available. The image uses Ubuntu 22.04 and Python 3.10. The default container user is wuji, with UID and GID both set to 1000. Connect and power the device as described in the Wuji Hand 2 hardware walkthrough or Wuji Glove setup. Confirm the host can discover it using Device Discovery and Connection. Put the host network adapter on the same subnet as the device IP and allow UDP broadcasts and SDK traffic.

Build and Update

Clone the public Wuji SDK repository and build the image with its Dockerfile:
The image installs the latest stable SDK from PyPI at build time. Existing images keep their installed SDK version. Starting a container doesn’t update the SDK. After building, check the version and record the image ID:
Before updating an existing image, run docker image tag wuji-sdk:local wuji-sdk:rollback to keep a rollback tag, then rebuild with --pull --no-cache.

Run the Application

Follow the public repository’s Docker README to start the container, mount the repository’s Python examples, and run a read-only subscription example. The README provides run commands and permission setup for Ethernet and USB devices. --network host preserves the broadcasts needed to discover Ethernet devices. Mount the host’s ~/.wuji at /home/wuji/.wuji in the container to retain user profiles, calibration data, and logs. This directory and its existing files must allow the container user (UID/GID 1000) to read and write.

Use SDK Capabilities

Applications in the container can use the SDK installed in the image. Provide the resources needed for the APIs your application uses:

Recover and Diagnose

If an update causes connection problems, replace wuji-sdk:local in the run command with wuji-sdk:rollback. Keep the same data-directory mount, then check SDK import, device discovery, and read-only data. For technical support, provide the image ID, SDK/Python versions, host architecture, Docker version, device firmware, and failing steps. On Jetson, include the model and JetPack/L4T version.