ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

How do overlays work?

asked 2012-11-06 00:30:22 -0600

ChengXiang gravatar image

updated 2012-11-06 03:50:04 -0600

jbohren gravatar image

Hi, I recently came across a post that mentioned that we should never try to edit stuff in ros/fuerte/stacks, the correct way should be through overlay instead. This means I have been doing stuff the wrong way all along. I have been making changes to launch files in erratic_robot, which is located in stack.

I would like to know how does overlay works, the wiki page states that"The overlay now includes all packages that were installed in /opt/ros/fuerte." But it is not the case for me, my overlay (fuerte workspace) only contain a sandbox, turtlebot which i installed and some setup files.

In addition, when I installed a package (eg.erratic_robot), where should it be located? For me, the erratic_robot appears in ros/fuerte/stacks.

I appreciate your help, thank you.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2012-11-06 00:44:08 -0600

Lorenz gravatar image

The overlay does not directly contain the packages in /opt/ros/fuerte, it just includes them. All packages in /opt/ros/fuerte are known to the system, i.e. you can run them using roslaunch/rosrun, you can depend on them in your manifest file etc.

If you are creating new packages or want to edit existing ones, you need to put the corresponding source code in the sandbox directory or another directory that has been added to your overlay with rosws set. For instance, if you want to edit the package erratic_robot, add a copy to your overlay. The copy will "shadow" the package installed in /opt/ros/fuerte, i.e. when using roslaunch/rosrun, the system will use that one in your overlay. You can add the source code of erratic_robot as follows:

rosws set --svn erratic_robot
rosws update
source ~/fuerte_workspace/setup.bash

Then you need to build it: rosmake erratic_robot.

edit flag offensive delete link more


I see. That really helps in my understanding. Thanks a lot!

ChengXiang gravatar image ChengXiang  ( 2012-11-06 01:00:10 -0600 )edit

@Lorenz - I am trying to do something similar. I have the folder "sandbox" (as per ROS tutorials) and my "original" package is already installed there. So if I need to modify the source code, I should use what you mention above in the same folder, right?

nemesis gravatar image nemesis  ( 2013-03-04 10:00:37 -0600 )edit

Question Tools

1 follower


Asked: 2012-11-06 00:30:22 -0600

Seen: 1,244 times

Last updated: Nov 06 '12