The RealSense SDK For LInux, which was designed for use with the ZR300, has Person Tracking. Skeleton tracking is a sub-feature of Person Tracking.
A limitation of the feature, which is classed as Preview level and so has limited complexity, is that the body skeleton and gestures do not work well when the person is close (<0.7m) to an object.
Thank you MartyG for the fast response. I plan to use the ZR300 on Windows. despite reading it is not suited for windows the examples did work. Is there any way to use the realsense sdk for linux on windows?
The RealSense SDK For Linux is just for Linux.
I know that the open-source Librealsense SDK can treat the ZR300 as though it is an R200 camera (since the ZR300's IR components are identical to the R200's). So it stands to reason that there may be R200 applications in the Windows-based RealSense SDK that may run with a ZR300. Since the ZR300 is not officially supported in the RealSense SDK, I would not normally recommend it.
However, if you do wish to see what functions in the Windows SDK will work with your ZR300, the Windows SDK's '2016 R2' version does have Person Tracking and Skeleton Tracking. The quickest and easiest way to test it would be to run the R200 'Person Tracking' sample that comes with the R2 SDK.
Hey! I have the same question. I have actually downloaded the launch files from here: GitHub - IntelRealSense/realsense_samples_ros: Sample code illustrating how to develop ROS applications using the Intel®… and I launch the skeleton.launch file from the terminal. I can see the camera, and a box is created around the person, but it doesn't really detect the skeleton. Should I do something else? I ran the following code to run the launch file
mkdir -p catkin_ws/src
roslaunch realsense_ros_person demo_person_skeleton.launch
Do I maybe have to install the realsense sdk for linux first?
My aim here is to use the Intel for different gesture recognition, so the camera must detect when a person is raising her hand, when it's lowering, moving side-ways....
The installation instructions on that page say "The Intel RealSense SDK for Linux is used as the base for these ROS node" and follows that with a link to the installation instructions for the SDK. So yes, I would definitely recommend installing the SDK For Linux first.
Having said that, an alternative way to achieve your goals may be to use your RealSense camera with OpenCV. Google 'opencv hand tracking' for details on how to use it to recognize hand gestures.
Hey! Thanks for replying. I have just finished downloading the sdk since I haven't had access to a screen during the weekend. However the output remains the same (a bounding box around each detected person, and keeping track of that person, but no distintive skeleton features). Has anybody managed to run this launch file? What should show up?
Will try with OpenCV!!
The documentation for Person Tracking says that the Skeleton Tracking mode is dependent on Person Tracking mode. The instruction to launch Person Tracking first is:
$ roslaunch realsense_ros_person demo_person_tracking.launch
This information is given in the doc's 'Usage' section, about three-quarters down the page.
Hello! Yes, I have tried launching first the person_tracking.launch file and, in another terminal, the skeleton launch file, but then the first one stops running and the results is the same.....
I apologize for the delay in responding. I was carefully researching your question.
Looking again at the documentation, there is a list of parameters that can be added, including one for enabling / disabling skeleton tracking.
Their spelling, not mine!
I am not sure how parameters are applied in ROS. As they are an override it may be something like:
$ roslaunch realsense_ros_person ~sceletonEnabled
Hey again, and sorry for the delay! I've been trying what you said and investigating what may be my error, and I believe that I'm not installing the realsense sdk correctly, since I apparently have unmet dependencies. I'm currently trying to figure out how I should install the sdk correctly, since I think I'm missing some packages. I will keep you posted!
Thanks for the update. Good luck!
Hey MartyG, sadly the skeleton tracking in the R2 SDK did not work with the ZR300. We are currently looking at the D4xx series for our project. I found this post on the github of the realsense SDK 2.0 Are you going to have skeleton tracking for D435 (SDK 2.0)? · Issue #743 · IntelRealSense/librealsense · GitHub Do you think this means that skeleton tracking/person tracking is currently not supported by the SDK 2.0 ?
I don't know of any plans for Intel to create their own Person / Skeleton tracking solution for SDK 2.0, but you may be able to get that feature in SDK 2.0 using an OpenCV person detection module. You can research this by googling for 'opencv person detection'. Here's an example:
Intel are working on their website today (Monday) and links are having trouble launching, so in the meantime you can access the above page by copy and pasting the link below into a browser window instead of clicking on it.
I finally managed to install the realsense sdk correctly, and I have actually tried running the rs_pt_tutorial_3 of realsense_sample, and I have managed to detect the pointing gesture via the camera. However, I still haven't managed to run the skeleton.launch file, or even the same gesture recognition file (which should also detect the pointing gesture like in the rs_pt_tutorial_3). It does say mEnableSkeleton=1 when I run the launch file, however in a previous line I can see skeleton disabled, which is confusing.... It is true that you need to run the person_tracking module first, but it already launches that node first in the launch file. Could it be that the files aren't well connected? Because I have found a file called SkeletonJoints where it specifies different joints in the body, but I can't see where that it's called in the main launch file....