Ask Your Question

ROS_NOBUILD doesn't allow modification of code

asked 2012-07-01 08:31:23 -0500

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

I'm a beginner with ROS (using the Turtlebot SDK) and I was attempting to generate PNG images from the depth and RGB data coming out of my Kinect. For this I thought the easiest way would be to modify the "image_view" code (which allows me to right-click to save the current frame as PNG) so that it simply saves for all frames. However, when I try to modify the source code and make it using rosmake, it says there were no errors, but the executable is still the original one when I run image_view from terminal. Am I missing out on something basic here? I couldn't spot anything on the wiki.

Any help is highly appreciated.

edit retag flag offensive close merge delete


Are you modifying ROS packages in /opt/ros that were installed via apt-get or a copy of image_view checked out into your workspace?

Eric Perko gravatar image Eric Perko  ( 2012-07-01 10:34:15 -0500 )edit

Don't modify the code installed via Debian packages (via apt-get). Check out a source overlay, if you want to modify something.

joq gravatar image joq  ( 2012-07-01 13:38:07 -0500 )edit

2 Answers

Sort by ยป oldest newest most voted

answered 2012-07-01 09:52:02 -0500

ipso gravatar image

updated 2012-07-01 09:52:48 -0500

I'm guessing you built from source, as you say you changed the source of image_view directly. At the end of a successful build (and if instructed to do so), rosmake will create the ROS_NOBUILD file in the package directory as an indication to the build system that the package can (and should) be skipped in any subsequent rosmakes. Normally, packages installed via a package manager don't include the source and come with a ROS_NOBUILD to prevent make clean mishaps among other things.

So the behaviour you saw was actually 'by design': rosmake is meant to skip building image_view and consequently your changes do not take effect.

AFAIK the most accepted setup for working on ROS (core) packages is to create a ROS 'workspace' and manage it using rosws and .rosinstall files. See this page for a tutorial.

edit flag offensive delete link more

answered 2012-07-01 08:45:36 -0500

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

So did you remove the file called ROS_NOBUILD from the package directory?

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


Asked: 2012-07-01 08:31:23 -0500

Seen: 606 times

Last updated: Jul 01 '12