2
$\begingroup$

I've used ROS for a while, my environment is Raspberry Pi + Ubuntu + OpenCV + ROS + C/C++. I also use several ROS packages (tf2, usb_camera, slam related, and laser scanner capture.) Also, in my projects, nodes are in multiple devices, and I'm using multiple master package for one project.

I did review some tutorials about AllJoyn, but no handon experience so far.

The questions are:

  1. regarding to message (especially, ROS image) passing cross devices, is AllJoyn a good ROS alternative? (devices are connected by wifi or bluetooth.)

  2. For AllJoyn, does it still need single master (like roscore in ROS) to coordinate the nodes (or similar)?

Thanks.

$\endgroup$
2
$\begingroup$

I suppose if you really wanted it, you could - but it seems to be designed for smart home/building applications. I also suppose if you really wanted to, you could use ROS for a smart home too.

But I am not really seeing an advantage to AllJoyn over ROS, in terms of robotics. ROS is structured in an almost 'P2P network', any device can subscribe and publish topics. But AllJoyn seems to be more of a 'hub-and-spoke' network model, some devices listen, fewer think and talk.

For example, on an AllJoyn network, it seems that any device can publish its present state, but it is a central computer that is making the decisions and publishing those decisions. The whatever circuit is controlling that light bulb, or thermostat, is taking all of its directions from the computer running AllJoyn. There doesn't seem to be any leeway for 'independent thought' in the network. But in a ROS network, you do not need to use a 'central-anything'. I can have my nVidia Jetson (which is the piece actually running ROS) control an Arduino, which in-turn is controlling motors based on its own code. The Arduino is making decisions based on what its motors are doing, and what the Jetson is telling it to do, and the Jetson is making decisions based on what the Arduino is telling it and its motors are doing (among other pieces as well).

AllJoyn would be perfect if you wanted to do an IoT or smart home project with your RasPi, but it doesn't seem to make a lot of sense for robotics since it doesn't have a lot of flexibility when it comes to defining feedback into the network devices.

To answer your questions succinctly:

  1. Probably not, not for robotics at least. But it would be good for an IoT project.
  2. Yes. It sounds like it needs a 'master' even more so than ROS. The ROS master is mainly to keep track of what is actually on the network and what it is doing. AllJoyn's master is actually making all the decisions too (unlike ROS, where you write nodes for each item on the network, and those do the work).

Now I might be mistaken about AllJoyn's network structure, but this was my impression on it after reading up on it last night and this morning.

$\endgroup$
  • $\begingroup$ Thanks for reply. I recently traced sample codes of AllJoyn and see no need to run any "master" daemon like roscore. Seems every AllJoyn application (in C++) has to link alljoyn router library, so an AllJoyn application has the ability to see other apps as long as they connect to same "bus". So, maybe a "master" (roscore-like) is not needed in AllJoyn? $\endgroup$ – Alex Huang Feb 2 '16 at 7:54
  • $\begingroup$ Interesting. Everything I read made it sound like AllJoyn was based off of some kind of 'master' program that made decisions around an XML or CSV file (storing present system states) that the 'master' also maintained. But I didn't pick through any AllJoyn apps, so you may have a better understanding than I about its capabilities and limitations at this point. I would still stick with ROS though; it has more robotics-relevant documentation than AllJoyn does. You would be on your own with AllJoyn and Robotics. $\endgroup$ – MechanicalMan Feb 2 '16 at 17:14
  • $\begingroup$ Though what might be interesting is trying to get AllJoyn and ROS to talk to one another. ROS is very flexible, and AllJoyn appears to be as well. they both can use C++ and Python. It might make for some interesting applications, having a robot that can integrate with smart home/IoT systems. $\endgroup$ – MechanicalMan Feb 2 '16 at 17:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.