The errata list is a list of errors and their corrections that were found after the product was released.
The following errata were submitted by our customers and have not yet been approved or disproved by the author or editor. They solely represent the opinion of the customer.
Version |
Location |
Description |
Submitted by |
Date Submitted |
Printed |
Page 90
5th paragraph |
I tried example 9 today, having just downloaded latest Kinect SDK, SimpleOpenNI etc.
I found the depthMap is NOT reversed (contrary to what the book says - perhaps it was reversed in earlier versions?).
So I had to change the line:
int i = reversedX + y * 640;
to:
int i = x + y * 640;
in order to get the "pen" to move in the same direction as my finger.
|
Anonymous |
Jan 25, 2014 |
Printed, PDF |
Page 140
6th paragraph |
There's a link to download the files for the air drum kit project, but the link is currently unavailable.
|
Erick Mendon |
Aug 25, 2013 |
Printed |
Page 124-125
Last Paragraph on 124 and 1st on 125 |
Paragraph at the bottom of page 124 is repeated at the top of page 125.
|
Tim Murphy |
Jul 24, 2013 |
PDF |
Page 98
3rd line |
when I tried to compile the example code i get this in return
SimpleOpenNI Version 0.27
Exception in thread "Animation Thread" java.lang.NullPointerException
at kinect_deteccion_cercana.draw(kinect_deteccion_cercana.java:47) at processing.core.PApplet.handleDraw(PApplet.java:2266)
at processing.core.PGraphicsJava2D.requestDraw(PGraphicsJava2D.java:243)
at processing.core.PApplet.run(PApplet.java:2140)
at java.lang.Thread.run(Thread.java:662)
|
Anonymous |
Apr 03, 2013 |
PDF |
Page 118
Point #2 of code explanation |
Your discussion of rotateX ignores the fact that the function flips both the Y and Z axis. Flipping the Y axis makes everything "right side up". Flipping the Z axis means that the depth readings from the Kinect correspond with the depth values on the screen (smaller depth numbers are closer to the viewer, bigger depth numbers are further away).
|
Rich Simpson |
Mar 28, 2013 |
Printed, PDF, ePub, Mobi |
Page 47-49
Installation instructions for OpenNI and Processing Library |
Because OpenNI and Processing are in a period of rapid development now, please begin at the simple-openni site for installing OpenNI as well as simple-openni:
https://code.google.com/p/simple-openni/wiki/Installation
|
Brian Jepson |
Mar 07, 2013 |
ePub |
Page 4173/13181
M?xico |
PVector[] depthPoints = kinect.depthMapRealWorld();
Null Pointer exception
SimpleOpenNI Version 0.27
Exception in thread "Animation Thread" java.lang.NullPointerException
at SimpleOpenNI.XnPoint3D.cArrayUnwrap(XnPoint3D.java:39)
at SimpleOpenNI.ContextWrapper.depthMapRealWorld(ContextWrapper.java:223)
at SimpleOpenNI.SimpleOpenNI.updateDepthRealWorld(SimpleOpenNI.java:851)
at SimpleOpenNI.SimpleOpenNI.depthMapRealWorld(SimpleOpenNI.java:438)
at Pjt14kinect.draw(Pjt14kinect.java:55)
at processing.core.PApplet.handleDraw(Unknown Source)
at processing.core.PApplet.run(Unknown Source)
at java.lang.Thread.run(Thread.java:662)
|
Anonymous |
Jan 07, 2013 |
Printed |
Page 9
. |
On page 9, the author implies that Nite cannot be used with
commercial projects. In fact on the openni website it states
http://community.openni.org/openni/topics/how_much_does_nite_cost_can_i_use_it_in_my_product
NiTE for Windows, Mac and Linux are FREE for commercial use, you can
freely use it for your projects!
There are other versions, such as NiTE for ARM (for Android) for
specific embedded systems, they are distributed by Primesense under
specific licenses.
|
Anonymous |
Dec 28, 2012 |
Printed |
Page 121
Code segment downloaded from github |
Program stops at :
PVector[] depthpoints = kinect.depthMapRealWorld();
Error reported as:
NullPointerException
Sep 22 14:28:16 Clive-Wisharts-iMac.local java[623] <Error>: CGContextGetCTM: invalid context 0x0
Sep 22 14:28:16 Clive-Wisharts-iMac.local java[623] <Error>: CGContextSetBaseCTM: invalid context 0x0
Sep 22 14:28:16 Clive-Wisharts-iMac.local java[623] <Error>: CGContextGetCTM: invalid context 0x0
Sep 22 14:28:16 Clive-Wisharts-iMac.local java[623] <Error>: CGContextSetBaseCTM: invalid context 0x0
SimpleOpenNI Version 0.27
Exception in thread "Animation Thread" java.lang.NullPointerException
at SimpleOpenNI.XnPoint3D.cArrayUnwrap(XnPoint3D.java:39)
at SimpleOpenNI.ContextWrapper.depthMapRealWorld(ContextWrapper.java:223)
at SimpleOpenNI.SimpleOpenNI.updateDepthRealWorld(SimpleOpenNI.java:851)
at SimpleOpenNI.SimpleOpenNI.depthMapRealWorld(SimpleOpenNI.java:438)
at Kinect_ex04_first_point_cloud.draw(Kinect_ex04_first_point_cloud.java:52)
at processing.core.PApplet.handleDraw(PApplet.java:1906)
at processing.core.PApplet.run(PApplet.java:1803)
at java.lang.Thread.run(Thread.java:680)
|
Anonymous |
Sep 22, 2012 |
PDF |
Page 309
sample code |
The code doesn't work with ModelBuilder v0007a03 because the model.addFace() calls are incorrect. Here's how to fix it:
// build a triangle out of three vectors
UVec3[] vv = {new UVec3(150, 150, 0),
new UVec3(300, 150, 0),
new UVec3(150, 150, -150)};
model.addFace(vv);
vv[0] = new UVec3(300, 150, 0);
vv[1] = new UVec3(300, 150, -150);
vv[2] = new UVec3(150, 150, -150);
model.addFace(vv);
vv[0] = new UVec3(300, 150, -150);
vv[1] = new UVec3(300, 150, 0);
vv[2] = new UVec3(300, 300, 0);
model.addFace(vv);
vv[0] = new UVec3(300, 300, -150);
vv[1] = new UVec3(300, 150, -150);
vv[2] = new UVec3(300, 300, 0);
model.addFace(vv);
|
Richs1000 |
Aug 27, 2012 |
PDF |
Page 290
Sample Code |
You have the drawLimb() function in the code, which isn't used.
|
Richs1000 |
Aug 08, 2012 |
PDF |
Page 256
sample code |
Markers 4 and 6 are reversed in the code listing.
|
Rich Simpson |
Aug 07, 2012 |
Other Digital Version |
247
sample code in GitHub |
In the chSK_scene_image_basic.pde sample code available on GitHub:
Line 6 - This line isn't necessary:
PImage userImage;
Line 23 - This is missing ">0":
if (kinect.getNumberOfUsers()) {
Line 31 - This is missing "!":
if (userMap[i] = 0) {
|
Rich Simpson |
Aug 02, 2012 |
PDF |
Page 224
code sample, beneath pushmatrix() |
You left out the call to scale(4)
|
Rich Simpson |
Jun 28, 2012 |
Printed |
Page 48
starting para #3 |
first sub-bullet direct downloading the Hardware Binaries. 2nd bullet indicates that you double-click the downloaded .msi and follow instructions. when you run the .msi you get a message that tells you to install OpenNI first.
even after making this correction, of following the correct order, can install the drivers but when running the test of DepthImage receive an error of: 'can't open the depthMap, maybe the camera is not connected!
cjecking he blogs several other folks are having the same issue with a windows (XP in my case) instal!
|
Anonymous |
May 31, 2012 |
|
chapter 1
under Figure 1.1 |
au natural should be "au naturel" if you're going to quote the french
|
Anonymous |
Mar 14, 2012 |
PDF |
Page 49
2nd paragraph |
Linux Installation on a fresh Ubuntu 11.1.as described on page 49 does not work. Following the instructions on simple-openni website listed on page 49, today (date Mar 6/12), it states that "Before you can use SimpleOpenNI you have to install Processing and OpenNI.", in conflict with page 49 which says to install Simple-OpenNI first. Trying to install OpenNI with the Terminal command "sudo ./install,sh -i" from the uncompressed folder, stops within a few lines with an error message. 'libnimocknodes.so...unterminated quoted string"
|
Anonymous |
Mar 06, 2012 |
PDF |
Page 250
Code sample |
The code sample from the book (and Greg's Github) uses:
image(backgroundImage, 0, 0);
to update the background each time we call draw, but (at least in my case) this doesn't seem to work as expected, the rgbImage.pixels seems to overdraw the entire background, without it ever being updated.
Simply changing the line to:
background(backgroundImage);
fixed the problem though.
|
ivoflipse@gmail.com |
Feb 08, 2012 |
PDF |
Page 243
middle of page (code fragmant, last line) |
in the last line of code, "toNormalized" should read toNormalize to match the declared variable above it.
|
tatyana |
Jan 03, 2012 |
PDF |
Page 126
top of page |
I was able to correct the issue to allow accurate "mirroring" by adding this line:
rotateY(radians(180));
above the "rotateX" line
|
tatyana |
Dec 31, 2011 |
PDF |
Page 126
5th & 6th line of code |
translate(width/2, height/2, -1000); //
rotateX(radians(180)); // flip y-axis from "realWorld"
To move the image closer (zoom in), I actually have to put in 1000 instead of -1000 into the 3rd value for translate.
Also 'rotateX(radians(180))' does not seem to actually flip the y-axis and the image shown. The point cloud image does not mirror my movements and is still reversed. When I try to pass in any value besides "180" into radians, the screen is just black.
Any suggestions?
|
Tatyana |
Dec 31, 2011 |
PDF |
Page 53
"Installing the Processing Library" |
I followed the instructions in Chapter 2 for installation of the relevant software as if I was completely new to working with the Kinect and the libraries--which I am.
Installation went smoothly, but nothing worked...because nowhere, as far as I can tell, did the procedure mention that I needed to install the Processing app. The text refers to it often, even telling the user to quit and relaunch it...which was nothing if not puzzling, since no app was running.
Everything worked fine once I guessed that Processing had to be present, and installed it.
I think you can safely assume that some of your readers have never used Processing before, and are not simply installing a new set of drivers for something with which they're already familiar, but rather that this entire exercise is new to them...so they need to be told to install Processing.
(BTW: I would have made this a Comment instead of an Errata report, except the "Comment Now" button is nowhere to be found on the pages.)
|
Anonymous |
Dec 29, 2011 |
Other Digital Version |
212
After 2nd Paragraph |
Under Project 8: Air Drum Kit, there is a link to the makingthingssee.com domain, but GoDaddy has the domain parked.
|
David Bishop |
Dec 22, 2011 |