Can I roll my own ROS executable?
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
Asked by benjmitch on 2016-03-04 13:50:28 UTC
Answers
@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?
Asked by jkretz on 2017-07-31 15:29:20 UTC
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.
Asked by benjmitch on 2017-08-01 11:17:26 UTC
@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.
Asked by jkretz on 2017-08-01 12:01:49 UTC
@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.
Asked by benjmitch on 2017-08-01 13:19:26 UTC
@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.
Asked by benjmitch on 2017-08-01 13:20:59 UTC
Comments
It seems like you are on the correct path. If your node runs (doesn't crash), then it's probably just configuration.
Asked by ahendrix on 2016-03-04 19:36:13 UTC
Have a look through the ROS Network Setup and make sure your network is set up correctly.
Asked by ahendrix on 2016-03-04 20:38:30 UTC