ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

I have already post it to Kinect+ROS mailing list.

se7oluti0n, who answered my question and it did work for me. Let me copy this msg for you all.

I have had the same problem before but I have solved it by edit some value in this piece of code : in function void radiusFilter(int nnthresh, double tol) of analyze_hands.cpp:

for(uint i=0;i<full.points.size();++i){
    if(inds2[i]==0) continue;
      sc2.NNN(full.points[i],searchinds,tol);
      //TO   DO: this is good for face-on, but not great for tilted hands
     if(searchinds.size()>(530-500*distfromsensor)){
         inds.push_back(i);
       if(searchinds.size()>(570-500*distfromsensor))
            label=0;
         else
            label=1;
         for(uint j=0;j<searchinds.size();++j)
            inds2[searchinds[j]]=label;
      }

}

this functions will separate palm and digits by look at each point of the hand point cloud, If number of points around that point ( within radius tol ( 2nd parameters )) is bigger than (530-500*distfromsensor), this point will belong to palm and vice versa.

replace 530 and 570 with your value ( may be the size of the cluster depends on people ) or edit radius tol my case is 830 and 870 and it worked.

Hope that helps..