Does ROS include I2C Driver for Odroid/Ubuntu?
I am just beginning to explore whether ROS is even feasible to adopt on my platform. For that matter, I am still trying to sort out just what it is that ROS even brings to the party to simplify software development. No, I have not yet attempted to install ROS so the apparently required ros distro tag is just a wild guess.
I currently have a partially operational C++ based hydronic control automation project under development using Ubuntu 16.04 installed on an Odroid-C2 platform. This project seems to me like a good candidate for getting familiar with ROS before I tackle my next (and more ambitious) autonomous robotic application.
Specifically, my current project must gather data from several temperature sensor ICs using the I2C interface. The ROS Wiki intro paragraph indicates device drivers are part of the ROS landscape. But it is unclear whether a device driver for the I2C interface is included. If not, does ROS documentation provide guidelines for integrating custom driver code?
ROS "drivers" are really nodes that form the interface between a ROS application (ie: a set of nodes forming a computation graph) and the 'rest' of your system. Conceptually, they are in the same spot as "OS device drivers", but they are not implemented as kernel modules or something like that.
So driver nodes typically read/write data from/to OS device drivers, not directly from/to the hw. So asking whether ROS includes "I2C drivers for X on Y" really comes down to: is there a node that can use the OS/platform driver to communicate with some device. I'm pretty sure there are, but ..
.. I hope you see the difference with a proper driver for, say, Linux Kernel a.b.c: this is all user space programs. Nothing fancy.
So any C/C++ lib that can read out (using the OS' I2C infrastructure) your temperature sensor would do. A ROS node could wrap that, and publish
Temperature
msgs.I hope this it is a bit clearer now that:
is not really a question that can be asked in the context of ROS. At that level, the underlying OS itself must support the hw. Then ROS can use that.