<?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 Scott, in Software Archive</title>
    <link>https://community.intel.com/t5/Software-Archive/Need-hand-tracking-explanation/m-p/1014281#M35388</link>
    <description>&lt;P&gt;Scott,&lt;/P&gt;

&lt;P&gt;The documentation says &lt;SPAN class="f_CodeExample"&gt;QueryTrackedJoint &lt;/SPAN&gt;&lt;SPAN class="f_TableText"&gt;&amp;nbsp;has a second argument JointData.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;Syntax&lt;/P&gt;

&lt;P&gt;C++&lt;BR /&gt;
	&amp;nbsp;pxcStatus&amp;nbsp; QueryTrackedJoint(JointType label, JointData &amp;amp;data);&lt;BR /&gt;
	&amp;nbsp;&lt;BR /&gt;
	Parameters&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;label&lt;BR /&gt;
	&amp;nbsp;The joint label. See the JointType enumerator for definitions.&lt;BR /&gt;
	&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;data&lt;BR /&gt;
	&amp;nbsp;The joint data, in the JointData structure, to be returned.&lt;BR /&gt;
	&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Regards,&lt;/P&gt;

&lt;P&gt;Jack&lt;/P&gt;</description>
    <pubDate>Sat, 03 Jan 2015 21:56:27 GMT</pubDate>
    <dc:creator>Jack_K_1</dc:creator>
    <dc:date>2015-01-03T21:56:27Z</dc:date>
    <item>
      <title>Need hand tracking explanation</title>
      <link>https://community.intel.com/t5/Software-Archive/Need-hand-tracking-explanation/m-p/1014277#M35384</link>
      <description>&lt;P&gt;Hello guys&lt;/P&gt;

&lt;P&gt;This is a snippet code from RealSense VStudio Tutorial, project 3_Hands_Tracking the gesture recognition section&lt;/P&gt;

&lt;PRE class="brush:cpp;"&gt;		int numOfGestures = outputData-&amp;gt;QueryFiredGesturesNumber();
		if(numOfGestures&amp;gt;0){
			// iterate through fired gestures
			for(int i = 0; i &amp;lt; numOfGestures; i++){
				// initialize data
				PXCHandData::GestureData gestureData;
				// get fired gesture data
				if(outputData-&amp;gt;QueryFiredGestureData(i,gestureData) == PXC_STATUS_NO_ERROR){
					// get hand data related to fired gesture
					PXCHandData::IHand* handData;
					if(outputData-&amp;gt;QueryHandDataById(gestureData.handId,handData) == PXC_STATUS_NO_ERROR){
						// save gesture only if you know that its right/left hand
						if(handData-&amp;gt;QueryBodySide() != PXCHandData::BodySideType::BODY_SIDE_UNKNOWN)
							renderer-&amp;gt;NotifyGestures(handData-&amp;gt;QueryBodySide(),gestureData.name);
					}

				}
			}
		}&lt;/PRE&gt;

&lt;P&gt;Is the QueryFiredGestureData() that recognize the gesture we are making? I check the definition and I found&lt;/P&gt;

&lt;PRE class="brush:cpp;"&gt;virtual pxcStatus PXCAPI QueryFiredGestureData(pxcI32 index, GestureData &amp;amp; gestureData) const = 0;&lt;/PRE&gt;

&lt;P&gt;How that function check the gesture we are making? I mean, I guess the program check the coordinates of our hand from an existing data to find out what gesture we are making, then where is the data? I want to make a new gesture. My plan is adding my own coordinates to the existing data, along with other gesture to make a new one. It is allowed by Intel, right? I just don't know where to find it. Any ideas?&lt;/P&gt;

&lt;P&gt;-R&lt;/P&gt;</description>
      <pubDate>Sun, 07 Dec 2014 15:15:39 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Need-hand-tracking-explanation/m-p/1014277#M35384</guid>
      <dc:creator>Raditya_U_</dc:creator>
      <dc:date>2014-12-07T15:15:39Z</dc:date>
    </item>
    <item>
      <title>Hi Raditya,</title>
      <link>https://community.intel.com/t5/Software-Archive/Need-hand-tracking-explanation/m-p/1014278#M35385</link>
      <description>&lt;P&gt;Hi Raditya,&lt;/P&gt;

&lt;P&gt;If I understand your question correctly, you are asking where is the information of the hand joints? the 3d positions, so that you can detect your own gesture?&lt;/P&gt;

&lt;P&gt;Lookup the function&amp;nbsp;&lt;SPAN style="line-height: 19.5120010375977px;"&gt;QueryTrackedJoint in the manual, and see how it is used (you can look at the code in the samples).&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="line-height: 19.5120010375977px;"&gt;in the example you quoted it will look something like this, for getting the 3d coordinates of the index-finger-tip:&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;if(handData-&amp;gt;QueryTrackedJoint(PXCHandData::JointType::JOINT_INDEX_TIP) == PXC_STATUS_NO_ERROR)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;std::printf("X: %f, Y: %f, Z: %f \n",jointData.positionWorld.x,jointData.positionWorld.y,jointData.positionWorld.z);&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/P&gt;</description>
      <pubDate>Tue, 09 Dec 2014 19:33:04 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Need-hand-tracking-explanation/m-p/1014278#M35385</guid>
      <dc:creator>Dagan_E_Intel</dc:creator>
      <dc:date>2014-12-09T19:33:04Z</dc:date>
    </item>
    <item>
      <title>Wow that is really helpful,</title>
      <link>https://community.intel.com/t5/Software-Archive/Need-hand-tracking-explanation/m-p/1014279#M35386</link>
      <description>&lt;P&gt;Wow that is really helpful, Dagan!&lt;/P&gt;

&lt;P&gt;Now I can determine my own gesture by comparing the thumb, index, and middle finger world coordinates&lt;/P&gt;

&lt;P&gt;Thank you!! :D&lt;/P&gt;</description>
      <pubDate>Thu, 11 Dec 2014 17:09:40 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Need-hand-tracking-explanation/m-p/1014279#M35386</guid>
      <dc:creator>Raditya_U_</dc:creator>
      <dc:date>2014-12-11T17:09:40Z</dc:date>
    </item>
    <item>
      <title>I'm missing something here -</title>
      <link>https://community.intel.com/t5/Software-Archive/Need-hand-tracking-explanation/m-p/1014280#M35387</link>
      <description>&lt;P&gt;I'm missing something here - I inserted the code you gave above into the tutorial example and I keep getting error messages:&lt;/P&gt;

&lt;P&gt;Error&amp;nbsp;&amp;nbsp; &amp;nbsp;4&amp;nbsp;&amp;nbsp; &amp;nbsp;error C2660: 'PXCHandData::IHand::QueryTrackedJoint' : function does not take 1 arguments &amp;nbsp;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Here's my snippet:&lt;/P&gt;

&lt;P&gt;for(int i = 0 ; i &amp;lt; numOfHands; i++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// get hand joints by time of appearence&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;PXCHandData::IHand* handData;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if(outputData-&amp;gt;QueryHandData(PXCHandData::ACCESS_ORDER_BY_TIME,i,handData) == PXC_STATUS_NO_ERROR)&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;PXCHandData::JointData jointData;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// iterate through Joints and get joint data&amp;nbsp;&lt;BR /&gt;
	&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;STRONG&gt; &amp;nbsp;if (handData-&amp;gt;QueryTrackedJoint(PXCHandData::JointType::JOINT_INDEX_TIP) == PXC_STATUS_NO_ERROR)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;std::printf("X: %f, Y: %f, Z: %f \n", jointData.positionWorld.x, jointData.positionWorld.y, jointData.positionWorld.z);&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/STRONG&gt;&lt;/EM&gt;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;for(int j = 0; j &amp;lt; PXCHandData::NUMBER_OF_JOINTS ; j++)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;handData-&amp;gt;QueryTrackedJoint((PXCHandData::JointType)j,jointData);&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;nodes&lt;I&gt;&lt;J&gt; = jointData;&lt;/J&gt;&lt;/I&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 03 Jan 2015 21:35:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Need-hand-tracking-explanation/m-p/1014280#M35387</guid>
      <dc:creator>Scott_W_1</dc:creator>
      <dc:date>2015-01-03T21:35:00Z</dc:date>
    </item>
    <item>
      <title>Scott,</title>
      <link>https://community.intel.com/t5/Software-Archive/Need-hand-tracking-explanation/m-p/1014281#M35388</link>
      <description>&lt;P&gt;Scott,&lt;/P&gt;

&lt;P&gt;The documentation says &lt;SPAN class="f_CodeExample"&gt;QueryTrackedJoint &lt;/SPAN&gt;&lt;SPAN class="f_TableText"&gt;&amp;nbsp;has a second argument JointData.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;Syntax&lt;/P&gt;

&lt;P&gt;C++&lt;BR /&gt;
	&amp;nbsp;pxcStatus&amp;nbsp; QueryTrackedJoint(JointType label, JointData &amp;amp;data);&lt;BR /&gt;
	&amp;nbsp;&lt;BR /&gt;
	Parameters&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;label&lt;BR /&gt;
	&amp;nbsp;The joint label. See the JointType enumerator for definitions.&lt;BR /&gt;
	&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;data&lt;BR /&gt;
	&amp;nbsp;The joint data, in the JointData structure, to be returned.&lt;BR /&gt;
	&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Regards,&lt;/P&gt;

&lt;P&gt;Jack&lt;/P&gt;</description>
      <pubDate>Sat, 03 Jan 2015 21:56:27 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Need-hand-tracking-explanation/m-p/1014281#M35388</guid>
      <dc:creator>Jack_K_1</dc:creator>
      <dc:date>2015-01-03T21:56:27Z</dc:date>
    </item>
    <item>
      <title>do u know how to recognize</title>
      <link>https://community.intel.com/t5/Software-Archive/Need-hand-tracking-explanation/m-p/1014282#M35389</link>
      <description>&lt;P&gt;HI SCOTT,do u know how to recognize some new gesture except the default 10 gestures（V，fist，spread finger etc）？ it have read the program for about two weeks and still do not know how to modify the parameters or using the raw data to recognize the sign language gestures.........&lt;/P&gt;

&lt;P&gt;waiting for your reply..........&lt;/P&gt;</description>
      <pubDate>Tue, 28 Jul 2015 13:44:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Need-hand-tracking-explanation/m-p/1014282#M35389</guid>
      <dc:creator>zhenxi_c_</dc:creator>
      <dc:date>2015-07-28T13:44:00Z</dc:date>
    </item>
    <item>
      <title>RealSense does support the</title>
      <link>https://community.intel.com/t5/Software-Archive/Need-hand-tracking-explanation/m-p/1014283#M35390</link>
      <description>&lt;P&gt;RealSense does support the creation of new camera algorithms by developers to expand its capabilities beyond those supported by default in the RealSense SDK. &amp;nbsp;However, it has been said that it is not as easy to do so as it was in RealSense's direct predecessor, 2013's Perceptual Computing SDK and the accompanying Creative Senz3D camera. &amp;nbsp;This added difficulty was apparently as a result of the increased complexity of RealSense.&lt;/P&gt;

&lt;P&gt;Backing this up is an Intel blog article by Code Monkeys developer Chris Skaggs, where he says the following:&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 12px; line-height: 18px;"&gt;"A more “user-friendly” system comes at the cost of granular control. &amp;nbsp;Developers have a lot less access to raw data in the Intel RealSense SDK and customizing processing algorithms is no longer a simple matter. &amp;nbsp;In the end, though, the Intel RealSense SDK is a major improvement over Intel Perceptual Computing at basically every level. &amp;nbsp;And while the nerdcore coder in us miss the unfettered data stream [in the PerC SDK], the deadline-oriented coder is grateful for the improved level of accessibility and productivity."&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;A href="https://software.intel.com/en-us/articles/to-realsense-w-unity" target="_blank"&gt;https://software.intel.com/en-us/articles/to-realsense-w-unity&lt;/A&gt;&lt;/P&gt;

&lt;P&gt;So it should be possible for you to create new camera recognition algorithms to make sign language possible. &amp;nbsp;It will take a bit of work to learn how to do so though!&lt;/P&gt;

&lt;P&gt;Edit: an alternative to developing a new camera algorithm would be to create a virtual body in the Unity game engine with RealSense and place invisible trigger points around its body. &amp;nbsp;When a certain combination of factors were triggered simultaneously, that could be recognized as a sign language gesture. &amp;nbsp;&lt;/P&gt;

&lt;P&gt;For example, if the programmed logic detects that the arm is crossing a certain point in front of the chest whilst the index and middle fingers are pressed together (detected by collision fields on the sides of the fingers) then the program could say "That must be 'X' sign language gesture) and initiate a certain response to that gesture being recognized.&lt;/P&gt;

&lt;P&gt;Here's a 3 month old video of my company's RealSense-powered full body avatar in action to help illustrate the concept (the avatar is even more capable now in the present day).&lt;/P&gt;

&lt;P&gt;&lt;A href="https://www.youtube.com/watch?v=bGGlbc0yk2E" target="_blank"&gt;https://www.youtube.com/watch?v=bGGlbc0yk2E&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 28 Jul 2015 15:16:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Need-hand-tracking-explanation/m-p/1014283#M35390</guid>
      <dc:creator>MartyG</dc:creator>
      <dc:date>2015-07-28T15:16:00Z</dc:date>
    </item>
  </channel>
</rss>

