It’s been well over a year since my last update. I apologize for that but in between school, life, and some really fun projects, I have some really promising progress to share.
On my last update for the Kinect, I left off with some LabView code that allows anyone to interface with the Kinect. In the time since it was released I have received lots of positive feedback from everyone, so I must first start out by thanking everyone and I hope it will continue to be of good use.
Since that time I worked furiously to develop an image processing algorithm to detect open doors/pathways enabling artificial intelligence pathway planning.
The only issue is in order to actually run the software on the iRobot create I bought to test it on, i had to either tether or set my entire laptop on the iRobot create. That isn’t an optimal solution especially for debugging purposes. Hence, the next step would be to design my own circuitry to resolve the problem.
Now, approximately 6 months ago, my good friend Gytis Baranauskas and myself bought ourselves a DIY CNC machine. While we have had many ideas and goals for the CNC machine, our primary goal was to create printed circuit boards. This would enable us to offload the USB host controller, the iRobot communication and the image processing into separate microprocessors and achieve a much smaller, lighter, cheaper solution then using a full-blown computer and all the complexities that come with dealing with supporting 10 different operating systems.
Our first experiments are consisting of creating PCB breakout boards for the USB host controller and a microprocessor in order to connect them to a breadboard and begin testing them and the functionality to use them.
We are making progress rapidly, and I will keep this site informed as our progress continues. If you would like to see more of our work, the gallery below features many of the things we have been able to do in the past year.
It’s been 4 weeks since I last posted on my Kinect development, and I have some updates to share.
First and foremost the code is available to anyone who wants it or to help develop it on github here: https://github.com/RyanGordon/libfreenect/tree/unstable or if you only want the labview code and relevant files: https://github.com/RyanGordon/libfreenect/tree/unstable/wrappers/labview. The library is also making it’s way into the official OpenKinect codebase.
Second, the code is now much cleaner and the interface is much better. The LabView libraries now interface with the IMAQ vision library for easy processing and machine vision intelligence.
The next challenge is to figure out what cool thing I can do with this now! I’m hoping to write an efficient algorithm for detecting the best path for a robot to take, from point A to point B, using the Kinect.
Stay tuned for the 3rd installment of the Kinect trilogy.
P.S. Thank you everyone who reads this blog and especially those whom have left feedback or commented. Your interest and encouragement is what keeps me going with projects like these.
So I resigned from MyBB and I disappear from the internet for 3 weeks… What have I been up to?
Well, I’ve been up to this:
What is this you ask? This is a piece of software that is actually a programming language. It’s called LabVIEW and this programming language was built for “real time data acquisition.” Essentially, LabVIEW is a programming language that is built for things that need to happen in “real time” and also allows for analysis and debugging in “real time” which is much different then any other programming language out there.
So what is the Kinect and why did you write it for LabVIEW? Well, I am a technology enthusiast by trade; One of my favorite things to do is mess with robots and think of new ways I can put everyday technology to use with these robots and LabVIEW is the language that I can do it in. The Kinect itself is a product created by Microsoft that essentially creates a 3D camera and this allows Microsoft to use it for controller-free gaming on the Xbox. Now, this is only one application out of tens of thousands that can be realized with the Kinect and it’s 3D Camera. My mission is to use the Kinect to help open up the possibility of a wide array of applications and do something cool myself while I’m at it, but there’s a lot to do before we can get there.
The first step was to reverse engineer the Kinect and figure out how it works and how we can make it work for us. This became a huge task over the past few months currently being accomplished by an initiative and community called OpenKinect. These brilliant minds are behind what will soon become a entirely new Minority Report level of technology that will interact with you naturally and intuitively to accomplish everyday consumer tasks. My part to this puzzle is only a very small part to the much larger picture that is coming together very quickly with this amazing new technology.
Now down to business. So far we have a three stage process to open up 3D imaging technology to the world.
- First, 3D Camera technology must be widely available and at a price point worthy of investing in for most consumers. The Kinect accomplishes this step.
- Second, the technology must be widely available on many programming languages, allowing developers to program code on top of the data it provides. The OpenKinect community is making great strides towards this goal very quickly.
- And third, code must be written to analyze the data that the Kinect provides and then do something intuitive or cool with it. This step is where I come in and this area of technology is still very widely unexplored and untested.
So what does this mean for me? This means that there is a long way still to go until we can see this technology doing something really intuitive or cool that hasn’t been seen before. I’ve been able to make a lot of headway so far by getting the LabView drivers to work but it’s going to take a lot more work to make it do something really cool.
Next part to the Kinect Trilogy soon. Stay Tuned.