Download sourcecode for current version.

This is a library and a set of utilities built on PCL to work with a CHR UM6 IMU mounted on an OpenNI 1.x compatible depth camera like the Microsoft Kinect. Classes and utilities are included to grab, save, and playback full-frame 30FPS depth data and corresponding 100Hz IMU data. The imucam::Grabber and imucam::Reader classes extend pcl::Grabber and can supply pcl::PointClouds, OpenNI depth and RGB images, or imucam::Frames which package the images with corresponding IMU data.

A calibration tool is provided to estimate the rigid rotation of the IMU relative to the camera based on captured depth images of a flat horizontal ground plane.

Though RGB-D+IMU data is the focus, most of the code and utilities can be used with any subset of the RGB, depth, and IMU datastreams. Support for IMUs other than the UM6 is not included, but could be implemented with some work by abstracting the imucam::UM6 interface. Supporting non-OpennNI 1.x cameras would also be possible with some work.

Copyright (c) 2014, Marsette Vona. All code is BSD Licensed.

Classes

Also see imucam-classes.txt and the header files for additional doc.

Utilities

All utilties show command line option help with -h and interactive help by hitting h in a GUI window or in the terminal.

Tested Platforms

Dependencies

Building

Run make to build everything. Option VERBOSE=1 shows the commands being run. Option WITH_CALIBRATOR=1 includes the calibration code in the library.

Run make libs|bins|docs to build just the libraries, binaries, or documentation. Run make foo.bin to build just the target binary foo, e.g. make record_frames.bin.

TBD

in imucam::Reader

in imucam::Grabber

in imucam::UM6

in imucam::Viewer

in imucam::Writer

in imucam::Calibrator

Acknowledgements

This material is based upon work supported by the National Science Foundation under Grant No. 1149235. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.

Disclaimer

THIS INFORMATION AND/OR SOFTWARE IS PROVIDED BY THE AUTHOR “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS INFORMATION AND/OR SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.