I am developing a project that involves creating a product composed of hardware and software that enables interaction with various features.

I'm still in the testing phase , however , is sent to the brain of this product is a mini computer ODROID U3 , running Xubunto 13.10.

In addition to other components , I want the system refer to the use of the Kinect , or any other similar , however , for the test phase only own a Kinect.

I'm more accustomed to the language C # ( . NET ) , I used in windows environment with Visual Studio and did some games in Unity3D . The MonoDevelop looks very interesting alternative for Linux , and I'm currently testing it.

Well, as you may have noticed, I 'm new at this , and I have not much knowledge in Linux , MonoDevelop as well as Kinect , and I'm having some doubts .

I'm already trying to put the Kinect running on Linux for two days and the results are not very encouraging , installed libfreenect , nite , OpenNI and sensorKinect , but so far , the closest I got was to run one or two samples , not all work . Maybe I'm not doing things correctly ...

So loved your help , opinion or tip the following:

What is the best way to install and recognize the Kinect on Linux ?
Is it possible to run applications on computers Kinect ARM architecture ?
It is possible to develop applications for Kinect on Linux , with c# ?
Is it possible to do this with MonoDevelop ? If yes, how to install or use the wrapper for this purpose?
Does Microsoft user therms allow us to use Kinect on a different operating system, and sell a product with it?

Any help is welcome, and I want to thank the community already;)
Greetings.

  1. What is the Kinect's physical interface to the PC - USB?
  2. What do you mean by "Is it possible to run applications on computers Kinect ARM architecture?"? Are you saying that the Kinect runs an ARM processor and you want to run apps on it directly?
    3&4. Yes, you can develop/run C# applications on Linux with the mono environment. As for install/use the "wrapper" I can't say since I don't run C# in a Linux environment.
  3. MS allowing use of Kinect on a different OS? Probably not. I think you are on your own. If the Kinect has an ARM architecture, then it is likely that the OS is MS's RT version of Windows. In any case, it is highly unlikely that they wan't the kinect to be used by anything but their own tools.

All that being said, I'd be happy to find out I am wrong about most of that.

A colleague of mine was using Kinect in Linux not so long ago. I believe he used ROS's modules for it (ROS: Robot Operating System, which is comprehensive robotics library (mostly C++, with python bindings)). I think ROS uses the openni library for this. All I know is that it didn't take more than about 1 hour to have it running, so, it can't be that hard.

Also, I would expect that the OpenKinect project is also likely to work well.

with c# ?

That might be the sticky point. No one really cares about C#, and certainly not in Linux. I think the OpenKinect project has a C# wrapper, but it seems primitive or not very developed yet. Similarly, I don't think ROS supports any C# at all, or at least, it's very weak... even their Java support isn't great... there just aren't that many people who would do robotics with such inappropriate languages. So, you shouldn't hold too much hopes for a native C# solution to this. And in general, in the non-Windows world, when it comes to the programming language landscape, C# is pretty far down the list (in major part because Microsoft really doesn't want C# code to run anywhere else.. I mean, that's the only reason this language (and .NET) exists, don't you know?).

I can't imagine your company planning to use C# as the primary development language, especially if using Linux. So, you will have to get comfortable with a grown-up's language eventually (I recommend the "triple-threat": C / C++ / Python).

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.