Difference between revisions of "Experimental:Ouster TOP"

From TouchDesigner Documentation
Jump to: navigation, search
Line 184: Line 184:
 
|pageName=Output
 
|pageName=Output
 
|pageSummary=The Output page allows you to select what data is placed in the TOP's output image. Range, Intensity, Reflectivity and Noise are raw data channels coming from the sensor, while XYZ position values are calculated by using the range data and the look up table of beam azimuth and altitude angles. Range is measured in millimeters, while XYZ positions are in meters. If you need more than 4 channels of data, use a [[Ouster Select TOP]] to create a second output image from the same sensor data.
 
|pageSummary=The Output page allows you to select what data is placed in the TOP's output image. Range, Intensity, Reflectivity and Noise are raw data channels coming from the sensor, while XYZ position values are calculated by using the range data and the look up table of beam azimuth and altitude angles. Range is measured in millimeters, while XYZ positions are in meters. If you need more than 4 channels of data, use a [[Ouster Select TOP]] to create a second output image from the same sensor data.
 +
   
 +
    In addition the sensor data, you can also assign a constant value of one or zero by selecting the corresponding entry from the channel menu. Selecting 'Active Mask' will output a one if the pixel represents valid sensor data and a zero if it is padding (if the image contains more pixels than there is available sensor data). The mask channel can be used in the [[Geometry COMP]] Active instance channel to control which points are used for instancing.
 
|items={{Parameter
 
|items={{Parameter
 
|opFamily=TOP
 
|opFamily=TOP

Revision as of 14:47, 18 October 2019

Summary
[edit]

Note: Only available in TouchDesigner Educational, TouchDesigner Commercial and TouchDesigner Pro.

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 arranged either in chronological scan order or as a panoramic image using the Image Layout parameter. IMU data from the device can be accessed by connecting an Info CHOP. If more than 4 output channels are needed, you can use a Ouster Select TOP to create additional output images.

Note: All 3D coordinates have been transformed into Touch Designer space where Y is up and X and Z represent the ground plane. This is different from the original coordinate space defined in the Ouster documentation.

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_m00 - lidar_m33 - Matrix members that define the transform from lidar data space to sensor space.
imu_m00 - imu_m33 - 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 - Connection 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.  


Parameters - Output Page

The Output page allows you to select what data is placed in the TOP's output image. Range, Intensity, Reflectivity and Noise are raw data channels coming from the sensor, while XYZ position values are calculated by using the range data and the look up table of beam azimuth and altitude angles. Range is measured in millimeters, while XYZ positions are in meters. If you need more than 4 channels of data, use a Ouster Select TOP to create a second output image from the same sensor data.

   In addition the sensor data, you can also assign a constant value of one or zero by selecting the corresponding entry from the channel menu. Selecting 'Active Mask' will output a one if the pixel represents valid sensor data and a zero if it is padding (if the image contains more pixels than there is available sensor data). The mask channel can be used in the Geometry COMP Active instance channel to control which points are used for instancing.

Image Layout layout - - Use this parameter to determine how data is arranged in the output image. The layout of data is generally not important when used as a point cloud.

  • Scan Order pointcloud - Sensor data is arranged chronologically in a square texture according to when it was received by the scanner. If there are fewer points than pixels in the image, the remaining pixels are filled with the floating point value NaN.
  • Panoramic image - In panoramic mode, the samples are arranged to form a continuous picture of the area around the sensor.

Red redchannel - - Select what sensor data will be placed into the red channel of the output image.

  • X x -
  • Y y -
  • Z z -
  • Range range -
  • Intensity intensity -
  • Reflectivity reflectivity -
  • Noise noise -

Green greenchannel - - Select what sensor data will be placed into the green channel of the output image.

  • X x -
  • Y y -
  • Z z -
  • Range range -
  • Intensity intensity -
  • Reflectivity reflectivity -
  • Noise noise -

Blue bluechannel - - Select what sensor data will be placed into the blue channel of the output image.

  • X x -
  • Y y -
  • Z z -
  • Range range -
  • Intensity intensity -
  • Reflectivity reflectivity -
  • Noise noise -

Alpha alphachannel - - Select what sensor data will be placed into the alpha channel of the output image.

  • X x -
  • Y y -
  • Z z -
  • Range range -
  • Intensity intensity -
  • Reflectivity reflectivity -
  • Noise noise -


Parameters - Timing Page

Time Sync Mode timemode - - Select how the sensor generates timestamp information.

  • Internal OSC internalosc - Timestamps are generated from an internal oscillator. This is the default setting.
  • Sync Pulse In syncpulsein - Timing is synced to pulses on the SYNC_PULSE_IN input.
  • PTP 1588 ptp1588 - Timing is synced to an external PTP master.

Sync Pulse In Polarity pulseinpolarity - - The polarity of the SYNC_PULSE_IN signal to use.

  • Active Low activelow -
  • Active High activehigh -

Multipurpose IO Mode iomode - - Determines how the sensor uses the SYNC_PULSE_OUT signal.

  • Off off - The signal is not used. This is the default setting.
  • Input NMEA inputnmea -
  • Output Internal OSC outputinternalosc - Signal output is taken from the internal oscillator.
  • Output Sync Pulse In outputsyncpulsein -
  • Output PTP 1588 outputptp1588 -
  • Output Encoder Angle outputangle - Signal output is based on the angle of the encoder.

Sync Pulse Out Polarity pulseoutpolarity - - Polarity of the output signal pulse.

  • Active Low activelow -
  • Active High activehigh -

Sync Pulse Out Frequency pulseoutfrequency - Frequency of the output pulse in Hz (must be greater than 0).  

Sync Pulse Out Angle pulseoutangle - The encoder angle at which to output a signal pulse. Measured in degrees less than 360.  

Sync Pulse Out Width pulseoutwidth - Width of the output signal pulse in mm.  

NMEA In Polarity nmeainpolarity - -

  • Active Low activelow -
  • Active High activehigh -

NMEA Ignore Valid Char nmeaignorevalidchar -  

NMEA Baud Rate nmeabaudrate - -

  • Baud 9600 baud9600 -
  • Baud 115200 baud115200 -

NMEA Leap Seconds nmealeapseconds -  


Parameters - Advanced Page

Auto Start autostart - Tell the sensor to automatically begin sending data when it turns on. The default is On.  

Window Rejection windowrejection - Reduces the sensor range to 0 meters, but may significantly reduce sensor range. Sensor specs are not guarenteed when this setting is disabled.  


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 • Experimental:GLSL Multi • GLSL • Experimental:GLSL • HSV Adjust • HSV to RGB • Import Select • In • Inside • Introduction To TOPs id • Experimental:Kinect Azure • Kinect • Layout • Leap Motion • Level • Experimental:Limit • Lookup • Luma Blur • Luma Level • Math • Experimental:Math • Matte • Mirror • Monochrome • Movie File In • Movie File Out • Experimental:Movie File Out • Multiply • NDI In • NDI Out • Noise • Normal Map • Notch • Experimental:Notch • Null • Nvidia Flow • Oculus Rift • OP Viewer • OpenColorIO • OpenVR • Experimental:Ouster Select • Experimental:Ouster • Out • Outside • Over • Pack • Photoshop In • Experimental:Point Cloud In • Experimental:Point File Select • PreFilter Map • Projection • Ramp • RealSense • Rectangle • Remap • Render Pass • Experimental:Render Pass • Render Select • Render • Experimental: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 • Experimental: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.

(1) The TouchDesigner window is made of a menu bar at the top, a Timeline at the bottom, plus one of a choice of Layouts in the middle. A Layout is made on one or more Panes, each Pane can contain a Network Editor, Viewer, Panel, etc. See Pane and Bookmark. (2) Nodes in a network are arranged using Layout commands in the RMB menu.

To pulse a parameter is to send it a signal from a CHOP or python or a mouse click that causes a new action to occur immediately. A pulse via python is via the .pulse() function on a pulse-type parameter, such as Reset in a Speed CHOP. A pulse from a CHOP is typically a 0 to 1 to 0 signal in a channel.

Strictly refers to a window in Microsoft Windows. User-created windows are made with Panels inside Window Components, aside from the TouchDesigner editor window and its dialogs.

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.