<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Hi Sam,  in Software Archive</title>
    <link>https://community.intel.com/t5/Software-Archive/R200-Calibration-Data/m-p/1029719#M41535</link>
    <description>&lt;P&gt;Hi Sam,&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Did&amp;nbsp; you ever get the code to work in C# in Unity?&amp;nbsp; It is almost exactly 1 year later, and I am running into the same crash in Unity upon calling &lt;STRONG&gt;QueryStreamProjectionParameters ().&amp;nbsp; &lt;/STRONG&gt;I am using a RealSense RS300, with the most recent RealSense SDK for Unity and updated driver.&lt;/P&gt;

&lt;P&gt;Things I have tried are:&lt;/P&gt;

&lt;P&gt;1.&amp;nbsp;&amp;nbsp;Making sure &lt;STRONG&gt;both&lt;/STRONG&gt;​ the depth and color streams are enabled.&lt;/P&gt;

&lt;P&gt;2. Waiting several hundred frames before calling the function -- I thought maybe it took some time for the calibration parameters to be ready.&amp;nbsp; No luck, the code is happily displaying depth data for several hundred frames, and then BOOM it crashes when &lt;STRONG&gt;QueryStreamProjectionParameters ()&lt;/STRONG&gt; is called.&lt;/P&gt;

&lt;P&gt;3. Making sure I called &lt;STRONG&gt;device.ResetProperties (PXCMCapture.StreamType.STREAM_TYPE_ANY)&lt;/STRONG&gt;​, as David did in his code.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 02 Nov 2016 19:53:20 GMT</pubDate>
    <dc:creator>Kevin_K_2</dc:creator>
    <dc:date>2016-11-02T19:53:20Z</dc:date>
    <item>
      <title>R200 Calibration Data</title>
      <link>https://community.intel.com/t5/Software-Archive/R200-Calibration-Data/m-p/1029707#M41523</link>
      <description>&lt;P&gt;I apologize for asking this question again, but it's been over a month and I'm afraid the previous thread became too bloated.&lt;/P&gt;

&lt;P&gt;The functions "&lt;SPAN style="font-size: 12px; line-height: 18px;"&gt;QueryStreamProjectionParameters" and "QueryStreamProjectionParametersEx" do not appear to be working with the R200 camera.&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 12px; line-height: 18px;"&gt;They either cause the application to crash, or will return&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 12px; line-height: 18px;"&gt;"PXCM_STATUS_FEATURE_UNSUPPORTED" and&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 12px; line-height: 18px;"&gt;"PXCM_STATUS_DATA_UNAVAILABLE" respectively.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 12px; line-height: 18px;"&gt;I have followed the documentation and tried in both Unity and C# examples. Nothing in the documentation states this is exclusively for the F200.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;Has anyone gotten calibration data from the R200? Or is this feature currently broken/unsupported?&lt;/P&gt;

&lt;P&gt;Thanks!&lt;/P&gt;</description>
      <pubDate>Thu, 22 Oct 2015 21:16:51 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/R200-Calibration-Data/m-p/1029707#M41523</guid>
      <dc:creator>SMali10</dc:creator>
      <dc:date>2015-10-22T21:16:51Z</dc:date>
    </item>
    <item>
      <title>Could you provide the code</title>
      <link>https://community.intel.com/t5/Software-Archive/R200-Calibration-Data/m-p/1029708#M41524</link>
      <description>&lt;P&gt;Could you provide the code how you used? Thanks!&lt;/P&gt;</description>
      <pubDate>Thu, 22 Oct 2015 23:25:39 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/R200-Calibration-Data/m-p/1029708#M41524</guid>
      <dc:creator>Xusheng_L_Intel</dc:creator>
      <dc:date>2015-10-22T23:25:39Z</dc:date>
    </item>
    <item>
      <title>Hi David,</title>
      <link>https://community.intel.com/t5/Software-Archive/R200-Calibration-Data/m-p/1029709#M41525</link>
      <description>&lt;P&gt;Hi David,&lt;/P&gt;

&lt;P&gt;Here is the code from the documentation I was following to initialize the calibration:&lt;/P&gt;

&lt;PRE class="brush:csharp;"&gt;/* device is an instance of the PXCMCapture.Device interface */
PXCMProjection projection=device.CreateProjection();
 
/* Get a calibration instance */
PXCMCalibration calib=projection.QueryInstance&amp;lt;PXCCalibration&amp;gt;();
...
 
/* Dispose the interface */
projection.Dispose();&lt;/PRE&gt;

&lt;P&gt;Here is the C# script I used in Unity. It runs fine unless the line "QueryStreamProjectionParameters" is uncommented. This causes the application to crash.&lt;/P&gt;

&lt;PRE class="brush:csharp;"&gt;using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using RSUnityToolkit;

public class irStream : MonoBehaviour {
	private PXCMSenseManager psm;

	private Texture2D irTexture;
	private ushort[] irData;
	private byte[] imgData;

	public RawImage displayImage;

	void Start () {
		psm = PXCMSenseManager.CreateInstance();
		if (psm == null) {
			Debug.LogError ("SenseManager Initialization Failed");
			return;
		}

		psm.EnableStream(PXCMCapture.StreamType.STREAM_TYPE_LEFT, 628, 468, 60f);
		// FUN FACT: in order to access the right stream of the R200 you must enable the left stream first
		//psm.EnableStream(PXCMCapture.StreamType.STREAM_TYPE_RIGHT, 628, 468, 60f);

		pxcmStatus sts = psm.Init();
		if (sts != pxcmStatus.PXCM_STATUS_NO_ERROR) {
			Debug.LogError ("PXCMSenseManager.Init Failed");
			OnDisable (); // Clean-up
			return;
		}

		irData = new ushort[640*468];
		imgData = new byte[628*468*4];

		PXCMCapture.Device camera = psm.captureManager.device;

		PXCMProjection projection = camera.CreateProjection();
		PXCMCalibration calib = projection.QueryInstance&amp;lt;PXCMCalibration&amp;gt;();

		PXCMCalibration.StreamCalibration leftCalib = new PXCMCalibration.StreamCalibration();
		PXCMCalibration.StreamTransform leftTrans = new PXCMCalibration.StreamTransform();

		//calib.QueryStreamProjectionParameters (PXCMCapture.StreamType.STREAM_TYPE_LEFT, out leftCalib, out leftTrans);

		projection.Dispose();
	}

	void Update () {
		if (psm == null) return;
		if (psm.AcquireFrame(true) != pxcmStatus.PXCM_STATUS_NO_ERROR) return;

		PXCMCapture.Sample sample = psm.QuerySample();

		if (sample != null)
		{
			PXCMImage irImageSource = sample.left;

			if (irImageSource != null)
			{
				// Create the Texture 2D object if it doesn't exist already
				if (irTexture == null)
				{
					irTexture = new Texture2D(irImageSource.info.width,
					                              irImageSource.info.height,
					                               TextureFormat.RGBA32, false);
					displayImage.texture = irTexture;
				}

				// Get the raw 16bit data from the infrared image
				PXCMImage.ImageData irImageData;
				irImageSource.AcquireAccess(PXCMImage.Access.ACCESS_READ,
				                        PXCMImage.PixelFormat.PIXEL_FORMAT_Y16,
				                        out irImageData);
				irImageData.ToUShortArray(0, irData);

				// despite the ir camera being 628 pixels wide, the raw bytes are stored with a "pitch" of 640
				// in the case of 16bit data, the pitch is returned as 1280
				int pitch = irImageData.pitches[0]/2;
				int width = irImageSource.info.width;
				int height = irImageSource.info.height;
				
				for(int y = 0; y &amp;lt; height; y++){
					for(int x = 0; x &amp;lt; width; x++){
						int iA = (height-y-1) * pitch + x;
						int iB = (y * width + x) * 4;
						
						byte intensity = (byte)(irData[iA]/4);// raw pixels range between 0-1024

						imgData[iB] = intensity;
						imgData[iB+1] = intensity;
						imgData[iB+2] = intensity;
						imgData[iB+3] = 255; // Alpha
					}
				}
				
				irTexture.LoadRawTextureData(imgData);
				irTexture.Apply();
				
				irImageSource.ReleaseAccess(irImageData);
			}
		}
		psm.ReleaseFrame();
	}

	void OnDisable()
	{
		if (psm == null) return;
		psm.Dispose();
	}
}&lt;/PRE&gt;

&lt;P&gt;Finally I tried modifying the C# RawStreams project in order to see if it was an issue with Unity. I changed the code in "RawStreams.cs" to the following.&lt;/P&gt;

&lt;PRE class="brush:csharp;"&gt;SetStatus("Init Started");
if (sm.Init() &amp;gt;= pxcmStatus.PXCM_STATUS_NO_ERROR)
{
/* Reset all properties */
sm.captureManager.device.ResetProperties(PXCMCapture.StreamType.STREAM_TYPE_ANY);

// Start Find Calibration Code ------ New Code
PXCMProjection projection = sm.captureManager.device.CreateProjection();
PXCMCalibration calib = projection.QueryInstance&amp;lt;PXCMCalibration&amp;gt;();

PXCMCalibration.StreamCalibration calibData;
PXCMCalibration.StreamTransform calibTrans;

SetStatus(calib.QueryStreamProjectionParameters(PXCMCapture.StreamType.STREAM_TYPE_COLOR, out calibData, out calibTrans).ToString());
                    
projection.Dispose();
// End Find Calibration Code ------ End New Code

/* Set mirror mode */
PXCMCapture.Device.MirrorMode mirror = Mirror ? PXCMCapture.Device.MirrorMode.MIRROR_MODE_HORIZONTAL : PXCMCapture.Device.MirrorMode.MIRROR_MODE_DISABLED;
sm.captureManager.device.SetMirrorMode(mirror);

//SetStatus("Streaming");&lt;/PRE&gt;

&lt;P&gt;For the functions&amp;nbsp;&lt;SPAN style="font-size: 12px; line-height: 18px;"&gt;"QueryStreamProjectionParameters" and "QueryStreamProjectionParametersEx" this will return&amp;nbsp;"PXCM_STATUS_FEATURE_UNSUPPORTED" and&amp;nbsp;"PXCM_STATUS_DATA_UNAVAILABLE" respectively.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;Please see my initial question for more information:&amp;nbsp;https://software.intel.com/en-us/forums/realsense/topic/594070&lt;/P&gt;

&lt;P&gt;Thanks again!&lt;/P&gt;</description>
      <pubDate>Fri, 23 Oct 2015 15:53:37 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/R200-Calibration-Data/m-p/1029709#M41525</guid>
      <dc:creator>SMali10</dc:creator>
      <dc:date>2015-10-23T15:53:37Z</dc:date>
    </item>
    <item>
      <title>Hey David, any word? I</title>
      <link>https://community.intel.com/t5/Software-Archive/R200-Calibration-Data/m-p/1029710#M41526</link>
      <description>&lt;P&gt;Hey David, any word? I believe I have followed the documentation exactly.&lt;/P&gt;

&lt;P&gt;Thanks!&lt;/P&gt;</description>
      <pubDate>Mon, 02 Nov 2015 18:07:25 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/R200-Calibration-Data/m-p/1029710#M41526</guid>
      <dc:creator>SMali10</dc:creator>
      <dc:date>2015-11-02T18:07:25Z</dc:date>
    </item>
    <item>
      <title>Sam, the usage is not right.</title>
      <link>https://community.intel.com/t5/Software-Archive/R200-Calibration-Data/m-p/1029711#M41527</link>
      <description>&lt;P&gt;Sam, the usage is not right. Just need change a little bit and it will work. Here is the c++ code. C# code should be almost same, Thanks!&lt;/P&gt;

&lt;PRE class="brush:cpp;"&gt;
PXCCalibration *calib = m_pProjection-&amp;gt;QueryInstance&amp;lt;PXCCalibration&amp;gt;();

PXCCalibration::StreamCalibration calibData={};

PXCCalibration::StreamTransform calibTrans = {};

m_sts[0] = (STATUS)calib-&amp;gt;QueryStreamProjectionParameters(PXCCapture::StreamType::STREAM_TYPE_COLOR, &amp;amp;calibData, &amp;amp;calibTrans);

m_sts[0] = (STATUS)calib-&amp;gt;QueryStreamProjectionParametersEx(PXCCapture::StreamType::STREAM_TYPE_COLOR, PXCCapture::Device::StreamOption::STREAM_OPTION_ANY,&amp;amp;calibData, &amp;amp;calibTrans);&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 04 Nov 2015 15:06:17 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/R200-Calibration-Data/m-p/1029711#M41527</guid>
      <dc:creator>Xusheng_L_Intel</dc:creator>
      <dc:date>2015-11-04T15:06:17Z</dc:date>
    </item>
    <item>
      <title>Hi David,</title>
      <link>https://community.intel.com/t5/Software-Archive/R200-Calibration-Data/m-p/1029712#M41528</link>
      <description>&lt;P&gt;Hi David,&lt;/P&gt;

&lt;P&gt;It looks like that code is the same as what is in the documentation. This is the C# code in the documentation:&lt;/P&gt;

&lt;PRE class="brush:csharp;"&gt;/* device is an instance of the PXCMCapture.Device interface */
PXCMProjection projection=device.CreateProjection();
 
/* Get a calibration instance */
PXCMCalibration calib=projection.QueryInstance&amp;lt;PXCCalibration&amp;gt;();
...
 
/* Dispose the interface */
projection.Dispose();&lt;/PRE&gt;

&lt;P&gt;and this is my implementation in Unity:&lt;/P&gt;

&lt;PRE class="brush:csharp;"&gt;PXCMCapture.Device camera = psm.captureManager.device;

PXCMProjection projection = camera.CreateProjection();
PXCMCalibration calib = projection.QueryInstance&amp;lt;PXCMCalibration&amp;gt;();

PXCMCalibration.StreamCalibration leftCalib = new PXCMCalibration.StreamCalibration();
PXCMCalibration.StreamTransform leftTrans = new PXCMCalibration.StreamTransform();

calib.QueryStreamProjectionParameters (PXCMCapture.StreamType.STREAM_TYPE_LEFT, out leftCalib, out leftTrans);

projection.Dispose();&lt;/PRE&gt;

&lt;P&gt;Calling the function "QueryStreamProjectionParameters" causes Unity to crash. There is no returned status or error message. The application freezes and needs to be shut down from the task manager. This has been tested on two different machines.&lt;/P&gt;

&lt;P&gt;From what I can tell my C# code does all of the exact same things as what you have posted. Could you please tell me which part of the usage is wrong? Is there some other way to initialize the calibration and transform containers? Do the streams, device or projection need to be initialized in some other way first?&lt;/P&gt;

&lt;P&gt;Thanks again, I really appreciate it!&lt;/P&gt;</description>
      <pubDate>Wed, 04 Nov 2015 19:12:38 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/R200-Calibration-Data/m-p/1029712#M41528</guid>
      <dc:creator>SMali10</dc:creator>
      <dc:date>2015-11-04T19:12:38Z</dc:date>
    </item>
    <item>
      <title>Sam, sorry, your codes are</title>
      <link>https://community.intel.com/t5/Software-Archive/R200-Calibration-Data/m-p/1029713#M41529</link>
      <description>&lt;P&gt;Sam, sorry, your codes are almost right except you need make sure to enable depth stream before you use those two APIs. You can try those codes in rawstreams.cs. I have verified and it works for me.&lt;/P&gt;

&lt;PRE class="brush:csharp;"&gt;//New Code ---make sure to enable depth stream
sm.EnableStream(PXCMCapture.StreamType.STREAM_TYPE_DEPTH, 0, 0, 0);

SetStatus("Init Started");
if (sm.Init() &amp;gt;= pxcmStatus.PXCM_STATUS_NO_ERROR)
{
/* Reset all properties */
sm.captureManager.device.ResetProperties(PXCMCapture.StreamType.STREAM_TYPE_ANY);

// Start Find Calibration Code ------ New Code
PXCMProjection projection = sm.captureManager.device.CreateProjection();
PXCMCalibration calib = projection.QueryInstance&amp;lt;PXCMCalibration&amp;gt;();

PXCMCalibration.StreamCalibration calibData;
PXCMCalibration.StreamTransform calibTrans;

SetStatus(calib.QueryStreamProjectionParameters(PXCMCapture.StreamType.STREAM_TYPE_COLOR, out calibData, out calibTrans).ToString());
                    
projection.Dispose();
// End Find Calibration Code ------ End New Code

/* Set mirror mode */
PXCMCapture.Device.MirrorMode mirror = Mirror ? PXCMCapture.Device.MirrorMode.MIRROR_MODE_HORIZONTAL : PXCMCapture.Device.MirrorMode.MIRROR_MODE_DISABLED;
sm.captureManager.device.SetMirrorMode(mirror);

//SetStatus("Streaming");&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 04 Nov 2015 20:24:24 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/R200-Calibration-Data/m-p/1029713#M41529</guid>
      <dc:creator>Xusheng_L_Intel</dc:creator>
      <dc:date>2015-11-04T20:24:24Z</dc:date>
    </item>
    <item>
      <title>Thanks David,</title>
      <link>https://community.intel.com/t5/Software-Archive/R200-Calibration-Data/m-p/1029714#M41530</link>
      <description>&lt;P&gt;Thanks David,&lt;/P&gt;

&lt;P&gt;I am able to get the calibration data for the Color and Depth cameras in C#. Interestingly the calibrated values for the Depth camera return the same values as "QueryDepthFocalLength" and "QueryDepthPrincipalPoint".&lt;/P&gt;

&lt;P&gt;However calibration data for the Left and Right IR cameras are still not accessible.&lt;/P&gt;

&lt;P&gt;I am assuming the Left camera calibration data is identical to the Depth camera, but what about the Right camera? Do the Left and Right cameras have the same principle point? If not will there be a way to get calibration data for the Right IR camera?&lt;/P&gt;

&lt;P&gt;Thanks again, I really appreciate your help!&lt;/P&gt;</description>
      <pubDate>Thu, 05 Nov 2015 05:40:31 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/R200-Calibration-Data/m-p/1029714#M41530</guid>
      <dc:creator>SMali10</dc:creator>
      <dc:date>2015-11-05T05:40:31Z</dc:date>
    </item>
    <item>
      <title>Sam, what did you mean? why</title>
      <link>https://community.intel.com/t5/Software-Archive/R200-Calibration-Data/m-p/1029715#M41531</link>
      <description>&lt;P&gt;Sam, what did you mean? why did you think&amp;nbsp;&lt;SPAN class="f_CodeExample"&gt;principalPoint and&amp;nbsp;focalLength should be different? How did you access the calibration data for Left and Right IR camera? They only output IR streams. Thanks!&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Sam M. wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Thanks David,&lt;/P&gt;

&lt;P&gt;I am able to get the calibration data for the Color and Depth cameras in C#. Interestingly the calibrated values for the Depth camera return the same values as "QueryDepthFocalLength" and "QueryDepthPrincipalPoint".&lt;/P&gt;

&lt;P&gt;However calibration data for the Left and Right IR cameras are still not accessible.&lt;/P&gt;

&lt;P&gt;I am assuming the Left camera calibration data is identical to the Depth camera, but what about the Right camera? Do the Left and Right cameras have the same principle point? If not will there be a way to get calibration data for the Right IR camera?&lt;/P&gt;

&lt;P&gt;Thanks again, I really appreciate your help!&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 05 Nov 2015 16:53:41 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/R200-Calibration-Data/m-p/1029715#M41531</guid>
      <dc:creator>Xusheng_L_Intel</dc:creator>
      <dc:date>2015-11-05T16:53:41Z</dc:date>
    </item>
    <item>
      <title>Okay, I think I understand</title>
      <link>https://community.intel.com/t5/Software-Archive/R200-Calibration-Data/m-p/1029716#M41532</link>
      <description>&lt;P&gt;Okay, I think I understand now. For the "device.Query..." functions the documentation says: "&lt;SPAN style="color: rgb(0, 0, 0); font-family: 'Intel Clear'; font-size: 14.6667px; line-height: normal;"&gt;The property value is the model fixed value, and not the device instance calibrated value."&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;My assumption was that "model fixed" was a generic value for all R200 cameras, and "device instance" were the specific, calibrated values for that individual device. At least, that's how I understood it from the documentation.&lt;/P&gt;

&lt;P&gt;Now my understanding is&amp;nbsp;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;&amp;nbsp;that "model fixed" are the values at full resolution, and "device instance" are the values at cropped resolutions from the SDK. That makes a lot more sense.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;As for the IR cameras. It makes sense that if stereo rectification is applied to both IR streams, they would have the same focal length and principle point as the depth stream. I've been trying to access the calibration values from the IR camera streams, in order to confirm this.&lt;/P&gt;

&lt;P&gt;So I guess after all of this, my real question is; are the focal lengths and principle points of the two IR camera streams the same as the depth camera stream?&lt;/P&gt;

&lt;P&gt;Thanks again!&lt;/P&gt;</description>
      <pubDate>Thu, 05 Nov 2015 20:00:36 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/R200-Calibration-Data/m-p/1029716#M41532</guid>
      <dc:creator>SMali10</dc:creator>
      <dc:date>2015-11-05T20:00:36Z</dc:date>
    </item>
    <item>
      <title>You are correct. The focal</title>
      <link>https://community.intel.com/t5/Software-Archive/R200-Calibration-Data/m-p/1029717#M41533</link>
      <description>&lt;P&gt;You are correct. The focal length and principle point of both IR cameras and depth are same.&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Sam M. wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Okay, I think I understand now. For the "device.Query..." functions the documentation says: "The property value is the model fixed value, and not the device instance calibrated value."&lt;/P&gt;

&lt;P&gt;My assumption was that "model fixed" was a generic value for all R200 cameras, and "device instance" were the specific, calibrated values for that individual device. At least, that's how I understood it from the documentation.&lt;/P&gt;

&lt;P&gt;Now my understanding is&amp;nbsp;&amp;nbsp;that "model fixed" are the values at full resolution, and "device instance" are the values at cropped resolutions from the SDK. That makes a lot more sense.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;As for the IR cameras. It makes sense that if stereo rectification is applied to both IR streams, they would have the same focal length and principle point as the depth stream. I've been trying to access the calibration values from the IR camera streams, in order to confirm this.&lt;/P&gt;

&lt;P&gt;So I guess after all of this, my real question is; are the focal lengths and principle points of the two IR camera streams the same as the depth camera stream?&lt;/P&gt;

&lt;P&gt;Thanks again!&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 05 Nov 2015 23:11:05 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/R200-Calibration-Data/m-p/1029717#M41533</guid>
      <dc:creator>Xusheng_L_Intel</dc:creator>
      <dc:date>2015-11-05T23:11:05Z</dc:date>
    </item>
    <item>
      <title>Awesome, thanks Daniel, that</title>
      <link>https://community.intel.com/t5/Software-Archive/R200-Calibration-Data/m-p/1029718#M41534</link>
      <description>&lt;P&gt;Awesome, thanks Daniel, that's a huge help!&lt;/P&gt;

&lt;P&gt;Two last things, a request and a bug report.&lt;/P&gt;

&lt;P&gt;I've guesstimated that the IR cameras are about 70mm apart. But it would be great if in a future release we could retrieve the calibrated distance between the two IR cameras, like how we can between the depth and color cameras.&lt;/P&gt;

&lt;P&gt;Lastly the function "&lt;SPAN style="color: rgb(0, 0, 0); font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 13.008px; line-height: 14.3088px;"&gt;QueryStreamProjectionParameters" still causes Unity to crash. Here is a Unity Script with the updated code:&lt;/SPAN&gt;&lt;/P&gt;

&lt;PRE class="brush:csharp;"&gt;using UnityEngine;
using System.Collections;
using RSUnityToolkit;

public class ColorCalib : MonoBehaviour {
	private PXCMSenseManager sm;
	
	void Start () {
		sm = PXCMSenseManager.CreateInstance();
		if (sm == null) {
			Debug.LogError ("SenseManager Initialization Failed");
			return;
		}

		sm.EnableStream(PXCMCapture.StreamType.STREAM_TYPE_COLOR, 0, 0, 0);
		sm.EnableStream(PXCMCapture.StreamType.STREAM_TYPE_DEPTH, 0, 0, 0);
		
		pxcmStatus sts = sm.Init();
		if (sts &amp;gt;= pxcmStatus.PXCM_STATUS_NO_ERROR) {
			sm.captureManager.device.ResetProperties(PXCMCapture.StreamType.STREAM_TYPE_ANY);
			
			PXCMProjection projection = sm.captureManager.device.CreateProjection();
			PXCMCalibration calib = projection.QueryInstance&amp;lt;PXCMCalibration&amp;gt;();
			
			PXCMCalibration.StreamCalibration calibData;
			PXCMCalibration.StreamTransform calibTrans;
			
			calib.QueryStreamProjectionParameters (PXCMCapture.StreamType.STREAM_TYPE_COLOR, out calibData, out calibTrans);
			
			projection.Dispose();
		} else {
			Debug.LogError ("PXCMSenseManager.Init Failed");
			OnDisable (); // Clean-up
			return;
		}
	}
	
	void Update () {

	}
	
	void OnDisable()
	{
		if (sm == null) return;
		sm.Dispose();
	}
}&lt;/PRE&gt;

&lt;P&gt;Thanks again!&lt;/P&gt;</description>
      <pubDate>Thu, 05 Nov 2015 23:23:42 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/R200-Calibration-Data/m-p/1029718#M41534</guid>
      <dc:creator>SMali10</dc:creator>
      <dc:date>2015-11-05T23:23:42Z</dc:date>
    </item>
    <item>
      <title>Hi Sam, </title>
      <link>https://community.intel.com/t5/Software-Archive/R200-Calibration-Data/m-p/1029719#M41535</link>
      <description>&lt;P&gt;Hi Sam,&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Did&amp;nbsp; you ever get the code to work in C# in Unity?&amp;nbsp; It is almost exactly 1 year later, and I am running into the same crash in Unity upon calling &lt;STRONG&gt;QueryStreamProjectionParameters ().&amp;nbsp; &lt;/STRONG&gt;I am using a RealSense RS300, with the most recent RealSense SDK for Unity and updated driver.&lt;/P&gt;

&lt;P&gt;Things I have tried are:&lt;/P&gt;

&lt;P&gt;1.&amp;nbsp;&amp;nbsp;Making sure &lt;STRONG&gt;both&lt;/STRONG&gt;​ the depth and color streams are enabled.&lt;/P&gt;

&lt;P&gt;2. Waiting several hundred frames before calling the function -- I thought maybe it took some time for the calibration parameters to be ready.&amp;nbsp; No luck, the code is happily displaying depth data for several hundred frames, and then BOOM it crashes when &lt;STRONG&gt;QueryStreamProjectionParameters ()&lt;/STRONG&gt; is called.&lt;/P&gt;

&lt;P&gt;3. Making sure I called &lt;STRONG&gt;device.ResetProperties (PXCMCapture.StreamType.STREAM_TYPE_ANY)&lt;/STRONG&gt;​, as David did in his code.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 02 Nov 2016 19:53:20 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/R200-Calibration-Data/m-p/1029719#M41535</guid>
      <dc:creator>Kevin_K_2</dc:creator>
      <dc:date>2016-11-02T19:53:20Z</dc:date>
    </item>
  </channel>
</rss>

