0
$\begingroup$

Rosanswers logo

I'm using ROS to control a Kinect, and I need to project the skeleton points I get with openni_tracker to image coordinates. I found an answer about converting world coordinates to image coordinates (P_screen = I * P_world, where I is the 3x4 intrinsics matrix), however, the mapping I get seems incorrect.

An example of the /tf topic I have recorded is below:

transforms: 
  - 
    header: 
      seq: 0
      stamp: 
        secs: 1385988109
        nsecs: 907731078
      frame_id: /skeleton/openni_depth_frame
    child_frame_id: /skeleton/head_4
    transform: 
      translation: 
        x: 1.97650313527
        y: 0.467346462985
        z: 0.124516482569
      rotation: 
        x: 0.320303175814
        y: 0.601755401028
        z: 0.604153236547
        w: 0.412668365236
---

Could you please help me with the needed transform to get the image coordinates (RGB topic: /camera/rgb/image_color) of the above point (the head of Kinect skeleton). The rest of the skeleton point have similar format.

Also, I want to point out, that I used the skeleton_markerspackage and the visualization of the joints of the skeleton seems correct. However, the problem is that I don't know how to project those points on the RGB image.


Originally posted by xana on ROS Answers with karma: 11 on 2014-04-08

Post score: 1

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

Same advice as here applies in your case. Have a look at image_geometry, it should be straightforward to use. The Projecting a TF frame onto an image basically just has to be modified for your use case.


Originally posted by Stefan Kohlbrecher with karma: 24361 on 2014-04-08

This answer was ACCEPTED on the original site

Post score: 1

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.