Experimental:Ouster TOP

From TouchDesigner Documentation
Jump to: navigation, search

Summary
[edit]

The Ouster TOP is used to send and receive data with an Ouster Imaging Lidar. The TOP currently supports an OS1-64 device. For more information see the user guides at Ouster.io

Range data collected from the device is presented as 32bit floating point values in the RGBA channels of the output image. Output can be formatted as either a 3D point cloud or a 2D depth image using the Output Format parameter. IMU data from the device can be accessed by connecting an Info CHOP.

The channels exported to the Info CHOP are:

num_lidar_packets - The number of lidar packets received by the TOP. Each packet contains 16 vertical columns of samples.
missing_lidar_packets - The number of lidar packets that were missing if a new frame is detected before the last frame was complete.
skipped_lidar_packets - The number of lidar packets that were skipped if a packet is not the next expected one in the sequence.
num_imu_packets - The number of IMU packets received by the TOP. Each packet contains one set of gyro and accelerometer readings.
num_command_packets - The number of configuration packets received from the device. Command packets are used to set parameters and to check the device's status.
command_state - The internal state of the Ouster TOP used for debugging. 0 is offline, 1 is connected, 4 is error.
frame_id - This number increases by 1 each time the sensor completes a full revolution.
frame_start_time - The time frame started in nanoseconds since the device was booted.
beam_angles_state - 1 if the TOP has received a complete set of beam altitude and azimuth angles from the device. Defaults to 0.
lidar_transform_state - 1 if the TOP has received a complete lidar transform from the device. Defaults to 0.
imu_transform_state - 1 if the TOP has received a complete imu transform from the device. Defaults to 0.
imu_read_time - The time the measurement was take in nanoseconds since the device was booted.
accel_read_time - The time the accelerometer measurement was take in nanoseconds relative to the current timestamp mode (see Ouster User Guide).
gyro_read_time - The time the gyroscope measurement was take in nanoseconds relative to the current timestamp mode (see Ouster User Guide)
ax - Acceleration in the x-axis (g)
ay - Acceleration in the y-axis (g)
az - Acceleration in the z-axis (g)
angx - Angular velocity around the x-axis (deg per sec)
angy - Angular velocity around the y-axis (deg per sec)
angz - Angular velocity around the z-axis (deg per sec)
lidar_m?? - Matrix members that define the transform from lidar data space to sensor space.
imu_m?? - Matrix members that define the transform from IMU space to sensor space.
   The lookup tables used to convert the range values into 3D points can be accessed with an Info DAT.
   
   Note:  The Ouster TOP requires access to your local network to connect with the sensor device. Check your firewall settings if you have trouble accessing the device.
   
   High resolution scanning modes require up to 130Mbps of bandwidth. Gigabit Ethernet hardware is required for full operation.

PythonIcon.pngousterTOP_Class


Parameters - Ouster Page

Active active - Enables connections with the device.  

Device Address deviceaddress - The IP address of the Ouster device. The address is only required during configuraton. The device will request an address from the local DHCP server when it is connected to the network. You can determine the IP address using the ping command and the device's serial number e.g. ping -c1 os1-991900123456. For more information see the Ouster User Guide at Ouster.io.  

Lidar Port lidarport - The UDP port number to receive lidar data.  

IMU Port imuport - The UDP port number to receive data from the inertial measurement unit (IMU) on the device. The IMU data can be accessed by connecting the Ouster TOP to an Info CHOP.  

Command Port commandport - The TCP/IP port number to use to send configuration commands to the device.  

Target Address targetaddress - The IP address where the sensor should send the lidar and IMU data to. If the parameter is blank, the address of the current machine will be used. If the machine has more than one assigned address, the one that most closely matches the device address will be used. The address of another machine on the network can be used to direct the sensor data to a different computer.  

Local Address localaddress - An IP address for the current machine that should be used to connect to the device with. If the address is left blank, the default network address will be used.  

Scan Mode scanmode - - Select a scanning mode to set the sensor's horizontal resolution and number of revolutions per second. The vertical resolution is determined by the hardware e.g. an OS1-64 sensor has vertical resolution of 64 pixels (samples).

  • 512 x 10Hz mode512x10 -
  • 512 x 20Hz mode512x20 -
  • 1024 x 10Hz mode1024x10 -
  • 1024 x 20Hz mode1024x20 -
  • 2048 x 10Hz mode2048x10 -

Configure Device configdevice - Enable this toggle to have the Ouster TOP set the configuration properties of the device. If the device has already been configured to the correct mode and network connections than this can be disabled to save some processing time.  

Output Format outputformat - - Use this parameter to determine the format and content of the output image. All sensor data is transmitted to the machine regardless of the output format, and a connection to the device is not required to change the output format.

  • Point Cloud (XYZ, Intensity) pointcloud - In point cloud mode, the sensor's range data is converted into xyz positions using an internal table of beam angles. Points are placed into the output image in the order they were received from the sensor starting in the bottom-left corner. If there are fewer points than pixels in the image, the remaining pixels are filled with the floating point value NaN.
  • Image (Range, Intensity, Reflectivity, Noise) image - In image mode, the samples are arranged to form a continuous picture of the area around the sensor. Each channel of the image stores a different property from the sensor as a 32bit float.


Parameters - Common Page

Output Resolution outputresolution - - quickly change the resolution of the TOP's data.

  • Use Input useinput - Uses the input's resolution.
  • Eighth eighth - Multiply the input's resolution by that amount.
  • Quarter quarter - Multiply the input's resolution by that amount.
  • Half half - Multiply the input's resolution by that amount.
  • 2X 2x - Multiply the input's resolution by that amount.
  • 4X 4x - Multiply the input's resolution by that amount.
  • 8X 8x - Multiply the input's resolution by that amount.
  • Fit Resolution fit - Grow or shrink the input resolution to fit this resolution, while keeping the aspect ratio the same.
  • Limit Resolution limit - Limit the input resolution to be not larger than this resolution, while keeping the aspect ratio the same.
  • Custom Resolution custom - Directly control the width and height.

Resolution resolution - - Enabled only when the Resolution parameter is set to Custom Resolution. Some Generators like Constant and Ramp do not use inputs and only use this field to determine their size. The drop down menu on the right provides some commonly used resolutions.

  • W resolutionw -
  • H resolutionh -

Resolution Menu resmenu -  

Use Global Res Multiplier resmult - Uses the Global Resolution Multiplier found in Edit>Preferences>TOPs. This multiplies all the TOPs resolutions by the set amount. This is handy when working on computers with different hardware specifications. If a project is designed on a desktop workstation with lots of graphics memory, a user on a laptop with only 64MB VRAM can set the Global Resolution Multiplier to a value of half or quarter so it runs at an acceptable speed. By checking this checkbox on, this TOP is affected by the global multiplier.  

Output Aspect outputaspect - - Sets the image aspect ratio allowing any textures to be viewed in any size. Watch for unexpected results when compositing TOPs with different aspect ratios. (You can define images with non-square pixels using xres, yres, aspectx, aspecty where xres/yres != aspectx/aspecty.)

  • Use Input useinput - Uses the input's aspect ratio.
  • Resolution resolution - Uses the aspect of the image's defined resolution (ie 512x256 would be 2:1), whereby each pixel is square.
  • Custom Aspect custom - Lets you explicitly define a custom aspect ratio in the Aspect parameter below.

Aspect aspect - - Use when Output Aspect parameter is set to Custom Aspect.

  • Aspect1 aspect1 -
  • Aspect2 aspect2 -

Aspect Menu armenu -  

Input Smoothness inputfiltertype - - This controls pixel filtering on the input image of the TOP.

  • Nearest Pixel nearest - Uses nearest pixel or accurate image representation. Images will look jaggy when viewing at any zoom level other than Native Resolution.
  • Interpolate Pixels linear - Uses linear filtering between pixels. This is how you get TOP images in viewers to look good at various zoom levels, especially useful when using any Fill Viewer setting other than Native Resolution.
  • Mipmap Pixels mipmap - Uses mipmap filtering when scaling images. This can be used to reduce artifacts and sparkling in moving/scaling images that have lots of detail.

Fill Viewer fillmode - - Determine how the TOP image is displayed in the viewer. NOTE:To get an understanding of how TOPs work with images, you will want to set this to Native Resolution as you lay down TOPs when starting out. This will let you see what is actually happening without any automatic viewer resizing.

  • Use Input useinput - Uses the same Fill Viewer settings as it's input.
  • Fill fill - Stretches the image to fit the edges of the viewer.
  • Fit Horizontal width - Stretches image to fit viewer horizontally.
  • Fit Vertical height - Stretches image to fit viewer vertically.
  • Fit Best best - Stretches or squashes image so no part of image is cropped.
  • Fit Outside outside - Stretches or squashes image so image fills viewer while constraining it's proportions. This often leads to part of image getting cropped by viewer.
  • Native Resolution nativeres - Displays the native resolution of the image in the viewer.

Viewer Smoothness filtertype - - This controls pixel filtering in the viewers.

  • Nearest Pixel nearest - Uses nearest pixel or accurate image representation. Images will look jaggy when viewing at any zoom level other than Native Resolution.
  • Interpolate Pixels linear - Uses linear filtering between pixels. Use this to get TOP images in viewers to look good at various zoom levels, especially useful when using any Fill Viewer setting other than Native Resolution.
  • Mipmap Pixels mipmap - Uses mipmap filtering when scaling images. This can be used to reduce artifacts and sparkling in moving/scaling images that have lots of detail. When the input is 32-bit float format, only nearest filtering will be used (regardless of what is selected).

Passes npasses - Duplicates the operation of the TOP the specified number of times. For every pass after the first it takes the result of the previous pass and replaces the node's first input with the result of the previous pass. One exception to this is the GLSL TOP when using compute shaders, where the input will continue to be the connected TOP's image.  

Channel Mask chanmask - Allows you to choose which channels (R, G, B, or A) the TOP will operate on. All channels are selected by default.  

Pixel Format format - - Format used to store data for each channel in the image (ie. R, G, B, and A). Refer to Pixel Formats for more information.

  • Use Input useinput - Uses the input's pixel format.
  • 8-bit fixed (RGBA) rgba8fixed - Uses 8-bit integer values for each channel.
  • sRGB 8-bit fixed (RGBA) srgba8fixed - Uses 8-bit integer values for each channel and stores color in sRGB colorspace. Note that this does not apply an sRGB curve to the pixel values, it only stores them using an sRGB curve. This means more data is used for the darker values and less for the brighter values. When the values are read downstream they will be converted back to linear. For more information refer to sRGB.
  • 16-bit float (RGBA) rgba16float - Uses 16-bits per color channel, 64-bits per pixel.
  • 32-bit float (RGBA) rgba32float - Uses 32-bits per color channel, 128-bits per pixels.
  • 10-bit RGB, 2-bit Alpha, fixed (RGBA) rgb10a2fixed - Uses 10-bits per color channel and 2-bits for alpha, 32-bits total per pixel.
  • 16-bit fixed (RGBA) rgba16fixed - Uses 16-bits per color channel, 64-bits total per pixel.
  • 11-bit float (RGB), Positive Values Only rgba11float - A RGB floating point format that has 11 bits for the Red and Green channels, and 10-bits for the Blue Channel, 32-bits total per pixel (therefore the same memory usage as 8-bit RGBA). The Alpha channel in this format will always be 1. Values can go above one, but can't be negative. ie. the range is [0, infinite).
  • 16-bit float (RGB) rgb16float -
  • 32-bit float (RGB) rgb32float -
  • 8-bit fixed (Mono) mono8fixed - Single channel, where RGB will all have the same value, and Alpha will be 1.0. 8-bits per pixel.
  • 16-bit fixed (Mono) mono16fixed - Single channel, where RGB will all have the same value, and Alpha will be 1.0. 16-bits per pixel.
  • 16-bit float (Mono) mono16float - Single channel, where RGB will all have the same value, and Alpha will be 1.0. 16-bits per pixel.
  • 32-bit float (Mono) mono32float - Single channel, where RGB will all have the same value, and Alpha will be 1.0. 32-bits per pixel.
  • 8-bit fixed (RG) rg8fixed - A 2 channel format, R and G have values, while B is 0 always and Alpha is 1.0. 8-bits per channel, 16-bits total per pixel.
  • 16-bit fixed (RG) rg16fixed - A 2 channel format, R and G have values, while B is 0 always and Alpha is 1.0. 16-bits per channel, 32-bits total per pixel.
  • 16-bit float (RG) rg16float - A 2 channel format, R and G have values, while B is 0 always and Alpha is 1.0. 16-bits per channel, 32-bits total per pixel.
  • 32-bit float (RG) rg32float - A 2 channel format, R and G have values, while B is 0 always and Alpha is 1.0. 32-bits per channel, 64-bits total per pixel.
  • 8-bit fixed (A) a8fixed - An Alpha only format that has 8-bits per channel, 8-bits per pixel.
  • 16-bit fixed (A) a16fixed - An Alpha only format that has 16-bits per channel, 16-bits per pixel.
  • 16-bit float (A) a16float - An Alpha only format that has 16-bits per channel, 16-bits per pixel.
  • 32-bit float (A) a32float - An Alpha only format that has 32-bits per channel, 32-bits per pixel.
  • 8-bit fixed (Mono+Alpha) monoalpha8fixed - A 2 channel format, one value for RGB and one value for Alpha. 8-bits per channel, 16-bits per pixel.
  • 16-bit fixed (Mono+Alpha) monoalpha16fixed - A 2 channel format, one value for RGB and one value for Alpha. 16-bits per channel, 32-bits per pixel.
  • 16-bit float (Mono+Alpha) monoalpha16float - A 2 channel format, one value for RGB and one value for Alpha. 16-bits per channel, 32-bits per pixel.
  • 32-bit float (Mono+Alpha) monoalpha32float - A 2 channel format, one value for RGB and one value for Alpha. 32-bits per channel, 64-bits per pixel.


}}

TOPs
Add • Analyze • Anti Alias • Blob Track • Blur • Experimental:Buffer Select • Cache Select • Cache • Channel Mix • CHOP to • Experimental:CHOP to • Chroma Key • Circle • Composite • Constant • Convolve • Corner Pin • CPlusPlus • Crop • Cross • Cube Map • Depth • Difference • DirectX In • DirectX Out • Displace • Edge • Emboss • Feedback • Fit • Flip • Experimental:Function • GLSL Multi • GLSL • HSV Adjust • HSV to RGB • Import Select • In • Inside • Introduction To TOPs id • Kinect • Layout • Leap Motion • Level • Lookup • Luma Blur • Luma Level • Math • Experimental:Math • Matte • Mirror • Monochrome • Movie File In • Movie File Out • Multiply • NDI In • NDI Out • Noise • Normal Map • Notch • Null • Nvidia Flow • Oculus Rift • OP Viewer • OpenColorIO • OpenVR • Experimental:Ouster • Out • Outside • Over • Pack • Photoshop In • Experimental:Point Cloud In • Experimental:Point File In • PreFilter Map • Projection • Ramp • RealSense • Rectangle • Remap • Render Pass • Render Select • Render • Reorder • Resolution • RGB Key • RGB to HSV • Scalable Display • Screen Grab • Screen • Select • Shared Mem In • Shared Mem Out • Slope • SSAO • Stype • Substance Select • Substance • Subtract • SVG • Switch • Syphon Spout In • Syphon Spout Out • Text • Texture 3D • Texture Sampling arameters • Threshold • Tile • Time Machine • TOP • TOP iewer • Touch In • Touch Out • Transform • Under • Video Device In • Experimental:Video Device In • Video Device Out • Experimental:Video Device Out • Video Stream In • Video Stream Out • Vioso • Web Render • ZED

An Operator Family that creates, composites and modifies images, and reads/writes images and movies to/from files and the network. TOPs run on the graphics card's GPU.

Each SOP has a list of Points. Each point has an XYZ 3D position value plus other optional attributes. Each polygon Primitive is defined by a vertex list, which is list of point numbers.

The width and height of an image in pixels. Most TOPs, like the Movie File In TOP can set the image resolution. See Aspect Ratio for the width/height ratio of an image, taking into account non-square pixels.

The viewer of a node can be (1) the interior of a node (the Node Viewer), (2) a floating window (RMB->View... on node), or (3) a Pane that graphically shows the results of an operator.

A CHOP outputs one or more channels, where a channel is simply a sequence of numbers, representing motion, audio, etc. Channels are passed between CHOPs in TouchDesigner networks. See also Export.