Hi folks :-)
Apologies for the long post but I have been trying for three days now to install, build and test RGBDSLAM without any success and am getting rather frustrated... surely it shouldn't be so hard :-)
I am quite experienced and have followed the instructions laid out in http://www.ros.org/wiki/rgbdslam and http://ros.org/wiki/electric/Installation/Ubuntu etc. to the letter and have tried all sorts of fixes suggested here, and on other sites, including starting from scratch with fresh Ubuntu installs twice, to no avail.
So, PLEASE could someone run through a fresh install and provide up to date detailed instructions as I see I'm definitely not the first to have build problems.
This is what Ive done, three times, following predominantly http://www.ros.org/wiki/rgbdslam, thus far:
1) Installed absolutely clean Ubuntu 11.10 64bit version (confirmed with /etc/issue and the output of uname -m)
2) Installed ROS Electric as required as per http://ros.org/wiki/electric/Installation/Ubuntu. Commands entered in "Terminal" as follows:
a. sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu oneiric main" > /etc/apt/sources.list.d/ros-latest.list'
b. wget http://packages.ros.org/ros.key -O - | sudo apt-key add –
c. sudo apt-get update
d. sudo apt-get install ros-electric-desktop-full
e. echo "source /opt/ros/electric/setup.bash" >> ~/.bashrc
f. . ~/.bashrc
3) Installed QT4 (QT Creator) via Ubuntu Software Center
4) Setup RGBDSLAM again as per http://www.ros.org/wiki/rgbdslam
a. mkdir -p ~/ros
b. echo 'export ROS_PACKAGE_PATH=~/ros:$ROS_PACKAGE_PATH' >> ~/.bashrc
c. source ~/.bashrc
d. svn co http://alufr-ros-pkg.googlecode.com/svn/trunk/rgbdslam_freiburg/rgbdslam
e. svn co https://code.ros.org/svn/ros-pkg/stacks/vslam/trunk/g2o ~/ros/g2o
f. rosmake --rosdep-install rgbdslam
This immediately failed with:
[ rosmake ] Packages requested are: ['rgbdslam'] [ rosmake ] Logging to directory/home/mike/.ros/rosmake/rosmake_output-20120121-085503 [ rosmake ] Expanded args ['rgbdslam'] to:[] [ rosmake ] WARNING: The following args could not be parsed as stacks or packages: ['rgbdslam'] [ rosmake ] ERROR: No arguments could be parsed into valid package or stack names.
5) So I checked:
a) sudo apt-get install libglew1.5-dev libdevil-dev libsuitesparse-dev No problem
b) Tried to fix .bashrc adding various combinations and orders of export and source commands (not detailed in instructions)
... " enable programmable completion features (you don't need to enable " this, if it's already enabled in /etc/bash.bashrc and /etc/profile " sources /etc/bash.bashrc). if [ -f /etc/bash_completion ] && ! shopt -oq posix; then . /etc/bash_completion fi
export ROS_PACKAGE_PATH=~/ros:$ROS_PACKAGE_PATH source /opt/ros/electric/setup.bash ...
c) Tried to fix electric setup.sh with other changes (also not detailed in instructions) http://answers.ros.org/question/222/error-when-compiling-rgbdslam-for-kinect ... "!/bin/sh
export ROS_ROOT=/opt/ros/electric/ros export PATH=${ROS_ROOT}/bin:${PATH} export PYTHONPATH=${ROS_ROOT}/core/roslib/src:${PYTHONPATH} export ROS_PACKAGE_PATH=/opt/ros/electric/stacks:/home/mike:/home/mike/ros/ros-pkg:~/ros_workspace:$ROS_PACKAGE_PATH if [ ! "$ROS_MASTER_URI" ] ; then export ROS_MASTER_URI=http://localhost:11311 ; fi ...
Tried incrementally odd combos of ROS_PACKAGE_PATH - now you can see its a bit muddled:
c) Confirmed $ROS_PACKAGE_PATH (in response to various mods in response to setup.sh etc) bash: /opt/ros/electric/stacks:/home/mike:/home/mike/ros/ros-pkg:/home/mike/ros_workspace:/home/mike/ros:
d) Tried downloading GSL via Ubuntu Software Center (no mention of this in the instructions) as this cropped up as a missing component at one stage of the installation muddle.
e) And lots of other odd fixes and hunts through source and SVN and apt-get rebuilds etc... phew...
So, PLEASE let me know if I have missed a crucial installation, SVN or build step above, and better still try it out yourself to see whats missing or changed - then please let us know what to do:-)
Best wishes, Mike
If you followed this steps literally I think the problem is 4d/e. This svn checkouts like this will end up in your home, not ~/ros and thus cannot be found in ROS_PACKAGE_PATH.
So you should cd ~/ros before the svn co calls.
For something as complex as this, I recommend using rosinstall to manage your source checkouts.
There are some other hints from this question, which explains the difference between system dependencies and ROS package dependencies.
Problem resolved, VMWare was unfortunately the culprit.
I rebuilt the whole system, yet again, from scratch on a bootable Ubuntu 11.10 64bit partition and it worked imediately (tho I did have to install GSL independently again Felix).
Now I think I have a more fundamental issue, perhaps with an easy, but expensive solution. I think my Intel I3 M330 dual 2.13GHz laptop, with 4GB ram, is simply not up to the task.
The CPU is maxed out whilst Im capturing data and the resultant frame rate is very slow, which in turn is leading (I suspect) to greater deltas between analysed frames, less matching and ultimately, my generated maps are often VERY poor.
(I have tried moving the camera very slowly but this only helped a little bit)
Also, the 4GB fills up extremely quickly so I'm prettly much limited to small room maps.
Do you guys have any advice on the effectiveness of high spec cpu's with RGBDSLAM - as Ive been looking for an excuse to get a new speedy machine:-)
Thanks you all for your patience and superb advice.
Thanks for your speedy answer Dornhege :-)
I think Ive got the build going 100% (reordering calls in .bashrc seems to have worked) but am still stuck right at the last hurdle - I can even see the RGBDSLAM GUI - so am tantalizingly close :-)
I installed the "openni_kinect" package as per http://www.ros.org/wiki/openni_kinect using the command "sudo apt-get install ros-electric-openni-kinect" - no problem - and have connected the Kinect.
But still, whenever I launch RGBDSLAM with "roslaunch rgbdslam kinect+rgbdslam.launch" (or "roslaunch openni_camera openni_node.launch" I get the following error:
'[ INFO] [1327243304.290757975]: [/openni_node1] Number devices connected: 1
'[ INFO] [1327243304.291324641]: [/openni_node1] 1. device on bus 001:10 is a Xbox NUI 'Camera (2ae) from Microsoft (45e) with serial id 'A00365807452048A'
'[ INFO] [1327243304.293948521]: [/openni_node1] searching for device with index = 1
'[ INFO] [1327243304.297442805]: [/openni_node1] **No matching device found.... waiting for 'devices**. Reason: openni_wrapper::OpenNIDevice::OpenNIDevice(xn::Context&, const 'xn::NodeInfo&, const xn::NodeInfo&, const xn::NodeInfo&, const xn::NodeInfo&) @ /tmp/buildd/ros-electric-openni-kinect-0.3.4/debian/ros-electric-openni-kinect/opt/ros/electric/stacks/openni_kinect/openni_camera/src/openni_device.cpp @ 61 : **creating depth generator failed. ,Reason: The network connection has been closed!**
This appears to be a common problem and I have tried:
Killing XnSensorServer (with 'Killall XnSensorServer') at different pre/post launch stages, to ensure its shut down, this had no effect.
It was suggested somewhere else that I run 'echo “blacklist gspca_kinect” > /etc/modprobe.d/blacklist-psengine.conf' to prevent an Ubuntu service from interfering - no luck.
and tried to set the following in case it would help - but am not sure if I did so correctly: ROS_HOSTNAME="localhost" ROS_MASTER_URI="http://localhost:11311"
My USB setup looks fine I think:
mike@ubuntu:~$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 005: ID 045e:02b0 Microsoft Corp. Xbox NUI Motor
Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 001 Device 009: ID 045e:02ad Microsoft Corp. Xbox NUI Audio
Bus 001 Device 010: ID 045e:02ae Microsoft Corp. Xbox NUI Camera
So, what could it be??? Have I forgotten to install something, or set something else somewhere???
All help hugely appreciated, so close :-)
Thanks, Mike
P.S. This is the start of the output when I execute "roslaunch rgbdslam kinect+rgbdslam.launch"
auto-starting new master
process[master]: started with pid [2082]
ROS_MASTER_URI=http://localhost:11311
setting /run_id to c52eab7c-450c-11e1-b5c2-000c291b98c1
process[rosout-1]: started with pid [2096]
started core service [/rosout]
process[openni_node1-2]: started with pid [2100]
process[kinect_base_link-3]: started with pid [2102]
process[kinect_base_link1-4]: started with pid [2104]
process[kinect_base_link2-5]: started with pid [2106]
process[kinect_base_link3-6]: started with pid [2108]
process[rgbdslam-7]: started with pid [2147]
**[rospack] opendir error [No such file or directory] while crawling /home/mike/ros/ros-pkg**
[rospack] opendir error [No such file or directory] while crawling /home/mike/ros_workspace
bool g2o::HyperGraphActionLibrary::registerAction(g2o::HyperGraphElementAction*): creating collection for "writeGnuplot"
bool g2o::HyperGraphActionLibrary::registerAction(g2o::HyperGraphElementAction*): creating collection for "draw"
**(rgbdslam:2147): Gtk-WARNING **: Unable to locate theme engine in module_path: "pixmap",**
Thanks Joq, but surely this shouldn't be all that complex, or obscure, a process as, all I'm trying to do is to get RGBDSLAM working on a clean Ubuntu install.
i.e.: 1) Setup clean OS (Ubuntu 11.10 64bit) 2) Setup ROS (electric) 3) Setup and build RGBDSLAM 4) Setup Kinect drivers 5) Run RGBDSLAM
After loads of work, I'm finally up to stage 4, still without being able to contribute anything to further development of RGBDSLAM.
With clear, tested, environment setup instructions there shouldn't be any missing packages. Can rosinstall help me out here?
P.S. To install the Kinect drivers I simply ran 'sudo apt-get install ros-electric-openni-kinect'. Perhaps I need to build them as per the Source Based Installation in http://www.ros.org/wiki/openni_kinect... any thoughts?
Ahaaa, got the build and Kinect recognition going at last - did a completely fresh install and found I had to also install GSL for the default build to complete: (sudo apt-get install gsl-bin; sudo apt-get install libgsl0-dev) and then GTK for the pixbuf requirement (sudo apt-get install gtk2-engines-pixbuf) before the GUI would launch.
But now, RGBDSLAM is now building fine and is recognizing the Kinect on launch but unfortunately still no data/image from the Kinect ever appears on the GUI. It just says "Waiting for monochrome, depth and motion" information...
The terminal displays:
process[rgbdslam-7]: started with pid [17347] bool g2o::HyperGraphActionLibrary::registerAction(g2o::HyperGraphElementAction): creating collection for "writeGnuplot" bool g2o::HyperGraphActionLibrary::registerAction(g2o::HyperGraphElementAction): creating collection for "draw" ... So,what do I need to do now? :-)
Do I need to install some sort of viewer or support package, or specific graphics drivers, or is running Ubuntu as a VM possibly causing problems (unlikely)?
So close, all help appreciated :-)
Im having similar problems. Im not using VMWare. Has anyone been able to solve this issue?
I keep getting: creating depth generator failed. ,Reason: The network connection has been closed!
Im not using VMWare and I have the same problem. The rgbdslam gui opens up but nothing is displayed. the kinect is connected and powered correctly but the infrared never comes on and the led on the kinect just keeps flashing green. Im using ros-electric on the latest oneiric ubuntu.
I keep getting: creating depth generator failed. ,Reason: The network connection has been closed!
Has anyone been able to finalize a fix for this? Any help plz :S
Asked: 2012-01-22 03:47:31 -0500
Seen: 1,696 times
Last updated: Nov 29 '12
win-ros configure.bat - no module named genmsg
Cannot build rosjava (on mac) -without- ROS installed??
Error launching Gazebo on Ubuntu 12.04
rgbdslam on electric, compiling error
Unable to add ROS keys while installing on Ubuntu [closed]
Problem with netbeans building ROS package
rosjava unable to find node (can't run resulting class)
ROS Answers is licensed under Creative Commons Attribution 3.0 Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.