I have watched the 2013 ROSCon
presentation on how to ROSify robots.
Does "ROSify" mean to develop software
in the form of packages that can be
used on a given robot, sensor or
controller? Can this be done for any
robot, sensor or controller? Or are
there certain products that could
never have ROS capabilities?
There are several different levels at which you can ROSify a robot. At the surface level you can always just provide a wrapper which will just expose the internals of the robot's implementation over ROS interfaces. At the other end of the spectrum you can change all of the robots communications to use ROS internally.
This can be done for any robot, sensor, or controller with enough effort. There are some systems that may be too resource limited for a full interface to be integrated onboard. For those devices usually there is a ROS driver that connects to the serial or USB port and interacts with the device using it's protocol and then expose the ROS interface.
The list of ROS-compatible robots from https://robots.ros.org/ seems to be non-exhaustive. What does a company have to do for their products to be ROS-enabled? Is there a difference between being ROS-enabled and having ROS packages available?
The index at http://robots.ros.org is definitely non-exhaustive. It relies on user and devloper submissions. If there is a robot that's using ROS I'd encourage anyone to encourage manufacturers to submit their robots. There's a contributing guide here: https://robots.ros.org/contributing/ If you have a ROS interface that's enough to be consider ROS enabled.
The https://robots.ros.org index is a good place for people to market research and educational robots with a public ROS API. It is not great at capturing the many robots that are now using ROS under the hood but don't publicly mention that they're using ROS or keep it secret that they're using ROS.
Can you please update your question with a link to the presentation that you're referring to?
I could put a splash sensor on my toilet and detect "usage" through a ROS node. I can ROSify my toilet, I'll say you can ROSify anything.
I have built two robots from scratch and both use NAV stack in ROS. Of course I had to write the ROS drivers myself. I have no actual plans to ROSify toilet.
@chloe are you referring to this 2013 ROSCon presentation?
@jayess The video I was referring to: https://vimeo.com/66966974
@billy So some companies, say, Rockwell Automation, are clear that they are not interested in ROS-enabling their robots. But if I had a Rockwell robot laying around, I could write software for it in ROS myself?
Ah, I understand your question better now. Yes you yourself could ROSify a Rockwell robot if you had knowledge of the commands/controls and they haven't added some encryption or something. Rockwell may use Profibus/modbus/etc to communicate, so you'd need a way to speak the robot language. Driver?
Just a comment: what @billy describes is typically how we approach this in ROS-Industrial. Or at least for a first version of a driver (== robot control interface). Then start the dialogue with the mfg and see whether they are willing to support their customers (better). Then improve the software.
Btw: I'd like that splash-sensor package @billy.
@chloe:
Did they tell you this in person, or is this a statement that they've made in public?