I was lucky enough recently to receive a Tara stereo vision camera from e-con Systems for evaluation. The nifty camera, available currently for 249 USD from their website, is a pretty sweet package. Beyond being a small, fairly high throughput stereo camera that comes in a compact, well-built plastic housing, it has a number of other features that I really appreciate – out of the box calibration, a high frame rate, and some nice demonstration software delivered with it to start off. In this post – the first of a series exploring the camera – I’ll show you what it’s like to unbox the camera and get started with it. Read below for the details or skip to the video if you’re a touchy-feely person.
What’s the big deal?
I like the Tara for a number of reasons. First of all, it won’t set you back too much financially, compared with similar cameras (in the interests of full disclosure, it didn’t set me back at all, but I’d still be writing this even if it had).
The hardware is well built. The rig is compact, and I find the rectangular prism shape very practical for use in embedded projects where it’s always a difficulty getting all your sensors, servos, batteries, processors, propellers, etc. nailed down tight. It has a practical all-in-one connector that functions as the power supply and the communication line to your computer.
As you may know, I’ve written quite a bit about making 3d images using a home-made stereo rig. The linked blog post is connected to a number of other posts which will tell you how to deal with both the software and the hardware required to do that, and it works fine. Nonetheless, there are a lot of advantages to buying a pre-made rig like the Tara, rather than making your own. The Tara’s hardware has some nice features you can’t get by nailing a few webcams to a board, among others:
- Guaranteed synchronous firing of both cameras
- An internal IMU so you can track your camera’s movements through space
- Guaranteed 60 fps in its WVGA stream – if you’re more interested in frame rate than resolution (like I am) this is a nice plus
- It’s pre-calibrated out of the box so your point clouds will be nice and pretty without the need for tuning
In addition to that, the software has some nice perks:
- The SDK has OpenCV integration, which makes it easy to use the rich capabilities of OpenCV out of the box
- It also includes nice example apps so you can start sensing distance right away
- No special drivers are needed outside the SDK in order to get it running on a host PC.
In addition to that, when I look through their documentation it looks like the manufacturers have really paid attention to compliance, which means that you won’t have to do too much legwork to get this integrated with other machinery. It’s also a good sign in general that the camera will have support on a broad range of platforms and be easy to maintain for the future – all things that encourage me to work with it over a longer period.
How do I get started with it?
TL;DR: Check out the video.
Still with me? Good. Let’s go.
Getting the SDK
Before you start you’ll have to download the SDK. You’ll have a username and password from when you bought the camera – these are what you need to log in to the site. There, your purchases are listed – among them should be the camera. If you click on it, you arrive at the overview page for the camera with tabs for downloading the relevant files (e.g. installer for the SDK, documentation) as well as FAQs. It’s quite a lot of information, and especially the FAQs will tell you a lot of basic knowledge that can get you started even if you aren’t familiar with stereo systems.
What interests us at the moment is the SDK, which can be found in the “Files” tab. Accompanying the documentation there are a number of downloads under the “Application” headers for Linux and Windows, respectively. You’ll need the SDK that matches your system.
A word to the wise: Although the page claims Linux support, what is actually meant is Ubuntu support. My platform of choice is OpenSUSE, and after downloading the Linux SDK I noticed that it would be a lot of trouble to get it to run in SUSE. The developers had done a lot of legwork in order to package everything into an install script written pretty specifically for Ubuntu, rather than throwing everything in to a DEB or RPM, which I would have preferred. In the end, I ended up just using a Windows computer to run the examples, and that worked fine.
If you’re using Windows, installing the SDK is as simple as downloading the installer and running it. It takes about five minutes to complete at the most.
Running the examples
The SDK installs documentation alongside the libraries and binaries you’ll be working with. On my computer, the whole thing was written to
C:\Program Files (x86)\e-con Systems\TaraSDK\. Documents are contained in the subdirectory
Documents. My favorites are the Windows User Manual, which contains helpful information about every sample app provided, and the Windows API Manual, which provides details about the various API calls you can make when building your application.
The sample apps are all stored in the
Bin subdirectory, with further subdirectories for 32- and 64-bit platforms. You can run them from the command line just by starting them up. Note that you must be in administrator mode to be able to access the camera’s calibration file, stored on its flash drive. I’m especially happy with the depth map app – it works beautifully, updating at full resolution in real time and delivering excellent results, and all this without having had to invest any work in calibrating the camera myself.
Not all sample apps seem to be created equal – for example, the point cloud app exits silently with an undiagnosed error code. But the source codes are present, which means that they should be easy to adapt. With such great outputs, I’m excited to get to show off what I build with it in the weeks to come. Most of them are very useful as examples, though – check out
IMUApplication.exe to get an idea of what this camera offers in the way of navigation possibilities for your robots.
Where does it go from here?
e-con Systems’ SDK is proprietary, and you have to be registered with their platform in order to download it. That makes it a little bit hard to be as transparent as I would like to be with it, and it was a bit annoying to begin with, but these are small troubles. Once you get things set up, though, it’s smooth sailing from there on out.
In total, I’m very excited about this camera and am itching to get my fingers dirty writing code with it. I want to try out exporting point clouds in PCL and merging different ones. I’d also like to play with their IMU. e-con Systems notes that if you need specially built cameras – for example with more channels – that this is possible, so it would be intriguing to try that out if it’s promising enough. Combine that with running it on a smaller, embedded platform –
3d imaging sweetness. Stay tuned for more updates and examples!