Error when compiling RGBDSLAM for Kinect

Hi all,

I'm having a bit of trouble getting the RGBDSLAM ros competition entry to compile on my 32 bit ubuntu 10.10 machine. I am compiling it on a fresh (today) version of diamondback but get the following lines when trying to compile using step 4 (after following the previous steps) of the guide...

phil@phil-Latitude-E6400:~$rosmake --rosdep-install rgbdslam [ rosmake ] Packages requested are: ['rgbdslam'] [ rosmake ] Logging to directory/home/phil/.ros/rosmake/rosmake_output-20110302-125811 [ 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. I can get data from the kinect and view in rviz, after following the relevant wiki guides. Have I missed something simple? Thanks in advance! edit retag close merge delete 3 Answers Sort by » oldest newest most voted Did you download the sources for the rgbdslam? It seems rosmake is unable to find the package. You should add the path to the sources for rgbdslam to your ROS_PACKAGE_PATH. I tried using rgbdslam on diamondback with kinect and you also need to make some adjustments to the code to make it compile. But even then it seems that the image message from openni_camera has changed and rgbdslam can't do anything with it. more Comments I did download the sources, which got placed in /home. I added the destinations to the setup.sh file so that the line read export ROS_PACKAGE_PATH=/home/phil/ni/ni:/opt/ros/diamondback/stacks:/home/phil/freiburg_kinect-experimental:/home/phil/hogman_minimal. ( 2011-03-01 23:55:12 -0500 )edit But I don't know if I changed the correct file as it didn't seem to do anything (I changed the setup.sh file in opt/ros/diamondback). I then copied the two rgbdslam folders into opt/ros/diamondback/stacks which had some success until ros_nobuild failed due to a permission error. ( 2011-03-01 23:58:22 -0500 )edit Personally I don't use the setup.sh file for anything else than starting kinect. In my normal shell I added export ROS_PACKAGE_PATH=path/to/my/ros/stuff:$ROS_PACKAGE_PATH to my .bashrc. That way I can have everything pretty independent.
( 2011-03-02 00:25:48 -0500 )edit

Do you still have the problem or did you solve it in the meantime?

more

Ah I finally got my install working!

I am green with Linux so it took me a while as I was missing some of the basics. I will do my best to explain what I did so others have a chance at fixing it.

Someone above mentioned .bashrc, but I didn't even know what it is. Well, its in your user folder (/home/taylor in my case) but it is hidden. So open up Nautilus (the file browser), navigate to your user folder, and press Ctrl-h to toggle hidden files if you don't see .bashrc. bashrc runs when you open up a new terminal (I think) and it sets up the environment variables for the terminal session. Anything put in there gets run.

Well, the ROS installation wiki says to add "source /opt/ros/diamondback/setup.bash" to the end of your .bashrc file. So, /opt/ros/diamondback/setup.bash is a script that gets run when your terminal opens. It runs a file in that same folder called setup.sh, which sets the ROS environment variables.

You can't just set environment variables in your .bashrc file because it will just overwrite some of the stuff that the setup.sh file does. So, navigate to /opt/ros/diamondback/ and open setup.sh for editing. Unfortunately, its set as read only for the user. I'm sure this isn't the right way, but I fixed that by opening a Nautilus browser window as root, by typing

sudo Nautilus

in a terminal.

With a root Nautilus window, navigate back to /opt/ros/diamondback/ and edit setup.sh to add the new folders that contain the packages you want to use.

Specifically, there should be a line:

export ROS_PACKAGE_PATH=/opt/ros/diamondback/stacks

add your user folder to that line like so (where you replace my name with your user name!)

export ROS_PACKAGE_PATH=/opt/ros/diamondback/stacks:/home/taylor

I also saw another folder mentioned and decided to add it just to be safe, so my whole line read like this:

export ROS_PACKAGE_PATH=/opt/ros/diamondback/stacks:/home/taylor:/home/user/ros/ros-pkg

Now close all your terminal windows and run

rosmake --rosdep-install rgbdslam

It should find all your packages and build properly! It did for me and I finally have it running. :) If there are any problems, run

sudo apt-get update

To update your packages and try again.

more

Don't edit files in /opt/ros. export like so in ~/.bashrc: export ROS_PACKAGE_PATH="/home/taylor":$ROS_PACKAGE_PATH. ( 2011-04-03 13:55:20 -0500 )edit I think thats how I originally had it, but it would overwrite the ROS_PACKAGE_PATH variable so I would only ever have the stuff added from .bashrc, or the stuff added from setup.sh, but not both. Or does the$ sign add this path without overwriting the other paths?
( 2011-04-05 09:36:57 -0500 )edit
1
Hi Taylor, the $ROS_PACKAGE_PATH is all of what is currently loaded into that variable. The entries are separated by : When you set and export ROS_PACKAGE_PATH=/some_new_folder_path:$ROS_PACKAGE_PATH in basically ADDS your new folder path to the front of the existing path.
( 2011-04-27 09:17:04 -0500 )edit