Ask Your Question
0

Can I roll my own ROS executable?

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

benjmitch gravatar image

Hi

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.

Cheers

edit retag flag offensive close merge delete

Comments

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

ahendrix gravatar imageahendrix ( 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 imageahendrix ( 2016-03-04 19:38:30 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
0

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

Comments

@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 imagebenjmitch ( 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 imagejkretz ( 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 goo.gl/2KCyfn and tweak the cmake file to use your buildroot target libs at link time.

benjmitch gravatar imagebenjmitch ( 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 imagebenjmitch ( 2017-08-01 13:20:59 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

2 followers

Stats

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

Seen: 233 times

Last updated: Mar 04 '16