docs.unity3d.com
    Warning

    Warning: Unity Simulation is deprecated as of December 2023, and is no longer available.

    Migrate from SensorSDK to USP Sensors

    Overview

    The SensorSDK and SystemGraph products have been discontinued. SensorSDK is being replaced by a new product, Unity Simulation Pro (USP) Sensors, to support sensor modeling. This migration guide will provide step-by-step instructions on transitioning from SensorSDK to USP Sensors smoothly.

    Understanding the Conceptual Similarities

    USP Sensors and SensorSDK share conceptual similarities as they both offer a library of prebuilt sensors and the capability to create custom sensors. Similar to SensorSDK, it is possible to develop custom sensor types in USP Sensors utilizing nodes and ports. The two packages significantly differ, however, in implementation and user workflow. So it is important to note that migrating from SensorSDK to USP Sensors will require some rewriting, depending on the extent of custom code and usage of Prefabs.

    Migration Process

    This page will guide you through the necessary steps and best practices for migrating from SensorSDK to USP Sensors. Detailed documentation on USP Sensors can be found here.

    Feature Comparison

    Please refer to the table below for a comparison between the features offered by the two products. USP Sensors are planned to be at feature parity with SensorSDK, with a few exceptions. If you require a feature labeled as "Not planned" or not mentioned in the list, please contact us for further assistance.

    Comparison of Functionality with USP Sensors

    Category SensorSDK Feature Equivalent USP Feature (all dates in 2023)
    Camera RGB Camera CameraSensor Prefab
    Red Camera CameraSensor: Grayscale Filtering
    Brown-Conrady Camera CameraSensor: Distortion Parameters
    Segmentation Camera Not planned
    Fisheye Camera FisheyeCamera Prefab
    Parallel Stereo Camera StereoDepthSensor Prefab
    ToF Camera ToF Sensor
    LiDARs Camera Based Lidar Raster Lidar, Physics Lidar
    Raytraced Lidar (all other types) RayTracedLidarSensor Prefab
    Laser Configuration Laser Configuration
    Scan Pattern/FoV Scan Patterns
    Data Export/Conversion Save point clouds to disk
    Predefined Lidar Brands:
    - Ouster
    - Velodyne
    - YDLidar
    Planned early November
    Materials with Light Spectrum Support Material Spectroscopy
    Motion Correction/Trajectory Component Correct Point Cloud Motion
    SystemGraph Nodes Segmentation/Perception package integration Not planned
    Visualization DefaultVisualizationSuite
    Point Cloud to Depth Planned for future release
    White Balance Use post processing on a volume
    ACESToneMapping Use post processing on a volume
    Noise Within CameraSensor properties in inspector, change Camera Noise
    Red, Green, Blue, Luminance Filter CameraSensor: Grayscale Filtering
    Azimuth Correction/ Pixel Shift Not planned
    Synchronous Nodes/Scheduler Scheduler, SynchronizedSensorNode

    Benefits of Migrating

    We understand that migrating to a new product requires effort, but we assure you it will be worth it. By migrating to USP Sensors, you will gain access to enhanced functionality, including support for Universal Render Pipeline (URP), Linux compatibility, inertial sensors, and seamless integration with other packages within USP such as ROS Integrations, Vehicle Controllers, URDF Importer, Distributed Rendering, Linux Headless Simulation, and more.

    We appreciate your interest and commitment to this migration process. Should you have any questions or require further assistance, please do not hesitate to contact our support team. We will do our best to ensure a smooth transition and provide you with the best possible experience.

    Thank you for choosing Unity Simulation Pro. We look forward to working with you!

    Technical Details

    Supported Operating Systems and Hardware

    All USP sensors run on Windows, macOS and Linux, except the USP Raytraced Lidar (which maps to any Lidar in SensorSDK that is not camera-based), which only runs on Windows and Linux. Additional requirements are as follows:

    OS OS Version GPU
    Windows 7, 10, 11 DirectX 10, 11 or 12-capable
    macOS Mojave 10.14+(Intel)
    Big Sur 11.0 (Apple silicon)
    Metal-capable Intel or AMD
    Linux Ubuntu 18.04 or 20.04 Vulkan-capable,with the following Vulkan extensions supported:
    - VK_EXT_descriptor_indexing
    - VK_KHR_acceleration_structure
    - VK_KHR_ray_tracing_pipeline
    - VK_KHR_buffer_device_address
    - VK_KHR_deferred_host_operations
    - VK_KHR_pipeline_library

    Making a Sensor

    Read the documentation for Setting Up a Sensor.

    Using Nodes and Ports

    In USP Sensors, the concepts of nodes and ports are similar to those in SystemGraph, although they are not represented graphically. Here's how you can work with nodes and ports in USP Sensors.

    Nodes

    To make a node, create a class that extends the Sensor class, then add it to a GameObject in the Scene. Then, add Ports as needed; see below.

    Instead of extending the Sensor class, you can also extend one of the following classes, which provide specialized functionality:

    • SynchronizedSensorNode: Allows sensors to subscribe to the Scheduler based on their UpdateRate

    • PublisherNode: Publishes data from a Sensor to a topic

    • SingleImageProcessingNode: Provides common functionality for running a compute shader on a single input texture and creating a single output texture

    • ImageProcessingNode: Provides the base functionality for loading and initializing a compute shader for processing images

    Ports

    Create a port with an instance of SensorPort<T>. This is used for both input and output ports. Access the data in a port with m_Data, and set data using SetData(). For Image Messages, use and instance of ImageMessagePort. This provides support for reading of a RenderTexture, and will convert to an ImageMsg (for use with ROS).

    See an example of how Nodes and Ports work together here.

    Example Migration

    Suppose you have the following sensor made with SystemGraph (broken into two parts for readability):

    To convert this to USP Sensors, let's break down the components step by step:

    1. RGB Camera:

      • In USP, the equivalent of an RGB camera is the CameraSensor Prefab.To incorporate it, simply add the CameraSensor Prefab to your scene.
    2. Dummy Node:

      • To create the Dummy Node in USP, follow the approach outlined in the "Using Nodes and Ports" section.

      • Create a C# script that represents the Dummy Node and attach it to a game object in the scene.

    3. Tone Mapping:

      • In USP, the equivalent of Tone Mapping is achieved through ACES Post Processing on a volume.

      • To apply tone mapping to the scene, follow these steps:

        • Add a Volume component to a game object in the scene.

        • In the inspector, navigate to "Add Override" > "Post-processing" and select "Tonemapping".

        • On the Tonemapping override, toggle on “Mode” and select ACES

    Contact Us

    For feedback on our documentation, questions or feature requests, reach out to us at unitysimulationpro@unity3d.com

    FAQs

    Q: Why are we discontinuing SensorSDK?

    A: There is a lot of overlap between the functionality of SensorSDK and USP. USP was chosen for the following reasons:

    • SensorSDK is only supported on Windows, where USP is supported on Linux, Windows, and macOS.

    • USP is built to work with ROS connectors and supports creating custom connectors. Read more here.

    • USP Sensors works with Distributed Rendering. This is another part of USP which allows you to scale your sensor computations across many GPUs/machines. Read more here.

    Q: How long can I continue to use the discontinued packages, SensorSDK and SystemGraph?

    A: Once your UIC license expires, the package will fail the license check. The license check is done when downloading the package and every time the project manifest is resolved (i.e. when opening the project or when something has changed in the package configuration). A project which has already been built to binary with these packages will continue to function regardless.

    Q: Is there an equivalent for SystemGraph?

    A: There are no plans to release a visual editor equivalent to SystemGraph. However, the user can use the concept of Nodes and Ports for USP. See “Using Nodes and Ports” above.

    In This Article
    • Overview
      • Understanding the Conceptual Similarities
      • Migration Process
      • Feature Comparison
    • Comparison of Functionality with USP Sensors
      • Benefits of Migrating
    • Technical Details
      • Supported Operating Systems and Hardware
      • Making a Sensor
      • Using Nodes and Ports
      • Example Migration
    • Contact Us
    • FAQs
    Copyright © 2023 Unity Technologies
    • Legal
    • Privacy Policy
    • Cookies
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)
    "Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
    Generated by DocFX.