OculusJuggling

From TAMI
Jump to: navigation, search

Oculus Juggling

Take an Oculus, take a kinect, take two phone (portable networked accelerometers).

  • Kinect
    • using the original Microsoft Kinect
    • couldn't get the 1d27:0601 to work on Fedora, seems to be a kernel issue - not recognized as a video device. Probably stupidly simple, but just quit wasting time and switched to the older and less nice (huge compared to the Asus) device.

Status, how to get it

PC software:

Kinect not used yet.

For android software see the beast below.

Oculus notes

Note: libovr is not needed, there is OpenHMD - although I haven't packaged it yet, but it is boost licensed. And there is no need for the demos.

Possible development systems: Recommended by SDK Nvidia 650M +

  • Dell Inspiron 17R SE 7720-36308G14GSW8 (ksp)

Random Oculus stuff

  • FireBox - snow crash inspired internet browser. Works for demo pages, but still really cool.

Kinect notes

Hand tracking: ros, or pcl. pcl is packaged for fedora, is lowerlevel. do either have a python wrapper? skeltrack also looks good, it's glib. I could use glib+python for everything. Or maybe vala. Rust won't work right now with glib. It does have glfw wrapped.

Skeltrack

ROS

http://wiki.ros.org/diamondback/Installation/Fedora

Hand Tracking:

PCL

http://www.pointclouds.org/documentation/tutorials/

Hand detection papers

Rust OpenGL

Panda 3D

sending android accelerometer data

BY SALACIOUS CRUMB, BOSS PROGRAMMER

Salacious.gif

eclipse project is at git@gitorious.org:juggler-android-code/accelerometer.git

We sent the accelerometer info over UDP. This is a universe of socket ports, parallel to the 'TCP' universe of sockets which are guaranteed to arrive and to arrive in order. UDP is apparently better for this project because its faster, we don't care about dropped data, and out-of-order is ok.

To get an android phone's IP for testing purposes (and to get the host to allow the phone's IP to open a socket) you can dial "*#*#4636#*#*" to open the Testing menu. Then click WiFi information, then WiFi Status.

To check if the socket business was working ok we used 'ncat' the 'networking swiss army knife' on the windows pc where i was compiling the android code in eclipse. It would've been more useful to run it on the android: this is apparently possible. On the way I discovered the use of 'monkeyrunner' to run remote commands on your android, iiuc.

The info is sent as 'RIGHT' or 'LEFT' since the idea is to have two accelerometers, one in each hand, followed by

Ax, Ay, Az, time

in m/s^2 and milliseconds

Interestingly, as soon as a ball is released from one's hand, an accelerometer upon it 'sees' zero acceleration while an external observes sees it undergoing one g acceleration. And alternatively, when the ball is still it 'sees' one gee while the external observer sees zero!

SALACIOUS CRUMB, BOSS PROGRAMMER, OVER AND OUT

Testing on PC

Use socat:

  • socat UDP-RECV:5000 -

fedora android howto

Appendix

libovr.spec

Name:		LibOVR
Version:	0.2.4b
Release:	1%{?dist}
Summary:    Oculus Rift VR SDK

Group:		User Interface/Desktops
License:	Proprietary
URL:		http://developer.oculusvr.com/
Source0:	http://static.oculusvr.com/sdk-downloads/ovr_sdk_linux_0.2.4.b.tar.gz
# Note: source requires a license key, real URL is of the form: ...?AWSAccessKeyId=<accesskey>Signature=<signature>

BuildRequires: libudev-devel libXext-devel mesa-libGL-devel freeglut-devel libXinerama-devel
Requires: libudev-devel libXext-devel mesa-libGL-devel freeglut-devel libXinerama-devel


%description
Oculus Rift VR SDK

%prep
%setup -q -n OculusSDK


%build
make -C LibOVR %{?_smp_mflags}


%install
mkdir -p %{buildroot}%{_libdir}
cp LibOVR/Lib/Linux/Release/%{_arch}/libovr.a %{buildroot}%{_libdir}
mkdir -p %{buildroot}%{_includedir}/LibOVR
cp -R LibOVR/Include/* %{buildroot}%{_includedir}/LibOVR/


%files
%{_libdir}/libovr.a
%{_includedir}/LibOVR
%doc



%changelog
* Sun Sep 8 2013 Alon Levy <alon@pobox.com> - 0.2.4b-1
- Initial release