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

Can I roll my own ROS executable?

asked 2016-03-04 12:50:28 -0500

benjmitch gravatar image


I'm aiming to deploy a single ROS node on an embedded platform (buildroot, AM335x) that bridges between the embedded system and the network by publishing a signal or two, and subscribing to one or two more. I have spent the day figuring how to cross-compile the node for the target, mostly involving getting the ros packages to build from source against the target. I've now got a ros node executable that runs on the target (where I've also deployed the ros libs libros*.so and so on). However, it doesn't manage to contact the master on my workstation.

Now, there may be just some silly config problem and that's why the connection is failing. But my question is - is my approach naive? Is there lots more to ROS that would need to be deployed on the target for this to work? Or is the executable and the libros*.so (etc.) all I really need, save for getting the configuration right?

Any high-level advice gratefully received.

FYI, the reason I'm not using an off-the-shelf package is that there isn't one for buildroot. The reason I'm not switching to yocto is that it was hard enough getting buildroot to work correctly with the platform.


edit retag flag offensive close merge delete


It seems like you are on the correct path. If your node runs (doesn't crash), then it's probably just configuration.

ahendrix gravatar image ahendrix  ( 2016-03-04 18:36:13 -0500 )edit

Have a look through the ROS Network Setup and make sure your network is set up correctly.

ahendrix gravatar image ahendrix  ( 2016-03-04 19:38:30 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2017-07-31 15:29:20 -0500

jkretz gravatar image

@benjmitch - did you have any luck with this? I am interested in doing something similar and was wondering what the state of ROS on buildroot was?

edit flag offensive delete link more


@jkretz It did work, yes; I've since moved to Yocto, which was a pain, but easier than buildroot for me now it's done. However, I am still self-building ROS since ROS support in Yocto is nascent. The answer to my own question: yes, you only need your executable on the target, and roscore nearby.

benjmitch gravatar image benjmitch  ( 2017-08-01 11:17:26 -0500 )edit

@benjmitch - this is great news. do you happen to have any notes on how you accomplished the cross compilation and buildroot modifications? is there any chance you'd be willing to share your buildroot environment / configuration via github or something similar? thanks again.

jkretz gravatar image jkretz  ( 2017-08-01 12:01:49 -0500 )edit

@jkretz Alas, you credit me with too much organisation. The project has been yocto now for months, and the buildroot configuration is long lost. The ROS build should not be special, however: start here and tweak the cmake file to use your buildroot target libs at link time.

benjmitch gravatar image benjmitch  ( 2017-08-01 13:19:26 -0500 )edit

@jkretz You can then, as described in my question, build your ROS nodes (listeners/subscribers) standalone, and not worry too much about what the rest of ROS is doing (hint: it's not doing anything, if you don't use it ;). catkin_make? Just use GOF make, and link to the headers and the libs.

benjmitch gravatar image benjmitch  ( 2017-08-01 13:20:59 -0500 )edit

Question Tools



Asked: 2016-03-04 12:50:28 -0500

Seen: 502 times

Last updated: Mar 04 '16