mcgi5sr2 / kinect2_tracker

body tracking for ROS using Nite2.2 and libfreenect2
59 stars 31 forks source link

Not able to catkin_make on kinect2_tracker cloned repository #1

Open bxs1260 opened 8 years ago

bxs1260 commented 8 years ago

First of all thanks to you for providing this ROS wrapper to the community. I was following the installation steps and came across few issues and solved them.

  1. Couldn't clone- git clone http://amrcgithub/mep12sr/kinect2_tracker so I have cloned - git clone https://github.com/mcgi5sr2/kinect2_tracker into my catkin workspace.
  2. While doing catkin_make, it throws an error saying fatal error: NiTE.h: No such file or directory

    include "NiTE.h" then i have copied all the header files from NiTE's include dir to catkin_ws/src/kinect2_tracker/include dir. An easy fix is to edit cmakeLists.txt in line 80 and 81 by providing the path to NiTE-Linux-x64-2.2 dir.

  3. After doing above mentioned changes and using catkin_make, it again throws some errors. I have found out it is because of this piece of code in file kinect2_tracker.hpp from line 218-233: `//Publish the calibration tf_frame as the cross product of the shoulder vectors -// This function publishes the calibration_space opposite the shoulders of the user
    • void publishCalibrationOriginTF(nite::SkeletonJoint skelTorso, nite::SkeletonJoint skelRshoulder, nite::SkeletonJoint skelLshoulder, int uid)
    • {
    • if (skelTorso.getPositionConfidence() > 0.0)
    • {
    • tf::Transform calibrationOriginTransform;

      - tf::Transform torsoTransform;

    • tf::Vector3 torsoVec3 = tf::Vector3(skelTorso.getPosition().x / 1000.0, skelTorso.getPosition().y / 1000.0, skelTorso.getPosition().z / 1000.0);
    • torsoTransform.setOrigin(torsoVec3);

      - torsoTransform.setRotation(tf::Quaternion(0,0,0,1));

    • tf::Vector3 RshoulderVec3 = tf::Vector3(skelRshoulder.getPosition().x / 1000.0, skelRshoulder.getPosition().y / 1000.0, skelRshoulder.getPosition().z / 1000.0); //create a vector for the right shoulder

      - RshoulderVec3 = (RshoulderVec3 - torsoVec3); //vector is the difference of the two

    • tf::Vector3 LshoulderVec3 = tf::Vector3(skelLshoulder.getPosition().x / 1000.0, skelLshoulder.getPosition().y / 1000.0, skelLshoulder.getPosition().z / 1000.0); //create a vector for the left shoulder`

Fix: remove all these - (hyphen marks) from in front of these lines of code and perform catkin make.

mcgi5sr2 commented 8 years ago

Awesome thanks for these fixes. Does the tracking system work for you now? I will update the readme as soon as I find the time

bxs1260 commented 8 years ago

Yes it works ! :) One last thing need to mention is to edit the path in setup_nite.bash for NiTE-Linux-x64-2.2 dir while creating symbolic link between .ros dir and NiTE-Linux-x64-2.2 dir.

  1. I was expecting this kind of topics after $roslaunch kinect2_tracker tracker.launch

(just for ref. from kinect v1 gazebo simulation)

/camera/depth/camera_info

/camera/depth/image_raw

/camera/depth/points

/camera/parameter_descriptions

/camera/parameter_updates

/camera/rgb/camera_info

/camera/rgb/image_raw

/camera/rgb/image_raw/compressed

/camera/rgb/image_raw/compressed/parameter_descriptions

/camera/rgb/image_raw/compressed/parameter_updates

/camera/rgb/image_raw/compressedDepth

/camera/rgb/image_raw/compressedDepth/parameter_descriptions

/camera/rgb/image_raw/compressedDepth/parameter_updates

/camera/rgb/image_raw/theora

/camera/rgb/image_raw/theora/parameter_descriptions

/camera/rgb/image_raw/theora/parameter_updates

But it just shows following topics.

monu@linux:~$ rostopic list /people

/rosout

/rosout_agg

/tf

monu@linux:~$ rostopic echo /people

ERROR: Cannot load message class for [skeleton_tracker/user_IDs]. Are your messages built?

monu@linux:~$ rostopic echo /tf transforms:

Did you manage to visualize raw data of skeleton or depth or IR images streamed out of kinect v2 ROS wrapper.

-Thanks

mcgi5sr2 commented 8 years ago

Never managed to get any of that working. Feel free to add pull requests if you manage to improve anything. I believe iai_kinect2 package offers depth etc info over ROS

bxs1260 commented 8 years ago

Yeah sure. Thanks

chengzijiazu commented 8 years ago

Could this kinect2_tracker run on wimdows?I am working with multiple kinect v2 base on libfreenect2.Thank you!

mcgi5sr2 commented 8 years ago

No I am afraid not as it relies on the NiTE2.2 libraries

On 2016-07-26 3:33 PM, Songbin wrote:

Could this kinect2_tracker run on wimdows?I am working with multiple kinect v2 base on libfreenect2.Thank you!

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/mcgi5sr2/kinect2_tracker/issues/1#issuecomment-235286723, or mute the thread https://github.com/notifications/unsubscribe-auth/AGVSm_PJzp-NnK0_C1G_W1b_3JmpbojYks5qZhrVgaJpZM4IddOa.

chengzijiazu commented 8 years ago

Thank you for your reply. Other question:could this solution track multiple people at the same time and how to fusion the joint data to one skeleton when use the multiple kinects to track one person? -Thank you !

mcgi5sr2 commented 8 years ago

Hi,

I never got as far as fusing the data into one. If you are looking to use Windows then the university of Ulm created a system that can do that for you. As I understand it is still a work in progress. You can find the windows install files and guide here

https://github.com/fg-uulm/fusionkit

I hope this helps

kind regards

Stephen

On 27/07/16 09:16, Songbin wrote:

Thank you for your reply. Other question:could this solution track multiple people at the same time and how to fusion the joint data to one skeleton when use the multiple kinects to track one person? -Thank you !

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/mcgi5sr2/kinect2_tracker/issues/1#issuecomment-235517527, or mute the thread https://github.com/notifications/unsubscribe-auth/AGVSmy2d51LgTNUgg881IBkhMX0QR0OGks5qZxPdgaJpZM4IddOa.

chengzijiazu commented 8 years ago

Hi, that is a great work~

kind regards Songbin

aaramirezd commented 7 years ago

Hi @bxs1260 @mcgi5sr2

I followed all the instructions to configure the package, but I have the following error when run "UserViewer", The same error is generated when I execute "roslaunch kinect2_tracker..."

Protonect and NiViewer2 run correctly

andres@andres:~/usrlib/NiTE-Linux-x64-2.2/Samples/Bin$ sudo ./UserViewer [Info] [Freenect2Impl] enumerating devices... [Info] [Freenect2Impl] 8 usb devices connected [Info] [Freenect2Impl] found valid Kinect v2 @2:5 with serial 012752450747 [Info] [Freenect2Impl] found 1 devices [Info] [Freenect2Impl] enumerating devices... [Info] [Freenect2Impl] 8 usb devices connected [Info] [Freenect2Impl] found valid Kinect v2 @2:5 with serial 012752450747 [Info] [Freenect2Impl] found 1 devices [Info] [Freenect2DeviceImpl] opening... [Info] [Freenect2DeviceImpl] transfer pool sizes rgb: 2016384 ir: 608*33792 [Info] [Freenect2DeviceImpl] opened [Info] [Freenect2DeviceImpl] starting... [Info] [Freenect2DeviceImpl] submitting rgb transfers... [Info] [Freenect2DeviceImpl] submitting depth transfers... [Info] [RgbPacketStreamParser] packetsize or sequence doesn't match! [Info] [Freenect2DeviceImpl] started Error opening database/parameters file. [Info] [DepthPacketStreamParser] 8 packets were lost [Info] [OpenGLDepthPacketProcessor] avg. time: 5.16118ms -> ~193.754Hz

Do you have any idea of the error?

Thanks, Andrés

sweetbrulee commented 1 year ago

Copy the files in "Redist/NiTE2/Data" to "Sample/Bin/NiTE2/Data", and the problem should be fixed.