0
$\begingroup$

Rosanswers logo

Hi all,

ROS beginner here - I have recently been trying to implement people detection on a Baxter robot. Now, I believe that it already works quite well in terms of moving, displaying images and speaking due the high number of pure ROS packages it is running.

My goal is to give it the ability to detect people - skeleton tracking is a solution. Microsoft being the developers for Kinect seem to have developed a fairly well made Visual Studio project using the Xbox One Kinect (2.0) called BodyBasics (available for download from the Kinect 2.0 SDK that needs to be installed first).

What BodyBasics does is it creates a black window - while the Kinect is connected to my laptop, any person going in front of the Kinect will show up on the window as a "skeleton" of colored limbs (or sticks), up to a total of three people. Whenever they move, the window will update with the movement of the skeletons, quite like it is shown here:Kinect SDK skeleton tracker

Unfortunately no packages on ROS can emulate this kind of functionality given that Openni seems not to have an official driver for the Kinect 2.0.

I wish to get the data from the window in real time- which is running Visual Studio on a Windows laptop- to output in some way to the overall ROS bundle that the Baxter Robot operates from.

Would I be able to do this via two laptops (one on Windows and one on Ubuntu) with the aid of rosserial or should I set up something of a ROS network over which I could send the data from the Kinect in real time?

Thank you for reading- I am quite new to ROS so obviously have not explored all of its capacities - such as serial or network communication. (all the tutorials I have followed have been related to virtual robots such as the turtlebot in gazebo)


Originally posted by YongZhann on ROS Answers with karma: 11 on 2017-08-14

Post score: 1

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

Hello, have you found some ideas for doing this yet? I don't have any experience doing something like this, but have been looking into it a bit. Looks like rosserial_windows can be used in a client, though ideally in your application you would run a node in windows that contain a publisher of the skeleton data, so other clients can receive it. So you may need a relay node of some kind that your windows program can send data to, which simply turns around and publishes it on a topic so that other clients can receive it. Or you could use some other network communications method to send the data from the Windows program to a ROS node to publish it to ROS. This would unfortunately add latency. Anyone more familiar with rosserial and rosserial_windows, please correct me if wrong! There is also experimental support to run ROS using Windows Subsystem for Linux, but I wouldn't expect the Kinect SDK to be usable within that system? I suppose you could also just implement your tracking and other application specific stuff in the Windows program using the Kinect SDK, and just use rosserial_client to control the Baxter.


Originally posted by ReedHedges with karma: 821 on 2017-10-26

This answer was ACCEPTED on the original site

Post score: 0

$\endgroup$

Your Answer

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