Ask Your Question
1

Kinect + Pandaboard + ROS = Fail

asked 2012-11-14 04:03:29 -0500

RodBelaFarin gravatar image

updated 2014-01-28 17:14:16 -0500

ngrennan gravatar image

Hi there,

i tried to run kinect with ROS on pandaboard (ARMv7-processer), but it failed.

now i am at a point that kinect is running on pandaboard, but not with ROS. I used link text to get kinect started on pandaboard an it works, the sample "SimpleRead" sends data to the terminal with "fps..." and "middlepoint is...".

After that i tried to run openni_kinect stack, downloaded it, but cant build. I tried

rosmake openni_kinect

but it stops with errors:

> make[3]: Verlasse Verzeichnis '/home/panda/ros/image_common/camera_calibration_parsers/build'
> make[3]: Betrete Verzeichnis
> '/home/panda/ros/image_common/camera_calibration_parsers/build'
> Linking CXX shared library
> ../lib/libcamera_calibration_parsers.so
> /usr/bin/ld:
> /usr/local/lib/libyaml-cpp.a(iterator.cpp.o):
> relocation R_ARM_THM_MOVW_ABS_NC
> against `a local symbol' can not be
> used when making a shared object;
> recompile with -fPIC  
> /usr/local/lib/libyaml-cpp.a: could
> not read symbols: Bad value  
> collect2: ld gab 1 als Ende-Status
> zurück   make[3]: ***
> [../lib/libcamera_calibration_parsers.so]
> Fehler 1   make[3]: Verlasse
> Verzeichnis
> '/home/panda/ros/image_common/camera_calibration_parsers/build'
> make[2]: ***
> [CMakeFiles/camera_calibration_parsers.dir/all]
> Fehler 2   make[2]: Verlasse
> Verzeichnis
> '/home/panda/ros/image_common/camera_calibration_parsers/build'
> make[1]: *** [all] Fehler 2   make[1]:
> Verlasse Verzeichnis
> '/home/panda/ros/image_common/camera_calibration_parsers/build'
> -------------------------------------------------------------------------------} [ rosmake ] Output from build of
> package camera_calibration_parsers
> written to: [ rosmake ]   
> /home/panda/.ros/rosmake/rosmake_output-20121114-163131/camera_calibration_parsers/build_output.log
> [rosmake-0] Finished <<<
> camera_calibration_parsers [FAIL] [
> 10.40 seconds ]     [ rosmake ] Halting due to failure in package
> camera_calibration_parsers.  [ rosmake
> ] Waiting for other threads to
> complete. [rosmake-1] Finished <<<
> test_ros [PASS] [ 51.08 seconds ]     
> [ rosmake ] Results:                  
> [ rosmake ] Built 53 packages with 1
> failures.

but yaml-cpp is installed.

edit retag flag offensive close merge delete

Comments

What version of gcc are you using?

jbohren gravatar image jbohren  ( 2012-11-14 04:07:27 -0500 )edit

i'm not sure, gonna lookup tomorrow, but i believe to use the newest one.

edit: i am using gcc & cpp version 4.6, no newer one is available.

RodBelaFarin gravatar image RodBelaFarin  ( 2012-11-14 07:54:21 -0500 )edit

2 Answers

Sort by » oldest newest most voted
3

answered 2013-02-21 10:02:05 -0500

Hansg91 gravatar image

I managed to get a Kinect working about a year ago on a Pandaboard, however I must warn you that the Pandaboard is not really powerful enough to read out the Kinect at the full framerate and do processing on the side (include encoding and sending it over a network).

My idea was to have the Pandaboard send images over Wifi to a laptop with more computational power which would do the processing. I tried many variations of encoding and resizing to get the highest possible framerate, but I could not get more than 20 fps. After a while (few minutes) the cpu would get too hot and shift down, dropping the framerate to somewhere around 10 fps. If you do the processing on the pandaboard you do not need to encode it and send it, so you might get somewhat higher framerate then, but then you are limited to the computational power of the Pandaboard.

However if you still want to get it to work, here is roughly what I did:

  • Download the source code for OpenNI
  • Compile the source code with the arm flag set (follow the instructions at OpenNI somewhere, I am not sure what I had to do)
  • Disable kernel modules for kinect if necessary (I believe they are called gspca_kinect, google it ;) )
  • I received some error that it couldn't connect to the Kinect, I had to activate USB BULK type in the OpenNI config
  • I didn't use any ros package for reading out the Kinect, I created my own package that in my opinion is more efficient and customizable than the ros one, so I am afraid I cannot help you much there. If you want I can give you a link to the code I used.

I hope this is of any help.

edit flag offensive delete link more

Comments

I am interested in your code for the kinect. I am trying to do processing on the Pandaboard, but if I can't your code would be of great help.

aman501 gravatar image aman501  ( 2013-02-21 16:09:54 -0500 )edit

http://code.google.com/p/roman-technologies/source/browse/trunk/image_serverIt is roughly based on ROS packages, OpenCV code and OpenNI examples. The only thing you should need for the package is OpenCV and OpenNI. There are some things there that you won't need, just comment it out :) (nero_msgs)

Hansg91 gravatar image Hansg91  ( 2013-02-22 08:17:36 -0500 )edit

Thank you! I will get started looking though this immediately.

aman501 gravatar image aman501  ( 2013-02-23 06:01:15 -0500 )edit
1

answered 2013-02-21 08:20:27 -0500

tfoote gravatar image

You will probably need to work on compile flags and possibly patches to get it to compile on arm processors. The Embedded SIG would be a good place to get help.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

3 followers

Stats

Asked: 2012-11-14 04:03:29 -0500

Seen: 843 times

Last updated: Feb 21 '13