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

Running ROS nodes without roscore

asked 2011-10-25 04:18:23 -0500

tyler258 gravatar image

updated 2014-01-28 17:10:38 -0500

ngrennan gravatar image

I am currently working on a project where I would like to take a ROS node , in particular the Laser Pipeline node, and integrate it into our current source code maintained by Visual Studios on Windows 7. Our goal is to create a 3D composite map from data read in from a laser to help our MANUS Assistive Robotic Manipulator (ARM) navigate better. The solution we came up with is to mount a Hokuyo Laser onto our MANUS ARM. Over the past couple weeks I have began to familiarize my self with how the laser_pipeline node works on Ubuntu and have successfully read in data from the laser and turned it into a 3D composite map. Now that the beginning phase of this process is over a few questions have come up. Is it possible to run ROS nodes without roscore?

I recently sent an email to the ROS team asking them for possible solutions and they suggested eliminating every reference to ROS from the source code, replacing it by your own custom code, or running ROS on Windows. Replacing all the references seems like a daunting feat because every header file has references to more header files and so on. Our goal is to have one integrated application so running ros on Windows is a possible last resort. Are there any other suggestions out there?

edit retag flag offensive close merge delete


tfoote gravatar image tfoote  ( 2011-10-25 05:21:56 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2011-10-25 05:20:43 -0500

dornhege gravatar image

If you want to use the code you will surely have to come up with some interface to it on your own. So, I see two possibilities to get rid of ROS:

  • Write your own ros.h that is included and contains dummy/empty code for the ROS functionality (This would work like remove all ROS references). Add your own interface.
  • Write your own ros.h that implements the ROS functionality for your system (e.g. publisher/subscriber might get function calls or similar).
edit flag offensive delete link more


Within the ros.h file all that is listed is 18 included header files. For example the first included item is the ros/time.h header. So for your first idea, I would need to check if laser pipeline node is dependent on the time.h file. If it isn't I could just remove the code.
tyler258 gravatar image tyler258  ( 2011-10-28 05:08:01 -0500 )edit
But if it is, how would I go through and change all the ros references? That is if I'm understanding your idea correctly.
tyler258 gravatar image tyler258  ( 2011-10-28 05:09:08 -0500 )edit
What I meant is something like: Start with an empty ros.h + add it to your code -> Compile and see what fails -> replace that with dummy code or similar. This only makes sense if it is less work then remove the ROS parts from the code.
dornhege gravatar image dornhege  ( 2011-10-28 05:29:58 -0500 )edit

Question Tools


Asked: 2011-10-25 04:18:23 -0500

Seen: 1,452 times

Last updated: Oct 25 '11