App that streams information captured by the Project Tango sensors over ROS (Pose and Pointcloud for now), using Ekumen Labs' native C++ port of ROS for Android (see https://github.com/ekumenlabs/roscpp_android).
In order to build, you need to have the Android SDK and NDK installed, along with Android Studio (tested on version 2.3.2), or standalone Gradle.
This app requires both the Tango Client Library and the Tango Support Library, along with the binary distribution of the NDK ROSCPP port, they should be extracted in the specified folders. The Tango Client Library and Support Library (both for the C language) can be downloaded from Google, here, current tested version is Hopak
The NDK ROSCPP port binary distribution can be downloaded from here, under the Portable distribution section, file roscpp_android_ndk.tar.gz
.
Finally, some settings need to be changed (Via code for now, will change soon to be settable via the GUI on each run), on the file tango_ros_ndk/tango_native_ros/tango_native_streaming/src/main/jni/tango_native_streaming.cpp
, the defines at the top, ROS_MASTER_URI, ROS_HOSTNAME, and NAMESPACE need to be set, ROS_MASTER_URI to the address of the ROS MASTER to use (including http:// and the port number), ROS_HOSTNAME to the Tango's IP address, and NAMESPACE to the desired name of the node, and topic namespace. There is also an optional TANGO_PREFIX defined, this, if nonempty, is added as a prefix to the tf names.
tango_image_depth
contains the pointcloud captured by the Tango.
initial_pose
used to set a known pose.
-
map -> odom
Initially a unit transform, changes if initial_pose is used to correct the position to a known one. -
odom -> base_link
Tango pose information, as provided by the API fromCOORDINATE_FRAME_START_OF_SERVICE
toCOORDINATE_FRAME_DEVICE
-
base_link -> tango_pose
Tango's default pose information does not coincide with the pose of a person holding the tablet in a normal orientation, so this transform is provided to coincide with the pose of the user. -
base_link -> tango_camera_depth
Provides the depth camera position relative to the device. -
base_link -> tango_camera_color
Provides the color camera position relative to the device. (Untested to be correct yet, since color camera information is not being transmitted).
- Set configurable options via the user interface instead of code.
- Transmit color images.
- Fuse pointclouds with color camera data to transmit XYZRGB color pointclouds.
- Use ADF for relocating in known areas.