Every ROSject created in ROSDS contains from the beginning 2 workspaces pre-configured in the user home folder. These 2 workspaces inherit another workspace, which contains all the simulations TheConstruct provides, which is called the Public Simulation Workspace (public_sim_ws). Finally, this simulations workspace inherit only the ROS distribution installed. It may vary depending on the distro you have chosen the given ROSject.
That’s the structure TheConstruct engineers defined to provide all the simulations we have pre-installed and compiled, and also gives to the developer the power to overwrite any of those simulations (you can launch any of those simulations on the fly in ROSDS!). Basically, a ROS workspace that overlays another can have packages with the same name having priority to be executed (It can become quite confusing, but you can check all the rules here: http://wiki.ros.org/catkin/Tutorials/workspace_overlaying).
Finally, our team suggests to the community to develop a ROS project separating the simulations from robotic behaviors packages. What is the difference? Basically, we believe a developer should be able to switch between simulations/robots and robotic algorithms. E.g: You could use the same obstacle avoidance algorithm with any mobile robot, since you configure its parameters properly. That’s why a ROSject have from scratch 2 workspaces in it: simulations_ws and catkin_ws. Of course, the developer can change it to the architecture fits better to his project. The original workspaces overlaying in a ROSject is like shown below: